@charset "utf-8";

/*

Theme Name: KURUMAZA
Author: kawamotojin
Description: KURUMAZAオリジナルテーマ
Version: 1.0

*/

:root {
  --font_ja: "Zen Kaku Gothic New", sans-serif;
  --font_en: "Montserrat", sans-serif;
  --txt14: clamp(1.4rem, 0.53vw + 1.19rem, 1.6rem); /* min393px-max767px */
  --txt16: clamp(1.6rem, 0.53vw + 1.39rem, 1.8rem); /* min393px-max767px */
  --txt20: clamp(2rem, 0.53vw + 1.79rem, 2.2rem); /* min393px-max767px */
  --txt22: clamp(2.2rem, 0.53vw + 1.99rem, 2.4rem); /* min393px-max767px */
  --color_txtblk: #000;
  --color_grn: #60c0bd;
  --color_gld: #a38a77;
  --color_brw: #655;
  --color_grey: #f7f5f5;
  --color_bggrd: linear-gradient(
    180deg,
    #75dfcc 13%,
    #5fc0c8 55%,
    #55a4ee 86%,
    #9694ff 100%
  );
  --color_bggrd85: linear-gradient(
    180deg,
    rgba(117, 223, 204, 0.85) 13%,
    rgba(95, 192, 200, 0.85) 55%,
    rgba(85, 164, 238, 0.85) 86%,
    rgba(150, 148, 255, 0.85) 100%
  );

  --color_btngrd: linear-gradient(
    270deg,
    rgba(150, 148, 243, 0.9) 0%,
    rgba(85, 164, 238, 0.9) 19%,
    rgba(95, 192, 200, 0.9) 62%,
    rgba(96, 192, 189, 0.9) 100%
  );
  --color_txtgrd: linear-gradient(
    90deg,
    #9694f3 0%,
    #55a4ee 30%,
    #5fc0c8 80%,
    #75dfcc 100%
  );
}

html {
  -webkit-text-size-adjust: 100%;
  font-size: 62.5%;
}

body {
  font-size: 1.4em;
}

body,
div,
dl,
dt,
dd,
ul,
ol,
li,
h1,
h2,
h3,
h4,
h5,
h6,
form,
input,
button,
p {
  margin: 0px;
  padding: 0px;
  font-family: var(--font_ja);
  font-weight: 500;
  font-style: normal;
  line-height: 100%;
  color: var(--color_txtblk);
  word-wrap: break-word;
  overflow-wrap: break-word;
  -webkit-box-sizing: border-box;
  box-sizing: border-box;
  word-break: break-all;
}

.bold {
  font-weight: bold;
}

.normal {
  font-weight: normal;
}

.red {
  color: red;
}

.blue {
  color: blue;
}

.white {
  color: #fff;
}

.fw400 {
  font-weight: 400;
}

.fw500 {
  font-weight: 500;
}

.fw600 {
  font-weight: 600;
}

.fw700 {
  font-weight: 700;
}

/*画像・動画*/

iframe {
  max-width: 100%;
}

.embed {
  position: relative;
  overflow: hidden;
}

.embed:after {
  display: block;
  content: "";
  padding-top: 50%;
}

.embed iframe {
  position: absolute;
  top: 0;
  left: 0;
  right: 0;
  margin: auto;
  max-width: inherit;
  width: 100%;
  height: 100%;
}

.map {
  position: relative;
  overflow: hidden;
}

.map:after {
  display: block;
  content: "";
  padding-top: 70%;
}

.map iframe {
  position: absolute;
  top: 0;
  left: 0;
  right: 0;
  margin: auto;
  max-width: inherit;
  width: 100%;
  height: 100%;
}

img {
  vertical-align: top;
  border: none;
  max-width: 100% !important;
  height: auto !important;
}

.pic {
  text-align: center;
}

.pic img {
  width: 100%;
}

/*ofiImg*/
.ofiImg img {
  -o-object-fit: cover;
  object-fit: cover;
  width: 100%;
  height: 100% !important;
  font-family: "object-fit: cover;";
  /*IE対策*/
}

.ofiImg.tc {
  position: absolute;
  top: 0;
  left: 50%;
  -webkit-transform: translate(-50%, 0);
  -ms-transform: translate(-50%, 0);
  transform: translate(-50%, 0);
  height: 100%;
  width: 100%;
}

.ofiImg.t60 {
  position: relative;
  padding-top: 60%;
  display: block;
}

.ofiImg.t60 img {
  position: absolute;
  top: 0;
  left: 50%;
  -webkit-transform: translate(-50%, 0);
  -ms-transform: translate(-50%, 0);
  transform: translate(-50%, 0);
  -o-object-position: top center;
  object-position: top center;
}

/*フレックス*/
.flex {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -ms-flex-wrap: wrap;
  flex-wrap: wrap;
}

.flexc {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -ms-flex-wrap: wrap;
  flex-wrap: wrap;
  -webkit-box-pack: center;
  -ms-flex-pack: center;
  justify-content: center;
}

.flexs {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -ms-flex-wrap: wrap;
  flex-wrap: wrap;
  -ms-flex-pack: distribute;
  justify-content: space-around;
}

.flexb {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -ms-flex-wrap: wrap;
  flex-wrap: wrap;
  -webkit-box-pack: justify;
  -ms-flex-pack: justify;
  justify-content: space-between;
}

.columnreverse {
  -webkit-box-orient: vertical;
  -webkit-box-direction: reverse;
  -ms-flex-direction: column-reverse;
  flex-direction: column-reverse;
}

.rowreverse {
  -webkit-box-orient: horizontal;
  -webkit-box-direction: reverse;
  -ms-flex-direction: row-reverse;
  flex-direction: row-reverse;
}

.aic {
  -webkit-box-align: center;
  -ms-flex-align: center;
  align-items: center;
}
.reverse {
  -webkit-box-orient: horizontal;
  -webkit-box-direction: reverse;
  -ms-flex-direction: row-reverse;
  flex-direction: row-reverse;
}

/*wrap*/
#wrapper {
  overflow: hidden;
  min-width: 320px;
  margin: 0 auto;
}

/*common*/
a {
  text-decoration: none;
  color: inherit;
  -webkit-tap-highlight-color: rgba(0, 0, 0, 0);
  -webkit-transition: -webkit-transform 0.2s;
  transition: -webkit-transform 0.2s;
  -o-transition: transform 0.2s;
  transition: transform 0.2s;
  transition: transform 0.2s, -webkit-transform 0.2s;

  &:active {
    -webkit-transform: scale(0.95);
    -ms-transform: scale(0.95);
    transform: scale(0.95);
  }
  &:hover {
    opacity: 0.6;
    color: inherit;
    text-decoration: none;
  }
}

a[href*="tel:"] {
  pointer-events: none;
}

ul,
li {
  list-style: none;
  text-align: left;
  padding: 0;
  margin: 0;
}

dl,
dt,
dd {
  text-align: left;
  padding: 0;
  margin: 0;
}

span {
  word-wrap: break-word;
  overflow-wrap: break-word;
  -webkit-box-sizing: border-box;
  box-sizing: border-box;
  word-break: break-all;
}

p {
  text-align: left;
}

.odd > *:nth-of-type(odd) {
  -webkit-box-orient: horizontal;
  -webkit-box-direction: reverse;
  -ms-flex-direction: row-reverse;
  flex-direction: row-reverse;
}

.even > *:nth-of-type(even) {
  -webkit-box-orient: horizontal;
  -webkit-box-direction: reverse;
  -ms-flex-direction: row-reverse;
  flex-direction: row-reverse;
}

.z1 {
  position: relative;
  z-index: 1;
}

.z2 {
  position: relative;
  z-index: 2;
}

.tac {
  text-align: center;
}

.tal {
  text-align: left;
}

.tar {
  text-align: right;
}
.dib {
  display: inline-block;
}
.sponly {
  display: none;
}
[class*="heightLine-"] {
  -webkit-box-sizing: content-box !important;
  box-sizing: content-box !important;
}

@media only screen and (max-width: 1024px) {
  a[href*="tel:"] {
    pointer-events: initial !important;
  }
}

@media only screen and (max-width: 767px) {
  .pconly {
    display: none;
  }
  .sponly {
    display: block;
  }
}

/*ここまでreset*/

/************animation**************/

