@charset "UTF-8";
/*===========================================================
このファイルはsassで編集されています。
cssを編集しないでください。
=============================================================*/
/*=====================================================================
リセットcssの設定
=======================================================================*/
html {
  color: #000;
  background: #FFF; }

body, div, dl, dt, dd, ul, ol, li, h1, h2, h3, h4, h5, h6, pre, code, form, fieldset, legend, input, textarea, p, blockquote, th, td {
  margin: 0;
  padding: 0; }

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

fieldset, img {
  border: 0; }

ol, ul {
  list-style: none; }

caption, th {
  text-align: left; }

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

q:before, q:after {
  content: ''; }

abbr, acronym {
  border: 0;
  font-variant: normal; }

sup {
  vertical-align: text-top; }

sub {
  vertical-align: text-bottom; }

input, textarea, select {
  font-family: inherit;
  font-size: inherit;
  font-weight: inherit;
  *font-size: 100%; }

legend {
  color: #000; }

#yui3-css-stamp.cssreset {
  display: none; }

/*===========================================================
全体の設定
=============================================================*/
.zen-kaku-gothic-new-regular {
  font-family: "Zen Kaku Gothic New", sans-serif;
  font-weight: 400;
  font-style: normal; }

.zen-kaku-gothic-new-medium {
  font-family: "Zen Kaku Gothic New", sans-serif;
  font-weight: 500;
  font-style: normal; }

.zen-kaku-gothic-new-bold {
  font-family: "Zen Kaku Gothic New", sans-serif;
  font-weight: 700;
  font-style: normal; }

.noto-sans-jp {
  font-family: "Noto Sans JP", sans-serif;
  font-optical-sizing: auto;
  font-weight: 700;
  font-style: normal; }

.en {
  font-family: "Lato", sans-serif;
  font-weight: 400;
  font-style: italic;
  letter-spacing: 0.2rem;
  margin-top: 5px; }

html {
  color: #4c371e;
  background: #f9f9f2; }
  @media screen and (max-width: 768px) {
    html {
      min-width: 100%; } }

@media screen and (max-width: 992px) {
  html, body {
    font-size: 60%; } }
@media screen and (max-width: 768px) {
  html, body {
    width: 100%;
    font-size: 57%; } }

* {
  box-sizing: border-box;
  -moz-box-sizing: border-box;
  -webkit-box-sizing: border-box;
  -o-box-sizing: border-box;
  -ms-box-sizing: border-box;
  line-break: auto;
  font-size: 1.5rem;
  color: #4c371e;
  font-family: "Zen Kaku Gothic New", sans-serif;
  font-weight: 500;
  font-style: normal;
  letter-spacing: 0.25rem; }

h1, h2, h3, h4, h5, h6, p, li, ol, dl, dt, dd, a, td, th {
  color: #4c371e;
  line-height: 1.2;
  font-weight: 500; }

p, ul, li, dl, dt, dd, ol, a {
  text-align: justify;
  line-height: 2; }
  @media screen and (max-width: 576px) {
    p, ul, li, dl, dt, dd, ol, a {
      font-size: 1.4rem; } }

a {
  color: inherit;
  text-decoration: none;
  display: block; }
  a:active {
    text-decoration: none; }
  a:hover {
    text-decoration: none; }

img {
  max-width: 100%;
  height: auto;
  vertical-align: bottom; }

.is-menuOpen body {
  position: fixed;
  top: 0;
  left: 0;
  width: 100%; }

.relative {
  position: relative; }

.xl-block {
  display: none !important; }
  @media screen and (max-width: 1200px) {
    .xl-block {
      display: block !important; } }

@media screen and (max-width: 1200px) {
  .xl-none {
    display: none !important; } }

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

@media screen and (max-width: 992px) {
  .lg-none {
    display: none !important; } }

.md-block {
  display: none !important; }
  @media screen and (max-width: 768px) {
    .md-block {
      display: block !important; } }

@media screen and (max-width: 768px) {
  .md-none {
    display: none !important; } }

.sm-block {
  display: none !important; }
  @media screen and (max-width: 576px) {
    .sm-block {
      display: block !important; } }

@media screen and (max-width: 576px) {
  .sm-none {
    display: none !important; } }

.container {
  margin: 0 auto;
  width: 1200px;
  padding: 0 35px;
  max-width: 100%; }
  .container.m940 {
    max-width: 1010px; }
  @media screen and (max-width: 992px) {
    .container {
      width: 100%; } }
  @media screen and (max-width: 768px) {
    .container {
      padding-left: 6%;
      padding-right: 6%;
      word-wrap: break-word;
      overflow-wrap: break-word; } }
  @media screen and (max-width: 576px) {
    .container {
      overflow-y: hidden; } }

* {
  box-sizing: border-box;
  -moz-box-sizing: border-box;
  -webkit-box-sizing: border-box;
  -o-box-sizing: border-box;
  -ms-box-sizing: border-box;
  line-break: auto; }

/* iOSでのデフォルトスタイルをリセット */
input[type="submit"],
input[type="button"] {
  border-radius: 0;
  -webkit-box-sizing: content-box;
  -webkit-appearance: button;
  appearance: button;
  border: none;
  box-sizing: border-box; }
  input[type="submit"]::-webkit-search-decoration,
  input[type="button"]::-webkit-search-decoration {
    display: none; }
  input[type="submit"]::focus,
  input[type="button"]::focus {
    outline-offset: -2px; }

/*=====================================================================
共通パーツ
=======================================================================*/
.pt__main {
  padding-top: 210px;
  position: relative; }
  @media screen and (max-width: 768px) {
    .pt__main {
      padding-top: 150px; }
      .pt__main.about__pt {
        padding-top: 30px; } }
  .pt__main.pt__main__philosophy {
    padding-bottom: 0; }

/*=====================================================================
headerの設定
=======================================================================*/
.header__pc {
  position: fixed;
  z-index: 999;
  width: 100%;
  top: 0;
  left: 0; }
  .header__pc .wrap {
    padding: 60px 45px;
    padding: 40px 45px;
    transition: .4s; }
    @media screen and (max-width: 992px) {
      .header__pc .wrap {
        padding: 40px 20px; } }
  @media screen and (max-width: 768px) {
    .header__pc {
      display: none !important; } }
  .header__pc .logo {
    width: 250px;
    padding-top: 4px; }
    .header__pc .logo .cls-1 {
      fill: #4c371e;
      stroke-width: 0px;
      transition: .4s; }
    .header__pc .logo:hover .cls-1 {
      fill: #3f7545; }
    @media screen and (max-width: 1250px) {
      .header__pc .logo {
        width: 190px; } }
    @media screen and (max-width: 992px) {
      .header__pc .logo {
        width: 120px;
        padding-top: 0; } }
    @media screen and (max-width: 768px) {
      .header__pc .logo {
        width: 120px; } }
    .header__pc .logo.logo__front {
      transition: 1s;
      filter: none; }
      .header__pc .logo.logo__front.scroll {
        opacity: 1;
        transition: 1s; }
  .header__pc a {
    transition: .4s; }
  .header__pc .nav__menu {
    width: calc(100% - 250px);
    align-items: flex-start;
    align-items: center; }
    @media screen and (max-width: 992px) {
      .header__pc .nav__menu {
        width: calc(100% - 120px); } }
    @media screen and (max-width: 768px) {
      .header__pc .nav__menu {
        width: calc(100% - 120px); } }
    .header__pc .nav__menu.logo__front a {
      color: #4c371e !important; }
    .header__pc .nav__menu.logo__front .icon img {
      filter: unset; }
    .header__pc .nav__menu .icon {
      display: inline-block;
      margin-left: 45px;
      display: flex;
      align-items: center; }
      .header__pc .nav__menu .icon img, .header__pc .nav__menu .icon svg {
        height: 20px;
        width: auto; }
        @media screen and (max-width: 1250px) {
          .header__pc .nav__menu .icon img, .header__pc .nav__menu .icon svg {
            height: 20px; } }
      .header__pc .nav__menu .icon:hover .cls-1 {
        fill: #3f7545; }
      .header__pc .nav__menu .icon .cls-1 {
        transition: .4s;
        fill: #231815; }
    .header__pc .nav__menu .ul__nav {
      display: -webkit-flex;
      display: -moz-flex;
      display: -ms-flex;
      display: -o-flex;
      display: flex; }
      .header__pc .nav__menu .ul__nav li a {
        margin-left: 45px;
        text-align: center;
        position: relative;
        z-index: 900;
        color: #4c371e;
        transition: .4s; }
        .header__pc .nav__menu .ul__nav li a:hover {
          color: #3f7545; }
  @media screen and (max-width: 992px) {
    .header__pc .icon {
      position: relative;
      top: 2px; } }
  .header__pc.scroll {
    background: #f9f9f2; }
    .header__pc.scroll .nav__menu {
      align-items: center; }
    .header__pc.scroll .ul__nav a {
      color: #4c371e; }
    .header__pc.scroll .wrap {
      padding: 25px 45px; }
    .header__pc.scroll * {
      filter: unset;
      transition: .4s; }
    .header__pc.scroll.works__page {
      background: #e4d6cd; }
    .header__pc.scroll.about__page {
      background: #e8e9e5; }

.header__sp {
  display: none; }
  @media screen and (max-width: 768px) {
    .header__sp {
      display: block; } }
  .header__sp .logo {
    width: 45vw;
    position: absolute;
    top: 25px;
    left: 5%;
    z-index: 998; }
    .header__sp .logo img {
      width: 100%; }
  .header__sp .sp__logo {
    width: 150px;
    width: 45vw;
    position: absolute;
    top: 25px;
    left: 5%;
    z-index: 998;
    filter: brightness(10); }
    .header__sp .sp__logo img {
      width: 100%; }
  .header__sp .text p {
    color: #fff; }
  .header__sp .instagram {
    width: 22px;
    height: 22px;
    position: absolute;
    top: 22px;
    right: 70px;
    z-index: 998; }

.square__menu {
  /*========= ナビゲーションのためのCSS ===============*/
  /*========= ボタンのためのCSS ===============*/
  /*========= ボタンのためのCSS end===============*/ }
  .square__menu #g-nav {
    /*position:fixed;にし、z-indexの数値を小さくして最背面へ*/
    position: fixed;
    z-index: -1;
    opacity: 0;
    /*はじめは透過0*/
    /*ナビの位置と形状*/
    top: 0;
    width: 100%;
    height: 100vh;
    /*ナビの高さ*/
    background: #4c371e;
    /*動き*/
    transition: all .3s;
    overflow-y: scroll;
    /*アクティブクラスがついたら透過なしにして最前面へ*/ }
    .square__menu #g-nav .sp__logo {
      width: 160px; }
    .square__menu #g-nav #g-nav-list {
      /*ナビゲーションの縦スクロール*/
      right: -100%;
      /*ナビの数が増えた場合縦スクロール*/
      position: fixed;
      z-index: 999;
      width: 100%;
      height: 100vh;
      /*表示する高さ*/
      overflow: scroll;
      -webkit-overflow-scrolling: touch;
      transition: .5s; }
    .square__menu #g-nav #cover {
      position: fixed;
      top: 0;
      left: 0;
      width: 100%;
      height: 100vh;
      z-index: -100;
      display: none; }
    .square__menu #g-nav.panelactive {
      opacity: 1;
      z-index: 999; }
      .square__menu #g-nav.panelactive #g-nav-list {
        right: 0; }
        .square__menu #g-nav.panelactive #g-nav-list li {
          opacity: 1;
          transition: .8s;
          top: 0; }
        .square__menu #g-nav.panelactive #g-nav-list .sns {
          opacity: 1;
          transition: .8s; }
      .square__menu #g-nav.panelactive #cover {
        display: block;
        z-index: 900; }
  .square__menu .openbtn {
    position: fixed;
    z-index: 9999;
    /*ボタンを最前面に*/
    cursor: pointer;
    top: 20px;
    right: 20px;
    width: 100px;
    height: 100px;
    /*×に変化*/ }
    @media screen and (max-width: 768px) {
      .square__menu .openbtn {
        width: 70px;
        height: 70px;
        top: 0px;
        right: 2%; } }
    .square__menu .openbtn span {
      display: inline-block;
      transition: all .4s;
      position: absolute;
      left: 25px;
      height: 1px;
      background-color: #4c371e;
      width: 50px; }
      @media screen and (max-width: 768px) {
        .square__menu .openbtn span {
          width: 30px; } }
  .square__menu .openbtn span:nth-of-type(1) {
    top: 35px; }
    @media screen and (max-width: 768px) {
      .square__menu .openbtn span:nth-of-type(1) {
        top: 26px; } }
  .square__menu .openbtn span:nth-of-type(2) {
    top: 50px; }
    @media screen and (max-width: 768px) {
      .square__menu .openbtn span:nth-of-type(2) {
        top: 35px; } }
  .square__menu .openbtn span:nth-of-type(3) {
    top: 65px; }
    @media screen and (max-width: 768px) {
      .square__menu .openbtn span:nth-of-type(3) {
        top: 44px; } }
  .square__menu .openbtn.active span:nth-of-type(1) {
    transform: translateY(15px) rotate(-45deg);
    width: 50px; }
    @media screen and (max-width: 768px) {
      .square__menu .openbtn.active span:nth-of-type(1) {
        top: 28px;
        left: 25px;
        transform: translateY(6px) rotate(-45deg);
        width: 30px;
        filter: brightness(10) !important; } }
  .square__menu .openbtn.active span:nth-of-type(2) {
    opacity: 0; }
  .square__menu .openbtn.active span:nth-of-type(3) {
    transform: translateY(-15px) rotate(45deg);
    width: 50px; }
    @media screen and (max-width: 768px) {
      .square__menu .openbtn.active span:nth-of-type(3) {
        top: 40px;
        left: 25px;
        transform: translateY(-6px) rotate(45deg);
        width: 30px;
        filter: brightness(10) !important; } }
  .square__menu #g-nav-list {
    padding: 145px 12% 0;
    background: #4c402a;
    height: auto;
    transition: 1s; }
    .square__menu #g-nav-list ul {
      width: 100%;
      position: static;
      top: unset;
      left: unset;
      transform: unset; }
      .square__menu #g-nav-list ul li {
        margin-bottom: 5vw;
        opacity: 0;
        position: relative;
        top: -5px; }
        .square__menu #g-nav-list ul li a {
          font-size: 5vw;
          text-align: left;
          color: #fff;
          transition: .4s; }
          .square__menu #g-nav-list ul li a:hover {
            opacity: .5; }
    .square__menu #g-nav-list .bottom {
      width: 100%; }
      .square__menu #g-nav-list .bottom img {
        filter: brightness(30); }
      .square__menu #g-nav-list .bottom .top {
        margin-top: 15%; }
        .square__menu #g-nav-list .bottom .top a {
          display: inline-block;
          width: 9%;
          margin-right: 5%; }
      .square__menu #g-nav-list .bottom .d-flex .left, .square__menu #g-nav-list .bottom .d-flex .right {
        width: 48%; }
        .square__menu #g-nav-list .bottom .d-flex .left a, .square__menu #g-nav-list .bottom .d-flex .right a {
          background: #9f8575;
          font-family: "Noto Sans JP", sans-serif;
          font-optical-sizing: auto;
          font-weight: 700;
          font-style: normal;
          font-size: 1rem;
          color: #fff;
          transition: .4s;
          padding: 15px 0px;
          padding-right: 10px;
          text-align: center;
          line-height: 1;
          border: 1px solid #9f8575;
          position: relative;
          width: 160px;
          margin-top: 15%; }
          .square__menu #g-nav-list .bottom .d-flex .left a img, .square__menu #g-nav-list .bottom .d-flex .right a img {
            width: 9px;
            height: auto;
            filter: brightness(30);
            position: absolute;
            top: 50%;
            right: 12px;
            transform: translateY(-50%); }
          .square__menu #g-nav-list .bottom .d-flex .left a:hover, .square__menu #g-nav-list .bottom .d-flex .right a:hover {
            background: #3f7545;
            opacity: 1;
            background: #fff;
            color: #9f8575; }
            .square__menu #g-nav-list .bottom .d-flex .left a:hover img, .square__menu #g-nav-list .bottom .d-flex .right a:hover img {
              filter: unset; }

