/*
* 1. Immediately jump any animation to the end point
* 2. Remove transitions & fixed background attachment
* See: https://github.com/mozdevs/cssremedy/issues/11
*/
@media (prefers-reduced-motion: reduce) {
  *,
::before,
::after {
    -webkit-animation-delay: -1ms !important;
            animation-delay: -1ms !important;
    -webkit-animation-duration: 1ms !important;
            animation-duration: 1ms !important;
    -webkit-animation-iteration-count: 1 !important;
            animation-iteration-count: 1 !important;
    background-attachment: initial !important;
    scroll-behavior: auto !important;
    transition-delay: 0s !important;
    transition-duration: 0s !important;
  }
}
html.js.config-allow-motion:not(.js-scroll-effect-started) .inview {
  opacity: 0;
}

:root {
  --effect-duration: 0.8s;
  --effect-distance: 30px;
  --effect-distance-: calc(var(--effect-distance) * -1);
  --effect-delay-base: 0.5s;
  --effect-delay: 0.5s;
  --effect-timing-function: cubic-bezier(0.61, 1, 0.88, 1);
  --effect-scaleDown-initial: 1.3;
  --effect-fadein-after-opacity: 1;
  --effect-clip-after-opacity: 1;
}

:where(html.config-allow-motion) .effect0 {
  --effect-delay: calc(var(--effect-delay-base) * 0);
}
:where(html.config-allow-motion) :where([class*=effect]) {
  --effect-delay: calc(var(--effect-delay-base) * var(--effect-order));
  transition-delay: var(--effect-delay);
  transition-duration: var(--effect-duration);
  transition-timing-function: var(--effect-timing-function);
}
:where(html.config-allow-motion) :where([class*=effect]).duration-slow {
  transition-duration: calc(var(--effect-duration) * 1.5);
}
:where(html.config-allow-motion) :where([class*=effect]).duration-quick {
  transition-duration: calc(var(--effect-duration) * 0.75);
}
:where(html.config-allow-motion) :where([class*=effect]).delay-slow {
  transition-delay: calc(var(--effect-delay) * 1.5);
}
:where(html.config-allow-motion) :where([class*=effect]).delay-quick {
  transition-delay: calc(var(--effect-delay) * 0.75);
}
:where(html.config-allow-motion) :where([class*=effect]).fadein {
  opacity: 0;
  transition-property: opacity;
}
:where(html.config-allow-motion) :where([class*=effect]).fadein.js-fire {
  opacity: var(--effect-fadein-after-opacity);
}
:where(html.config-allow-motion) :where([class*=effect]):is(.fadeinUp, .fadeinDown, .fadeinLeft, .fadeinRight) {
  opacity: 0;
  transition-property: opacity, transform;
}
:where(html.config-allow-motion) :where([class*=effect]):is(.fadeinUp, .fadeinDown, .fadeinLeft, .fadeinRight).js-fire {
  opacity: var(--effect-fadein-after-opacity);
  transform: none !important;
}
:where(html.config-allow-motion) :where([class*=effect]).fadeinUp {
  transform: translate(0, var(--effect-distance));
}
:where(html.config-allow-motion) :where([class*=effect]).fadeinUp.effect-100p {
  transform: translate(0, 100%);
}
:where(html.config-allow-motion) :where([class*=effect]).fadeinDown {
  transform: translate(0, var(--effect-distance-));
}
:where(html.config-allow-motion) :where([class*=effect]).fadeinDown.effect-100p {
  transform: translate(0, -100%);
}
:where(html.config-allow-motion) :where([class*=effect]).fadeinLeft {
  transform: translate(var(--effect-distance), 0);
}
:where(html.config-allow-motion) :where([class*=effect]).fadeinLeft.effect-100p {
  transform: translate(100%, 0);
}
:where(html.config-allow-motion) :where([class*=effect]).fadeinLeft.effect-50p {
  transform: translate(50%, 0);
}
:where(html.config-allow-motion) :where([class*=effect]).fadeinRight {
  transform: translate(var(--effect-distance-), 0);
}
:where(html.config-allow-motion) :where([class*=effect]).fadeinRight.effect-100p {
  transform: translate(-100%, 0);
}
:where(html.config-allow-motion) :where([class*=effect]).fadeinRight.effect-50p {
  transform: translate(-50%, 0);
}
:where(html.config-allow-motion) :where([class*=effect]):is(.fadein2) > *:not([class*=effect]) {
  opacity: 0;
  transition-duration: var(--effect-duration);
  transition-delay: var(--effect-delay);
  transition-timing-function: var(--effect-timing-function);
  will-change: opacity, translate;
}
:where(html.config-allow-motion) :where([class*=effect]):is(.fadein2).js-fire > *:not([class*=effect]) {
  opacity: var(--effect-fadein-after-opacity);
  transform: none !important;
}
:where(html.config-allow-motion) :where([class*=effect]).fadein2 > *:not([class*=effect]) {
  transform: translate(0, var(--effect-distance));
}
:where(html.config-allow-motion) :where([class*=effect]):is(.clipLeft, .clipRight) {
  opacity: 0;
  will-change: clip-path, opacity;
  transition-duration: var(--effect-duration);
  transition-delay: var(--effect-delay);
  transition-timing-function: var(--effect-timing-function);
}
:where(html.config-allow-motion) :where([class*=effect]):is(.clipLeft, .clipRight).js-fire {
  opacity: var(--effect-clip-after-opacity);
  -webkit-clip-path: polygon(0% 0%, 100% 0%, 100% 100%, 0% 100%) !important;
          clip-path: polygon(0% 0%, 100% 0%, 100% 100%, 0% 100%) !important;
}
:where(html.config-allow-motion) :where([class*=effect]).clipLeft {
  -webkit-clip-path: polygon(0% 0%, 0% 0%, 0% 100%, 0% 100%);
          clip-path: polygon(0% 0%, 0% 0%, 0% 100%, 0% 100%);
}
:where(html.config-allow-motion) :where([class*=effect]).clipRight {
  -webkit-clip-path: polygon(100% 0%, 100% 0%, 100% 100%, 100% 100%);
          clip-path: polygon(100% 0%, 100% 0%, 100% 100%, 100% 100%);
}
:where(html.config-allow-motion) :where([class*=effect]):is(.scaleUp, .scaleDown) {
  transition-property: transform;
  will-change: transform;
}
:where(html.config-allow-motion) :where([class*=effect]):is(.scaleUp, .scaleDown).js-fire {
  transform: scale(1);
}
:where(html.config-allow-motion) :where([class*=effect]):where(.scaleUp, .scaleDown) {
  display: block;
}
:where(html.config-allow-motion) :where([class*=effect]).scaleUp {
  transform: scale(0);
}
:where(html.config-allow-motion) :where([class*=effect]).scaleDown {
  transform: scale(var(--effect-scaleDown-initial));
}