/* scrollアニメーション */
@-webkit-keyframes scroll {
  0% {
    -webkit-transform: scale(1, 0);
    transform: scale(1, 0);
    -webkit-transform-origin: 0 0;
    transform-origin: 0 0;
  }
  50% {
    -webkit-transform: scale(1, 1);
    transform: scale(1, 1);
    -webkit-transform-origin: 0 0;
    transform-origin: 0 0;
  }
  51% {
    -webkit-transform: scale(1, 1);
    transform: scale(1, 1);
    -webkit-transform-origin: 0 100%;
    transform-origin: 0 100%;
  }
  100% {
    -webkit-transform: scale(1, 0);
    transform: scale(1, 0);
    -webkit-transform-origin: 0 100%;
    transform-origin: 0 100%;
  }
}
@keyframes scroll {
  0% {
    -webkit-transform: scale(1, 0);
    transform: scale(1, 0);
    -webkit-transform-origin: 0 0;
    transform-origin: 0 0;
  }
  50% {
    -webkit-transform: scale(1, 1);
    transform: scale(1, 1);
    -webkit-transform-origin: 0 0;
    transform-origin: 0 0;
  }
  51% {
    -webkit-transform: scale(1, 1);
    transform: scale(1, 1);
    -webkit-transform-origin: 0 100%;
    transform-origin: 0 100%;
  }
  100% {
    -webkit-transform: scale(1, 0);
    transform: scale(1, 0);
    -webkit-transform-origin: 0 100%;
    transform-origin: 0 100%;
  }
}

/* serivceローディングアニメーション */

@-webkit-keyframes spin {
  100% {
    -webkit-transform: rotate(360deg);
    transform: rotate(360deg);
  }
}

@keyframes spin {
  100% {
    -webkit-transform: rotate(360deg);
    transform: rotate(360deg);
  }
}

/* service03ラインアニメーション */
@-webkit-keyframes lineanim01 {
  0% {
    stroke-dashoffset: 1500px;
  }

  100% {
    stroke-dashoffset: 1220px;
  }
}

@keyframes lineanim01 {
  0% {
    stroke-dashoffset: 1500px;
  }

  100% {
    stroke-dashoffset: 1220px;
  }
}
@-webkit-keyframes lineanim02 {
  0% {
    stroke-dashoffset: 1220px;
  }

  100% {
    stroke-dashoffset: 900px;
  }
}
@keyframes lineanim02 {
  0% {
    stroke-dashoffset: 1220px;
  }

  100% {
    stroke-dashoffset: 900px;
  }
}
@-webkit-keyframes lineanim03 {
  0% {
    stroke-dashoffset: 900px;
  }

  100% {
    stroke-dashoffset: 450px;
  }
}
@keyframes lineanim03 {
  0% {
    stroke-dashoffset: 900px;
  }

  100% {
    stroke-dashoffset: 450px;
  }
}
@-webkit-keyframes lineanim04 {
  0% {
    stroke-dashoffset: 450px;
  }

  100% {
    stroke-dashoffset: 0px;
  }
}
@keyframes lineanim04 {
  0% {
    stroke-dashoffset: 450px;
  }

  100% {
    stroke-dashoffset: 0px;
  }
}

/************original**************/
.ja {
  font-family: var(--font_ja);
}
.jar {
  font-family: var(--font_ja);
  font-weight: 400;
}
.jab {
  font-family: var(--font_ja);
  font-weight: 700;
}
.en {
  font-family: var(--font_en);
  font-optical-sizing: auto;
  font-weight: 600;
  font-style: normal;
}
.txt {
  color: var(--color_txtblk);
  font-size: 1.4rem;
  line-height: 180%;
  letter-spacing: 0.08em;
}
.txt14 {
  color: var(--color_txtblk);
  font-size: var(--txt14);
  min-height: 0vw; /* Safari clamp関数対策 */
  line-height: 180%;
  letter-spacing: 0.08em;
}
.txt16 {
  color: var(--color_txtblk);
  font-size: var(--txt16);
  min-height: 0vw; /* Safari clamp関数対策 */
  line-height: 200%;
  letter-spacing: 0.03em;
}
.txt20 {
  color: var(--color_txtblk);
  font-size: var(--txt20);
  min-height: 0vw; /* Safari clamp関数対策 */
  line-height: 200%;
  letter-spacing: 0.04em;
}
.txt22 {
  color: var(--color_txtblk);
  font-size: var(--txt22);
  min-height: 0vw; /* Safari clamp関数対策 */
  line-height: 180%;
  letter-spacing: 0.03em;
}

.m1000 {
  width: min(90%, 69rem);
  margin: 0 auto;
  position: relative;
}
.areat {
  padding-top: clamp(6rem, 5.35vw + 3.9rem, 8rem);
  min-height: 0vw;
}
.titile_w {
  font-family: var(--font_en);
  font-size: clamp(2.6rem, 0.53vw + 2.39rem, 2.8rem); /* min393px-max767px */
  min-height: 0vw; /* Safari clamp関数対策 */
  line-height: 200%;
  letter-spacing: 0.03em;
  color: #fff;
}
.titile_b {
  display: inline-block;
  font-family: var(--font_en);
  font-size: clamp(2.6rem, 0.53vw + 2.39rem, 2.8rem); /* min393px-max767px */
  min-height: 0vw; /* Safari clamp関数対策 */
  line-height: 200%;
  letter-spacing: 0.03em;
  color: var(--color_txtblk);
  position: relative;
  padding: 0 1rem 0 2rem;
}
.h2box .line {
  -webkit-box-flex: 0;
  -ms-flex: 0;
  flex: 0;
  height: 0.1rem;
  background-color: var(--color_gld);
  -webkit-transition: all ease 1s;
  -o-transition: all ease 1s;
  transition: all ease 1s;
}
.h2box .line.on {
  -webkit-box-flex: 1;
  -ms-flex: 1;
  flex: 1;
}

.circlegrd {
  background: url(./images/bg_circlegrd.svg);
  background-repeat: no-repeat;
  background-size: 100% 100%;
  background-position: center;
}
.contactgrad {
  font-family: var(--font_en);
  font-size: clamp(1.8rem, 0.53vw + 1.59rem, 2rem); /* min393px-max767px */
  min-height: 0vw; /* Safari clamp関数対策 */
  line-height: 100%;
  letter-spacing: 0.03em;
  display: inline-block;
  background: var(--color_btngrd);
  color: #fff;
  padding: 1.5rem 6rem;
  border: 1px solid var(--color_gld);
  border-radius: 3rem;
  -webkit-box-sizing: border-box;
  box-sizing: border-box;
}

.tag {
  display: inline-block;
  color: var(--color_gld);
  font-size: clamp(1.2rem, 0.53vw + 0.99rem, 1.4rem); /* min393px-max767px */
  min-height: 0vw; /* Safari clamp関数対策 */
  letter-spacing: 0.08em;
  padding: 0.7rem;
  margin: 0 0.35rem 0.7rem;
  -webkit-box-sizing: border-box;
  box-sizing: border-box;
  background-color: rgba(255, 255, 255, 0.3);
  border-radius: 0.8rem;
  border: 1px solid var(--color_gld);
}
input,
textarea {
  cursor: pointer;

  &:focus-visible {
    outline: var(--color_gld) solid 0.2rem;
  }
}
.more {
  display: inline-block;
  color: var(--color_gld);
  padding-top: 1rem;
  cursor: pointer;
}
.more.arrow {
  & span {
    display: inline-block;
    padding-right: 2.6rem;
    position: relative;
    background-repeat: no-repeat;
    background-size: 1.6rem 1.6rem;
    background-position: right center;

    &:after {
      content: "";
      width: 1.6rem;
      height: 1.6rem;
      background-image: url(./images/arrow.svg);
      background-size: 100%;
      background-position: center;
      position: absolute;
      top: 50%;
      right: 0;
      -webkit-transform: translateY(-50%) rotate(90deg);
      -ms-transform: translateY(-50%) rotate(90deg);
      transform: translateY(-50%) rotate(90deg);
    }
  }
  & span.open {
    &:after {
      -webkit-transform: translateY(-50%) rotate(270deg);
      -ms-transform: translateY(-50%) rotate(270deg);
      transform: translateY(-50%) rotate(270deg);
    }
  }
}

.bganim {
  position: absolute;
  width: 100%;
  height: 100%;
  top: 0;
  left: 0;
  overflow: hidden;
  opacity: 0.6;

  & svg {
    width: 360%;
    height: auto;
    overflow: visible;
    position: absolute;
    top: 42%;
    left: 1rem;
    -webkit-transform: translate(0, -50%);
    -ms-transform: translate(0, -50%);
    transform: translate(0, -50%);

    #grdanim {
      -webkit-mask: url(#grdanimmask);
      mask: url(#grdanimmask);
    }

    #mask_line {
      stroke-dasharray: 1500px;
      stroke-dashoffset: 1240px;
      /* -webkit-animation: lineanim 20s;
      animation: lineanim 20s; */
    }
  }
}
.bganim02 {
  position: absolute;
  width: 100%;
  height: 100%;
  top: 0;
  left: 0;
  overflow: hidden;
  opacity: 0.2;

  & svg {
    width: auto;
    height: 90%;
    position: absolute;
    top: -3.5%;
    left: -15%;
    -webkit-transform: translateX(-50%);
    -ms-transform: translateX(-50%);
    transform: translateX(-50%);

    /* #grdanim {
      -webkit-mask: url(#grdanimmask);
      mask: url(#grdanimmask);
    }

    #mask_line {
      stroke-dasharray: 1500px;
      stroke-dashoffset: 1500px;
    } */
  }
}
video.pc {
  display: none;
}