/*=====================================================================
header end
=======================================================================*/
/*=====================================================================
footer
=======================================================================*/
footer {
  width: 100%;
  background: #4c402a;
  padding: 80px 0 100px; }
  footer * {
    color: #fff;
    line-height: 2;
    letter-spacing: .3rem; }
    @media screen and (max-width: 768px) {
      footer * {
        font-size: 1.5rem; } }
  @media screen and (max-width: 768px) {
    footer .left {
      width: 100%; } }
  @media screen and (max-width: 768px) {
    footer .right {
      width: 100%; } }
  @media screen and (max-width: 768px) {
    footer .column-reverse {
      flex-flow: column-reverse; } }
  @media screen and (max-width: 768px) {
    footer .d-flex {
      justify-content: flex-start; }
      footer .d-flex li {
        margin-right: 40px;
        text-align: left; }
        footer .d-flex li:first-child {
          width: 100%; } }
  footer .left a {
    width: auto;
    display: inline-block; }
    footer .left a.logo img {
      width: 230px;
      height: auto;
      margin-bottom: 20px;
      filter: brightness(10);
      transition: .2s; }
    footer .left a.insta img {
      width: 16px;
      height: auto;
      filter: brightness(10);
      transition: .4s; }
    footer .left a:hover {
      color: #3f7545;
      transition: .2s; }
      footer .left a:hover img {
        transition: .2s;
        filter: unset; }
  footer .right {
    text-align: right; }
    @media screen and (max-width: 768px) {
      footer .right {
        text-align: center;
        margin-top: 25px; } }
    footer .right .btn {
      padding: 25px 30px;
      background: #3f7545;
      color: #fff;
      transition: .4s;
      position: relative;
      width: 310px;
      line-height: 1;
      font-size: 2rem;
      margin-bottom: 50px; }
      @media screen and (max-width: 768px) {
        footer .right .btn {
          width: 100%; } }
      footer .right .btn:after {
        content: url("../img/icon-right-2.svg");
        position: absolute;
        top: 50%;
        right: 20px;
        transform: translateY(-50%);
        width: 55px;
        height: auto;
        filter: brightness(10);
        transition: .2s; }
      footer .right .btn:hover {
        background: #fff;
        color: #3f7545; }
        footer .right .btn:hover:after {
          filter: unset; }
    footer .right .pagetop {
      transition: .4s;
      background: #fff;
      width: 215px;
      line-height: 1;
      font-size: 1.3rem;
      display: inline-block; }
      footer .right .pagetop .d-flex {
        align-items: center; }
      footer .right .pagetop span {
        color: #4c371e;
        line-height: 1; }
      footer .right .pagetop .s1 {
        text-align: center;
        width: calc(100% - 48px);
        line-height: 48px;
        position: relative;
        z-index: 2; }
        footer .right .pagetop .s1::after {
          background: #3f7545;
          position: absolute;
          top: 0;
          left: 0;
          content: '';
          width: 100%;
          height: 100%;
          transform: scale(0, 1);
          transform-origin: left top;
          transition: 0.2s cubic-bezier(0.45, 0, 0.55, 1);
          z-index: -1; }
      footer .right .pagetop .wrap {
        position: relative;
        background: #3f7545;
        width: 48px;
        height: 48px;
        vertical-align: bottom;
        display: inline-block; }
      footer .right .pagetop .wrap img {
        position: absolute;
        top: 50%;
        right: 50%;
        transform: translate(50%, -50%);
        width: 12px;
        height: auto;
        filter: brightness(10);
        transition: .2s; }
      footer .right .pagetop:hover span {
        color: #fff; }
      footer .right .pagetop:hover .s1::after {
        transform: scale(1, 1); }

/*=====================================================================
footer end
=======================================================================*/
main {
  padding-bottom: 140px; }

/*=====================================================================
TOP
=======================================================================*/
main#front .mv {
  padding-top: 130px;
  position: relative;
  height: 65vw; }
  @media screen and (max-width: 768px) {
    main#front .mv {
      height: 200vw; } }
  main#front .mv .js-fadeUp {
    transition: 2s; }
  main#front .mv .rl {
    writing-mode: vertical-rl;
    -ms-writing-mode: tb-rl;
    position: absolute;
    right: 45vw;
    top: 10vw; }
    @media screen and (max-width: 768px) {
      main#front .mv .rl {
        right: 65vw;
        top: 40vw; } }
    main#front .mv .rl h2, main#front .mv .rl span, main#front .mv .rl b {
      font-size: 2.5vw;
      letter-spacing: 0.8rem;
      line-height: 1.8; }
      @media screen and (max-width: 768px) {
        main#front .mv .rl h2, main#front .mv .rl span, main#front .mv .rl b {
          font-size: 4.5vw; } }
    main#front .mv .rl span {
      display: block; }
    main#front .mv .rl b {
      position: relative; }
      main#front .mv .rl b:before {
        content: "";
        width: 4px;
        height: 100%;
        position: absolute;
        top: 0;
        right: -5px;
        background-image: url("../img/line-1.png");
        background-size: cover;
        clip-path: inset(0 0 100% 0);
        transition: clip-path 2s;
        transition-delay: 2.5s;
        will-change: clip-path; }
      main#front .mv .rl b.b2:before {
        background-image: url("../img/line-2.png");
        transition-delay: 3.5s; }
      main#front .mv .rl b.is-inview:before {
        clip-path: inset(0 0 0 0); }
    main#front .mv .rl .js-fadeUp {
      transform: translateY(0);
      transition: 3s; }
  main#front .mv .mv__slider {
    width: 40vw;
    position: absolute;
    right: 0;
    top: 8vw; }
    @media screen and (max-width: 768px) {
      main#front .mv .mv__slider {
        width: 55vw;
        top: 26vw; } }
    main#front .mv .mv__slider .swiper-slide {
      position: relative; }
      main#front .mv .mv__slider .swiper-slide:before {
        content: "";
        padding-top: 107%;
        display: block; }
        @media screen and (max-width: 768px) {
          main#front .mv .mv__slider .swiper-slide:before {
            padding-top: 160%; } }
      main#front .mv .mv__slider .swiper-slide img {
        width: 100%;
        height: 100%;
        position: absolute;
        top: 0;
        left: 0;
        object-fit: cover;
        height: 100%; }
  main#front .mv .mv__slider__2 {
    width: 15vw;
    position: absolute;
    left: 5vw;
    top: 13vw; }
    @media screen and (max-width: 768px) {
      main#front .mv .mv__slider__2 {
        width: 32vw;
        left: 0vw;
        top: 111vw; } }
    main#front .mv .mv__slider__2 .swiper-slide {
      position: relative; }
      main#front .mv .mv__slider__2 .swiper-slide:before {
        content: "";
        padding-top: 120%;
        display: block; }
      main#front .mv .mv__slider__2 .swiper-slide img {
        width: 100%;
        height: 100%;
        position: absolute;
        top: 0;
        left: 0;
        object-fit: cover;
        height: 100%; }
  main#front .mv .mv__slider__3 {
    width: 25vw;
    position: absolute;
    left: 23vw;
    top: 40vw; }
    @media screen and (max-width: 768px) {
      main#front .mv .mv__slider__3 {
        width: 45vw;
        left: 43vw;
        top: 140vw; } }
    main#front .mv .mv__slider__3 .swiper-slide {
      position: relative; }
      main#front .mv .mv__slider__3 .swiper-slide:before {
        content: "";
        padding-top: 66%;
        display: block; }
      main#front .mv .mv__slider__3 .swiper-slide img {
        width: 100%;
        height: 100%;
        position: absolute;
        top: 0;
        left: 0;
        object-fit: cover;
        height: 100%; }
