@charset "utf-8";
body {
	font: normal 18px/1.7 'Noto Sans JP', sans-serif,"Hiragino Kaku Gothic Pro","ヒラギノ角ゴ Pro W3","ＭＳ Ｐゴシック","メイリオ",Meiryo,Arial,Verdana,sans-serif;
	text-align: left;
	color:#000;
	text-align: justify;
	overflow-x: hidden;
}

body {
  background-color: #fff;
  width: 800px;
  margin: 0 auto;
  -webkit-box-shadow: 0px 0px 30px 0px rgba(0,0,0,0.5);
  -moz-box-shadow: 0px 0px 30px 0px rgba(0,0,0,0.5);
  box-shadow: 0px 0px 30px 0px rgba(0,0,0,0.5);
  background-size: contain;
}

body .sp-item {
    display: none !important; }
  body .pc-item {
    display: block !important; }
	
  @media screen and (max-width: 640px) {
    body {
	  width: 100%;
	  margin: 0 auto;
	  min-width: inherit; 
	  height:100%; 
	  }
      body .sp-item {
        display: block !important; }
      body .pc-item {
        display: none !important; } 
	  body .sp-item img {
		width:100%;}
}

@media screen and (max-width: 640px) {
	.sp img{
		max-width:90%;	
}
	.sp02 img{
		max-width:100%;	
}
.sp03 img{
		max-width:80%;	
}
}

.fl_left {
	float: left;
}
.fl_right {
	float: right;
}
.ov_hd {
	overflow: hidden;
}
.bg_none {
	background-image: none!important;
}
.center {
	text-align: center;
}
.right {
	text-align:right;
}
.line_0 {
	line-height: 0;
}
.zindex {
	z-index: 200;
}
input[type=radio] {
	width: 15px;
	height: 15px;
	vertical-align: middle;
}
input[type=image]:hover{
		opacity: 0.7;
	filter: alpha(opacity=70);
	-ms-filter: "alpha( opacity=70 )";
	}


/* ----------------------------------------------------
 
    text
 
---------------------------------------------------- */
em {
	text-decoration: underline;
  font-style: normal;
}
.bd_red {
	border-bottom: 1px solid #FF0004;
	padding-bottom: 2px;
}
.bd_red02 {
	border-bottom: 3px solid #FF0004;
	padding-bottom: 0px;
}
.red {
	color: #ff0000;
}
.yellow {
	background-color: #ffff00;
}
.gray {
	color:#666666;
}
.bold {
	font-weight: bold;
}
strong {
	font-weight: bold;
}
.strike {
	text-decoration: line-through;
}
.ac {
	text-align: center !important;
}
.ar {
	text-align: right !important;
}
.al {
	text-align: left !important;
}
.bold {
	font-weight: bold !important;
}
.font10 {
	font-size: 10px !important;
}
.font11 {
	font-size: 11px !important;
}
.font12 {
	font-size: 12px !important;
}
.font13 {
	font-size: 13px !important;
}
.font14 {
	font-size: 14px !important;
}
.font15 {
	font-size: 15px !important;
}
.font16 {
	font-size: 16px !important;
}
.font17 {
	font-size: 17px !important;
	line-height:150%;
}
.font18 {
	font-size: 18px !important;
}
.font19 {
	font-size: 19px !important;
}
.font20 {
	font-size: 20px !important;
}
.font21 {
	font-size: 21px !important;
}
.font22 {
	font-size: 22px !important;
}
.font23 {
	font-size: 23px !important;
}
.font24 {
	font-size: 24px !important;
}
.font25 {
	font-size: 25px !important;
}
.font26 {
	font-size: 26px !important;
}
.font27 {
	font-size: 27px !important;
}
.font28 {
	font-size: 28px !important;
}
.font29 {
	font-size: 29px !important;
}
.font30 {
	font-size: 30px !important;
}
.font32 {
	font-size: 32px !important;
}
/* ----------------------------------------------------
 
    float
 
---------------------------------------------------- */
.fr {
	float: right !important;
}
.fl {
	float: left !important;
}
.clear {
	clear: both;
}
img {
	line-height: 0;
	padding: 0;
	margin: 0;
}
.clearfix:after {
	content: ".";
	display: block;
	clear: both;
	height: 0;
	visibility: hidden;
}
.clearfix {
	min-height: 1px;
}
* html .clearfix {
	height: 1px;/*\*//*/
  height: auto;
  overflow: hidden;
  /**/
}

hr {
	height: 0;
	margin: 0;
	padding: 0;
	border: 0;
}
/* ----------------------------------------------------
    clearfix の代用
    &#60;div class="hr"&#62;&#60;hr /&#62;&#60;/div&#62;
---------------------------------------------------- */

/* ここから書いていきましょう */

