@import url("https://fonts.googleapis.com/css2?family=Shippori+Mincho:wght@400;500;700&display=swap");
@font-face {
  font-family: SegoeUI;
  src: local("Segoe UI Semibold"), url(//c.s-microsoft.com/static/fonts/segoe-ui/west-european/semibold/latest.woff2) format("woff2"), url(//c.s-microsoft.com/static/fonts/segoe-ui/west-european/semibold/latest.woff) format("woff"), url(//c.s-microsoft.com/static/fonts/segoe-ui/west-european/semibold/latest.ttf) format("truetype");
  font-weight: 700; }
/*============================================================================
	fv
=============================================================================*/
#topfv {
  position: relative; }
  @media (max-width: 1200px) {
    #topfv {
      margin-top: 65px; } }
  #topfv .ttlBox {
    position: absolute;
    top: 50%;
    left: 50%;
    transform: translate(-50%, -50%);
    z-index: 3;
    width: 100%; }
    #topfv .ttlBox p {
      color: #fff;
      font-size: 3.2rem;
      font-weight: 700;
      line-height: 1.5;
      text-align: center; }
      #topfv .ttlBox p span {
        font-size: 4.0rem; }
      @media (max-width: 1200px) {
        #topfv .ttlBox p {
          font-size: 2.8rem; }
          #topfv .ttlBox p span {
            font-size: 3.4rem; } }
      @media (max-width: 1024px) {
        #topfv .ttlBox p {
          font-size: 2.6rem; }
          #topfv .ttlBox p span {
            font-size: 3.2rem; } }
      @media (max-width: 480px) {
        #topfv .ttlBox p {
          font-size: 2.0rem; }
          #topfv .ttlBox p span {
            font-size: 2.6rem; } }
      #topfv .ttlBox p + p {
        margin-top: 20px; }
    #topfv .ttlBox p.main {
      vertical-align: top;
      line-height: 1; }
      #topfv .ttlBox p.main span {
        border-bottom: 1px solid #fff;
        padding: 20px 20px;
        line-height: 1;
        vertical-align: top;
        margin: 0 10px; }
        @media (max-width: 480px) {
          #topfv .ttlBox p.main span {
            display: block;
            max-width: 80%;
            margin: 0 auto; } }
        #topfv .ttlBox p.main span + span {
          margin: 0 0 0 20px; }
          @media (max-width: 480px) {
            #topfv .ttlBox p.main span + span {
              margin: 20px auto 0; } }
      @media (max-width: 480px) {
        #topfv .ttlBox p.main {
          font-size: 2.2rem; } }
  #topfv .bg {
    width: 100%; }
    #topfv .bg picture {
      width: 100%;
      max-width: 100%;
      overflow: hidden;
      display: block;
      position: relative; }
      #topfv .bg picture::before {
        content: '';
        padding-top: 38.1%;
        width: 100%;
        display: block; }
        @media (max-width: 480px) {
          #topfv .bg picture::before {
            padding-top: 124.5%; } }
      #topfv .bg picture::after {
        position: absolute;
        content: "";
        display: block;
        top: 0;
        left: 0;
        width: 100%;
        height: 100%;
        background: url("../img/top/top_fv_line.png") no-repeat;
        background-size: cover;
        background-position: center center; }
        @media (max-width: 1200px) {
          #topfv .bg picture::after {
            background-size: 110% auto; } }
        @media (max-width: 1024px) {
          #topfv .bg picture::after {
            background: none; } }
      #topfv .bg picture source, #topfv .bg picture img {
        width: 100%;
        height: 100%;
        object-fit: cover;
        object-position: center;
        position: absolute;
        top: 0;
        left: 0;
        z-index: 0; }