main#front .ill {
  position: absolute;
  width: 20vw;
  top: 24vw;
  left: 19vw;
  z-index: 100; }
  @media screen and (max-width: 768px) {
    main#front .ill {
      width: 40vw;
      top: 104vw;
      left: 52vw; } }
main#front .about {
  margin-bottom: 200px; }
  main#front .about #about {
    margin-bottom: 80px; }
main#front .works {
  background: #decec3;
  padding: 65px 0 85px;
  margin-bottom: 160px; }
  @media screen and (max-width: 768px) {
    main#front .works {
      padding: 65px 0; }
      main#front .works .works__wrap {
        padding: 0; } }
  main#front .works li {
    width: 46%;
    margin-right: 0; }
    @media screen and (max-width: 768px) {
      main#front .works li {
        width: 100%; } }
    main#front .works li h2 {
      font-size: 3rem; }
      @media screen and (max-width: 768px) {
        main#front .works li h2 {
          font-size: 1.7rem; } }
    main#front .works li .date {
      display: flex;
      align-items: center;
      position: relative;
      top: 4px; }
      @media screen and (max-width: 768px) {
        main#front .works li .date {
          top: -1px; } }
    main#front .works li .title {
      margin-bottom: 25px; }
      @media screen and (max-width: 768px) {
        main#front .works li .title {
          margin-bottom: 15px; } }
