@charset "UTF-8";
* {
  margin: 0;
  padding: 0;
  -webkit-tap-highlight-color: rgba(0, 0, 0, 0);
}

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

html {
  height: 100%;
}

body {
  min-height: 100%;
  -webkit-text-size-adjust: 100%;
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
}

a {
  color: currentColor;
  text-decoration: none;
}

img {
  max-width: 100%;
}

ul,
ol {
  list-style-type: none;
}

body {
  color: #000000;
    font-family: "Zen Kaku Gothic New", sans-serif;
  font-weight: 400;
  font-style: normal;
  /*letter-spacing: 0.05em;*/
  background: #EFEFEF;
}

@media screen and (min-width: 768px), print {
  body {
    min-width: 1260px;
  }
}

#wrap {
  overflow: hidden;
  position: relative;
}

#wpadminbar {
  position: fixed !important;
  top: auto !important;
  bottom: 0;
}

.l-header {
  width: 100%;
  background: #EFEFEF;
}

@media screen and (max-width: 767px) {
  .l-header {
    height: 55px;
    width: 100%;
    z-index: 91;
    position: fixed;
    top: 0;
    left: 0;
    background: #EFEFEF;
    transition: all 0.4s linear;
  }
  .l-header.off {
    top: -55px;
  }
  .l-header__logo {
    display: block;
    position: absolute;
    top: 50%;
    left: 50%;
    transform: translate(-50%, -50%);
    transition: all 0.4s linear;
    z-index: 100;
  }
  .l-header__logo img {
    width: 135px;
    display: block;
    transition: all 0.4s linear;
    height: auto;
  }
  .l-header-nav {
    position: absolute;
    top: 13px;
    right: 20px;
    background: #EFEFEF;
    padding: 0 12px 10px;
    min-height: 35px;
  }
  .l-header-nav:after {
    border-right: 1px solid #000;
    border-bottom: 1px solid #000;
    content: '';
    margin-top: -3px;
    position: absolute;
    top: 18px;
    right: 0;
    transform: rotateX(0deg) rotateZ(45deg);
    width: 4px;
    height: 4px;
    transition: all 0.36s cubic-bezier(0.215, 0.61, 0.355, 1);
  }
  .l-header-nav.act:after {
    margin-top: -2px;
    transform: rotateX(180deg) rotateZ(45deg);
  }
  .l-header-nav.act .l-header-nav__disp {
    width: 20px;
    right: -15px;
  }
  .l-header-nav__disp {
    z-index: 3;
    position: absolute;
    top: 5px;
    right: 0px;
    width: 60px;
    height: 20px;
    line-height: 1.6;
    color: #1A1A1A;
  font-family: "Outfit", system-ui;
  font-optical-sizing: auto;
  font-weight: 200;
  font-style: normal;
    letter-spacing: 0.04em;
    font-size: 10px;
    transition: 0.4s linear;
  }
  .l-header-nav__list {
    z-index: 2;
    position: relative;
    background: #EFEFEF;
  }
  .l-header-nav__list li {
    display: none;
    margin: 3px 0px 0 0;
    text-align: right;
    line-height: 1.5;
  }
  .l-header-nav__list li:first-of-type {
    display: block;
  }
  .l-header-nav__list li a {
    color: #1A1A1A;
  font-family: "Outfit", system-ui;
  font-optical-sizing: auto;
  font-weight: 200;
  font-style: normal;
    letter-spacing: 0.04em;
    font-size: 10px;
    transition: 0.4s linear;
  }
}

@media screen and (min-width: 768px), print {
  .l-header {
    min-width: 1200px;
    height: 100px;
    z-index: 100;
    position: fixed;
    transition: 0.4s linear;
  }
  .l-header__logo {
    display: block;
    position: absolute;
    top: 50%;
    left: 50%;
    transform: translate(-50%, -50%);
    transition: all 0.4s linear;
    z-index: 100;
    margin: -3px 0 0;
  }
  .l-header__logo img {
    width: 160px;
    display: block;
    transition: all 0.4s linear;
    height: auto;
  }
  .l-header-nav {
    position: relative;
    top: 50%;
    left: 30px;
    transform: translate(0, -50%);
    margin: -3px 0 0;
  }
  .l-header-nav__list li {
    display: inline-block;
    margin: 0 27px 0 0;
  }
  .l-header-nav__list li a {
    color: #BEBEBE;
  font-family: "Outfit", system-ui;
  font-optical-sizing: auto;
  font-weight: 200;
  font-style: normal;
    letter-spacing: 0.04em;
    font-size: 13px;
    transition: 0.4s linear;
  }
  .l-header-nav__list li a:hover {
    color: #1A1A1A;
  }
  .l-header-nav__list li.act a {
    color: #1A1A1A;
  }
  .l-header-nav02 {
    position: absolute;
    top: 50%;
    right: 30px;
    transform: translate(0, -50%);
    margin: -3px 0 0;
  }
  .l-header-nav02__list li {
    display: inline-block;
    margin: 0 27px 0 0;
  }
  .l-header-nav02__list li a {
  font-family: "Outfit", system-ui;
  font-optical-sizing: auto;
  font-weight: 200;
  font-style: normal;
    letter-spacing: 0.04em;
    color: #1A1A1A;
    font-size: 13px;
    transition: 0.4s linear;
  }
  .l-header-nav02__list li a span {
    position: relative;
  }
  .l-header-nav02__list li a span:after {
    position: absolute;
    bottom: -4px;
    left: 0;
    width: 100%;
    height: 1px;
    background-color: #000;
    content: '';
    transform: scaleX(0);
    transform-origin: left;
    z-index: 1;
    transition: transform 1.5s cubic-bezier(0.075, 0.82, 0.165, 1);
  }
  .l-header-nav02__list li a.act span:after {
    transform: scaleX(1);
  }
  .l-header-nav02__list li a:hover span:after {
    transform: scaleX(1);
  }
  .l-header.on {
    height: 70px;
  }
  .l-header.on .l-header__logo img {
    transform: scale(0.9);
  }
}

.l-footer {
  width: 100%;
}

.l-footer__copy {
  padding: 0px 0;
  display: inline-block;
  color: #1A1A1A;
  font-size: 10px;
  word-wrap: break-word;
}

@media screen and (max-width: 767px) {
  .l-footer {
    padding: 32px 0 20px;
    text-align: center;
  }
  .l-footer__logo {
    display: block;
    margin: 0 auto;
    height: 42px;
  }
  .l-footer__logo img {
    height: 8px;
  }
}

@media screen and (min-width: 768px), print {
  .l-footer {
    position: relative;
    text-align: center;
  }
  .l-footer__inner {
    max-width: 1400px;
    padding: 80px 20px 20px;
    margin: 0 auto;
  }
  .l-footer__logo {
    display: inline-block;
    width: 175px;
    margin: 0 auto;
  }
  .l-footer__logo img {
    height: 28px;
  }
  .l-footer__copy {
    position: relative;
    top: -2px;
    padding: 0px 0;
    display: inline-block;
    font-size: 12px;
    line-height: 2;
  }
}

@media screen and (max-width: 350px) {
  .l-footer__copy {
    transform: scale(0.8);
  }
  .l-header__logo img {
    width: 114px;
    position: relative;
    top: 1px;
  }
}

@media screen and (min-width: 768px) and (max-width: 1250px), print {
  body.worksdetail {
    min-width: auto;
  }
  body.worksdetail .p-tile-wrap {
    -moz-column-count: 3;
    column-count: 3;
    /* 指定サイズ以上の画面幅(タブレット, パソコンなど)の並び数 */
    -moz-column-gap: 40px;
    column-gap: 40px;
  }
}

[data-scroll="in"] {
  opacity: 1;
}

[data-scroll="in"] .item1,
[data-scroll="in"] .item2,
[data-scroll="in"] .item3,
[data-scroll="in"] .item4,
[data-scroll="in"] .item5,
[data-scroll="in"] .item6,
[data-scroll="in"] .item7,
[data-scroll="in"] .item8,
[data-scroll="in"] .item9,
[data-scroll="in"] .item10,
[data-scroll="in"] .item11,
[data-scroll="in"] .item12,
[data-scroll="in"] .item13,
[data-scroll="in"] .item14,
[data-scroll="in"] .item15,
[data-scroll="in"] .item16,
[data-scroll="in"] .item17,
[data-scroll="in"] .item18 {
  opacity: 1;
  transform: scale(1) translate3d(0, 0, 0);
}

[data-scroll="in"] .item1 {
  transition-delay: 0.0s;
}

[data-scroll="in"] .item2 {
  transition-delay: 0.1s;
}

[data-scroll="in"] .item3 {
  transition-delay: 0.2s;
}

[data-scroll="in"] .item4 {
  transition-delay: 0.3s;
}

[data-scroll="in"] .item5 {
  transition-delay: 0.4s;
}

[data-scroll="in"] .item6 {
  transition-delay: 0.5s;
}

[data-scroll="in"] .item7 {
  transition-delay: 0.6s;
}

[data-scroll="in"] .item8 {
  transition-delay: 0.7s;
}

[data-scroll="in"] .item9 {
  transition-delay: 0.8s;
}

[data-scroll="in"] .item10 {
  transition-delay: 0.9s;
}

[data-scroll="in"] .item11 {
  transition-delay: 1.0s;
}

body.locked {
  position: fixed;
}

@media screen and (max-width: 767px) {
  #content {
    margin: 60px 0 0 20px;
    position: relative;
    left: 10px;
  }
  #content.projectpage {
    margin: 20px 0 0;
    left: 0;
    padding: 0 25px;
  }
  #content.about {
    margin: 60px 0 0 25px;
  }
  #content.works {
    margin: 70px 0 0 30px;
  }
}

@media screen and (min-width: 768px), print {
  #content {
    max-width: 2000px;
    margin: 80px auto 0;
    padding: 0 100px;
  }
  #content.works {
    padding: 0 100px 0 88px;
  }
  #content.projectpage {
    margin: 30px 0 0;
    padding: 0 40px;
  }
}

.cover-image {
  height: 100%;
  width: 100%;
  background: no-repeat center;
  background-size: cover;
  position: absolute;
  top: 0;
  left: 0;
}

.parent > div {
  position: relative;
}

