@charset "UTF-8";
@import url("https://fonts.googleapis.com/css2?family=Montserrat:wght@300;400&family=Noto+Sans+JP:wght@400&family=Noto+Serif+JP:wght@200;300;400&display=swap");
img {
  width: 100%; }

.blur {
  opacity: 0;
  transform: translateY(50px);
  /* 初期状態で下にずらす */
  filter: blur(5px);
  /* 初期状態でブラー */
  transition: opacity 1s ease-out, transform 1s ease-out, filter 1s ease-out; }

.blur.show {
  opacity: 1;
  transform: translateY(0);
  filter: blur(0);
  /* ブラー解除 */ }

main {
  overflow: hidden; }
  main article {
    width: 100%;
    font-family: "Noto Serif JP", serif;
    font-weight: 400;
    font-size: 1.1713030747vw; }
    main article .hamburger {
      display: none;
      position: fixed;
      z-index: 15;
      top: 0vw;
      right: 3.953147877vw;
      width: 2.9282576867vw;
      height: 2.9282576867vw;
      cursor: pointer;
      text-align: center; }
      main article .hamburger.change {
        top: 9.0775988287vw; }
        main article .hamburger.change span {
          background: #091C31; }
    main article .hamburger span {
      display: block;
      position: absolute;
      width: 2.9282576867vw;
      margin-left: -1.4641288433vw;
      height: 1px;
      left: 50%;
      background: #fff;
      -webkit-transition: 0.5s ease-in-out;
      -moz-transition: 0.5s ease-in-out;
      transition: 0.5s ease-in-out; }
    main article .hamburger span:nth-child(1) {
      top: 50%;
      margin-top: -0.5856515373vw; }
    main article .hamburger span:nth-child(2) {
      top: 50%; }
    main article .hamburger span:nth-child(3) {
      top: 50%;
      margin-top: 0.5856515373vw; }
    main article .hamburger.active span:nth-child(1) {
      top: 50%;
      margin-top: 0;
      -webkit-transform: rotate(335deg);
      -moz-transform: rotate(335deg);
      transform: rotate(335deg);
      background: #000; }
    main article .hamburger.active span:nth-child(2),
    main article .hamburger.active span:nth-child(3) {
      top: 50%;
      margin-top: 0;
      -webkit-transform: rotate(-335deg);
      -moz-transform: rotate(-335deg);
      transform: rotate(-335deg);
      background: #000; }
    main article header {
      position: fixed;
      left: 0;
      top: 0;
      height: 6.8814055637vw;
      z-index: 5;
      width: 100%;
      background: #fff; }
      main article header .inner {
        width: 100%;
        height: 6.8814055637vw;
        display: flex;
        justify-content: space-between;
        align-items: center;
        align-content: center;
        flex-wrap: wrap; }
      main article header h1 {
        width: 6.588579795vw;
        margin: 0 0 0 2.9282576867vw; }
      main article header nav {
        display: flex;
        justify-content: flex-end;
        margin-right: 19.0336749634vw; }
        main article header nav div {
          margin-left: 2.9282576867vw; }
      main article header .insta {
        position: absolute;
        width: 2.635431918vw;
        height: 2.635431918vw;
        right: 14.6412884334vw;
        text-indent: 1.0248901903vw; }
      main article header .contactbtn {
        position: absolute;
        right: 0;
        width: 11.7130307467vw;
        background: #e3d2a0;
        padding: 1.317715959vw 2.196193265vw; }
    main article .background-img {
      position: fixed;
      top: 7.3206442167vw;
      z-index: -1;
      padding: 0vw 1.4641288433vw 0; }
      main article .background-img .inner {
        width: 100%;
        display: flex;
        justify-content: center;
        flex-wrap: wrap;
        margin-top: 1.4641288433vw;
        gap: 1.4641288433vw; }
        main article .background-img .inner .wid_1 {
          width: 47.5841874085vw;
          height: 27.0863836018vw; }
        main article .background-img .inner .wid_2 {
          width: 23.9385065886vw;
          height: 27.0863836018vw; }
        main article .background-img .inner .wid_3 {
          width: 22.4011713031vw; }
          main article .background-img .inner .wid_3 figure {
            height: 12.8111273792vw; }
          main article .background-img .inner .wid_3 figure:last-child {
            margin-top: 1.6105417277vw; }
      main article .background-img figure {
        position: relative;
        overflow: hidden; }
      main article .background-img figure img {
        width: 100%;
        height: 100%;
        object-fit: cover;
        /* 画像の比率を保ったまま枠を埋める */
        display: block; }
    main article .kv {
      width: 100%;
      position: relative; }
      main article .kv .inner {
        background: #fff;
        margin: 0 auto;
        margin-top: 16.1054172767vw;
        width: 26.3543191801vw;
        height: 26.3543191801vw;
        display: flex;
        justify-content: center;
        align-items: center; }
        main article .kv .inner h2 {
          width: 19.0336749634vw;
          margin: 0 auto; }
          main article .kv .inner h2 strong {
            display: block;
            width: 19.0336749634vw;
            margin-top: 1.1713030747vw; }
    main article .contents {
      width: 100%;
      position: relative;
      z-index: 1;
      margin-top: 14.6412884334vw; }
      main article .contents h3 {
        text-align: center;
        padding: 6.588579795vw; }
        main article .contents h3 strong {
          font-family: "Montserrat", sans-serif;
          font-weight: 400;
          font-size: 2.3426061493vw;
          letter-spacing: 0.1em; }
        main article .contents h3 small {
          font-weight: 300;
          display: block;
          font-size: 1.756954612vw;
          letter-spacing: 0.06em; }
      main article .contents .value {
        background: rgba(0, 0, 0, 0.8);
        width: 65.8857979502vw;
        margin: 0 auto; }
        main article .contents .value h3 {
          color: #fff;
          padding-bottom: 3.6603221083vw; }
        main article .contents .value .concept {
          text-align: center;
          font-size: 1.1713030747vw;
          line-height: 2;
          color: #fff;
          font-weight: 300;
          letter-spacing: 0.1em; }
        main article .contents .value .inner--contents--flex {
          padding: 3.6603221083vw 4.39238653vw 1.4641288433vw;
          background: #fff;
          color: #000;
          display: flex;
          justify-content: space-between;
          flex-wrap: wrap;
          margin-top: 4.39238653vw; }
          main article .contents .value .inner--contents--flex .txtbox {
            display: flex;
            justify-content: space-between; }
          main article .contents .value .inner--contents--flex dl {
            width: 26.3543191801vw;
            margin-top: 1.4641288433vw;
            padding-bottom: 2.196193265vw; }
            main article .contents .value .inner--contents--flex dl:nth-child(even) {
              position: relative; }
              main article .contents .value .inner--contents--flex dl:nth-child(even):before {
                position: absolute;
                content: "";
                top: 0.7320644217vw;
                height: 8.0527086384vw;
                left: -2.196193265vw;
                border-left: 0.0732064422vw solid #000; }
            main article .contents .value .inner--contents--flex dl dt {
              font-size: 1.4641288433vw; }
              main article .contents .value .inner--contents--flex dl dt span {
                display: inline-block;
                font-family: "Montserrat", sans-serif;
                font-weight: 400;
                font-size: 1.756954612vw;
                letter-spacing: 0.2em;
                padding-right: 0.7320644217vw;
                margin-right: 0.7320644217vw;
                position: relative; }
                main article .contents .value .inner--contents--flex dl dt span:after {
                  position: absolute;
                  content: "";
                  width: 0.0732064422vw;
                  height: 1.4641288433vw;
                  top: 50%;
                  margin-top: -0.7320644217vw;
                  background: #000;
                  right: 0; }
            main article .contents .value .inner--contents--flex dl dd {
              font-weight: 300;
              font-size: 1.0248901903vw;
              text-align: justify;
              margin-top: 0.5856515373vw; }
        main article .contents .value .inner--contents .caption {
          padding: 3.6603221083vw 4.39238653vw 0vw;
          color: #fff;
          font-size: 0.7320644217vw; }
        main article .contents .value .under_logo {
          width: 13.17715959vw;
          margin: 0 auto;
          padding: 4.39238653vw 0; }
      main article .contents .benefits {
        width: 65.8857979502vw;
        margin: 7.3206442167vw auto 0; }
        main article .contents .benefits h3 {
          color: #000;
          padding-bottom: 2.9282576867vw; }
        main article .contents .benefits .concept {
          text-align: center;
          font-size: 1.1713030747vw;
          line-height: 2;
          color: #000;
          font-weight: 300;
          letter-spacing: 0.1em; }
        main article .contents .benefits .inner.wid {
          width: 58.5651537335vw;
          margin: 0 auto;
          padding-bottom: 5.8565153734vw;
          background: #fff;
          padding: 0 5.8565153734vw 5.8565153734vw; }
          main article .contents .benefits .inner.wid .txt {
            font-size: 1.0248901903vw; }
        main article .contents .benefits .inner .back_w {
          background: rgba(255, 255, 255, 0.9);
          padding-bottom: 5.8565153734vw; }
        main article .contents .benefits .inner--under {
          background: rgba(242, 242, 242, 0.9);
          margin-top: 0vw;
          padding: 5.8565153734vw 0; }
          main article .contents .benefits .inner--under h5 {
            width: 16.1054172767vw;
            border: 0.0732064422vw solid #000;
            text-align: center;
            margin: 0 auto;
            padding: 0.1464128843vw;
            font-weight: 300;
            font-size: 1.1713030747vw; }
          main article .contents .benefits .inner--under table {
            width: 40.9956076135vw;
            font-family: "Noto Sans JP", sans-serif;
            margin: 2.196193265vw auto;
            font-size: 1.0248901903vw; }
            main article .contents .benefits .inner--under table th {
              width: 26%;
              text-align: center; }
              main article .contents .benefits .inner--under table th:nth-child(2) {
                width: 48%; }
            main article .contents .benefits .inner--under table td {
              width: 26%;
              padding: 1.0980966325vw 0;
              text-align: center;
              border-bottom: 0.0732064422vw dashed #000; }
              main article .contents .benefits .inner--under table td:first-child {
                text-align: left; }
              main article .contents .benefits .inner--under table td:nth-child(2) {
                width: 48%; }
        main article .contents .benefits .under_logo {
          width: 14.6412884334vw;
          margin: 0 auto;
          padding: 4.39238653vw 0; }
      main article .contents .contact {
        background: rgba(227, 210, 160, 0.9);
        width: 65.8857979502vw;
        margin: 7.3206442167vw auto 0; }
        main article .contents .contact h3 {
          padding: 4.39238653vw 0 2.196193265vw; }
        main article .contents .contact .form {
          width: 43.9238653001vw;
          margin: 0 auto; }
          main article .contents .contact .form .formbox dl {
            display: flex;
            justify-content: space-between;
            align-items: center;
            margin-bottom: 2.196193265vw; }
            main article .contents .contact .form .formbox dl dt {
              width: 17.5695461201vw; }
              main article .contents .contact .form .formbox dl dt span {
                color: red;
                display: inline-block;
                margin-left: 1.4641288433vw; }
              main article .contents .contact .form .formbox dl dt .required, main article .contents .contact .form .formbox dl dt .optional {
                display: none; }
            main article .contents .contact .form .formbox dl dd {
              width: 26.3543191801vw; }
              main article .contents .contact .form .formbox dl dd input, main article .contents .contact .form .formbox dl dd textarea {
                width: 100%;
                border: none;
                padding: 0.7320644217vw;
                font-size: 1.1713030747vw; }
              main article .contents .contact .form .formbox dl dd textarea {
                height: 14.6412884334vw; }
              main article .contents .contact .form .formbox dl dd placeholder {
                color: #f2f2f2; }
              main article .contents .contact .form .formbox dl dd .error_blank {
                color: red; }
          main article .contents .contact .form #form_submit {
            width: 26.3543191801vw;
            margin: 0 auto;
            position: relative; }
            main article .contents .contact .form #form_submit:after {
              position: absolute;
              content: "";
              width: 0.7320644217vw;
              height: 0.7320644217vw;
              border-top: 0.0732064422vw solid #fff;
              border-right: 0.0732064422vw solid #fff;
              transform: rotate(45deg);
              right: 1.317715959vw;
              top: 50%;
              margin-top: -0.3660322108vw; }
          main article .contents .contact .form #form_submit_button {
            width: 26.3543191801vw;
            background: #313235;
            color: #fff;
            font-family: "Noto Serif JP", serif;
            font-size: 1.756954612vw;
            padding: 1.0248901903vw 0;
            cursor: pointer; }
        main article .contents .contact .caption {
          text-align: center;
          padding: 1.4641288433vw 0 4.39238653vw; }
      main article .contents .vestra {
        width: 100%;
        display: flex;
        justify-content: space-between;
        margin-top: 7.3206442167vw;
        background: rgba(0, 0, 0, 0.8); }
        main article .contents .vestra h3 {
          color: #fff;
          padding: 4.39238653vw 0 0; }
          main article .contents .vestra h3 small {
            font-size: 1.1713030747vw; }
          main article .contents .vestra h3 strong {
            font-size: 3.2210834553vw;
            font-weight: 200;
            display: block;
            margin: 0.7320644217vw 0; }
          main article .contents .vestra h3 span {
            display: block;
            width: 5.1244509517vw;
            margin: 0 auto; }
        main article .contents .vestra .inner {
          padding-top: 5.8565153734vw; }
          main article .contents .vestra .inner .concept {
            color: #fff;
            font-size: 1.1713030747vw;
            line-height: 2;
            text-align: center;
            font-weight: 300;
            padding-top: 2.9282576867vw; }
          main article .contents .vestra .inner .undercontactbtn {
            width: 26.3543191801vw;
            margin: 2.9282576867vw auto 0;
            text-align: center;
            background: #313235;
            color: #fff;
            font-family: "Noto Serif JP", serif;
            font-size: 1.317715959vw;
            cursor: pointer; }
            main article .contents .vestra .inner .undercontactbtn a {
              color: #fff;
              padding: 1.4641288433vw 0;
              position: relative; }
              main article .contents .vestra .inner .undercontactbtn a:after {
                position: absolute;
                content: "";
                width: 0.7320644217vw;
                height: 0.7320644217vw;
                border-top: 0.0732064422vw solid #fff;
                border-right: 0.0732064422vw solid #fff;
                transform: rotate(45deg);
                right: 1.317715959vw;
                top: 50%;
                margin-top: -0.3660322108vw; }
        main article .contents .vestra .imgs {
          width: 27.8184480234vw;
          overflow: hidden;
          margin-bottom: -0.439238653vw; }
          main article .contents .vestra .imgs video {
            width: 150%; }
          main article .contents .vestra .imgs.pos_1 video {
            margin-left: -20%; }
      main article .contents .case {
        background: #313235;
        margin-top: 7.3206442167vw;
        padding-bottom: 4.39238653vw; }
        main article .contents .case h3 {
          color: #fff;
          padding-bottom: 2.196193265vw; }
        main article .contents .case .inner--slider .box {
          padding: 0 4.39238653vw 0;
          color: #fff; }
          main article .contents .case .inner--slider .box h4 {
            font-family: "Noto Serif JP", serif;
            font-size: 1.756954612vw;
            font-weight: 300;
            letter-spacing: 0.08em; }
            main article .contents .case .inner--slider .box h4 strong {
              font-family: "Montserrat", sans-serif;
              font-weight: 300;
              font-size: 2.3426061493vw;
              display: inline-block;
              margin-right: 1.4641288433vw;
              position: relative;
              top: 0.1464128843vw; }
          main article .contents .case .inner--slider .box figure {
            margin-top: 0.5856515373vw; }
          main article .contents .case .inner--slider .box ul {
            display: flex;
            justify-content: space-between;
            align-items: center;
            padding: 0.2928257687vw 0; }
            main article .contents .case .inner--slider .box ul.last {
              border-top: 0.0732064422vw solid #fff; }
            main article .contents .case .inner--slider .box ul li {
              letter-spacing: 0.06em;
              font-weight: 300; }
              main article .contents .case .inner--slider .box ul li:first-child {
                font-size: 1.4641288433vw; }
              main article .contents .case .inner--slider .box ul li:last-child {
                text-align: right;
                font-size: 1.756954612vw; }
          main article .contents .case .inner--slider .box h5 {
            font-size: 1.1713030747vw;
            font-weight: 300;
            text-align: justify; }
        main article .contents .case .insta {
          margin-top: 4.39238653vw;
          position: relative;
          overflow: hidden;
          height: 20.4978038067vw; }
          main article .contents .case .insta .eapps-instagram-feed-posts-item-type-carousel .eapps-instagram-feed-posts-item-image-icon-carousel {
            display: none; }
      main article .contents .flow {
        background: #313235;
        padding-bottom: 5.8565153734vw;
        margin-top: 7.3206442167vw; }
        main article .contents .flow h3 {
          color: #fff;
          padding-bottom: 2.196193265vw; }
        main article .contents .flow .inner--flex {
          display: flex;
          justify-content: center;
          gap: 0 7.3206442167vw;
          position: relative; }
          main article .contents .flow .inner--flex:before {
            position: absolute;
            content: "";
            width: 100%;
            border-top: 0.0732064422vw solid #fff;
            top: 6.588579795vw; }
          main article .contents .flow .inner--flex .box {
            width: 21.2298682284vw;
            color: #fff;
            position: relative;
            z-index: 2; }
            main article .contents .flow .inner--flex .box:first-child:after, main article .contents .flow .inner--flex .box:nth-child(2):after {
              position: absolute;
              content: "";
              width: 1.756954612vw;
              height: 1.756954612vw;
              border-top: 0.0732064422vw solid #fff;
              border-right: 0.0732064422vw solid #fff;
              transform: rotate(45deg);
              right: -6.8814055637vw;
              top: 5.710102489vw; }
            main article .contents .flow .inner--flex .box h4 {
              font-family: "Noto Serif JP", serif;
              font-size: 1.1713030747vw;
              font-weight: 300;
              letter-spacing: 0.08em;
              text-align: justify; }
            main article .contents .flow .inner--flex .box figure {
              margin-bottom: 0.878477306vw; }
      main article .contents .underbtn {
        width: 57.8330893119vw;
        margin: 7.3206442167vw auto 0;
        text-align: center;
        background: #e3d2a0;
        color: #000;
        font-family: "Noto Serif JP", serif;
        font-size: 1.756954612vw;
        cursor: pointer; }
        main article .contents .underbtn a {
          color: #000;
          padding: 2.196193265vw 0;
          position: relative; }
          main article .contents .underbtn a:after {
            position: absolute;
            content: "";
            width: 0.7320644217vw;
            height: 0.7320644217vw;
            border-top: 0.0732064422vw solid #000;
            border-right: 0.0732064422vw solid #000;
            transform: rotate(45deg);
            right: 1.317715959vw;
            top: 50%;
            margin-top: -0.3660322108vw; }
      main article .contents .middlebtn {
        width: 57.8330893119vw;
        margin: 4.39238653vw auto 0;
        text-align: center;
        background: #313235;
        color: #fff;
        font-family: "Noto Serif JP", serif;
        font-size: 1.756954612vw;
        cursor: pointer; }
        main article .contents .middlebtn a {
          color: #fff;
          padding: 2.196193265vw 0;
          position: relative; }
          main article .contents .middlebtn a:after {
            position: absolute;
            content: "";
            width: 0.7320644217vw;
            height: 0.7320644217vw;
            border-top: 0.0732064422vw solid #fff;
            border-right: 0.0732064422vw solid #fff;
            transform: rotate(45deg);
            right: 1.317715959vw;
            top: 50%;
            margin-top: -0.3660322108vw; }
  main footer {
    margin-top: 7.3206442167vw;
    position: relative;
    background: #313235;
    padding-top: 4.39238653vw; }
    main footer .logounder {
      width: 12.737920937vw;
      margin: 0 auto; }
    main footer .txt {
      color: #fff;
      font-size: 1.0248901903vw;
      text-align: center;
      letter-spacing: 0.08em;
      padding: 2.196193265vw 0; }
      main footer .txt strong {
        font-size: 1.317715959vw;
        display: block; }
    main footer address {
      font-size: 0.8052708638vw;
      text-align: center;
      color: #fff; }
    main footer .plbtn {
      font-size: 0.878477306vw;
      margin-left: 1.4641288433vw;
      font-family: "Noto Sans JP", sans-serif; }
      main footer .plbtn a {
        color: #fff; }
    main footer .pagetop {
      position: fixed;
      width: 4.39238653vw;
      height: 4.39238653vw;
      right: 1.4641288433vw;
      bottom: 1.4641288433vw; }

@media screen and (max-width: 767px) {
  main {
    overflow: hidden; }
    main article {
      width: 100%;
      font-size: 3.7333333333vw; }
      main article .hamburger {
        display: block;
        position: fixed;
        z-index: 15;
        top: 0vw;
        right: 0vw;
        width: 16vw;
        height: 16vw;
        cursor: pointer;
        text-align: center;
        background: #000; }
      main article .hamburger span {
        display: block;
        position: absolute;
        width: 10.6666666667vw;
        margin-left: -5.3333333333vw;
        height: 1px;
        left: 50%;
        background: #fff;
        -webkit-transition: 0.5s ease-in-out;
        -moz-transition: 0.5s ease-in-out;
        transition: 0.5s ease-in-out; }
      main article .hamburger span:nth-child(1) {
        top: 50%;
        margin-top: -2.1333333333vw; }
      main article .hamburger span:nth-child(2) {
        top: 50%; }
      main article .hamburger span:nth-child(3) {
        top: 50%;
        margin-top: 2.1333333333vw; }
      main article .hamburger.active span:nth-child(1) {
        top: 50%;
        margin-top: 0;
        -webkit-transform: rotate(335deg);
        -moz-transform: rotate(335deg);
        transform: rotate(335deg);
        background: #fff; }
      main article .hamburger.active span:nth-child(2),
      main article .hamburger.active span:nth-child(3) {
        top: 50%;
        margin-top: 0;
        -webkit-transform: rotate(-335deg);
        -moz-transform: rotate(-335deg);
        transform: rotate(-335deg);
        background: #fff; }
      main article header {
        height: 16vw; }
        main article header .inner {
          width: 100%;
          height: 16vw;
          display: block; }
        main article header h1 {
          width: 13.3333333333vw;
          margin: 2.6666666667vw 0 0 5.3333333333vw; }
        main article header nav {
          display: none;
          margin-right: 19.0336749634vw;
          position: absolute;
          top: 16vw;
          width: 100%;
          background: #000; }
          main article header nav div {
            margin-left: 0vw;
            text-align: center;
            border-bottom: 0.2666666667vw solid #666; }
            main article header nav div a {
              padding: 3.7333333333vw 2.6666666667vw;
              color: #fff; }
        main article header .insta {
          position: absolute;
          width: 8vw;
          height: 8vw;
          right: 37.3333333333vw;
          top: 4.2666666667vw; }
        main article header .contactbtn {
          position: absolute;
          right: 16vw;
          top: 0;
          width: 16vw;
          background: #e3d2a0;
          padding: 4vw 1.0666666667vw; }
      main article .background-img {
        position: fixed;
        top: 16vw;
        z-index: -1;
        padding: 0vw 2.6666666667vw 0; }
        main article .background-img .inner {
          width: 100%;
          display: flex;
          justify-content: center;
          flex-wrap: wrap;
          margin-top: 2.6666666667vw;
          gap: 2.6666666667vw; }
          main article .background-img .inner .wid_1 {
            width: 100%;
            height: 52vw; }
          main article .background-img .inner .wid_2 {
            width: 48.5%;
            height: 49.3333333333vw; }
          main article .background-img .inner .wid_3 {
            width: 48.5%; }
            main article .background-img .inner .wid_3 figure {
              height: 23.3333333333vw; }
            main article .background-img .inner .wid_3 figure:last-child {
              margin-top: 2.9333333333vw; }
        main article .background-img figure {
          position: relative;
          overflow: hidden; }
        main article .background-img figure img {
          width: 100%;
          height: 100%;
          object-fit: cover;
          /* 画像の比率を保ったまま枠を埋める */
          display: block; }
      main article .kv {
        width: 100%;
        position: relative; }
        main article .kv .inner {
          background: #fff;
          margin: 0 auto;
          margin-top: 72vw;
          width: 48vw;
          height: 48vw;
          display: flex;
          justify-content: center;
          align-items: center; }
          main article .kv .inner h2 {
            width: 34.6666666667vw;
            margin: 0 auto; }
            main article .kv .inner h2 strong {
              display: block;
              width: 34.6666666667vw;
              margin-top: 1.1713030747vw; }
      main article .contents {
        width: 100%;
        position: relative;
        z-index: 1;
        margin-top: 53.3333333333vw; }
        main article .contents h3 {
          text-align: center;
          padding: 12vw 0vw; }
          main article .contents h3 strong {
            font-family: "Montserrat", sans-serif;
            font-weight: 400;
            font-size: 5.3333333333vw;
            letter-spacing: 0.1em; }
          main article .contents h3 small {
            font-weight: 300;
            display: block;
            font-size: 3.7333333333vw;
            letter-spacing: 0.06em; }
        main article .contents .value {
          background: rgba(0, 0, 0, 0.8);
          width: 90.6666666667vw;
          margin: 0 auto; }
          main article .contents .value h3 {
            color: #fff;
            padding-bottom: 8vw; }
          main article .contents .value .concept {
            text-align: center;
            font-size: 2.9333333333vw;
            line-height: 2;
            color: #fff;
            font-weight: 300;
            letter-spacing: 0.04em; }
          main article .contents .value .inner--contents--flex {
            margin-top: 8vw;
            padding: 8vw 5.3333333333vw 2.6666666667vw;
            color: #000;
            display: flex;
            justify-content: space-between;
            flex-wrap: wrap; }
            main article .contents .value .inner--contents--flex .txtbox {
              flex-wrap: wrap; }
            main article .contents .value .inner--contents--flex dl {
              width: 100%;
              margin-top: 2.6666666667vw;
              padding-bottom: 2.6666666667vw;
              border-bottom: 0.2666666667vw solid #fff; }
              main article .contents .value .inner--contents--flex dl:nth-child(even) {
                position: relative; }
                main article .contents .value .inner--contents--flex dl:nth-child(even):before {
                  position: absolute;
                  content: "";
                  top: 2.6666666667vw;
                  height: 34.6666666667vw;
                  left: -8vw;
                  border-left: 0.2666666667vw solid #fff; }
              main article .contents .value .inner--contents--flex dl:nth-child(5), main article .contents .value .inner--contents--flex dl:nth-child(6) {
                border-bottom: none; }
              main article .contents .value .inner--contents--flex dl:nth-child(5) {
                border-bottom: 0.2666666667vw solid #fff; }
              main article .contents .value .inner--contents--flex dl dt {
                font-size: 3.7333333333vw;
                text-align: center; }
                main article .contents .value .inner--contents--flex dl dt span {
                  font-family: "Montserrat", sans-serif;
                  font-weight: 400;
                  font-size: 4.8vw;
                  letter-spacing: 0.2em;
                  padding-right: 0.7320644217vw;
                  margin-right: 0.7320644217vw;
                  position: relative;
                  display: block;
                  text-align: center; }
                  main article .contents .value .inner--contents--flex dl dt span:after {
                    position: absolute;
                    content: none; }
              main article .contents .value .inner--contents--flex dl dd {
                font-weight: 300;
                font-size: 2.9333333333vw;
                text-align: justify;
                margin-top: 2.1333333333vw; }
          main article .contents .value .inner--contents .caption {
            padding: 5.3333333333vw 5.3333333333vw 0vw;
            color: #fff;
            font-size: 2.6666666667vw; }
          main article .contents .value .under_logo {
            width: 26.6666666667vw;
            margin: 0 auto;
            padding: 8vw 0; }
        main article .contents .benefits {
          width: 90.6666666667vw;
          margin: 0 auto;
          margin-top: 16vw; }
          main article .contents .benefits h3 {
            color: #000; }
          main article .contents .benefits .concept {
            text-align: center;
            font-size: 2.9333333333vw;
            line-height: 2;
            color: #000;
            font-weight: 300;
            letter-spacing: 0.04em; }
          main article .contents .benefits .inner.wid {
            width: 80vw;
            margin: 0 auto;
            padding-bottom: 10.6666666667vw; }
            main article .contents .benefits .inner.wid .txt {
              font-size: 2.9333333333vw; }
          main article .contents .benefits .inner .back_w {
            background: rgba(255, 255, 255, 0.9);
            padding-bottom: 8vw; }
          main article .contents .benefits .inner--under {
            margin-top: 0vw;
            padding: 8vw 0; }
            main article .contents .benefits .inner--under h5 {
              width: 37.3333333333vw;
              border: 0.2666666667vw solid #000;
              text-align: center;
              margin: 0 auto;
              padding: 0.5333333333vw;
              font-weight: 300;
              font-size: 3.7333333333vw; }
            main article .contents .benefits .inner--under table {
              width: 80vw;
              font-family: "Noto Sans JP", sans-serif;
              margin: 4vw auto;
              font-size: 2.6666666667vw; }
              main article .contents .benefits .inner--under table th {
                width: 30%;
                text-align: center; }
                main article .contents .benefits .inner--under table th:nth-child(2) {
                  width: 46%; }
                main article .contents .benefits .inner--under table th:nth-child(3) {
                  width: 24%; }
              main article .contents .benefits .inner--under table td {
                width: 30%;
                padding: 1.0980966325vw 0;
                text-align: center;
                border-bottom: 0.0732064422vw dashed #000; }
                main article .contents .benefits .inner--under table td:first-child {
                  text-align: left; }
                main article .contents .benefits .inner--under table td:nth-child(2) {
                  width: 46%; }
                main article .contents .benefits .inner--under table td:nth-child(3) {
                  width: 24%; }
        main article .contents .contact {
          background: rgba(227, 210, 160, 0.9);
          width: 90.6666666667vw;
          margin: 12vw auto 0; }
          main article .contents .contact h3 {
            padding: 8vw 0 0vw; }
          main article .contents .contact .form {
            width: 80vw;
            margin: 0 auto; }
            main article .contents .contact .form .formbox dl {
              display: flex;
              justify-content: space-between;
              align-items: center;
              margin-bottom: 4vw;
              font-size: 3.2vw; }
              main article .contents .contact .form .formbox dl dt {
                width: 32vw; }
                main article .contents .contact .form .formbox dl dt span {
                  color: red;
                  display: inline-block;
                  margin-left: 1.4641288433vw; }
              main article .contents .contact .form .formbox dl dd {
                width: 48vw; }
                main article .contents .contact .form .formbox dl dd input, main article .contents .contact .form .formbox dl dd textarea {
                  width: 100%;
                  border: none;
                  padding: 1.3333333333vw;
                  font-size: 3.2vw; }
                main article .contents .contact .form .formbox dl dd textarea {
                  height: 40vw; }
                main article .contents .contact .form .formbox dl dd placeholder {
                  color: #f2f2f2; }
            main article .contents .contact .form #form_submit {
              width: 48vw;
              margin: 8vw auto 0;
              position: relative; }
              main article .contents .contact .form #form_submit:after {
                position: absolute;
                content: "";
                width: 2.6666666667vw;
                height: 2.6666666667vw;
                border-top: 0.2666666667vw solid #fff;
                border-right: 0.2666666667vw solid #fff;
                transform: rotate(45deg);
                right: 4.8vw;
                top: 50%;
                margin-top: -1.3333333333vw; }
            main article .contents .contact .form #form_submit_button {
              width: 48vw;
              background: #313235;
              color: #fff;
              font-family: "Noto Serif JP", serif;
              font-size: 3.7333333333vw;
              padding: 3.2vw 0;
              cursor: pointer; }
          main article .contents .contact .caption {
            text-align: center;
            padding: 2.6666666667vw 0 8vw; }
        main article .contents .vestra {
          width: 100%;
          display: flex;
          justify-content: space-between;
          margin-top: 12vw;
          background: rgba(0, 0, 0, 0.8);
          flex-wrap: wrap; }
          main article .contents .vestra h3 {
            color: #fff;
            padding: 8vw 0 0; }
            main article .contents .vestra h3 small {
              font-size: 3.7333333333vw; }
            main article .contents .vestra h3 strong {
              font-size: 5.3333333333vw;
              font-weight: 200;
              display: block;
              margin: 2.6666666667vw 0; }
            main article .contents .vestra h3 span {
              display: block;
              width: 18.6666666667vw;
              margin: 0 auto; }
          main article .contents .vestra .inner {
            width: 100%;
            padding-top: 5.8565153734vw;
            order: 3; }
            main article .contents .vestra .inner .concept {
              color: #fff;
              font-size: 2.9333333333vw;
              line-height: 2;
              text-align: center;
              font-weight: 300;
              padding-top: 5.3333333333vw; }
            main article .contents .vestra .inner .undercontactbtn {
              width: 48vw;
              margin: 10.6666666667vw auto 0;
              text-align: center;
              background: #313235;
              color: #fff;
              font-family: "Noto Serif JP", serif;
              font-size: 3.7333333333vw;
              cursor: pointer; }
              main article .contents .vestra .inner .undercontactbtn a {
                color: #fff;
                padding: 4vw 0;
                position: relative; }
                main article .contents .vestra .inner .undercontactbtn a:after {
                  position: absolute;
                  content: "";
                  width: 2.6666666667vw;
                  height: 2.6666666667vw;
                  border-top: 0.2666666667vw solid #fff;
                  border-right: 0.2666666667vw solid #fff;
                  transform: rotate(45deg);
                  right: 4.8vw;
                  top: 50%;
                  margin-top: -1.3333333333vw; }
          main article .contents .vestra .imgs {
            width: 50%;
            overflow: hidden; }
            main article .contents .vestra .imgs.pos_1 {
              order: 1; }
            main article .contents .vestra .imgs.pos_2 {
              order: 2; }
        main article .contents .case {
          background: #313235; }
          main article .contents .case h3 {
            color: #fff; }
          main article .contents .case .inner--slider .box {
            padding: 0 4vw 0;
            color: #fff; }
            main article .contents .case .inner--slider .box h4 {
              font-family: "Noto Serif JP", serif;
              font-size: 4.2666666667vw;
              font-weight: 300;
              letter-spacing: 0.08em; }
              main article .contents .case .inner--slider .box h4 strong {
                font-family: "Montserrat", sans-serif;
                font-weight: 300;
                font-size: 6.4vw;
                display: inline-block;
                margin-right: 2.6666666667vw;
                position: relative;
                top: 0.5333333333vw; }
            main article .contents .case .inner--slider .box figure {
              margin-top: 2.1333333333vw; }
            main article .contents .case .inner--slider .box ul {
              display: flex;
              justify-content: space-between;
              align-items: center;
              padding: 1.0666666667vw 0; }
              main article .contents .case .inner--slider .box ul.last {
                border-top: 0.2666666667vw solid #fff; }
              main article .contents .case .inner--slider .box ul li {
                letter-spacing: 0.06em;
                font-weight: 300; }
                main article .contents .case .inner--slider .box ul li:first-child {
                  font-size: 3.2vw; }
                main article .contents .case .inner--slider .box ul li:last-child {
                  text-align: right;
                  font-size: 3.7333333333vw; }
            main article .contents .case .inner--slider .box h5 {
              font-weight: 300;
              text-align: justify;
              font-size: 2.9333333333vw; }
          main article .contents .case .insta {
            margin-top: 8vw;
            position: relative;
            overflow: hidden;
            height: 64vw; }
            main article .contents .case .insta .eapps-instagram-feed-posts-item-type-carousel .eapps-instagram-feed-posts-item-image-icon-carousel {
              display: none; }
        main article .contents .flow {
          background: #313235;
          padding-bottom: 8vw; }
          main article .contents .flow h3 {
            color: #fff;
            padding-bottom: 0vw; }
          main article .contents .flow .inner--flex {
            display: flex;
            justify-content: center;
            gap: 0 7.3206442167vw;
            position: relative;
            flex-wrap: wrap; }
            main article .contents .flow .inner--flex:before {
              content: none; }
            main article .contents .flow .inner--flex .box {
              width: 64vw;
              color: #fff;
              position: relative;
              z-index: 2;
              margin-top: 8vw; }
              main article .contents .flow .inner--flex .box:first-child:after, main article .contents .flow .inner--flex .box:nth-child(2):after {
                position: absolute;
                content: none; }
              main article .contents .flow .inner--flex .box h4 {
                font-family: "Noto Serif JP", serif;
                font-size: 3.2vw;
                font-weight: 300;
                letter-spacing: 0.08em;
                text-align: justify; }
              main article .contents .flow .inner--flex .box figure {
                margin-bottom: 3.2vw; }
        main article .contents .underbtn {
          width: 90.6666666667vw;
          margin: 13.3333333333vw auto 0;
          text-align: center;
          background: #e3d2a0;
          color: #000;
          font-family: "Noto Serif JP", serif;
          font-size: 3.7333333333vw;
          cursor: pointer; }
          main article .contents .underbtn a {
            color: #000;
            padding: 4vw 0;
            position: relative; }
            main article .contents .underbtn a:after {
              position: absolute;
              content: "";
              width: 2.6666666667vw;
              height: 2.6666666667vw;
              border-top: 0.2666666667vw solid #000;
              border-right: 0.2666666667vw solid #000;
              transform: rotate(45deg);
              right: 4.8vw;
              top: 50%;
              margin-top: -1.3333333333vw; }
        main article .contents .middlebtn {
          width: 90.6666666667vw;
          margin: 5.3333333333vw auto 0;
          text-align: center;
          background: #313235;
          color: #fff;
          font-family: "Noto Serif JP", serif;
          font-size: 3.7333333333vw;
          cursor: pointer; }
          main article .contents .middlebtn a {
            color: #fff;
            padding: 4vw 0;
            position: relative; }
            main article .contents .middlebtn a:after {
              position: absolute;
              content: "";
              width: 2.6666666667vw;
              height: 2.6666666667vw;
              border-top: 0.2666666667vw solid #fff;
              border-right: 0.0732064422vw solid #fff;
              transform: rotate(45deg);
              right: 4.8vw;
              top: 50%;
              margin-top: -1.3333333333vw; }
    main footer {
      margin-top: 13.3333333333vw;
      position: relative;
      background: #313235;
      padding-top: 13.3333333333vw; }
      main footer .logounder {
        width: 26.6666666667vw;
        margin: 0 auto; }
      main footer .txt {
        color: #fff;
        font-size: 2.9333333333vw;
        text-align: center;
        letter-spacing: 0.08em;
        padding: 4vw 0; }
        main footer .txt strong {
          font-size: 3.7333333333vw;
          display: block; }
      main footer address {
        font-size: 2.9333333333vw;
        text-align: center;
        color: #fff; }
      main footer .plbtn {
        font-size: 2.9333333333vw;
        margin-left: 2.6666666667vw;
        padding-top: 2.6666666667vw;
        font-family: "Noto Sans JP", sans-serif; }
        main footer .plbtn a {
          color: #fff; }
      main footer .pagetop {
        position: fixed;
        width: 8vw;
        height: 8vw;
        right: 2.6666666667vw;
        bottom: 2.6666666667vw; } }
/* =========================================================
 * reset　　　    /*リセット
========================================================= */
blockquote, body, div, dl, dt, dd, fieldset, form, h1, h2, h3, h4, h5, h6, input, li, ol, p, pre, select, span, textarea, td, th, ul, figure, figcaption {
  margin: 0px;
  padding: 0px; }

fieldset, img {
  border: 0; }

h1, h2, h3, h4, h5, h6 {
  font-size: 100%; }

ol {
  list-style-type: none; }

ul {
  list-style-type: none; }
  ul li {
    list-style-type: none; }
    ul li img {
      line-height: 0;
      font-size: 0;
      vertical-align: top; }

img {
  border: none;
  vertical-align: bottom; }

table {
  border-collapse: collapse;
  border-spacing: 0; }

caption, th {
  text-align: left; }

iframe {
  border: none; }

a:focus {
  outline: none; }

address, caption, cite, code, dfn, em, strong, th, var {
  font-style: normal;
  font-weight: normal; }

/* IE */
* html ul li dl, * html ol li dl {
  display: inline; }
*:first-child + html ul li dl, *:first-child + html ol li dl {
  display: inline; }

/* =========================================================
 * default settings      　   /*デフォルトセッティング
========================================================= */
html {
  font-size: 62.5%;
  overflow: auto; }

* {
  box-sizing: border-box;
  -webkit-box-sizing: border-box;
  -moz-box-sizing: border-box;
  word-break: break-all;
  /*CJK (中国語、台湾語、日本語、韓国語) 以外のテキストにおいて、単語中などでの文字の改行に関する禁則処理を解除し、どの文字の間でも改行するようにします。*/ }

body {
  overflow: hidden;
  -webkit-text-size-adjust: 100%;
  font: inherit;
  font-size: 1vw;
  /*ゴシック体設定*/
  font-family: "Noto Serif JP", serif;
  font-weight: 400;
  /*明朝体設定*/
  line-height: 1.6;
  color: #091C31;
  background: #fff;
  font-weight: 900; }

a {
  width: 100%;
  height: auto;
  display: block;
  text-decoration: none;
  color: #091C31;
  -webkit-transition: opacity 0.3s ease-out;
  -moz-transition: opacity 0.3s ease-out;
  -ms-transition: opacity 0.3s ease-out;
  transition: opacity 0.3s ease-out; }
  a:hover {
    opacity: 0.7;
    -webkit-opacity: .7;
    -moz-opacity: .7;
    filter: alpha(opacity=70);
    -ms-filter: "alpha(opacity=70)"; }

.soon {
  pointer-events: none;
  opacity: .5; }

.hide, .hidden {
  visibility: hidden; }

p {
  line-break: strict; }

img {
  max-width: 100%; }

main {
  display: block; }

.pc {
  display: block; }

.sp {
  display: none; }

@media screen and (max-width: 767px) {
  body {
    -webkit-text-size-adjust: 100%;
    background: #fff;
    min-width: 100%; }

  a {
    -webkit-transition: none;
    -moz-transition: none;
    -ms-transition: none;
    transition: none; }
    a:hover {
      opacity: 1;
      -webkit-opacity: 1;
      -moz-opacity: 1;
      filter: alpha(opacity=100);
      /* IE lt 8 */
      -ms-filter: "alpha(opacity=100)";
      /* IE 8 */ }

  img {
    width: 100%; }

  .pc {
    display: none; }

  .sp {
    display: block; } }
/* =========================================================
 * font
========================================================= */
.serif {
  font-family: "Noto Serif JP", serif; }

.sans {
  font-family: "Noto Sans JP", sans-serif; }

.monte {
  font-family: "Montserrat", sans-serif; }

/* =========================================================
 * clearfix　　   /*クリアフィックス
========================================================= */
.clearfix {
  zoom: 1; }
  .clearfix:before {
    content: "";
    display: table; }
  .clearfix:after {
    content: "";
    display: table;
    clear: both; }

/* =========================================================
 * fade Animation　　   /*フェード アニメーション
========================================================= */
.fade,
.fadein,
.fadein-top,
.fadein-left,
.fadein-right,
.opening {
  position: relative;
  opacity: 0;
  transition: opacity 0.875s ease-in-out , transform 0.875s ease-in-out; }

.fade {
  transform: translate(0, 0); }

.fadein {
  transform: translate(0, 50px);
  filter: blur(10px); }

.fadein-top {
  transform: translate(0, -50px); }

.fadein-left {
  transform: translate(-50px, 0); }

.fadein-right {
  transform: translate(50px, 0); }

.fade.scrollin,
.fadein.scrollin,
.fadein-top.scrollin,
.fadein-left.scrollin,
.fadein-right.scrollin,
.opening.active {
  opacity: 1;
  filter: blur(0px);
  transform: translate(0, 0); }