.bl-projects {
  margin: auto;
}
.bl-projects__items {
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
}
@media print, screen and (min-width: 768.1px) {
  .bl-projects {
    padding: 0 10px;
    max-width: 1020px;
    width: 100%;
  }
  .bl-projects__items {
    margin-top: 50px;
    gap: 50px;
  }
  .bl-projects__item {
    width: 47.5%;
  }
}
@media screen and (max-width: 768px) {
  .bl-projects__items {
    margin-top: 9.3333333333vw;
    flex-wrap: wrap;
    gap: 10.1333333333vw;
  }
  .bl-projects__item {
    width: 100%;
  }
}

.bl-projects-item {
  --type-width: 6.2em;
  display: flex;
  flex-direction: column;
}
.bl-projects-item__title {
  order: 1;
  padding-top: 0.5em;
  font-weight: 700;
  font-size: 20px;
  margin-block: var(--leading-trim);
  line-height: 1.75;
}
.bl-projects-item__image {
  order: -1;
}
.bl-projects-item__image img {
  width: 100%;
}
.bl-projects-item__tags {
  order: 0;
  margin-top: 1.75em;
  display: flex;
  flex-wrap: wrap;
  gap: 10px;
}
.bl-projects-item__tag {
  padding: 0 19px 0.2em;
  background: #595757;
  color: #fff;
  font-size: 0.75rem;
  --font-size: 12;
  line-height: 1.6666666667;
  text-align: center;
}
.bl-projects-item__list {
  order: 2;
  margin-top: 1.6em;
  font-size: 0.9375rem;
  --font-size: 15;
  line-height: 1.4666666667;
  display: flex;
  flex-wrap: wrap;
  gap: 1em 0;
}
.bl-projects-item__list-type {
  width: var(--type-width);
}
.bl-projects-item__list-data {
  width: calc(100% - var(--type-width));
}
@media screen and (max-width: 768px) {
  .bl-projects-item__title, .bl-projects-item__tags, .bl-projects-item__list {
    margin-inline: auto;
    width: 86.6666666667vw;
  }
  .bl-projects-item__title {
    font-size: 5.3333333333vw;
  }
  .bl-projects-item__tags {
    margin-top: 10.6666666667vw;
  }
  .bl-projects-item__tag {
    font-size: 3.3333333333vw;
  }
  .bl-projects-item__list {
    font-size: 4vw;
  }
}