@media screen and (max-width: 767px) {
  .parent {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    grid-template-rows: repeat(4, 1fr);
    grid-column-gap: 0px;
    grid-row-gap: 0px;
    height: 240.53vw;
  }
  .parent .div1 {
    grid-area: 1 / 1 / 3 / 3;
  }
  .parent .div2 {
    grid-area: 1 / 3 / 2 / 4;
  }
  .parent .div3 {
    grid-area: 2 / 3 / 3 / 4;
  }
  .parent .div4 {
    grid-area: 3 / 1 / 4 / 2;
  }
  .parent .div5 {
    grid-area: 4 / 1 / 5 / 2;
  }
  .parent .div6 {
    grid-area: 3 / 2 / 5 / 4;
  }
  .parent > div {
    overflow: hidden;
    position: relative;
    margin: 0 1.6vw 3.2vw;
    opacity: 0;
    transition: opacity 1s cubic-bezier(0.215, 0.61, 0.355, 1), transform 1s cubic-bezier(0.215, 0.61, 0.355, 1);
    transform: translate3d(0, 30px, 0);
  }
}

@media screen and (min-width: 768px), print {
  .parent {
    margin: 0 0 40px;
    display: grid;
    grid-template-columns: repeat(4, 1fr);
    grid-template-rows: repeat(3, 1fr);
    grid-column-gap: 40px;
    grid-row-gap: 40px;
    /*
		height : 35.29vw;
		*/
    min-height: 470px;
  }
  .parent .div1 {
    grid-area: 1 / 1 / 3 / 3;
  }
  .parent .div2 {
    grid-area: 1 / 3 / 2 / 4;
  }
  .parent .div3 {
    grid-area: 1 / 4 / 2 / 5;
  }
  .parent .div4 {
    grid-area: 3 / 1 / 4 / 2;
  }
  .parent .div5 {
    grid-area: 3 / 2 / 4 / 3;
  }
  .parent .div6 {
    grid-area: 2 / 3 / 4 / 5;
  }
  .parent > div {
    overflow: hidden;
    position: relative;
    /*margin : 0 1.705vw 3.41vw 1.705vw;*/
    opacity: 0;
    transition: opacity 1s cubic-bezier(0.215, 0.61, 0.355, 1), transform 1s cubic-bezier(0.215, 0.61, 0.355, 1);
    transform: translate3d(0, 30px, 0);
  }
}

.parent02 > div {
  position: relative;
}

@media screen and (max-width: 767px) {
  .parent02 {
    display: grid;
    grid-template-columns: repeat(2, 1fr);
    grid-template-rows: repeat(17, 1fr);
    grid-column-gap: 0px;
    grid-row-gap: 0px;
    height: 215.33vw;
  }
  .parent02 .div1 {
    grid-area: 1 / 1 / 11 / 3;
  }
  .parent02 .div2 {
    grid-area: 11 / 1 / 18 / 2;
  }
  .parent02 .div3 {
    grid-area: 11 / 2 / 18 / 3;
  }
  .parent02 > div {
    overflow: hidden;
    position: relative;
    margin: 0 1.6vw 3.2vw;
    opacity: 0;
    transition: opacity 1s cubic-bezier(0.215, 0.61, 0.355, 1), transform 1s cubic-bezier(0.215, 0.61, 0.355, 1);
    transform: translate3d(0, 30px, 0);
  }
  .parent02 .div1 .p-topitem__photo {
    height: 71% !important;
  }
  .parent02 .div1 .p-topitem__txtbox {
    height: 29% !important;
  }
  .parent02 .p-topitem__txtbox--big .p-topitem__tit {
    text-overflow: ellipsis;
    width: 100%;
    white-space: nowrap;
    overflow: hidden;
  }
}

@media screen and (min-width: 768px), print {
  .parent02 {
    margin: 0 0 40px;
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    grid-template-rows: repeat(2, 1fr);
    grid-column-gap: 40px;
    grid-row-gap: 40px;
    /*
			height : 31.29vw;
		*/
    min-height: 400px;
  }
  .parent02 > div {
    overflow: hidden;
    position: relative;
    /*margin : 0 1.705vw 3.41vw 1.705vw;*/
    opacity: 0;
    transition: opacity 1s cubic-bezier(0.215, 0.61, 0.355, 1), transform 1s cubic-bezier(0.215, 0.61, 0.355, 1);
    transform: translate3d(0, 30px, 0);
  }
  .parent02 .div1 {
    grid-area: 1 / 1 / 3 / 3;
  }
  .parent02 .div2 {
    grid-area: 1 / 3 / 2 / 4;
  }
  .parent02 .div3 {
    grid-area: 2 / 3 / 3 / 4;
  }
}

.parent03 > div {
  position: relative;
}

@media screen and (max-width: 767px) {
  .parent03 {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    grid-template-rows: repeat(4, 1fr);
    grid-column-gap: 0px;
    grid-row-gap: 0px;
    height: 240.53vw;
  }
  .parent03 .div1 {
    grid-area: 1 / 1 / 2 / 2;
  }
  .parent03 .div2 {
    grid-area: 2 / 1 / 3 / 2;
  }
  .parent03 .div3 {
    grid-area: 1 / 2 / 3 / 4;
  }
  .parent03 .div4 {
    grid-area: 3 / 1 / 5 / 3;
  }
  .parent03 .div5 {
    grid-area: 3 / 3 / 4 / 4;
  }
  .parent03 .div6 {
    grid-area: 4 / 3 / 5 / 4;
  }
  .parent03 > div {
    overflow: hidden;
    position: relative;
    margin: 0 1.6vw 3.2vw;
    opacity: 0;
    transition: opacity 1s cubic-bezier(0.215, 0.61, 0.355, 1), transform 1s cubic-bezier(0.215, 0.61, 0.355, 1);
    transform: translate3d(0, 30px, 0);
  }
}

@media screen and (min-width: 768px), print {
  .parent03 {
    margin: 0 0 40px;
    display: grid;
    grid-template-columns: repeat(4, 1fr);
    grid-template-rows: repeat(3, 1fr);
    grid-column-gap: 40px;
    grid-row-gap: 40px;
    /*
		height : 35.29vw;
		*/
    min-height: 470px;
  }
  .parent03 .div1 {
    grid-area: 1 / 1 / 2 / 2;
  }
  .parent03 .div2 {
    grid-area: 1 / 2 / 2 / 3;
  }
  .parent03 .div3 {
    grid-area: 1 / 3 / 3 / 5;
  }
  .parent03 .div4 {
    grid-area: 2 / 1 / 4 / 3;
  }
  .parent03 .div5 {
    grid-area: 3 / 3 / 4 / 4;
  }
  .parent03 .div6 {
    grid-area: 3 / 4 / 4 / 5;
  }
  .parent03 > div {
    overflow: hidden;
    position: relative;
    /*	margin : 0 1.705vw 3.41vw 1.705vw;*/
    opacity: 0;
    transition: opacity 1s cubic-bezier(0.215, 0.61, 0.355, 1), transform 1s cubic-bezier(0.215, 0.61, 0.355, 1);
    transform: translate3d(0, 30px, 0);
  }
}

.parent04 > div {
  position: relative;
}

@media screen and (max-width: 767px) {
  .parent04 {
    display: grid;
    grid-template-columns: repeat(2, 1fr);
    grid-template-rows: repeat(17, 1fr);
    grid-column-gap: 0px;
    grid-row-gap: 0px;
    height: 215.33vw;
  }
  .parent04 .div1 {
    grid-area: 1 / 1 / 8 / 2;
  }
  .parent04 .div2 {
    grid-area: 1 / 2 / 8 / 3;
  }
  .parent04 .div3 {
    grid-area: 8 / 1 / 18 / 3;
  }
  .parent04 > div {
    overflow: hidden;
    position: relative;
    margin: 0 1.6vw 3.2vw;
    opacity: 0;
    transition: opacity 1s cubic-bezier(0.215, 0.61, 0.355, 1), transform 1s cubic-bezier(0.215, 0.61, 0.355, 1);
    transform: translate3d(0, 30px, 0);
  }
  .parent04 .div3 .p-topitem__photo {
    height: 71% !important;
  }
  .parent04 .div3 .p-topitem__txtbox {
    height: 29% !important;
  }
  .parent04 .p-topitem__txtbox--big .p-topitem__tit {
    text-overflow: ellipsis;
    width: 100%;
    white-space: nowrap;
    overflow: hidden;
  }
}

@media screen and (min-width: 768px), print {
  .parent04 {
    margin: 0 0 40px;
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    grid-template-rows: repeat(2, 1fr);
    grid-column-gap: 40px;
    grid-row-gap: 40px;
    /*
		height : 31.29vw;
		*/
    min-height: 400px;
  }
  .parent04 .div1 {
    grid-area: 1 / 1 / 2 / 2;
  }
  .parent04 .div2 {
    grid-area: 2 / 1 / 3 / 2;
  }
  .parent04 .div3 {
    grid-area: 1 / 2 / 3 / 4;
  }
  .parent04 > div {
    overflow: hidden;
    position: relative;
    /*
			margin : 0 1.705vw 3.41vw 1.705vw;
			*/
    opacity: 0;
    transition: opacity 1s cubic-bezier(0.215, 0.61, 0.355, 1), transform 1s cubic-bezier(0.215, 0.61, 0.355, 1);
    transform: translate3d(0, 30px, 0);
  }
}

.p-topitem {
  width: 100%;
  height: 100%;
  position: relative;
  background: #E3E3E3;
}

.p-topitem__cate {
  position: absolute;
  top: 0;
  left: 0;
  line-height: 1.8;
  color: #fff;
  font-size: 12px;
  font-family: "Outfit", system-ui;
  font-optical-sizing: auto;
  font-weight: 200;
  font-style: normal;
  letter-spacing: 0.04em;
  z-index: 2;
  background: #AAAAAA;
  padding: 0 4px 0 6px;
}

.p-topitem__cate2 {
  font-size: 11px;
  line-height: 1.6;
    font-family: "Zen Kaku Gothic New", sans-serif;
  font-weight: 400;
  font-style: normal;
}

.p-topitem__date {
  font-size: 12px;
  font-family: "Outfit", system-ui;
  font-optical-sizing: auto;
  font-weight: 200;
  font-style: normal;
  letter-spacing: 0.04em;
  line-height: 1.6;
}