/*============================================================================
	newsArea
=============================================================================*/
#newsArea {
  background: #F6F6F6;
  position: relative; }
  #newsArea .news_inner {
    padding: 15px 0; }
    @media (max-width: 480px) {
      #newsArea .news_inner {
        padding: 10px 0; } }
    #newsArea .news_inner a {
      align-items: center;
      width: fit-content; }
      @media (max-width: 480px) {
        #newsArea .news_inner a {
          align-items: baseline; } }
      #newsArea .news_inner a p.date {
        line-height: 1.75; }
        @media (max-width: 480px) {
          #newsArea .news_inner a p.date {
            font-size: 1.4rem; } }
      #newsArea .news_inner a p.ttl {
        line-height: 1.75;
        margin: 0 0 0 min(60px,6.2505vw); }
        @media (max-width: 480px) {
          #newsArea .news_inner a p.ttl {
            font-size: 1.4rem;
            margin: 0; } }
  #newsArea p.c-btn {
    position: absolute;
    top: 50%;
    transform: translateY(-50%);
    right: 2.5%; }
    #newsArea p.c-btn button.learn-more {
      width: 16rem; }
      @media (max-width: 480px) {
        #newsArea p.c-btn button.learn-more {
          width: 13rem; } }
      #newsArea p.c-btn button.learn-more .circle {
        width: 3rem;
        height: 3rem;
        border-radius: 1.625rem; }
        #newsArea p.c-btn button.learn-more .circle .icon.arrow {
          left: 0.625rem;
          width: 1.125rem;
          height: 0.15rem; }
          #newsArea p.c-btn button.learn-more .circle .icon.arrow::before {
            top: -0.25rem;
            right: 0.0625rem;
            width: 0.625rem;
            height: 0.625rem; }
      #newsArea p.c-btn button.learn-more .button-text {
        font-size: 1.6rem;
        padding: 0.4rem 0;
        margin: 0 0 0 2rem; }
        @media (max-width: 480px) {
          #newsArea p.c-btn button.learn-more .button-text {
            margin: 0 0 0 3rem;
            font-size: 1.4rem; } }
    #newsArea p.c-btn button:hover .circle {
      width: 100%; }

