@charset "UTF-8";
:root {
  --white: #fff;
  --black: #343434;
  --hover: #676767;
  --textgray: #4a4a4a;
  --border: #707070;
  --green: #45ACB3;
  --greenhover:#278E95;
  --orange: #E2A13B;
  --orangebg: #F5E2C3;
  --graybg: #f8f8f8;
  --graybg02: #f6f6f6;
  --ctabg: #2D2A28;
  --grad: linear-gradient(135deg, #0693EB 0%, #0655B2 100%);
  --gradbg: linear-gradient(0deg, rgba(216, 233, 255, 0.46) 0%, rgba(255, 255, 255, 0) 100%);
  --shadow: 0px 4px 15px rgba(3, 36, 58, 0.08);
  --shadow02: 0px 4px 15px rgba(0, 0, 0, 0.15);
  --sans: "Zen Kaku Gothic New", sans-serif;
  --contents: 1060px;
}

html {
  -moz-osx-font-smoothing: grayscale;
  -webkit-font-smoothing: antialiased;
  -webkit-text-size-adjust: 100%;
     -moz-text-size-adjust: 100%;
      -ms-text-size-adjust: 100%;
          text-size-adjust: 100%;
  scroll-behavior: smooth;
  scroll-padding-top: 80px;
}

body {
  color: var(--black);
  font-family: var(--sans), "Hiragino Kaku Gothic ProN", Meiryo, sans-serif;
  font-weight: 400;
  letter-spacing: 0.05em;
  line-height: 1.6;
  position: relative;
  overflow-x: hidden;
  -webkit-animation: fadeIn 1.2s ease-in-out -0.1s 1 normal;
          animation: fadeIn 1.2s ease-in-out -0.1s 1 normal;
}
body a {
  text-decoration: none;
}
body a,
body button,
body label {
  -webkit-tap-highlight-color: transparent;
}

@-webkit-keyframes fadeIn {
  0% {
    opacity: 0;
  }
  100% {
    opacity: 1;
  }
}

@keyframes fadeIn {
  0% {
    opacity: 0;
  }
  100% {
    opacity: 1;
  }
}
@media only screen and (max-width: 1024px) {
  [data-pc-only] {
    display: none !important;
  }
}

@media only screen and (min-width: 1025px) {
  [data-sp-only] {
    display: none !important;
  }
}

a[href^="tel:"] {
  color: inherit;
}
@media only screen and (min-width: 1025px) {
  a[href^="tel:"] {
    pointer-events: none;
    text-decoration: none;
  }
}

figure {
  margin-bottom: 0;
  margin-top: 0;
}

.js-fade-up {
  opacity: 0;
  -webkit-transform: translateY(10px);
          transform: translateY(10px);
  -webkit-transition: opacity 0.5s ease-in-out, -webkit-transform 0.5s ease-in-out;
  transition: opacity 0.5s ease-in-out, -webkit-transform 0.5s ease-in-out;
  transition: opacity 0.5s ease-in-out, transform 0.5s ease-in-out;
  transition: opacity 0.5s ease-in-out, transform 0.5s ease-in-out, -webkit-transform 0.5s ease-in-out;
}
.js-fade-up.visible {
  opacity: 1;
  -webkit-transform: translateY(0);
          transform: translateY(0);
}

.l-header {
  display: -webkit-box;
  display: -webkit-flex;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-align: center;
  -webkit-align-items: center;
      -ms-flex-align: center;
          align-items: center;
  position: absolute;
  top: 40px;
  left: 40px;
  z-index: 100;
  border-radius: 100px;
  -webkit-transition: all 0.1s ease;
  transition: all 0.1s ease;
}
@media only screen and (max-width: 1024px) {
  .l-header {
    top: 30px;
    left: 30px;
  }
}
.l-header .hamburger-wrap {
  opacity: 0;
  pointer-events: none;
  top: 10px;
  left: 8px;
  z-index: 1;
}
.l-header .g-nav {
  display: none;
}

.l-header__logo,
.l-header__nav {
  opacity: 1;
  -webkit-transition: all 0.6s ease-in-out;
  transition: all 0.6s ease-in-out;
}

.l-header.scroll {
  width: 70px;
  height: 70px;
  padding: 0;
  top: 40px;
  left: calc(100% - 78px);
  -webkit-transition: all 0.1s ease;
  transition: all 0.1s ease;
  -webkit-transform: translateX(-50%) scale(1);
          transform: translateX(-50%) scale(1);
}
.l-header.scroll:hover {
  width: 90px;
  height: 90px;
  -webkit-transform: translateX(-50%) scale(1.28);
          transform: translateX(-50%) scale(1.28);
  left: calc(100% - 80px);
  -webkit-transition: all 0.3s ease;
  transition: all 0.3s ease;
}
.l-header.scroll:hover .hamburger-wrap {
  width: 68px;
}
@media only screen and (max-width: 1024px) {
  .l-header.scroll {
    width: 60px;
    height: 60px;
    top: 18px;
    left: calc(100% - 53px);
  }
}
@media screen and (max-width: 768px) {
  .l-header.scroll {
    left: calc(100% - 49px);
    top: 13px;
  }
}
@media screen and (min-width: 1441px) {
  .l-header.scroll {
    left: calc(100% - 4.6875vw);
  }
}
.l-header.scroll .l-header__logo,
.l-header.scroll .l-header__nav {
  opacity: 0;
  -webkit-transition: all 0s ease-in-out;
  transition: all 0s ease-in-out;
}
.l-header.scroll .hamburger-wrap {
  opacity: 1;
  -webkit-transition: all 0.3s ease;
  transition: all 0.3s ease;
  pointer-events: inherit;
}

@media screen and (max-width: 768px) {
  .l-header__logo {
    position: relative;
    top: 3px;
  }
}

.l-header__logo img {
  width: 100%;
  width: 210px;
}
@media only screen and (max-width: 1024px) {
  .l-header__logo img {
    width: 164px;
  }
}

.l-header__nav {
  margin-left: auto;
}

.l-header__navLists {
  display: -webkit-box;
  display: -webkit-flex;
  display: -ms-flexbox;
  display: flex;
  gap: 54px;
}

.l-header__navList a {
  font-size: 14px;
  font-weight: 500;
  letter-spacing: 0.2em;
  white-space: nowrap;
  position: relative;
}

.l-header__navList a::after {
  position: absolute;
  left: 0;
  content: "";
  width: 100%;
  height: 1px;
  background: var(--black);
  bottom: -4px;
  -webkit-transform: scale(0, 1);
          transform: scale(0, 1);
  -webkit-transform-origin: right top;
          transform-origin: right top;
  -webkit-transition: -webkit-transform 0.3s;
  transition: -webkit-transform 0.3s;
  transition: transform 0.3s;
  transition: transform 0.3s, -webkit-transform 0.3s;
}

.l-header__navList a:hover::after {
  -webkit-transform: scale(1, 1);
          transform: scale(1, 1);
  -webkit-transform-origin: left top;
          transform-origin: left top;
}

.l-footer {
  background: #fff;
  padding: 120px 0;
}
@media only screen and (max-width: 1024px) {
  .l-footer {
    padding: 66px 0;
  }
}

.l-footer__logo {
  width: 180px;
  margin: auto;
}
@media only screen and (max-width: 1024px) {
  .l-footer__logo {
    width: 147px;
  }
}

.l-footer__logo img {
  width: 100%;
}

.c-section-inner {
  margin: auto;
  padding: 0 30px;
  max-width: var(--contents);
}

.c-section-inner--sub {
  max-width: calc(100% - 440px);
}
@media only screen and (max-width: 1024px) {
  .c-section-inner--sub {
    max-width: var(--contents);
  }
}

.c-section-title {
  font-size: 36px;
  font-weight: 400;
  line-height: 1.0111111111;
  letter-spacing: 0.2em;
}
@media only screen and (max-width: 1024px) {
  .c-section-title {
    font-size: 27px;
    letter-spacing: 0.2em;
    line-height: 1.6666666667;
  }
}
.c-section-title[data-title=works] {
  letter-spacing: 0.2em;
}
@media only screen and (max-width: 1024px) {
  .c-section-title[data-title=works] {
    font-size: 25px;
    line-height: 2;
    letter-spacing: 0.1em;
  }
}

.c-text {
  font-size: 16px;
  line-height: 2.5;
  letter-spacing: 0.05em;
}
@media only screen and (max-width: 1024px) {
  .c-text {
    font-size: 15px;
    letter-spacing: 0.1em;
    line-height: 2.6666666667;
  }
}

.c-hashText {
  font-size: 14px;
  line-height: 1.2;
  letter-spacing: 0.048em;
  margin-top: 24px;
}
@media only screen and (max-width: 1024px) {
  .c-hashText {
    line-height: 2;
    letter-spacing: 0.1em;
    margin-top: 0;
  }
}

.c-hashText--branding span + * {
  margin-left: 1em;
}
@media only screen and (max-width: 1024px) {
  .c-hashText--branding {
    margin-top: 10px;
  }
}

.c-section {
  margin-bottom: 224px;
}
@media only screen and (max-width: 1024px) {
  .c-section {
    margin-bottom: 66px;
  }
}

.c-sticky {
  position: -webkit-sticky;
  position: sticky;
  top: 80px;
  left: 0;
}

.p-fv {
  position: relative;
  height: 100svh;
}
.p-fv[data-section=other] {
  height: auto;
  padding-top: 270px;
}
@media only screen and (max-width: 1024px) {
  .p-fv[data-section=other] {
    padding-top: 170px;
  }
}
.p-fv[data-section=works] {
  height: auto;
  padding-top: 275px;
}
@media only screen and (max-width: 1024px) {
  .p-fv[data-section=works] {
    padding-top: 123px;
  }
}
.p-fv[data-section=confirm] {
  height: auto;
  padding-top: 120px;
}
@media only screen and (max-width: 1024px) {
  .p-fv[data-section=confirm] {
    padding-top: 60px;
  }
}

.p-fv__videoWrap {
  position: fixed;
  z-index: -1;
  top: 0;
  right: 0;
  left: 0;
  bottom: 0;
  overflow: hidden;
}

.p-fv__video {
  position: absolute;
  z-index: -1;
  top: 50%;
  left: 50%;
  -webkit-transform: translate(-50%, -50%);
          transform: translate(-50%, -50%);
  width: 177.77777778vh;
  height: 56.25vw;
  min-height: 100%;
  min-width: 100%;
}

.p-fv__copy {
  position: absolute;
  top: 50%;
  left: 50%;
  -webkit-transform: translateY(-50%) translateX(-50%);
          transform: translateY(-50%) translateX(-50%);
  font-size: 35px;
  letter-spacing: 0.26em;
}
@media only screen and (max-width: 1024px) {
  .p-fv__copy {
    font-size: 30px;
    width: 305px;
    letter-spacing: 0.1em;
    text-align: center;
    left: calc(50% + 0.3em);
  }
}

.p-fv__news {
  position: absolute;
  right: 40px;
  bottom: 40px;
}
@media screen and (max-width: 767px) {
  .p-fv__news {
    position: absolute;
    right: 50%;
    -webkit-transform: translateX(50%);
            transform: translateX(50%);
    width: 305px;
    bottom: 29px;
  }
}

.p-fv__news a {
  -webkit-transition: opacity 0.3s ease-in-out;
  transition: opacity 0.3s ease-in-out;
}

.p-fv__news a:hover {
  opacity: 0.5;
  -webkit-transition: opacity 0.3s ease-in-out;
  transition: opacity 0.3s ease-in-out;
}

.p-fv__newsText {
  letter-spacing: 0.05em;
  padding-left: 16px;
  position: relative;
}
@media only screen and (max-width: 1024px) {
  .p-fv__newsText {
    padding-left: 21px;
  }
}
.p-fv__newsText:before {
  content: "";
  position: absolute;
  height: calc(100% - 8px);
  width: 1px;
  background: var(--border);
  top: 4px;
  left: 0;
}
.p-fv__newsText dt {
  font-size: 15px;
  font-weight: 400;
  line-height: 2;
}
.p-fv__newsText dd {
  font-size: 13px;
  line-height: 2.3076923077;
}

.p-about {
  padding: 240px 0 250px;
}
@media only screen and (max-width: 1024px) {
  .p-about {
    padding: 121px 0 0;
  }
}

.p-about__text {
  font-size: 18px;
  line-height: 3.75;
}
.p-about__text span {
  display: inline-block;
}
@media screen and (max-width: 768px) {
  .p-about__text {
    font-size: 17px;
    line-height: 2.6666666667;
  }
}

.p-imageBox {
  width: 100%;
  overflow: hidden;
}
@media only screen and (max-width: 1024px) {
  .p-imageBox {
    height: auto;
  }
}

.p-imageBox img {
  width: 100%;
}

.p-service {
  padding: 0 0 300px;
  margin-top: 232px;
}
@media only screen and (max-width: 1024px) {
  .p-service {
    padding: 0 0 150px;
    margin-top: 150px;
  }
}

.p-service__flex {
  display: -webkit-box;
  display: -webkit-flex;
  display: -ms-flexbox;
  display: flex;
}
@media only screen and (max-width: 1024px) {
  .p-service__flex {
    display: block;
  }
}

.p-service__flex h2,
.p-service__lists {
  width: 49.5%;
}
@media only screen and (max-width: 1024px) {
  .p-service__flex h2,
  .p-service__lists {
    width: 100%;
  }
}

.p-service__flex h2 {
  line-height: 1.4;
}

@media only screen and (max-width: 1024px) {
  .p-service__lists {
    margin-top: 50px;
  }
}

.p-service__listTitle {
  font-size: 22px;
  line-height: 1.9;
  letter-spacing: 0.06em;
}
@media only screen and (max-width: 1024px) {
  .p-service__listTitle {
    font-size: 20px;
    letter-spacing: 0.1em;
  }
}

.p-service__list {
  position: relative;
}
@media only screen and (max-width: 1024px) {
  .p-service__list {
    padding-left: 15px;
  }
}

li.p-service__list:before {
  content: "";
  position: absolute;
  height: calc(100% - 16px);
  width: 1px;
  background: var(--border);
  top: 10px;
  left: -15px;
}
@media only screen and (max-width: 1024px) {
  li.p-service__list:before {
    left: 0;
  }
}

.p-service__list .c-text {
  margin-top: 2px;
}

.p-service__list + * {
  margin-top: 86px;
}
@media only screen and (max-width: 1024px) {
  .p-service__list + * {
    margin-top: 45px;
  }
}

.p-works[data-section=other] {
  padding-bottom: 200px;
}
@media only screen and (max-width: 1024px) {
  .p-works[data-section=other] {
    padding-bottom: 100px;
  }
}
.p-works[data-section=other] .p-works__figure figcaption {
  font-size: 20px;
  line-height: 2;
  margin-top: 6px;
}
@media only screen and (max-width: 1024px) {
  .p-works[data-section=other] .p-works__figure figcaption {
    margin-top: 10px;
    font-size: 15px;
  }
}

.p-works__figure figcaption {
  margin-top: 4px;
}
@media only screen and (max-width: 1024px) {
  .p-works__figure figcaption {
    line-height: 2;
    margin-top: 8px;
  }
}

.p-works__flex {
  display: -webkit-box;
  display: -webkit-flex;
  display: -ms-flexbox;
  display: flex;
}
@media only screen and (max-width: 1024px) {
  .p-works__flex {
    display: block;
  }
}

.p-works__textArea,
.p-works__links {
  width: 50%;
}
@media only screen and (max-width: 1024px) {
  .p-works__textArea,
  .p-works__links {
    width: 100%;
  }
}

@media only screen and (max-width: 1024px) {
  .p-works__links {
    margin-top: 50px;
  }
}

.p-works__figureLink {
  position: relative;
  overflow: hidden;
  display: block;
  border-radius: 20px;
  -webkit-transition: all 0.5s ease-in;
  transition: all 0.5s ease-in;
}

.p-works__figureLink .button[data-button=link] {
  position: absolute;
  top: 50%;
  left: 50%;
  -webkit-transform: translate(-50%, -50%);
          transform: translate(-50%, -50%);
  -webkit-transition: all 0.8s;
  transition: all 0.8s;
  opacity: 0;
}
@media only screen and (max-width: 1024px) {
  .p-works__figureLink .button[data-button=link] {
    opacity: 1;
  }
}

.p-works__figureLink:hover .button[data-button=link] {
  -webkit-transition: all 0.8s;
  transition: all 0.8s;
  background: var(--black);
  opacity: 1;
}

.p-works__figureLink img {
  -webkit-transition: all 0.5s ease-in;
  transition: all 0.5s ease-in;
}

.p-works__figureLink:hover img {
  -webkit-transform: scale(1.05);
          transform: scale(1.05);
  -webkit-transition: all 0.5s ease-in;
  transition: all 0.5s ease-in;
}

.p-works__figure img {
  width: 100%;
  border-radius: 20px;
  display: block;
}
@media only screen and (max-width: 1024px) {
  .p-works__figure img {
    height: auto;
    -o-object-fit: cover;
       object-fit: cover;
  }
}

@media only screen and (max-width: 1024px) {
  .p-works__figure[data-figure=works] img {
    height: auto;
  }
}

.p-works__figure + * {
  margin-top: 120px;
}
@media only screen and (max-width: 1024px) {
  .p-works__figure + * {
    margin-top: 50px;
  }
}

.p-works__text {
  margin-top: 40px;
  letter-spacing: 0.08em;
}
@media only screen and (max-width: 1024px) {
  .p-works__text {
    margin-top: 10px;
    letter-spacing: 0.1em;
  }
}

.p-works__linkWrap {
  margin-top: 35px;
  padding-left: 4px;
}
@media only screen and (max-width: 1024px) {
  .p-works__linkWrap {
    margin-top: 14px;
    padding-left: 0;
  }
}

.p-works__linkWrap a {
  display: inline-block;
  position: relative;
}
@media only screen and (max-width: 1024px) {
  .p-works__linkWrap a {
    font-size: 16px;
  }
}
.p-works__linkWrap a:before {
  content: "";
  position: absolute;
  left: 0;
  bottom: 3px;
  height: 1px;
  width: 100%;
  background: var(--black);
  -webkit-transform: scale(0, 1);
          transform: scale(0, 1);
  -webkit-transform-origin: right top;
          transform-origin: right top;
  -webkit-transition: -webkit-transform 0.3s;
  transition: -webkit-transform 0.3s;
  transition: transform 0.3s;
  transition: transform 0.3s, -webkit-transform 0.3s;
}
.p-works__linkWrap a:hover:before {
  -webkit-transform: scale(1, 1);
          transform: scale(1, 1);
  -webkit-transform-origin: left top;
          transform-origin: left top;
}
.p-works__linkWrap a:after {
  content: "";
  background: url(../../asset/images/arrow-bk.svg) no-repeat;
  background-size: contain;
  display: inline-block;
  width: 20px;
  height: 20px;
  vertical-align: middle;
  margin-left: 8px;
}

.p-company {
  margin-top: 300px;
}
@media only screen and (max-width: 1024px) {
  .p-company {
    margin-top: 150px;
  }
}

.p-company__details {
  margin-top: 46px;
}

.p-company__flexSection {
  display: -webkit-box;
  display: -webkit-flex;
  display: -ms-flexbox;
  display: flex;
  padding: 37px 0;
  gap: 130px;
  border-top: 1px solid var(--border);
}
@media only screen and (max-width: 1024px) {
  .p-company__flexSection {
    gap: 16px;
    -webkit-box-align: center;
    -webkit-align-items: center;
        -ms-flex-align: center;
            align-items: center;
    padding: 0;
  }
}
.p-company__flexSection:last-child {
  border-bottom: 1px solid var(--border);
}
.p-company__flexSection dt,
.p-company__flexSection dd {
  letter-spacing: 0.065em;
}
.p-company__flexSection dt {
  font-weight: normal;
  width: 80px;
  -webkit-flex-shrink: 0;
      -ms-flex-negative: 0;
          flex-shrink: 0;
}
@media only screen and (max-width: 1024px) {
  .p-company__flexSection dt {
    width: 70px;
    padding: 37px 0;
  }
}

.p-contact {
  margin-top: 300px;
}
@media only screen and (max-width: 1024px) {
  .p-contact {
    margin-top: 150px;
  }
}

.p-contact[data-section=confirm] {
  margin-top: 0;
}

.p-contact__text {
  margin-top: 30px;
}
@media only screen and (max-width: 1024px) {
  .p-contact__text {
    letter-spacing: 0.05em;
  }
}

.p-works-details {
  margin-top: 200px;
}
@media screen and (max-width: 768px) {
  .p-works-details {
    margin-top: 100px;
  }
}

.p-works-details__flex {
  display: -webkit-box;
  display: -webkit-flex;
  display: -ms-flexbox;
  display: flex;
}
@media screen and (max-width: 768px) {
  .p-works-details__flex {
    -webkit-box-orient: vertical;
    -webkit-box-direction: reverse;
    -webkit-flex-direction: column-reverse;
        -ms-flex-direction: column-reverse;
            flex-direction: column-reverse;
  }
}

.p-works-details__text {
  margin-top: 22px;
}
@media only screen and (max-width: 1024px) {
  .p-works-details__text {
    margin-top: 35px;
  }
}

.p-works-details__textArea {
  margin-right: 50px;
  width: 652px;
  margin-top: -10px;
}
@media only screen and (max-width: 1024px) {
  .p-works-details__textArea {
    width: 100%;
    margin-top: 0;
  }
}
@media screen and (max-width: 768px) {
  .p-works-details__textArea {
    margin-right: 0;
    margin-top: 90px;
  }
}

.p-works-details__title {
  width: 100%;
  white-space: nowrap;
  line-height: 1.9444444444;
}
@media only screen and (max-width: 1024px) {
  .p-works-details__title {
    white-space: normal;
  }
}

.p-works-details__details {
  padding-left: 50px;
  -webkit-flex-shrink: 0;
      -ms-flex-negative: 0;
          flex-shrink: 0;
  border-left: 1px solid var(--border);
}
@media screen and (max-width: 768px) {
  .p-works-details__details {
    padding-left: 24px;
  }
}

.p-works-details__detail dt {
  font-size: 12px;
  font-weight: 400;
}
.p-works-details__detail dd {
  margin-top: 8px;
  font-size: 14px;
  line-height: 2.1428571429;
}
@media only screen and (max-width: 1024px) {
  .p-works-details__detail dd {
    letter-spacing: 0.09em;
  }
}

.p-works-details__detail + * {
  margin-top: 45px;
}

.p-pamphlet-image {
  margin-top: 140px;
  padding-bottom: 200px;
}
@media screen and (max-width: 768px) {
  .p-pamphlet-image {
    margin-top: 40px;
    padding-bottom: 100px;
  }
}

.p-pamphlet-image__grid {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 40px;
}
@media screen and (max-width: 768px) {
  .p-pamphlet-image__grid {
    display: block;
  }
}

.p-pamphlet-image__work img {
  width: 100%;
}

@media screen and (max-width: 768px) {
  .p-pamphlet-image__work + * {
    margin-top: 30px;
  }
}

.p-video {
  margin-top: 150px;
  padding-bottom: 200px;
}
@media only screen and (max-width: 1024px) {
  .p-video {
    margin-top: 50px;
    padding-bottom: 100px;
  }
}

.p-video[data-video=branding] {
  margin-top: 150px;
}
@media only screen and (max-width: 1024px) {
  .p-video[data-video=branding] {
    margin-top: 41px;
  }
}

.p-video__wrap[data-wrap=branding] {
  margin-top: 150px;
}
@media only screen and (max-width: 1024px) {
  .p-video__wrap[data-wrap=branding] {
    margin-top: 50px;
  }
}

.p-video__movie {
  border-radius: 20px;
  width: 100%;
}

.p-video__ph img {
  width: 100%;
}

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

.u-sp-only {
  display: none;
}
@media screen and (max-width: 768px) {
  .u-sp-only {
    display: block;
  }
}

.u-space {
  margin-left: 1em;
}

.button {
  color: #fff;
  line-height: 1.5;
  letter-spacing: 0.056em;
  text-align: center;
  font-weight: 400;
  width: 286px;
  background: var(--black);
  display: inline-block;
  position: relative;
  -webkit-transition: all 0.5s;
  transition: all 0.5s;
  padding: 18px 8px;
  border-radius: 100px;
}
@media only screen and (max-width: 1024px) {
  .button {
    padding: 19px 8px;
    line-height: 1.4;
    letter-spacing: 0.01em;
    font-size: 15px;
  }
}
.button:hover {
  -webkit-transition: all 0.5s;
  transition: all 0.5s;
  background: var(--hover);
}
.button span {
  display: inline-block;
  -webkit-transition: -webkit-transform 0.5s;
  transition: -webkit-transform 0.5s;
  transition: transform 0.5s;
  transition: transform 0.5s, -webkit-transform 0.5s;
}
.button:hover span {
  -webkit-transform: scale(1.1);
          transform: scale(1.1);
}

.button[data-button=back] {
  font-size: 18px;
  padding: 15px 8px;
}
@media only screen and (max-width: 1024px) {
  .button[data-button=back] {
    font-size: 16px;
    padding: 18px 8px;
  }
}

.button[data-button=link] {
  width: 135px;
  height: 135px;
  font-size: 16px;
  line-height: 1;
  display: -webkit-box;
  display: -webkit-flex;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-orient: vertical;
  -webkit-box-direction: normal;
  -webkit-flex-direction: column;
      -ms-flex-direction: column;
          flex-direction: column;
  -webkit-box-pack: center;
  -webkit-justify-content: center;
      -ms-flex-pack: center;
          justify-content: center;
  font-weight: 500;
  position: relative;
}
@media only screen and (max-width: 1024px) {
  .button[data-button=link] {
    font-size: 13px;
    line-height: 2.5384615385;
    letter-spacing: 0.065em;
    width: 100px;
    height: 100px;
  }
}
.button[data-button=link] span {
  position: relative;
  top: -9px;
}
@media only screen and (max-width: 1024px) {
  .button[data-button=link] span {
    top: -5px;
  }
}
.button[data-button=link]:after {
  content: "";
  background: url(../../asset/images/arrow.svg) no-repeat;
  background-size: contain;
  width: 20px;
  height: 14px;
  position: absolute;
  top: calc(50% + 23px);
  left: 50%;
  -webkit-transform: translate(-50%, -50%);
          transform: translate(-50%, -50%);
  -webkit-transition: all 0.3s;
  transition: all 0.3s;
}
@media only screen and (max-width: 1024px) {
  .button[data-button=link]:after {
    top: calc(50% + 20px);
  }
}
.button[data-button=link]:hover:after {
  -webkit-transition: all 0.3s;
  transition: all 0.3s;
}

.button[data-button=confirm] {
  background: #fff;
  border: 1px solid var(--black);
  color: var(--black);
}
.button[data-button=confirm]:hover {
  background: var(--hover);
  color: #fff;
}

.buttonWrap {
  margin-top: 200px;
}
@media only screen and (max-width: 1024px) {
  .buttonWrap {
    margin-top: 100px;
  }
}

.buttonWrap[data-button=works] {
  margin-top: 150px;
}
@media only screen and (max-width: 1024px) {
  .buttonWrap[data-button=works] {
    margin-top: 100px;
  }
}

.buttonWrap--center {
  text-align: center;
}

.buttonWrap--contact {
  margin-top: 100px;
  margin-bottom: 300px;
}
@media only screen and (max-width: 1024px) {
  .buttonWrap--contact {
    margin-top: 44px;
    margin-bottom: 150px;
  }
}

.buttonWrap--confirm {
  margin-top: 30px;
}

.hamburger-wrap {
  position: fixed;
  z-index: 9999;
  top: 40px;
  right: 40px;
  cursor: pointer;
  width: 70px;
  height: 70px;
  background: #fff;
  border-radius: 100px;
  -webkit-transition: all 0.3s ease;
  transition: all 0.3s ease;
}
.hamburger-wrap.active {
  -webkit-transform: scale(1);
          transform: scale(1);
}
.hamburger-wrap.active:hover {
  -webkit-transform: scale(1);
          transform: scale(1);
}
@media (hover: hover) and (pointer: fine) {
  .hamburger-wrap:hover {
    -webkit-transform: scale(1.28);
            transform: scale(1.28);
    -webkit-transition: all 0.3s ease;
    transition: all 0.3s ease;
  }
}
@media only screen and (max-width: 1024px) {
  .hamburger-wrap {
    top: 21px;
    right: 28px;
    width: 60px;
    height: 60px;
  }
}

/*ボタン内側*/
.hamburger-wrap .hamburger-line {
  -webkit-transition: all 0.4s;
  transition: all 0.4s;
}

.hamburger-wrap span {
  display: inline-block;
  -webkit-transition: all 0.4s;
  transition: all 0.4s;
  position: absolute;
  left: 21px;
  height: 1px;
  background: var(--black);
  width: 28px;
  border-radius: 10px;
}
@media only screen and (max-width: 1024px) {
  .hamburger-wrap span {
    width: 24px;
    left: 18px;
  }
}

.hamburger-wrap span:nth-of-type(1) {
  top: 27px;
}
@media only screen and (max-width: 1024px) {
  .hamburger-wrap span:nth-of-type(1) {
    top: 21px;
  }
}

.hamburger-wrap span:nth-of-type(2) {
  top: 35px;
}
@media only screen and (max-width: 1024px) {
  .hamburger-wrap span:nth-of-type(2) {
    top: 30px;
  }
}

.hamburger-wrap span:nth-of-type(3) {
  top: 44px;
}
@media only screen and (max-width: 1024px) {
  .hamburger-wrap span:nth-of-type(3) {
    top: 39px;
  }
}

.hamburger-wrap.active span {
  width: 36px;
}
@media only screen and (max-width: 1024px) {
  .hamburger-wrap.active span {
    width: 24px;
  }
}

.hamburger-wrap.active span:nth-of-type(1) {
  top: 30px;
  -webkit-transform: translateY(6px) rotate(-45deg);
          transform: translateY(6px) rotate(-45deg);
}
@media only screen and (max-width: 1024px) {
  .hamburger-wrap.active span:nth-of-type(1) {
    top: 28px;
  }
}

.hamburger-wrap.active span:nth-of-type(2) {
  opacity: 0;
}

.hamburger-wrap.active span:nth-of-type(3) {
  top: 42px;
  -webkit-transform: translateY(-6px) rotate(45deg);
          transform: translateY(-6px) rotate(45deg);
}
@media only screen and (max-width: 1024px) {
  .hamburger-wrap.active span:nth-of-type(3) {
    top: 40px;
  }
}

.g-nav {
  position: fixed;
  z-index: -1;
  opacity: 0;
  top: 30px;
  right: 28px;
  width: 335px;
  height: 373px;
  background: #fff;
  border-radius: 45px;
  -webkit-transition: opacity 0.5s;
  transition: opacity 0.5s;
}
@media only screen and (max-width: 1024px) {
  .g-nav {
    top: 20px;
    right: 20px;
  }
}
@media screen and (max-width: 768px) {
  .g-nav {
    top: 12px;
    border-radius: 30px;
    right: 20px;
  }
}
@media screen and (max-width: 599px) {
  .g-nav {
    width: calc(100% - 40px);
  }
}

.g-nav.panelactive {
  opacity: 1;
  z-index: 999;
}

.g-nav-pc.g-nav.panelactive {
  z-index: 1;
}

.g-nav.panelactive .g-nav-list {
  position: fixed;
  z-index: 999;
  width: 100%;
  max-width: 335px;
  height: 100vh;
  overflow: auto;
  -webkit-overflow-scrolling: touch;
  padding: 16px 30px;
  padding-top: 45px;
  text-align: center;
}
@media screen and (max-width: 599px) {
  .g-nav.panelactive .g-nav-list {
    max-width: calc(100% - 40px);
  }
}

.g-nav-list img {
  width: 100%;
  display: block;
  max-width: 200px;
  margin: auto;
  margin-bottom: 32px;
}

.g-nav ul {
  display: none;
}

.g-nav.panelactive ul {
  display: block;
  width: -webkit-fit-content;
  width: -moz-fit-content;
  width: fit-content;
  text-align: left;
  margin: auto;
}

/*リストのレイアウト設定*/
.g-nav li .p-hamburger__navListChilds a {
  border-bottom: none;
  font-weight: 400;
}
.g-nav li .p-hamburger__navListChild:first-child a {
  padding-bottom: 10px;
}
.g-nav li .p-hamburger__navListChild:first-child a:before {
  top: calc(50% + 4px);
}
.g-nav li .p-hamburger__navListChild:last-child a {
  padding-top: 10px;
}
.g-nav li .p-hamburger__navListChild:last-child a:before {
  top: calc(50% - 4px);
}
.g-nav li .p-hamburger__navListChild:nth-child(2) a {
  padding-top: 10px;
  padding-bottom: 10px;
}

.g-nav li a {
  padding: 20px 0;
  display: inline-block;
  font-weight: 400;
  font-size: 18px;
}

.g-nav li .u-border-none {
  border-bottom: none;
}

.u-border-top {
  border-top: 1px solid rgba(236, 236, 236, 0.2);
}

.p-hamburger__navList a {
  position: relative;
}

.p-hamburger__navList a:before {
  content: "";
  background: url(../src/img/menu-arrow-wh.svg) no-repeat;
  background-size: contain;
  display: inline-block;
  width: 15px;
  height: 15px;
  position: absolute;
  right: 20px;
  top: 50%;
  -webkit-transform: translateY(-50%);
          transform: translateY(-50%);
}

.icon-toggle {
  position: absolute;
  right: 20px;
  top: 50%;
  -webkit-transform: translateY(-50%);
          transform: translateY(-50%);
  width: 14px;
  height: 14px;
  cursor: pointer;
}

.icon-toggle::before,
.icon-toggle::after {
  content: "";
  position: absolute;
  background-color: #fff;
  width: 100%;
  height: 2px;
  top: 50%;
  left: 0;
  -webkit-transition: all 0.3s;
  transition: all 0.3s;
}

.icon-toggle::before {
  -webkit-transform: translateY(-50%);
          transform: translateY(-50%);
}

.icon-toggle::after {
  -webkit-transform: translateY(-50%) rotate(90deg);
          transform: translateY(-50%) rotate(90deg);
  opacity: 1;
}

.icon-toggle.open::after {
  -webkit-transform: translateY(-50%) rotate(0deg);
          transform: translateY(-50%) rotate(0deg);
  opacity: 0;
}

.p-hamburger__navLists .l-header__navList {
  position: relative;
}
.p-hamburger__navLists .l-header__navList a:after {
  content: "";
  bottom: 16px;
}

.p-hamburger__navList {
  opacity: 0;
  -webkit-transform: translateX(-100%);
          transform: translateX(-100%);
  -webkit-transition: all 0.5s ease-in-out;
  transition: all 0.5s ease-in-out;
}

.no-scroll {
  overflow: hidden;
  height: 100%;
}

.disable-pointer-events {
  pointer-events: none;
}

.p-hamburger__buttonWrap {
  margin-top: 40px;
}
.p-hamburger__buttonWrap .button {
  width: 100%;
  max-width: 100%;
  padding: 14px;
  letter-spacing: 0.06em;
  font-size: 16px;
}

.mainblur {
  -webkit-filter: blur(3px);
          filter: blur(3px);
  background: rgba(219, 227, 232, 0.5);
  -webkit-animation: blur-anim 0.5s linear forwards;
          animation: blur-anim 0.5s linear forwards;
}

@-webkit-keyframes blur-anim {
  0% {
    -webkit-filter: blur(0px);
            filter: blur(0px);
  }
  100% {
    -webkit-filter: blur(10px);
            filter: blur(10px);
  }
}

@keyframes blur-anim {
  0% {
    -webkit-filter: blur(0px);
            filter: blur(0px);
  }
  100% {
    -webkit-filter: blur(10px);
            filter: blur(10px);
  }
}
.no-scroll {
  overflow: hidden;
  height: 100%;
}

input[type=text],
input[type=password],
input[type=email],
input[type=tel],
input[type=date],
input[type=number],
textarea {
  display: block;
  width: 100%;
  background: #fff;
  border-radius: 10px;
  padding: 14px 12px;
  margin: auto;
  resize: vertical;
}

textarea {
  height: 184px;
}

.formTable {
  width: 100%;
}

.formTable th,
.formTable td {
  width: 100%;
  display: block;
}

.formTable th {
  font-weight: 400;
  margin-top: 41px;
  letter-spacing: 0.05em;
}
@media only screen and (max-width: 1024px) {
  .formTable th {
    letter-spacing: 0.01em;
    font-size: 16px;
  }
}

.formTable tr:first-child th {
  margin-top: 56px;
}
@media only screen and (max-width: 1024px) {
  .formTable tr:first-child th {
    margin-top: 41px;
  }
}

.formTable td {
  margin-top: 10px;
}

.p-complete__message {
  text-align: center;
  font-size: 32px;
}
.p-complete__message span {
  display: block;
  font-size: 18px;
  margin-top: 12px;
}