.p-topitem__tit {
  font-size: 15.5px;
  line-height: 1.6;
    font-family: "Zen Kaku Gothic New", sans-serif;
  font-weight: 700;
  font-style: normal;
}

.p-topitem__txt {
  padding: 10px 0 0;
  font-size: 13px;
  line-height: 1.8;
    font-family: "Zen Kaku Gothic New", sans-serif;
  font-weight: 400;
  font-style: normal;
  word-break: break-all;
}

.p-topitem__more {
  opacity: 0;
  z-index: 2;
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  transition: all 1s cubic-bezier(0.075, 0.82, 0.165, 1);
}

.p-topitem__more span {
  z-index: 2;
  color: #fff;
  display: block;
  position: absolute;
  font-size: 10px;
  font-family: "Outfit", system-ui;
  font-optical-sizing: auto;
  font-weight: 200;
  font-style: normal;
  letter-spacing: 0.04em;
  width: 100%;
  text-align: center;
  top: 50%;
  left: 50%;
  transform: translate(-50%, -50%);
}

.p-topitem__more:after {
  content: "";
  background: #000;
  display: block;
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  transition: transform 1s cubic-bezier(0.075, 0.82, 0.165, 1);
}

@media screen and (max-width: 767px) {
  .p-topitem .parent02 .p-topitem__txtboxin--big,
  .p-topitem .parent04 .p-topitem__txtboxin--big {
    left: -4px;
  }
  .p-topitem__cate {
    font-size: 10px;
    transform: scale(0.9);
    left: -3px;
    top: -1px;
    padding: 0 4px 0 6px;
  }
  .p-topitem__date {
    font-size: 10px;
    line-height: 1.5;
    transform: scale(0.95);
    display: block;
  }
  .p-topitem__cate2 {
    font-size: 10px;
    line-height: 1.5;
    transform: scale(0.95);
    display: block;
    text-overflow: ellipsis;
    width: 100%;
    white-space: nowrap;
    overflow: hidden;
  }
  .p-topitem__tit {
    font-size: 12.5px;
    padding: 2px 0 0;
  }
  .p-topitem__txt {
    font-size: 11px;
    padding: 7px 0 0;
  }
  .p-topitem a:hover .p-topitem__more {
    opacity: 1;
  }
  .p-topitem a:hover .p-topitem__more:after {
    opacity: 0.6;
  }
  .p-topitem__more span {
    transform: translate(-50%, -50%) scale(0.95);
  }
  .p-topitem__photo {
    display: block;
    position: relative;
    width: 100%;
    height: 50%;
  }
  .p-topitem__photo--big {
    height: 50%;
  }
  .p-topitem__txtbox {
    width: 100%;
    height: 50%;
  }
  .p-topitem__txtbox--big {
    height: 50%;
  }
  .p-topitem__txtboxin {
    padding: 7px 10px 12px;
    line-height: 1;
    position: relative;
  }
  .p-topitem__txtboxin--big {
    padding: 7px 10px 12px;
    /*
				display : flex;
				justify-content: space-between;
				*/
    position: relative;
    left: -2px;
  }
  .p-topitem__txtboxin:after {
    content: "";
    position: absolute;
    left: 0;
    width: 120%;
    height: 1px;
    bottom: 5px;
    background: #D2D2D2;
  }
  .p-topitem__txtboxin2 {
    padding: 5px 13px 10px;
  }
}

@media screen and (min-width: 768px), print {
  .p-topitem a {
    display: flex;
    justify-content: space-between;
    height: 100%;
  }
  .p-topitem a:hover .p-topitem__more {
    opacity: 1;
  }
  .p-topitem a:hover .p-topitem__more:after {
    opacity: 0.6;
  }
  .p-topitem__more span {
    font-size: 13px;
  }
  .p-topitem__photo {
    display: block;
    position: relative;
    width: 50%;
  }
  .p-topitem__photo--big {
    width: 56.6%;
  }
  .p-topitem__txtbox {
    width: 50%;
  }
  .p-topitem__txtbox--big {
    width: 43.4%;
  }
  .p-topitem__txtboxin {
    padding: 6px 25px 2px;
    position: relative;
  }
  .p-topitem__txtboxin--big {
    display: flex;
    justify-content: space-between;
    padding: 8px 25px 4px;
  }
  .p-topitem__txtboxin:after {
    content: "";
    position: absolute;
    left: 0;
    width: 120%;
    height: 1px;
    bottom: -6px;
    background: #D2D2D2;
  }
  .p-topitem__txtboxin2 {
    padding: 30px 25px 25px;
  }
  .p-topitem__txt {
    padding: 20px 0 0;
  }
}

@media screen and (max-width: 350px) {
  .p-topitem__tit {
    transform: scale(0.95);
    transform-origin: top left;
    position: relative;
    font-size: 10px;
    top: -4px;
    left: 0px;
  }
  .p-topitem__txt {
    font-size: 10px;
    transform: scale(0.95);
    transform-origin: top left;
    position: relative;
    top: -6px;
    width: 108%;
    left: -1px;
  }
}

@media screen and (max-width: 767px) {
  .parent02 .p-topitem__txtboxin--big,
  .parent04 .p-topitem__txtboxin--big {
    left: -4px;
  }
}

.p-sidesns01 {
  position: fixed;
  z-index: 2;
}

@media screen and (max-width: 767px) {
	.side-lr{
	writing-mode: sideways-lr;
	font-size: 11px;
	}
  .p-sidesns01 {
    height: 100vh;
  }
  .p-sidesns01__list {
    width: 25px;
    height: 300px;
    position: absolute;
    top: 50%;
    left: 5px;
    transform: translateY(-50%);
  }
  .p-sidesns01__list--link {
    margin: 0px 0 12px;
  }
  .p-sidesns01__list--link span {
    position: relative;
    display: inline-block;
  }
  .p-sidesns01__list--link span:after {
    position: absolute;
    bottom: 6px;
    right: -5px;
    width: 1px;
    height: 92%;
    background-color: #000;
    content: '';
    transform: scaleY(0);
    transform-origin: left;
    z-index: 1;
    transition: transform 1.5s cubic-bezier(0.075, 0.82, 0.165, 1);
  }
  .p-sidesns01__list--link.act span:after {
    transform: scaleY(1);
  }
  .p-sidesns01__list--link img {
    position: relative;
    left: 1px;
    width: 7px;
  }
  .p-sidesns01__list--sns img {
    width: 10px;
  }
  .p-sidesns01__list--copy img {
    position: relative;
    top: 20px;
    left: 2px;
    width: 5px;
  }
  .p-sidesns01 .p-pagetop {
    position: fixed;
    z-index: 2;
    bottom: 10px;
    left: 7px;
  }
  .p-sidesns01 .p-pagetop img {
    width: 20px;
  }
  .p-sidesns01__list--copy{
  	margin-top: 15px;
  }
}

@media screen and (min-width: 768px), print {
  .p-sidesns01 {
    height: 100vh;
    width: 30px;
    left: 30px;
	top: 0;
  }
  .p-sidesns01__list {
    height: 100px;
    position: absolute;
    top: 50%;
    transform: translateY(-50%);
  }
  .p-sidesns01__list li img {
    width: 12px;
  }
}

.p-sideblock {
  position: fixed;
  z-index: 2;
}

@media screen and (max-width: 767px) {
  .p-sideblock {
    margin: 60px 0 0;
  }
}

@media screen and (min-width: 768px), print {
  .p-sideblock {
    height: 100vh;
    width: 30px;
    right: 15px;
  }
  .p-sideblock__copy {
    position: fixed;
    top: 50%;
    transform: translateY(-50%);
    writing-mode: sideways-rl;
    font-size: 13px;
  }
  .p-sideblock .p-pagetop {
    position: fixed;
    z-index: 2;
    bottom: 30px;
    right: 27px;
  }
  .p-sideblock .p-pagetop img {
    width: 30px;
  }
}

.p-workslist01__more {
  opacity: 0;
  z-index: 2;
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  transition: all 1s cubic-bezier(0.075, 0.82, 0.165, 1);
}

.p-workslist01__more span {
  z-index: 2;
  color: #fff;
  display: block;
  position: absolute;
  font-size: 10px;
  font-family: "Outfit", system-ui;
  font-optical-sizing: auto;
  font-weight: 200;
  font-style: normal;
  letter-spacing: 0.04em;
  width: 100%;
  text-align: center;
  top: 50%;
  left: 50%;
  transform: translate(-50%, -50%);
}

.p-workslist01__more:after {
  content: "";
  background: #000;
  display: block;
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  transition: transform 1s cubic-bezier(0.075, 0.82, 0.165, 1);
}

.p-workslist01__photowrap {
  position: relative;
}

.p-workslist01__photo img {
  display: block;
}

.p-workslist01__txt {
  margin: 10px 0 0;
  font-size: 11px;
    font-family: "Zen Kaku Gothic New", sans-serif;
  font-weight: 400;
  font-style: normal;
}

.p-workslist01__list li {
  position: relative;
  margin: 0 0 30px;
}

.p-workslist01__list a:hover .p-workslist01__more {
  opacity: 1;
}

.p-workslist01__list a:hover .p-workslist01__more:after {
  opacity: 0.6;
}

@media screen and (max-width: 767px) {
  .p-workslist01__list li {
    margin: 0 0 30px 1.6vw;
  }
}

@media screen and (min-width: 768px), print {
  .p-workslist01__list {
    display: flex;
    justify-content: space-between;
    flex-wrap: wrap;
  }
  .p-workslist01__list:after {
    content: "";
    display: block;
    width: 31.5%;
  }
  .p-workslist01__list li {
    width: 31.5%;
    margin: 0 0 60px;
  }
  .p-workslist01__txt {
    line-height: 2;
    font-size: 13px;
  }
  .p-workslist01__more span {
    font-size: 13px;
  }
}

.p-projectpage01 {
  position: relative;
  text-align: center;
}

.p-projectpage01__close {
  display: block;
  position: absolute;
  top: -5px;
  right: -5px;
  transform: scale(1) translate3d(0, 0, 0);
  transition: all 1s cubic-bezier(0.075, 0.82, 0.165, 1);
}

.p-projectpage01__close:hover {
  transform: scale(1.2) translate3d(0, 0, 0);
}

.p-projectpage01__tit {
  font-size: 12px;
    font-family: "Zen Kaku Gothic New", sans-serif;
  font-weight: 400;
  font-style: normal;
}

