@charset "UTF-8";
.cBouhankun {
  transform-origin: left;
  animation: bouhankun-head 6s forwards infinite;
  animation-play-state: paused;
}
.cBouhankun.is-active {
  animation-play-state: running;
}

@keyframes bouhankun-head {
  0%, 30% {
    transform: rotate(0deg);
  }
  35% {
    transform: rotate(6deg);
  }
  40% {
    transform: rotate(0deg);
  }
  45% {
    transform: rotate(6deg);
  }
  50% {
    transform: rotate(0deg);
  }
  100% {
    transform: rotate(0deg);
  }
}
.cHuman {
  transform-origin: center bottom;
  animation: human-head 6s forwards infinite;
  animation-play-state: paused;
}
.cHuman.is-active {
  animation-play-state: running;
}

@keyframes human-head {
  0%, 5% {
    transform: rotate(0deg);
  }
  10% {
    transform: rotate(-8deg);
  }
  15% {
    transform: rotate(0deg);
  }
  20% {
    transform: rotate(-5deg);
  }
  25% {
    transform: rotate(0deg);
  }
  100% {
    transform: rotate(0deg);
  }
}
.cContactButton {
  position: fixed;
  bottom: 0;
  left: 0;
  z-index: var(--z-contact-button);
  display: flex;
  align-items: center;
  justify-content: center;
  width: 100%;
  height: 48rem;
  background-color: var(--color-red);
  border-radius: 4rem 4rem 0 0;
}
.cContactButton__icon {
  position: absolute;
  top: 19rem;
  left: 24rem;
  width: 12rem;
  height: 12rem;
}
.cContactButton__text {
  margin-left: 8rem;
  font-size: 17rem;
  font-weight: 700;
  line-height: 1;
  color: var(--color-white);
  letter-spacing: 0.02em;
}
.cContactButton__arrow {
  position: absolute;
  top: 17rem;
  right: 24rem;
  width: 29rem;
  height: auto;
}

.cContact {
  position: relative;
  margin-top: -10rem;
}
.cContact__trigger {
  position: absolute;
  top: 0;
  left: 0;
  width: 10px;
  height: 100%;
  pointer-events: none;
}
.cContact__inner {
  padding: 56rem 32rem 40rem;
  background-color: var(--color-blue);
  border-radius: 8rem;
}
.cContact__title {
  color: var(--color-white);
}
.cContact__title_jp {
  font-size: 30rem;
  font-weight: 700;
  line-height: 1;
  letter-spacing: 0.02em;
}
.cContact__title_en {
  margin-top: 8rem;
  font-size: 17rem;
  font-weight: 700;
  line-height: 1.7;
  letter-spacing: 0.02em;
}
.cContact__circle {
  display: flex;
  justify-content: center;
  width: 100%;
  margin-top: 16rem;
}
.cContact__circle_inner {
  position: relative;
  width: 240rem;
  height: 240rem;
  overflow: hidden;
  background-color: var(--color-white);
  border-radius: 50%;
}
.cContact__circle_bouhankun {
  position: absolute;
  bottom: -43rem;
  left: 19rem;
  width: 96rem;
  height: 115rem;
  overflow: hidden;
}
.cContact__circle_bouhankun_inner {
  position: relative;
  width: 100%;
  height: 100%;
}
.cContact__circle_bouhankun_body {
  position: absolute;
  bottom: 0;
  left: 0;
  width: 50rem;
  height: 62rem;
}
.cContact__circle_bouhankun_head {
  position: absolute;
  top: 0;
  right: 0;
  width: 63rem;
  height: 66rem;
}
.cContact__circle_human {
  position: absolute;
  bottom: -9rem;
  left: 70rem;
  width: 150rem;
  height: 100rem;
}
.cContact__circle_human_inner {
  position: relative;
  width: 100%;
  height: 100%;
}
.cContact__circle_human_head {
  position: absolute;
  top: 0;
  left: 55rem;
  width: 60rem;
  height: 60rem;
}
.cContact__circle_human_body {
  position: absolute;
  bottom: 0;
  left: 23rem;
  width: 116rem;
  height: 51rem;
}
.cContact__content {
  margin-top: 16rem;
}
.cContact__text {
  font-size: 17rem;
  font-weight: 500;
  line-height: 1.7;
  color: var(--color-white);
  letter-spacing: 0.02em;
}
.cContact__link {
  width: 100%;
  color: var(--color-white);
}
.cContact__link--tel {
  height: 64rem;
  padding: 4rem;
  margin-top: 24rem;
  background-color: var(--color-white);
}
.cContact__link--form {
  position: relative;
  z-index: 1;
  height: 88rem;
  padding: 4rem;
  margin-top: 16rem;
  overflow: hidden;
  background-color: #bc2900;
  border-radius: 100rem;
}
.cContact__link_inner {
  display: block;
  width: 100%;
  height: 100%;
}
.cContact__link_inner--tel {
  background-color: var(--color-blue);
  border-radius: 6rem;
}
.cContact__link_inner--form {
  position: relative;
  display: flex;
  align-items: center;
  width: 100%;
  padding-left: 80rem;
  background-color: var(--color-red);
  border-radius: 100rem;
}
.cContact__link_text {
  position: relative;
  z-index: 1;
}
.cContact__link_text--tel {
  display: flex;
  gap: 7rem;
  align-items: baseline;
  justify-content: center;
  font-size: 31rem;
  font-weight: 700;
  line-height: 1.7;
  letter-spacing: 0.02em;
}
.cContact__link_text_sub {
  font-size: 18rem;
  text-transform: uppercase;
}
.cContact__link_text--form {
  font-size: 18rem;
  font-weight: 700;
  line-height: 1;
  letter-spacing: 0.02em;
}
.cContact__link_icon--form {
  position: absolute;
  top: 34rem;
  left: 26rem;
  width: 12rem;
  height: 12rem;
  background-color: var(--color-white);
}
.cContact__link_icon--form::after {
  position: absolute;
  top: 50%;
  left: 50%;
  z-index: 1;
  width: var(--w-circle, 6rem);
  height: var(--h-circle, 6rem);
  content: "";
  background-color: var(--color-red);
  border-radius: 50%;
  transform: translate(-50%, -50%);
  transition: background-color 0.3s var(--ease-out-quart);
}

