@-webkit-keyframes pulseScarlet {
  0% {
    transform: translate(-50%, -50%) scale(1, 1);
    background-color: rgba(189, 85, 139, 0.2);
  }
  100% {
    transform: translate(-50%, -50%) scale(1.4, 1.4);
    background-color: rgba(189, 85, 139, 0);
  }
}
@keyframes pulseScarlet {
  0% {
    transform: translate(-50%, -50%) scale(1, 1);
    background-color: rgba(189, 85, 139, 0.2);
  }
  100% {
    transform: translate(-50%, -50%) scale(1.4, 1.4);
    background-color: rgba(189, 85, 139, 0);
  }
}
@-webkit-keyframes pulsePink {
  0% {
    transform: translate(-50%, -50%) scale(1, 1);
    background-color: rgba(189, 85, 139, 0.2);
  }
  100% {
    transform: translate(-50%, -50%) scale(1.4, 1.4);
    background-color: rgba(189, 85, 139, 0);
  }
}
@keyframes pulsePink {
  0% {
    transform: translate(-50%, -50%) scale(1, 1);
    background-color: rgba(189, 85, 139, 0.2);
  }
  100% {
    transform: translate(-50%, -50%) scale(1.4, 1.4);
    background-color: rgba(189, 85, 139, 0);
  }
}
@-webkit-keyframes pulseSax {
  0% {
    transform: translate(-50%, -50%) scale(1, 1);
    background-color: rgba(88, 122, 141, 0.2);
  }
  100% {
    transform: translate(-50%, -50%) scale(1.4, 1.4);
    background-color: rgba(88, 122, 141, 0);
  }
}
@keyframes pulseSax {
  0% {
    transform: translate(-50%, -50%) scale(1, 1);
    background-color: rgba(88, 122, 141, 0.2);
  }
  100% {
    transform: translate(-50%, -50%) scale(1.4, 1.4);
    background-color: rgba(88, 122, 141, 0);
  }
}
@-webkit-keyframes pulseDarkblue {
  0% {
    transform: translate(-50%, -50%) scale(1, 1);
    background-color: rgba(0, 11, 81, 0.2);
  }
  100% {
    transform: translate(-50%, -50%) scale(1.4, 1.4);
    background-color: rgba(0, 11, 81, 0);
  }
}
@keyframes pulseDarkblue {
  0% {
    transform: translate(-50%, -50%) scale(1, 1);
    background-color: rgba(0, 11, 81, 0.2);
  }
  100% {
    transform: translate(-50%, -50%) scale(1.4, 1.4);
    background-color: rgba(0, 11, 81, 0);
  }
}
@-webkit-keyframes pulseWhite {
  0% {
    transform: translate(-50%, -50%) scale(1, 1);
    background-color: rgba(255, 255, 255, 0.2);
  }
  100% {
    transform: translate(-50%, -50%) scale(1.4, 1.4);
    background-color: rgba(255, 255, 255, 0);
  }
}
@keyframes pulseWhite {
  0% {
    transform: translate(-50%, -50%) scale(1, 1);
    background-color: rgba(255, 255, 255, 0.2);
  }
  100% {
    transform: translate(-50%, -50%) scale(1.4, 1.4);
    background-color: rgba(255, 255, 255, 0);
  }
}
@-webkit-keyframes pulseBaby {
  0% {
    transform: translate(-50%, -50%) scale(1, 1);
    background-color: rgba(0, 11, 81, 0.2);
  }
  100% {
    transform: translate(-50%, -50%) scale(1.4, 1.4);
    background-color: rgba(0, 11, 81, 0);
  }
}
@keyframes pulseBaby {
  0% {
    transform: translate(-50%, -50%) scale(1, 1);
    background-color: rgba(0, 11, 81, 0.2);
  }
  100% {
    transform: translate(-50%, -50%) scale(1.4, 1.4);
    background-color: rgba(0, 11, 81, 0);
  }
}
@-webkit-keyframes pulseBluegreen {
  0% {
    transform: translate(-50%, -50%) scale(1, 1);
    background-color: rgba(0, 11, 81, 0.2);
  }
  100% {
    transform: translate(-50%, -50%) scale(1.4, 1.4);
    background-color: rgba(0, 11, 81, 0);
  }
}
@keyframes pulseBluegreen {
  0% {
    transform: translate(-50%, -50%) scale(1, 1);
    background-color: rgba(0, 11, 81, 0.2);
  }
  100% {
    transform: translate(-50%, -50%) scale(1.4, 1.4);
    background-color: rgba(0, 11, 81, 0);
  }
}
@keyframes pulseWhite {
  0% {
    transform: translate(-50%, -50%) scale(1, 1);
    background-color: rgba(255, 255, 255, 0.2);
  }
  100% {
    transform: translate(-50%, -50%) scale(1.4, 1.4);
    background-color: rgba(255, 255, 255, 0);
  }
}
@-webkit-keyframes pulsate {
  0% {
    transform: scale(1);
    opacity: 1;
  }
  100% {
    transform: scale(2);
    opacity: 0;
  }
}
@keyframes pulsate {
  0% {
    transform: scale(1);
    opacity: 1;
  }
  100% {
    transform: scale(2);
    opacity: 0;
  }
}
@-webkit-keyframes scale {
  0% {
    transform: scale(3);
  }
  100% {
    transform: scale(1);
  }
}
@keyframes scale {
  0% {
    transform: scale(3);
  }
  100% {
    transform: scale(1);
  }
}
@-webkit-keyframes scale2 {
  0% {
    transform: scale(0);
    transform-origin: left bottom;
  }
  100% {
    transform: scale(1);
    transform-origin: left bottom;
  }
}
@keyframes scale2 {
  0% {
    transform: scale(0);
    transform-origin: left bottom;
  }
  100% {
    transform: scale(1);
    transform-origin: left bottom;
  }
}
.mv {
  position: relative;
  margin-bottom: 9rem;
}
@media only screen and (max-width: 767px) {
  .mv {
    margin-bottom: 17.6vw;
  }
}
.mv::after {
  content: "";
  background: url("../img/recommend_plan/mv_btm_txt.svg") no-repeat center/100%;
  width: 34.8958vw;
  height: 13.6rem;
  right: 5rem;
  bottom: -5.8rem;
  position: absolute;
}
@media only screen and (max-width: 767px) {
  .mv::after {
    width: 55.2442666667vw;
    height: 21.5461333333vw;
    bottom: -11.3333333333vw;
    right: 4vw;
  }
}
.mv--txt {
  position: absolute;
  top: 16.875vw;
  text-align: center;
  width: 100%;
}
@media only screen and (max-width: 767px) {
  .mv--txt {
    top: 40.1%;
  }
}
.mv--txt h1 {
  color: #fff;
  font-size: 3.75vw;
  font-weight: 600;
  text-shadow: 0 0 10px rgba(0, 0, 0, 0.75);
}
@media print, screen and (min-width: 768px) {
  .mv--txt h1 {
    line-height: 5rem;
  }
}
@media only screen and (max-width: 767px) {
  .mv--txt h1 {
    font-size: 7.2093333333vw;
    line-height: 1.1;
  }
}
.mv--txt h1 span.sub-ttl {
  background: #fff;
  font-size: 2.25vw;
  width: 24rem;
  line-height: 4.6rem;
  color: #000b51;
  display: block;
  margin: 0 auto 1.6rem;
  letter-spacing: 0.16rem;
  text-shadow: none;
}
@media only screen and (max-width: 767px) {
  .mv--txt h1 span.sub-ttl {
    font-size: 4.3253333333vw;
    width: 48vw;
    line-height: 9.2vw;
    margin-bottom: 1.7333333333vw;
  }
}
.mv--txt h1 span.middle {
  font-size: 4.75vw;
}
@media only screen and (max-width: 767px) {
  .mv--txt h1 span.middle {
    font-size: 9.132vw;
  }
}
.mv--txt h1 strong {
  color: #f9f941;
  font-size: 5.75vw;
  font-weight: 500;
}
@media only screen and (max-width: 767px) {
  .mv--txt h1 strong {
    font-size: 11.0533333333vw;
  }
}
.mv--txt h1 strong .big {
  font-size: 6.25vw;
}
@media only screen and (max-width: 767px) {
  .mv--txt h1 strong .big {
    font-size: 12.0146666667vw;
  }
}
.mv--txt h1 strong .small {
  font-size: 6vw;
}
@media only screen and (max-width: 767px) {
  .mv--txt h1 strong .small {
    font-size: 11.5346666667vw;
  }
}