.p-projectpage01__btn {
  font-size: 10px;
  font-family: "Outfit", system-ui;
  font-optical-sizing: auto;
  font-weight: 200;
  font-style: normal;
  letter-spacing: 0.04em;
  line-height: 1.7;
  border: 1px solid;
  display: inline-block;
  padding: 0 8px;
  transition: all 1s cubic-bezier(0.075, 0.82, 0.165, 1);
}

.p-projectpage01__btn:hover {
  background: #000;
  color: #fff;
  border: 1px solid #000;
}

@media screen and (max-width: 767px) {
  .p-projectpage01 {
    padding: 20px 0 30px;
  }
  .p-projectpage01__btn {
    margin: 10px auto 0px;
  }
  .p-projectpage01__close {
    width: 20px;
    top: -3px;
    right: -3px;
  }
}

@media screen and (min-width: 768px), print {
  .p-projectpage01 {
    padding: 0 0 40px;
  }
  .p-projectpage01__tit {
    font-size: 13px;
  }
  .p-projectpage01__btn {
    position: absolute;
    display: block;
    left: 0;
    top: 0;
    font-size: 12px;
  }
  .p-projectpage01__btn img {
    max-width: none;
  }
  .p-projectpage01__close {
    top: 0;
    right: -20px;
  }
}

.p-tile-wrap {
  -moz-column-count: 2;
       column-count: 2;
  /* スマホでの横並び数 */
  -moz-column-gap: 20px;
       column-gap: 20px;
  /* アイテム間の余白 */
}

@media screen and (min-width: 768px), print {
  .p-tile-wrap {
    -moz-column-count: 4;
         column-count: 4;
    /* 指定サイズ以上の画面幅(タブレット, パソコンなど)の並び数 */
    -moz-column-gap: 40px;
         column-gap: 40px;
  }
}

.p-tile {
  page-break-inside: avoid;
  -moz-column-break-inside: avoid;
       break-inside: avoid;
  display: inline-block;
  width: 100%;
  margin: 0 0 10px;
}

.p-tile img {
  display: block;
  width: 100%;
}

@media screen and (min-width: 768px), print {
  .p-tile {
    margin: 0 0 30px;
  }
}

.p-works-side {
  position: fixed;
  top: 100px;
  z-index: 10;
  overflow-y: auto;
  width: 130px;
  height: auto;
  max-height: 550px;
  padding: 0 0 0px 0px;
}

.p-works-side:after {
  content: "";
  display: block;
  position: absolute;
  top: 0px;
  left: 1px;
  height: 100%;
  width: 1px;
  background: #DEDEDE;
  z-index: -1;
}

.p-works-side:before {
  content: "";
  display: block;
  position: absolute;
  top: 0px;
  left: 1px;
  height: 14px;
  width: 1px;
  background: #EFEFEF;
  z-index: 10;
}

.p-works-side li {
  position: relative;
  padding: 0px 0 2px 12px;
  overflow: hidden;
  /*
		&:after{
			content : "";
			display : block;
			position: absolute;
			top : 50%;
			margin : 3px 0 0;
			left : -11px;
			height : 33px;
			width : 1px;
			background: #BEBEBE;
			z-index : -1;
		}
		*/
}

.p-works-side li:before {
  content: "";
  width: 3px;
  height: 3px;
  position: absolute;
  top: 14px;
  left: 0px;
  background: #BEBEBE;
  transition: 0.2s linear;
  z-index: 2;
}

.p-works-side li:first-of-type:after {
  content: "";
  display: block;
  position: absolute;
  top: 4px;
  left: 1px;
  height: 10px;
  width: 1px;
  background: #EFEFEF;
  z-index: 2;
}

.p-works-side li:last-of-type:after {
  content: "";
  display: block;
  position: absolute;
  top: 17px;
  left: 1px;
  height: 40px;
  width: 1px;
  background: #EFEFEF;
  z-index: 2;
}

.p-works-side li a {
  position: relative;
  font-size: 10px;
  line-height: 1.6;
  font-family: "Outfit", system-ui;
  font-optical-sizing: auto;
  font-weight: 200;
  font-style: normal;
  letter-spacing: 0.04em;
  color: #BEBEBE;
  transition: 0.2s linear;
}

.p-works-side li a .sub {
  position: relative;
  top: -6px;
}

.p-works-side li.act:first-of-type:after {
  content: "";
  display: block;
  position: absolute;
  top: 3px;
  left: 2px;
  height: 10px;
  width: 1px;
  background: #EFEFEF;
  z-index: 2;
}

.p-works-side li.act:last-of-type:after {
  content: "";
  display: block;
  position: absolute;
  top: 16px;
  left: 1px;
  height: 100px;
  width: 1px;
  background: #EFEFEF;
  z-index: 2;
}

.p-works-side li.act:before {
  content: "";
  width: 3px;
  height: 3px;
  position: absolute;
  top: 13px;
  left: 0px;
  background: #BEBEBE;
  transition: 0.2s linear;
}

.p-works-side li.act a {
  font-size: 12px;
  color: #000;
}

.p-works-side li.act:before {
  background: #000;
}

@media screen and (min-width: 1600px), print {
  .p-works-side {
    position: fixed;
    top: 100px;
    left: 50%;
    margin: 0 0 0 -700px;
  }
}

.p-works01 {
  position: relative;
  z-index: 1;
}

.p-works01 .swiper-slide img {
  width: 100% !important;
}

.p-works01 .movie-wrap {
  position: relative;
  padding-bottom: 56.25%;
  /*アスペクト比 16:9の場合の縦幅*/
  height: 0;
  overflow: hidden;
}

.p-works01 .movie-wrap iframe {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
}

.p-works01__titwrap {
  position: relative;
  padding: 0 70px 10px 0;
  border-bottom: 1px solid;
}

.p-works01__btn {
  display: block;
  font-size: 10px;
  font-family: "Outfit", system-ui;
  font-optical-sizing: auto;
  font-weight: 200;
  font-style: normal;
  letter-spacing: 0.04em;
  position: absolute;
  right: 16px;
  top: 0;
  line-height: 1.6;
  color: #fff;
  background: #AAAAAA;
  transition: 0.2s linear;
  padding: 0 5px;
}

.p-works01__btn:hover {
  color: #aaa;
  background: #fff;
}

.p-works01__tit {
  font-size: 10px;
  line-height: 1.6;
    font-family: "Zen Kaku Gothic New", sans-serif;
  font-weight: 400;
  font-style: normal;
}

.p-works01__tit2 {
  font-size: 13px;
  line-height: 2;
  margin: 30px 0 0;
    font-family: "Zen Kaku Gothic New", sans-serif;
  font-weight: 700;
  font-style: normal;
}

.p-works01__txt {
    font-family: "Zen Kaku Gothic New", sans-serif;
  font-weight: 400;
  font-style: normal;
  font-size: 12px;
  line-height: 2;
}

.p-works01__txt p {
  line-height: 2.2;
  margin: 20px 0 0;
}

.p-works01__txt p:first-of-type {
  margin: 0;
}

.p-works01__txt p a {
  text-decoration: underline;
}

.p-works01__more {
  margin: 20px 0 0;
  display: block;
  text-align: center;
  font-size: 10px;
  font-family: "Outfit", system-ui;
  font-optical-sizing: auto;
  font-weight: 200;
  font-style: normal;
  letter-spacing: 0.04em;
  line-height: 2.4;
  color: #000;
  background: #EFEFEF;
  transition: 0.2s linear;
  padding: 0 10px;
  border: solid 1px;
}

.p-works01__more:hover {
  color: #EFEFEF;
  background: #000;
  border: solid 1px #000;
}

.p-works01-detail {
  margin: 25px 16px 60px 0;
}

.p-works01-itemwrap {
  margin: 30px 0 0;
  border-top: 1px solid #CDCDCD;
}

.p-works01-itemwrap.no {
  margin: 0px 0 0;
  border-top: none;
}

.p-works01-item {
  border-bottom: 1px solid #CDCDCD;
}

.p-works01-item__date {
  font-family: "Outfit", system-ui;
  font-optical-sizing: auto;
  font-weight: 200;
  font-style: normal;
  letter-spacing: 0.04em;
  font-size: 10px;
  line-height: 2;
  display: block;
  position: absolute;
  left: 0;
  top: 50%;
  margin: -11px 0 0;
  transition: 0.2s linear;
}

.p-works01-item__tit {
  font-size: 13px;
  line-height: 2;
  /*
			text-overflow: ellipsis;
			white-space: nowrap;
			overflow: hidden;
			*/
    font-family: "Zen Kaku Gothic New", sans-serif;
  font-weight: 700;
  font-style: normal;
}

.p-works01-item__txt {
    font-family: "Zen Kaku Gothic New", sans-serif;
  font-weight: 400;
  font-style: normal;
  margin: 20px 0 0;
  font-size: 12px;
  line-height: 2;
}

.p-works01-item__txt p {
  line-height: 2.2;
  margin: 20px 0 0;
}

.p-works01-item__txt p:first-of-type {
  margin: 0;
}

.p-works01-item__txt p a {
  text-decoration: underline;
}

.p-works01-item-box {
  padding: 28px 40px 28px 70px;
  position: relative;
}

.p-works01-item-box:before {
  opacity: 1;
  transition: all 0.5s;
}

.p-works01-item-box:before, .p-works01-item-box:after {
  content: '';
  display: block;
  width: 12px;
  height: 1px;
  border-radius: 0px;
  background: #000;
  position: absolute;
  right: 0;
  top: 50%;
  transform: translateY(-50%);
}

.p-works01-item-box:after {
  transform: translateY(-50%) rotate(90deg);
  transition: 0.5s;
}

.p-works01-item-box.act:after {
  transform: rotate(0);
  transition: 0.5s;
}

.p-works01-item-box.act:before {
  opacity: 0;
  transition: all 0.5s;
}

.p-works01-item-box.act .p-works01-item__tit {
  overflow: auto;
  text-overflow: inherit;
  white-space: normal;
}

.p-works01-item-box2 {
  padding: 0px 16px 30px 0;
}

@media screen and (max-width: 767px) {
  .p-works01 {
    /*margin : 0 26px 0 0;*/
    margin: 0 10px 0 0;
  }
  .p-works01__txt {
    margin: 20px 0 0;
  }
  .p-works01-item-box:before, .p-works01-item-box:after {
    right: 16px;
  }
  .p-works01-item__date {
    transform: scale(0.95);
  }
  .p-works01__more span {
    transform: scale(0.95);
  }
}

