@charset "utf-8";
@import url('https://fonts.googleapis.com/css2?family=Noto+Sans+JP:wght@100..900&display=swap');
@import url('https://fonts.googleapis.com/css2?family=Barlow:ital,wght@0,100;0,200;0,300;0,400;0,500;0,600;0,700;0,800;0,900;1,100;1,200;1,300;1,400;1,500;1,600;1,700;1,800;1,900&display=swap');
@import url("https://use.typekit.net/cuj7adx.css");
.din {
  font-family: "din-2014", sans-serif;
  font-weight: 600;
  font-style: normal;
}
.barlow { font-family: "Barlow", sans-serif; }
.upTo-header {
  background-color: initial;
}
@media only screen and (min-width: 769px) {
  .upTo-header {
    height: 90px;
    padding: 22px 0 15px;
  }
  .upTo-header .inner_12 {
    max-width: inherit;
  }
}
.upTo-header_nav_btn { display: none!important;}

#mainContent {
  font-family: "Noto Sans JP", serif;
}
/*表示
----------------------------------------*/
/* PCだけ表示 */
.visible_pc {
	display: block !important;
}
/* SPだけ表示 */
.visible_sp,
.sp_br {
	display: none !important;
}

/* PCだけ表示 */
.visible_pc_inline {
	display: inline !important;
}
/* SPだけ表示 */
.visible_sp_inline {
	display: none !important;
}

@media only screen and (max-width: 768px) {
	/* PCだけ表示 */
	.visible_pc {
		display: none !important;
	}
	/* SPだけ表示 */
	.visible_sp {
		display: block !important;
	}
  br.visible_sp { line-height: 0; }

	/* PCだけ表示 */
	.visible_pc_inline {
		display: none !important;
	}
	/* SPだけ表示 */
	.visible_sp_inline {
		display: inline !important;
	}
	/* SPだけ改行 */
	.sp_br {
		display: block !important;
	}
}
/* fade_up */
.fadeup {
	opacity: 0;
	transform: translateY(20px);
	transition-duration: 1s;
}
.fadeup.on {
	opacity: 1;
	transform: translateY(0);
}
/* fade_in */
.fadein {
    opacity: 0;
    transition-duration: 2s;
}
.fadein.on {
    opacity: 1;
}
.pic_cap {
	position: absolute;
	display: inline-block;
	padding: 5px;
	font-size: 10px;
	bottom: 0;
	right: 0;
	line-height: 1;
	color: #000;
}
.pic_cap.topmv {
	position: unset;
  display: block;
	max-width: 26vw;
  margin: 0 0 0 auto;
  line-height: 1.5;
  padding-left: 1em;
  text-indent: -1em;
}
.pic_cap.w {
	color: #fff;
}
.pos_rel {position: relative;}
.full {width: 100%;}
.ac {text-align: center;}
sup {font-size: 65%;}
.fw700 {font-weight: 700;}
.fw500 {font-weight: 500;}
.inner {
  width: 100%;
  max-width: 1100px;
  margin: 0 auto;
  padding: 0 15px;
}
.capt {
  font-size: 10px;
  letter-spacing: 0.1em;
  line-height: 1.9;
  text-align: left;
}
@media screen and (max-width: 1200px) {
  .capt {
    letter-spacing: 0.01em;
  }
}

.btn_page {
  text-align: center;
}
.btn_page .btn {
  background: #ffd900;
  border-radius: 31px;
  font-size: 18px;
  font-weight: 500;
  letter-spacing: 0.05em;
  line-height: 1;
  display: inline-block;
  width: 92%;
  max-width: 500px;
  position: relative;
  z-index: 0;
  animation: ani_btn 1s ease 0s infinite alternate;
}
.btn_page .btn:hover {
  -webkit-animation-play-state:paused;
  -moz-animation-play-state:paused;
  -o-animation-play-state:paused;
  animation-play-state:paused;
}
@keyframes ani_btn {
  from {transform: scale(0.9,0.9);}
  to {transform: scale(1,1);}
}
.btn_page .btn span {
  display: block;
  padding: 30px;
  position: relative;
  z-index: 1;
}
.btn_page .btn span::before {
	content: "";
	height: 10px;
	width: 4px;
	background: #fff;
	position: absolute;
	top: 60%;
	left: -6px;
	z-index: 1;
}
.btn_page .btn span::after {
	content: "";
	height: 10px;
	width: 4px;
	background: #fff;
	position: absolute;
	bottom: 60%;
	right: -6px;
	z-index: 1;
}
.btn_page .btn:before {
  content: "";
  border-radius: 35px;
  border: 1px solid #4d4d4d;
  width: calc(100% + 8px);
  height: calc(100% + 8px);
  top: -5px;
  right: -5px;
  position: absolute;
  z-index: 0;
}
@media screen and (max-width: 767px) {
  .btn_page .btn span {
    padding: 20px 15px;
  }
  .btn_page .btn {
    border-radius: 20px;
    font-size: 14px;
    letter-spacing: 0.01em;
  }
  .btn_page .btn::before {
    border-radius: 24px;
  }
}