@media screen and (min-width: 768px) {
  .cContact__inner {
    display: flex;
    padding: 48px 150px 48px 144px;
    border-radius: 8rem;
  }
  .cContact__title {
    display: flex;
    flex-shrink: 0;
    flex-direction: column;
    justify-content: center;
  }
  .cContact__title_jp {
    font-size: 32rem;
  }
  .cContact__title_en {
    font-size: 19rem;
  }
  .cContact__circle {
    flex-shrink: 0;
    width: 28.57vw;
    height: 28.57vw;
    margin: 0 0 0 4.5vw;
  }
  .cContact__circle_inner {
    width: 100%;
    height: 100%;
  }
  .cContact__circle_bouhankun {
    bottom: -2.45vw;
    left: 7.41vw;
    width: 6.35vw;
    height: 7.61vw;
  }
  .cContact__circle_bouhankun_head {
    width: 4.17vw;
    height: 4.37vw;
  }
  .cContact__circle_bouhankun_body {
    width: 3.31vw;
    height: 4.1vw;
  }
  .cContact__circle_human {
    bottom: -0.46vw;
    left: 10.78vw;
    width: 9.92vw;
    height: 6.61vw;
  }
  .cContact__circle_human_head {
    left: 3.64vw;
    width: 3.97vw;
    height: 3.97vw;
  }
  .cContact__circle_human_body {
    left: 1.52vw;
    width: 7.67vw;
    height: 3.37vw;
  }
  .cContact__content {
    display: flex;
    flex-direction: column;
    justify-content: center;
    margin: 0 0 0 80rem;
  }
  .cContact__text {
    font-size: 18rem;
  }
  .cContact__link {
    width: 430rem;
  }
  .cContact__link--tel {
    margin-top: 32rem;
    pointer-events: none;
  }
  .cContact__link--form {
    height: 64rem;
    margin-top: 16rem;
  }
  .cContact__link--form::before {
    position: absolute;
    top: -25%; /* 中心から要素の半分を引く */
    left: -25%;
    z-index: 0;
    width: 150%;
    height: 150%;
    content: "";
    background-color: #df3101;
    clip-path: circle(0% at 50% 50%);
    transition: clip-path 0.5s var(--ease-out-expo);
  }
  .cContact__link_inner--form {
    height: 56rem;
    padding-left: 128rem;
    overflow: hidden;
  }
  .cContact__link_inner--form::before {
    position: absolute;
    top: -25%; /* 中心から要素の半分を引く */
    left: -25%;
    z-index: 0;
    width: 150%;
    height: 150%;
    content: "";
    background-color: #f43500;
    clip-path: circle(0% at 50% 50%);
    transition: clip-path 0.5s var(--ease-out-expo);
  }
  .cContact__link_icon--form {
    top: 22rem;
    left: 26rem;
    width: 12rem;
    height: 12rem;
  }
}
@media screen and (min-width: 768px) and (any-hover: hover) {
  .cContact__link--form .cContact__link_inner::before {
    transition: clip-path 0.3s var(--ease-out-quart);
  }
  .cContact__link--form .cContact__link_icon {
    transition: transform 0.3s var(--ease-out-quart);
  }
  .cContact__link--form:hover::before {
    clip-path: circle(50% at 50% 50%);
  }
  .cContact__link--form:hover .cContact__link_inner::before {
    clip-path: circle(50% at 50% 50%);
  }
  .cContact__link--form:hover .cContact__link_icon {
    transition: transform 0.3s var(--ease-out-quart);
  }
  .cContact__link--form:hover .cContact__link_icon--form {
    transform: scale(1.5);
    transition: transform 0.3s var(--ease-out-expo);
  }
}
.cFvTitle--works {
  padding: 104rem 32rem 32rem;
}
.cFvTitle--security {
  padding: 102rem 32rem 40rem;
}