@media screen and (min-width: 768px), print {
  .p-works01 {
    position: relative;
    max-width: 1400px;
    padding: 3px 130px 0 140px;
    margin: 0 auto;
    overflow: hidden;
  }
  .p-works01__tit {
    font-size: 13px;
  }
  .p-works01__tit2 {
    margin: 45px 0 0;
    font-size: 15px;
  }
  .p-works01__titwrap {
    padding: 0 100px 30px 0;
  }
  .p-works01__btn {
    font-size: 12px;
    right: 5px;
    padding: 0 6px;
  }
  .p-works01__more {
    margin: 30px 0 0;
    float: right;
    font-size: 12px;
    line-height: 1.8;
  }
  .p-works01-detail {
    margin: 40px 0 100px;
    display: flex;
    justify-content: flex-start;
    position: relative;
    width: 100%;
  }
  .p-works01-detail--nophoto {
    display: block;
  }
  .p-works01-detail__photo {
    max-width: 420px;
    min-width: 420px;
    width: 50%;
    margin: 0 60px 0 0;
  }
  .p-works01-detail__txtwrap {
    width: 50%;
    position: relative;
    top: -8px;
  }
  .p-works01-detail__txtwrap.noimg {
    width: 100%;
  }
  .p-works01-item-box {
    cursor: pointer;
    padding: 40px 30px 40px 100px;
  }
  .p-works01-item__honbun {
    width: 100%;
    display: flex;
    justify-content: flex-start;
  }
  .p-works01-item__photo {
    width: 50%;
    max-width: 420px;
    min-width: 420px;
    margin: 0 60px 0 0;
  }
  .p-works01-item__txt {
    position: relative;
    top: -8px;
    margin: 0;
    width: 50%;
    font-size: 13px;
  }
  .p-works01-item__date {
    font-size: 13px;
    margin: -14px 0 0;
  }
  .p-works01-item__tit {
    font-size: 15px;
  }
  .p-works01-item-box2 {
    padding: 0px 0 55px;
  }
  .p-works01__txt {
    margin: 0;
    font-size: 13px;
  }
}

.p-thumbnail {
  margin: 10px 0 0;
}

@media screen and (min-width: 768px), print {
  .p-thumbnail {
    margin: 20px 0 0;
  }
}

.p-about-side {
  position: fixed;
  top: 100px;
  z-index: 10;
}

.p-about-side:after {
  content: "";
  display: block;
  position: absolute;
  top: 14px;
  left: -11px;
  height: 100%;
  width: 1px;
  background: #DEDEDE;
  z-index: -1;
}

.p-about-side li {
  position: relative;
  padding: 0px 0 4px;
  /*
		&:after{
			content : "";
			display : block;
			position: absolute;
			top : 50%;
			margin : 3px 0 0;
			left : -11px;
			height : 33px;
			width : 1px;
			background: #BEBEBE;
			z-index : -1;
		}
		*/
}

.p-about-side li:before {
  content: "";
  width: 3px;
  height: 3px;
  position: absolute;
  top: 13px;
  left: -12px;
  background: #BEBEBE;
  transition: 0.2s linear;
  z-index: 2;
}

.p-about-side li:first-of-type:after {
  content: "";
  display: block;
  position: absolute;
  top: 4px;
  left: -11px;
  height: 10px;
  width: 1px;
  background: #EFEFEF;
  z-index: 2;
}

.p-about-side li:last-of-type:after {
  content: "";
  display: block;
  position: absolute;
  top: 17px;
  left: -11px;
  height: 100px;
  width: 1px;
  background: #EFEFEF;
  z-index: 2;
}

.p-about-side li a {
  font-size: 10px;
  line-height: 2;
  font-family: "Outfit", system-ui;
  font-optical-sizing: auto;
  font-weight: 200;
  font-style: normal;
  letter-spacing: 0.04em;
  color: #BEBEBE;
  transition: 0.2s linear;
}

.p-about-side li.act:first-of-type:after {
  content: "";
  display: block;
  position: absolute;
  top: 3px;
  left: -11px;
  height: 10px;
  width: 1px;
  background: #EFEFEF;
  z-index: 2;
}

.p-about-side li.act:last-of-type:after {
  content: "";
  display: block;
  position: absolute;
  top: 18px;
  left: -11px;
  height: 100px;
  width: 1px;
  background: #EFEFEF;
  z-index: 2;
}

.p-about-side li.act:before {
  content: "";
  width: 3px;
  height: 3px;
  position: absolute;
  top: 13px;
  left: -12px;
  background: #BEBEBE;
  transition: 0.2s linear;
}

.p-about-side li.act a {
  font-size: 13px;
  color: #000;
}

.p-about-side li.act:before {
  background: #000;
}

@media screen and (min-width: 1600px), print {
  .p-about-side {
    position: fixed;
    top: 100px;
    left: 50%;
    margin: 0 0 0 -700px;
  }
}

.p-about01 {
  positon: relative;
  z-index: 1;
}

.p-about01 iframe {
  -moz-filter: grayscale(100%);
  -ms-filter: grayscale(100%);
  -o-filter: grayscale(100%);
  filter: grayscale(100%);
}

.p-about01__txt {
  font-size: 12px;
  line-height: 2;
}

.p-about01-prof__txt {
  font-size: 12px;
  line-height: 2;
    font-family: "Zen Kaku Gothic New", sans-serif;
  font-weight: 400;
  font-style: normal;
}

.p-about01-prof-jusho {
  margin: 20px 0 40px;
}

.p-about01-prof-jusho__tit {
  font-size: 12px;
  padding: 0 0 10px;
  border-bottom: solid 1px #D2D2D2;
    font-family: "Zen Kaku Gothic New", sans-serif;
  font-weight: 400;
  font-style: normal;
}

.p-about01-prof-jusho__list {
  margin: 20px 0 0;
}

.p-about01-prof-jusho__list li {
  margin: 3px 0 0;
}

.p-about01-prof-jusho__list li b {
  display: block;
  position: absolute;
  left: 0;
  font-size: 12px;
    font-family: "Zen Kaku Gothic New", sans-serif;
  font-weight: 400;
  font-style: normal;
  line-height: 2;
}

.p-about01-prof-jusho__list li p {
  display: block;
  font-size: 12px;
  padding: 0 0 0 45px;
  line-height: 2;
    font-family: "Zen Kaku Gothic New", sans-serif;
  font-weight: 400;
  font-style: normal;
}

.p-about01-prof-hitowrap {
  padding: 1px 0 50px;
}

.p-about01-prof-hito {
  display: flex;
  justify-content: flex-start;
  margin: 40px 0 20px;
}

.p-about01-prof-hito__photo {
  width: 40%;
  padding: 0 20px 0 0;
}

.p-about01-prof-hito__photo img {
  position: relative;
  top: 5px;
}

.p-about01-prof-hito__txt {
  width: 60%;
}

.p-about01-prof-hito__name--type01 {
  font-size: 12px;
  display: block;
    font-family: "Zen Kaku Gothic New", sans-serif;
  font-weight: 400;
  font-style: normal;
  line-height: 1.5;
}

.p-about01-prof-hito__name--type02 {
  font-size: 13px;
  display: block;
    font-family: "Zen Kaku Gothic New", sans-serif;
  font-weight: 700;
  font-style: normal;
  line-height: 2;
}

.p-about01-prof-hito__list {
  margin: 15px 0 0;
}

.p-about01-prof-hito__list li {
  position: relative;
}

.p-about01-prof-hito__list b {
  display: block;
  position: absolute;
  left: 0;
  font-size: 12px;
    font-family: "Zen Kaku Gothic New", sans-serif;
  font-weight: 400;
  font-style: normal;
  line-height: 2;
}

.p-about01-prof-hito__list p {
  display: block;
  font-size: 12px;
  padding: 0 0 0 45px;
  line-height: 2;
    font-family: "Zen Kaku Gothic New", sans-serif;
  font-weight: 400;
  font-style: normal;
}

@media screen and (max-width: 767px) {
  .p-about01-prof {
    padding: 0 30px 0 0;
  }
  .p-about01-prof__txt {
    margin: 10px 0 0;
  }
  .p-about01-prof iframe {
    margin: 20px 0 0;
    width: 100%;
  }
}

@media screen and (min-width: 768px), print {
  .p-about01 {
    position: relative;
    max-width: 1400px;
    padding: 4px 130px 0 130px;
    margin: 0 auto;
    overflow: hidden;
  }
  .p-about01 iframe {
    margin: 70px 0 0;
    width: 100%;
  }
  .p-about01-prof__first {
    margin: 30px 0 0;
    display: flex;
    justify-content: flex-start;
  }
  .p-about01-prof__photo {
    margin: 0 30px 0 0;
    position: relative;
    top: 5px;
  }
  .p-about01-prof__txt {
    margin: 0 0 0 30px;
    font-size: 13px;
    line-height: 2.1;
  }
  .p-about01-prof-jusho {
    margin: 50px 0 0;
  }
  .p-about01-prof-jusho__tit {
    font-size: 13px;
  }
  .p-about01-prof-jusho__listwrap {
    display: flex;
    justify-content: flex-start;
  }
  .p-about01-prof-jusho__list {
    margin: 20px 0px 0 0;
  }
  .p-about01-prof-jusho__list:first-of-type {
    margin: 20px 80px 0 0;
  }
  .p-about01-prof-jusho__list li {
    position: relative;
    margin: 1px 0 0;
  }
  .p-about01-prof-jusho__list li b {
    display: block;
    position: absolute;
    left: 0;
    font-size: 13px;
      font-family: "Zen Kaku Gothic New", sans-serif;
  font-weight: 400;
  font-style: normal;
  }
  .p-about01-prof-jusho__list li p {
    display: block;
    font-size: 13px;
    padding: 0 0 0 45px;
      font-family: "Zen Kaku Gothic New", sans-serif;
  font-weight: 400;
  font-style: normal;
  }
  .p-about01-prof-hitowrap {
    margin: 70px 0 50px;
    display: flex;
    justify-content: space-between;
    flex-wrap: wrap;
  }
  .p-about01-prof-hito {
    width: 48%;
    margin: 50px 0 30px;
  }
  .p-about01-prof-hito__name--type01 {
    font-size: 13px;
  }
  .p-about01-prof-hito__name--type02 {
    font-size: 15px;
  }
  .p-about01-prof-hito__txt {
    margin: 0 0 0 20px;
  }
  .p-about01-prof-hito__list {
    margin: 15px 0 0;
  }
  .p-about01-prof-hito__list li {
    position: relative;
  }
  .p-about01-prof-hito__list b {
    display: block;
    position: absolute;
    left: 0;
    font-size: 13px;
      font-family: "Zen Kaku Gothic New", sans-serif;
  font-weight: 400;
  font-style: normal;
  }
  .p-about01-prof-hito__list p {
    display: block;
    font-size: 13px;
    padding: 0 0 0 45px;
      font-family: "Zen Kaku Gothic New", sans-serif;
  font-weight: 400;
  font-style: normal;
  }
}