main#front .contact {
  padding: 130px 0 90px; }
  main#front .contact .left, main#front .contact .right {
    width: 48%;
    background: #fff;
    text-align: center;
    padding: 50px 20px; }
    @media screen and (max-width: 768px) {
      main#front .contact .left, main#front .contact .right {
        width: 100%;
        margin-bottom: 50px; } }
  main#front .contact h3 {
    font-size: 2rem;
    margin-bottom: 15px;
    margin-top: 15px; }
  main#front .contact p {
    margin-bottom: 20px;
    text-align: center; }
  main#front .contact .tel {
    font-size: 2.4rem;
    text-align: center;
    transition: .4s;
    display: inline-block; }
    main#front .contact .tel:hover {
      color: #3f7545; }
  main#front .contact .img1 {
    text-align: center;
    height: 120px;
    position: relative; }
    main#front .contact .img1 img {
      width: 50%;
      position: absolute;
      bottom: 0;
      left: 50%;
      transform: translateX(-50%); }
  main#front .contact .img1-2, main#front .contact .img1-3, main#front .contact .img1-4 {
    /* 初期：左下の一点からほぼ見えない状態（斜め境界） */
    clip-path: polygon(0% 100%, 0% 100%, 0% 100%, 0% 100%);
    transition: clip-path 2s ease-out;
    will-change: clip-path;
    /* 左下→右上へ斜めに開いていく */
    /* 左下→右上へ斜めに開いていくend */ }
    main#front .contact .img1-2.is-inview, main#front .contact .img1-3.is-inview, main#front .contact .img1-4.is-inview {
      clip-path: polygon(0% 0%, 100% 0%, 100% 100%, 0% 100%); }
  main#front .contact .img2 {
    text-align: center;
    height: 120px;
    position: relative; }
    main#front .contact .img2 img {
      width: 25%;
      position: absolute;
      bottom: 0;
      left: 50%;
      transform: translateX(-50%); }
  main#front .contact .box {
    text-align: center; }
    main#front .contact .box a {
      background: #3f7545;
      padding: 15px 25px;
      display: inline-block;
      transition: .2s; }
      main#front .contact .box a img {
        filter: brightness(10);
        width: 55px; }
      main#front .contact .box a:hover {
        padding-left: 40px; }

.btn-1 {
  text-align: right; }
  .btn-1 a {
    background: #fff;
    transition: .4s;
    width: 215px;
    line-height: 1;
    font-size: 1.3rem;
    display: inline-block;
    border-bottom: 1px solid #4c371e;
    position: relative;
    right: -50px; }
    @media screen and (max-width: 1250px) {
      .btn-1 a {
        right: 0px; } }
    .btn-1 a .d-flex {
      align-items: center; }
    .btn-1 a span {
      color: #4c371e;
      line-height: 48px; }
    .btn-1 a .s1 {
      text-align: center;
      width: calc(100% - 48px);
      position: relative;
      z-index: 1; }
      .btn-1 a .s1::after {
        background: #3f7545;
        position: absolute;
        top: 0;
        left: 0;
        content: '';
        width: 100%;
        height: 100%;
        transform: scale(0, 1);
        transform-origin: left top;
        transition: 0.2s cubic-bezier(0.45, 0, 0.55, 1);
        z-index: -1; }
    .btn-1 a .wrap {
      position: relative;
      background: #3f7545;
      width: 48px;
      height: 48px;
      vertical-align: bottom;
      display: inline-block; }
    .btn-1 a .wrap img {
      position: absolute;
      top: 50%;
      right: 50%;
      transform: translate(50%, -50%);
      width: 28px;
      height: auto;
      filter: brightness(10);
      transition: .2s; }
    .btn-1 a:hover span {
      color: #fff; }
    .btn-1 a:hover .s1::after {
      transform: scale(1, 1); }

/*=====================================================================
TOP end
=======================================================================*/
/*=====================================================================
固定ページの共通設定
=======================================================================*/
.cat_list {
  position: absolute;
  top: -80px;
  left: 250px; }
  @media screen and (max-width: 768px) {
    .cat_list {
      position: unset;
      margin-bottom: 40px; } }
  .cat_list ul li {
    flex-wrap: wrap;
    font-size: 1.4rem; }
    .cat_list ul li a {
      margin: 0 10px 15px;
      position: relative;
      transition: .4s; }
      .cat_list ul li a:hover {
        opacity: .5; }

.tag a {
  color: #fff;
  padding: 3px 5px;
  line-height: 1;
  display: inline-block; }
.tag a.all {
  background: #3f7545; }

.list__loop ul {
  border-top: 0.5px solid #4c371e; }
.list__loop li {
  width: 100%;
  border-bottom: 0.5px solid #4c371e;
  padding: 20px 0; }
  @media screen and (max-width: 768px) {
    .list__loop li {
      padding: 15px 0; } }
  .list__loop li .date {
    width: 120px;
    text-align: center;
    border-right: 0.5px solid #4c371e; }
    @media screen and (max-width: 768px) {
      .list__loop li .date {
        width: 100%;
        text-align: left;
        border-right: none;
        margin-bottom: 5px;
        padding-left: 15px; } }
  .list__loop li .title {
    text-align: left;
    padding-left: 25px;
    padding-right: 80px;
    width: calc(100% - 120px); }
    @media screen and (max-width: 768px) {
      .list__loop li .title {
        width: 100%;
        padding-left: 15px; } }
  .list__loop li a {
    position: relative; }
    .list__loop li a svg {
      position: absolute;
      width: 30px;
      height: auto;
      top: 50%;
      right: 20px;
      transform: translateY(-50%);
      transition: .4s; }
    .list__loop li a .cls-1 {
      fill: none;
      stroke: #4c371e;
      stroke-miterlimit: 10;
      transition: .4s; }
    .list__loop li a:hover p, .list__loop li a:hover .date {
      transition: .4s;
      color: #3f7545; }
    .list__loop li a:hover svg {
      right: 15px;
      stroke: #4c371e; }
    .list__loop li a:hover .cls-1 {
      stroke: #3f7545; }

@media screen and (max-width: 768px) {
  .works__icon {
    margin-top: 15px; } }
.works__icon img {
  width: 20px;
  height: 20px;
  margin-right: 7px; }
.works__icon span {
  display: flex;
  align-items: center; }
.works__icon * {
  letter-spacing: 0; }
.works__icon ul {
  text-align: left;
  margin-bottom: 5px; }
.works__icon li {
  width: auto !important;
  margin-bottom: 5px !important;
  display: inline-block;
  margin-right: 10px; }
  @media screen and (max-width: 768px) {
    .works__icon li {
      width: 100% !important; } }

.works {
  background: #e4d6cd; }

/*=====================================================================
固定ページの共通設定 end
=======================================================================*/
/*=====================================================================
固定ページの個別設定
=======================================================================*/
.page {
  padding-top: 230px; }
  @media screen and (max-width: 768px) {
    .page {
      padding-top: 150px; } }

.head {
  padding-bottom: 40px; }
  .head h1, .head h2 {
    font-size: 2rem;
    position: relative;
    padding-bottom: 20px; }
    .head h1 span, .head h2 span {
      font-size: 2rem; }
    @media screen and (max-width: 768px) {
      .head h1, .head h2 {
        font-size: 1.7rem; } }
    .head h1::after, .head h2::after {
      content: "";
      background: #4c371e;
      position: absolute;
      bottom: 0px;
      left: 0;
      width: 0px;
      height: 1px;
      transition: 2s; }
    .head h1.js-text-inview::after, .head h2.js-text-inview::after {
      width: 50px; }

.about.page {
  background: #e8e9e5; }

#about h2 {
  font-size: 4.2rem;
  margin-bottom: 60px;
  letter-spacing: .4rem; }
  @media screen and (max-width: 768px) {
    #about h2 {
      font-size: 2.4rem;
      margin-bottom: 40px; } }
#about h3 {
  font-size: 2rem;
  margin-bottom: 55px; }
#about .image {
  margin-top: 215px;
  margin-bottom: 105px;
  width: 100%;
  filter: blur(20px);
  transition: 1s;
  opacity: 0; }
  #about .image.is-inview {
    filter: blur(0px);
    opacity: 1; }
  @media screen and (max-width: 768px) {
    #about .image {
      margin-top: 90px; } }
#about .wrap {
  background: #fff;
  padding: 40px 40px;
  margin-bottom: 40px; }
  @media screen and (max-width: 768px) {
    #about .wrap {
      padding: 10% 6%; } }
  #about .wrap h4 {
    font-size: 3rem;
    margin-bottom: 25px;
    text-indent: -4rem;
    margin-left: 4rem;
    line-height: 1.5; }
    @media screen and (max-width: 768px) {
      #about .wrap h4 {
        font-size: 2rem;
        text-indent: -3.5rem;
        margin-left: 3.5rem;
        line-height: 1.6; } }
  #about .wrap li {
    width: 31%; }
    #about .wrap li h5 {
      margin: 35px 0 20px;
      font-size: 1.7rem;
      position: relative;
      padding-bottom: 15px;
      line-height: 1.7;
      height: 73px; }
      @media screen and (max-width: 768px) {
        #about .wrap li h5 {
          height: auto; } }
      #about .wrap li h5::after {
        content: "";
        background: #4c371e;
        position: absolute;
        bottom: 0px;
        left: 0;
        width: 50px;
        height: 1px; }
    #about .wrap li img {
      margin-bottom: 25px; }
    @media screen and (max-width: 768px) {
      #about .wrap li {
        width: 100%; } }
  #about .wrap .left {
    width: calc(100% - 357px);
    padding-right: 40px; }
    @media screen and (max-width: 1040px) {
      #about .wrap .left {
        width: 65%; } }
    @media screen and (max-width: 768px) {
      #about .wrap .left {
        width: 100%;
        margin-bottom: 40px;
        padding-right: 0; } }
  #about .wrap .right {
    width: 357px; }
    @media screen and (max-width: 1040px) {
      #about .wrap .right {
        width: 35%; } }
    @media screen and (max-width: 768px) {
      #about .wrap .right {
        width: 100%; } }
