@charset "UTF-8";
@import url("https://fonts.googleapis.com/css2?family=Noto+Sans+JP:wght@700&display=swap");
/* setting ------------------ */
/* -------------------------- */
html {
  box-sizing: border-box;
  line-height: 1;
  font-size: 100%;
  -ms-text-size-adjust: 100%;
  -webkit-text-size-adjust: 100%;
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale; }

*,
*:before,
*:after {
  box-sizing: inherit; }

body {
  margin: 0;
  font-family: sans-serif; }

iframe {
  border: 0; }

main {
  display: block; }

sup {
  position: relative;
  top: -.5em;
  vertical-align: baseline;
  font-size: 75%;
  line-height: 0; }

strong {
  font-weight: bold; }

figure {
  margin: 0; }

::-moz-focus-inner {
  border: 0;
  padding: 0; }

* {
  min-height: 0;
  min-width: 0; }

html {
  font-size: 62.5%; }

body {
  background-color: #fff;
  color: #412c00;
  font-size: 1.6em;
  font-weight: 700;
  font-family: "Noto Sans JP", "メイリオ", Meiryo, Osaka, "ＭＳ Ｐゴシック", "MS PGothic", "sans-serif";
  line-height: 1.7;
  letter-spacing: 0.01em;
  word-break: break-all; }
  @media screen and (max-width: 992px) {
    body {
      font-size: 1.4rem; } }

h1 {
  margin: 0;
  padding: 0;
  letter-spacing: 0.1em; }

h2 {
  margin: 0;
  font-size: 3.0rem;
  font-weight: 600;
  text-align: center;
  letter-spacing: 0.1em; }
  @media screen and (max-width: 992px) {
    h2 {
      font-size: 2.4rem; } }

p {
  margin: 0; }
  p + p {
    margin-top: 15px; }
  p + form {
    margin-top: 20px; }
  p + .btnWrap {
    margin-top: 15px; }

p, dt, dd, h3, h4, h5 {
  line-height: 2;
  letter-spacing: 0.1em; }