.cWrapper {
  width: 100%;
  background-color: var(--color-gray03);
}
.cWrapper__inner {
  overflow: hidden;
  background-color: var(--color-breadcrumb-bottom, var(--color-white));
  border-radius: 32rem 32rem 0 0;
}

.cBreadcrumbs {
  width: 100%;
  overflow: hidden;
}
.cBreadcrumbs__list {
  display: flex;
  flex-wrap: wrap;
  gap: 4rem 12rem;
  align-items: center;
  justify-content: flex-end;
  padding: 6rem 16rem;
}
.cBreadcrumbs__item {
  position: relative;
  display: flex;
  gap: 10rem;
  align-items: center;
  font-size: 12rem;
  font-weight: 700;
  line-height: 1;
  letter-spacing: 0;
}
.cBreadcrumbs__item::after {
  width: 12rem;
  height: 16rem;
  content: "";
  background-image: url("data:image/svg+xml,%3csvg%20width='10'%20height='16'%20viewBox='0%200%2010%2016'%20fill='none'%20xmlns='http://www.w3.org/2000/svg'%3e%3cpath%20d='M9%201.07178L1%2014.9282'%20stroke='%23111111'%20stroke-width='2'/%3e%3c/svg%3e");
  background-repeat: no-repeat;
  background-position: 0 0;
  background-size: 100%;
}
.cBreadcrumbs__item:last-child {
  color: var(--color-blue);
}
.cBreadcrumbs__item:last-child::after {
  content: none;
}

@media screen and (min-width: 768px) {
  .cFvTitle--works {
    padding: 152rem 88rem 50rem;
  }
  .cFvTitle--security {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    height: 398rem;
    padding: 102rem 88rem 48rem;
  }
  .cWrapper__inner {
    background-color: var(--color-breadcrumb-bottom, var(--color-white));
    border-radius: 72rem 72rem 0 0;
  }
  .cBreadcrumbs__list {
    gap: 12rem;
    padding: 8rem 88rem;
  }
  .cBreadcrumbs__item {
    font-size: 14rem;
  }
}
@media screen and (min-width: 768px) and (any-hover: hover) {
  .cHoverText {
    transition: color 0.3s var(--ease-out-expo);
  }
  .cHoverText:hover {
    color: var(--color-red);
  }
}
@keyframes linehover-animation-out {
  0% {
    background-position: right 100%;
    background-size: 100% 1px;
  }
  100% {
    background-position: right 100%;
    background-size: 0 1px;
  }
}
@keyframes linehover-animation-in {
  0% {
    background-position: left 100%;
    background-size: 0 1px;
  }
  100% {
    background-position: left 100%;
    background-size: 100% 1px;
  }
}
.pFv {
  width: 100%;
}
.pFv__title {
  font-size: 30rem;
  font-weight: 700;
  line-height: 1.5;
  letter-spacing: 0.02em;
}