.bl-title-area {
  background: #595757;
  color: #fff;
  overflow: clip;
}
.bl-title-area__inner {
  margin: auto;
  display: flex;
  align-items: center;
  position: relative;
  z-index: 0;
}
.bl-title-area__title {
  font-weight: 700;
}
.bl-title-area__title :is(.en, .ja) {
  display: block;
}
.bl-title-area__title .ja {
  font-size: 3.125rem;
  --font-size: 50;
  line-height: 1;
  letter-spacing: 0.07em;
}
.bl-title-area__title .en {
  margin-top: 0.7em;
  font-size: 1.25rem;
  --font-size: 20;
  line-height: 1;
  letter-spacing: 0.04em;
}
.bl-title-area__logo {
  color: #504E4E;
  position: absolute;
  z-index: -1;
}
@media print, screen and (min-width: 768.1px) {
  .bl-title-area {
    margin-bottom: 100px;
  }
  .bl-title-area__inner {
    max-width: 1366px;
    height: 230px;
  }
  .bl-title-area__title {
    padding-left: 13.17715959%;
  }
  .bl-title-area__logo {
    font-size: 500px;
    right: -8px;
    top: -110px;
  }
}
@media screen and (max-width: 768px) {
  .bl-title-area {
    margin-bottom: 10.6666666667vw;
  }
  .bl-title-area__inner {
    padding-left: 6.6666666667vw;
    height: 26.6666666667vw;
  }
  .bl-title-area__title .ja {
    font-size: 6.6666666667vw;
  }
  .bl-title-area__title .en {
    font-size: 2.6666666667vw;
  }
  .bl-title-area__logo {
    font-size: 56vw;
    right: -0.9333333333vw;
    top: -12vw;
  }
}

.bl-button {
  width: 100%;
}
.bl-button .icomoon {
  margin-left: 0.5em;
}
@media print, screen and (min-width: 768.1px) {
  .bl-button {
    margin-top: 62px;
    height: 80px;
  }
  .bl-button .icomoon {
    font-size: 15px;
  }
}
@media screen and (max-width: 768px) {
  .bl-button {
    margin: 10.4vw auto 0;
    padding: 0 2.6666666667vw 0 5.7333333333vw;
    height: 21.3333333333vw;
    width: 86.6666666667vw;
  }
  .bl-button .text, .bl-button .icomoon {
    font-size: 4vw;
    line-height: 1.5;
  }
  .bl-button .icomoon {
    margin-left: 0;
  }
}

.bl-category {
  margin: auto;
  display: flex;
  flex-wrap: wrap;
}
.bl-category__link {
  width: 100%;
  color: var(--color-text);
  border: solid 1px var(--color-border);
  background-color: var(--color-background);
  display: grid;
  place-items: center;
  opacity: 1;
  transition: opacity 0.25s;
  --color-border: #03863E;
  --color-text: #03863E;
  --color-background: #fff;
}
.bl-category__link.mod_active {
  --color-border: #03863E;
  --color-text: #fff;
  --color-background: #03863E;
}
@media (hover: hover) {
  .bl-category__link:hover {
    opacity: 0.5;
  }
}
@media print, screen and (min-width: 768.1px) {
  .bl-category {
    margin-top: 60px;
    gap: 10px;
    justify-content: flex-end;
  }
  .bl-category__link {
    padding: 0 20px 0.12em;
    min-width: 150px;
    height: 30px;
    font-size: 15px;
  }
}
@media screen and (max-width: 768px) {
  .bl-category {
    margin-top: 10.6666666667vw;
    width: 86.6666666667vw;
    gap: 1.7333333333vw;
  }
  .bl-category[data-count="2"] {
    flex-wrap: nowrap;
  }
  .bl-category__link {
    padding: 0 1.3333333333vw 0.12em;
    width: 27.7333333333vw;
    height: 7.7333333333vw;
  }
}