@media screen and (max-width: 640px) {
header img {
	width: 100%;
}
}

.fixed {
  position: fixed;
  bottom: 0;
  left: 50%;               /* 画面中央基準に配置 */
  transform: translateX(-50%); /* 中央に揃える */
  width: 800px;            /* LP本体と同じ幅 */
  z-index: 9999;
}


@media screen and (max-width: 640px) {
.fixed img {
	width: 100%;
	padding-bottom: 3%;
}
}

@media screen and (max-width: 640px) {
  .fixed {
    left: 0;
    right: 0;
    width: 100%;
    transform: none;
    -webkit-transform: none;
  }

  .fixed img {
    width: 100%;
    padding-bottom: 3%; /* ←既存を活かす */
    height: auto;
    display: block;
  }
}

.area_btn {
	width: 800px;
	height: 771px;
	position: relative;
	margin: 0 auto;
}

.btn {
	position: absolute;
	bottom: 240px;
	left: 177px;
}

.reflection {
  width: 444px;
  height: 138px;
  position: relative;
  overflow: hidden;
}
.reflection::after {
  content: "";
  display: block;
  width: 20px;
  height: 100%;
  position: absolute;
  top: -180px;
  left: 0;
  background-color: #FFF;
  opacity: 0;
  transform: rotate(45deg);
  animation: reflect 2s ease-in-out infinite;
  -webkit-transform: rotate(45deg);
  -webkit-animation: reflect 2s ease-in-out infinite;
}
@keyframes reflect {
  0% { transform: scale(0) rotate(45deg); opacity: 0; }
  80% { transform: scale(0) rotate(45deg); opacity: 0.5; }
  81% { transform: scale(4) rotate(45deg); opacity: 1; }
  100% { transform: scale(50) rotate(45deg); opacity: 0; }
}
@-webkit-keyframes reflect {
  0% { transform: scale(0) rotate(45deg); opacity: 0; }
  80% { transform: scale(0) rotate(45deg); opacity: 0.5; }
  81% { transform: scale(4) rotate(45deg); opacity: 1; }
  100% { transform: scale(50) rotate(45deg); opacity: 0; }
}

.rollover{
  position:relative;
  transition: all .3s;
}

.rollover:hover {
bottom: 250px;
  box-shadow: 0 2px 3px rgba(0, 0, 0, 0.3);
}

@media screen and (max-width: 640px) {
.area_btn {
	width: 100%;
	height: 100%;
	position: relative;
	margin: 0 auto;
}

.btn {
	position: absolute;
	width: 70%;
	bottom: 2.2%;
    	left: 35%;
    transform: translateX(-30%);
    -webkit-transform: translateX(-30%);
    -ms-transform: translateX(-30%);
}

.reflection::after {
  content: "";
  display: block;
  width: 20px;
  height: 20%;
  position: absolute;
  top: -180px;
  left: 0;
  background-color: #FFF;
  opacity: 0;
  transform: rotate(45deg);
  animation: reflect 2s ease-in-out infinite;
  -webkit-transform: rotate(45deg);
  -webkit-animation: reflect 2s ease-in-out infinite;
}
@keyframes reflect {
  0% { transform: scale(0) rotate(45deg); opacity: 0; }
  80% { transform: scale(0) rotate(45deg); opacity: 0.5; }
  81% { transform: scale(4) rotate(45deg); opacity: 1; }
  100% { transform: scale(50) rotate(45deg); opacity: 0; }
}
@-webkit-keyframes reflect {
  0% { transform: scale(0) rotate(45deg); opacity: 0; }
  80% { transform: scale(0) rotate(45deg); opacity: 0.5; }
  81% { transform: scale(4) rotate(45deg); opacity: 1; }
  100% { transform: scale(50) rotate(45deg); opacity: 0; }
}
}

.movie {
	background: url("../images/05bg.png") no-repeat;
	background-position: bottom;
	margin: 0 auto;
	padding-bottom: 30px;
}

@media screen and (max-width: 640px) {
	.area01 img {
		width: 100%;
	}	
	
	.movie {
		width: 100%;
		margin: 0 auto;
		padding-bottom: 20px;
		background-size: 100%;
	}
}

.area02 {
	background: url(../images/08bg.png) no-repeat;
	padding-top: 60px;
	padding-bottom: 55px;
}

@media screen and (max-width: 640px) {
	.area02 {
		margin: 0 auto;
		padding-top: 25px;
		padding-bottom: 45px;
		background-size: 100%;
	}

	.area02 img {
		width: 100%;
	}	
}

.area04 {
	background-color: #CEF3FF;
	padding-top: 20px;
}

@media screen and (max-width: 640px) {
.area04 {
	padding-top: 10px;
}

	.area04 img {
		width: 100%;
	}	
}