.fluffy_lid_bottom {
	width: 100%;
	height: 200px;
	margin: 0 0 -1px;
	padding: 0;
	background: url(../imgs/fluffy_bottom.png) no-repeat;
	background-size: 400% auto;
	background-position: 100% bottom;
	overflow: hidden;
	pointer-events: none;
	animation: fluffy_bottom 40s ease-in-out infinite;
  position: absolute;
  bottom: 100%;
  left: 0;
  z-index: 0;
}
@keyframes fluffy_bottom {
	0%{
		background-size: 400% auto;
		background-position: 100% bottom;
	}
	25%{
		background-size: 100% auto;
	}
	50%{
		background-size: 400% auto;
		background-position: 0% bottom;
	}
	100%{
		
		background-position: 100% bottom;
	}
}
/*-----------------------------------------------
  mainvisual
-----------------------------------------------*/
.mainvisual {
  position: relative;
  display: flex;
  flex-direction: column;
}
.mainvisual .img01 {
  width: 70.6%;
  margin-left: auto;
  position: relative;
  z-index: 1;
  transition: all 0.5s linear;
  transition-delay: 0s;
  filter: blur(15px);
  opacity: 0;
  visibility: hidden;
}
.mainvisual .img02 {
	width: 56%;
	margin-right: auto;
	position: relative;
	z-index: 0;
	margin-top: -15.5%;
  margin-bottom: -8%;
  transition: all 0.5s linear;
  transition-delay: 0.25s;
  filter: blur(15px);
  opacity: 0;
  visibility: hidden;
}
.mainvisual .img03 {
	width: 20%;
	top: 2%;
	left: 9%;
	position: absolute;
	z-index: 2;
	transition: all 0.5s linear;
	transition-delay: 0.35s;
	filter: blur(15px);
	opacity: 0;
	visibility: hidden;
}
.is_loaded .mainvisual .img01,
.is_loaded .mainvisual .img02,
.is_loaded .mainvisual .img03 {
	opacity: 1;
	visibility: visible;
	filter: blur(0);
}
.mainvisual .icon_bg {
  position: absolute;
  top: 0;
  left: 0;
  width: 11%;
  transition: all 1s linear;
  transition-delay: 0.35s;
  opacity: 0;
  visibility: hidden;
}
.is_loaded .mainvisual .icon_bg {
  opacity: 1;
  visibility: visible;
}
.mainvisual .mv_capt {
	position: absolute;
	left: 52%;
	right: 15px;
	top: 79%;
	z-index: 9;
  transition: all 0.5s linear;
	transition-delay: 0.35s;
	opacity: 0;
	visibility: hidden;
}
.is_loaded .mainvisual .mv_capt {
  opacity: 1;
  visibility: visible;
}
@media screen and (max-width: 1000px) {
  .mainvisual .mv_capt {
    top: 84%;
  }
}
@media screen and (max-width: 768px) {
  /* .mainvisual { padding-top: 110px; } */
  .mainvisual .img03 {display: none;
    width: 84%;
    top: 0;
    left: 10%;
    max-width: 362px;
    transform: translateX(0%);
  }
  .mainvisual .img01,
  .mainvisual .img02 {
    width: 96%;
  }
  .mainvisual .mv_capt {
    top: 75%;
    left: 10%;
  }
}