.bg {
  position: relative;
  padding-bottom: 5.5rem;
  margin-bottom: 7.4rem;
}
@media only screen and (max-width: 767px) {
  .bg {
    padding-bottom: 16vw;
    margin-bottom: 16.8vw;
  }
}
.bg::before {
  content: "";
  position: absolute;
  top: 30.7rem;
  bottom: 0;
  left: 0;
  width: 100%;
  background: #f9f9f7;
}

.inner {
  margin: auto;
}
@media print, screen and (min-width: 768px) {
  .inner {
    width: 77rem;
    max-width: calc(100% - 4rem);
  }
}
@media only screen and (max-width: 767px) {
  .inner {
    width: 90vw;
    max-width: none;
  }
}

.page-read {
  margin-bottom: 5.4rem;
}
@media only screen and (max-width: 767px) {
  .page-read {
    margin-bottom: 26.1333333333vw;
  }
}
@media print, screen and (min-width: 768px) {
  .page-read .inner {
    display: flex;
    align-items: stretch;
    flex-wrap: wrap;
  }
}
.page-read--graph {
  border: 1px solid #ccc;
  background: #fff;
  padding-bottom: 3.8rem;
}
@media print, screen and (min-width: 768px) {
  .page-read--graph {
    width: 48.5%;
  }
}
@media only screen and (max-width: 767px) {
  .page-read--graph {
    padding-bottom: 11vw;
    width: 87.2vw;
    margin: auto;
  }
}
.page-read--graph:nth-of-type(even) {
  margin-left: 3%;
}
@media only screen and (max-width: 767px) {
  .page-read--graph:nth-of-type(even) {
    margin: 10vw auto 2.6666666667vw;
    padding-bottom: 8.4vw;
  }
}
.page-read--graph figcaption {
  text-align: center;
  background: #091b5b;
  margin-bottom: 3.45rem;
}
@media only screen and (max-width: 767px) {
  .page-read--graph figcaption {
    margin-bottom: 8.6666666667vw;
  }
}
.page-read--graph figcaption h2 {
  font-size: 2.3rem;
  font-weight: 600;
  color: #f9f941;
  line-height: 1.1;
  padding: 0.96rem 0;
}
@media print, screen and (min-width: 768px) {
  .page-read--graph figcaption h2 {
    letter-spacing: -0.07rem;
  }
}
@media only screen and (max-width: 767px) {
  .page-read--graph figcaption h2 {
    font-size: 5.144vw;
    padding: 2.4vw 0;
    letter-spacing: 0;
  }
}
.page-read--graph figcaption h2 span {
  font-size: 1.5rem;
  font-weight: inherit;
  color: inherit;
  margin: 0.15rem 0 0 0;
}
@media print, screen and (min-width: 768px) {
  .page-read--graph figcaption h2 span {
    letter-spacing: -0.04rem;
  }
}
@media only screen and (max-width: 767px) {
  .page-read--graph figcaption h2 span {
    font-size: 3.3546666667vw;
  }
}
.page-read--graph .thum {
  display: flex;
  align-items: center;
  justify-content: center;
  margin: auto;
}
@media print, screen and (min-width: 768px) {
  .page-read--graph .thum {
    max-width: 92%;
  }
}
.page-read--graph .thum .figure1 {
  width: 34.4rem;
}
@media print, screen and (min-width: 768px) {
  .page-read--graph .thum .figure1 {
    margin: 0.25rem 0.9rem 0 0;
  }
}
@media only screen and (max-width: 767px) {
  .page-read--graph .thum .figure1 {
    width: 92.4%;
  }
}
.page-read--graph .thum .figure2 {
  width: 32.1rem;
}
@media print, screen and (min-width: 768px) {
  .page-read--graph .thum .figure2 {
    margin-right: 0.4rem;
  }
}
@media only screen and (max-width: 767px) {
  .page-read--graph .thum .figure2 {
    width: 74.6241333333vw;
  }
}
.page-read .sall-txt {
  text-align: right;
  width: 100%;
}
@media print, screen and (min-width: 768px) {
  .page-read .sall-txt {
    margin-top: 1rem;
  }
}
.page-read .sall-txt small {
  font-size: 0.9rem;
  display: block;
}
@media only screen and (max-width: 767px) {
  .page-read .sall-txt small {
    font-size: 2.016vw;
    margin-right: 1.3333333333vw;
  }
}