/* slickのdotsカスタマイズ */
.dots_grd {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-pack: center;
  -ms-flex-pack: center;
  justify-content: center;
  margin-top: 2rem;
}

.dots_grd li {
  width: 1.2rem;
  height: 1.2rem;
  margin: 0 0.5rem;
  background: transparent;
  border: 1px solid var(--color_gld);
  border-radius: 50%;
  cursor: pointer;
}

.dots_grd li.slick-active {
  background: var(--color_bggrd);
  border: none;
}
.dots_grd li button {
  display: none;
  -webkit-appearance: none;
  -moz-appearance: none;
  appearance: none;
  outline: none;
  padding: 0;
  border: none;
  background-color: transparent;
}
.slick-slide:not(.slick-cloned) {
  counter-increment: number;
}
.slider01 {
  .slick-list {
    padding: 0 15% 0 0 !important;
  }
  .slick-track {
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
  }
  .slick-slide {
    margin: 0 1.3rem;
    height: auto !important;
  }
  .slick-slide > div {
    height: 100%;
  }
}
.slider02area {
  .arrow_box {
    margin-top: 3rem;
  }
  .prev-arrow,
  .next-arrow {
    display: block;
    width: 30px;
    height: 30px;
    color: #fff;
    font-size: 1.8rem;
    font-weight: 400;
    line-height: 30px;
    text-align: center;
    background: var(--color_gld);
    border-radius: 50%;
    -webkit-transition: all 0.3s ease;
    -o-transition: all 0.3s ease;
    transition: all 0.3s ease;
    cursor: pointer;
    position: relative;
    margin: 0 1rem;
    -webkit-tap-highlight-color: rgba(0, 0, 0, 0);
    -webkit-transition: -webkit-transform 0.2s;
    transition: -webkit-transform 0.2s;
    -o-transition: transform 0.2s;
    transition: transform 0.2s;
    transition: transform 0.2s, -webkit-transform 0.2s;

    &:active {
      -webkit-transform: scale(0.95);
      -ms-transform: scale(0.95);
      transform: scale(0.95);
    }
  }
}
.swipearea {
  display: none;
  text-align: center;
  position: absolute;
  left: 0;
  top: 80%;
  width: 100%;

  .icon {
    display: block;
    text-align: center;

    & img {
      -webkit-transform: rotate(-90deg);
      -ms-transform: rotate(-90deg);
      transform: rotate(-90deg);
      width: 4rem;
      height: auto;
    }
  }

  .swipe {
    font-size: 1.8rem;
    padding-right: 4.5rem;
    margin-top: 1rem;
    display: inline-block;
    color: #fff;
    position: relative;

    &:after {
      content: ">>>";
      font-size: 2rem;
      position: absolute;
      right: 0;
      -webkit-animation: swipe 4s 3s infinite;
      animation: swipe 3s 1s infinite;
    }
  }
}

@media (max-width: 374px) {
  .tag {
    font-size: 0.9rem;
  }
  .slider01 {
    .slick-list {
      padding: 0 !important;
    }
  }
}
@media (min-width: 768px) {
  .areat {
    padding-top: 10rem;
  }
  .bganim {
    & svg {
      width: 290%;
      left: 3rem;
      top: 35%;
    }
  }
  .bganim02 {
    & svg {
      top: -5%;
      left: calc(50% - 50rem);
    }
  }
  .dots_grd li {
    width: 1.6rem;
    height: 1.6rem;
  }
  .slider02area {
    .prev-arrow,
    .next-arrow {
      width: 40px;
      height: 40px;
      line-height: 40px;
      font-size: 2.2rem;
    }
  }
}
@media (min-width: 1025px) {
  .bganim {
    & svg {
      width: 80%;
      height: auto;
      top: 45%;
      left: 80%;
      overflow: visible;
      -webkit-transform: translate(-50%, -50%);
      -ms-transform: translate(-50%, -50%);
      transform: translate(-50%, -50%);

      & #mask_line {
        stroke-dashoffset: 1500px;
      }
    }
  }
  video.sp {
    display: none;
  }
  video.pc {
    display: block;
  }
}

/************header**************/
header {
  position: fixed;
  width: 100%;
  top: 0;
  left: 0;
  z-index: 999;

  &:after {
    content: "";
    visibility: hidden;
    opacity: 0;
    width: 100vw;
    height: 100vh;
    background: rgba(0, 0, 0, 0.3);
    position: fixed;
    top: 0;
    left: 0;
    z-index: 101;
    -webkit-backdrop-filter: blur(15px);
    backdrop-filter: blur(15px);
    -webkit-transition: all ease 0.5s;
    -o-transition: all ease 0.5s;
    transition: all ease 0.5s;
  }
}
header.overlay:after {
  visibility: visible;
  opacity: 1;
  -webkit-transition: all ease 0.5s;
  -o-transition: all ease 0.5s;
  transition: all ease 0.5s;
}
header .headlogo {
  -webkit-box-flex: 1;
  -ms-flex: 1;
  flex: 1;
  padding: 3rem 0 0 2.25rem;
}

/************gnav**************/
#gnav {
  -webkit-box-flex: 1;
  -ms-flex: 1;
  flex: 1;
  -webkit-box-sizing: border-box;
  box-sizing: border-box;

  .gnavtoggle {
    display: block !important;
    position: relative;
    width: 5rem;
    height: 5rem;
    background: rgba(0, 0, 0, 0.1);
    border-radius: 50%;
    border: 0.2rem solid #fff;
    cursor: pointer;
    margin: 2rem 1.5rem 0 auto;
    z-index: 1000;
    -webkit-transition: all ease 0.5s;
    -o-transition: all ease 0.5s;
    transition: all ease 0.5s;
    -webkit-tap-highlight-color: rgba(0, 0, 0, 0);
  }
  .gnavtoggle span.n {
    display: block;
    background: #fff;
    height: 0.2rem;
    width: 1.6rem;
    border-radius: 0.5rem;
    top: 50%;
    left: 50%;
    -webkit-transform: translate(-50%, -50%);
    -ms-transform: translate(-50%, -50%);
    transform: translate(-50%, -50%);
    position: absolute;
  }
  .gnavtoggle span.n:before {
    display: block;
    content: "";
    background: #fff;
    height: 0.2rem;
    width: 2.4rem;
    border-radius: 0.5rem;
    position: absolute;
    top: -0.8rem;
    left: 50%;
    -webkit-transform: translate(-50%, 0) rotate(0);
    -ms-transform: translate(-50%, 0) rotate(0);
    transform: translate(-50%, 0) rotate(0);
    -webkit-transition: all ease 0.5s;
    -o-transition: all ease 0.5s;
    transition: all ease 0.5s;
  }
  .gnavtoggle span.n:after {
    display: block;
    content: "";
    background: #fff;
    height: 0.2rem;
    width: 2.4rem;
    border-radius: 0.5rem;
    position: absolute;
    top: 0.8rem;
    left: 50%;
    -webkit-transform: translate(-50%, 0) rotate(0);
    -ms-transform: translate(-50%, 0) rotate(0);
    transform: translate(-50%, 0) rotate(0);
    -webkit-transition: all ease 0.5s;
    -o-transition: all ease 0.5s;
    transition: all ease 0.5s;
  }
  .btnarea {
    margin-top: 5rem;

    & a {
      color: #fff;
      display: block;
      width: 100%;
      text-align: center;
      line-height: 200%;
      width: 100%;
      height: auto;
      padding: 0.5rem 0;
      margin: 0 auto;
      -webkit-tap-highlight-color: rgba(0, 0, 0, 0);
    }
  }
}
#gnav .gnavinn {
  visibility: hidden;
  position: fixed;
  top: 0;
  right: -30rem;
  width: 30rem;
  height: 100dvh;
  padding: 10rem 4.5rem 5rem;
  -webkit-box-sizing: border-box;
  box-sizing: border-box;
  border: none;
  border-radius: 2rem 0 0 2rem;
  background: #fff;
  overflow-y: auto;
  -webkit-overflow-scrolling: touch;
  z-index: 999;
  -webkit-transition: all ease 0.5s;
  -o-transition: all ease 0.5s;
  transition: all ease 0.5s;
}