.area05 {
	background-color: #FCFCF5;
}

@media screen and (max-width: 640px) {
	.area05 img {
		width: 100%;
	}	
}

.area06 {
	background-color: #FCFCF5;
}

@media screen and (max-width: 640px) {
.area06 img {
	width: 100%;
}
}

@media screen and (max-width: 640px) {
.area07 img {
	width: 100%;
}
}

.area08 {
	background-color: #FFEAB2;
	padding-bottom: 30px;
}

.area08_inner {
	width: 752px;
	background-color: #fff;
	margin: 0 auto;
	font-size: 18px;
	line-height: 1.4em;
	padding-bottom: 15px;
	font-feature-settings: "palt";		
}

.area08_in {
	width: 688px;
	margin: 0 auto;
	padding-top: 30px;
}

@media screen and (max-width: 640px) {
.area08 {
	padding-bottom: 20px;
}

.area08 img {
	width: 100%;
}

.area08_inner {
	width: 94%;
	background-color: #fff;
	margin: 0 auto;
	padding-bottom: 15px;
}

.area08_in {
	width: 94%;
	margin: 0 auto;
	padding-top: 20px;
	font-size: 16px;
	line-height: 1.4em;
	font-feature-settings: "palt";	
}

.book {
	width: 36%;
	float: right;	
}

.book img {
	width: 70%;
}
}

.area09 {
	padding-top: 30px;
	padding-bottom: 40px;
}

.area09_ttl {
	width: 460px;
	margin: 0 auto 5px;
}

.area09_m {
	width: 687px;
	margin: 0 auto;
}

@media screen and (max-width: 640px) {
.area09 {
	padding-top: 20px;
	padding-bottom: 20px;
}

.area09_ttl {
	width: 90%;
	margin: 0 auto 5px;
}

.area09_ttl img {
	width: 100%;
}
	
.area09_m {
	width: 100%;
	margin: 0 auto;
}
}

footer {
	background-color: #0275B5;
	color: #fff;
	text-align: center;
	font-size: 14px;
	padding-top: 30px;
	padding-bottom: 25px;
	font-feature-settings: "palt";
	margin-bottom: 110px;
}

footer a {
	color:#fff;
	text-decoration: none;
}

@media screen and (max-width: 640px) {
footer {
	font-size: 10px;
	margin-bottom: 80px;
}
}
.voice {
	background-color: #CEF3FF;
	margin: 0 auto;
	padding-top: 20px;
}

.voice h2 {
	padding-top: 15px;
	padding-bottom: 15px;
}

.voice h3 {
	padding-bottom: 10px;
}

.voice_movie {
	width: 750px;
	margin: 0 auto;
}

.voice_in {
	padding-bottom: 50px;
}

@media screen and (max-width: 640px) {
.voice {
	padding-top: 10px;
}

.voice img {
	width: 100%;
}	

.voice h2 {
	padding-top: 2%;
	padding-bottom: 2%;
}

.voice h3 {
	padding-bottom: 1.5%;
}

.voice_movie {
	width: 98%;
	margin: 0 auto;
	text-align: center;
}

.voice_in {
	padding-bottom: 5%;
}
}


.youtube-wrapper {
    position: relative;
    width: 100%;
    max-width: 560px;
    cursor: pointer;
    margin: 20px auto;
}

.youtube-wrapper img {
    width: 100%;
    display: block;
    border-radius: 8px;
}

.play-button {
    position: absolute;
    top: 50%;
    left: 50%;
    transform: translate(-50%, -50%);
    background: rgba(0, 0, 0, 0.7);
    color: white;
    font-size: 24px;
    border: none;
    padding: 15px 20px;
    cursor: pointer;
    border-radius: 50%;
    transition: background 0.3s ease;
}

.play-button:hover {
    background: rgba(0, 0, 0, 0.9);
}

.youtube-iframe {
    width: 100%;
    height: 315px;
    border: none;
}
.usp {
	background-color: #fefdf5;
	padding-bottom: 0px;
}

.usp_inner {
	width: 752px;
	background-color: #fff;
	margin: 0 auto;
	font-size: 18px;
	line-height: 1.4em;
	padding-bottom: 15px;
	font-feature-settings: "palt";		
}

.usp_in {
	width: 688px;
	margin: 0 auto;
	padding-top: 30px;}

@media screen and (max-width: 640px) {
.usp {
	padding-bottom: 0px;
}

.usp img {
	width: 100%;
}

.usp_inner {
	width: 94%;
	background-color: #fff;
	margin: 0 auto;
	padding-bottom: 15px;
}

.usp_in {
	width: 94%;
	margin: 0 auto;
	padding-top: 20px;
	font-size: 16px;
	line-height: 1.4em;
	font-feature-settings: "palt";	
}