#about .pr .left {
  width: 220px; }
  @media screen and (max-width: 992px) {
    #about .pr .left {
      width: 40%; } }
#about .pr .right {
  width: calc(100% - 720px);
  padding-left: 35px; }
  @media screen and (max-width: 1100px) {
    #about .pr .right {
      width: calc(100% - 620px); } }
  @media screen and (max-width: 992px) {
    #about .pr .right {
      width: 60%;
      padding-left: 6%;
      position: relative; } }
  #about .pr .right h4 {
    font-size: 2.2rem;
    margin-top: 10px;
    margin-bottom: 52px; }
  #about .pr .right p {
    font-size: 1.4rem; }
#about .pr .img {
  max-width: 500px; }
  @media screen and (max-width: 1100px) {
    #about .pr .img {
      max-width: 400px; } }
  @media screen and (max-width: 992px) {
    #about .pr .img {
      margin-top: 15px; } }
#about .compaany {
  margin-top: 100px; }
  #about .compaany dl {
    border-top: 0.5px solid #4c371e; }
  #about .compaany dt, #about .compaany dd {
    border-bottom: 0.5px solid #4c371e;
    padding: 20px 40px;
    letter-spacing: 0.1rem; }
    @media screen and (max-width: 768px) {
      #about .compaany dt, #about .compaany dd {
        padding: 15px; } }
  #about .compaany dt {
    width: 250px; }
    @media screen and (max-width: 768px) {
      #about .compaany dt {
        width: 100%;
        padding-bottom: 0;
        border-bottom: none; } }
  #about .compaany dd {
    width: calc(100% - 250px); }
    #about .compaany dd a {
      color: #71abc0;
      border-bottom: 1px solid;
      display: inline-block; }
    @media screen and (max-width: 768px) {
      #about .compaany dd {
        width: 100%;
        padding-top: 10px; } }
#about .img__wrap .left {
  width: 640px; }
  @media screen and (max-width: 1140px) {
    #about .img__wrap .left {
      width: calc(100% - 300px); } }
  @media screen and (max-width: 992px) {
    #about .img__wrap .left {
      width: 100%; } }
#about .img__wrap .right {
  width: calc(100% - 640px);
  text-align: right; }
  @media screen and (max-width: 1140px) {
    #about .img__wrap .right {
      width: 300px; } }
  @media screen and (max-width: 992px) {
    #about .img__wrap .right {
      width: 100%;
      text-align: center; } }
  #about .img__wrap .right .img {
    position: relative;
    bottom: -30px;
    max-width: 400px;
    display: inline-block; }
    @media screen and (max-width: 768px) {
      #about .img__wrap .right .img {
        bottom: unset; } }
    @media screen and (max-width: 480px) {
      #about .img__wrap .right .img {
        width: 300px; } }
    #about .img__wrap .right .img .illu-gif {
      position: absolute;
      top: 64px;
      left: 20px;
      width: 305px; }
      @media screen and (max-width: 1140px) {
        #about .img__wrap .right .img .illu-gif {
          width: 215px; } }
      @media screen and (max-width: 992px) {
        #about .img__wrap .right .img .illu-gif {
          width: 305px; } }
      @media screen and (max-width: 480px) {
        #about .img__wrap .right .img .illu-gif {
          width: 220px; } }
#about .ill-5 {
  position: absolute;
  top: -30px;
  right: 100px;
  width: 100px; }
  @media screen and (max-width: 1200px) {
    #about .ill-5 {
      right: 0; } }
  @media screen and (max-width: 768px) {
    #about .ill-5 {
      width: 45%;
      position: absolute;
      bottom: 0;
      right: 0;
      top: unset; } }
#about .mt150 {
  margin-top: 150px; }

.works__wrap {
  width: 100%;
  padding: 70px; }
  @media screen and (max-width: 1200px) {
    .works__wrap {
      padding: 35px; } }
  @media screen and (max-width: 768px) {
    .works__wrap {
      padding: 6%; } }
  .works__wrap .d-flex li {
    width: 31%;
    margin-right: 3.5%;
    margin-bottom: 75px; }
    @media screen and (max-width: 768px) {
      .works__wrap .d-flex li {
        width: 100%;
        margin-right: 0; } }
    .works__wrap .d-flex li:nth-child(3n) {
      margin-right: 0; }
    .works__wrap .d-flex li .zoom__wrap {
      width: 100%;
      height: 65%;
      margin-bottom: 10px;
      border: 1px solid #4c371e;
      overflow: hidden; }
      .works__wrap .d-flex li .zoom__wrap img {
        object-fit: cover;
        transform: scale(1);
        transition: .4s; }
    .works__wrap .d-flex li a:hover .zoom__wrap img {
      transform: scale(1.05); }
    .works__wrap .d-flex li .title {
      margin-bottom: 15px; }
    .works__wrap .d-flex li h2 {
      font-size: 20px;
      padding-right: 25px;
      margin-top: 15px; }
    .works__wrap .d-flex li .date {
      font-size: 14px;
      border-left: 1px solid #4c371e;
      padding-left: 15px;
      margin-top: 15px; }

.works__single {
  background: #e4d6cd;
  padding-bottom: 0px; }
  .works__single .side {
    width: 280px;
    padding-bottom: 70px; }
    @media screen and (max-width: 768px) {
      .works__single .side {
        width: 100%;
        padding-bottom: 35px; } }
  .works__single .main {
    width: calc(100% - 280px);
    padding-bottom: 70px; }
    @media screen and (max-width: 768px) {
      .works__single .main {
        width: 100%; }
        .works__single .main .d-flex {
          display: block; }
          .works__single .main .d-flex img {
            width: 100% !important;
            margin-bottom: 15px; } }
    .works__single .main.pb170 {
      padding-bottom: 170px; }
      @media screen and (max-width: 768px) {
        .works__single .main.pb170 {
          padding-bottom: 80px; } }
    @media screen and (max-width: 768px) {
      .works__single .main img {
        width: 100% !important; } }
  .works__single h3 {
    font-size: 2rem; }
    @media screen and (max-width: 768px) {
      .works__single h3 {
        position: relative;
        font-size: 1.7rem;
        padding-bottom: 20px; }
        .works__single h3::after {
          content: "";
          background: #4c371e;
          position: absolute;
          bottom: 0px;
          left: 0;
          width: 50px;
          height: 1px; } }
  .works__single .back {
    background: #e9e6e5;
    padding: 95px 0 70px; }
  .works__single .works__head h2 {
    font-size: 4.2rem;
    margin-bottom: 5px; }
    @media screen and (max-width: 768px) {
      .works__single .works__head h2 {
        font-size: 2.4rem; } }
  .works__single .works__head .right {
    display: flex;
    align-items: flex-end; }
    @media screen and (max-width: 768px) {
      .works__single .works__head .right {
        align-items: center; } }
    .works__single .works__head .right span {
      font-size: 2rem;
      border-left: 1px solid #4c371e;
      padding-left: 20px; }
  .works__single .works__head .works__icon {
    margin-top: 20px; }
  .works__single .scroll {
    margin-top: 10px;
    position: relative; }
    .works__single .scroll span {
      animation: scroll_01 1.8s infinite;
      font-size: 2rem; }
    .works__single .scroll .arrow_01 {
      position: absolute;
      top: 0;
      left: 0;
      width: 30px;
      height: 50px;
      animation: scroll_01 1.8s infinite; }
    .works__single .scroll .r90 {
      transform: rotate(270deg);
      position: absolute;
      top: 29px;
      left: 100px; }
    .works__single .scroll .arrow_01::before {
      content: "";
      position: absolute;
      top: 0;
      left: 50%;
      height: 100%;
      width: 1px;
      background-color: #4c371e;
      transform: translateX(-50%); }
    .works__single .scroll .arrow_01::after {
      content: "";
      position: absolute;
      bottom: 2px;
      left: 50%;
      width: 12px;
      height: 12px;
      border-bottom: 1px solid #4c371e;
      transform: translateX(-50%) rotate(-45deg); }