.gnavinn ul {
  width: 100%;
  padding-bottom: 0.5rem;
  border-bottom: 0.08rem solid var(--color_gld);

  & li.navitem {
    display: block;
    position: relative;
    width: 100%;
    padding: 0;
    margin-bottom: 1.5rem;

    & a {
      display: block;
      cursor: pointer;
      color: var(--color_txtblk);
      font-family: inherit;
      font-size: 2.4rem;
      line-height: 200%;
      letter-spacing: 0.03em;
      -webkit-transition: all ease 0.3s;
      -o-transition: all ease 0.3s;
      transition: all ease 0.3s;
      -webkit-tap-highlight-color: rgba(0, 0, 0, 0);
    }
  }
}
#gnav.open {
  .gnavtoggle {
    background: var(--color_gld);
  }
  .gnavtoggle span.n {
    background-color: transparent;

    &:before {
      top: 50%;
      -webkit-transform: translate(-50%, -50%) rotate(45deg);
      -ms-transform: translate(-50%, -50%) rotate(45deg);
      transform: translate(-50%, -50%) rotate(45deg);
      -webkit-transition: all ease 0.5s;
      -o-transition: all ease 0.5s;
      transition: all ease 0.5s;
    }
    &:after {
      top: 50%;
      -webkit-transform: translate(-50%, -50%) rotate(-45deg);
      -ms-transform: translate(-50%, -50%) rotate(-45deg);
      transform: translate(-50%, -50%) rotate(-45deg);
      -webkit-transition: all ease 0.5s;
      -o-transition: all ease 0.5s;
      transition: all ease 0.5s;
    }
  }
  .gnavinn {
    visibility: visible;
    right: 0;
    -webkit-transition: all ease 0.5s;
    -o-transition: all ease 0.5s;
    transition: all ease 0.5s;
  }
}
@media only screen and (max-width: 374px) {
  .gnavinn ul {
    li.navitem {
      & a {
        font-size: 2.2rem;
      }
    }
  }
}
@media (min-width: 768px) {
  #gnav .gnavinn {
    width: 40rem;
    right: -40rem;
  }
  .gnavinn li.navitem a:hover {
    color: var(--color_grn);
    opacity: 1;
  }
}

/************footer**************/
footer {
  background: var(--color_grey);
  text-align: center;

  #copyright {
    display: inline-block;
    font-size: clamp(1.2rem, 0.53vw + 0.99rem, 1.4rem); /* min393px-max767px */
    min-height: 0vw; /* Safari clamp関数対策 */
    letter-spacing: 0.03em;
    color: var(--color_grn);
    padding: clamp(2rem, 2.67vw + 0.95rem, 3rem) 0; /* min393px-max767px */
  }
}

/************loading**************/
#loading {
  position: fixed;
  width: 100%;
  height: 100svh;
  top: 0;
  left: 0;
  background: var(--color_bggrd);
  z-index: 1000;
}

/************PRE-TOP**************/
.home header {
  display: none;
  opacity: 0;
}
.home header.wh {
  & svg path {
    fill: #fff;
  }
}

.home footer {
  display: none;
}
.pre_section01.filter:after {
  visibility: visible;
  opacity: 1;
}
.pre_section01 {
  width: 100%;
  height: 100svh;
  min-height: 60rem;
  position: relative;

  &:after {
    content: "";
    visibility: hidden;
    opacity: 0;
    width: 100%;
    height: 100%;
    position: absolute;
    top: 0;
    left: 0;
    -webkit-backdrop-filter: blur(5px);
    backdrop-filter: blur(5px);
    z-index: 1;
    -webkit-transition: all ease 2s;
    -o-transition: all ease 2s;
    transition: all ease 2s;
  }

  .bg {
    width: 100%;
    height: 100%;
    position: absolute;
    z-index: -1;
    background-size: 100%;
  }

  .prelogo {
    display: none;
    opacity: 0;
  }

  .pre01area {
    height: 100svh;
    min-height: 60rem;
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    -webkit-box-pack: center;
    -ms-flex-pack: center;
    justify-content: center;
    -webkit-box-align: center;
    -ms-flex-align: center;
    align-items: center;
    -ms-flex-wrap: wrap;
    flex-wrap: wrap;
    position: relative;
  }
}

.pre_section01.off {
  display: none;
  opacity: 0;
}