.bl-other-projects {
  margin: auto;
}
.bl-other-projects__item {
  border: solid 1px #595757;
  border-width: 1px 0 0 0;
}
.bl-other-projects__item:last-of-type {
  border-bottom-width: 1px;
}
@media print, screen and (min-width: 768.1px) {
  .bl-other-projects {
    margin-top: 180px;
    padding-inline: 10px;
    width: 100%;
    max-width: 1020px;
  }
  .bl-other-projects__items {
    margin-top: 61px;
  }
}
@media screen and (max-width: 768px) {
  .bl-other-projects {
    margin-top: 42.6666666667vw;
    width: 86.6666666667vw;
  }
  .bl-other-projects__items {
    margin-top: 10.4vw;
  }
  .bl-other-projects__item {
    padding: 6.6666666667vw 0;
  }
}

.bl-other-project-item__title {
  font-weight: 700;
  font-size: 20px;
  margin-block: var(--leading-trim);
  line-height: 1.75;
}
.bl-other-project-item__tag {
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  gap: 5px;
}
.bl-other-project-item__tag.mod_all {
  --color-border: #03863E;
  --color-text: #03863E;
  --color-background: #fff;
}
.bl-other-project-item__tag.mod_public {
  --color-border: #03863E;
  --color-text: #fff;
  --color-background: #03863E;
}
.bl-other-project-item__tag.mod_private {
  --color-border: #595757;
  --color-text: #fff;
  --color-background: #595757;
}
.bl-other-project-item__tag .tag {
  padding: 0 19px 0.1em;
  color: var(--color-text);
  border: solid 1px var(--color-border);
  background-color: var(--color-background);
  display: inline-flex;
  align-items: center;
  justify-content: center;
}
@media print, screen and (min-width: 768.1px) {
  .bl-other-project-item {
    padding: 30px 0;
    display: flex;
    align-items: flex-start;
  }
  .bl-other-project-item__title {
    order: 3;
    width: 74.0196078431%;
  }
  .bl-other-project-item__tag {
    order: 1;
    width: 12.7450980392%;
    font-size: 12px;
  }
  .bl-other-project-item__tag .tag {
    height: 20px;
  }
  .bl-other-project-item__date {
    order: 2;
    width: 13.2352941176%;
    font-size: 0.9375rem;
    --font-size: 15;
    line-height: 1.3333333333;
  }
}
@media screen and (max-width: 768px) {
  .bl-other-project-item {
    display: grid;
    grid-template-columns: 34.6666666667vw auto;
    grid-template-rows: auto auto;
    grid-template-areas: "tag date" "title title";
  }
  .bl-other-project-item__title {
    grid-area: title;
    padding-top: 5.6vw;
    font-size: 40px;
    margin-block: var(--leading-trim);
    line-height: 1.5;
    font-size: 5.3333333333vw;
  }
  .bl-other-project-item__tag, .bl-other-project-item__date {
    line-height: 5.3333333333vw;
  }
  .bl-other-project-item__tag {
    grid-area: tag;
    font-size: 3.3333333333vw;
  }
  .bl-other-project-item__tag .tag {
    width: -webkit-fit-content;
    width: -moz-fit-content;
    width: fit-content;
    height: 5.3333333333vw;
  }
  .bl-other-project-item__date {
    grid-area: date;
  }
}

