html {
  scroll-behavior: smooth;
}
body {
  padding-top: 50px;
  font-family: 'M PLUS Rounded 1c', sans-serif;
  color: #003b4d;
  font-size: 16px;
  font-weight: 500;
}
img {
  max-width: 100%;
  height: auto;
}
header {
  position: fixed;
  top: 0;
  display: flex;
  justify-content: space-between;
  background-color: #fff;
  box-shadow: 0px 4px 20px 4px rgba(0, 0, 0, 0.3);
  width: 100%;
  height: 50px;
  z-index: 99;
}
.header-logo {
  width: 80px;
  position: relative;
  top: 10px;
  left: 25px;
}
.header-logo img {
  max-width: 80%;
}
.menu-icon {
  position: relative;
  width: 35px;
  height: 20px;
  top: 12px;
  right: 25px;
  cursor: pointer;
  transition: all .4s;
}
.menu-icon span {
  display: block;
  width: 35px;
  height: 2px;
  background-color: #00b3ed;
  position: absolute;
  transition: all .4s;
}
.menu-icon .bar1 {
  top: 0;
}
.menu-icon .bar2 {
  top: 9px;
}
.menu-icon .bar3 {
  bottom: 0;
}
.bar1.open {
  top: 8px;
  transform: rotate(45deg);
}
.bar2.open {
  opacity: 0;
}
.bar3.open {
  top: 8px;
  transform: rotate(-45deg);
}
.drawer {
  width: 100vw;
  height: 100%;
  position: fixed;
  top: 50px;
  right: -110%;
  -webkit-transition: .7s;
  transition: .7s;
  background-color: rgba(255, 255, 255, .9);
  text-align: center;
  z-index: 10;
}
.drawer.open {
  right: 0;
}
.drawer li {
  padding: 24px 0;
  position: relative;
}
.drawer li a {
  font-size: 18px;
  color: #00b3ed;
}
.drawer li::after {
  position: absolute;
  bottom: 0;
  left: 47%;
  content: '';
  width: 24px;
  height: 2px;
  background-color: #00b3ed;
}
.drawer li a:hover {
  opacity: .3;
}
.nav-contact {
  margin: 24px auto;
  width: 112px;
  height: 112px;
  border-radius: 50%;
  background: linear-gradient(30deg, #ed003f, #edae00);
  border: 4px solid #ed3700;
  transition: all 0.3s;
}
.nav-contact:hover {
  transform: scale(1.3, 1.3);
}
.nav-contact img {
  padding-top: 8px;
}
.nav-contact p {
  font-size: 18px;
  font-weight: 800;
  color: #fff;
}
_::-webkit-full-page-media, _:future, :root .nav-contact p {
  font-size: 14px;
}
.baloon {
  display: flex;
  text-align: center;
  justify-content: center;
  height: 70px;
  z-index: 1;
}
.baloon span {
  color: #00b4ed;
  font-weight: 700;
}
.baloon-1,.baloon-2,.baloon-3 {
  position: relative;
  width: 33%;
  height: 100%;
  max-width: 250px;
}
.baloon-1 img {
  position: absolute;
  top: 10px;
  left: 10px;
  z-index: 1;
  transform: scale(-1,1);
}
.baloon-1 span,.baloon-3 span {
  position: absolute;
  top: 55%;
  left: 25%;
  z-index: 2;
  line-height: 16px;
}
.baloon-2 img {
  position: absolute;
  top: 0;
  left: 0;
  z-index: 1;
}
.baloon-2 span {
  position: absolute;
  top: 40%;
  left: 14%;
  z-index: 2;
  line-height: 16px;
  white-space: nowrap;
}
_::-webkit-full-page-media, _:future, :root .baloon-2 span {
  left: 12%;
}
.baloon-3 img {
  position: absolute;
  top: 10px;
  right: 10px;
  z-index: 1;
}
.baloon-3 span {
  left: 14%;
}
.fv {
  position: relative;
}
.fv > img {
  width: 100%;
}
.fv-content {
  position: absolute;
  top: 9.5%;
  display: flex;
  align-items: center;
  text-align: center;
  justify-content: center;
  width: 100%;
}
.fv-content img {
  width: 33%;
  position: relative;
  top: 13px;
  left: 14px;
  transform: rotate(-2.5deg);
}
_::-webkit-full-page-media, _:future, :root .fv-content img {
  top: 13px;
  left: 12px;
}
.fv-content .annotation {
  display: block;
  color: #fff;
  font-size: 10px;
  position: absolute;
  left: 0;
  bottom: 20%;
}
.fv-content h1 {
  font-size: 18px;
  color: #fff;
  line-height: 30px;
  padding-left: 8px;
}
.fv-content h1 span {
  display: inline-block;
  font-size: 24px;
  color: #edd900;
  position: relative;
  padding-top: 0.2em;
}
.fv-content h1 span::before {
  position: absolute;
  content: "";
  width: 0.2em;
  height: 0.2em;
  border-radius: 50%;
  background-color: #edd900;
  top: 0;
  left: 50%;
  transform: translate(-50%, 0);
}
.fv-content p {
  font-size: 10px;
  color: #fff;
  text-align: right;
}
.fv-contact {
  width: 280px;
  height: 50px;
  line-height: 50px;
  border-radius: 28px;
  margin: -16px auto 24px;
  background: linear-gradient(45deg, #ed003f, #edae00);
  opacity: .8;
  border: 4px solid #fff;
  box-shadow: 4px 4px 20px 4px rgba(0, 0, 0, 0.3);
  text-align: center;
  transition: all 0.3s;
}
.fv-contact:hover {
  transform: scale(1.2, 1.2);
}
.fv-contact a {
  color: #fff;
  font-size: 16px;
  font-weight: 800;
}
.trouble,.utilization {
  max-width: 920px;
  width: 77%;
  margin: 0 auto 10px;
  position: relative;
  background: url(../img/brackets1.png) no-repeat;
  background-size: 100%;
  text-align: center;
  display: flex;
  align-items: flex-start;
  justify-content: center;
}
.utilization {
  background: url(../img/brackets2.png) no-repeat;
  background-size: 100%;
  /* z-index: 1; */
}
.trouble img,.utilization img {
  position: absolute;
  left: 10%;
  top: 0;
}
.utilization img {
  left: 7%;
  top: -20%;
}
.trouble p span,.utilization p span {
  font-size: 24px;
  color: #008aed;
  font-weight: 800;
}
.trouble p .under {
  border-bottom: dotted 1px #008aed;
}
.utilization p span {
  color: #edae00;
  -webkit-text-stroke: 1px #edae00;
}
.utilization p .marker {
  color: #003b4d;
  -webkit-text-stroke: 0;
  position: relative;
}
.utilization p .marker::before {
  border-bottom: 10px solid #edae00;
  opacity: .7;
	border-radius: 5px;
	content: '';
	position: absolute;
	bottom: 0;
	left: 0;
	right: 0;
	z-index: -1;
}
.troubles {
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
  text-align: center;
  margin-bottom: 48px;
}
.troubles > div {
  width: 42%;
  position: relative;
  transition: none;
}
.troubles > div:nth-of-type(even) {
  top: 36px;
  margin-left: 12px;
}
.troubles img {
  width: 100%;
  max-width: 385px;
}
.troubles p {
  color: #fff;
  font-size: 14px;
  line-height: 30px;
  position: absolute;
  top: 28%;
  left: 10%;
}
_::-webkit-full-page-media, _:future, :root .troubles p {
  left: 11%;
}
.troubles div:nth-of-type(3) p {
  left: 23%;
}
.troubles div:nth-of-type(4) p,
.troubles div:nth-of-type(5) p{
  left: 20%;
}
.merit {
  text-align: center;
}
.merit > div {
  text-align: left;
}
.img1 {
  margin-top: -30px;
  text-align: left;
  font-size: 0;
}
.img1 img {
  width: 30%;
  margin-bottom: 0;
}
.merit {
  background: #e8f8fd;
  padding-bottom: 1.5rem;
  display: flex;
  flex-wrap: wrap;
  justify-content: space-around;
}
.merit h2,.case h2,.plan h2,.contact h2 {
  font-size: 18px;
  font-weight: 800;
  color: #008aed;
  padding-top: .5rem;
  margin-bottom: 1rem;
  position: relative;
  width: 100%;
}
.contact h2 {
  color: #fff;
}
.merit h2::before {
  position: absolute;
  content: '';
  background-image: url(../img/glitter.png),url(../img/glitter2.png);
  background-size: 10% auto, 10% auto;
  background-repeat: no-repeat, no-repeat;
  background-position: left top, right bottom;
  width: 84%;
  height: 100%;
  left: 9%;
}
.merit h2::after,.case h2::after,.plan h2::after,.contact h2::after {
  position: absolute;
  content: '';
  border-bottom: 1px dotted #008aed;
  width: 216px;
  bottom: -6px;
  left: 50%;
  transform: translateX(-50%)
}
.case h2::after {
  width: 144px;
  bottom: -2px;
}
.plan h2::after {
  width: 120px;
  bottom: -2px;
}
.contact h2::after {
  width: 96px;
  bottom: -2px;
  border-bottom: 1px dotted #fff;
}
.merit > div {
  width: 80%;
  margin: 2rem;
  background: #fff;
  box-shadow: 4px 4px 20px 4px rgba(0, 0, 0, 0.3);
  border-radius: 0 40px 40px 40px;
  position: relative;
}
.merit > div:nth-of-type(1):before {
  position: absolute;
  content: '';
  background: url(../img/glitter.png) no-repeat;
  background-size: 10%;
  top: -72px;
  right: -12px;
  width: 100%;
  transform: rotate(180deg);
}
.merit > div h3 {
  font-size: 24px;
  border-radius: 30px;
  color: #fff;
  padding: .5rem .5rem .5rem .2rem;
  display: inline-block;
  background: linear-gradient(0, #0162ea, #00e0ff);
  position: absolute;
  top: -1em;
}
.merit > div p {
  padding: 2.6em 2em 2em;
  font-size: 15px;
}
.merit p .marker {
  background: linear-gradient(rgba(255,255,255,0) 50%, #f2e44c 60%);
  border-radius: 4px;
}
.case {
  background: url(../img/kawabata6-2.png) no-repeat center / cover;
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
  text-align: center;
}
.case h2 {
  width: 100%;
  -webkit-text-stroke: .5px #008aed;
  text-shadow:
  1.2px 0 0 #fff,
  0 1.2px 0 #fff,
  -1.2px 0 0 #fff,
  0 -1.2px 0 #fff;
}
.case > div {
  background: #fff;
  border-radius: 30px;
  box-shadow: 8px 8px 30px 8px rgba(0, 0, 0, 0.3);
  padding: 1.5rem 0 1rem;
  margin: 0 1rem 1.5rem;
  width: 35%;
  max-width: 300px;
}
.case div:nth-of-type(5) {
  max-width: 500px;
}
.case img {
  width: 40%;
}
.case p {
  font-size: 14px;
}
.case div:nth-of-type(3) p,
.case div:nth-of-type(4) p {
  font-size: .75rem;
  line-height: 14px;
}
.case div:nth-of-type(5) {
  width: 45%;
  text-align: left;
  padding: .5rem 1rem;
}
.case div:nth-of-type(5) p {
  font-size: .75rem;
  color: #ed003f;
}
.case div:nth-of-type(5) ul li {
  font-size: 10px;
  margin-left: .5rem;
}
.case div:nth-of-type(5) ul li::before {
  position: relative;
  top: -2px;
  left: -2px;
  display: inline-block;
  width: 3px;
  height: 3px;
  content: '';
  border-radius: 50%;
  background: #003b4d;
}
.up {
  position: relative;
  text-align: center;
}
.up > img {
  width: 100%;
  max-width: 1200px;
}
.up span {
  position: absolute;
  top: 12%;
  left: 6%;
  font-size: .75rem;
  font-weight: 800;
  line-height: 14px;
  color: #fff;
}
.up p {
  position: absolute;
  top: 40%;
  left: 20%;
}
.up .under {
  color: #edae00;
  font-weight: 800;
  font-size: 18px;
  text-decoration: underline;;
}
_::-webkit-full-page-media, _:future, :root .up .under {
  font-weight: 800;
}
.up .annotation {
  top: 75%;
  left: 40%;
  font-size: 10px;
}
.up img:nth-of-type(2) {
  position: absolute;
  top: 40%;
  right: 10%;
  width: 10%;
}
.point {
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
}
.point > div {
  width: 80%;
  position: relative;
}
.point > div img {
  max-width: 600px;
  width: 100%;
}
.point span {
  font-size: 12px;
  position: absolute;
  top: 28%;
  left: 11.5%;
}
.point .number {
  font-size: 1.5em;
  top: 35%;
  left: 12%;
}
.point div:nth-of-type(1) span {
  color: #f15874;
}
.point div:nth-of-type(2) span {
  color: #f67f9f;
}
.point div:nth-of-type(3) span {
  color: #edae00;
}
.point div:nth-of-type(4) span {
  color: #f69b7f;
}
.point div:nth-of-type(5) span {
  color: #f15f33;
}
.point div:nth-of-type(odd) p {
  position: absolute;
  top: 25%;
  left: 32%;
}
.point div:nth-of-type(even) p {
  position: absolute;
  top: 35%;
  left: 32%;
}
.pv {
  background: url(../img/kawabata5.png) no-repeat;
  background-size: 25%;
  text-align: center;
  padding: 4.2rem 0 6rem;
  margin-top: -3.5rem;
  background-position: right bottom;
}
.pv > p {
  background: linear-gradient(30deg, #ed003e, #ed3700);
  box-shadow: 4px 4px 20px 4px rgba(0, 0, 0, 0.3);
  padding: .5rem 0;
  color: #fff;
  text-decoration: underline;
  border-radius: 15px;
  font-size: .75rem;
  font-weight: 800;
  width: 83%;
  margin: 0 auto;
  position: relative;
  z-index: -1;
}
.pv > div {
  position: relative;
}
.pv > div img {
  width: 20%;
  position: absolute;
  top: -2.8rem;
  right: 4%;
}
.pv > div p {
  font-size: .75rem;
  font-weight: 700;
  color: #ed3700;
  position: absolute;
  top: -1.8rem;
  right: 8.5%;
  letter-spacing: -.2rem;
}
.plan {
  text-align: center;
  background: linear-gradient(0, #ccc, #fff);
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
}
.plan .utn {
  background: #ccc;
  border-radius: 15px;
  box-shadow:  8px 8px 30px 8px rgba(0, 0, 0, 0.3);
  margin: 1rem;
}
.plan .utn h3 {
  font-size: .85rem;
  color: #fff;
  background: #003b4d;
  padding: .5rem .2rem;
  text-align: left;
  border-radius: 15px 15px 0 0;
}
.plan .utn p {
  font-size: 1.4rem;
  color: #003b4d;
  padding: 2rem 1rem;
  position: relative;
}
.plan .utn p::before {
  position: absolute;
  content: '一括';
  top: 1.5rem;
  left: .5rem;
  font-size: .75rem;
}
.plan .sabutare {
  background: #fff;
  border-radius: 15px;
  box-shadow:  8px 8px 30px 8px rgba(0, 0, 0, 0.3);
  margin: 1rem 4rem;
}
.plan .sabutare h3 {
  background: #008aed;
  border-radius: 15px 15px 0 0;
  padding: 1rem 0 .5rem;
}
.plan .sabutare h3 img {
  width: 65%;
}
.plan .sabutare p {
  font-size: 1.4rem;
  color: #edae00;
  padding: 1rem 0 1.5rem;
}
.plan .sabutare p span {
  color: #ed003f;
  font-size: 1.7rem;
  position: relative;
}
.plan .sabutare p span::before {
  position: absolute;
  content: '月額';
  color: #edae00;
  top: -1rem;
  left: -1rem;
  font-size: 1rem;
}
.plan-content {
  text-align: left;
  background: #fff;
  padding: 1.5rem 1rem;
  margin: .5rem .5rem 3rem;
  border-radius: 40px;
  box-shadow:  8px 8px 30px 8px rgba(0, 0, 0, 0.3);
}
.plan-content p {
  line-height: 1.8rem;
}
.plan-content p .marker {
  background: linear-gradient(rgba(255,255,255,0) 50%, #f2e44c 60%);
  border-radius: 4px;
}
.plan-content p .red {
  color: #ed003f;
}
.plan-content p .strong {
  font-size: 1.15rem;
}
.contact {
  text-align: center;
  background: #008aed;
}
.contact h2 {
  -webkit-text-stroke: 1px #fff;
}
.contact form {
  display: flex;
  flex-wrap: wrap;
  text-align: center;
  justify-content: space-around;
}
.contact p {
  text-align: center;
}
.contact p,.contact label {
  color: #fff;
}
.contact .r-button {
  position: relative;
  top: 2px;
}
/* .contact div:first-child label {
  background: #fff;
  color: #003b4d;
  font-size: .75rem;
  padding: .25rem .5rem .25rem 0;
  border-radius: 12px;
  cursor: pointer;
} */
.contact div label,
.contact div input {
  display: block;
  cursor: pointer;
}
.contact div {
  text-align: left;
  width: 60%;
  margin: 1rem 0;
}
.contact div:nth-child(5) {
  width: 60%;
  margin: 1.5rem 0;
  text-align: left;
  /* margin-left: 0; */
}

.contact div:nth-child(5) .textarea{
  width:95%;
  margin-left: 0;
  box-sizing: border-box;
}

.contact div .inputs {
  width: 95%;
  padding: .5rem 0;
  border-radius: 15px;
  border: none;
}
textarea {
  border-radius: 15px;
}
.contact div:nth-of-type(1) label,
.contact div:nth-of-type(2) label,
.contact div:nth-of-type(3) label,
.contact div:nth-of-type(4) label {
  position: relative;
}
.contact div:nth-of-type(1) label::after,
.contact div:nth-of-type(2) label::after,
.contact div:nth-of-type(3) label::after,
.contact div:nth-of-type(4) label::after {
  position: absolute;
  top: 4px;
  left: 95%;
  content: '必須';
  font-size: 10px;
  background: #ed003f;
  border-radius: 5px;
  width: 30px;
  height: 15px;
  text-align: center;
}
.contact div:nth-of-type(1) label::after {
  left: 25%;
}
.contact div:nth-of-type(3) label::after {
  left: 52%;
}
.contact div:nth-of-type(4) label::after {
  left: 32%;
}
.contact div:nth-of-type(2) label::after {
  left: 25%;
}
/* .contact div:nth-of-type(3) label::after {  position: absolute;
  top: 4px;
  left: 25%;
  content: '任意';
  font-size: 10px;
  background: #003b4d;
  border-radius: 5px;
  width: 30px;
  height: 15px;
  text-align: center;
} */
.contact .button {
  margin: 0 auto;
  color: #fff;
  padding: .5rem 2.5rem;
  font-weight: 800;
  border: 2px solid #fff;
  border-radius: 20px;
  background: linear-gradient(30deg,#ed003f,#edae00);
  transition: all 0.3s;
}
.contact .button:hover {
  transform: scale(1.3, 1.3);
}
footer {
  text-align: center;
  padding: 1.5rem 0;
}
footer img {
  width: 35%;
}
footer p {
  font-size: 10px;
}
footer .company,footer .policy {
  display: block;
  text-align: right;
  margin-right:5%;
}
/* スクロールCSS */
/* 下から */
.slide-bottom {
	opacity: 0;
	transform: translate(0, 0);
	transition: all 1.0s 0.2s ease-out;
  z-index: 2;
}
 /* 左から */
.slide-left {
	opacity: 0;
	transform: translate(0, 0);
	transition: all 1.0s 0.2s ease-out;
 }
/* 右から */
.slide-right {
	opacity: 0;
	transform: translate(0, 0);
	transition: all 1.0s 0.2s ease-out;
 }
/* アニメーション */
.troubles > div:hover {
  cursor: pointer;
  transform: rotateX(360deg);
  transition: 1.2s ease-in-out;
}
.fluffy:hover {
  cursor: pointer;
  animation: fluffy1 .8s linear infinite;
}
@keyframes fluffy1 {
  0% { transform:translateY(0) }
  50% { transform:translateY(-50px) }
  100% { transform:translateY(0) scaleY(0.9) }
}
.utilization {
  transition: all .3s ease;
}
.utilization:hover {
  cursor: pointer;
  transform: scale(1.3, 1.3);
}
.merit > div,.case > div,.up,.point > div,.pv p,.utn,.sabutare {
  transition: all .6s ease;
}
.merit > div:hover,.case > div:hover,.up:hover,.point > div:hover,.pv p:hover,.sabutare:hover {
  cursor: pointer;
  transform: scale(1.15,1.15);
}
.utn:hover {
  cursor: pointer;
  transform: scale(.8, .8);
}