.pre_section01 .logoarea {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-orient: vertical;
  -webkit-box-direction: normal;
  -ms-flex-flow: column;
  flex-flow: column;
  -webkit-box-align: center;
  -ms-flex-align: center;
  align-items: center;

  & [class^="o_logo"] {
    display: inline-block;
    position: relative;
  }
  .o_logo01 {
    .clipbg {
      width: 100%;
      height: 100%;
      position: absolute;
      top: 0;
      left: 0;
      background: -o-linear-gradient(top, #fff 50%, #60c0bd 50.1%);
      background: -webkit-gradient(linear, left top, left bottom, color-stop(50%, #fff), color-stop(50.1%, #60c0bd));
      background: linear-gradient(180deg, #fff 50%, #60c0bd 50.1%);
      background-size: 100% 200%;
      background-position: 50% 0;
      -webkit-clip-path: url(#clip01);
      clip-path: url(#clip01);
    }
  }
  .o_logo02 {
    margin-top: 0.7rem;

    .clipbg {
      width: 100%;
      height: 100%;
      position: absolute;
      top: 0;
      left: 0;
      background: -o-linear-gradient(top, #fff 50%, #a38a77 50.1%);
      background: -webkit-gradient(linear, left top, left bottom, color-stop(50%, #fff), color-stop(50.1%, #a38a77));
      background: linear-gradient(180deg, #fff 50%, #a38a77 50.1%);
      background-size: 100% 200%;
      background-position: 50% 0;
      -webkit-clip-path: url(#clip02);
      clip-path: url(#clip02);
    }
  }
  .o_logo03 {
    margin-top: 2.2rem;

    .clipbg {
      width: 100%;
      height: 100%;
      position: absolute;
      top: 0;
      left: 0;
      background: -o-linear-gradient(top, #fff 50%, #8d8181 50.1%);
      background: -webkit-gradient(linear, left top, left bottom, color-stop(50%, #fff), color-stop(50.1%, #8d8181));
      background: linear-gradient(180deg, #fff 50%, #8d8181 50.1%);
      background-size: 100% 200%;
      background-position: 50% 0;
      -webkit-clip-path: url(#clip03);
      clip-path: url(#clip03);
    }
  }
  .itemboxwrap {
    width: 100%;
    overflow: hidden;

    .itembox {
      opacity: 0;
      margin-top: 3rem;
      width: 100rem;
      margin-left: auto;
      display: -webkit-box;
      display: -ms-flexbox;
      display: flex;
      -ms-flex-wrap: nowrap;
      flex-wrap: nowrap;
      -webkit-box-pack: center;
      -ms-flex-pack: center;
      justify-content: center;
    }
  }
}

.formwrap {
  display: none;
  opacity: 0;
  width: 100%;
  position: relative;
  z-index: 2;
}

.formarea {
  position: relative;

  & input.keyword {
    width: 100%;
    font-size: clamp(1.2rem, 0.53vw + 0.99rem, 1.4rem); /* min393px-max767px */
    min-height: 0vw; /* Safari clamp関数対策 */
    letter-spacing: 0.08em;
    color: var(--color_txtblk);
    margin: 0 auto;
    padding: 1rem 2rem;
    border: 1px solid var(--color_gld);
    border-radius: 1rem;
    -webkit-box-sizing: border-box;
    box-sizing: border-box;
  }
  & p {
    color: #8d8181;
    font-size: clamp(1.6rem, 0.53vw + 1.39rem, 1.8rem); /* min393px-max767px */
    min-height: 0vw; /* Safari clamp関数対策 */
    letter-spacing: 0.1em;
    margin-top: 2rem;
  }
}
.tagarea {
  margin: 2.6rem auto 0;

  .item {
    -webkit-box-sizing: border-box;
    box-sizing: border-box;
    text-align: center;
    cursor: pointer;
    background: rgba(255, 255, 255, 1);
    -webkit-transition: all ease 0.3s;
    -o-transition: all ease 0.3s;
    transition: all ease 0.3s;
    -webkit-tap-highlight-color: rgba(0, 0, 0, 0);
    -webkit-transition: -webkit-transform 0.2s;
    transition: -webkit-transform 0.2s;
    -o-transition: transform 0.2s;
    transition: transform 0.2s;
    transition: transform 0.2s, -webkit-transform 0.2s;

    &:active {
      -webkit-transform: scale(0.95);
      -ms-transform: scale(0.95);
      transform: scale(0.95);
    }

    & label {
      cursor: pointer;
      display: block;
      -webkit-tap-highlight-color: rgba(0, 0, 0, 0);
    }
  }

  .list01 {
    .item {
      &:nth-of-type(1) {
        -webkit-box-flex: 2;
        -ms-flex-positive: 2;
        flex-grow: 2;
      }
      &:nth-of-type(2) {
        -webkit-box-flex: 2;
        -ms-flex-positive: 2;
        flex-grow: 2;
      }
      &:nth-of-type(3) {
        -webkit-box-flex: 1;
        -ms-flex-positive: 1;
        flex-grow: 1;
      }
    }
  }
  .list02 {
    .item {
      &:nth-of-type(1) {
        -webkit-box-flex: 1;
        -ms-flex-positive: 1;
        flex-grow: 1;
      }
      &:nth-of-type(2) {
        -webkit-box-flex: 1;
        -ms-flex-positive: 1;
        flex-grow: 1;
      }
      &:nth-of-type(3) {
        -webkit-box-flex: 1;
        -ms-flex-positive: 1;
        flex-grow: 1;
      }
      &:nth-of-type(4) {
        -webkit-box-flex: 1;
        -ms-flex-positive: 1;
        flex-grow: 1;
      }
    }
  }
  .keyworditem {
    position: absolute;
    opacity: 0;
    z-index: -1;
  }
  .send_btn {
    font-size: 1.2rem;
    width: 6.1rem;
    height: 6.1rem;
    color: #fff;
    text-align: center;
    line-height: 6.1rem;
    cursor: pointer;
    margin: 2.2rem auto 0;
    -webkit-tap-highlight-color: rgba(0, 0, 0, 0);
    transition: transform 0.2s;
    -webkit-transition: -webkit-transform 0.2s;
    transition: -webkit-transform 0.2s;
    -o-transition: transform 0.2s;
    transition: transform 0.2s;
    transition: transform 0.2s, -webkit-transform 0.2s;

    &:active {
      -webkit-transform: scale(0.95);
      -ms-transform: scale(0.95);
      transform: scale(0.95);
    }
  }
}
@media (max-width: 374px) {
  .pre_section01 {
    .formarea {
      & input.keyword {
        font-size: 0.9rem;
      }
    }
  }
}
@media (min-width: 768px) {
  .tagarea {
    .item {
      &:hover {
        opacity: 0.6;
      }
    }

    .send_btn {
      font-size: 1.4rem;
      width: 7.5rem;
      height: 7.5rem;
      line-height: 7.5rem;
      -webkit-transition: opacity ease 0.3s, -webkit-transform 0.2s;
      transition: opacity ease 0.3s, -webkit-transform 0.2s;
      -o-transition: opacity ease 0.3s, transform 0.2s;
      transition: opacity ease 0.3s, transform 0.2s;
      transition: opacity ease 0.3s, transform 0.2s, -webkit-transform 0.2s;

      &:hover {
        opacity: 0.6;
      }
    }
  }
}

/*pre_section02*/
.pre_section02 {
  display: none;
  /* width: 100%; */
  height: 100svh;
  min-height: 60rem;
  position: relative;

  .prelogo svg path {
    fill: #fff;
  }

  .movie {
    width: 100vw;
    height: 100svh;
    position: relative;

    & video {
      position: absolute;
      width: 100%;
      height: 100%;
      -o-object-fit: cover;
      object-fit: cover;
      top: 0;
      left: 0;
    }
    &:after {
      content: "";
      width: 100%;
      height: 100%;
      background: rgba(0, 0, 0, 0.3);
      position: absolute;
      top: 0;
      left: 0;
    }
  }

  .txtarea {
    position: absolute;
    width: min(100%, 60rem);
    height: auto;
    top: 50%;
    left: 50%;
    -webkit-transform: translate(-50%, -50%);
    -ms-transform: translate(-50%, -50%);
    transform: translate(-50%, -50%);
    z-index: 2;
    height: auto;
  }
  .txtitem {
    position: relative;
    -webkit-box-sizing: border-box;
    box-sizing: border-box;
    width: 100%;
    /* opacity: 0; */
    display: none;
    margin: 0 auto;

    .slick-list li {
      font-size: clamp(
        1.6rem,
        0.53vw + 1.39rem,
        1.8rem
      ); /* min393px-max767px */
      min-height: 0vw; /* Safari clamp関数対策 */
      font-weight: 700;
      text-align: center;
      line-height: 2em;
      letter-spacing: 0.03em;
      padding: 0 1rem;
      color: #fff;
    }
  }

  /* .txtitem.on.slick-initialized {
    opacity: 1;
    display: block;
    visibility: visible;
  } */
  .slick-track {
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    -webkit-box-align: center;
    -ms-flex-align: center;
    align-items: center;
  }

  .txtspecial {
    display: none;
    opacity: 0;
    font-size: clamp(1.6rem, 0.53vw + 1.39rem, 1.8rem); /* min393px-max767px */
    min-height: 0vw; /* Safari clamp関数対策 */
    font-weight: 700;
    text-align: center;
    line-height: 2em;
    letter-spacing: 0.03em;
    color: #fff;
    text-align: center;
  }
  & span.word {
    display: inline-block;
    font-weight: 500;
    color: var(--color_txtblk);
    background: var(--color_grey);
    padding: 1rem 3rem;
    line-height: 100%;
    border: 1px solid var(--color_gld);
    border-radius: 1rem;
    -webkit-box-sizing: border-box;
    box-sizing: border-box;
  }
  .backbtnarea {
    text-align: center;
    position: absolute;
    bottom: 10rem;
    width: 100%;
    z-index: 2;
  }
  .backbtn {
    -webkit-tap-highlight-color: rgba(0, 0, 0, 0);
    display: none;
    width: 6em;
    color: #fff;
    margin: 0 auto;
    text-align: center;
    -webkit-transition: -webkit-transform 0.2s;
    transition: -webkit-transform 0.2s;
    -o-transition: transform 0.2s;
    transition: transform 0.2s;
    transition: transform 0.2s, -webkit-transform 0.2s;

    &:active {
      -webkit-transform: scale(0.95);
      -ms-transform: scale(0.95);
      transform: scale(0.95);
    }
  }
  /* .backbtn {
    display: none;
    background-image: url(./images/bg_circlegrd.svg),url(./images/bg_circlewh.svg);
    background-position: center, center;
    background-repeat: no-repeat;
    background-size: 100% 100%, 100% 100%;
    font-size: 1.2rem;
    width: 6.1rem;
    height: 6.1rem;
    margin: 0 auto;
    color: #fff;
    text-align: center;
    line-height: 6.1rem;
    cursor: pointer;
    -webkit-transition: background-image ease 0.5s, color ease 0.5s;
    -o-transition: background-image ease 0.5s, color ease 0.5s;
    transition: background-image ease 0.5s, color ease 0.5s;
    
    &:active{
      -webkit-transform: scale(.95);
          -ms-transform: scale(.95);
              transform: scale(.95);
     }
  } */
  /* .backbtn.last {
    color: var(--color_gld);
    background-image: none,url(./images/bg_circlewh.svg);
    background-position: center, center;
    -webkit-transition: background-image ease 0.5s, color ease 0.5s;
    -o-transition: background-image ease 0.5s, color ease 0.5s;
    transition: background-image ease 0.5s, color ease 0.5s;
  } */

  .btnarea {
    margin-top: 6rem;
    text-align: center;

    & a {
      opacity: 0;
      -webkit-transition: all ease 0.5s;
      -o-transition: all ease 0.5s;
      transition: all ease 0.5s;
    }
    & a.on {
      opacity: 1;

      &:hover {
        color: #fff;
        opacity: 0.6;
      }
    }
  }
  .dots_grd li {
    background-color: #fff;
  }
}
.switch {
  display: none;
  opacity: 0;
  background: #333;
  width: 100%;
  height: 100%;
  position: fixed;
  top: 0;
  left: 0;
  -webkit-transform: translateY(100%);
  -ms-transform: translateY(100%);
  transform: translateY(100%);
  z-index: 999;
}

@media only screen and (max-width: 374px) {
  .pre_section02 {
    .txtitem {
      .slick-list li {
        font-size: 1.4rem;
      }
    }
    .txtspecial {
      font-size: 1.4rem;
    }
  }
}
@media (min-width: 768px) {
  .pre_section02 {
    .backbtn {
      cursor: pointer;

      &:hover {
        opacity: 0.6;
      }
    }
  }
}

/************service**************/
.page-id-12 {
  .headlogo {
    opacity: 0;
  }

  #start {
    position: fixed;
    width: 100%;
    height: 100svh;
    background-color: #333;
    top: 0;
    left: 0;
    z-index: 1000;
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    -webkit-box-pack: center;
    -ms-flex-pack: center;
    justify-content: center;
    -webkit-box-align: center;
    -ms-flex-align: center;
    align-items: center;
  }

  #service_loading {
    -webkit-box-sizing: border-box;
    box-sizing: border-box;
    width: 6rem;
    height: 6rem;
    border-radius: 100%;
    border: 8px solid rgba(255, 255, 255, 0.2);
    border-top-color: #fff;
    -webkit-animation: spin 1s infinite linear;
    animation: spin 1s infinite linear;
    z-index: 2;
  }
}

.service {
  .mvarea {
    width: 100%;
    height: 100svh;
    position: relative;
    overflow: hidden;

    & video {
      position: absolute;
      width: 100%;
      height: 100%;
      -o-object-fit: cover;
      object-fit: cover;
      top: 0;
      left: 0;
    }
    .pc {
      display: none;
    }

    .logoarea {
      position: absolute;
      top: 50%;
      left: 50%;
      -webkit-transform: translate(-50%, -50%);
      -ms-transform: translate(-50%, -50%);
      transform: translate(-50%, -50%);
      text-align: center;

      .o_logo02 {
        margin-top: 0.8rem;
      }

      & svg path {
        fill: #fff;
      }
    }
    .scroll {
      display: inline-block;
      color: #fff;
      font-size: clamp(
        1.2rem,
        0.53vw + 0.99rem,
        1.4rem
      ); /* min393px-max767px */
      min-height: 0vw; /* Safari clamp関数対策 */
      letter-spacing: 0.03em;
      -webkit-writing-mode: vertical-rl;
      -ms-writing-mode: tb-rl;
      writing-mode: vertical-rl;
      position: absolute;
      right: 1.5rem;
      bottom: 3.4rem;

      &:after {
        content: "";
        width: 2px;
        height: 15rem;
        background-color: #fff;
        position: absolute;
        left: 50%;
        bottom: 120%;
        -webkit-transform: translateX(-50%);
        -ms-transform: translateX(-50%);
        transform: translateX(-50%);
        -webkit-animation: scroll 3s infinite;
        animation: scroll 3s infinite;
      }
    }
  }
}
@media only screen and (max-width: 374px) {
  .service {
    .mvarea {
      .logoarea {
        .o_logo01 {
          & svg {
            width: 120px;
          }
        }
        .o_logo02 {
          margin-top: 0.4rem;

          & svg {
            width: 220px;
          }
        }
      }
    }
  }
}

@media (min-width: 1025px) {
  .service {
    .mvarea {
      .sp {
        display: none;
      }
      .pc {
        display: block;
      }
    }
  }
}

/*service01*/
.service01 {
  position: relative;
  padding-bottom: 8rem;
  & * {
    color: #fff;
  }

  .titlebox {
    width: 100%;
    padding: 6rem 1rem;
    -webkit-box-sizing: border-box;
    box-sizing: border-box;
    background: var(--color_bggrd85);
    border: 1px solid var(--color_gld);
    border-radius: 2rem;

    .txt20 {
      margin-top: 2rem;
      font-weight: 400;
    }
  }
  .subbox {
    position: relative;
    text-align: center;

    .item {
      display: inline-block;

      & dd {
        margin-top: 1.7rem;
        font-weight: 400;
      }
    }
  }
  .sub01 {
    margin-top: 8rem;

    .item {
      padding: 5.9rem 5.8rem 8.6rem 6.9rem;
      -webkit-box-sizing: border-box;
      box-sizing: border-box;
      margin-left: -4rem;
    }
  }
  .sub02 {
    margin-top: 7rem;
    position: relative;

    .item {
      background-image: url(./images/bg_circlegrd02.svg);
      padding: 6rem 6.5rem 10rem 4rem;
      -webkit-box-sizing: border-box;
      -webkit-box-sizing: border-box;
      box-sizing: border-box;
      margin-right: -9rem;
    }
  }
}
@media (max-width: 374px) {
  .service01 {
    .txt20 {
      font-size: 1.8rem;
    }
  }
}
@media (min-width: 768px) {
  .service01 {
    .sub01 {
      .item {
        margin-left: -25rem;
      }
    }
    .sub02 {
      .item {
        margin-right: -20rem;
      }
    }
  }
}
@media (min-width: 1025px) {
}

/*service02*/
.service02 {
  background-color: var(--color_grey);

  .txt14 {
    padding: 2rem 2rem 7rem;
  }
}

@media (min-width: 768px) {
  .service02 {
    .txt14 {
      padding: 2rem 2rem 10rem;
    }
  }
}

/*service03*/
.service03 {
  .txt16 {
    margin-top: 2rem;
  }
  .itembox {
    margin-top: 6rem;
    counter-reset: number 0;
  }
  .item {
    width: 84.8%;
    border: 1px solid var(--color_gld);
    border-radius: 2rem;
    padding: 2.2rem 2rem 2rem;
    -webkit-box-sizing: border-box;
    box-sizing: border-box;
    /* height: 100%; */

    & h3 {
      padding-left: 3.2rem;
      position: relative;
      font-size: clamp(1.8rem, 0.53vw + 1.59rem, 2rem); /* min393px-max767px */
      min-height: 0vw; /* Safari clamp関数対策 */
      line-height: 200%;
      letter-spacing: 0.04em;

      &:before {
        content: counter(number, decimal-leading-zero);
        font-family: var(--font_en);
        color: var(--color_gld);
        font-size: clamp(
          2.6rem,
          0.53vw + 2.39rem,
          2.8rem
        ); /* min393px-max767px */
        min-height: 0vw; /* Safari clamp関数対策 */
        letter-spacing: 0.03em;
        line-height: 100%;
        position: absolute;
        top: 50%;
        left: 0;
        -webkit-transform: translateY(-50%);
        -ms-transform: translateY(-50%);
        transform: translateY(-50%);
      }

      & span {
        display: inline-block;
        padding-left: 1.6rem;
        margin-left: 1.6rem;
        border-left: 1px solid var(--color_gld);
      }
    }
    .txt14 {
      margin-top: 0.5rem;
    }
    .illust {
      width: 100%;
      height: 18.4rem;
      margin: 0.8rem auto 0;
      background-image: url(./images/service03-01.png);
      background-repeat: no-repeat;
      background-size: auto 100%;
      background-position: center;
      display: -webkit-box;
      display: -ms-flexbox;
      display: flex;
      -webkit-box-pack: center;
      -ms-flex-pack: center;
      justify-content: center;
      -webkit-box-align: center;
      -ms-flex-align: center;
      align-items: center;

      & svg {
        width: 127px;
        height: auto;

        .lineanim {
          stroke-dasharray: 1500px;
        }
        .line01 {
          stroke-dashoffset: 1500px;
          /* -webkit-animation: lineanim01 3s;
          animation: lineanim01 3s; */
        }
        .line02 {
          stroke-dashoffset: 1220px;
        }
        .line03 {
          stroke-dashoffset: 900px;
        }
        .line04 {
          stroke-dashoffset: 450px;
        }
      }
    }
    .list {
      display: inline-block;
      margin-top: 2rem;

      .listitem {
        font-size: clamp(
          1.2rem,
          0.53vw + 0.99rem,
          1.4rem
        ); /* min393px-max767px */
        min-height: 0vw; /* Safari clamp関数対策 */
        font-weight: 400;
        letter-spacing: 0.08em;
        line-height: 180%;
        padding-left: 1.5rem;
        position: relative;

        &:before {
          content: "⚫︎";
          color: var(--color_grn);
          font-size: 1rem;
          letter-spacing: 0;
          position: absolute;
          left: 0;
        }
      }
    }
    .moretxt {
      display: none;
      margin-top: 2rem;
    }
    .morearea {
      margin-top: 2rem;
      border-top: 0.08rem solid var(--color_gld);
      text-align: right;
    }
  }
  .slick-active {
    .line01 {
      stroke-dashoffset: 1220px;
      -webkit-animation: lineanim01 2s;
      animation: lineanim01 2s;
      -webkit-animation-fill-mode: forwards;
      animation-fill-mode: forwards;
    }
    .line02 {
      stroke-dashoffset: 900px;
      -webkit-animation: lineanim02 2s;
      animation: lineanim02 2s;
      -webkit-animation-fill-mode: forwards;
      animation-fill-mode: forwards;
    }
    .line03 {
      stroke-dashoffset: 450px;
      -webkit-animation: lineanim03 2s;
      animation: lineanim03 2s;
      -webkit-animation-fill-mode: forwards;
      animation-fill-mode: forwards;
    }
    .line04 {
      stroke-dashoffset: 0px;
      -webkit-animation: lineanim04 3s;
      animation: lineanim04 3s;
      -webkit-animation-fill-mode: forwards;
      animation-fill-mode: forwards;
    }
  }

  .service_movie {
    margin-top: 12.4rem;

    .title {
      text-align: center;
      color: var(--color_grn);
    }
    .movie {
      margin-top: 3rem;
      position: relative;
      border-radius: 2rem;
      overflow: hidden;

      &:after {
        content: "";
        display: block;
        padding-top: 56.25%;
      }
      & iframe {
        width: 100%;
        height: 100%;
        position: absolute;
        top: 50%;
        left: 50%;
        -webkit-transform: translate(-50%, -50%);
        -ms-transform: translate(-50%, -50%);
        transform: translate(-50%, -50%);
      }
    }
  }
}
@media (min-width: 768px) {
  .service03 {
    .item {
      .illust {
        height: 22rem;

        & svg {
          width: 150px;
        }
      }
    }
  }
}

/*service04*/
.service04 {
  .list {
    margin-top: 3rem;
  }
  .item {
    margin-bottom: 7rem;
    padding: 0 2rem;

    .pic {
      width: max(43%, 15rem);
      -webkit-box-sizing: border-box;
      box-sizing: border-box;
      margin: 0 auto;
    }
    .name {
      margin-top: 2rem;
      text-align: center;
    }
    .txt14 {
      margin-top: 3rem;
    }
    .moretxt {
      display: none;
    }
    .morearea {
      margin-top: 3rem;
      text-align: center;

      .more {
        margin-top: 0;
        padding: 0 2.5rem;
        border: 1px solid var(--color_gld);
        border-radius: 1.4rem;
      }
    }
  }
  .picarea {
    border-radius: 2rem;
    width: 100%;
    overflow: hidden;
    & img {
      width: 100%;
    }
  }
}
@media (min-width: 768px) {
  .service04 {
    .list {
      max-width: 60rem;
      margin: 3rem auto 0;
    }
  }
}

/*service05*/
.service05 {
  background: var(--color_bggrd85);
  padding-bottom: 9.2rem;
  margin-top: clamp(6rem, 5.35vw + 3.9rem, 8rem); /* min393px-max767px */
  min-height: 0vw; /* Safari clamp関数対策 */

  .items {
    margin-top: 2rem;
    counter-reset: titnumber 0;
  }
  .item {
    counter-increment: titnumber;

    & p {
      display: inline-block;
      margin: 0 1rem;
      position: relative;

      &:after {
        content: counter(titnumber, decimal-leading-zero);
        font-family: var(--font_en);
        font-size: 2.6rem;
        letter-spacing: 0.03em;
        color: #fff;
        position: absolute;
        top: 50%;
        left: 50%;
        -webkit-transform: translate(-50%, -50%);
        -ms-transform: translate(-50%, -50%);
        transform: translate(-50%, -50%);
      }
    }
    & h3.title {
      color: var(--color_brw);
      margin: 0 1rem;
    }
    .list {
      margin-top: 4rem;
      counter-reset: number 0;
    }
    .listitem {
      background-color: rgba(255, 255, 255, 0.8);
      border: 1px solid var(--color_gld);
      border-radius: 2rem;
      padding: 3rem 2rem;
      -webkit-box-sizing: border-box;
      box-sizing: border-box;
      height: 100%;

      .tit {
        position: relative;
        font-size: clamp(
          1.8rem,
          0.53vw + 1.59rem,
          2rem
        ); /* min393px-max767px */
        min-height: 0vw; /* Safari clamp関数対策 */

        &:before {
          content: "#" counter(number);
          font-family: var(--font_en);
          font-size: clamp(
            2.6rem,
            0.53vw + 2.39rem,
            2.8rem
          ); /* min393px-max767px */
          min-height: 0vw; /* Safari clamp関数対策 */
          letter-spacing: 0.03em;
          background: -o-linear-gradient(
            left,
            #75dfcc 0%,
            #5fc0c8 30%,
            #55a4ee 80%,
            #9694f3 100%
          );
          background: -webkit-gradient(
            linear,
            left top, right top,
            from(#75dfcc),
            color-stop(30%, #5fc0c8),
            color-stop(80%, #55a4ee),
            to(#9694f3)
          );
          background: linear-gradient(
            90deg,
            #75dfcc 0%,
            #5fc0c8 30%,
            #55a4ee 80%,
            #9694f3 100%
          );
          -webkit-background-clip: text;
          -webkit-text-fill-color: transparent;
          position: absolute;
          left: 0;
          top: 50%;
          -webkit-transform: translateY(-50%);
          -ms-transform: translateY(-50%);
          transform: translateY(-50%);
        }

        & span.titinner {
          display: inline-block;
          font-weight: 700;
          line-height: 140%;
          letter-spacing: 0.04em;
          background: -o-linear-gradient(
            left,
            #9694f3 0%,
            #55a4ee 30%,
            #5fc0c8 80%,
            #75dfcc 100%
          );
          background: -webkit-gradient(
            linear,
            left top, right top,
            from(#9694f3),
            color-stop(30%, #55a4ee),
            color-stop(80%, #5fc0c8),
            to(#75dfcc)
          );
          background: linear-gradient(
            90deg,
            #9694f3 0%,
            #55a4ee 30%,
            #5fc0c8 80%,
            #75dfcc 100%
          );
          -webkit-background-clip: text;
          -webkit-text-fill-color: transparent;
          margin-left: 5.5rem;
          position: relative;

          &:before {
            content: "";
            width: 0.1rem;
            height: 5.4rem;
            background: -o-linear-gradient(
              top,
              #9694f3 0%,
              #55a4ee 30%,
              #5fc0c8 80%,
              #75dfcc 100%
            );
            background: -webkit-gradient(
              linear,
              left top, left bottom,
              from(#9694f3),
              color-stop(30%, #55a4ee),
              color-stop(80%, #5fc0c8),
              to(#75dfcc)
            );
            background: linear-gradient(
              180deg,
              #9694f3 0%,
              #55a4ee 30%,
              #5fc0c8 80%,
              #75dfcc 100%
            );
            position: absolute;
            top: 50%;
            left: -1.2rem;
            -webkit-transform: translateY(-50%);
            -ms-transform: translateY(-50%);
            transform: translateY(-50%);
          }
        }
      }
      .txt14 {
        margin-top: 2.6rem;
      }
    }
  }
  .dots_grd li {
    border: 1px solid #fff;
  }
  .dots_grd li.slick-active {
    background: #fff;
  }
}
@media (max-width: 374px) {
  .service05 {
    .item {
      & h3.title {
        font-size: 2rem;
      }
      & p {
        &:after {
          font-size: 2.2rem;
        }
        & img {
          width: 70px;
        }
      }
    }
  }
}

@media (min-width: 768px) {
}

/*service06*/
.service06 {
  position: relative;

  .list {
    margin-top: 4rem;
    counter-reset: number 0;
  }
  .item {
    width: 100%;
    text-align: center;

    .number {
      display: inline-block;
      width: 7.6rem;
      height: 7.6rem;
      position: relative;

      &:after {
        content: counter(number, decimal-leading-zero);
        color: #fff;
        font-size: 2.6rem;
        letter-spacing: 0.03em;
        position: absolute;
        top: 50%;
        left: 50%;
        -webkit-transform: translate(-50%, -50%);
        -ms-transform: translate(-50%, -50%);
        transform: translate(-50%, -50%);
      }
    }
    .client {
      text-align: center;
      /* font-size: 2.2rem; */
      line-height: 180%;
      letter-spacing: 0.03em;
      margin-top: 2rem;
    }
  }
  .item_contens {
    margin: 2rem 1rem 0;
    -webkit-box-sizing: border-box;
    box-sizing: border-box;
    border-radius: 2rem;
    border: 0.08rem solid var(--color_gld);
    overflow: hidden;

    & dl {
      padding: 3rem 2.4rem 2rem;
      -webkit-box-sizing: border-box;
      box-sizing: border-box;
    }

    .tit {
      font-size: var(--txt20);
      min-height: 0vw; /* Safari clamp関数対策 */
      line-height: 140%;
      letter-spacing: 0.04em;
      font-weight: 700;
      background: var(--color_txtgrd);
      -webkit-background-clip: text;
      -webkit-text-fill-color: transparent;
    }
    & dd.moretxt {
      margin-top: 3.5rem;
      overflow: hidden;
      -webkit-transition: height 0.5s ease;
      -o-transition: height 0.5s ease;
      transition: height 0.5s ease;
    }
    & dd.moretxt.close {
      height: 10rem;
      position: relative;

      &:after {
        content: "";
        width: 100%;
        height: 100%;

        background: -o-linear-gradient(
          top,
          rgba(255, 255, 255, 0) 0%,
          rgba(255, 255, 255, 0) 40%,
          rgba(255, 255, 255, 1) 98%
        );

        background: -webkit-gradient(
          linear,
          left top, left bottom,
          from(rgba(255, 255, 255, 0)),
          color-stop(40%, rgba(255, 255, 255, 0)),
          color-stop(98%, rgba(255, 255, 255, 1))
        );

        background: linear-gradient(
          to bottom,
          rgba(255, 255, 255, 0) 0%,
          rgba(255, 255, 255, 0) 40%,
          rgba(255, 255, 255, 1) 98%
        );
        position: absolute;
        bottom: 0;
        left: 0;
      }
    }
    .morearea {
      margin-top: 3rem;
      text-align: right;
      border-top: 0.08rem solid var(--color_gld);
      position: relative;
    }
  }
}
@media (max-width: 374px) {
  .service06 {
    .item {
      .number {
        width: 7rem;
        height: 7rem;

        &:after {
          font-size: 2.4rem;
        }
      }
      .client {
        font-size: 2rem;
      }
    }
    .item_contens {
      .tit {
        font-size: 1.8rem;
      }
    }
  }
}

/*service07*/
.service07 {
  & div.txt16 {
    margin-top: 2rem;
  }
  & h3 {
    margin: 6rem 0 2rem;
  }
}

/*service08*/
.service08 {
  .service08area {
    padding: 0 2rem 5.5rem;
  }

  & dl {
    padding: 0 0 2rem;
    margin-bottom: 2rem;
    border-bottom: 0.04rem solid var(--color_gld);
    -webkit-box-sizing: border-box;
    box-sizing: border-box;

    .tit {
      color: var(--color_grn);
      font-size: clamp(
        1.2rem,
        0.53vw + 0.99rem,
        1.4rem
      ); /* min393px-max767px */
      min-height: 0vw; /* Safari clamp関数対策 */
      line-height: 180%;
      letter-spacing: 0.03em;
    }
    .txt14 {
      margin-top: 0.2rem;
    }
  }
  & dl.mail {
    & p {
      display: inline-block;
    }
    .name {
      padding-right: 0.8rem;
      margin-right: 0.8rem;
      border-right: 0.04rem solid var(--color_gld);
      -webkit-box-sizing: border-box;
      box-sizing: border-box;
    }
  }
  .btnarea {
    margin-top: 3.5rem;
    text-align: center;

    & a {
      color: #fff;
    }
  }
}
@media only screen and (max-width: 374px) {
  .service08 {
    & dl.mail {
      .name {
        width: 100%;
      }
    }
  }
}

/************contact**************/
.page-id-14 {
  #wrapper {
    position: relative;
    width: 100%;
    min-height: 100svh;
  }
  & header {
    position: relative;
  }
  & footer {
    position: absolute;
    left: 0;
    bottom: 0;
    width: 100%;
  }
}
.contact01 {
  .contact01area {
    padding-bottom: clamp(
      10rem,
      8.02vw + 6.85rem,
      13rem
    ); /* min393px-max767px */
    min-height: 0vw; /* Safari clamp関数対策 */
  }
  /* h2.titile_b {
    padding: 0 1rem 0 0;
  } */
  & h3 {
    color: var(--color_gld);
  }
  .cflist {
    margin-top: 4rem;
  }
  .cfitem {
    margin-bottom: 3rem;

    & span.req {
      font-size: 80%;
      color: red;
      display: inline-block;
      margin-right: 0.5rem;
    }

    & span.att {
      font-size: 80%;
      color: gray;
      display: inline-block;
    }

    & dd {
      margin-top: 0.5rem;

      & input,
      textarea {
        font-size: var(--txt14);
        min-height: 0vw; /* Safari clamp関数対策 */
        line-height: 160%;
        width: 100%;
        border: 1px solid var(--color_gld);
        padding: 0.5rem 1rem;
        -webkit-box-sizing: border-box;
        box-sizing: border-box;
        border-radius: 1rem;
      }
      textarea {
        resize: vertical;
        min-width: 100%;
        min-height: 3.5rem !important;
      }
    }
  }

  .cfbtnarea {
    .btnitem {
      margin: 0 1rem;
    }
    & input {
      font-family: var(--font_ja);
      font-size: clamp(
        1.6rem,
        0.53vw + 1.39rem,
        1.8rem
      ); /* min393px-max767px */
      min-height: 0vw; /* Safari clamp関数対策 */
      letter-spacing: 0.2em;
      -webkit-transition: opacity ease 0.3s, -webkit-transform 0.2s;
      transition: opacity ease 0.3s, -webkit-transform 0.2s;
      -o-transition: opacity ease 0.3s, transform 0.2s;
      transition: opacity ease 0.3s, transform 0.2s;
      transition: opacity ease 0.3s, transform 0.2s, -webkit-transform 0.2s;
      cursor: pointer;

      &:active {
        -webkit-transform: scale(0.95);
        -ms-transform: scale(0.95);
        transform: scale(0.95);
      }

      &:hover {
        opacity: 0.6;
      }
    }
    & input:disabled {
      opacity: 0.6;
      -webkit-transition: opacity ease 0.3s, -webkit-transform 0.2s;
      transition: opacity ease 0.3s, -webkit-transform 0.2s;
      -o-transition: opacity ease 0.3s, transform 0.2s;
      transition: opacity ease 0.3s, transform 0.2s;
      transition: opacity ease 0.3s, transform 0.2s, -webkit-transform 0.2s;
    }
  }
}
@media only screen and (max-width: 374px) {
  .contact01 {
  }
}

/* 確認画面 */
.confirm_area {
  margin-top: 3rem;

  .checktxt {
    margin-top: 3rem;
    text-align: center;
  }
  .cflist {
    & dd.txt14 {
      min-height: 3.52rem;
      padding: 0.5rem 1rem;
      -webkit-box-sizing: border-box;
      box-sizing: border-box;
      background-color: #f7f5f5;
    }
    .cfitem:last-of-type dd.txt14 {
      min-height: 10rem;
    }
    .confirm_message {
      white-space: pre-wrap;
    }
  }
  .contactgrad {
    padding: 1.5rem 4rem;
    font-size: 1.6rem;
    letter-spacing: 0.2em;
  }
  .back_button {
    display: inline-block;
    font-family: var(--font_ja);
    padding: 1.5rem 4rem;
    font-size: 1.6rem;
    letter-spacing: 0.2em;
    border-radius: 2.15rem;
    border: 1px solid var(--color_gld);
    -webkit-box-sizing: border-box;
    box-sizing: border-box;
    background: #fff;
  }
}

/* 完了画面 */
.thanks_area {
  margin-top: 3rem;

  .endtxt {
    margin-top: 4rem;
    text-align: center;
  }
  .btnarea {
    margin-top: 3rem;
    text-align: center;

    & a {
      color: #fff;
    }
  }
}

/************404error**************/
.error404 {
  #wrapper {
    position: relative;
    width: 100%;
    height: 100svh;
    min-height: 60rem;
  }
  & header {
    position: relative;
  }
  & footer {
    position: absolute;
    left: 0;
    bottom: 0;
    width: 100%;
  }
  .txt14 {
    margin-top: 5rem;
  }
}

/************WP設定**************/
/* tableカスタマイズ */
.wp-block-flexible-table-block-table.wp-block-flexible-table-block-table
  > table
  tr
  th,
.wp-block-flexible-table-block-table.wp-block-flexible-table-block-table
  > table
  tr
  td {
  padding: 1rem !important;
  border: 1px solid var(--color_gld) !important;
}
.wp-block-flexible-table-block-table.is-scroll-on-mobile {
  padding-bottom: 1rem;
  margin-bottom: 0;
}

.table {
  width: 100%;

  & * {
    color: var(--color_txtblk);
    font-size: clamp(
      1.2rem,
      0.53vw + 0.99rem,
      1.4rem
    ) !important; /* min393px-max767px */
    min-height: 0vw; /* Safari clamp関数対策 */
    line-height: 160%;
    letter-spacing: 0.08em;
    font-weight: 500;
    -webkit-box-sizing: border-box;
    box-sizing: border-box;
  }
  /* & th:nth-of-type(1),
  td:nth-of-type(1) {
    width: calc(100% - 13rem) !important;
  }
  & th:nth-of-type(2),
  td:nth-of-type(2) {
    width: 13rem !important;
  } */
  & thead {
    & th {
      font-size: clamp(
        1.2rem,
        0.53vw + 0.99rem,
        1.4rem
      ) !important; /* min393px-max767px */
      min-height: 0vw; /* Safari clamp関数対策 */
      text-align: center !important;
      background-color: #b5a192 !important;
    }
    & th:nth-of-type(2) {
      background-color: #cbbdb3 !important;
    }
  }
  & tbody {
    & td {
      background-color: #f7f5f5 !important;
    }
    & td:nth-of-type(1) {
      font-weight: 400 !important;
    }
    & td:nth-of-type(2) {
      line-height: 120% !important;
      text-align: center !important;
      background-color: #fff !important;
    }
  }
}
@media only screen and (max-width: 374px) {
  /* .table {
    & th:nth-of-type(1),
    td:nth-of-type(1) {
      width: calc(100% - 12rem) !important;
    }
    & th:nth-of-type(2),
    td:nth-of-type(2) {
      width: 12rem !important;
    }
  } */
}

/* contactform7カスタマイズ */
.confirm_area,
.thanks_area {
  display: none;
}
.wpcf7-response-output {
  display: none;
}
.wpcf7-spinner {
  display: none !important;
}