.bl-pager .screen-reader-text {
  position: absolute;
  left: -9999px;
}
.bl-pager .nav-links {
  display: flex;
  align-items: center;
  justify-content: space-between;
}
.bl-pager .group {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  justify-content: center;
  gap: var(--gap);
}
.bl-pager .page-numbers {
  border: 1px solid #595757;
  width: var(--box-size);
  height: var(--box-size);
  display: grid;
  place-items: center;
  font-size: var(--number-font-size);
  color: #231815;
  transition: color 0.25s, background-color 0.25s;
}
.bl-pager .page-numbers.current {
  background: #595757;
  color: #fff;
}
.bl-pager .page-numbers.next, .bl-pager .page-numbers.prev {
  color: #000;
}
.bl-pager :is(.group-previous, .group-next) .icomoon {
  padding-top: 0.2em;
  font-size: var(--symbol-font-size);
}
.bl-pager a[href=""] {
  visibility: hidden;
  pointer-events: none;
}
@media (hover: hover) {
  .bl-pager .page-numbers:not(.current):hover {
    background: #595757;
    color: #fff;
  }
}
@media print, screen and (min-width: 768.1px) {
  .bl-pager {
    margin-top: 120px;
    --gap: 10px;
    --box-size: 60px;
    --number-font-size: 18px;
    --symbol-font-size: 16px;
  }
}
@media screen and (max-width: 768px) {
  .bl-pager {
    margin: 10.2666666667vw auto 0;
    max-width: 86.6666666667vw;
    --gap: 1.3333333333vw;
    --box-size: 10.6666666667vw;
    --number-font-size: 4vw;
    --symbol-font-size: 2.9333333333vw;
  }
}

.bl-mainframe {
  --effect-duration: 0.8s;
  --effect-delay-base: 0.15s;
}

:where(.bl-footer) {
  position: relative;
  position: -webkit-sticky;
  position: sticky;
  top: 100vh;
  z-index: 1;
}