.section_title {
  border-bottom: 1px solid #091b5b;
  padding-bottom: 1.4rem;
  margin-bottom: 2.3rem;
  text-align: center;
  line-height: 1.15;
  position: relative;
}
@media only screen and (max-width: 767px) {
  .section_title {
    padding-bottom: 4vw;
    margin-bottom: 4vw;
  }
}
.section_title::before {
  content: "";
  position: absolute;
}
.section_title * {
  color: #091b5b;
}
.section_title span {
  display: inline-block;
  margin-bottom: 0;
  font-weight: 600;
}
.section_title span.sub_title {
  display: block;
  font-size: 2.14rem;
  font-weight: 600;
  margin-bottom: 0.3rem;
}
@media only screen and (max-width: 767px) {
  .section_title span.sub_title {
    font-size: 4.2786666667vw;
    letter-spacing: 0.1333333333vw;
    margin-bottom: 0.4vw;
  }
}
.section_title span.fs65 {
  font-size: 3.12rem;
}
@media only screen and (max-width: 767px) {
  .section_title span.fs65 {
    font-size: 6.18vw;
  }
}
.section_title span.fs110 {
  font-size: 5.28rem;
}
@media only screen and (max-width: 767px) {
  .section_title span.fs110 {
    font-size: 10.4573333333vw;
  }
}
.section_title strong {
  font-size: 4.56rem;
  font-weight: 600;
}
@media only screen and (max-width: 767px) {
  .section_title strong {
    font-size: 9.032vw;
  }
}
.section_title strong.fs85 {
  font-size: 4.08rem;
}
@media only screen and (max-width: 767px) {
  .section_title strong.fs85 {
    font-size: 6.5306666667vw;
  }
}