@keyframes scroll_01 {
  0% {
    transform: translate(-50%, -50%) translateY(-5px);
    opacity: 0; }
  30% {
    opacity: 1; }
  100% {
    transform: translate(-50%, -50%) translateY(5px);
    opacity: 0; } }
#relation .works__wrap {
  padding: 0; }
  #relation .works__wrap h2 {
    font-size: 2rem;
    margin-bottom: 0;
    letter-spacing: 0.1rem; }

/*=====================================================================
#single・#page
=======================================================================*/
#page .head {
  width: 100%; }
#page hr {
  border: 0.5px solid #9f8575;
  margin: 40px 0; }
#page .entry-content {
  padding: 0 30px; }
  @media screen and (max-width: 768px) {
    #page .entry-content {
      padding: 0; } }
  #page .entry-content img {
    margin-bottom: 30px; }
#page .editor h1, #page .editor h2, #page .editor h3, #page .editor h4, #page .editor h5, #page .editor h6 {
  line-height: 1.7; }
#page .editor h2 {
  font-size: 1.9rem;
  margin-bottom: 10px; }
#page .editor h3 {
  font-size: 1.8rem;
  margin-bottom: 25px; }
#page .editor p {
  margin-bottom: 20px; }
#page .editor a {
  transition: .4s; }
  #page .editor a:hover {
    opacity: .5; }
#page .editor .wp-block-button__link {
  background: #9f8575;
  border-radius: 0;
  color: #fff;
  padding: 8px 35px;
  padding-right: 65px;
  text-align: center;
  border: 1px solid #9f8575;
  margin-top: 30px;
  display: inline-block;
  position: relative;
  transition: .4s;
  font-size: 1.8rem; }
  @media screen and (max-width: 768px) {
    #page .editor .wp-block-button__link {
      text-align: left;
      width: 100%;
      font-size: 1.4rem; } }
  #page .editor .wp-block-button__link:after {
    content: url("../img/icon-right-2.svg");
    width: 17px;
    height: auto;
    position: absolute;
    top: 50%;
    right: 25px;
    transform: translateY(-50%);
    transition: .4s;
    filter: brightness(0) invert(1); }
  #page .editor .wp-block-button__link:hover {
    opacity: 1;
    background: #f9f9f2;
    color: #9f8575; }
    #page .editor .wp-block-button__link:hover:after {
      right: 20px;
      filter: unset; }
#page .editor .wp-block-buttons > .wp-block-button {
  width: 100%;
  max-width: 550px; }
#page .editor .wp-block-table * {
  border-left: none;
  border-right: none;
  border-color: #9f8575; }
#page .editor .wp-block-table a {
  position: relative;
  transition: .4s; }
  #page .editor .wp-block-table a:after {
    content: url("../img/icon-right.svg");
    width: 17px;
    height: auto;
    position: absolute;
    top: 50%;
    right: 5px;
    transform: translateY(-50%);
    transition: .4s; }
  #page .editor .wp-block-table a:hover:after {
    right: -4px; }
@media screen and (max-width: 992px) {
  #page .editor .wp-block-columns {
    width: 100%;
    display: block; } }
#page .post-nav {
  margin-top: 140px; }
  #page .post-nav * {
    font-size: 3rem;
    text-decoration: none; }
    @media screen and (max-width: 768px) {
      #page .post-nav * {
        font-size: 1.3rem; } }
  #page .post-nav .post-nav__back {
    border-left: 0.5px solid #4c371e;
    border-right: 0.5px solid #4c371e;
    padding: 0 50px; }
    @media screen and (max-width: 768px) {
      #page .post-nav .post-nav__back {
        padding: 0 25px; } }
  #page .post-nav .post-nav__prev {
    border-left: 0.5px solid #4c371e;
    padding: 0 50px; }
    @media screen and (max-width: 768px) {
      #page .post-nav .post-nav__prev {
        padding: 0 25px; } }
  #page .post-nav .post-nav__next {
    border-right: 0.5px solid #4c371e;
    padding: 0 50px; }
    @media screen and (max-width: 768px) {
      #page .post-nav .post-nav__next {
        padding: 0 25px; } }

#single .date {
  font-size: 3rem; }
  @media screen and (max-width: 768px) {
    #single .date {
      font-size: 1.6rem;
      margin-bottom: 20px; } }
#single article * {
  line-height: 1.5; }
#single article h1 {
  font-size: 4.2rem;
  padding-bottom: 20px; }
  @media screen and (max-width: 768px) {
    #single article h1 {
      font-size: 2rem;
      width: 100%; } }
#single article .top {
  border-bottom: 0.5px solid #4c371e;
  margin-bottom: 45px;
  align-items: baseline; }
#single article .post-nav {
  display: flex;
  justify-content: center;
  margin-top: 50px; }
  #single article .post-nav * {
    font-size: 1.5rem; }
    #single article .post-nav *:hover {
      color: #3f7545;
      opacity: 1;
      transition: .4s; }
#single article h2 + h3 {
  margin-top: 0; }
#single article h3 {
  margin-top: 40px;
  font-size: 1.6rem;
  letter-spacing: .1rem;
  margin-bottom: 10px;
  line-height: 1.8; }
#single article h4 {
  font-size: 2rem;
  letter-spacing: .1rem;
  margin-top: 30px;
  margin-bottom: 10px;
  line-height: 1.8;
  border-bottom: 3px solid;
  padding-bottom: 5px;
  display: inline-block; }
  @media screen and (max-width: 768px) {
    #single article h4 {
      font-size: 1.5rem; } }
#single article img {
  max-width: 100%;
  width: auto;
  height: auto; }
#single article p {
  margin-bottom: 15px;
  letter-spacing: 0;
  line-height: 2; }
#single article a {
  display: inline-block;
  text-decoration: underline; }
  #single article a:hover {
    color: #4c371e;
    transition: .2s; }
#single article hr {
  border: 0;
  border-top: 1px solid #ddd;
  height: 0;
  margin: 50px 0; }
#single article .wp-block-column img {
  margin: 0; }
#single article table td, #single article table th {
  font-size: 1.6rem;
  color: #4c371e; }
#single article table td {
  padding: 5px; }
#single .editor ul {
  margin: 20px 0; }
  #single .editor ul li {
    line-height: 1.8;
    list-style: disc;
    margin-left: 20px;
    margin-bottom: 10px; }
#single .paging p {
  font-size: 1.4rem;
  margin-bottom: 10px; }
#single .paging a {
  font-size: 1.4rem;
  display: inline-block;
  text-decoration: underline; }
  #single .paging a:hover {
    color: #9f8575; }

#single.news .paging p {
  font-size: 1.8rem;
  text-align: center; }
#single.news .paging a {
  text-decoration: none;
  margin-left: 50px; }
  #single.news .paging a svg {
    width: 60px;
    height: auto;
    margin-bottom: 10px; }
  #single.news .paging a:hover {
    transition: .2s; }
    #single.news .paging a:hover svg .cls-1 {
      stroke: #fff;
      transition: .2s; }
    #single.news .paging a:hover svg .cls-2 {
      fill: #b5b5b5;
      transition: .2s; }

/*=====================================================================
#single end
=======================================================================*/
/*=====================================================================
#プラグインの設定
=======================================================================*/
#contact .p1, #contact .p2 {
  padding-left: 20px; }
  @media screen and (max-width: 768px) {
    #contact .p1, #contact .p2 {
      padding-left: 0; } }
#contact .img {
  width: 150px;
  position: relative;
  top: -5px; }
  @media screen and (max-width: 768px) {
    #contact .img {
      display: none; } }
#contact .head {
  position: relative; }
  #contact .head img {
    position: absolute;
    top: -6%;
    right: 10%;
    width: 20%; }
    @media screen and (max-width: 576px) {
      #contact .head img {
        width: 35%; } }
#contact .p1 {
  font-size: 1.4rem; }