.pPrivacyPolicy {
  --color-breadcrumb-bottom: var(--color-white);
}
.pPrivacyPolicy__body {
  padding: 40rem 32rem;
  background-color: var(--color-white);
}
.pPrivacyPolicy__text {
  font-size: 16rem;
  font-weight: 500;
  line-height: 2;
  letter-spacing: 0.02em;
}
.pPrivacyPolicy__inner {
  display: flex;
  flex-direction: column;
  gap: 32rem;
  margin-top: 40rem;
}
.pPrivacyPolicy__item_headline {
  display: flex;
  gap: 16rem;
  align-items: center;
}
.pPrivacyPolicy__item_headline_number {
  font-family: var(--font-en);
  font-size: 26rem;
  font-weight: 500;
  line-height: 1;
  letter-spacing: 0;
}
.pPrivacyPolicy__item_headline_text {
  font-size: 22rem;
  font-weight: 700;
  line-height: 1;
  letter-spacing: 0.02em;
}
.pPrivacyPolicy__item_wrapper {
  padding: 4rem 0;
  margin-top: 18rem;
  background-color: var(--color-blue);
}
.pPrivacyPolicy__item_inner {
  padding: 26rem 0;
  background-color: var(--color-white);
  border-radius: 12rem;
}
.pPrivacyPolicy__item_text {
  font-size: 16rem;
  font-weight: 500;
  line-height: 2;
  letter-spacing: 0.02em;
}
.pPrivacyPolicy__item_text_link {
  position: relative;
  display: inline;
  color: var(--color-green);
  word-break: break-all;
  background-image: linear-gradient(var(--color-green), var(--color-green));
  background-repeat: no-repeat;
  background-position: 0 100%;
  background-size: 100% 1px;
}
.pPrivacyPolicy__item_list {
  display: flex;
  flex-direction: column;
  padding-left: 9rem;
}
.pPrivacyPolicy__item_list_wrapper {
  display: flex;
  flex-direction: column;
  gap: 4rem;
  padding: 16rem;
  margin-top: 16rem;
  background-color: var(--color-gray04);
}
.pPrivacyPolicy__item_list_headline {
  font-size: 15rem;
  font-weight: 700;
  line-height: 2;
  letter-spacing: 0.02em;
}
.pPrivacyPolicy__item_list_item {
  display: flex;
  gap: 8rem;
  font-size: 15rem;
  font-weight: 500;
  line-height: 2;
  letter-spacing: 0.02em;
  counter-increment: list-item;
}
.pPrivacyPolicy__item_list_item::before {
  display: block;
  content: "•";
}
.pPrivacyPolicy__item_list_item--ol {
  gap: 3rem;
}
.pPrivacyPolicy__item_list_item--ol::before {
  content: counter(list-item) ".";
}
.pPrivacyPolicy__item_contact {
  display: flex;
  flex-direction: column;
  gap: 16rem;
  padding: 16rem 24rem;
  margin-top: 16rem;
  background-color: var(--color-gray04);
}
.pPrivacyPolicy__item_contact_headline {
  width: -moz-fit-content;
  width: fit-content;
  font-size: 16rem;
  font-weight: 700;
  line-height: 1.6;
  border-bottom: 2rem solid var(--color-black);
}
.pPrivacyPolicy__item_contact_body {
  font-size: 16rem;
  font-weight: 500;
  line-height: 2;
  letter-spacing: 0.02em;
}

@media screen and (min-width: 768px) {
  .pFv {
    display: flex;
    justify-content: space-between;
  }
  .pFv__title {
    font-size: 40rem;
  }
  .pPrivacyPolicy__body {
    display: flex;
    flex-direction: column;
    align-items: center;
    padding: 106rem 0 96rem;
  }
  .pPrivacyPolicy__text {
    width: 873rem;
    font-size: 15rem;
  }
  .pPrivacyPolicy__inner {
    gap: 64rem;
    width: 873rem;
    margin-top: 72rem;
  }
  .pPrivacyPolicy__item_headline {
    gap: 16rem;
  }
  .pPrivacyPolicy__item_headline_number {
    font-size: 28rem;
  }
  .pPrivacyPolicy__item_headline_text {
    font-size: 22rem;
  }
  .pPrivacyPolicy__item_inner {
    padding: 26rem 32rem;
  }
  .pPrivacyPolicy__item_text {
    font-size: 15rem;
  }
  .pPrivacyPolicy__item_list {
    padding-left: 7rem;
  }
  .pPrivacyPolicy__item_list_wrapper {
    padding: 22rem 32rem;
  }
  .pPrivacyPolicy__item_list_headline {
    font-size: 14rem;
  }
  .pPrivacyPolicy__item_list_item {
    font-size: 14rem;
  }
  .pPrivacyPolicy__item_contact {
    flex-direction: row;
    gap: 32rem;
    align-items: flex-start;
    padding: 24rem 32rem;
  }
  .pPrivacyPolicy__item_contact_headline {
    height: -moz-fit-content;
    height: fit-content;
    padding-bottom: 2rem;
    font-size: 16rem;
  }
  .pPrivacyPolicy__item_contact_body {
    font-size: 14rem;
  }
  .pPrivacyPolicy__item_contact_body_inner {
    display: flex;
    gap: 16rem;
  }
}
@media screen and (min-width: 768px) and (any-hover: hover) {
  .pPrivacyPolicy__item_text_link:hover {
    animation: linehover-animation-out 0.2s forwards, linehover-animation-in 0.2s 0.2s forwards;
  }
}