/* FONT size
---------------------------------------------------------------------
[ px ]	[ % ]
10px 	72  %		19px 	136 %
11px 	79  %		20px 	143 %
12px 	86 %		21px 	150 %
13px 	93 %		22px 	158 %
14px 	100 %		23px 	165 %
15px 	108 %		24px 	172 %
16px 	115 %		25px 	179 %
17px 	122 %		26px 	186 %
18px 	129 %
---------------------------------------------------------------------*/
/* ++++++++++++++++++++++++++++++++++++++++++++++    PC    ++++++++++++++++++++++++++++++++++++++++++++++  */
/* 801px ~ */
@media screen and (min-width: 801px), print {
  #maintitleArea {
    padding: 170px 0 120px; }

  #maintitleArea .maintitle {
    text-align: center; }

  #maintitleArea .maintitle span {
    display: block;
    font-weight: normal; }

  #maintitleArea .maintitle span.line {
    display: inline-block;
    position: relative;
    line-height: 1em;
    height: 1em;
    font-size: 50px;
    padding: 0 20px;
    letter-spacing: 3px;
    z-index: 1;
    overflow: hidden; }

  #maintitleArea .maintitle span.line:before {
    content: '';
    display: block;
    position: absolute;
    width: 100%;
    left: 0;
    right: 0;
    margin: auto;
    z-index: -1;
    height: calc(100% - 0.28em);
    top: 0.09em;
    transform: scale(0, 1);
    transform-origin: left;
    transition: 1.3s cubic-bezier(0.22, 1, 0.36, 1); }

  .windows #maintitleArea .maintitle span.line:before {
    height: calc(100% - 0.3em);
    top: 0.04em; }

  #maintitleArea.on .maintitle span.line:before {
    transform: scale(1, 1); }

  #maintitleArea .maintitle .title {
    display: inline-block;
    position: relative;
    overflow: hidden; }

  #maintitleArea .maintitle .title:after {
    content: '';
    display: block;
    position: absolute;
    width: 100%;
    height: 100%;
    background-color: #fff;
    left: 0;
    top: 0;
    transition: 1.3s 1s cubic-bezier(0.22, 1, 0.36, 1); }

  #maintitleArea.on .maintitle .title:after {
    transform: translateX(100%); }

  #maintitleArea .maintitle .title .title_s {
    font-size: 14px; }

  h2 {
    font-weight: 500; }

  #main {
    padding-top: 64px;
    overflow: hidden; }

  #maintitleArea .maintitle span.line {
    color: #fff;
    padding: 0 70px; }

  #maintitleArea .maintitle span.line:before {
    background-color: #6e3cbe; }

  #maintitleArea .wrap {
    position: relative;
    z-index: 1; }

  .sec {
    position: relative;
    padding-bottom: 120px; }

  .sec h2 {
    text-align: center;
    position: relative;
    margin-bottom: 40px; }

  .sec h2:after {
    content: '';
    display: block;
    position: absolute;
    width: 100%;
    height: 11px;
    background-color: #f2f2f2;
    top: 0;
    bottom: 0;
    left: 0;
    margin: auto 0;
    z-index: -1; }

  .sec h2 span {
    display: inline-block;
    padding: 0 20px;
    background-color: #fff;
    font-size: 24px;
    font-weight: 400;
    line-height: 1.5; }

  .sec_list {
    display: flex;
    justify-content: flex-start;
    flex-wrap: wrap;
    font-feature-settings: "palt"; }

  .sec_list li {
    width: 333px;
    padding: 15px 20px;
    box-sizing: border-box;
    height: 333px;
    position: relative; }

  .sec_list li.green {
    border: solid 10px #00b176; }

  .sec_list li.blue {
    border: solid 10px #6e3cbe; }

  .sec_list li.red {
    border: solid 10px #f06400; }

  .sec_list li:not(:nth-of-type(3n)) {
    margin-right: 20px; }

  .sec_list li:nth-of-type(n + 4) {
    margin-top: 20px; }

  .sec_list li h3 {
    text-align: center;
    font-size: 20px;
    letter-spacing: 2px;
    font-weight: 500;
    line-height: 1.4; }

  .sec_list li h3 span {
    font-size: 70%; }

  .sec_list li.green h3,
  .sec_list li.green .sec_box .sec_txt {
    color: #00b176; }

  .sec_list li.blue h3,
  .sec_list li.blue .sec_box .sec_txt {
    color: #6e3cbe; }

  .sec_list li.red h3,
  .sec_list li.red .sec_box .sec_txt {
    color: #f06400; }

  .sec_list li .sec_box {
    margin-top: 15px; }

  .sec_list li .sec_box02 {
    display: -webkit-flex;
    display: -ms-flexbox;
    display: flex;
    -webkit-box-pack: justify;
    -ms-flex-pack: justify;
    justify-content: space-between; }

  .sec_list li .sec_box .sec_txt {
    line-height: 1;
    text-align: center; }

  .sec_list li .sec_box02 .sec_txt {
    text-align: left; }

  .sec_list li .sec_box .sec_txt p {
    font-size: 40px;
    display: inline-block;
    letter-spacing: 0; }

  .sec_list li .sec_box .sec_txt p span {
    font-size: 87px;
    letter-spacing: 0; }

  #sec01 .sec_list li:nth-child(3) .sec_box {
    position: absolute;
    top: 85px;
    right: 15px;
    z-index: 1; }

  #sec01 .sec_list li:nth-child(3) .sec_box .sec_txt p {
    font-size: 26px; }

  #sec01 .sec_list li:nth-child(3) .sec_box .sec_txt p span {
    font-size: 52px; }

  #sec02 .sec_list li:nth-child(1) .sec_box .sec_txt p {
    font-size: 33px; }

  #sec02 .sec_list li:nth-child(1) .sec_box .sec_txt p span {
    font-size: 70px; }

  #sec02 .sec_list li:nth-child(2) .sec_box02 .sec_txt {
    position: absolute;
    bottom: 65px; }

  #sec02 .sec_list li:nth-child(2) .sec_box02 .sec_txt:nth-child(1) {
    left: 15px; }

  #sec02 .sec_list li:nth-child(2) .sec_box02 .sec_txt:nth-child(2) {
    right: 15px; }

  #sec02 .sec_list li:nth-child(2) .sec_box02 .sec_txt p {
    font-size: 16px; }

  #sec02 .sec_list li:nth-child(2) .sec_box02 .sec_txt p span {
    font-size: 54px; }

  #sec01 .sec_list li:nth-child(3) .cap {
    text-align: center;
    line-height: 1; }

  #sec02 .sec_list li:nth-child(6) .sec_box02 .sec_txt + .sec_txt {
    margin-left: 20px; }

  #sec02 .sec_list li:nth-child(6) .sec_box .sec_txt p {
    font-size: 16px; }

  #sec02 .sec_list li:nth-child(6) .sec_box .sec_txt p span {
    font-size: 52px; }

  #sec02 .sec_list li:nth-child(7) .sec_box .sec_txt {
    position: absolute; }

  #sec02 .sec_list li:nth-child(7) .sec_box .sec_txt:nth-child(1) {
    top: 60px;
    right: 68px; }

  #sec02 .sec_list li:nth-child(7) .sec_box .sec_txt:nth-child(2) {
    bottom: 62px;
    left: 46px; }

  #sec02 .sec_list li:nth-child(7) .sec_box .sec_txt p {
    font-size: 16px; }

  #sec02 .sec_list li:nth-child(7) .sec_box .sec_txt p span {
    font-size: 54px; }

  #sec03 .sec_list li:nth-child(1) .sec_box {
    justify-content: center;
    margin-top: 35px; }

  #sec03 .sec_list li:nth-child(1) .sec_box .sec_txt {
    text-align: right; }

  #sec03 .sec_list li:nth-child(1) .sec_box .sec_txt + .sec_txt {
    margin-left: 55px;
    position: relative; }

  #sec03 .sec_list li:nth-child(1) .sec_box .sec_txt + .sec_txt::before {
    position: absolute;
    content: "";
    top: 0;
    left: -25px;
    width: 2px;
    height: 85px;
    background-color: #6e3cbe;
    transform: rotate(25deg); }

  #sec03 .sec_list li:nth-child(1) .sec_box .sec_txt p {
    font-size: 16px; }

  #sec03 .sec_list li:nth-child(1) .sec_box .sec_txt p span {
    font-size: 64px; }

  #sec03 .sec_list li:nth-child(2) .sec_box {
    position: absolute;
    bottom: 60px;
    left: 115px; }

  #sec03 .sec_list li:nth-child(2) .sec_box .sec_txt p {
    font-size: 24px; }

  #sec03 .sec_list li:nth-child(2) .sec_box .sec_txt p span {
    font-size: 54px; }

  .sec_list li .sec_img {
    width: 257px;
    left: 0;
    right: 0;
    margin: auto;
    position: absolute;
    bottom: 20px; }

  .sec_list + .cap {
    margin-top: 30px;
    text-align: right; }

  /*deco*/
  #main > .deco01 {
    bottom: 150px;
    left: 0; }

  #main > .deco02 {
    bottom: 224px;
    right: 12vw; }

  #main > .deco03 {
    bottom: 197px;
    right: 0; }

  #maintitleArea .deco01 {
    top: 100px;
    left: 0; }

  #maintitleArea .deco02 {
    top: 140px;
    left: 0; }

  #maintitleArea .deco03 {
    top: 167px;
    left: 12vw; }

  #maintitleArea .deco04 {
    top: 186px;
    right: 0; }

  #maintitleArea .deco05 {
    top: 315px;
    right: 12vw; }

  #maintitleArea .deco06 {
    top: 327px;
    right: 0; }

  #sec01 .deco01 {
    right: 12vw;
    bottom: 100px; }

  #sec01 .deco02 {
    right: 0;
    bottom: 112px; }

  #sec02 .deco01 {
    right: 0;
    bottom: 300px; }

  #sec02 .deco02 {
    left: 0;
    bottom: 688px; }

  #sec03 .deco01 {
    left: 4vw;
    bottom: 688px; }

  #sec03 .deco02 {
    left: 0;
    bottom: 700px; } }