.sec_block {
  position: relative;
  z-index: 0;
  padding-bottom: 180px;
}
.iconbg02 {
  z-index: -1;
  position: absolute;
  top: 14%;
  left: 0;
  width: 13%;
  max-width: 210px;
}
.iconbg03 {
	z-index: -1;
	position: absolute;
	top: -11.5%;
	right: -10%;
	width: 17%;
	max-width: 178px;
}
.iconbg04 {
  z-index: -1;
  position: absolute;
  top: 53%;
  right: 0;
  width: 14%;
  max-width: 218px;
}
.sec_block .block {
  position: relative;
  z-index: 0;
}
.sec_block .block + .block { margin-top: 115px; }
.sec_block .block .wrap {
  background: #fff;
  border: 3px solid #4ea3c3;
  padding: 30px;
  position: relative;
  margin: 0 0 90px;
}
.sec_block .block .box {
  display: flex;
  gap: 20px;
  position: relative;
  z-index: 0;
}
.sec_block .block .b_title {
  background: url(../imgs/bg_ttl.png) repeat-x center bottom / auto 8px;
  display: inline-block;
  position: relative;
  z-index: 0;
  margin: 0 0 30px;
  padding: 0 0 15px;
  max-width: calc(100% - 150px);
}
.sec_block .block .b_title .ttl {
  color: #2b91b7;
  font-size: 20px;
  font-weight: 500;
  line-height: 2;
  letter-spacing: 0.1em;
  display: inline-block;
  text-align: center;
}
.sec_block .block .ttl02 {
  border-bottom: 3px solid #4ea3c3;
  font-size: 16px;
  line-height: 1.8;
  letter-spacing: 0.05em;
  display: inline-block;
  padding: 0 0 15px;
  margin: 0 0 30px;
}
.sec_block .block .icon_flag {
  position: absolute;
  top: -50px;
  left: -26px;
  z-index: -1;
  width: 130px;
}
.sec_block .block .b_left {
  width: 130px;
}
.sec_block .block .b_left .num {
	color: #4ea3c3;
	font-size: 66px;
	letter-spacing: 0.1em;
	line-height: 1;
	padding-left: 30px;
  padding-top: 10px;
	margin: 0 0 15px;
}
.sec_block .block .b_left .lbl {
  background: #41B6E2;
  background: linear-gradient(120deg, rgba(65, 182, 226, 1) 0%, rgba(65, 182, 226, 1) 50%, rgba(37, 147, 192, 1) 50%, rgba(37, 147, 192, 1) 100%);
  color: #ffd900;
  font-size: 20px;
  font-weight: 500;
  text-align: center;
  letter-spacing: 0.1em;
  line-height: 1.2;
  min-height: 80px;
  display: flex;
  justify-content: center;
  align-items: center;
}
.sec_block .block .b_right {
  flex: 1;
  padding-left: 15px;
  position: relative;
  z-index: 0;
}
.sec_block .block .b_right .text {
	font-size: 26px;
	font-weight: 700;
	letter-spacing: 0.1em;
	line-height: 1;
	margin: 0 0 30px;
	padding-right: 160px;
	text-align: center;
}
.sec_block .block .b_cont {
  padding-left: 30px;
}
.sec_block .block .b_right .text .medium {
  font-size: 69%;
  font-weight: 500;
  letter-spacing: 0;
  line-height: 2.2;
  display: inline-block;
}
.sec_block .block .b_right .text .num {
  color: #d646a6;
  font-size: 181%;
  font-size: 220%;
  letter-spacing: 0;
  line-height: 1;
}
.sec_block .block .b_right .text .large {
  color: #d646a6;
  font-size: 161%;
  letter-spacing: 0;
  line-height: 1;
}
.sec_block .block .b_right .text .num .small {
  font-size: 55%;
}
.sec_block .block .b_right .icon_gift {
  position: absolute;
  top: -50px;
  right: -30px;
  width: 152px;
}
.sec_block .block .b_right .lbl01 {
  position: absolute;
  top: 0;
  right: -25px;
  width: 260px;
}
.sec_block .block .b_right .lbl02 {
  position: absolute;
  top: 60px;
  right: 0;
  width: 178px;
}
.sec_block .block03 .text,
.sec_block .block02 .text {
  padding-right: 200px;
  text-align: center;
}
.sec_block .block .list {
  display: grid;
  grid-template-columns: 1fr 1fr 1fr;
  gap: 15px;
  margin: 0 0 40px;
}
.sec_block .block .list .item {
  position: relative;
  z-index: 0;
  text-align: center;
  margin-top: calc(5% + 80px);
}
.sec_block .block .list .item:before {
  content: "";
  width: 100%;
  padding-top: 100%;
  background: #e0f3f9;
  border-radius: 50%;
  position: absolute;
  top: -15%;
  left: 0;
  z-index: -1;
}
.sec_block .block .list .item .ttl {
  font-size: 18px;
  font-weight: 500;
  line-height: 1.4;
  margin: 0 0 15px;
}
.sec_block .block .list .item .ttl .num {
  font-size: 170%;
  line-height: 1;
}
.sec_block .block .list .item .img {
  width: 56%;
  margin: 20px auto 0;
  position: relative;
  z-index: 0;
}
.sec_block .block .list .item .img .lbl {
  border-radius: 50%;
  background: #fee450;
  color: #007b9d;
  width: 72px;
  height: 72px;
  font-size: 13px;
  line-height: 1.4;
  font-weight: 500;
  text-align: center;
  display: flex;
  align-items: center;
  justify-content: center;
  position: absolute;
  top: 0;
  right: 0;
  transform: translate(90%,-12%);
}
.sec_block .block .list .item .img02 {
  width: 46.7%;
}
.sec_block .block .list .item .img03 {
  width: 41.6%;
}
.sec_block .block .list .item .capt {
  line-height: 1.4;
  letter-spacing: 0.05em;
  padding: 0px 15px 0 55px;
  text-align: left;
  margin-top: 30px;
}
.sec_block .block03 {
  margin-top: 190px !important;
}
@media screen and (max-width: 1000px) {
  .sec_block .block .b_right .text {
    letter-spacing: -0.01em;
    font-size: 22px;
    line-height: 1.4;
    padding-right: 0;
  }
  .sec_block .block .b_cont {
    padding-left: 0;
  }
  .sec_block .block .b_right .lbl01 {
    top: -30px;
    width: 190px;
    transform: translateY(-70%);
  }
  .sec_block .block .b_right .lbl02 {
    right: -15px;
    width: 164px;
  }
  .sec_block .block02 .b_title {
    max-width: 100%;
  }
  .sec_block .block .b_title .ttl {
    font-size: 19px;
    letter-spacing: 0.01em;
  }
  .sec_block .block03 .text,
  .sec_block .block02 .text {
    padding-right: 0;
  }
  .sec_block .block .list .item .ttl {
    padding: 0 15px;
    letter-spacing: 0.01em;
  }
  .sec_block .block .list .item .capt {
    letter-spacing: 0.01em;
    padding: 0px 15px;
  }
  .sec_block .block03 .wrap {
    /* padding: 0 15px 0 30px; */
  }
}
@media screen and (max-width: 767px) {
  .sec_block .block + .block {
    margin-top: 70px;
  }
  .sec_block .block .box {
    flex-wrap: wrap;
  }
  .sec_block .block .b_left {
    width: 100%;
  }
  .sec_block .block .b_right {
    padding-left: 0;
    width: 100%;
    text-align: center;
  }
  .sec_block .block .b_title {
    max-width: 100%;
  }
  .sec_block .block .b_title .ttl {
    font-size: 16px;
  }
  .sec_block .block .b_right .icon_gift {
    position: relative;
    top: 0;
    right: 0;
    width: 112px;
    margin: 0 auto;
  }
  .sec_block .block .b_right .text {
    text-align: center;
  }
  .sec_block .block .b_right .text .large,
  .sec_block .block .b_right .text .num {
    line-height: 1.4;
    display: block;
    margin: 0 0 5px;
  }
  .sec_block .block .wrap {
    border-width: 1px;
    padding: 30px 15px;
    margin-bottom: 40px;
  }
  .sec_block .block .b_left .lbl {
    font-size: 18px;
    padding: 10px;
    min-height: 90px;
  }
  .sec_block .block .b_left .num {
    font-size: 52px;
    padding-right: 30px;
    text-align: center;
  }
  .sec_block .block .b_right .lbl01 {
    top: 0;
    width: 190px;
    transform: translateY(0);
    position: relative;
    right: 0;
    margin: 0 auto 15px;
  }
  .sec_block .block .b_right .lbl02 {
    position: static;
    margin: 0 auto 15px;
  }
  .sec_block .block .b_right .text {
    font-size: 20px;
    letter-spacing: 0.01em;
  }
  .sec_block .block .list {
    grid-template-columns: 1fr;
    gap: 30px;
    margin-top: 0;
  }
  .sec_block .block .list .item {
    margin-top: 0;
    padding: 30px 15px;
  }
  .sec_block .block .list .item::before {
    padding-top: 0;
    border-radius: 20px;
    top: 0;
    left: 0;
    height: 100%;
  }
  .sec_block .block .list .item .ttl {
    font-size: 16px;
  }
  .sec_block .block03 {
    margin-top: 90px !important;
  }
  .sec_block .block .ttl02 {
    border-width: 1px;
    font-size: 12px;
    letter-spacing: 0.01em;
    text-align: left;
  }
  .sec_block .block .b_right .text .medium {
    line-height: 2;
    margin: 0 0 10px;
  }
  .sec_block {
    padding-bottom: 50px;
  }
  .iconbg03 {
    top: -30px;
  }
}