#contact .contact dl {
  border-top: 0.5px solid #404040;
  margin: 20px 0 25px; }
#contact .contact dt, #contact .contact dd {
  padding: 20px;
  border-bottom: 0.5px solid #404040; }
  @media screen and (max-width: 768px) {
    #contact .contact dt, #contact .contact dd {
      padding-left: 0;
      padding-right: 0; } }
  #contact .contact dt *, #contact .contact dd * {
    font-size: 1.4rem;
    letter-spacing: 0.05rem; }
#contact .contact dt {
  width: 150px;
  display: flex;
  align-items: center; }
  @media screen and (max-width: 768px) {
    #contact .contact dt {
      width: 100%;
      padding-bottom: 0;
      border-bottom: none; } }
#contact .contact dd {
  width: calc(100% - 150px); }
  @media screen and (max-width: 768px) {
    #contact .contact dd {
      width: 100%;
      padding-top: 10px; } }
#contact .contact input, #contact .contact textarea, #contact .contact select {
  margin: 0;
  padding: 0;
  background: none;
  border: none;
  border-radius: 0;
  outline: none;
  -webkit-appearance: none;
  -moz-appearance: none;
  appearance: none; }
#contact .contact input, #contact .contact textarea, #contact .contact select {
  background: #fff;
  width: 100%;
  padding: 15px; }
#contact .contact .select_wrapper {
  position: relative;
  display: inline-block; }
  @media screen and (max-width: 768px) {
    #contact .contact .select_wrapper {
      display: block; } }
  #contact .contact .select_wrapper::after {
    content: "";
    position: absolute;
    top: 20px;
    right: 25px;
    width: 7px;
    height: 7px;
    border-right: 1px solid #444;
    border-bottom: 1px solid #444;
    transform: rotate(45deg); }
    @media screen and (max-width: 768px) {
      #contact .contact .select_wrapper::after {
        top: 15px; } }
#contact .contact select {
  max-width: 325px;
  width: 325px;
  -webkit-appearance: none;
  appearance: none; }
  @media screen and (max-width: 768px) {
    #contact .contact select {
      width: 100%; } }
#contact .contact input[type="submit"] {
  width: 100%;
  text-align: center;
  font-size: 1.5rem;
  background: #3f7545;
  color: #fff;
  cursor: pointer;
  transition: .2s;
  padding-top: 27px;
  padding-bottom: 27px; }
  @media screen and (max-width: 768px) {
    #contact .contact input[type="submit"] {
      margin-top: 30px; } }
  #contact .contact input[type="submit"]:hover {
    background: #fff;
    color: #3f7545; }
#contact .contact ::placeholder {
  color: #999999; }
#contact .submit {
  margin-top: 50px;
  position: relative; }
  #contact .submit:after {
    content: "";
    background-image: url("../img/icon-right-2.svg");
    background-size: contain;
    background-repeat: no-repeat;
    position: absolute;
    width: 30px;
    height: 12px;
    z-index: 10;
    top: 31px;
    right: 35px;
    filter: brightness(20);
    transition: .4s; }
    @media screen and (max-width: 768px) {
      #contact .submit:after {
        transform: translateY(-50%);
        top: 50%; } }
  #contact .submit:hover:after {
    filter: unset;
    right: 25px; }

/*=== wp-pagenaviの設定 ===*/
.wp-pagenavi {
  text-align: center;
  margin-top: 60px; }
  @media screen and (max-width: 768px) {
    .wp-pagenavi {
      margin-top: 40px; } }