.p-about02 {
  padding: 15px 30px 0 0;
}

.p-about02__tit {
  text-align: center;
  font-size: 13px;
    font-family: "Zen Kaku Gothic New", sans-serif;
  font-weight: 700;
  font-style: normal;
  background: #D7D7D7;
  line-height: 2;
  display: block;
  padding: 18px 20px;
  letter-spacing: 0.1em;
}

.p-about02__txt {
  margin: 12px 0 0;
    font-family: "Zen Kaku Gothic New", sans-serif;
  font-weight: 400;
  font-style: normal;
  font-size: 12px;
  line-height: 2;
}

.p-about02__txt2 {
  margin: 15px 0 0;
  background: #fff;
  padding: 18px;
    font-family: "Zen Kaku Gothic New", sans-serif;
  font-weight: 400;
  font-style: normal;
}

@media screen and (max-width: 767px) {
  .p-about02__box:last-of-type .p-about02__txt:after {
    display: none;
  }
  .p-about02__txt {
    position: relative;
    padding: 0 0 70px;
  }
  .p-about02__txt:after {
    content: "";
    height: 40px;
    width: 1px;
    left: 50%;
    bottom: 15px;
    background: #000;
    position: absolute;
    display: block;
  }
}

@media screen and (min-width: 768px), print {
  .p-about02 {
    padding: 25px 0 100px;
  }
  .p-about02__box {
    display: flex;
    justify-content: flex-start;
    margin: 20px 0 0;
  }
  .p-about02__box:last-of-type .p-about02__titwrap:after {
    display: none;
  }
  .p-about02__titwrap {
    width: 40%;
    margin: 0 60px 0 0;
    padding: 0 0 70px;
    position: relative;
    overflow: hidden;
  }
  .p-about02__titwrap:after {
    content: "";
    height: 100%;
    width: 1px;
    left: 50%;
    bottom: 0px;
    background: #000;
    position: absolute;
    display: block;
    z-index: -1;
  }
  .p-about02__tit {
    font-size: 15px;
    padding: 10px 0;
    letter-spacing: 0.1em;
  }
  .p-about02__tit--type01 {
    padding: 30px 0;
  }
  .p-about02__tit--type02 {
    padding: 20px 0;
  }
  .p-about02__txt {
    width: 60%;
    padding: 0 0 40px;
    margin: 0;
    font-size: 13px;
  }
  .p-about02__txt2 {
    margin: 30px 0 0;
    padding: 25px;
    font-size: 13px;
  }
}

.p-contact01 {
  padding: 15px 30px 0 0;
}

.p-contact01 input[type="text"],
.p-contact01 input[type="email"],
.p-contact01 input[type="tel"] {
  width: 100%;
  background: #fff;
  -webkit-appearance: none;
  padding: 2px 0 2px 10px;
  border: none;
  font-size: 16px;
  letter-spacing: 0.1em;
  line-height: 2;
  border-radius: 0;
  border: none;
  outline: none;
    font-family: "Zen Kaku Gothic New", sans-serif;
  font-weight: 400;
  font-style: normal;
}

.p-contact01 button, .p-contact01 input, .p-contact01 select, .p-contact01 textarea {
  font-size: 16px;
    font-family: "Zen Kaku Gothic New", sans-serif;
  font-weight: 400;
  font-style: normal;
}

.p-contact01__box {
  margin: 15px 0 0;
}

.p-contact01__box dt {
  font-size: 10px;
  font-family: "Outfit", system-ui;
  font-optical-sizing: auto;
  font-weight: 200;
  font-style: normal;
  letter-spacing: 0.04em;
  line-height: 2;
  letter-spacing: 0.05em;
}

.p-contact01__box dd {
  line-height: 2;
}

.p-contact01__txt {
  font-size: 12px;
  line-height: 2;
    font-family: "Zen Kaku Gothic New", sans-serif;
  font-weight: 400;
  font-style: normal;
}

.p-contact01 textarea {
  width: 100%;
  background: #fff;
  -webkit-appearance: none;
  border-radius: 0;
  padding: 2px 0 2px 10px;
  border: none;
  font-size: 16px;
  letter-spacing: 0.1em;
  line-height: 2;
  border: none;
  outline: none;
  height: 210px;
  font-family: "Zen Kaku Gothic New", sans-serif;
  font-weight: 400;
  font-style: normal;
}

.p-contact01 button {
  border-radius: 0;
  -webkit-box-sizing: content-box;
  -webkit-appearance: button;
  -moz-appearance: button;
       appearance: button;
  border: none;
  box-sizing: border-box;
  cursor: pointer;
  text-transform: none;
  text-indent: 0px;
  text-shadow: none;
}

.p-contact01 .btn {
  overflow: hidden;
  display: block;
  width: 100%;
  margin: 30px auto;
  padding: 0 0;
  background: #EFEFEF;
  -webkit-appearance: none;
  border-radius: 0;
  line-height: 3;
  border: solid #000 1px;
  position: relative;
  color: #000;
  text-align: center;
  transition: 0.2s linear;
  font-size: 12px;
  z-index: 1;
  letter-spacing: 0.1em;
}

@media screen and (max-width: 767px) {
  .p-contact01__box dd {
    margin: 5px 0 0;
  }
}

@media screen and (min-width: 768px), print {
  .p-contact01 {
    margin: 18px 0 0;
  }
  .p-contact01__txt {
    font-size: 13px;
  }
  .p-contact01__boxwrap {
    width: 600px;
    margin: 80px auto;
  }
  .p-contact01__box {
    position: relative;
    margin: 40px 0 0;
  }
  .p-contact01__box dt {
    font-size: 13px;
    position: absolute;
    display: block;
    left: -90px;
    top: 3px;
  }
  .p-contact01 input[type="text"],
  .p-contact01 input[type="email"],
  .p-contact01 input[type="tel"] {
    font-size: 13px;
  }
  .p-contact01 textarea {
    height: 280px;
    font-size: 13px;
  }
  .p-contact01 .btn {
    width: 150px;
    line-height: 2.6;
  }
  .p-contact01 .btn span {
    font-size: 13px;
  }
  .p-contact01 .btn:hover {
    background: #000;
    color: #fff;
  }
}

.p-recruit01 {
  padding: 15px 30px 50px 0;
}

.p-recruit01__txt {
  font-size: 12px;
  line-height: 2;
    font-family: "Zen Kaku Gothic New", sans-serif;
  font-weight: 400;
  font-style: normal;
}

.p-recruit01__txt a {
  text-decoration: underline;
}

@media screen and (min-width: 768px), print {
  .p-recruit01 {
    margin: 18px 0 0;
    padding: 15px 0 80px 0;
  }
  .p-recruit01__txt {
    font-size: 13px;
  }
}

.u-about01 {
  border-top: 1px solid;
}

.u-about01__en {
  font-family: "Outfit", system-ui;
  font-optical-sizing: auto;
  font-weight: 200;
  font-style: normal;
  letter-spacing: 0.04em;
  font-size: 10px;
  line-height: 1;
  padding: 20px 0 0;
}

.u-about01__jp {
    font-family: "Zen Kaku Gothic New", sans-serif;
  font-weight: 700;
  font-style: normal;
  font-size: 13px;
  line-height: 1.5;
  display: block;
  padding: 10px 0 20px;
}

@media screen and (max-width: 767px) {
  .u-about01 {
    padding: 0 20px 0 0;
  }
  .u-about01__en {
    display: block;
  }
}

@media screen and (min-width: 768px), print {
  .u-about01__en {
    padding: 25px 0 0;
    font-size: 13px;
    display: block;
  }
  .u-about01__jp {
    font-size: 15px;
    line-height: 1.2;
    padding: 17px 0 20px;
  }
}

.u-tit01 {
  position: relative;
}

.u-tit01__en {
  font-family: "Outfit", system-ui;
  font-optical-sizing: auto;
  font-weight: 200;
  font-style: normal;
  font-size: 40px;
  color: #3071B4;
  position: relative;
}

.u-tit01__jp {
    font-family: "Zen Kaku Gothic New", sans-serif;
  font-weight: 700;
  font-style: normal;
  font-size: 12px;
  display: block;
}

@media screen and (max-width: 767px) {
  .u-tit01 {
    margin: 0 0 0 -25px;
    padding: 0 0 0 25px;
  }
  .u-tit01 svg {
    position: absolute;
    display: block;
    width: 10px;
    height: auto;
    left: 9px;
    top: 18px;
  }
}

@media screen and (min-width: 768px), print {
  .u-tit01__en {
    font-size: 72px;
    padding: 0 0 0 30px;
  }
  .u-tit01__jp {
    font-size: 18px;
    padding: 0 0 0 30px;
    letter-spacing: 0.1em;
  }
  .u-tit01 svg {
    position: absolute;
    display: block;
    width: 20px;
    height: auto;
    left: 0px;
    top: 33px;
  }
}

.p-pagination {
  margin: 60px auto 30px;
  position: relative;
}

.p-pagination-list {
  display: flex;
  justify-content: center;
}

.p-pagination-list__link {
  display: flex;
  justify-content: center;
  align-items: center;
  font-family: "Outfit", system-ui;
  font-optical-sizing: auto;
  font-weight: 200;
  font-style: normal;
  font-size: 20px;
  margin: 0 15px;
  letter-spacing: .1em;
}

.p-pagination-list__link.is-current {
  border-bottom: solid 2px;
}