strong {
  color: #d93e3e; }

a {
  text-decoration: none;
  color: #d93e3e;
  transition: all 0.2s linear; }
  a:hover {
    color: #ea9393;
    text-decoration: none; }

img {
  width: 100%;
  height: auto; }

body {
  position: relative;
  overflow-x: hidden; }

.cf::after {
  content: "";
  display: block;
  clear: both; }

.-pc {
  display: block; }
  @media screen and (max-width: 992px) {
    .-pc {
      display: none; } }

.-sp {
  display: none; }
  @media screen and (max-width: 992px) {
    .-sp {
      display: block; } }

.content_inner {
  padding-right: 40px;
  padding-left: 40px; }

.btn_wrap {
  margin-top: 70px;
  text-align: center; }
  @media screen and (max-width: 992px) {
    .btn_wrap {
      margin-top: 50px; } }

.btn {
  position: relative;
  display: inline-block;
  margin-right: auto;
  margin-left: auto;
  padding: 40px 120px;
  border-radius: 99px;
  background-color: #d93e3e;
  text-align: center;
  color: #FFF;
  font-weight: bold;
  font-size: 2.8rem;
  letter-spacing: 0.1em; }
  @media screen and (max-width: 992px) {
    .btn {
      width: 100%;
      padding: 15px;
      font-size: 1.8rem; } }
  .btn:hover {
    color: #fff;
    opacity: 0.5; }
  .btn:before {
    content: '';
    position: absolute;
    right: 40px;
    top: 50%;
    transform: translateY(-50%) rotate(45deg);
    width: 19px;
    height: 19px;
    border-right: 4px solid #fff;
    border-top: 4px solid #fff; }
    @media screen and (max-width: 992px) {
      .btn:before {
        right: 20px;
        width: 15px;
        height: 15px;
        border-width: 3px; } }
  .btn:after {
    content: '';
    position: absolute;
    right: 40px;
    top: 50%;
    transform: translateY(-50%);
    width: 30px;
    border-top: 4px solid #fff; }
    @media screen and (max-width: 992px) {
      .btn:after {
        right: 20px;
        width: 25px;
        border-width: 3px; } }

.bg_top {
  background-image: url(../images/bg_pc.png);
  background-size: 1697px 3184px;
  background-position: top 200px center;
  background-repeat: no-repeat; }
  @media screen and (max-width: 992px) {
    .bg_top {
      background: none; } }

.logo {
  position: absolute;
  top: 50px;
  left: 60px;
  width: 185px;
  z-index: 10;
  font-size: 0; }
  @media screen and (max-width: 992px) {
    .logo {
      position: static;
      width: 125px;
      margin-top: 15px;
      margin-right: auto;
      margin-bottom: 15px;
      margin-left: auto; } }
  .logo a {
    font-size: 0; }
  .logo img {
    font-size: 0; }

.mainvisual {
  position: relative; }
  .mainvisual .image {
    position: relative;
    width: 80%;
    margin-right: 0;
    margin-left: auto;
    background-color: gray;
    font-size: 0; }
    @media screen and (max-width: 992px) {
      .mainvisual .image {
        width: 100%; } }
    .mainvisual .image video {
      width: 100%; }
    .mainvisual .image .overlay {
      position: absolute;
      top: 0;
      width: 100%;
      background-color: #000;
      height: 100%;
      opacity: 0.15; }
    .mainvisual .image .puzzle_1 {
      position: absolute;
      top: 0; }
      @media screen and (max-width: 992px) {
        .mainvisual .image .puzzle_1 {
          top: auto;
          bottom: -8px;
          left: 7px;
          transform: rotate(-90deg);
          width: 40px; } }
    .mainvisual .image .puzzle_2 {
      position: absolute;
      bottom: 0; }
      @media screen and (max-width: 992px) {
        .mainvisual .image .puzzle_2 {
          top: auto;
          bottom: 17px;
          right: -18px;
          transform: rotate(-90deg);
          width: 120px; } }
  .mainvisual h1 {
    font-size: 5.6rem;
    position: absolute;
    top: 50%;
    transform: translateY(-50%);
    left: 40px; }
    @media screen and (max-width: 992px) {
      .mainvisual h1 {
        position: static;
        margin-top: 30px;
        font-size: 2.6rem;
        text-align: center;
        transform: translate(0); } }
    .mainvisual h1 span {
      background-color: #fff;
      padding: 10px 20px; }
      @media screen and (max-width: 992px) {
        .mainvisual h1 span {
          background-color: transparent; } }

.concept {
  display: flex;
  justify-content: center;
  align-items: center;
  margin-top: 100px;
  margin-bottom: 130px;
  padding-right: 40px;
  padding-left: 40px; }
  @media screen and (max-width: 992px) {
    .concept {
      display: block;
      margin-top: 30px;
      margin-bottom: 50px;
      padding-right: 20px;
      padding-left: 20px; } }
  .concept p {
    font-size: 2.4rem;
    line-height: 2.5; }
    @media screen and (max-width: 992px) {
      .concept p {
        margin-bottom: 50px;
        font-size: 1.4rem;
        text-align: center;
        line-height: 2; } }
  .concept .image {
    position: relative;
    max-width: 483px;
    width: 50%;
    margin-left: 70px; }
    @media screen and (max-width: 992px) {
      .concept .image {
        width: 100%;
        margin-right: auto;
        margin-left: auto;
        padding-right: 30px;
        padding-left: 30px; } }
  .concept .puzzle_green {
    position: absolute;
    top: -350px;
    right: 90px; }
    @media screen and (max-width: 992px) {
      .concept .puzzle_green {
        width: 65px;
        top: -285px;
        right: auto;
        left: -30px; } }
  .concept .puzzle_yellow {
    position: absolute;
    left: -30px;
    top: -180px; }
    @media screen and (max-width: 992px) {
      .concept .puzzle_yellow {
        width: 73px;
        top: -350px;
        right: -15px;
        left: auto; } }
  .concept .puzzle_blue {
    position: absolute;
    right: -39px;
    top: -30px; }
    @media screen and (max-width: 992px) {
      .concept .puzzle_blue {
        width: 64px;
        top: 175px;
        right: auto;
        left: -4px; } }
  .concept .puzzle_red_1 {
    position: absolute;
    top: -176px;
    right: 145px; }
    @media screen and (max-width: 992px) {
      .concept .puzzle_red_1 {
        width: 64px;
        top: -29px;
        right: -31px; } }
  .concept .puzzle_red_2 {
    position: absolute;
    left: -34px;
    bottom: -32px; }
    @media screen and (max-width: 992px) {
      .concept .puzzle_red_2 {
        display: none; } }

section.top {
  padding-bottom: 130px; }
  @media screen and (max-width: 992px) {
    section.top {
      padding-bottom: 100px; } }
  section.top .btn_wrap {
    padding-right: 40px;
    padding-left: 40px; }
    @media screen and (max-width: 992px) {
      section.top .btn_wrap {
        padding-right: 20px;
        padding-left: 20px; } }

.intro {
  padding-right: 40px;
  padding-left: 40px; }
  @media screen and (max-width: 992px) {
    .intro {
      padding-right: 20px;
      padding-left: 20px; } }
  .intro h2 {
    margin-bottom: 80px;
    font-size: 5rem; }
    @media screen and (max-width: 992px) {
      .intro h2 {
        margin-bottom: 30px;
        font-size: 2.6rem; } }
    .intro h2 strong {
      padding-right: 10px;
      padding-left: 10px;
      background-color: #d93e3e;
      color: #fff; }
  .intro > p {
    font-size: 2.4rem;
    text-align: center; }
    @media screen and (max-width: 992px) {
      .intro > p {
        font-size: 1.4rem; } }

.graph_list {
  display: flex;
  justify-content: center;
  list-style: none;
  margin: 0 -25px;
  padding: 70px 0 0 0; }
  @media screen and (max-width: 992px) {
    .graph_list {
      display: block;
      margin: 0;
      padding-top: 45px; } }
  .graph_list > li {
    width: 540px;
    padding-right: 25px;
    padding-left: 25px; }
    @media screen and (max-width: 992px) {
      .graph_list > li {
        width: 100%;
        padding: 0; } }
    @media screen and (max-width: 992px) {
      .graph_list > li + li {
        margin-top: 30px; } }
    .graph_list > li > .inner {
      background-color: #f5f5f5; }
    .graph_list > li p {
      position: relative;
      padding: 20px 20px 20px 95px;
      background-color: #e1b640;
      line-height: 1.7; }
      @media screen and (max-width: 992px) {
        .graph_list > li p {
          padding-left: 70px; } }
      .graph_list > li p:before {
        content: 'Q';
        position: absolute;
        top: 20px;
        left: 30px;
        display: block;
        width: 50px;
        height: 50px;
        background-color: #fff;
        font-size: 2.9rem;
        border-radius: 25px;
        text-align: center;
        line-height: 45px; }
        @media screen and (max-width: 992px) {
          .graph_list > li p:before {
            left: 20px;
            width: 35px;
            height: 35px;
            font-size: 2rem;
            line-height: 35px; } }
    .graph_list > li figure {
      padding: 50px 30px; }
      @media screen and (max-width: 992px) {
        .graph_list > li figure {
          padding: 20px;
          text-align: center; } }
      @media screen and (max-width: 992px) {
        .graph_list > li figure img {
          max-width: 430px; } }

.element {
  position: relative;
  margin-top: 170px; }
  @media screen and (max-width: 992px) {
    .element {
      margin-top: 0;
      padding-top: 80px;
      background-image: url(../images/bg_sp_1.png);
      background-repeat: no-repeat;
      background-position: right top 50px; } }
  .element .element_inner {
    width: 50%;
    margin-right: 0;
    margin-left: auto; }
    @media screen and (max-width: 992px) {
      .element .element_inner {
        width: 100%; } }
  .element h3 {
    font-size: 3.6rem;
    line-height: 1.7; }
    @media screen and (max-width: 992px) {
      .element h3 {
        margin-bottom: 30px;
        padding-right: 20px;
        padding-left: 20px;
        font-size: 2.2rem;
        text-align: center;
        line-height: 1.8; } }
  .element .video {
    display: flex;
    align-items: center;
    position: absolute;
    top: 50%;
    transform: translateY(-50%);
    left: 0;
    width: 45%; }
    @media screen and (max-width: 992px) {
      .element .video {
        position: static;
        transform: translate(0);
        width: 100%; } }

.element_list {
  display: flex;
  flex-wrap: wrap;
  list-style: none;
  margin: 0 20px 0 -20px;
  padding: 0; }
  @media screen and (max-width: 992px) {
    .element_list {
      display: block;
      margin: 40px 0 0; } }
  .element_list > li {
    width: 50%;
    margin-bottom: 40px;
    padding-right: 20px;
    padding-left: 20px; }
    @media screen and (max-width: 992px) {
      .element_list > li {
        width: 100%;
        margin-bottom: 30px; } }
    .element_list > li .inner {
      padding: 20px;
      background-color: #f5f5f5; }
    .element_list > li h4 {
      position: relative;
      margin-top: 0;
      margin-bottom: 10px;
      margin-left: 70px;
      font-size: 2.4rem; }
      @media screen and (max-width: 992px) {
        .element_list > li h4 {
          margin-left: 0;
          text-align: center;
          font-size: 2.2rem; } }
      .element_list > li h4::before {
        content: '';
        position: absolute;
        top: -34px;
        left: -109px;
        width: 81.5px;
        height: 71.5px;
        background-size: cover; }
        @media screen and (max-width: 992px) {
          .element_list > li h4::before {
            top: -10px;
            left: -5px;
            width: 61px;
            height: 53px; } }
    .element_list > li:nth-child(1) h4::before {
      background-image: url(../images/element_ico_1.png); }
    .element_list > li:nth-child(2) h4::before {
      background-image: url(../images/element_ico_2.png); }
    .element_list > li:nth-child(3) h4::before {
      background-image: url(../images/element_ico_3.png); }
    .element_list > li:nth-child(4) h4::before {
      background-image: url(../images/element_ico_4.png); }
    .element_list > li p {
      font-size: 1.4rem; }

.point {
  padding-right: 40px;
  padding-left: 40px; }
  @media screen and (max-width: 992px) {
    .point {
      padding-right: 20px;
      padding-left: 20px;
      background-image: url(../images/bg_sp_2.png);
      background-repeat: no-repeat;
      background-position: left top; } }
  .point h3 {
    font-size: 3.6rem;
    text-align: center; }
    @media screen and (max-width: 992px) {
      .point h3 {
        margin-top: 85px;
        margin-bottom: 30px;
        font-size: 2.2rem;
        line-height: 1.2; } }
    @media screen and (max-width: 992px) {
      .point h3 strong {
        font-size: 3.2rem; } }
  .point > p {
    text-align: center;
    font-size: 2.4rem; }
    @media screen and (max-width: 992px) {
      .point > p {
        font-size: 1.4rem; } }

.point_list {
  display: flex;
  list-style: none;
  max-width: 1100px;
  margin: 70px auto 100px;
  padding: 50px;
  background-color: #f5f5f5; }
  @media screen and (max-width: 992px) {
    .point_list {
      display: block;
      margin-top: 45px;
      margin-bottom: 50px;
      padding: 30px; } }
  .point_list > li {
    width: 25%;
    padding-right: 20px;
    padding-left: 20px; }
    @media screen and (max-width: 992px) {
      .point_list > li {
        width: 100%;
        padding-right: 0;
        padding-left: 0; } }
    @media screen and (max-width: 992px) {
      .point_list > li + li {
        margin-top: 35px;
        padding-top: 35px;
        border-top: 1px solid #412c00; } }
    .point_list > li i {
      position: relative;
      display: block;
      width: 150px;
      height: 150px;
      margin-right: auto;
      margin-left: auto;
      border-radius: 75px; }
      @media screen and (max-width: 992px) {
        .point_list > li i {
          width: 115px;
          height: 115px; } }
      .point_list > li i img {
        position: absolute;
        top: 50%;
        left: 50%;
        transform: translate(-50%, -50%); }
    .point_list > li h4 {
      text-align: center;
      font-size: 2.4rem;
      margin: 20px 0; }
      @media screen and (max-width: 992px) {
        .point_list > li h4 {
          margin: 15px 0;
          font-size: 2.2rem; } }
    .point_list > li p {
      font-size: 1.4rem; }
    .point_list > li.red i {
      background-color: #d93e3e; }
      .point_list > li.red i img {
        max-width: 74px; }
        @media screen and (max-width: 992px) {
          .point_list > li.red i img {
            width: 54px; } }
    .point_list > li.red strong {
      color: #d93e3e; }
    .point_list > li.yellow i {
      background-color: #e1b640; }
      .point_list > li.yellow i img {
        max-width: 85px; }
        @media screen and (max-width: 992px) {
          .point_list > li.yellow i img {
            width: 63px; } }
    .point_list > li.yellow strong {
      color: #e1b640; }
    .point_list > li.green i {
      background-color: #69af47; }
      .point_list > li.green i img {
        max-width: 79px; }
        @media screen and (max-width: 992px) {
          .point_list > li.green i img {
            width: 58px; } }
    .point_list > li.green strong {
      color: #69af47; }
    .point_list > li.blue i {
      background-color: #60acf3; }
      .point_list > li.blue i img {
        max-width: 62px; }
        @media screen and (max-width: 992px) {
          .point_list > li.blue i img {
            width: 46px; } }
    .point_list > li.blue strong {
      color: #60acf3; }

.recommend {
  padding-top: 130px;
  padding-right: 40px;
  padding-bottom: 150px;
  padding-left: 40px;
  background-color: #f5f5f5;
  background-image: url(../images/bg_puzzle.png); }
  @media screen and (max-width: 992px) {
    .recommend {
      padding-top: 50px;
      padding-right: 20px;
      padding-bottom: 100px;
      padding-left: 20px;
      background-size: 963.5px auto; } }
  .recommend .recommend_item {
    text-align: center; }
    .recommend .recommend_item h2 {
      position: relative;
      display: inline-block;
      font-size: 5rem;
      text-align: center;
      margin-bottom: 50px; }
      @media screen and (max-width: 992px) {
        .recommend .recommend_item h2 {
          font-size: 2.6rem;
          margin-bottom: 35px; } }
      @media screen and (max-width: 992px) {
        .recommend .recommend_item h2::before {
          content: '';
          position: absolute;
          top: -10px;
          left: -40px;
          width: 64px;
          height: 47px;
          background-image: url(../images/puzzle_yellow.png);
          background-size: cover; } }
      .recommend .recommend_item h2 span {
        position: relative;
        width: 300px;
        transform: translateX(-50%); }
    .recommend .recommend_item .title {
      margin-bottom: 40px;
      font-size: 3.6rem;
      text-align: center; }
      @media screen and (max-width: 992px) {
        .recommend .recommend_item .title {
          font-size: 2rem; } }
    .recommend .recommend_item .series_image_pc {
      position: relative;
      display: flex;
      max-width: 1240px;
      margin-right: auto;
      margin-left: auto; }
      @media screen and (max-width: 992px) {
        .recommend .recommend_item .series_image_pc {
          display: none; } }
      .recommend .recommend_item .series_image_pc > div {
        padding-right: 20px;
        padding-left: 20px; }
      .recommend .recommend_item .series_image_pc .puzzle_red_1 {
        position: absolute;
        top: -200px;
        right: -40px; }
        @media screen and (max-width: 992px) {
          .recommend .recommend_item .series_image_pc .puzzle_red_1 {
            display: none; } }
    .recommend .recommend_item .series_image_sp {
      margin-right: -20px;
      margin-left: -20px; }
    .recommend .recommend_item .btn_series .btn {
      padding: 25px 70px;
      font-size: 2.0rem; }
      @media screen and (max-width: 992px) {
        .recommend .recommend_item .btn_series .btn {
          font-size: 1.6rem;
          padding: 15px; } }
      .recommend .recommend_item .btn_series .btn::before {
        right: 30px;
        width: 15px;
        height: 15px;
        border-width: 3px; }
        @media screen and (max-width: 992px) {
          .recommend .recommend_item .btn_series .btn::before {
            right: 20px; } }
      .recommend .recommend_item .btn_series .btn::after {
        right: 30px;
        width: 20px;
        border-width: 3px; }
        @media screen and (max-width: 992px) {
          .recommend .recommend_item .btn_series .btn::after {
            right: 20px; } }
  .recommend .profile {
    position: relative;
    max-width: 1000px;
    margin-top: 70px;
    margin-right: auto;
    margin-left: auto;
    padding: 50px 60px;
    background-color: #fff; }
    @media screen and (max-width: 992px) {
      .recommend .profile {
        margin-top: 60px;
        padding: 25px; } }
    .recommend .profile .name {
      font-size: 2.4rem; }
      @media screen and (max-width: 992px) {
        .recommend .profile .name {
          font-size: 1.8rem;
          text-align: center; } }
    .recommend .profile .text {
      font-size: 1.6rem;
      line-height: 2.5; }
      @media screen and (max-width: 992px) {
        .recommend .profile .text {
          font-size: 1.4rem; } }
    .recommend .profile .puzzle_yellow {
      position: absolute;
      top: -140px;
      left: -70px; }
      @media screen and (max-width: 992px) {
        .recommend .profile .puzzle_yellow {
          display: none; } }
  .recommend .howto {
    position: relative;
    max-width: 1330px;
    margin-top: 150px;
    margin-right: auto;
    margin-left: auto;
    text-align: center; }
    @media screen and (max-width: 992px) {
      .recommend .howto {
        margin-top: 80px; } }
    .recommend .howto h3 {
      position: relative;
      display: inline-block;
      margin-bottom: 100px;
      font-size: 5rem;
      text-align: center; }
      @media screen and (max-width: 992px) {
        .recommend .howto h3 {
          margin-top: 0;
          margin-bottom: 50px;
          font-size: 2.6rem; } }
      @media screen and (max-width: 992px) {
        .recommend .howto h3::before {
          content: '';
          position: absolute;
          top: -10px;
          left: -40px;
          width: 65px;
          height: 65px;
          background-image: url(../images/puzzle_green.png);
          background-size: cover; } }
      .recommend .howto h3 span {
        position: relative;
        transform: translateX(-50%); }
    .recommend .howto .howto_list {
      display: flex;
      list-style: none;
      margin: 0 -40px;
      padding: 0; }
      @media screen and (max-width: 992px) {
        .recommend .howto .howto_list {
          display: block;
          margin: 0; } }
      .recommend .howto .howto_list > li {
        position: relative;
        width: 33.333%;
        padding-right: 40px;
        padding-left: 40px; }
        @media screen and (max-width: 992px) {
          .recommend .howto .howto_list > li {
            width: 100%;
            max-width: 470px;
            margin-right: auto;
            margin-left: auto;
            padding: 0; } }
        @media screen and (max-width: 992px) {
          .recommend .howto .howto_list > li + li {
            margin-top: 70px; } }
        .recommend .howto .howto_list > li h4 {
          position: absolute;
          top: -30px;
          left: 25px;
          display: inline-block;
          margin: 0;
          padding: 0 20px 5px;
          font-size: 2.8rem;
          background-color: #fff;
          box-shadow: 4px 4px #412c00;
          line-height: 1.5; }
          @media screen and (max-width: 992px) {
            .recommend .howto .howto_list > li h4 {
              left: -25px;
              font-size: 2.2rem; } }
          .recommend .howto .howto_list > li h4 span {
            margin-right: 0.2em;
            color: #d93e3e;
            font-size: 3.8rem; }
            @media screen and (max-width: 992px) {
              .recommend .howto .howto_list > li h4 span {
                font-size: 3.2rem; } }
        .recommend .howto .howto_list > li > p {
          margin-top: 30px;
          text-align: left; }
          @media screen and (max-width: 992px) {
            .recommend .howto .howto_list > li > p {
              margin-top: 20px; } }
    .recommend .howto .puzzle_green {
      position: absolute;
      top: -150px;
      right: -40px; }
      @media screen and (max-width: 992px) {
        .recommend .howto .puzzle_green {
          display: none; } }
    .recommend .howto .puzzle_yellow {
      position: absolute;
      right: 20px;
      bottom: -150px;
      transform: scale(-1, 1); }
      @media screen and (max-width: 992px) {
        .recommend .howto .puzzle_yellow {
          display: none; } }
  .recommend .example {
    position: relative;
    max-width: 1330px;
    margin-top: 210px;
    margin-right: auto;
    margin-left: auto; }
    @media screen and (max-width: 992px) {
      .recommend .example {
        margin-top: 80px; } }
    .recommend .example .example_inner {
      width: 50%;
      margin-right: 0;
      margin-left: auto;
      padding-left: 40px; }
      @media screen and (max-width: 992px) {
        .recommend .example .example_inner {
          width: 100%;
          padding-left: 0;
          text-align: center; } }
    .recommend .example h3 {
      display: inline-block;
      margin-top: 0;
      padding-right: 20px;
      padding-left: 20px;
      background-color: #d93e3e;
      color: #fff;
      font-size: 2.8rem; }
      @media screen and (max-width: 992px) {
        .recommend .example h3 {
          margin-bottom: 0;
          font-size: 2rem; } }
    .recommend .example .title {
      font-size: 3.6rem;
      margin-bottom: 20px; }
      @media screen and (max-width: 992px) {
        .recommend .example .title {
          font-size: 2.2rem;
          text-align: center; } }
    .recommend .example .image {
      position: absolute;
      top: 0;
      left: 0;
      width: 50%;
      padding-right: 40px; }
      @media screen and (max-width: 992px) {
        .recommend .example .image {
          position: static;
          width: 100%;
          max-width: 625px;
          padding-right: 0;
          margin-right: auto;
          margin-left: auto; } }
    @media screen and (max-width: 992px) {
      .recommend .example p {
        margin-top: 20px;
        text-align: left; } }
    .recommend .example .puzzle_blue {
      position: absolute;
      top: -80px;
      left: -73px; }
      @media screen and (max-width: 992px) {
        .recommend .example .puzzle_blue {
          display: none; } }
  .recommend .point {
    position: relative;
    margin-top: 160px; }
    @media screen and (max-width: 992px) {
      .recommend .point {
        margin-top: 80px;
        padding: 0; } }
    .recommend .point h3 {
      position: absolute;
      top: -25px;
      width: 100%;
      text-align: center;
      margin: 0;
      font-size: 2.4rem; }
      @media screen and (max-width: 992px) {
        .recommend .point h3 {
          top: -10px;
          font-size: 2rem;
          text-align: center; } }
    .recommend .point .point_list {
      margin: 0;
      max-width: 100%;
      background-color: #fff; }
      @media screen and (max-width: 992px) {
        .recommend .point .point_list {
          padding-top: 50px; } }
      .recommend .point .point_list > li i {
        width: 100px;
        height: 100px;
        border-radius: 50px; }
      .recommend .point .point_list > li h4 {
        text-align: center;
        font-size: 2.4rem;
        margin: 20px 0; }
        @media screen and (max-width: 992px) {
          .recommend .point .point_list > li h4 {
            margin: 15px 0;
            font-size: 2.2rem; } }
      .recommend .point .point_list > li p {
        font-size: 1.4rem; }
      .recommend .point .point_list > li.red i img {
        max-width: 46px; }
      .recommend .point .point_list > li.yellow i img {
        max-width: 54px; }
      .recommend .point .point_list > li.green i img {
        max-width: 50px; }
      .recommend .point .point_list > li.blue i img {
        max-width: 42px; }
  .recommend .finish {
    position: relative;
    max-width: 900px;
    margin-right: auto;
    margin-left: auto;
    margin-top: 100px;
    margin-bottom: 130px; }
    @media screen and (max-width: 992px) {
      .recommend .finish {
        margin-top: 70px;
        margin-bottom: 60px; } }
    .recommend .finish h3 {
      font-size: 3.6rem;
      text-align: center; }
      @media screen and (max-width: 992px) {
        .recommend .finish h3 {
          margin-bottom: 35px;
          font-size: 2.2rem; } }
    .recommend .finish .finish_list {
      list-style: none;
      display: flex;
      justify-content: center;
      margin: 0 -40px;
      padding: 0; }
      @media screen and (max-width: 992px) {
        .recommend .finish .finish_list {
          display: block;
          margin: 0; } }
      .recommend .finish .finish_list > li {
        max-width: 470px;
        padding-right: 40px;
        padding-left: 40px; }
        @media screen and (max-width: 992px) {
          .recommend .finish .finish_list > li {
            max-width: 100%;
            padding: 0; } }
        @media screen and (max-width: 992px) {
          .recommend .finish .finish_list > li + li {
            margin-top: 60px; } }
        .recommend .finish .finish_list > li h4 {
          margin-bottom: 20px;
          text-align: center;
          font-size: 2.4rem; }
          @media screen and (max-width: 992px) {
            .recommend .finish .finish_list > li h4 {
              margin-top: 20px;
              margin-bottom: 20px; } }
        .recommend .finish .finish_list > li p {
          max-width: 315px;
          margin-right: auto;
          margin-left: auto;
          font-size: 1.4rem; }
          @media screen and (max-width: 992px) {
            .recommend .finish .finish_list > li p {
              max-width: 100%; } }
        @media screen and (max-width: 992px) {
          .recommend .finish .finish_list > li figure {
            max-width: 390px;
            margin-right: auto;
            margin-left: auto; } }
    .recommend .finish .puzzle_red_2 {
      position: absolute;
      top: 0;
      right: -150px; }
      @media screen and (max-width: 992px) {
        .recommend .finish .puzzle_red_2 {
          display: none; } }
    .recommend .finish .puzzle_green {
      position: absolute;
      bottom: -50px;
      left: -150px; }
      @media screen and (max-width: 992px) {
        .recommend .finish .puzzle_green {
          display: none; } }

.about {
  padding: 80px 40px 100px;
  background-color: #fbf4e3;
  background-image: url(../images/bg_about_pc.png);
  background-size: 1309px auto;
  background-position: center;
  background-repeat: no-repeat; }
  @media screen and (max-width: 992px) {
    .about {
      padding: 140px 40px 180px;
      background-image: url(../images/bg_about_top_sp.png), url(../images/bg_about_bottom_sp.png);
      background-size: 242px auto, 209px auto;
      background-position: top 40px center, bottom 40px center;
      background-repeat: no-repeat; } }
  .about h2 {
    margin-bottom: 60px;
    font-size: 3.6rem; }
    @media screen and (max-width: 992px) {
      .about h2 {
        margin-bottom: 30px;
        font-size: 2.2rem; } }
  .about p {
    margin-right: auto;
    margin-left: auto;
    text-align: center;
    line-height: 2.3; }
    @media screen and (max-width: 992px) {
      .about p {
        text-align: left; } }

.slick-slide {
  padding-right: 15px;
  padding-left: 15px; }

.slick-prev {
  left: 10px !important;
  width: 43px;
  height: 43px;
  border-radius: 30px;
  background-color: #d93e3e !important;
  z-index: 1; }
  .slick-prev:before {
    content: '';
    position: absolute;
    left: 10px;
    top: 50%;
    transform: translateY(-50%) rotate(45deg);
    width: 15px;
    height: 15px;
    border-left: 3px solid #fff;
    border-bottom: 3px solid #fff;
    opacity: 100%; }
  .slick-prev:after {
    content: '';
    position: absolute;
    left: 10px;
    top: 50%;
    transform: translateY(-50%);
    width: 25px;
    border-top: 3px solid #fff; }

.slick-next {
  right: 10px !important;
  width: 43px;
  height: 43px;
  border-radius: 30px;
  background-color: #d93e3e !important;
  z-index: 1; }
  .slick-next:before {
    content: '';
    position: absolute;
    right: 10px;
    top: 50%;
    transform: translateY(-50%) rotate(45deg);
    width: 15px;
    height: 15px;
    border-right: 3px solid #fff;
    border-top: 3px solid #fff;
    opacity: 100%; }
  .slick-next:after {
    content: '';
    position: absolute;
    right: 10px;
    top: 50%;
    transform: translateY(-50%);
    width: 25px;
    border-top: 3px solid #fff; }

.youtube_wrap {
  position: relative;
  width: 100%; }

.youtube_wrap:before {
  content: '';
  display: block;
  padding-top: 56.25%; }

.youtube_wrap iframe {
  position: absolute;
  top: 0;
  right: 0;
  width: 100% !important;
  height: 100% !important; }

/*# sourceMappingURL=style.css.map */