.bl-footer {
  background: #F2F2F2;
}
.bl-footer__gotop {
  border: solid 1px transparent;
  border-radius: 50%;
  color: #fff;
  width: var(--size);
  height: var(--size);
  background: #03863E;
  opacity: 1;
  position: fixed;
  z-index: 2;
  transition: background-color 0.25s, color 0.25s, border-color 0.25s, opacity 0.25s;
  display: grid;
  place-items: center;
}
.bl-footer__logo {
  display: flex;
  align-items: center;
}
.bl-footer__logo .logo {
  color: #27a639;
}
.bl-footer__address .map {
  border: solid 1px transparent;
  color: #fff;
  background: #B3B3B3;
  display: grid;
  place-items: center;
  transition: color 0.25s, background-color 0.25s, border-color 0.25s;
}
.bl-footer__tel {
  display: block;
  font-weight: 700;
}
.bl-footer__navigation {
  padding-top: 5px;
}
.bl-footer__main-items, .bl-footer__sub-items {
  display: flex;
  flex-wrap: wrap;
  justify-content: flex-end;
}
.bl-footer__copyright {
  display: block;
}
@media (hover: hover) {
  .bl-footer__gotop:hover {
    border-color: #03863E;
    color: #03863E;
    background-color: #fff;
  }
  .bl-footer__address .map:hover {
    border-color: #B3B3B3;
    color: #B3B3B3;
    background-color: #fff;
  }
}
@media print, screen and (min-width: 768.1px) {
  .bl-footer {
    --padding-left: 70px;
    --padding-right: 65px;
    --main-items-gap: 40px;
    margin-top: 136px;
    padding: 100px var(--padding-right) 119px var(--padding-left);
    display: flex;
    justify-content: space-between;
  }
}
@media print and (max-width: 910px), screen and (min-width: 768.1px) and (max-width: 910px) {
  .bl-footer {
    --padding-left: 30px;
    --padding-right: var(--padding-left);
    --main-items-gap: 20px;
  }
}
@media print, screen and (min-width: 768.1px) {
  .bl-footer__gotop {
    --size: 80px;
    right: 60px;
    bottom: 60px;
  }
}
@media print, screen and (min-width: 768.1px) {
  .bl-footer__logo .logo {
    font-size: 56px;
  }
  .bl-footer__logo .text {
    margin-left: 8px;
    font-size: 30px;
  }
}
@media print, screen and (min-width: 768.1px) {
  .bl-footer__address {
    margin-top: 30px;
    display: flex;
    align-items: center;
  }
  .bl-footer__address .address {
    font-size: 0.875rem;
    --font-size: 14;
    line-height: 1;
    letter-spacing: 0.1em;
  }
  .bl-footer__address .map {
    margin-left: 8px;
    width: 100px;
    height: 20px;
    font-size: 0.75rem;
    --font-size: 12;
  }
}
@media print, screen and (min-width: 768.1px) {
  .bl-footer__tel {
    margin-top: 6px;
  }
  .bl-footer__tel .heading {
    font-size: 1.5625rem;
    --font-size: 25;
  }
  .bl-footer__tel .number {
    margin-left: 3px;
    font-size: 2.6875rem;
    --font-size: 43;
  }
}
@media print, screen and (min-width: 768.1px) {
  .bl-footer__main-items {
    gap: var(--main-items-gap);
  }
}
@media print, screen and (min-width: 768.1px) {
  .bl-footer__main-item {
    font-size: 0.9375rem;
    --font-size: 15;
    line-height: 1;
    letter-spacing: 0.1em;
  }
}
@media print, screen and (min-width: 768.1px) {
  .bl-footer__sub-items {
    margin-top: 76px;
    gap: 25px;
  }
}
@media print, screen and (min-width: 768.1px) {
  .bl-footer__sub-item {
    font-size: 0.625rem;
    --font-size: 10;
  }
}
@media print, screen and (min-width: 768.1px) {
  .bl-footer__copyright {
    margin-top: 23px;
    font-size: 0.625rem;
    --font-size: 10;
    line-height: 1;
    letter-spacing: 0.05em;
    text-align: right;
  }
}
@media print, screen and (min-width: 768.1px) {
  .bl-footer.js-fire .bl-footer__gotop {
    position: absolute;
    top: -30px;
    right: 60px;
  }
}
@media screen and (max-width: 768px) {
  .bl-footer {
    margin-top: 22vw;
    padding: 21.0666666667vw 6.8vw 21.3333333333vw;
  }
  .bl-footer__gotop {
    --size: 12vw;
    right: 4vw;
    bottom: 4vw;
  }
  .bl-footer__logo .logo {
    font-size: 14.8666666667vw;
  }
  .bl-footer__logo .text {
    margin-left: 2.1333333333vw;
    font-size: 7.9066666667vw;
  }
  .bl-footer__address {
    margin-top: 6.6666666667vw;
    font-size: 4vw;
  }
  .bl-footer__address :is(.address, .map) {
    margin-inline: auto;
  }
  .bl-footer__address .address {
    display: block;
    text-align: center;
    letter-spacing: 0.1em;
    text-indent: 0.1em;
  }
  .bl-footer__address .map {
    margin-top: 2.5333333333vw;
    width: 32vw;
    height: 6.6666666667vw;
  }
  .bl-footer__tel {
    margin-top: 3.6vw;
    text-align: center;
  }
  .bl-footer__tel .heading {
    font-size: 5.3333333333vw;
  }
  .bl-footer__tel .number {
    font-size: 8.6666666667vw;
  }
  .bl-footer__navigation {
    padding-top: 13.3333333333vw;
  }
  .bl-footer__main-item {
    border-top: 1px solid #C8C8C8;
    width: 100%;
    height: 13.3333333333vw;
    font-size: 4vw;
    letter-spacing: 0.1em;
    text-indent: 0.1em;
    display: flex;
    align-items: center;
  }
  .bl-footer__main-item:last-of-type {
    border-bottom: 1px solid #C8C8C8;
  }
  .bl-footer__sub-items {
    padding-top: 13.0666666667vw;
    display: flex;
    flex-direction: column;
    gap: 4.8vw;
  }
  .bl-footer__sub-item {
    font-size: 2.6666666667vw;
  }
  .bl-footer__copyright {
    margin-top: 10.4vw;
    font-size: 2.6666666667vw;
    letter-spacing: 0.0533333333vw;
  }
}