.p-pagination__prev {
  font-family: "Noto Sans JP", sans-serif;
  font-weight: 500;
  font-size: 14px;
  letter-spacing: .1em;
  text-transform: uppercase;
  position: absolute;
  padding-left: 35px;
  left: 0;
  top: 0px;
}

.p-pagination__prev:before {
  content: "";
  display: block;
  width: 8px;
  height: 15px;
  top: 6px;
  left: 0;
  position: absolute;
  background: url("/assets/img/common/ico_arrow_left.svg") no-repeat center;
  background-size: contain;
}

.p-pagination__next {
  font-family: "Noto Sans JP", sans-serif;
  font-weight: 500;
  font-size: 14px;
  letter-spacing: .1em;
  text-transform: uppercase;
  position: absolute;
  padding-right: 35px;
  right: 0;
  top: 0px;
}

.p-pagination__next:before {
  content: "";
  display: block;
  width: 8px;
  height: 15px;
  top: 6px;
  right: 0;
  position: absolute;
  background: url(/assets/img/common/ico_arrow_right.svg) no-repeat center;
  background-size: contain;
}

@media screen and (max-width: 767px) {
  .p-pagination--detail {
    margin: 0;
  }
  .p-pagination--detail .p-pagination__prev {
    top: -60px;
    padding-left: 10px;
  }
  .p-pagination--detail .p-pagination__next {
    top: -60px;
    padding-right: 10px;
  }
  .p-pagination--detail .p-pagination__prev:before {
    top: 3px;
    left: -10px;
  }
  .p-pagination--detail .p-pagination__next:before {
    top: 3px;
    right: -10px;
  }
}

@media screen and (min-width: 768px), print {
  .p-pagination {
    width: 400px;
    margin: 100px auto 80px;
  }
  .p-pagination__prev:before {
    content: "";
    display: block;
    width: 16px;
    height: 17px;
    top: 2px;
    left: 0;
    position: absolute;
    transform: rotate(180deg);
    background: url("/assets/img/common/ico_arrow_right.svg") no-repeat center;
    background-size: contain;
  }
  .p-pagination__next:before {
    content: "";
    display: block;
    width: 16px;
    height: 17px;
    top: 2px;
    right: 0;
    position: absolute;
    background: url("/assets/img/common/ico_arrow_right.svg") no-repeat center;
    background-size: contain;
  }
  .p-pagination__prev {
    top: 10px;
    transition: 0.5s;
    font-size: 18px;
  }
  .p-pagination__prev:hover {
    left: -5px;
  }
  .p-pagination__next {
    top: 10px;
    transition: 0.5s;
    font-size: 18px;
  }
  .p-pagination__next:hover {
    right: -5px;
  }
  .p-pagination__list {
    width: 300px;
    margin: 0 auto;
    display: block;
  }
  .p-pagination-list__link {
    margin: 0 20px;
    font-size: 28px;
  }
  .p-pagination--detail {
    width: 1100px;
  }
  .p-pagination--detail .u-btn01 {
    position: relative;
    top: 70px;
    width: 460px;
  }
  .p-pagination--detail .u-btn01 svg {
    width: 15px;
    height: 15px;
  }
  .p-pagination--detail .p-pagination__prev:before {
    top: 6px;
  }
  .p-pagination--detail .p-pagination__next:before {
    top: 6px;
  }
}

.p-qa01__qa dt {
  position: relative;
}

.p-qa01__qa dt p {
    font-family: "Zen Kaku Gothic New", sans-serif;
  font-weight: 700;
  font-style: normal;
  line-height: 2;
}

.p-qa01__qa dt p::before,
.p-qa01__qa dt p::after {
  content: '';
  display: block;
  width: 15px;
  height: 1px;
  border-radius: 0px;
  background: #000;
  position: absolute;
  right: 0;
  top: 50%;
  transform: translateY(-50%);
}

.p-qa01__qa dt p::after {
  transform: translateY(-50%) rotate(90deg);
  transition: 0.5s;
}

.p-qa01__qa dt.act p::after {
  transform: rotate(0);
  transition: 0.5s;
}

.p-qa01__qa dd {
  position: relative;
}

.p-qa01__qa dd p {
    font-family: "Zen Kaku Gothic New", sans-serif;
  font-weight: 400;
  font-style: normal;
  line-height: 2;
}

@media screen and (max-width: 767px) {
  .p-qa01 {
    padding: 60px 32px 80px;
  }
  .p-qa01__inner {
    border-bottom: 1px solid #000000;
  }
  .p-qa01__qa {
    border-top: 1px solid #000000;
  }
  .p-qa01__qa dt:after {
    content: "";
    display: block;
    position: absolute;
    left: 0;
    top: 26px;
    width: 18px;
    height: 20px;
    margin: 2px 0 0 0;
    background: url("/assets/img/qa/ico_q.svg") no-repeat;
    background-size: contain;
  }
  .p-qa01__qa dt p {
    font-size: 13px;
    padding: 25px 25px 25px 40px;
  }
  .p-qa01__qa dd:after {
    content: "";
    display: block;
    position: absolute;
    left: 0;
    top: 0px;
    width: 18px;
    height: 20px;
    margin: 2px 0 0 0;
    background: url("/assets/img/qa/ico_a.svg") no-repeat;
    background-size: contain;
  }
  .p-qa01__qa dd p {
    font-size: 13px;
    padding: 0px 25px 25px 40px;
  }
}

@media screen and (min-width: 768px), print {
  .p-qa01 {
    padding: 0 0 100px;
  }
  .p-qa01__inner {
    width: 1100px;
    margin: 0 auto;
    border-bottom: 1px solid #000000;
  }
  .p-qa01__qa {
    border-top: 1px solid #000000;
  }
  .p-qa01__qa dt {
    cursor: pointer;
  }
  .p-qa01__qa dt:after {
    content: "";
    display: block;
    position: absolute;
    left: 0;
    top: 50%;
    width: 33px;
    height: 38px;
    margin: 2px 0 0 0;
    transform: translateY(-50%);
    background: url("/assets/img/qa/ico_q.svg") no-repeat;
    background-size: contain;
  }
  .p-qa01__qa dt p {
    font-size: 18px;
    padding: 62px 0 60px 75px;
  }
  .p-qa01__qa dt p {
      font-family: "Zen Kaku Gothic New", sans-serif;
  font-weight: 700;
  font-style: normal;
    line-height: 1.7;
  }
  .p-qa01__qa dt p::before,
  .p-qa01__qa dt p::after {
    content: '';
    display: block;
    width: 30px;
    height: 1px;
    border-radius: 0px;
    background: #000;
    position: absolute;
    right: 0;
    top: 50%;
    transform: translateY(-50%);
  }
  .p-qa01__qa dt p::after {
    transform: translateY(-50%) rotate(90deg);
    transition: 0.5s;
  }
  .p-qa01__qa dt.act p::after {
    transform: rotate(0);
    transition: 0.5s;
  }
  .p-qa01__qa dd:after {
    content: "";
    display: block;
    position: absolute;
    left: 0;
    top: 0px;
    width: 33px;
    height: 38px;
    margin: 2px 0 0 0;
    background: url("/assets/img/qa/ico_a.svg") no-repeat;
    background-size: contain;
  }
  .p-qa01__qa dd p {
    font-size: 16px;
    line-height: 2.2;
    padding: 0px 0 60px 75px;
  }
}

textarea::-moz-placeholder, input::-moz-placeholder {
  color: #C9C9C9;
}

textarea:-ms-input-placeholder, input:-ms-input-placeholder {
  color: #C9C9C9;
}

textarea::placeholder,
input::placeholder {
  color: #C9C9C9;
}

/* IE */
textarea:-ms-input-placeholder,
input:-ms-input-placeholder {
  color: #C9C9C9;
}

/* Edge */
textarea::-ms-input-placeholder,
input::-ms-input-placeholder {
  color: #C9C9C9;
}

.p-contact03 {
  /*
	.check::before {
		margin-top: -7px;
	}
	.check::before {
		content: "";
		display: block;
		width: 14px;
		height: 14px;
		background-size: 100% !important;
		position: absolute;
		top: 6px;
		left: 0;
		background: #fff;
	}
	.mwform-checkbox-field-text {
		position: relative;
		left: 10px;
	}
	*/
}

.p-contact03 select {
  background: #F6F6F6;
  -webkit-appearance: none;
  padding: 0px;
  border: 1px solid;
  font-size: 15px;
  letter-spacing: 0.1em;
  line-height: 2;
  width: 100%;
  height: 40px;
  padding: 0 0 0 20px;
}

.p-contact03 input[type="text"],
.p-contact03 input[type="email"],
.p-contact03 input[type="tel"] {
  width: 100%;
  background: #F6F6F6;
  -webkit-appearance: none;
  padding: 0 0 0 20px;
  /*
		height: 50px;
		width: 100%;
		*/
  border: 1px solid;
  font-size: 18px;
  letter-spacing: 0.1em;
  line-height: 2;
}

.p-contact03 input[type=checkbox] {
  display: inline-block;
  border: none;
}

.p-contact03 .mwform-checkbox-field label {
  position: relative;
}

.p-contact03 textarea {
  width: 100%;
  background: #F6F6F6;
  -webkit-appearance: none;
  padding: 20px;
  /*
		height: 50px;
		width: 100%;
		*/
  border: 1px solid;
  font-size: 18px;
  letter-spacing: 0.1em;
  line-height: 2;
}

.p-contact03__box {
  margin: 20px 0 0;
}

.p-contact03 dt {
  padding: 10px 0;
  font-size: 13px;
    font-family: "Zen Kaku Gothic New", sans-serif;
  font-weight: 700;
  font-style: normal;
  position: relative;
}

.p-contact03 .hissu {
  position: absolute;
  right: 0;
  top: 10px;
  background: #3071B4;
  color: #fff;
  font-size: 11px;
    font-family: "Zen Kaku Gothic New", sans-serif;
  font-weight: 700;
  font-style: normal;
  padding: 0 8px;
  line-height: 1.6;
  letter-spacing: 0.1em;
}

.p-contact03__privacybox {
  border: 1px solid;
  background: #F6F6F6;
  overflow-y: auto;
  height: 200px;
  padding: 15px 20px;
  font-size: 13px;
  line-height: 2;
  border-radius: 3px;
}