/*============================================================================
	aboutArea
=============================================================================*/
#aboutArea {
  background: url("../img/top/aboutBg.png") no-repeat;
  background-size: 100% 100%;
  padding: 130px 0;
  position: relative; }
  @media (max-width: 820px) {
    #aboutArea {
      padding-top: 80px;
      background: none;
      position: relative; }
      #aboutArea::before {
        content: "";
        display: block;
        height: 1px;
        width: 100%;
        background: #d5d5d5;
        position: absolute;
        top: 50px; }
      #aboutArea::after {
        content: "";
        display: block;
        height: 1px;
        width: 100%;
        background: #d5d5d5;
        position: absolute;
        bottom: 50px; } }
  #aboutArea .ttl {
    width: 80%;
    max-width: 1500px;
    margin: 30px auto 0;
    position: relative;
    z-index: 999; }
    #aboutArea .ttl img.showPC {
      display: block; }
    #aboutArea .ttl img.showSP {
      display: none; }
    @media (max-width: 820px) {
      #aboutArea .ttl img.showPC {
        display: none; }
      #aboutArea .ttl img.showSP {
        display: block; } }
  #aboutArea ul li {
    position: relative;
    width: fit-content; }
    #aboutArea ul li.office {
      margin: -30px 0 0 auto;
      width: 55%; }
      #aboutArea ul li.office p {
        position: absolute;
        background: #fff;
        font-size: 2.6rem;
        font-weight: 700;
        bottom: 0;
        right: 15%;
        padding: 20px 45px; }
    #aboutArea ul li.shop {
      margin: -50px auto 0 0;
      width: 40%; }
      #aboutArea ul li.shop p {
        position: absolute;
        background: #fff;
        font-size: 2.6rem;
        font-weight: 700;
        top: 0;
        left: 12%;
        padding: 20px 45px; }
    #aboutArea ul li.reproduction {
      margin: 100px 0 100px auto;
      width: 65%; }
      #aboutArea ul li.reproduction p {
        position: absolute;
        background: #fff;
        font-size: 2.6rem;
        font-weight: 700;
        top: 0;
        left: 0;
        padding: 20px 45px; }
    @media (max-width: 820px) {
      #aboutArea ul li.office {
        margin: 0 0 0 auto;
        width: 90%; }
        #aboutArea ul li.office p {
          bottom: 0;
          left: 0;
          right: inherit;
          font-size: 1.8rem; }
        #aboutArea ul li.office img {
          width: 100%; }
      #aboutArea ul li.shop {
        margin: 30px 0 0 auto;
        width: 90%; }
        #aboutArea ul li.shop p {
          bottom: 0;
          left: 0;
          top: inherit;
          font-size: 1.8rem; }
        #aboutArea ul li.shop img {
          width: 100%; }
      #aboutArea ul li.reproduction {
        margin: 30px 0 0 auto;
        width: 90%; }
        #aboutArea ul li.reproduction p {
          bottom: 0;
          left: 0;
          top: inherit;
          font-size: 1.8rem; }
        #aboutArea ul li.reproduction img {
          width: 100%; } }
    @media (max-width: 480px) {
      #aboutArea ul li.office p {
        padding: 10px 20px; }
      #aboutArea ul li.shop p {
        padding: 10px 20px; }
      #aboutArea ul li.reproduction p {
        padding: 10px 20px; } }
  #aboutArea .descBox {
    z-index: 3;
    position: absolute;
    display: block;
    top: 50%;
    height: 100%;
    transform: translateY(-50%);
    height: auto;
    box-sizing: border-box;
    right: 0;
    width: 55%; }
    @media (max-width: 820px) {
      #aboutArea .descBox {
        position: relative;
        top: auto;
        transform: none;
        left: auto;
        margin: auto;
        width: 90%; } }
    #aboutArea .descBox .textBox {
      margin: 40px 25% 0 auto; }
      @media (max-width: 820px) {
        #aboutArea .descBox .textBox {
          width: 100%;
          max-width: 100%; } }
      #aboutArea .descBox .textBox p {
        line-height: 1.625; }
        @media (max-width: 1024px) {
          #aboutArea .descBox .textBox p {
            font-size: 1.4rem; } }
        #aboutArea .descBox .textBox p + p {
          margin-top: 10px; }
      #aboutArea .descBox .textBox p.c-btn {
        margin-top: 80px; }
        #aboutArea .descBox .textBox p.c-btn button.learn-more .circle {
          background: #99731F; }
        @media (max-width: 1024px) {
          #aboutArea .descBox .textBox p.c-btn {
            margin-top: 25px; } }
  #aboutArea .bg {
    width: 54.58%;
    margin: 0 0 0 auto; }
    @media (max-width: 820px) {
      #aboutArea .bg {
        width: 100%;
        margin-top: 40px; } }
    @media (max-width: 480px) {
      #aboutArea .bg {
        margin-top: 10px; } }
    #aboutArea .bg picture {
      width: 100%;
      max-width: 100%;
      overflow: hidden;
      display: block;
      position: relative; }
      #aboutArea .bg picture::before {
        content: '';
        padding-top: 91.09%;
        width: 100%;
        display: block; }
        @media (max-width: 820px) {
          #aboutArea .bg picture::before {
            padding-top: 106.4%; } }
      #aboutArea .bg picture source, #aboutArea .bg picture img {
        width: 100%;
        height: 100%;
        object-fit: cover;
        object-position: center;
        position: absolute;
        top: 0;
        left: 0;
        z-index: 0; }

/*============================================================================
	worksArea
=============================================================================*/
#worksArea #cpt_list_wrap h2 {
  padding: 0 50px; }
  @media (max-width: 1200px) {
    #worksArea #cpt_list_wrap h2 {
      width: 100%;
      padding: 0 20px; } }