.bl-footer-contact {
  margin: auto;
}
.bl-footer-contact__description {
  text-align: center;
}
.bl-footer-contact__section-title {
  text-align: center;
}
.bl-footer-contact__tel {
  font-weight: 700;
  display: block;
}
.bl-footer-contact__time {
  white-space: nowrap;
}
@media print, screen and (min-width: 768.1px) {
  .bl-footer-contact {
    margin-top: 135px;
    max-width: 900px;
  }
  .bl-footer-contact__cols {
    margin-top: 48px;
    display: flex;
  }
  .bl-footer-contact__section {
    padding: 18px 8px;
    width: 50%;
    display: flex;
    flex-direction: column;
    align-items: center;
  }
  .bl-footer-contact__section:first-of-type {
    border-right: 1px solid #C8C8C8;
  }
  .bl-footer-contact__section-title {
    font-size: 1.125rem;
    --font-size: 18;
  }
  .bl-footer-contact__tel {
    margin-top: 31px;
  }
  .bl-footer-contact__tel .heading {
    font-size: 30px;
  }
  .bl-footer-contact__tel .number {
    margin-left: 2px;
    font-size: 40px;
  }
  .bl-footer-contact__time {
    margin-top: 20px;
    font-size: 0.875rem;
    --font-size: 14;
    line-height: 1;
    letter-spacing: -0.01em;
    text-indent: -0.01em;
  }
  .bl-footer-contact__button {
    margin-top: 29px;
  }
}
@media screen and (max-width: 768px) {
  .bl-footer-contact {
    margin-top: 21.0666666667vw;
    width: 86.6666666667vw;
  }
  .bl-footer-contact__cols {
    margin-top: 9.0666666667vw;
    display: flex;
    flex-direction: column;
    gap: 2.6666666667vw;
  }
  .bl-footer-contact__section {
    padding: 6.6666666667vw 1.3333333333vw;
    border: solid 1px #C8C8C8;
    text-align: center;
  }
  .bl-footer-contact__section-title {
    font-size: 4vw;
  }
  .bl-footer-contact__tel {
    padding-top: 3.2vw;
  }
  .bl-footer-contact__tel .heading {
    font-size: 7.2vw;
  }
  .bl-footer-contact__tel .number {
    margin-left: 1.0666666667vw;
    font-size: 9.6vw;
  }
  .bl-footer-contact__time {
    padding-top: 2vw;
    font-size: 1.875rem;
    --font-size: 30;
    line-height: 1;
    letter-spacing: -0.01em;
    text-indent: -0.01em;
    font-size: 4vw;
  }
  .bl-footer-contact__button {
    margin: 4.4vw auto 0;
  }
}

.bl-footer-recruit {
  margin: auto;
  max-width: 100%;
}
.bl-footer-recruit__required {
  font-weight: 700;
  font-size: 38px;
  margin-block: var(--leading-trim);
  line-height: 1.5631578947;
  letter-spacing: 0.07em;
}
@media print, screen and (min-width: 768.1px) {
  .bl-footer-recruit {
    margin-top: 150px;
    padding: 90px 0 100px 100px;
    width: 1000px;
    position: relative;
    z-index: 0;
  }
  .bl-footer-recruit__contents {
    width: 350px;
  }
  .bl-footer-recruit__required {
    padding-top: 77px;
    white-space: nowrap;
  }
  .bl-footer-recruit__button-pc {
    margin-top: 50px;
  }
  .bl-footer-recruit__image {
    background: #F2F2F2;
    position: absolute;
    z-index: -1;
    inset: -100%;
    margin: auto;
    width: 100%;
    height: 100%;
  }
  .bl-footer-recruit__image img {
    width: 100%;
    height: 100%;
    -o-object-fit: cover;
       object-fit: cover;
  }
}
@media screen and (max-width: 768px) {
  .bl-footer-recruit {
    margin-top: 21.3333333333vw;
    padding: 19.2vw 6.6666666667vw 21.3333333333vw;
    width: 86.6666666667vw;
    background: #F2F2F2;
  }
  .bl-footer-recruit__required {
    margin-top: 10vw;
    font-size: 6vw;
  }
  .bl-footer-recruit__image {
    margin-top: 10.4vw;
  }
  .bl-footer-recruit__image img {
    width: 100%;
  }
  .bl-footer-recruit__button-sp {
    margin-top: 10.6666666667vw;
  }
}