.sec_problem {
  background: #e0f3f9;
  padding: 60px 0 160px;
  text-align: center;
  position: relative;
  z-index: 1;
}
.sec_problem .btn_page .btn span::after,
.sec_problem .btn_page .btn span::before {
	background: #e0f3f9;
}
.sec_problem .iconbg {
  width: 20%;
  max-width: 276px;
  position: absolute;
  bottom: 100%;
  left: 0;
  z-index: 1;
}
.sec_problem .p_ttl {
  color: #1052af;
  font-size: 26px;
  letter-spacing: 0.15em;
  font-weight: 500;
  line-height: 1.7;
  margin: 0 0 50px;
  text-align: center;
}
.sec_problem .p_icon {
  display: inline-block;
  text-align: center;
  margin: 30px auto;
  width: 100%;
  max-width: 280px;
}
.sec_problem .p_list {
  display: grid;
  grid-template-columns: 1fr 1fr 1fr;
  gap: 56px;
  width: 100%;
  max-width: 960px;
  margin: 0 auto;
}
.sec_problem .p_lbl {
  color: #1052af;
  font-size: 30px;
  font-weight: 700;
  letter-spacing: 0.05em;
  line-height: 1;
  display: inline-block;
  position: relative;
  padding: 0 40px;
  text-align: center;
  margin: 0 0 60px;
  z-index: 0;
}
.sec_problem .p_lbl:before {
  content: "";
  background: #1052af;
  height: 55px;
  position: absolute;
  left: 0;
  top: 50%;
  width: 3px;
  transform: rotate(-20deg) translateY(-50%);
}
.sec_problem .p_lbl:after {
  content: "";
  background: #1052af;
  height: 55px;
  position: absolute;
  right: 0;
  top: 50%;
  width: 3px;
  transform: rotate(20deg) translateY(-50%);
}
@media screen and (max-width: 1200px) {
  .sec_problem .p_list {
    gap: 20px;
  }
  .sec_problem .p_lbl {
    letter-spacing: 0.01em;
    padding: 0 20px;
  }
}
@media screen and (max-width: 768px) {
  .sec_problem .p_list {
    display: block;
    width: 360px;
    margin: 0 auto 30px;
  }
}
@media screen and (max-width: 767px) {
  .sec_problem {
    padding-bottom: 60px;
  }
  .sec_problem .p_ttl {
    font-size: 20px;
    letter-spacing: 0.05em;
    margin: 0 0 30px;
  }
  .sec_problem .p_list {
    grid-template-columns: 1fr;
    padding: 0;
    width: 100%;
    max-width: 320px;
    margin: 0 auto 40px;
  }
  .sec_problem .p_lbl {
    font-size: 22px;
    line-height: 1.6;
    margin: 0 0 30px;
  }
  .sec_problem .p_lbl::after {
    right: 20px;
    width: 1px;
  }
  .sec_problem .p_lbl::before {
    left: 20px;
    width: 1px;
  }
}

.foot_copy {
  display: flex;
  justify-content: space-between;
  align-items: center;
  padding: 45px 15px 40px;
  width: 100%;
  max-width: 1170px;
  margin: 0 auto;
}
.upTo-foot_copy {
	margin-top: 0;
	padding: 0;
}
.foot_copy .ft_logo {
  max-width: 270px/*356px*/;
}

.top_btn {
	right: 0;
	bottom: 0;
	width: 66px;
}
@media screen and (max-width: 767px) {
  .foot_copy {
    padding: 15px 50px;
    flex-wrap: wrap;
    gap: 7px;
    flex-direction: column;
    justify-content: center;
  }
  .top_btn {
    width: 42px;
  }
}
.btn_shop_wrap {
  padding-right: 160px;
}
.btn_shop {
  display: block;
  width: 100%;
  max-width: 390px;
  margin: 30px auto 0;
  transition: all 0.3s ease;
}
.btn_shop:hover {
  opacity: 0.7;
}
@media screen and (max-width: 1000px) {
  .btn_shop_wrap {
    padding-right: 0;
  }
}