/*============================================================================
	serviceArea
=============================================================================*/
#serviceArea {
  padding: min(150px,15.6255vw) 0;
  background: url("../img/top/aboutBg.png") no-repeat;
  background-size: 100% 100%; }
  @media (max-width: 820px) {
    #serviceArea {
      padding: 80px 0;
      background: none;
      position: relative; }
      #serviceArea::before {
        content: "";
        display: block;
        height: 1px;
        width: 100%;
        background: #d5d5d5;
        position: absolute;
        top: 50px; }
      #serviceArea::after {
        content: "";
        display: block;
        height: 1px;
        width: 100%;
        background: #d5d5d5;
        position: absolute;
        bottom: 50px; } }
  #serviceArea h2 {
    margin-bottom: min(60px,6.2505vw); }
  #serviceArea p.lead {
    line-height: 1.75; }
    @media (max-width: 480px) {
      #serviceArea p.lead {
        font-size: 1.4rem; } }
  #serviceArea .serviceWrap {
    position: relative; }
    #serviceArea .serviceWrap ul.serviceList {
      justify-content: center;
      position: relative;
      z-index: 10;
      padding: 60px 0;
      max-width: 775px;
      margin: 0 auto; }
      #serviceArea .serviceWrap ul.serviceList li {
        max-width: 350px;
        width: 45.16%; }
        @media (max-width: 1024px) {
          #serviceArea .serviceWrap ul.serviceList li {
            font-size: 1.4rem; } }
        @media (max-width: 480px) {
          #serviceArea .serviceWrap ul.serviceList li {
            margin: 0 auto;
            width: 85%; } }
        #serviceArea .serviceWrap ul.serviceList li:nth-child(2n) {
          margin-left: 9.55%; }
          @media (max-width: 480px) {
            #serviceArea .serviceWrap ul.serviceList li:nth-child(2n) {
              margin-left: auto; } }
        #serviceArea .serviceWrap ul.serviceList li:nth-child(n + 3) {
          margin-top: 70px; }
          @media (max-width: 480px) {
            #serviceArea .serviceWrap ul.serviceList li:nth-child(n + 3) {
              margin-top: 45px; } }
        @media (max-width: 480px) {
          #serviceArea .serviceWrap ul.serviceList li + li {
            margin-top: 45px; } }
        #serviceArea .serviceWrap ul.serviceList li .photoBox figure {
          width: 100%;
          max-width: 100%;
          overflow: hidden;
          display: block;
          position: relative; }
          #serviceArea .serviceWrap ul.serviceList li .photoBox figure::before {
            content: '';
            padding-top: 100%;
            width: 100%;
            display: block; }
          #serviceArea .serviceWrap ul.serviceList li .photoBox figure source, #serviceArea .serviceWrap ul.serviceList li .photoBox figure img {
            width: 100%;
            height: 100%;
            object-fit: cover;
            object-position: center;
            position: absolute;
            top: 0;
            left: 0;
            z-index: 0; }
        #serviceArea .serviceWrap ul.serviceList li .textBox h3 {
          text-align: center;
          position: relative;
          padding: 20px 0 15px; }
          @media (max-width: 480px) {
            #serviceArea .serviceWrap ul.serviceList li .textBox h3 {
              padding: 15px 0 10px; } }
        #serviceArea .serviceWrap ul.serviceList li .textBox .detailList {
          max-width: 300px;
          border-top: 1px solid #006D9F;
          margin: 0 auto;
          padding-top: 20px;
          padding-left: 45px; }
          #serviceArea .serviceWrap ul.serviceList li .textBox .detailList p {
            position: relative;
            letter-spacing: 0.05em; }
            #serviceArea .serviceWrap ul.serviceList li .textBox .detailList p::before {
              content: '';
              position: absolute;
              display: block;
              background: url("../img/top/check.svg") no-repeat center center/contain;
              width: 19px;
              height: 19px;
              left: -27px;
              top: 50%;
              transform: translateY(-50%); }
    #serviceArea .serviceWrap .bg {
      position: absolute;
      background: -moz-linear-gradient(18.86% -76.79% -45deg, #9aff6a 0%, #006d9f 100%);
      background: -webkit-linear-gradient(-45deg, #9aff6a 0%, #006d9f 100%);
      background: -webkit-gradient(linear, 18.86% -76.79%, 81.14% 176.79%, color-stop(0, #9aff6a), color-stop(1, #006d9f));
      background: -o-linear-gradient(-45deg, #9aff6a 0%, #006d9f 100%);
      background: -ms-linear-gradient(-45deg, #9aff6a 0%, #006d9f 100%);
      -ms-filter: "progid:DXImageTransform.Microsoft.gradient(startColorstr='#9AFF6A', endColorstr='#006D9F' ,GradientType=0)";
      background: linear-gradient(135deg, #9aff6a 0%, #006d9f 100%);
      opacity: 0.1;
      filter: alpha(opacity=10) progid:DXImageTransform.Microsoft.Alpha(opacity=10) progid:DXImageTransform.Microsoft.gradient(startColorstr='#9AFF6A',endColorstr='#006D9F' , GradientType=1);
      width: 100vw;
      margin: 0 calc(50% - 50vw);
      bottom: 0;
      left: 0;
      height: 50%;
      z-index: 1; }

/*============================================================================
	flowArea
=============================================================================*/
#flowArea {
  padding: min(150px,15.6255vw) 0 min(180px,18.75vw);
  background: #eeeeee; }
  #flowArea .flowWrap {
    max-width: 1000px;
    margin: auto;
    width: 90%;
    height: auto;
    box-sizing: border-box; }
    #flowArea .flowWrap .flowBox {
      position: relative; }
      #flowArea .flowWrap .flowBox dl {
        margin-left: 10px;
        padding: 40px;
        align-items: center; }
        @media (max-width: 1024px) {
          #flowArea .flowWrap .flowBox dl {
            padding: 20px; } }
        #flowArea .flowWrap .flowBox dl + dl {
          border-top: 1px dashed #585757; }
        #flowArea .flowWrap .flowBox dl:last-of-type {
          padding: 40px 40px 60px; }
          @media (max-width: 1024px) {
            #flowArea .flowWrap .flowBox dl:last-of-type {
              padding: 20px 20px 40px; } }
        #flowArea .flowWrap .flowBox dl dt {
          font-weight: 700;
          font-size: 1.8rem;
          line-height: 1.4444444444;
          width: 270px; }
          @media (max-width: 1024px) {
            #flowArea .flowWrap .flowBox dl dt {
              width: 225px; } }
          @media (max-width: 480px) {
            #flowArea .flowWrap .flowBox dl dt {
              width: 100%;
              font-size: 1.6rem; } }
        #flowArea .flowWrap .flowBox dl dd {
          font-weight: 500;
          line-height: 1.1875;
          width: calc(100% - 270px); }
          @media (max-width: 1024px) {
            #flowArea .flowWrap .flowBox dl dd {
              width: calc(100% - 225px); } }
          @media (max-width: 480px) {
            #flowArea .flowWrap .flowBox dl dd {
              width: 100%;
              margin-top: 10px;
              font-size: 1.4rem; } }
          #flowArea .flowWrap .flowBox dl dd p {
            line-height: 1.2; }
      #flowArea .flowWrap .flowBox .border-line {
        position: absolute;
        left: 0;
        top: 0;
        width: 10px;
        height: 0;
        background: #1B2B58;
        z-index: 2; }
    #flowArea .flowWrap .projectBox {
      border: 1px solid #222222;
      background: #fff; }
      #flowArea .flowWrap .projectBox p.ttl {
        background: #222222;
        color: #fff;
        width: fit-content;
        padding: 0 20px; }
      #flowArea .flowWrap .projectBox .projectUnit {
        padding: 0 40px; }
        @media (max-width: 1024px) {
          #flowArea .flowWrap .projectBox .projectUnit {
            padding: 0 25px; } }
        #flowArea .flowWrap .projectBox .projectUnit dl {
          margin-left: 10px;
          padding: 40px 0;
          align-items: center;
          border-top: 1px dashed #585757; }
          @media (max-width: 1024px) {
            #flowArea .flowWrap .projectBox .projectUnit dl {
              padding: 20px 0; } }
          #flowArea .flowWrap .projectBox .projectUnit dl dt {
            width: 270px;
            font-weight: 700;
            line-height: 1.4444444444;
            font-size: 1.8rem; }
            @media (max-width: 1024px) {
              #flowArea .flowWrap .projectBox .projectUnit dl dt {
                width: 225px; } }
            @media (max-width: 480px) {
              #flowArea .flowWrap .projectBox .projectUnit dl dt {
                width: 100%;
                font-size: 1.6rem; } }
          #flowArea .flowWrap .projectBox .projectUnit dl dd {
            font-weight: 500;
            line-height: 1.1875;
            width: calc(100% - 270px); }
            @media (max-width: 1024px) {
              #flowArea .flowWrap .projectBox .projectUnit dl dd {
                width: calc(100% - 225px); } }
            @media (max-width: 480px) {
              #flowArea .flowWrap .projectBox .projectUnit dl dd {
                width: 100%;
                margin-top: 10px;
                font-size: 1.4rem; } }
            #flowArea .flowWrap .projectBox .projectUnit dl dd p {
              line-height: 1.2; }
        #flowArea .flowWrap .projectBox .projectUnit:first-of-type dl {
          border: none; }