:where(.c-button) {
  border: solid 1px transparent;
  background: #03863E;
  color: #fff;
  width: var(--width);
  max-width: 100%;
  height: var(--height);
  display: flex;
  align-items: center;
  justify-content: center;
  -webkit-user-select: none;
     -moz-user-select: none;
          user-select: none;
  cursor: pointer;
  transition: color 0.25s, background-color 0.25s, border-color 0.25s;
}
:where(.c-button) .arrow {
  margin-left: 1em;
}
@media (hover: hover) {
  :where(.c-button):hover {
    border-color: #03863E;
    color: #03863E;
    background-color: #fff;
  }
}
@media print, screen and (min-width: 768.1px) {
  :where(.c-button) {
    --width: 200px;
    --height: 50px;
  }
  :where(.c-button).mod_large {
    --width: 350px;
    --height: 80px;
  }
  :where(.c-button) .text {
    font-size: 15px;
  }
  :where(.c-button) .arrow {
    font-size: 10px;
  }
}
@media screen and (max-width: 768px) {
  :where(.c-button) {
    --width: 100%;
    --height: 13.3333333333vw;
  }
  :where(.c-button).mod_large {
    --width: 73.3333333333vw;
    --height: 13.3333333333vw;
  }
  :where(.c-button) .text {
    font-size: 4vw;
  }
  :where(.c-button) .arrow {
    font-size: 2.2666666667vw;
  }
}

:where(.c-enja) {
  font-weight: 700;
  text-align: center;
}
:where(.c-enja) :is(.en, .ja) {
  display: block;
}
:where(.c-enja).mod_recruit {
  text-align: left;
}
:where(.c-enja).mod_recruit :is(.en, .ja) {
  text-indent: 0;
}
@media print, screen and (min-width: 768.1px) {
  :where(.c-enja) .en {
    font-size: 5rem;
    --font-size: 80;
    line-height: 1;
    letter-spacing: 0.04em;
    text-indent: 0.04em;
  }
  :where(.c-enja) .ja {
    margin-top: 0.5333333333em;
    font-size: 1.875rem;
    --font-size: 30;
    line-height: 1;
    letter-spacing: 0.07em;
    text-indent: 0.07em;
  }
  :where(.c-enja).mod_recruit .en {
    font-size: 60px;
  }
  :where(.c-enja).mod_recruit .ja {
    font-size: 20px;
  }
}
@media screen and (max-width: 768px) {
  :where(.c-enja) .en {
    font-size: 5.3125rem;
    --font-size: 85;
    line-height: 1;
    letter-spacing: 0.04em;
    text-indent: 0.04em;
    font-size: 11.3333333333vw;
  }
  :where(.c-enja) .ja {
    margin-top: 0.3333333333em;
    font-size: 1.875rem;
    --font-size: 30;
    line-height: 1;
    letter-spacing: 0.07em;
    text-indent: 0.07em;
    font-size: 4vw;
  }
  :where(.c-enja).mod_recruit .en {
    font-size: 11.3333333333vw;
  }
  :where(.c-enja).mod_recruit .ja {
    font-size: 4vw;
  }
}

:where(.c-description) {
  text-align: justify;
}
@media print, screen and (min-width: 768.1px) {
  :where(.c-description) {
    padding-top: 55px;
    font-size: 15px;
    margin-block: var(--leading-trim);
    line-height: 1.8666666667;
  }
}
@media screen and (max-width: 768px) {
  :where(.c-description) {
    padding-top: 10vw;
    font-size: 30px;
    margin-block: var(--leading-trim);
    line-height: 1.6666666667;
    font-size: 4vw;
  }
}

body .bx-wrapper {
  margin-bottom: 0;
  box-shadow: none;
  border: 0;
  background: none;
}
body .bx-wrapper .bx-controls-direction a {
  margin-top: 0;
  background: url(../../images/common/slide-arrow.svg) no-repeat center center/cover;
  width: 60px;
  height: 60px;
  transform: translateY(-50%);
  display: grid;
  place-items: center;
}
body .bx-wrapper .bx-controls-direction a.bx-prev {
  transform: translateY(-50%) rotateY(180deg);
}
body .bx-wrapper :is(.bx-prev, .bx-next):hover, body .bx-wrapper :is(.bx-prev, .bx-next):focus {
  background-position: center center;
}
body .bx-wrapper .bx-prev {
  left: 0;
}
body .bx-wrapper .bx-next {
  right: 0;
}
/*# sourceMappingURL=common.css.map */