.point01--title::before {
  background: url("../img/recommend_plan/point_ttl1.svg") no-repeat center/100%;
  width: 16.32rem;
  height: 9rem;
  top: -3.7rem;
  left: 7.3rem;
}
@media only screen and (max-width: 767px) {
  .point01--title::before {
    width: 29.2vw;
    height: 15.4666666667vw;
    top: -9.3333333333vw;
    left: 0;
  }
}
.point01 .plan-info {
  display: flex;
  align-items: flex-end;
  justify-content: center;
  margin-bottom: 4.8rem;
}
@media only screen and (max-width: 767px) {
  .point01 .plan-info {
    margin-bottom: 33.3333333333vw;
  }
}
.point01 .plan-info li {
  font-size: 2.304rem;
  font-weight: 600;
  color: #091b5b;
}
@media only screen and (max-width: 767px) {
  .point01 .plan-info li {
    font-size: 4.5vw;
  }
}
.point01 .plan-info li.border {
  padding: 0 2.5rem;
  border-left: 1px solid #091b5b;
  border-right: 1px solid #091b5b;
  margin-right: 1.5rem;
  margin-left: 1.5rem;
}
@media only screen and (max-width: 767px) {
  .point01 .plan-info li.border {
    padding: 0 4vw;
    margin-right: 2.6666666667vw;
    margin-left: 2.6666666667vw;
  }
}
.point01 .plan-info li strong {
  font-size: 3.36rem;
  font-weight: 600;
}
@media only screen and (max-width: 767px) {
  .point01 .plan-info li strong {
    font-size: 7.3733333333vw;
  }
}
.point01 .plan {
  position: relative;
  margin: auto;
}
@media print, screen and (min-width: 768px) {
  .point01 .plan {
    width: 67.1rem;
  }
}
@media only screen and (max-width: 767px) {
  .point01 .plan {
    width: 88vw;
    padding-bottom: 31.4666666667vw;
  }
}
.point01 .plan--image {
  margin: auto;
}
@media print, screen and (min-width: 768px) {
  .point01 .plan--image {
    padding-left: 0.3rem;
    width: 55.9rem;
  }
}
.point01 .plan--point {
  position: absolute;
  width: 12.76rem;
}
@media only screen and (max-width: 767px) {
  .point01 .plan--point {
    width: 31.7333333333vw;
  }
}
.point01 .plan--point.point1 {
  top: -1.1rem;
  left: 0;
}
@media only screen and (max-width: 767px) {
  .point01 .plan--point.point1 {
    top: -24.2666666667vw;
    left: 4.6666666667vw;
  }
}
.point01 .plan--point.point2 {
  top: -1.1rem;
  right: 0;
}
@media only screen and (max-width: 767px) {
  .point01 .plan--point.point2 {
    top: -24.2666666667vw;
    right: 8vw;
  }
}
.point01 .plan--point.point3 {
  top: 28rem;
  left: 0;
}
@media only screen and (max-width: 767px) {
  .point01 .plan--point.point3 {
    top: auto;
    bottom: 21.6vw;
    left: 4.6666666667vw;
  }
}
.point01 .plan--point.point4 {
  top: 20.1rem;
  right: 0;
}
@media only screen and (max-width: 767px) {
  .point01 .plan--point.point4 {
    top: auto;
    bottom: 46.4vw;
    right: 2.5333333333vw;
  }
}
.point01 .plan--point.point5 {
  bottom: 7.4rem;
  right: 0;
}
@media only screen and (max-width: 767px) {
  .point01 .plan--point.point5 {
    bottom: 0;
    right: 2.9333333333vw;
  }
}
.point01 .plan--point figcaption {
  background: #091b5b;
  padding: 0.6rem 0 0.4rem;
  margin-bottom: 0.15rem;
}
@media only screen and (max-width: 767px) {
  .point01 .plan--point figcaption {
    margin-bottom: 0.4vw;
    padding: 1.6vw 0 0.8vw;
  }
}
.point01 .plan--point figcaption span {
  background: #fff;
  text-align: center;
  color: #091b5b;
  font-size: 0.864rem;
  font-weight: 600;
  width: 10.128rem;
  line-height: 1.488rem;
  display: block;
  border-radius: 1.6rem;
  margin: 0 auto 0.4rem;
}
@media only screen and (max-width: 767px) {
  .point01 .plan--point figcaption span {
    font-size: 2.3266666667vw;
    width: 27.3333333333vw;
    line-height: 4vw;
    margin-bottom: 1.3333333333vw;
    letter-spacing: 0;
  }
}
.point01 .plan--point figcaption p {
  text-align: center;
  color: #fff;
  font-size: 1.01472rem;
  font-weight: 600;
  line-height: 1.19;
}
@media only screen and (max-width: 767px) {
  .point01 .plan--point figcaption p {
    font-size: 2.732vw;
    letter-spacing: -0.1333333333vw;
  }
}