/* ++++++++++++++++++++++++++++++++++++++++++++++    sp    ++++++++++++++++++++++++++++++++++++++++++++++  */
/* ~ 800px */
@media only screen and (max-width: 800px) {
  #maintitleArea {
    padding: 40px 0 60px; }

  #maintitleArea .maintitle {
    text-align: center; }

  #maintitleArea .maintitle span {
    display: block;
    font-weight: normal;
    line-height: 1em; }

  #maintitleArea .maintitle span.line {
    display: inline-block;
    position: relative;
    line-height: 1em;
    height: 100%;
    font-size: 7vw;
    padding: 0 10px;
    letter-spacing: 3px;
    z-index: 1;
    color: #fff;
    overflow: hidden; }

  #maintitleArea .maintitle span.line:before {
    content: '';
    display: block;
    position: absolute;
    width: 100%;
    left: 0;
    right: 0;
    margin: auto;
    z-index: -1;
    background-color: #6e3cbe;
    height: calc(100% - 0.28em);
    top: 0.09em;
    transform: scale(0, 1);
    transform-origin: left;
    transition: 1.3s cubic-bezier(0.22, 1, 0.36, 1); }

  .windows #maintitleArea .maintitle span.line:before {
    height: calc(100% - 0.3em);
    top: 0.04em; }

  #maintitleArea.on .maintitle span.line:before {
    transform: scale(1, 1); }

  #maintitleArea .maintitle .title {
    line-height: 1.5;
    font-size: 18px;
    margin-top: 10px; }

  #maintitleArea .maintitle .title {
    display: block;
    position: relative;
    overflow: hidden; }

  #maintitleArea .maintitle .title:after {
    content: '';
    display: block;
    position: absolute;
    width: 100%;
    height: 100%;
    background-color: #fff;
    left: 0;
    top: 0;
    transition: 1.3s 1s cubic-bezier(0.22, 1, 0.36, 1); }

  #maintitleArea.on .maintitle .title:after {
    transform: translateX(100%); }

  #maintitleArea .maintitle .title .title_s {
    margin-top: 8px;
    font-size: 13px; }

  #maintitleArea .lead {
    line-height: 2;
    margin-top: 20px;
    font-weight: 400;
    padding: 0 5%;
    text-align: justify;
    line-break: strict;
    word-wrap: break-word;
    overflow-wrap: break-word; }

  #maintitleArea .lead br {
    display: none; }

  h2 {
    font-weight: 500; }

  #main {
    padding-top: 50px;
    overflow: hidden;
    position: relative; }

  #maintitleArea {
    position: relative; }

  #maintitleArea .wrap {
    position: relative;
    z-index: 1; }

  .sec {
    position: relative;
    padding-bottom: 60px; }

  .sec .wrap {
    width: 90%;
    margin: 0 auto; }

  .sec h2 {
    text-align: center;
    position: relative;
    margin-bottom: 20px; }

  .sec h2:after {
    content: '';
    display: block;
    position: absolute;
    width: 100%;
    height: 8px;
    background-color: #f2f2f2;
    top: 0;
    bottom: 0;
    left: 0;
    margin: auto 0;
    z-index: -1; }

  .sec h2 span {
    display: inline-block;
    padding: 0 10px;
    background-color: #fff;
    font-size: 20px;
    font-weight: 400;
    line-height: 1.5; }

  .sec_list {
    display: flex;
    justify-content: flex-start;
    flex-wrap: wrap;
    font-feature-settings: "palt"; }

  .sec_list li {
    width: 49%;
    padding: 8px;
    box-sizing: border-box;
    height: 46vw;
    position: relative;
    background-color: #fff; }

  .sec_list li.green {
    border: solid 5px #00b176; }

  .sec_list li.blue {
    border: solid 5px #6e3cbe; }

  .sec_list li.red {
    border: solid 5px #f06400; }

  .sec_list li:nth-of-type(2n) {
    margin-left: 2%; }

  .sec_list li:nth-of-type(n + 3) {
    margin-top: 2vw; }

  .sec_list li h3 {
    text-align: center;
    font-size: 3.5vw;
    letter-spacing: 1.5px;
    font-weight: 500;
    line-height: 1.4; }

  .sec_list li h3 span {
    font-size: 70%;
    letter-spacing: 0; }

  .sec_list li.green h3,
  .sec_list li.green .sec_box .sec_txt {
    color: #00b176; }

  .sec_list li.blue h3,
  .sec_list li.blue .sec_box .sec_txt {
    color: #6e3cbe; }

  .sec_list li.red h3,
  .sec_list li.red .sec_box .sec_txt {
    color: #f06400; }

  .sec_list li .sec_box {
    margin-top: 10px; }

  .sec_list li .sec_box02 {
    display: flex; }

  .sec_list li .sec_box .sec_txt {
    line-height: 1;
    text-align: center; }

  .sec_list li .sec_box02 .sec_txt {
    text-align: left; }

  .sec_list li .sec_box .sec_txt > span {
    font-size: 10px; }

  .sec_list li .sec_box .sec_txt p {
    font-size: 3.5vw;
    display: inline-block; }

  .sec_list li .sec_box .sec_txt p span {
    font-size: 12vw;
    letter-spacing: 1px; }

  #sec01 .sec_list li:nth-child(3) .sec_box {
    position: absolute;
    top: 13.5vw;
    right: 2vw;
    z-index: 2; }

  #sec01 .sec_list li:nth-child(3) .sec_box .sec_txt p {
    font-size: 3.5vw; }

  #sec01 .sec_list li:nth-child(3) .sec_box .sec_txt p span {
    font-size: 6.5vw; }

  #sec02 .sec_list li:nth-child(1) .sec_box .sec_txt p {
    font-size: 3.5vw; }

  #sec02 .sec_list li:nth-child(1) .sec_box .sec_txt p span {
    font-size: 8.5vw; }

  #sec02 .sec_list li:nth-child(2) .sec_box02 .sec_txt {
    position: absolute;
    bottom: 30px; }

  #sec02 .sec_list li:nth-child(2) .sec_box02 .sec_txt:nth-child(1) {
    left: 2vw; }

  #sec02 .sec_list li:nth-child(2) .sec_box02 .sec_txt:nth-child(2) {
    right: 2vw; }

  #sec02 .sec_list li:nth-child(2) .sec_box02 .sec_txt p {
    font-size: 3vw; }

  #sec02 .sec_list li:nth-child(2) .sec_box02 .sec_txt p span {
    font-size: 6.5vw; }

  #sec01 .sec_list li:nth-child(3) .cap {
    text-align: center;
    font-size: 10px;
    line-height: 1.5; }

  #sec02 .sec_list li:nth-child(5) .sec_box {
    /*position: absolute;
    top: 18vw;
    right: 9vw;*/ }

  #sec02 .sec_list li:nth-child(5) .sec_box .sec_txt p {
    /*font-size: 3.5vw;*/ }

  #sec02 .sec_list li:nth-child(5) .sec_box .sec_txt p span {
    /*font-size: 24px;*/ }

  #sec02 .sec_list li:nth-child(6) .sec_box02 .sec_txt + .sec_txt {
    margin-left: 2vw; }

  #sec02 .sec_list li:nth-child(6) .sec_box .sec_txt p {
    font-size: 3.5vw; }

  #sec02 .sec_list li:nth-child(6) .sec_box .sec_txt p span {
    font-size: 7vw; }

  #sec02 .sec_list li:nth-child(7) .sec_box .sec_txt {
    position: absolute; }

  #sec02 .sec_list li:nth-child(7) .sec_box .sec_txt:nth-child(1) {
    top: 8.4vw;
    right: 8.4vw; }

  #sec02 .sec_list li:nth-child(7) .sec_box .sec_txt:nth-child(2) {
    bottom: 7vw;
    left: 5vw; }

  #sec02 .sec_list li:nth-child(7) .sec_box .sec_txt p {
    font-size: 3vw; }

  #sec02 .sec_list li:nth-child(7) .sec_box .sec_txt p span {
    font-size: 7vw; }

  #sec02 .sec_list li:nth-child(9) .sec_box {
    margin-top: 5px; }

  #sec03 .sec_list li:nth-child(1) .sec_box {
    justify-content: center;
    margin-top: 5vw; }

  #sec03 .sec_list li:nth-child(1) .sec_box .sec_txt {
    text-align: right; }

  #sec03 .sec_list li:nth-child(1) .sec_box .sec_txt + .sec_txt {
    margin-left: 8vw;
    position: relative; }

  #sec03 .sec_list li:nth-child(1) .sec_box .sec_txt + .sec_txt::before {
    position: absolute;
    content: "";
    top: 0;
    left: -4.5vw;
    width: 2px;
    height: 12vw;
    background-color: #6e3cbe;
    transform: rotate(25deg); }

  #sec03 .sec_list li:nth-child(1) .sec_box .sec_txt p {
    font-size: 3vw; }

  #sec03 .sec_list li:nth-child(1) .sec_box .sec_txt p span {
    font-size: 7.5vw; }

  #sec03 .sec_list li:nth-child(2) .sec_box {
    position: absolute;
    bottom: 7vw;
    left: 14vw; }

  #sec03 .sec_list li:nth-child(2) .sec_box .sec_txt p {
    font-size: 3vw; }

  #sec03 .sec_list li:nth-child(2) .sec_box .sec_txt p span {
    font-size: 7.5vw; }

  .sec_list li .sec_img {
    width: 80%;
    max-width: 257px;
    left: 0;
    right: 0;
    margin: auto;
    position: absolute;
    bottom: 8px; }

  .sec_list + .cap {
    margin-top: 10px;
    text-align: right; }

  /*deco*/
  #main > .deco01 {
    bottom: 40px;
    left: 0; }

  #main > .deco02 {
    bottom: 0;
    right: 16vw; }

  #main > .deco03 {
    bottom: 7px;
    right: 0; }

  #maintitleArea .deco01 {
    top: 5px;
    left: 0; }

  #maintitleArea .deco02 {
    top: 12px;
    left: 7vw; }

  #maintitleArea .deco03 {
    top: 60%;
    left: 0; }

  #maintitleArea .deco04 {
    top: 0px;
    right: 0; }

  #maintitleArea .deco05 {
    bottom: 150px;
    right: 16vw; }

  #maintitleArea .deco06 {
    bottom: 135px;
    right: 0; }

  #sec01 .deco01 {
    right: 16vw;
    bottom: 105px; }

  #sec01 .deco02 {
    right: 0;
    bottom: 112px; }

  #sec02 .deco01 {
    right: 0;
    bottom: 100px; }

  #sec02 .deco02 {
    left: 0;
    bottom: 20px; }

  #sec03 .deco01 {
    display: none !important; }

  #sec03 .deco02 {
    display: none !important; } }