.p-contact03__btnwrap {
  border-top: 1px solid #E3E3E3;
  margin: 50px 0 0;
  padding: 30px 20px 0;
  text-align: center;
}

.p-contact03__privacy {
  font-size: 13px;
  word-break: break-all;
}

.p-contact03__privacy a {
  text-decoration: underline;
}

.p-contact03__privacy--tit {
  display: block;
  font-size: 13px;
  line-height: 1.8;
  padding: 30px 0 0;
}

.p-contact03__privacy--txt {
  padding: 10px 0 0;
  font-size: 13px;
  line-height: 1.8;
}

.p-contact03__privacy li {
  padding-left: 1em;
  text-indent: -1em;
}

@media screen and (max-width: 767px) {
  .p-contact03 {
    padding: 0px 30px;
  }
  .p-contact03__inner {
    border-top: 1px solid #E3E3E3;
    padding: 30px 0 70px;
  }
  .p-contact03__inner--nobo {
    border: none;
    padding: 0px 0 70px;
  }
  .p-contact03 input[type="text"],
  .p-contact03 input[type="email"],
  .p-contact03 input[type="tel"] {
    border-radius: 3px;
  }
  .p-contact03 select {
    border-radius: 3px;
  }
  .p-contact03 textarea {
    border-radius: 3px;
  }
  .p-contact03 .mwform-checkbox-field-text {
    font-size: 13px;
    padding: 0 0 0 10px;
    position: relative;
    line-height: 1;
    position: relative;
    top: -2px;
  }
  .p-contact03 .u-btn01 {
    margin: 30px 0 0;
  }
}

@media screen and (min-width: 768px), print {
  .p-contact03__inner {
    width: 1100px;
    margin: 100px auto;
    border-top: 1px solid #E3E3E3;
    padding: 20px 0 100px;
  }
  .p-contact03__inner--nobo {
    margin: 30px auto;
    border: none;
  }
  .p-contact03 .hissu {
    font-size: 13px;
    top: 14px;
  }
  .p-contact03 input[type="text"],
  .p-contact03 input[type="email"],
  .p-contact03 input[type="tel"] {
    width: 100%;
    padding: 7px 0 7px 20px;
    border-radius: 5px;
    /*
			height: 50px;
			width: 100%;
			*/
    border: 1px solid;
    font-size: 15px;
    letter-spacing: 0.1em;
    line-height: 2;
  }
  .p-contact03 select {
    height: 45px;
    border-radius: 5px;
    font-size: 15px;
  }
  .p-contact03 textarea {
    border-radius: 5px;
    font-size: 15px;
    height: 210px;
  }
  .p-contact03__privacybox {
    border-radius: 5px;
    font-size: 15px;
    padding: 20px 30px;
  }
  .p-contact03__box {
    margin: 50px 0 0;
    width: 850px;
    display: flex;
    justify-content: space-between;
  }
  .p-contact03__box dt {
    width: 230px;
    font-size: 16px;
  }
  .p-contact03__box dd {
    width: 600px;
  }
  .p-contact03__btnwrap {
    border-top: 1px solid #E3E3E3;
    margin: 50px 0 0;
    padding: 60px 20px 0;
    text-align: center;
  }
  .p-contact03 .mwform-checkbox-field-text {
    font-size: 16px;
  }
  .p-contact03 .u-btn01 {
    width: 464px;
    margin: 30px auto;
  }
}

body.is-show {
  overflow: hidden;
}

.grid {
  margin: 0 auto;
  width: 100%;
}

.grid-item img {
  display: inline-block;
  vertical-align: bottom;
}

@media screen and (max-width: 767px) {
  .grid {
    margin: 0;
  }
  .grid-item {
    width: 46%;
    margin: 0 2% 4%;
  }
}

@media screen and (min-width: 768px), print {
  .grid {
    width: 102%;
    margin: 0 -1%;
  }
  .grid-item {
    width: 23%;
    margin: 0 1% 2%;
  }
}

.p-loading {
  position: relative;
}

.p-loading__txt {
  font-family: "Outfit", system-ui;
  font-optical-sizing: auto;
  font-weight: 200;
  font-style: normal;
  letter-spacing: 0.04em;
  font-size: 13px;
  color: #1A1A1A;
  position: relative;
  top: 50px;
}

@media screen and (max-width: 767px) {
  .p-loading {
    text-align: center;
  }
}

@media screen and (min-width: 768px), print {
  .p-loading {
    text-align: center;
  }
}

.bt-spinner {
  width: 42px;
  height: 42px;
  left: 50%;
  position: absolute;
  margin: 0 0 0 -21px;
  border-radius: 50%;
  background-color: transparent;
  border: 2px solid #DCDCDC;
  border-top: 2px solid #000;
  -webkit-animation: 1s spin linear infinite;
  animation: 1s spin linear infinite;
}

@-webkit-keyframes spin {
  from {
    transform: rotate(0deg);
  }
  to {
    transform: rotate(360deg);
  }
}

@keyframes spin {
  from {
    transform: rotate(0deg);
  }
  to {
    transform: rotate(360deg);
  }
}

@media screen and (max-width: 767px) {
  .u-pc-only {
    display: none !important;
  }
}

@media screen and (min-width: 768px), print {
  .u-sm-only {
    display: none !important;
  }
}

.u-btn01 {
  display: block;
  width: 100%;
  background: #fff;
  border: solid #000 1px;
  border-radius: 7px;
  position: relative;
  color: #000;
  text-align: center;
  padding: 18px 0;
  transition: 0.5s linear;
  overflow: hidden;
  z-index: 2;
}

.u-btn01:after {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  background-color: #000;
  content: '';
  transform: scaleX(0);
  transform-origin: left;
  z-index: 1;
  transition: transform 0.3s linear;
}

.u-btn01:hover {
  color: #fff;
}

.u-btn01:hover:after {
  transform: scaleX(1);
}

.u-btn01:hover svg {
  right: 15px;
  fill: currentColor;
}

.u-btn01 > svg {
  display: block;
  position: absolute;
  right: 20px;
  top: 50%;
  margin: -6px 0 0;
  width: 7px;
  height: auto;
  transition: all 0.3s linear;
  z-index: 2;
}

.u-btn01 > svg > path {
  stroke: currentColor;
}

.u-btn01 span {
  font-size: 15px;
    font-family: "Zen Kaku Gothic New", sans-serif;
  font-weight: 700;
  font-style: normal;
  position: relative;
  z-index: 2;
}

@media screen and (max-width: 767px) {
  .u-btn01 span {
    position: relative;
    top: -2px;
  }
}

@media screen and (min-width: 768px), print {
  .u-btn01 {
    padding: 28px 0;
  }
  .u-btn01 span {
    font-size: 18px;
  }
  .u-btn01 > svg {
    display: block;
    position: absolute;
    right: 30px;
    top: 50%;
    margin: -5px 0 0;
    width: 8px;
    height: auto;
  }
  .u-btn01:hover svg {
    right: 25px;
    fill: currentColor;
  }
}

.u-btn02 {
  display: block;
  width: 100%;
  background: #3071B4;
  border: #3071B4 solid 1px;
  border-radius: 7px;
  position: relative;
  color: #fff;
  text-align: center;
  padding: 18px 0;
  transition: 0.5s linear;
  overflow: hidden;
  z-index: 2;
}

.u-btn02:after {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  background-color: #fff;
  content: '';
  transform: scaleX(0);
  transform-origin: left;
  z-index: 1;
  transition: transform 0.3s linear;
}

.u-btn02:hover {
  color: #3071B4;
}

.u-btn02:hover span {
  color: #3071B4;
}

.u-btn02:hover:after {
  transform: scaleX(1);
}

.u-btn02:hover svg {
  right: 12px;
}

.u-btn02 > svg {
  display: block;
  position: absolute;
  right: 15px;
  top: 50%;
  margin: -6px 0 0;
  width: 7px;
  height: auto;
  fill: currentColor;
  z-index: 3;
  transition: all 0.3s linear;
}

.u-btn02 > svg > path {
  stroke: currentColor;
}

.u-btn02 span {
  transition: 0.5s linear;
  letter-spacing: 0.1em;
  font-size: 15px;
    font-family: "Zen Kaku Gothic New", sans-serif;
  font-weight: 700;
  font-style: normal;
  z-index: 2;
  position: relative;
}

@media screen and (max-width: 767px) {
  .u-btn02 span {
    position: relative;
    top: -2px;
  }
}

@media screen and (min-width: 768px), print {
  .u-btn02 > svg {
    display: block;
    position: absolute;
    right: 30px;
    top: 50%;
    margin: -7px 0 0;
    width: 10px;
    height: auto;
    fill: currentColor;
  }
  .u-btn02:hover svg {
    right: 25px;
  }
}

.u-btn03 {
  display: block;
  width: 100%;
  border: solid 1px #000;
  border-radius: 7px;
  position: relative;
  color: #000;
  text-align: center;
  padding: 17px 0;
  transition: 0.5s linear;
  overflow: hidden;
  z-index: 2;
}

.u-btn03:after {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  background-color: #000;
  content: '';
  transform: scaleX(0);
  transform-origin: left;
  z-index: -1;
  transition: transform 0.3s linear;
  border-radius: 5px;
}

.u-btn03:hover {
  color: #fff;
}

.u-btn03:hover:after {
  transform: scaleX(1);
}

.u-btn03:hover svg {
  right: 12px;
}

.u-btn03 > svg {
  display: block;
  position: absolute;
  right: 15px;
  top: 50%;
  margin: -6px 0 0;
  width: 7px;
  height: auto;
  fill: currentColor;
  transition: all 0.3s linear;
}

.u-btn03 > svg > path {
  stroke: currentColor;
}

.u-btn03 span {
  font-size: 15px;
    font-family: "Zen Kaku Gothic New", sans-serif;
  font-weight: 700;
  font-style: normal;
}

@media screen and (max-width: 767px) {
  .u-btn03 span {
    position: relative;
    top: -2px;
  }
}

@media screen and (min-width: 768px), print {
  .u-btn03 {
    padding: 28px 0;
  }
  .u-btn03 span {
    font-size: 18px;
  }
  .u-btn03 > svg {
    display: block;
    position: absolute;
    right: 30px;
    top: 50%;
    margin: -6px 0 0;
    width: 8px;
    height: auto;
    fill: currentColor;
  }
  .u-btn03:hover svg {
    right: 25px;
  }
}