.point02 {
  padding-bottom: 7rem;
  position: relative;
}
.point02::before {
  content: "";
  position: absolute;
  left: 0;
  bottom: 0;
  width: 100%;
  height: 41.85rem;
  background: #f9f9f7;
}
@media only screen and (max-width: 767px) {
  .point02::before {
    height: 316.8vw;
  }
}
.point02--title {
  padding-bottom: 2.3rem;
  margin-bottom: 2.9rem;
}
@media only screen and (max-width: 767px) {
  .point02--title {
    padding-bottom: 5.3333333333vw;
    margin-bottom: 6.6666666667vw;
    letter-spacing: 0;
  }
}
.point02--title::before {
  background: url("../img/recommend_plan/point_ttl2.svg") no-repeat center/100%;
  width: 17.856rem;
  height: 8.75rem;
  top: -3.4rem;
  left: 12.7rem;
}
@media only screen and (max-width: 767px) {
  .point02--title::before {
    width: 33.6vw;
    height: 15.7333333333vw;
    top: -5.6vw;
    left: 1.6vw;
  }
}
.point02 .read {
  text-align: center;
  margin: 0 auto 6.3rem;
}
@media only screen and (max-width: 767px) {
  .point02 .read {
    margin-bottom: 18.4vw;
  }
}
.point02 .read--text {
  margin: 0 0 2.55rem;
}
@media only screen and (max-width: 767px) {
  .point02 .read--text {
    margin: 0 0 7.2vw;
  }
}
.point02 .read h3 {
  font-size: 2.16rem;
  font-weight: 600;
  color: #bd558b;
  margin-bottom: 1.5rem;
}
@media only screen and (max-width: 767px) {
  .point02 .read h3 {
    font-size: 5.3333333333vw;
    line-height: 1.4;
    letter-spacing: 0.1333333333vw;
    margin-bottom: 3.0666666667vw;
  }
}
.point02 .read p {
  font-size: 1.44rem;
  font-weight: 600;
  line-height: 1.94;
  letter-spacing: 0.04rem;
}
@media only screen and (max-width: 767px) {
  .point02 .read p {
    font-size: 3.4666666667vw;
    line-height: 2.24;
    letter-spacing: 0.0933333333vw;
  }
}
.point02 .read figure {
  margin: 0px auto 2.6rem;
  width: 51.95rem;
  max-width: 1038px;
}
@media only screen and (max-width: 767px) {
  .point02 .read figure {
    width: 82.6666666667vw;
    margin-bottom: 8.9333333333vw;
  }
}
.point02 .read .box-txt {
  background: #091b5b;
  padding: 1.3rem 0 1.2rem;
  margin: auto;
}
@media print, screen and (min-width: 768px) {
  .point02 .read .box-txt {
    width: 57.6rem;
  }
}
@media only screen and (max-width: 767px) {
  .point02 .read .box-txt {
    padding: 4vw 0;
    width: 86.6666666667vw;
  }
}
.point02 .read .box-txt p {
  color: #fff;
  font-size: 1.728rem;
  font-weight: 600;
  line-height: 1.388;
}
@media only screen and (max-width: 767px) {
  .point02 .read .box-txt p {
    font-size: 4vw;
    line-height: 1.66;
  }
}
.point02 .other-use h3 {
  text-align: center;
  font-size: 2.64rem;
  font-weight: 600;
  color: #091b5b;
  margin-bottom: 2.4rem;
}
@media only screen and (max-width: 767px) {
  .point02 .other-use h3 {
    font-size: 6vw;
    margin-bottom: 7.7333333333vw;
    letter-spacing: 0.16vw;
  }
}
@media print, screen and (min-width: 768px) {
  .point02 .other-use h3 span {
    margin: 0 0.5rem;
  }
}
@media only screen and (max-width: 767px) {
  .point02 .other-use h3 span {
    margin: 0 0.8vw;
  }
}
.point02 .other-use--list {
  list-style: none;
  padding: 0;
  margin: auto;
}
@media print, screen and (min-width: 768px) {
  .point02 .other-use--list {
    display: flex;
    align-items: stretch;
    flex-wrap: wrap;
    gap: 2.4rem;
    width: 57.6rem;
  }
}
@media only screen and (max-width: 767px) {
  .point02 .other-use--list {
    width: 86.6666666667vw;
  }
}
.point02 .other-use--list li {
  border: 1px solid #ccc;
  background: #fff;
  padding: 2rem 0;
}
@media print, screen and (min-width: 768px) {
  .point02 .other-use--list li {
    width: 27.6rem;
  }
}
@media only screen and (max-width: 767px) {
  .point02 .other-use--list li {
    padding: 8vw 0 7.4666666667vw;
  }
  .point02 .other-use--list li:not(:last-of-type) {
    margin-bottom: 7.4666666667vw;
  }
}
.point02 .other-use--list li .thumb {
  width: 24.48rem;
  margin: 0 auto 1rem;
}
@media only screen and (max-width: 767px) {
  .point02 .other-use--list li .thumb {
    width: 74.6666666667vw;
    margin-bottom: 2.6666666667vw;
  }
}
.point02 .other-use--list li figcaption {
  text-align: center;
  font-size: 1.44rem;
  font-weight: 600;
  line-height: 1.47;
}
@media only screen and (max-width: 767px) {
  .point02 .other-use--list li figcaption {
    font-size: 4.5186666667vw;
    letter-spacing: 0.1333333333vw;
  }
}
/*# sourceMappingURL=recommend_plan.css.map */