.wp-pagenavi a, .wp-pagenavi span {
  font-size: 1.5rem;
  text-align: center;
  text-decoration: none;
  display: inline-block;
  color: #4c371e;
  line-height: 1;
  border-left: 0.5px solid #4c371e;
  padding: 0 50px; }
  .wp-pagenavi a:last-child, .wp-pagenavi span:last-child {
    border-right: 0.5px solid #4c371e; }
  @media screen and (max-width: 768px) {
    .wp-pagenavi a, .wp-pagenavi span {
      font-size: 1.3rem;
      padding: 0 15px; } }

.wp-pagenavi a:hover {
  transition: .2s;
  color: #3f7545; }

.wp-pagenavi span.current {
  color: #3f7545; }

/*=== works 実績スライダーの設定==*/
.works__slider {
  padding: 35px 0 0;
  margin-bottom: 60px; }
  @media screen and (max-width: 576px) {
    .works__slider .container {
      padding: 0; } }
  .works__slider .swiper-thumb {
    margin-top: 20px;
    padding-bottom: 15px;
    /* スクロールバー1 */ }
    .works__slider .swiper-thumb::-webkit-scrollbar {
      height: 3px;
      /* 横幅設定 */ }
    .works__slider .swiper-thumb::-webkit-scrollbar-thumb {
      background: #4c371e;
      /* ハンドルの色 */ }
    .works__slider .swiper-thumb::-webkit-scrollbar-track {
      background: #fff;
      /* 背景色 */ }
    @media screen and (max-width: 576px) {
      .works__slider .swiper-thumb {
        width: 88%; } }
  .works__slider .swiper-thumb .swiper-slide {
    transition: .5s;
    cursor: pointer;
    width: auto; }
    .works__slider .swiper-thumb .swiper-slide:hover {
      opacity: .5; }
  .works__slider .swiper-scrollbar {
    left: 0%;
    bottom: 0px;
    width: 100%;
    background: #fff;
    border-radius: 0;
    height: 3px; }
  .works__slider .swiper-scrollbar-drag {
    background: #4c371e;
    border-radius: 0; }
  .works__slider .swiper-thumb .swiper-slide.swiper-slide-thumb-active {
    opacity: 1; }
    .works__slider .swiper-thumb .swiper-slide.swiper-slide-thumb-active:after {
      background: rgba(0, 0, 0, 0); }
  .works__slider .swiper-slide img {
    object-fit: cover;
    max-height: 600px;
    background: #e9e6e5; }
    @media screen and (max-width: 768px) {
      .works__slider .swiper-slide img {
        max-height: 380px; } }
    @media screen and (max-width: 576px) {
      .works__slider .swiper-slide img {
        max-height: 280px; } }
  .works__slider .swiper-slide.tate img {
    object-fit: contain; }
  .works__slider .thu {
    margin-right: 1%;
    position: relative; }
    .works__slider .thu img {
      height: 80px;
      object-fit: cover; }
    .works__slider .thu:after {
      position: absolute;
      content: "";
      top: 0;
      left: 0;
      background: rgba(0, 0, 0, 0.5);
      z-index: 10;
      width: 100%;
      height: 100%;
      transition: .4s; }
    .works__slider .thu img::before {
      content: "";
      padding-top: 100%;
      display: block; }
  .works__slider .swiper-button-next, .works__slider .swiper-rtl .swiper-button-prev {
    right: -24px; }
    .works__slider .swiper-button-next img, .works__slider .swiper-rtl .swiper-button-prev img {
      margin-left: 8px;
      width: 29px;
      display: inline-block; }
    @media screen and (max-width: 576px) {
      .works__slider .swiper-button-next, .works__slider .swiper-rtl .swiper-button-prev {
        right: 10px; } }
  .works__slider .swiper-button-prev, .works__slider .swiper-rtl .swiper-button-next {
    left: -24px;
    text-align: center; }
    .works__slider .swiper-button-prev img, .works__slider .swiper-rtl .swiper-button-next img {
      margin-left: 8px;
      width: 29px;
      display: inline-block;
      transform: rotate(180deg); }
    @media screen and (max-width: 576px) {
      .works__slider .swiper-button-prev, .works__slider .swiper-rtl .swiper-button-next {
        left: 10px; } }

/*=== swiperの設定 end==*/
.about__slider {
  margin-top: 130px;
  overflow: hidden;
  position: relative;
  /* スライド全体の余白 */
  /* スライド画像のサイズ */ }
  .about__slider .swiper__about {
    margin-top: 20px;
    /* スライダー上の余白 */
    padding-right: 250px;
    margin-left: calc((100vw - 1130px) / 2);
    /* 「中央1200px」の左端までの距離を左マージンにする */
    width: calc(100vw - ((100vw - 1130px) / 2));
    /* 残りの幅＝画面幅 - 左マージン */ }
    @media screen and (max-width: 1200px) {
      .about__slider .swiper__about {
        margin-left: 35px; } }
    @media screen and (max-width: 768px) {
      .about__slider .swiper__about {
        margin-left: 6%;
        width: auto;
        /* 残りの幅＝画面幅 - 左マージン */
        padding-right: 20%; } }
    .about__slider .swiper__about .d-flex {
      margin: 15px 0 25px; }
      .about__slider .swiper__about .d-flex h4 {
        font-size: 1.7rem;
        margin-top: 15px;
        text-indent: -2.4rem;
        margin-left: 2.4rem;
        line-height: 1.4; }
      .about__slider .swiper__about .d-flex .right {
        font-size: 1.4rem;
        margin-top: 15px; }
  @media screen and (min-width: 768px) {
    .about__slider .swiper-slide {
      margin-right: 30px !important; } }
  .about__slider .swiper-slide img {
    height: auto;
    width: 100%; }

.about__slider__btn {
  height: 70px;
  /* Swiperデフォルトの矢印（::after）を無効化 */ }
  @media screen and (max-width: 1240px) {
    .about__slider__btn {
      right: 0;
      position: relative; } }
  @media screen and (max-width: 768px) {
    .about__slider__btn {
      right: 0;
      margin-top: 20px; } }
  .about__slider__btn .swiper-button-prev, .about__slider__btn .swiper-button-next {
    left: unset !important;
    right: 0 !important;
    background: #3f7545;
    text-align: center;
    padding-left: 8px;
    transition: .4s;
    transform: scaleX(1);
    transform-origin: right bottom; }
    @media screen and (max-width: 768px) {
      .about__slider__btn .swiper-button-prev, .about__slider__btn .swiper-button-next {
        display: flex;
        width: 48px;
        height: 48px; } }
    .about__slider__btn .swiper-button-prev img, .about__slider__btn .swiper-button-next img {
      width: 30px; }
    .about__slider__btn .swiper-button-prev:hover, .about__slider__btn .swiper-button-next:hover {
      transform: scaleX(1.2); }
  .about__slider__btn .swiper-button-next {
    transform-origin: left bottom; }
  .about__slider__btn .swiper-button-prev {
    right: 70px !important; }
    .about__slider__btn .swiper-button-prev img {
      transform: rotate(180deg); }

/*=== swiperの設定 ===*/
@media screen and (max-width: 576px) {
  .slider_sp {
    width: 100%;
    left: -7%;
    width: 114%; } }

.slider-thumbnail .swiper-wrapper {
  flex-wrap: wrap;
  transform: translate3d(0px, 0px, 0px) !important; }

.slider-thumbnail .swiper-slide {
  opacity: .5;
  transition: opacity .5s; }

.slider-thumbnail .swiper-slide.swiper-slide-thumb-active {
  opacity: 1; }

.slider-thumbnail-2 {
  margin-top: 20px; }
  .slider-thumbnail-2 .swiper-slide {
    width: 18% !important;
    margin-right: 2.5%;
    margin-bottom: 2%;
    cursor: pointer; }
    .slider-thumbnail-2 .swiper-slide:nth-child(5n) {
      margin-right: 0; }
    .slider-thumbnail-2 .swiper-slide img {
      width: 100%; }
  .slider-thumbnail-2 .swiper-wrapper {
    flex-wrap: wrap;
    transform: translate3d(0px, 0px, 0px) !important; }

.slider-thumbnail-2 .swiper-slide {
  opacity: .5;
  transition: opacity .5s; }

.slider-thumbnail-2 .swiper-slide.swiper-slide-thumb-active {
  opacity: 1; }

/* 前へ次への矢印カスタマイズ */
.swiper-button-prev,
.swiper-button-next {
  height: 48px;
  width: 48px;
  background: #fff; }
  @media screen and (max-width: 768px) {
    .swiper-button-prev,
    .swiper-button-next {
      height: 40px;
      width: 40px;
      display: none; } }

.swiper-button-prev {
  left: -24px; }
  @media screen and (max-width: 768px) {
    .swiper-button-prev {
      left: -15px; } }

.swiper-button-next {
  right: -24px; }
  @media screen and (max-width: 768px) {
    .swiper-button-next {
      right: -15px; } }

/* 前へ次への矢印カスタマイズ */
.swiper-button-prev::after,
.swiper-button-next::after {
  background-repeat: no-repeat;
  background-size: contain;
  content: "";
  height: 60px;
  margin: auto;
  width: 60px; }
  @media screen and (max-width: 768px) {
    .swiper-button-prev::after,
    .swiper-button-next::after {
      height: 40px;
      width: 40px; } }

/* 前への矢印カスタマイズ */
/* 次への矢印カスタマイズ */
/* 画像サイズ調整 */
.swiper-slide img {
  height: auto;
  width: 100%; }

/*=== swiperの設定 end===*/
/*=== inviewの設定==*/
/* フェードイン(初期値) */
.js-fadeUp {
  opacity: 0;
  /* 最初は非表示 */
  transform: translateY(15px);
  /* 下に30pxの位置から */
  transition: 1s;
  /* 透過率と縦方向の移動を0.8秒 */ }
  .js-fadeUp.t0 {
    transform: translateY(0px);
    /* 下に30pxの位置から */ }

/* フェードイン(スクロールした後) */
.js-fadeUp.is-inview {
  opacity: 1;
  /* 表示領域に入ったら表示 */
  transform: translateY(0);
  /* 30px上に移動する */ }

.delay_01 {
  transition-delay: 0.1s !important;
  animation-delay: 0.1s !important; }

.delay_02 {
  transition-delay: 0.2s !important;
  animation-delay: 0.2s !important; }

.delay_03 {
  transition-delay: 0.3s !important;
  animation-delay: 0.3s !important; }

.delay_04 {
  transition-delay: 0.4s !important;
  animation-delay: 0.4s !important; }

.delay_05 {
  transition-delay: 0.5s !important;
  animation-delay: 0.5s !important; }

.delay_06 {
  transition-delay: 0.6s !important;
  animation-delay: 0.6s !important; }

.delay_07 {
  transition-delay: 0.7s !important;
  animation-delay: 0.7s !important; }

.delay_08 {
  transition-delay: 0.8s !important;
  animation-delay: 0.8s !important; }

.delay_09 {
  transition-delay: 0.9s !important;
  animation-delay: 0.9s !important; }

.delay_10 {
  transition-delay: 1s !important;
  animation-delay: 0.1s !important; }

.delay_11 {
  transition-delay: 1.1s !important;
  animation-delay: 1.1s !important; }

.delay_12 {
  transition-delay: 1.1s !important;
  animation-delay: 1.2s !important; }

.delay_13 {
  transition-delay: 1.3s !important;
  animation-delay: 1.3s !important; }

.delay_14 {
  transition-delay: 1.4s !important;
  animation-delay: 1.4s !important; }

.delay_17 {
  transition-delay: 1.7s !important;
  animation-delay: 1.7s !important; }

.delay_20 {
  transition-delay: 2s !important;
  animation-delay: 2s !important; }

.td__03 {
  transition-delay: 0.3s !important; }

.td__04 {
  transition-delay: 0.4s !important; }

.td__05 {
  transition-delay: 0.5s !important; }

.td__06 {
  transition-delay: 0.6s !important; }

.td__07 {
  transition-delay: 0.7s !important; }

.td__08 {
  transition-delay: 0.8s !important; }

.td__09 {
  transition-delay: 0.9s !important; }

.td__10 {
  transition-delay: 1s !important; }

.td__11 {
  transition-delay: 1.1s !important; }

.td__12 {
  transition-delay: 1.2s !important; }

.js-fade {
  opacity: 0; }

/*=== inviewの設定 end==*/
.char {
  opacity: 0;
  transform: translateY(15px);
  display: inline-block; }

.js-text-inview .char {
  animation: fadeIn 1.5s forwards; }

@keyframes fadeIn {
  to {
    opacity: 1;
    transform: translateY(0px); } }
@keyframes pon {
  0% {
    -webkit-transform: translateX(-50%) rotate(0deg) scale(1, 1);
    transform: translateX(-50%) rotate(0deg) scale(1, 1); }
  60% {
    -webkit-transform: translateX(-50%) rotate(0deg) scale(1.2, 1.2);
    transform: translateX(-50%) rotate(0deg) scale(1.2, 1.2); }
  100% {
    -webkit-transform: translateX(-50%) rotate(0deg) scale(1, 1);
    transform: translateX(-50%) rotate(0deg) scale(1, 1); } }
.pon {
  opacity: 0;
  transition: 1s; }
  .pon.is-inview {
    -webkit-animation: pon 1s 0.2s;
    animation: pon 1s 0.2s;
    transition: all 1s ease 0s;
    opacity: 1;
    transform: translateX(-50%) rotate(0deg) scale(1); }

/*=====================================================================
#プラグインの設定 end
=======================================================================*/