/*============================================================================
	contactArea
=============================================================================*/
#contactArea {
  background: url("../img/top/contactBg.jpg") no-repeat center center/cover;
  padding: min(150px,15.6255vw) 0 min(180px,18.75vw); }
  #contactArea h2 {
    margin-bottom: min(95px,9.8955vw); }
    #contactArea h2 span.en {
      color: #fff;
      filter: drop-shadow(0px 0px 5px rgba(0, 0, 0, 0.6)); }
    #contactArea h2 span.jp {
      color: #fff;
      filter: drop-shadow(0px 0px 5px rgba(0, 0, 0, 0.6)); }
  #contactArea .contactWrap {
    max-width: 1000px;
    margin: 0 auto 0;
    width: 90%;
    height: auto;
    box-sizing: border-box;
    justify-content: center; }
    @media (max-width: 480px) {
      #contactArea .contactWrap {
        width: 95%; } }
    #contactArea .contactWrap .contactBox {
      max-width: 480px;
      width: 100%;
      min-height: 550px;
      background: #fff;
      filter: drop-shadow(0px 0px 5px rgba(0, 0, 0, 0.6));
      text-align: center; }
      @media (max-width: 480px) {
        #contactArea .contactWrap .contactBox {
          width: 100%;
          min-height: 380px; } }
      #contactArea .contactWrap .contactBox h3 {
        margin-top: min(80px,8.334vw); }
      #contactArea .contactWrap .contactBox .fig {
        padding: 70px 0;
        position: relative; }
        @media (max-width: 480px) {
          #contactArea .contactWrap .contactBox .fig {
            padding: 50px; } }
        #contactArea .contactWrap .contactBox .fig figure {
          position: absolute;
          top: 50%;
          left: 50%;
          transform: translate(-50%, -50%); }
      #contactArea .contactWrap .contactBox .textBox p.text {
        line-height: 1.75; }
        @media (max-width: 480px) {
          #contactArea .contactWrap .contactBox .textBox p.text {
            font-size: 1.4rem; } }
      #contactArea .contactWrap .contactBox .textBox p.c-btn {
        margin-top: min(40px,4.167vw); }
        @media (max-width: 1024px) {
          #contactArea .contactWrap .contactBox .textBox p.c-btn button.learn-more {
            width: 23rem; } }
        #contactArea .contactWrap .contactBox .textBox p.c-btn button.learn-more span.button-text {
          margin: 0 0 0 2rem; }
          @media (max-width: 1024px) {
            #contactArea .contactWrap .contactBox .textBox p.c-btn button.learn-more span.button-text {
              margin: 0 0 0 4rem; } }
      #contactArea .contactWrap .contactBox .textBox .unit p.number {
        font-size: 3.6rem;
        font-weight: 700; }
        @media (max-width: 1024px) {
          #contactArea .contactWrap .contactBox .textBox .unit p.number {
            font-size: 2.4rem; } }
      #contactArea .contactWrap .contactBox .textBox .unit p.time {
        font-size: 1.8rem; }
        @media (max-width: 480px) {
          #contactArea .contactWrap .contactBox .textBox .unit p.time {
            font-size: 1.6rem; } }
      #contactArea .contactWrap .contactBox .textBox .unit p.notes {
        font-size: 1.4rem;
        line-height: 1.4; }
        @media (max-width: 480px) {
          #contactArea .contactWrap .contactBox .textBox .unit p.notes {
            font-size: 1.2rem; } }
      @media (max-width: 480px) {
        #contactArea .contactWrap .contactBox:nth-of-type(1) {
          width: 100%;
          min-height: 300px; } }
      #contactArea .contactWrap .contactBox + .contactBox {
        margin: 0 0 0 min(40px,4.167vw); }
        @media (max-width: 480px) {
          #contactArea .contactWrap .contactBox + .contactBox {
            margin: min(60px,6.2505vw) 0 0 0; } }
