@charset "UTF-8";

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

ul,
ol {
  padding: 0;
}

body,
h1,
h2,
h3,
h4,
p,
ul,
ol,
figure,
blockquote,
dl,
dd {
  margin: 0;
}

h1,
h2,
h3,
h4,
h5,
h6 {
  font-weight: 400;
}

body {
  line-height: 1.5;
  min-height: 100vh;
  text-rendering: optimizeSpeed;
}

ul,
ol {
  list-style: none;
}

a:not([class]) {
  -webkit-text-decoration-skip: ink;
          text-decoration-skip-ink: auto;
}

a {
  text-decoration: none;
}

img {
  display: block;
  width: 100%;
  max-width: 100%;
}

article > * + * {
  margin-top: 1em;
}

input,
button,
textarea,
select {
  font: inherit;
}

img:not([alt]) {
  -webkit-filter: blur(10px);
          filter: blur(10px);
}

input,
button,
select,
textarea {
  font: inherit;
  border: none;
  border-radius: 0;
  outline: none;
  background: transparent;
  -webkit-appearance: none;
  -moz-appearance: none;
  appearance: none;
}

textarea {
  resize: vertical;
}

input[type=checkbox],
input[type=radio] {
  display: none;
}

input[type=submit],
input[type=button],
label,
button,
select {
  cursor: pointer;
}

select::-ms-expand {
  display: none;
}

html {
  overflow-x: hidden;
}

body {
  font-family: "Noto Sans JP", sans-serif;
  font-weight: 400;
  color: #3a3a3a;
  letter-spacing: 0;
  line-height: 1;
  /* フォントのアンチエイリアスを滑らかに表示（主にMac向け） */
  -webkit-font-smoothing: antialiased;
  /* Chrome, Safari（WebKit系） */
  -moz-osx-font-smoothing: grayscale;
  /* Firefox on macOS */
}

a {
  -webkit-transition: opacity 0.3s;
  transition: opacity 0.3s;
}

a:focus,
button:focus,
input:focus,
select:focus,
textarea:focus {
  outline: none;
  /* デフォルトで非表示 */
}

body:not(.using-mouse) a:focus-visible,
body:not(.using-mouse) button:focus-visible,
body:not(.using-mouse) input:focus-visible,
body:not(.using-mouse) select:focus-visible {
  outline: 2px solid #5a9ad4;
  /* キーボード操作時に表示 */
  outline-offset: 3px;
}

body:not(.using-mouse) textarea:focus-visible {
  outline: 2px solid #5a9ad4;
  outline-offset: -1px;
}

iframe {
  vertical-align: bottom;
  width: 100%;
  height: auto;
}

img {
  width: 100%;
  height: auto;
  -o-object-fit: cover;
     object-fit: cover;
}

.ie-warning {
  background-color: #ffcc00;
  color: #000;
  padding: 10px 20px;
  text-align: center;
  font-size: 16px;
  position: fixed;
  top: 0;
  left: 0;
  width: 100%;
  z-index: 9999;
  -webkit-box-shadow: 0 2px 5px rgba(0, 0, 0, 0.2);
          box-shadow: 0 2px 5px rgba(0, 0, 0, 0.2);
}

.sr-only {
  position: absolute;
  width: 1px;
  height: 1px;
  padding: 0;
  margin: -1px;
  overflow: hidden;
  clip: rect(0, 0, 0, 0);
  white-space: nowrap;
  border: 0;
}

/* WordPress 管理バーを下方に移動 */

#wpadminbar {
  position: fixed;
  bottom: 0;
  top: auto;
  /* 上部からの固定を無効化 */
  z-index: 9999;
  /* 他の要素の上に表示 */
}

/* 管理バーがある場合のみ適用 */

html {
  margin-top: 0 !important;
  /* 上部余白をリセット */
}

body.admin-bar {
  margin-bottom: 32px;
  /* 管理バーの高さ分の余白を追加 */
}

.splide__slide {
  -webkit-text-size-adjust: 100%;
}

html.is-fixed,
body.is-fixed {
  position: fixed;
  width: 100%;
  overflow: hidden;
}

.inner {
  max-width: 37.5rem;
  padding-inline: 1.25rem;
  margin-inline: auto;
}

.hide-xl2 {
  display: block;
}

.hide-lg {
  display: block;
}

.show-lg {
  display: none;
}

.hide-md {
  display: block;
}

.show-md {
  display: none;
}

.lg-md-only {
  display: none;
}

.md-sm-none {
  display: none;
}

.hide-xl {
  display: block;
}

.hide-sm {
  display: block;
}

.hide-sp {
  display: block;
}

/* ============================
   SECTION TITLE
============================ */

.section-title {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-orient: vertical;
  -webkit-box-direction: normal;
      -ms-flex-direction: column;
          flex-direction: column;
  color: #5a9ad4;
  position: relative;
  z-index: 10;
}

.section-title__heading {
  font-family: "Roboto", sans-serif;
  font-size: 1.625rem;
  font-weight: 300;
  letter-spacing: 0.1em;
  line-height: 1.32;
}

.section-title__heading .char {
  display: inline-block;
  opacity: 0;
  -webkit-transform: translateY(1.25rem);
          transform: translateY(1.25rem);
  -webkit-transition: opacity 0.6s ease, -webkit-transform 0.6s ease;
  transition: opacity 0.6s ease, -webkit-transform 0.6s ease;
  transition: opacity 0.6s ease, transform 0.6s ease;
  transition: opacity 0.6s ease, transform 0.6s ease, -webkit-transform 0.6s ease;
}

.section-title__heading .char.is-shown {
  opacity: 1;
  -webkit-transform: translateY(0);
          transform: translateY(0);
}

.section-title__text {
  font-family: "Zen Kaku Gothic New", sans-serif;
  font-weight: 700;
  line-height: 1.44;
  margin-top: 0.0625rem;
  font-size: 0.75rem;
  opacity: 0;
  -webkit-transform: translateY(1.25rem);
          transform: translateY(1.25rem);
  -webkit-transition: opacity 0.8s ease, -webkit-transform 0.8s ease;
  transition: opacity 0.8s ease, -webkit-transform 0.8s ease;
  transition: opacity 0.8s ease, transform 0.8s ease;
  transition: opacity 0.8s ease, transform 0.8s ease, -webkit-transform 0.8s ease;
}

.section-title__text.is-visible {
  opacity: 1;
  -webkit-transform: translateY(0);
          transform: translateY(0);
}

/* ============================
   SECTION SUB TITLE
============================ */

.section-sub-title {
  font-family: "Zen Kaku Gothic New", sans-serif;
  font-size: 1.125rem;
  font-weight: 700;
  line-height: 1.54;
}

/* ============================
   SECTION TEXT
============================ */

.section-text {
  font-size: 0.9375rem;
  font-family: "Yu Gothic", "YuGothic", "Zen Kaku Gothic New", "Noto Sans JP", sans-serif;
  font-weight: 300;
  color: #000000;
  line-height: 2;
}

/* ============================
   DETAIL LINK
============================ */

.detail-link {
  position: relative;
  display: block;
  width: -webkit-fit-content;
  width: -moz-fit-content;
  width: fit-content;
  padding: 0.5625rem 4.0625rem 0.5625rem 3.28125rem;
  font-family: "Yu Gothic", "YuGothic", "Zen Kaku Gothic New", "Noto Sans JP", sans-serif;
  font-size: 0.875rem;
  font-weight: 700;
  color: #fff;
  line-height: 1.6;
  border-radius: 0.625rem;
  width: fit-content;
  margin-inline: auto;
  -webkit-transition: background-color 0.3s ease, -webkit-box-shadow 0.3s ease, -webkit-transform 0.3s ease;
  transition: background-color 0.3s ease, -webkit-box-shadow 0.3s ease, -webkit-transform 0.3s ease;
  transition: box-shadow 0.3s ease, transform 0.3s ease, background-color 0.3s ease;
  transition: box-shadow 0.3s ease, transform 0.3s ease, background-color 0.3s ease, -webkit-box-shadow 0.3s ease, -webkit-transform 0.3s ease;
}

.detail-link--green {
  background-color: #a7cc8d;
}

.detail-link--blue {
  background-color: #5a9ad4;
}

.detail-link__icon {
  position: absolute;
  top: 50%;
  right: 0.9375rem;
  -webkit-transform: translateY(-50%);
          transform: translateY(-50%);
  width: 1.125rem;
  -webkit-filter: brightness(0) invert(1);
          filter: brightness(0) invert(1);
  -webkit-transition: -webkit-transform 0.3s ease;
  transition: -webkit-transform 0.3s ease;
  transition: transform 0.3s ease;
  transition: transform 0.3s ease, -webkit-transform 0.3s ease;
}

.js-fade-in {
  opacity: 0;
  -webkit-transform: translateY(1.875rem);
          transform: translateY(1.875rem);
  -webkit-transition: opacity 0.8s cubic-bezier(0.22, 0.61, 0.36, 1), -webkit-transform 0.8s cubic-bezier(0.22, 0.61, 0.36, 1);
  transition: opacity 0.8s cubic-bezier(0.22, 0.61, 0.36, 1), -webkit-transform 0.8s cubic-bezier(0.22, 0.61, 0.36, 1);
  transition: opacity 0.8s cubic-bezier(0.22, 0.61, 0.36, 1), transform 0.8s cubic-bezier(0.22, 0.61, 0.36, 1);
  transition: opacity 0.8s cubic-bezier(0.22, 0.61, 0.36, 1), transform 0.8s cubic-bezier(0.22, 0.61, 0.36, 1), -webkit-transform 0.8s cubic-bezier(0.22, 0.61, 0.36, 1);
}

.js-fade-in.is-visible {
  opacity: 1;
  -webkit-transform: translateY(0);
          transform: translateY(0);
}

.js-fade-in-child {
  opacity: 0;
  -webkit-transform: translateY(3.125rem);
          transform: translateY(3.125rem);
  -webkit-transition: opacity 1s cubic-bezier(0.22, 0.61, 0.36, 1), -webkit-transform 1s cubic-bezier(0.22, 0.61, 0.36, 1);
  transition: opacity 1s cubic-bezier(0.22, 0.61, 0.36, 1), -webkit-transform 1s cubic-bezier(0.22, 0.61, 0.36, 1);
  transition: opacity 1s cubic-bezier(0.22, 0.61, 0.36, 1), transform 1s cubic-bezier(0.22, 0.61, 0.36, 1);
  transition: opacity 1s cubic-bezier(0.22, 0.61, 0.36, 1), transform 1s cubic-bezier(0.22, 0.61, 0.36, 1), -webkit-transform 1s cubic-bezier(0.22, 0.61, 0.36, 1);
}

.js-fade-in-child.is-visible {
  opacity: 1;
  -webkit-transform: translateY(0);
          transform: translateY(0);
}

.js-parallax {
  will-change: transform;
  -webkit-transition: -webkit-transform 0.1s ease-out;
  transition: -webkit-transform 0.1s ease-out;
  transition: transform 0.1s ease-out;
  transition: transform 0.1s ease-out, -webkit-transform 0.1s ease-out;
}

.page-fv {
  position: relative;
  width: 100%;
  overflow: hidden;
  margin-top: 4.5625rem;
}

.page-fv__stage {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  pointer-events: none;
  z-index: 1;
}

.page-fv__svg-wrapper {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
}

.page-fv__svg {
  display: block;
  width: 100%;
  height: 100%;
}

.page-fv__svg-wrapper--sp {
  width: 100%;
  height: 18.75rem;
  overflow: hidden;
}

.page-fv__svg--sp {
  -webkit-transform: scale(2.2) translateY(-4%);
          transform: scale(2.2) translateY(-4%);
  -webkit-transform-origin: center center;
          transform-origin: center center;
}

.page-fv__title {
  display: block;
}

.page-fv__title-ja {
  display: block;
  font-family: "Zen Kaku Gothic New", sans-serif;
  font-size: 1.25rem;
  font-weight: 700;
  color: #5a9ad4;
  line-height: 1.45;
  letter-spacing: 0;
  opacity: 0;
}

.page-fv__title-ja.is-ready {
  opacity: 1;
}

.page-fv__title-en {
  display: block;
  font-family: "Roboto", sans-serif;
  font-size: 0.6875rem;
  font-weight: 300;
  color: #5a9ad4;
  line-height: 1.31818182;
  letter-spacing: 0.1em;
  margin-top: 0.0625rem;
  opacity: 0;
  -webkit-transition: opacity 1s ease;
  transition: opacity 1s ease;
}

.page-fv__title-en.is-shown {
  opacity: 1;
}

.page-fv__img-wrapper {
  width: 100%;
  overflow: hidden;
  margin-top: 1.375rem;
  opacity: 0;
  -webkit-transform: translateY(20px);
          transform: translateY(20px);
  -webkit-transition: opacity 0.8s ease, -webkit-transform 0.8s ease;
  transition: opacity 0.8s ease, -webkit-transform 0.8s ease;
  transition: opacity 0.8s ease, transform 0.8s ease;
  transition: opacity 0.8s ease, transform 0.8s ease, -webkit-transform 0.8s ease;
}

.page-fv__img-wrapper.is-shown {
  opacity: 1;
  -webkit-transform: translateY(0);
          transform: translateY(0);
}

.page-fv__picture {
  display: block;
  width: 100%;
}

.page-fv__title .char {
  display: inline-block;
  opacity: 0;
  text-indent: -0.125rem;
  -webkit-transition: opacity 0.6s ease, text-indent 0.6s ease;
  transition: opacity 0.6s ease, text-indent 0.6s ease;
}

.page-fv__title .char.is-shown {
  opacity: 1;
  text-indent: 0;
}

body.opening-active {
  overflow: hidden;
}

.opening {
  position: fixed;
  top: 0;
  left: 0;
  width: 100%;
  height: 100vh;
  height: 100svh;
  z-index: 9999;
  pointer-events: none;
}

.opening.is-hidden {
  display: none;
}

.opening__bg {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  background-color: #fff;
  -webkit-transform: translateY(0);
          transform: translateY(0);
}

.opening__header-logo {
  position: absolute;
  top: 50%;
  left: 50%;
  -webkit-transform: translate(-50%, -50%);
          transform: translate(-50%, -50%);
  opacity: 0;
  width: 15.625rem;
  z-index: 1;
}

.opening__header-img {
  width: 100%;
  height: auto;
}

.opening__icon {
  position: absolute;
  top: 65%;
  left: 0;
  -webkit-transform: translate(-100%, -50%);
          transform: translate(-100%, -50%);
  width: 5rem;
  height: auto;
  opacity: 0;
  z-index: 1;
}

.opening__svg {
  width: 100%;
  height: 100%;
}

.opening__band-svg-wrapper {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  overflow: hidden;
  pointer-events: none;
}

.opening__band-svg {
  width: 100%;
  height: 100%;
  display: block;
}

/* アニメーション実行 */

.opening.is-active .opening__bg {
  -webkit-animation: openingBgSlideOut 0.8s cubic-bezier(0.65, 0, 0.35, 1) 2.2s forwards;
          animation: openingBgSlideOut 0.8s cubic-bezier(0.65, 0, 0.35, 1) 2.2s forwards;
}

.opening.is-active .opening__header-logo {
  -webkit-animation: openingHeaderLogoFadeIn 0.3s ease-out 0s forwards, openingHeaderLogoFadeOut 0.3s ease-out 2.2s forwards;
          animation: openingHeaderLogoFadeIn 0.3s ease-out 0s forwards, openingHeaderLogoFadeOut 0.3s ease-out 2.2s forwards;
}

.opening.is-active .opening__icon {
  -webkit-animation: openingIconFadeIn 0.3s ease-out 0.3s forwards, openingIconMove 1.5s cubic-bezier(0.4, 0, 0.2, 1) 0.6s forwards, openingIconFadeOut 0.3s ease-out 2.2s forwards;
          animation: openingIconFadeIn 0.3s ease-out 0.3s forwards, openingIconMove 1.5s cubic-bezier(0.4, 0, 0.2, 1) 0.6s forwards, openingIconFadeOut 0.3s ease-out 2.2s forwards;
}

.opening.is-active .opening__band-svg-wrapper {
  -webkit-animation: openingBandFadeOut 0.3s ease-out 2.2s forwards;
          animation: openingBandFadeOut 0.3s ease-out 2.2s forwards;
}

/* キーフレーム */

@-webkit-keyframes openingBgSlideOut {
  from {
    -webkit-transform: translateY(0);
            transform: translateY(0);
  }

  to {
    -webkit-transform: translateY(-100%);
            transform: translateY(-100%);
  }
}

@keyframes openingBgSlideOut {
  from {
    -webkit-transform: translateY(0);
            transform: translateY(0);
  }

  to {
    -webkit-transform: translateY(-100%);
            transform: translateY(-100%);
  }
}

@-webkit-keyframes openingHeaderLogoFadeIn {
  from {
    opacity: 0;
  }

  to {
    opacity: 1;
  }
}

@keyframes openingHeaderLogoFadeIn {
  from {
    opacity: 0;
  }

  to {
    opacity: 1;
  }
}

@-webkit-keyframes openingHeaderLogoFadeOut {
  from {
    opacity: 1;
  }

  to {
    opacity: 0;
  }
}

@keyframes openingHeaderLogoFadeOut {
  from {
    opacity: 1;
  }

  to {
    opacity: 0;
  }
}

@-webkit-keyframes openingIconFadeIn {
  from {
    opacity: 0;
  }

  to {
    opacity: 1;
  }
}

@keyframes openingIconFadeIn {
  from {
    opacity: 0;
  }

  to {
    opacity: 1;
  }
}

@-webkit-keyframes openingIconFadeOut {
  from {
    opacity: 1;
  }

  to {
    opacity: 0;
  }
}

@keyframes openingIconFadeOut {
  from {
    opacity: 1;
  }

  to {
    opacity: 0;
  }
}

@-webkit-keyframes openingBandFadeOut {
  from {
    opacity: 1;
  }

  to {
    opacity: 0;
  }
}

@keyframes openingBandFadeOut {
  from {
    opacity: 1;
  }

  to {
    opacity: 0;
  }
}

@-webkit-keyframes openingIconMove {
  0% {
    -webkit-transform: translate(-100%, -50%) rotate(0deg);
            transform: translate(-100%, -50%) rotate(0deg);
  }

  12.5% {
    -webkit-transform: translate(calc(12.5vw - 50%), -50%) rotate(-8deg);
            transform: translate(calc(12.5vw - 50%), -50%) rotate(-8deg);
  }

  25% {
    -webkit-transform: translate(calc(25vw - 50%), -50%) rotate(8deg);
            transform: translate(calc(25vw - 50%), -50%) rotate(8deg);
  }

  37.5% {
    -webkit-transform: translate(calc(37.5vw - 50%), -50%) rotate(-8deg);
            transform: translate(calc(37.5vw - 50%), -50%) rotate(-8deg);
  }

  50% {
    -webkit-transform: translate(calc(50vw - 50%), -50%) rotate(8deg);
            transform: translate(calc(50vw - 50%), -50%) rotate(8deg);
  }

  62.5% {
    -webkit-transform: translate(calc(62.5vw - 50%), -50%) rotate(-8deg);
            transform: translate(calc(62.5vw - 50%), -50%) rotate(-8deg);
  }

  75% {
    -webkit-transform: translate(calc(75vw - 50%), -50%) rotate(8deg);
            transform: translate(calc(75vw - 50%), -50%) rotate(8deg);
  }

  87.5% {
    -webkit-transform: translate(calc(87.5vw - 50%), -50%) rotate(-8deg);
            transform: translate(calc(87.5vw - 50%), -50%) rotate(-8deg);
  }

  100% {
    -webkit-transform: translate(calc(100vw + 100%), -50%) rotate(0deg);
            transform: translate(calc(100vw + 100%), -50%) rotate(0deg);
  }
}

@keyframes openingIconMove {
  0% {
    -webkit-transform: translate(-100%, -50%) rotate(0deg);
            transform: translate(-100%, -50%) rotate(0deg);
  }

  12.5% {
    -webkit-transform: translate(calc(12.5vw - 50%), -50%) rotate(-8deg);
            transform: translate(calc(12.5vw - 50%), -50%) rotate(-8deg);
  }

  25% {
    -webkit-transform: translate(calc(25vw - 50%), -50%) rotate(8deg);
            transform: translate(calc(25vw - 50%), -50%) rotate(8deg);
  }

  37.5% {
    -webkit-transform: translate(calc(37.5vw - 50%), -50%) rotate(-8deg);
            transform: translate(calc(37.5vw - 50%), -50%) rotate(-8deg);
  }

  50% {
    -webkit-transform: translate(calc(50vw - 50%), -50%) rotate(8deg);
            transform: translate(calc(50vw - 50%), -50%) rotate(8deg);
  }

  62.5% {
    -webkit-transform: translate(calc(62.5vw - 50%), -50%) rotate(-8deg);
            transform: translate(calc(62.5vw - 50%), -50%) rotate(-8deg);
  }

  75% {
    -webkit-transform: translate(calc(75vw - 50%), -50%) rotate(8deg);
            transform: translate(calc(75vw - 50%), -50%) rotate(8deg);
  }

  87.5% {
    -webkit-transform: translate(calc(87.5vw - 50%), -50%) rotate(-8deg);
            transform: translate(calc(87.5vw - 50%), -50%) rotate(-8deg);
  }

  100% {
    -webkit-transform: translate(calc(100vw + 100%), -50%) rotate(0deg);
            transform: translate(calc(100vw + 100%), -50%) rotate(0deg);
  }
}

.header {
  position: fixed;
  top: 0;
  left: 0;
  width: 100%;
  z-index: 1000;
  background-color: #fff;
  -webkit-box-shadow: 0 0.125rem 0.25rem rgba(0, 0, 0, 0.1);
          box-shadow: 0 0.125rem 0.25rem rgba(0, 0, 0, 0.1);
  height: 3.75rem;
  height: 2.8125rem;
  -webkit-transition: background-color 0.4s cubic-bezier(0.4, 0, 0.2, 1), -webkit-box-shadow 0.4s cubic-bezier(0.4, 0, 0.2, 1);
  transition: background-color 0.4s cubic-bezier(0.4, 0, 0.2, 1), -webkit-box-shadow 0.4s cubic-bezier(0.4, 0, 0.2, 1);
  transition: background-color 0.4s cubic-bezier(0.4, 0, 0.2, 1), box-shadow 0.4s cubic-bezier(0.4, 0, 0.2, 1);
  transition: background-color 0.4s cubic-bezier(0.4, 0, 0.2, 1), box-shadow 0.4s cubic-bezier(0.4, 0, 0.2, 1), -webkit-box-shadow 0.4s cubic-bezier(0.4, 0, 0.2, 1);
}

.header.is-active {
  background-color: rgba(248, 252, 255, 0.9);
  -webkit-box-shadow: none;
          box-shadow: none;
}

.header__inner {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
  -webkit-box-pack: justify;
      -ms-flex-pack: justify;
          justify-content: space-between;
  height: inherit;
  padding-inline: 1.25rem;
}

.header__logo-link {
  display: block;
  text-decoration: none;
}

.header__logo-img-wrapper {
  width: 10.625rem;
  width: 9.296875rem;
}

.header__nav {
  margin-left: auto;
}

.header__list {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
  gap: 2.5rem;
}

.header__item {
  list-style: none;
}

.header__link {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
  -webkit-box-pack: center;
      -ms-flex-pack: center;
          justify-content: center;
  padding: 0.625rem 0;
  font-family: "Zen Kaku Gothic New", sans-serif;
  font-size: 0.9375rem;
  font-weight: 500;
  color: #000000;
  text-decoration: none;
  line-height: 1;
}

.header__link span {
  position: relative;
  display: block;
}

.header__link span::after {
  content: "";
  position: absolute;
  left: 0;
  bottom: -0.375rem;
  width: 100%;
  height: 0.0625rem;
  background-color: currentColor;
  -webkit-transform: scaleX(0);
          transform: scaleX(0);
  -webkit-transform-origin: left;
          transform-origin: left;
  -webkit-transition: -webkit-transform 0.3s ease;
  transition: -webkit-transform 0.3s ease;
  transition: transform 0.3s ease;
  transition: transform 0.3s ease, -webkit-transform 0.3s ease;
}

.hamburger {
  position: relative;
  z-index: 9999;
  top: 0;
  top: 0.0625rem;
  width: 1.75rem;
  height: 1.25rem;
  cursor: pointer;
  background: none;
  border: none;
  padding: 0;
}

.hamburger span {
  position: absolute;
  left: 0;
  display: block;
  width: 100%;
  height: 0.125rem;
  height: 0.09375rem;
  background-color: #5a9ad4;
  border-radius: 999px;
  -webkit-transition: opacity 0.3s cubic-bezier(0.4, 0, 0.2, 1), top 0.4s cubic-bezier(0.4, 0, 0.2, 1), -webkit-transform 0.4s cubic-bezier(0.4, 0, 0.2, 1);
  transition: opacity 0.3s cubic-bezier(0.4, 0, 0.2, 1), top 0.4s cubic-bezier(0.4, 0, 0.2, 1), -webkit-transform 0.4s cubic-bezier(0.4, 0, 0.2, 1);
  transition: transform 0.4s cubic-bezier(0.4, 0, 0.2, 1), opacity 0.3s cubic-bezier(0.4, 0, 0.2, 1), top 0.4s cubic-bezier(0.4, 0, 0.2, 1);
  transition: transform 0.4s cubic-bezier(0.4, 0, 0.2, 1), opacity 0.3s cubic-bezier(0.4, 0, 0.2, 1), top 0.4s cubic-bezier(0.4, 0, 0.2, 1), -webkit-transform 0.4s cubic-bezier(0.4, 0, 0.2, 1);
}

.hamburger span:first-child {
  top: 0;
}

.hamburger span:nth-child(2) {
  top: 0.5625rem;
  top: 0.5rem;
}

.hamburger span:nth-child(3) {
  top: 1.125rem;
  top: 1rem;
}

.hamburger.is-active span:first-child {
  top: 0.5625rem;
  -webkit-transform: rotate(-45deg);
          transform: rotate(-45deg);
}

.hamburger.is-active span:nth-child(2) {
  opacity: 0;
}

.hamburger.is-active span:nth-child(3) {
  top: 0.5625rem;
  -webkit-transform: rotate(45deg);
          transform: rotate(45deg);
}

body.drawer-open {
  position: fixed;
  width: 100%;
  overflow: hidden;
}

.drawer {
  position: fixed;
  top: 0;
  left: 0;
  width: 100%;
  height: 100svh;
  z-index: 999;
  display: none;
}

.drawer.is-open {
  display: block;
}

.drawer__bg {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  background-color: rgba(248, 252, 255, 0.9);
  -webkit-transform: translateY(100%);
          transform: translateY(100%);
}

.drawer__container {
  position: relative;
  width: 100%;
  height: 100%;
  opacity: 0;
}

.drawer__content {
  width: 100%;
  height: 100%;
  padding: 7.375rem 2.0625rem 2.5rem;
  overflow-y: auto;
  -webkit-transform: scale(1.01);
          transform: scale(1.01);
  opacity: 0;
}

.drawer__list {
  list-style: none;
}

.drawer__item {
  border-bottom: 0.0625rem solid #eef2f5;
  opacity: 0;
  -webkit-transform: translateY(20px);
          transform: translateY(20px);
  -webkit-transition: opacity 0.4s cubic-bezier(0.4, 0, 0.2, 1), -webkit-transform 0.4s cubic-bezier(0.4, 0, 0.2, 1);
  transition: opacity 0.4s cubic-bezier(0.4, 0, 0.2, 1), -webkit-transform 0.4s cubic-bezier(0.4, 0, 0.2, 1);
  transition: opacity 0.4s cubic-bezier(0.4, 0, 0.2, 1), transform 0.4s cubic-bezier(0.4, 0, 0.2, 1);
  transition: opacity 0.4s cubic-bezier(0.4, 0, 0.2, 1), transform 0.4s cubic-bezier(0.4, 0, 0.2, 1), -webkit-transform 0.4s cubic-bezier(0.4, 0, 0.2, 1);
}

.drawer__link {
  display: block;
  padding: 1.0625rem 0 1.34375rem;
  font-family: "Zen Kaku Gothic New", sans-serif;
  font-size: 1.125rem;
  font-weight: 500;
  line-height: 1.5;
  color: #3a3a3a;
  text-decoration: none;
  letter-spacing: 0;
  border-bottom: 0.0625rem solid #e0e1e3;
}

.drawer__info {
  margin-top: 35px;
}

.drawer__info-name {
  font-family: "Zen Kaku Gothic New", sans-serif;
  font-size: 0.8125rem;
  font-weight: 700;
  line-height: 1.53846154;
  color: #3a3a3a;
  opacity: 0;
  -webkit-transform: translateY(20px);
          transform: translateY(20px);
  -webkit-transition: opacity 0.4s cubic-bezier(0.4, 0, 0.2, 1), -webkit-transform 0.4s cubic-bezier(0.4, 0, 0.2, 1);
  transition: opacity 0.4s cubic-bezier(0.4, 0, 0.2, 1), -webkit-transform 0.4s cubic-bezier(0.4, 0, 0.2, 1);
  transition: opacity 0.4s cubic-bezier(0.4, 0, 0.2, 1), transform 0.4s cubic-bezier(0.4, 0, 0.2, 1);
  transition: opacity 0.4s cubic-bezier(0.4, 0, 0.2, 1), transform 0.4s cubic-bezier(0.4, 0, 0.2, 1), -webkit-transform 0.4s cubic-bezier(0.4, 0, 0.2, 1);
}

.drawer__info-address {
  margin-top: 20px;
  font-size: 0.8125rem;
  font-weight: 700;
  line-height: 1.53846154;
  color: #3a3a3a;
  opacity: 0;
  -webkit-transform: translateY(20px);
          transform: translateY(20px);
  -webkit-transition: opacity 0.4s cubic-bezier(0.4, 0, 0.2, 1), -webkit-transform 0.4s cubic-bezier(0.4, 0, 0.2, 1);
  transition: opacity 0.4s cubic-bezier(0.4, 0, 0.2, 1), -webkit-transform 0.4s cubic-bezier(0.4, 0, 0.2, 1);
  transition: opacity 0.4s cubic-bezier(0.4, 0, 0.2, 1), transform 0.4s cubic-bezier(0.4, 0, 0.2, 1);
  transition: opacity 0.4s cubic-bezier(0.4, 0, 0.2, 1), transform 0.4s cubic-bezier(0.4, 0, 0.2, 1), -webkit-transform 0.4s cubic-bezier(0.4, 0, 0.2, 1);
}

/* アニメーション - 開く */

.drawer[aria-hidden=false] .drawer__bg {
  -webkit-animation: slideIn 1s cubic-bezier(0.16, 1, 0.3, 1) 0s forwards;
          animation: slideIn 1s cubic-bezier(0.16, 1, 0.3, 1) 0s forwards;
}

.drawer[aria-hidden=false] .drawer__container {
  -webkit-animation: fadeIn 0.8s cubic-bezier(0.4, 0, 0.2, 1) 0.2s forwards;
          animation: fadeIn 0.8s cubic-bezier(0.4, 0, 0.2, 1) 0.2s forwards;
}

.drawer[aria-hidden=false] .drawer__content {
  -webkit-animation: scaleIn 0.8s cubic-bezier(0.4, 0, 0.2, 1) 0.2s forwards;
          animation: scaleIn 0.8s cubic-bezier(0.4, 0, 0.2, 1) 0.2s forwards;
  -webkit-backface-visibility: hidden;
          backface-visibility: hidden;
  will-change: transform, opacity;
}

.drawer[aria-hidden=false] .drawer__item {
  opacity: 1;
  -webkit-transform: translateY(0);
          transform: translateY(0);
}

.drawer[aria-hidden=false] .drawer__info-name {
  opacity: 1;
  -webkit-transform: translateY(0);
          transform: translateY(0);
}

.drawer[aria-hidden=false] .drawer__info-address {
  opacity: 1;
  -webkit-transform: translateY(0);
          transform: translateY(0);
}

/* アニメーション - 閉じる */

.drawer[aria-hidden=true] .drawer__bg {
  -webkit-animation: slideOut 0.6s cubic-bezier(0.65, 0, 0.35, 1) 0s forwards;
          animation: slideOut 0.6s cubic-bezier(0.65, 0, 0.35, 1) 0s forwards;
  -webkit-backface-visibility: hidden;
          backface-visibility: hidden;
  will-change: transform, opacity;
}

.drawer[aria-hidden=true] .drawer__container {
  -webkit-animation: fadeOut 0.8s cubic-bezier(0.4, 0, 0.2, 1) 0.6s forwards;
          animation: fadeOut 0.8s cubic-bezier(0.4, 0, 0.2, 1) 0.6s forwards;
}

.drawer[aria-hidden=true] .drawer__content {
  -webkit-animation: scaleOut 0.8s cubic-bezier(0.4, 0, 0.2, 1) 0.6s forwards;
          animation: scaleOut 0.8s cubic-bezier(0.4, 0, 0.2, 1) 0.6s forwards;
  -webkit-backface-visibility: hidden;
          backface-visibility: hidden;
  will-change: transform, opacity;
}

.drawer[aria-hidden=true] .drawer__item {
  opacity: 0;
  -webkit-transform: translateY(20px);
          transform: translateY(20px);
  -webkit-transition-delay: 0s;
          transition-delay: 0s;
}

.drawer[aria-hidden=true] .drawer__info-name {
  opacity: 0;
  -webkit-transform: translateY(20px);
          transform: translateY(20px);
  -webkit-transition-delay: 0s;
          transition-delay: 0s;
}

.drawer[aria-hidden=true] .drawer__info-address {
  opacity: 0;
  -webkit-transform: translateY(20px);
          transform: translateY(20px);
  -webkit-transition-delay: 0s;
          transition-delay: 0s;
}

/* キーフレーム */

@-webkit-keyframes slideIn {
  from {
    -webkit-transform: translateY(100%);
            transform: translateY(100%);
  }

  to {
    -webkit-transform: translateY(0);
            transform: translateY(0);
  }
}

@keyframes slideIn {
  from {
    -webkit-transform: translateY(100%);
            transform: translateY(100%);
  }

  to {
    -webkit-transform: translateY(0);
            transform: translateY(0);
  }
}

@-webkit-keyframes slideOut {
  from {
    -webkit-transform: translateY(0);
            transform: translateY(0);
  }

  to {
    -webkit-transform: translateY(-100%);
            transform: translateY(-100%);
  }
}

@keyframes slideOut {
  from {
    -webkit-transform: translateY(0);
            transform: translateY(0);
  }

  to {
    -webkit-transform: translateY(-100%);
            transform: translateY(-100%);
  }
}

@-webkit-keyframes scaleIn {
  from {
    -webkit-transform: scale(1.01);
            transform: scale(1.01);
    opacity: 0;
  }

  to {
    -webkit-transform: scale(1);
            transform: scale(1);
    opacity: 1;
  }
}

@keyframes scaleIn {
  from {
    -webkit-transform: scale(1.01);
            transform: scale(1.01);
    opacity: 0;
  }

  to {
    -webkit-transform: scale(1);
            transform: scale(1);
    opacity: 1;
  }
}

@-webkit-keyframes scaleOut {
  from {
    -webkit-transform: scale(1);
            transform: scale(1);
    opacity: 1;
  }

  to {
    -webkit-transform: scale(1.01);
            transform: scale(1.01);
    opacity: 0;
  }
}

@keyframes scaleOut {
  from {
    -webkit-transform: scale(1);
            transform: scale(1);
    opacity: 1;
  }

  to {
    -webkit-transform: scale(1.01);
            transform: scale(1.01);
    opacity: 0;
  }
}

@-webkit-keyframes fadeIn {
  from {
    opacity: 0;
  }

  to {
    opacity: 1;
  }
}

@keyframes fadeIn {
  from {
    opacity: 0;
  }

  to {
    opacity: 1;
  }
}

@-webkit-keyframes fadeOut {
  from {
    opacity: 1;
  }

  to {
    opacity: 0;
  }
}

@keyframes fadeOut {
  from {
    opacity: 1;
  }

  to {
    opacity: 0;
  }
}

/* ============================
   FOOTER
============================ */

.footer {
  padding: 1.25rem 0 5.625rem;
  margin-top: 3.75rem;
  border-top: 0.0625rem solid #5a9ad4;
}

.footer--service {
  margin-top: 0;
}

.footer__top {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-orient: vertical;
  -webkit-box-direction: normal;
      -ms-flex-direction: column;
          flex-direction: column;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
  gap: 2.5rem;
}

.footer__logo-link {
  display: block;
  width: 15.625rem;
}

.footer__logo-wrapper {
  width: 100%;
}

.footer__nav {
  width: 100%;
}

.footer__list {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-orient: horizontal;
  -webkit-box-direction: normal;
      -ms-flex-direction: row;
          flex-direction: row;
  -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;
  gap: 1rem 1.75rem;
}

.footer__link {
  position: relative;
  display: inline-block;
  font-size: 0.9375rem;
  font-weight: 700;
  color: #3a3a3a;
  line-height: 1;
}

.footer__link::after {
  content: "";
  position: absolute;
  left: 0;
  bottom: -0.125rem;
  width: 100%;
  height: 0.0625rem;
  background-color: currentColor;
  -webkit-transform: scaleX(0);
          transform: scaleX(0);
  -webkit-transform-origin: left;
          transform-origin: left;
  -webkit-transition: -webkit-transform 0.3s ease;
  transition: -webkit-transform 0.3s ease;
  transition: transform 0.3s ease;
  transition: transform 0.3s ease, -webkit-transform 0.3s ease;
}

.footer__info {
  margin-top: 2.5rem;
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-orient: vertical;
  -webkit-box-direction: normal;
      -ms-flex-direction: column;
          flex-direction: column;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
}

.footer__info-text {
  font-size: 0.875rem;
  color: #3a3a3a;
  line-height: 1.69;
}

.footer__copyright {
  margin-top: 2.5rem;
  font-size: 0.75rem;
  color: #3a3a3a;
  text-align: center;
  line-height: 1.69;
}

.phone-button {
  position: fixed;
  bottom: 0.625rem;
  left: 50%;
  -webkit-transform: translateX(-50%) translateY(6.25rem);
          transform: translateX(-50%) translateY(6.25rem);
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
  -webkit-box-pack: center;
      -ms-flex-pack: center;
          justify-content: center;
  gap: 0.5rem;
  padding: 0.875rem 1.5rem;
  background-color: #5a9ad4;
  color: #fff;
  font-family: "Zen Kaku Gothic New", sans-serif;
  font-size: 0.9375rem;
  font-weight: 700;
  line-height: 1.5;
  text-decoration: none;
  border-radius: 3.125rem;
  -webkit-box-shadow: 0 0.25rem 0.75rem rgba(0, 0, 0, 0.15);
          box-shadow: 0 0.25rem 0.75rem rgba(0, 0, 0, 0.15);
  z-index: 1000;
  opacity: 0;
  -webkit-transition: opacity 0.3s cubic-bezier(0.4, 0, 0.2, 1), -webkit-transform 0.3s cubic-bezier(0.4, 0, 0.2, 1);
  transition: opacity 0.3s cubic-bezier(0.4, 0, 0.2, 1), -webkit-transform 0.3s cubic-bezier(0.4, 0, 0.2, 1);
  transition: opacity 0.3s cubic-bezier(0.4, 0, 0.2, 1), transform 0.3s cubic-bezier(0.4, 0, 0.2, 1);
  transition: opacity 0.3s cubic-bezier(0.4, 0, 0.2, 1), transform 0.3s cubic-bezier(0.4, 0, 0.2, 1), -webkit-transform 0.3s cubic-bezier(0.4, 0, 0.2, 1);
}

.phone-button.is-active {
  opacity: 1;
  -webkit-transform: translateX(-50%) translateY(0);
          transform: translateX(-50%) translateY(0);
}

.phone-button__icon {
  width: 1.25rem;
  height: 1.25rem;
  -ms-flex-negative: 0;
      flex-shrink: 0;
}

.phone-button__text {
  white-space: nowrap;
}

/* ============================
   FV
============================ */

/* ── FV全体 ── */

.fv {
  margin-top: 3.75rem;
  margin-top: 2.75rem;
  position: relative;
  width: 100vw;
  height: calc(100dvh - 3.75rem);
  height: calc(100vh - 2.75rem);
  height: calc(100dvh - 2.75rem);
  overflow: visible;
}

/* ── SVGステージ ── */

.fv__stage {
  position: absolute;
  left: 0;
  top: 0;
  width: 100%;
  height: 100%;
  z-index: 7;
}

.fv__svg-wrapper {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  overflow: visible;
}

.fv__svg-wrapper--sp {
  top: -30px;
}

.fv__svg-wrapper--pc {
  height: calc(100% + 90px);
}

/* ── ビューポート（クリップ） ── */

.fv__viewport {
  position: relative;
  width: 100%;
  height: 100%;
  overflow: hidden;
}

.fv__inner {
  position: absolute;
  top: 0;
  left: 50%;
  -webkit-transform: translate(-50%, 0);
          transform: translate(-50%, 0);
  width: 100%;
  height: 100%;
  z-index: 10;
}

/* ── テキストオーバーレイ ── */

.fv__text {
  position: absolute;
  z-index: 10;
  top: 1.8125rem;
  left: 1.25rem;
  width: -webkit-fit-content;
  width: -moz-fit-content;
  width: fit-content;
}

.fv__text-desc {
  font-family: "Zen Kaku Gothic New", sans-serif;
  font-size: 0.875rem;
  font-size: 0.9375rem;
  font-weight: 700;
  color: #3a3a3a;
  line-height: 1.66666667;
  opacity: 0;
  -webkit-transition: opacity 1s ease;
  transition: opacity 1s ease;
}

.fv__text-desc.is-shown {
  opacity: 1;
}

.fv__text-title {
  margin: 0;
  font-family: "Zen Kaku Gothic New", sans-serif;
  font-size: 1.375rem;
  font-weight: 700;
  color: #3a3a3a;
  line-height: 1.45;
  margin-top: 2.1875rem;
  visibility: hidden;
}

.fv__text-title.is-shown {
  visibility: visible;
}

.fv__text-title--large {
  display: block;
  font-family: "Zen Kaku Gothic New", sans-serif;
  font-size: 1.875rem;
  font-weight: 700;
  line-height: 1.45;
}

.fv__text-title--conjunction {
  font-size: 1.375rem;
}

/* ── titleアニメーション（一文字ずつtext-indent + opacity） ── */

.fv__text .char {
  display: inline-block;
  opacity: 0;
  text-indent: -0.125rem;
  -webkit-transition: opacity 0.6s ease, text-indent 0.6s ease;
  transition: opacity 0.6s ease, text-indent 0.6s ease;
}

.fv__text .char.is-shown {
  opacity: 1;
  text-indent: 0;
}

/* ── 各スライド ── */

.fv__slide {
  position: absolute;
  inset: 0;
  overflow: hidden;
  opacity: 0;
  visibility: hidden;
  -webkit-transition: opacity 1800ms cubic-bezier(0.4, 0, 0.2, 1), visibility 0s 1800ms;
  transition: opacity 1800ms cubic-bezier(0.4, 0, 0.2, 1), visibility 0s 1800ms;
}

.fv__slide.is-active {
  z-index: 1;
  opacity: 1;
  visibility: visible;
  -webkit-transition: opacity 1800ms cubic-bezier(0.4, 0, 0.2, 1), visibility 0s 0s;
  transition: opacity 1800ms cubic-bezier(0.4, 0, 0.2, 1), visibility 0s 0s;
}

.fv__slide-picture {
  width: 100%;
  height: 100%;
  display: block;
}

.fv__slide-img {
  will-change: transform;
  height: 100vh;
}

/* ── 奥に向かうズームイン ── */

.fv__slide.is-animation .fv__slide-img {
  -webkit-animation: fvZoomIn 7000ms linear forwards;
          animation: fvZoomIn 7000ms linear forwards;
}

@-webkit-keyframes fvZoomIn {
  0% {
    -webkit-transform: scale(1);
            transform: scale(1);
  }

  100% {
    -webkit-transform: scale(1.05);
            transform: scale(1.05);
  }
}

@keyframes fvZoomIn {
  0% {
    -webkit-transform: scale(1);
            transform: scale(1);
  }

  100% {
    -webkit-transform: scale(1.05);
            transform: scale(1.05);
  }
}

/* ── 円形プログレスページャー ── */

.fv__pager {
  position: absolute;
  right: 0;
  bottom: 1.25rem;
  z-index: 100;
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
  gap: 1.25rem;
}

.fv__pager-circle {
  position: relative;
  width: 3.5rem;
  height: 3.5rem;
  cursor: pointer;
}

/* スライド番号 */

.fv__pager-num {
  position: absolute;
  inset: 0;
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
  -webkit-box-pack: center;
      -ms-flex-pack: center;
          justify-content: center;
  color: #333;
  font-size: 0.8125rem;
  letter-spacing: 0.05em;
  pointer-events: none;
}

/* SVGプログレスリング */

.fv__pager-svg {
  width: 100%;
  height: 100%;
  -webkit-transform: rotate(-90deg);
          transform: rotate(-90deg);
}

.fv__pager-track {
  fill: none;
  stroke: rgba(0, 0, 0, 0.15);
  stroke-width: 0.09375rem;
}

.fv__pager-progress {
  fill: none;
  stroke: #333;
  stroke-width: 0.09375rem;
  stroke-linecap: round;
  stroke-dasharray: var(--circumference);
  stroke-dashoffset: var(--circumference);
  -webkit-transition: stroke-dashoffset 50ms linear;
  transition: stroke-dashoffset 50ms linear;
}

/* ── テキストページャー ── */

.fv__pager-texts {
  position: relative;
  height: 1.25rem;
  overflow: hidden;
}

.fv__pager-text {
  position: absolute;
  left: 0;
  top: 0;
  white-space: nowrap;
  color: #333;
  font-size: 0.8125rem;
  letter-spacing: 0.04em;
  opacity: 0;
  -webkit-transform: translateY(0.5rem);
          transform: translateY(0.5rem);
  -webkit-transition: opacity 600ms ease, -webkit-transform 600ms ease;
  transition: opacity 600ms ease, -webkit-transform 600ms ease;
  transition: opacity 600ms ease, transform 600ms ease;
  transition: opacity 600ms ease, transform 600ms ease, -webkit-transform 600ms ease;
}

.fv__pager-text.is-active {
  opacity: 1;
  -webkit-transform: translateY(0);
          transform: translateY(0);
}

/* ============================
   SERVICE
============================ */

.service {
  padding: 6.125rem 0;
  background-color: #fbfbfb;
  overflow-x: clip;
}

.service__list {
  margin-top: 1rem;
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-orient: vertical;
  -webkit-box-direction: normal;
      -ms-flex-direction: column;
          flex-direction: column;
  gap: 4.8125rem;
}

.service__item {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-orient: vertical;
  -webkit-box-direction: normal;
      -ms-flex-direction: column;
          flex-direction: column;
  gap: 1.625rem;
  position: relative;
}

.service__img-wrapper {
  width: 100%;
  border-radius: 0.3125rem;
  overflow: hidden;
  position: relative;
  z-index: 1;
}

.service__content {
  width: 100%;
  position: relative;
  z-index: 1;
}

.service__content-title {
  position: relative;
  z-index: 1;
}

.service__content-text {
  margin-top: 0.3125rem;
  position: relative;
  z-index: 1;
}

.service__content-link {
  margin-top: 1.4375rem;
  position: relative;
  z-index: 1;
}

.service__icon-wrapper {
  position: absolute;
  bottom: 2.1875rem;
  right: 0.4375rem;
  width: 5.3125rem;
}

.service__icon-wrapper--reverse {
  bottom: 1.1875rem;
  right: 0;
  width: 4.46875rem;
}

.service__line01-wrapper {
  position: absolute;
  z-index: 0;
  bottom: 1.875rem;
  right: -0.9375rem;
  width: 28.125rem;
}

.service__line02-wrapper {
  position: absolute;
  z-index: 0;
  bottom: -1.25rem;
  left: -0.9375rem;
  width: 28.125rem;
}

.service__bottom-img-wrapper {
  width: 100%;
  margin-top: 5rem;
  overflow: hidden;
}

.service__bottom-img {
  -webkit-transform-origin: center center;
          transform-origin: center center;
  will-change: transform;
  aspect-ratio: 7/5;
}

/* ============================
   COMPANY
============================ */

.company {
  padding: 3.75rem 0;
  background-color: #eef2f5;
}

.company__content {
  margin-top: 3.75rem;
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-orient: vertical;
  -webkit-box-direction: normal;
      -ms-flex-direction: column;
          flex-direction: column;
  gap: 2.5rem;
}

.company__img-wrapper {
  width: 100%;
}

.company__text-content {
  width: 100%;
}

.company__text-desc {
  margin-top: 1.5rem;
}

.company__text-link {
  margin-top: 2rem;
}

.company-greeting {
  padding: 3.125rem 0 1.875rem;
  overflow-x: clip;
}

.company-greeting__content {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-orient: vertical;
  -webkit-box-direction: normal;
      -ms-flex-direction: column;
          flex-direction: column;
  gap: 1.5625rem;
  margin-top: 1.5625rem;
}

.company-greeting__img-wrapper {
  width: 100%;
  overflow: hidden;
  border-radius: 0.625rem;
  opacity: 0;
  -webkit-transform: translateX(-2.5rem);
          transform: translateX(-2.5rem);
  -webkit-transition: opacity 0.8s ease, -webkit-transform 0.8s ease;
  transition: opacity 0.8s ease, -webkit-transform 0.8s ease;
  transition: opacity 0.8s ease, transform 0.8s ease;
  transition: opacity 0.8s ease, transform 0.8s ease, -webkit-transform 0.8s ease;
}

.company-greeting__img-wrapper.is-shown {
  opacity: 1;
  -webkit-transform: translateX(0);
          transform: translateX(0);
}

.company-greeting__text-wrapper {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-orient: vertical;
  -webkit-box-direction: normal;
      -ms-flex-direction: column;
          flex-direction: column;
  gap: 1.25rem;
  opacity: 0;
  -webkit-transform: translateX(2.5rem);
          transform: translateX(2.5rem);
  -webkit-transition: opacity 0.8s ease 0.2s, -webkit-transform 0.8s ease 0.2s;
  transition: opacity 0.8s ease 0.2s, -webkit-transform 0.8s ease 0.2s;
  transition: opacity 0.8s ease 0.2s, transform 0.8s ease 0.2s;
  transition: opacity 0.8s ease 0.2s, transform 0.8s ease 0.2s, -webkit-transform 0.8s ease 0.2s;
}

.company-greeting__text-wrapper.is-shown {
  opacity: 1;
  -webkit-transform: translateX(0);
          transform: translateX(0);
}

.company-greeting__signature {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-orient: vertical;
  -webkit-box-direction: normal;
      -ms-flex-direction: column;
          flex-direction: column;
  gap: 0;
}

.company-greeting__signature-title {
  font-family: "Zen Kaku Gothic New", sans-serif;
  font-size: 1rem;
  font-weight: 500;
  line-height: 1.44;
}

.company-greeting__signature-name {
  font-family: "Zen Kaku Gothic New", sans-serif;
  font-size: 1.125rem;
  font-weight: 500;
  line-height: 1.45;
}

.company-company {
  padding: 1.875rem 0 3.125rem;
}

.company-company__list {
  background-color: #fff;
  margin-top: 1.25rem;
}

.company-company__item {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-orient: vertical;
  -webkit-box-direction: normal;
      -ms-flex-direction: column;
          flex-direction: column;
  border-bottom: 0.125rem solid #cccccc;
  opacity: 0;
  -webkit-transform: translateY(1.25rem);
          transform: translateY(1.25rem);
  -webkit-transition: opacity 0.6s ease, -webkit-transform 0.6s ease;
  transition: opacity 0.6s ease, -webkit-transform 0.6s ease;
  transition: opacity 0.6s ease, transform 0.6s ease;
  transition: opacity 0.6s ease, transform 0.6s ease, -webkit-transform 0.6s ease;
}

.company-company__item.is-shown {
  opacity: 1;
  -webkit-transform: translateY(0);
          transform: translateY(0);
}

.company-company__item:first-of-type {
  border-top: 0.125rem solid #cccccc;
}

.company-company__item:last-child {
  border-bottom: none;
}

.company-company__term {
  padding: 0.9375rem 0 0.46875rem;
  font-size: 0.9375rem;
  font-weight: 500;
}

.company-company__desc {
  padding: 0.46875rem 0 0.9375rem;
  line-height: 1.5;
}

.company-company__business-list {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-orient: vertical;
  -webkit-box-direction: normal;
      -ms-flex-direction: column;
          flex-direction: column;
  gap: 0.25rem;
}

.company-company__business-item {
  position: relative;
  padding-left: 0.9375rem;
  line-height: 1.5;
}

.company-company__business-item::before {
  content: "・";
  position: absolute;
  left: 0;
  top: 0;
}

.company__bottom-image-wrapper {
  overflow-x: clip;
}

.company__bottom-image-wrapper img {
  aspect-ratio: 2/1;
}

.service-tab {
  position: sticky;
  top: 2.8125rem;
  z-index: 100;
  background-color: #fff;
  border-bottom: 0.0625rem solid #ddd;
  margin-top: 5.625rem;
  -webkit-transition: opacity 0.3s ease, -webkit-transform 0.3s ease;
  transition: opacity 0.3s ease, -webkit-transform 0.3s ease;
  transition: opacity 0.3s ease, transform 0.3s ease;
  transition: opacity 0.3s ease, transform 0.3s ease, -webkit-transform 0.3s ease;
}

.service-tab.is-hidden {
  opacity: 0;
  pointer-events: none;
  -webkit-transform: translateY(-6.25rem);
          transform: translateY(-6.25rem);
}

.service-tab__inner {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-orient: horizontal;
  -webkit-box-direction: normal;
      -ms-flex-direction: row;
          flex-direction: row;
  gap: 0;
}

.service-tab__item {
  -webkit-box-flex: 1;
      -ms-flex: 1;
          flex: 1;
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-orient: vertical;
  -webkit-box-direction: normal;
      -ms-flex-direction: column;
          flex-direction: column;
  position: relative;
  border-right: 0.0625rem solid #ddd;
}

.service-tab__item:last-child {
  border-right: none;
}

.service-tab__link {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
  -webkit-box-pack: justify;
      -ms-flex-pack: justify;
          justify-content: space-between;
  width: 100%;
  padding: 0.9375rem 1.25rem;
  font-size: 0.9375rem;
  font-weight: 700;
  color: #3a3a3a;
  background-color: #fbfbfb;
  border: none;
  text-align: left;
  cursor: pointer;
  -webkit-transition: background-color 0.3s ease, color 0.3s ease;
  transition: background-color 0.3s ease, color 0.3s ease;
}

.service-tab__link:hover {
  background-color: #e8e8e8;
}

.service-tab__link.is-active {
  background-color: #fff;
  color: #5a9ad4;
}

.service-tab__text {
  -webkit-box-flex: 1;
      -ms-flex: 1;
          flex: 1;
}

.service-tab__link.is-active .service-tab__text--repair {
  color: #a7ce8c;
}

.service-tab__icon {
  display: inline-block;
  font-size: 0.625rem;
  -webkit-transition: -webkit-transform 0.3s ease;
  transition: -webkit-transform 0.3s ease;
  transition: transform 0.3s ease;
  transition: transform 0.3s ease, -webkit-transform 0.3s ease;
  margin-left: 0.625rem;
}

.service-tab__link.is-open .service-tab__icon {
  -webkit-transform: rotate(180deg);
          transform: rotate(180deg);
}

.service-tab__submenu {
  position: absolute;
  top: 100%;
  left: 0;
  right: 0;
  max-height: 0;
  overflow: hidden;
  background-color: #fff;
  border-bottom: 0.0625rem solid #ddd;
  -webkit-transition: max-height 0.3s ease;
  transition: max-height 0.3s ease;
  z-index: 10;
}

.service-tab__submenu.is-open {
  max-height: 12.5rem;
}

.service-tab__sublink {
  display: block;
  padding: 0.75rem 0.625rem;
  font-size: 0.84375rem;
  color: #3a3a3a;
  border-bottom: 0.0625rem solid #f0f0f0;
  -webkit-transition: background-color 0.3s ease, color 0.3s ease;
  transition: background-color 0.3s ease, color 0.3s ease;
}

.service-tab__sublink:last-child {
  border-bottom: none;
}

.service-tab__sublink:hover {
  background-color: #fbfbfb;
  color: #5a9ad4;
}

.service-content {
  padding: 3.75rem 0;
  overflow-x: clip;
}

.service-content__inner {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-orient: vertical;
  -webkit-box-direction: normal;
      -ms-flex-direction: column;
          flex-direction: column;
  gap: 2.5rem;
}

.service-nav {
  position: sticky;
  top: 6.25rem;
  width: 15rem;
  -ms-flex-negative: 0;
      flex-shrink: 0;
  border-radius: 0.5rem;
  -webkit-transition: padding-top 0.3s ease;
  transition: padding-top 0.3s ease;
}

.service-nav.is-stuck {
  padding-top: 1.5rem;
}

.service-nav__header {
  font-family: "Zen Kaku Gothic New", sans-serif;
  font-size: 1.125rem;
  font-weight: 700;
  color: #5a9ad4;
  padding-bottom: 0.9375rem;
  border-bottom: 0.125rem solid #5a9ad4;
  margin-bottom: 1.25rem;
}

.service-nav__list {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-orient: vertical;
  -webkit-box-direction: normal;
      -ms-flex-direction: column;
          flex-direction: column;
  gap: 0.9375rem;
}

.service-nav__item {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-orient: vertical;
  -webkit-box-direction: normal;
      -ms-flex-direction: column;
          flex-direction: column;
  gap: 0.5rem;
}

.service-nav__link {
  font-family: "Zen Kaku Gothic New", sans-serif;
  font-size: 0.9375rem;
  font-weight: 700;
  color: #5a9ad4;
  line-height: 1.42;
  padding: 0.625rem 0.9375rem;
  border-radius: 0.25rem;
}

.service-nav__link span {
  display: inline-block;
  width: 1.25rem;
  height: 0.3125rem;
  background: -webkit-gradient(linear, right top, left top, from(#f0f3f6), to(#5a9ad4));
  background: linear-gradient(to left, #f0f3f6 0%, #5a9ad4 100%);
}

.service-nav__link span.repair {
  background: -webkit-gradient(linear, right top, left top, from(#f0f3f6), to(#a7ce8c));
  background: linear-gradient(to left, #f0f3f6 0%, #a7ce8c 100%);
}

.service-nav__link--repair {
  color: #a7ce8c;
}

.service-nav__sublist {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-orient: vertical;
  -webkit-box-direction: normal;
      -ms-flex-direction: column;
          flex-direction: column;
  gap: 0.3125rem;
  padding-left: 1.5625rem;
}

.service-nav__sublink {
  font-family: "Zen Kaku Gothic New", sans-serif;
  font-size: 0.875rem;
  font-weight: 700;
  color: #3a3a3a;
  line-height: 1.5;
  padding: 0.5rem 1.875rem 0.5rem 0;
  text-decoration: none;
  border-bottom: 0.0625rem solid currentColor;
  position: relative;
  -webkit-transition: color 0.3s ease;
  transition: color 0.3s ease;
}

.service-nav__sublink::after {
  content: "・";
  position: absolute;
  right: 0.625rem;
  top: 50%;
  -webkit-transform: translateY(-50%);
          transform: translateY(-50%);
  opacity: 0;
  -webkit-transition: opacity 0.3s ease;
  transition: opacity 0.3s ease;
}

.service-nav__sublink:hover {
  color: #5a9ad4;
  opacity: 1;
}

.service-nav__sublink:hover::after {
  opacity: 1;
}

.service-nav__sublink.is-active {
  color: #5a9ad4;
}

.service-nav__sublink.is-active::after {
  opacity: 1;
}

.service-nav__sublink--repair:hover {
  color: #a7ce8c;
}

.service-nav__sublink--repair.is-active {
  color: #a7ce8c;
}

.service-main {
  -webkit-box-flex: 1;
      -ms-flex: 1;
          flex: 1;
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-orient: vertical;
  -webkit-box-direction: normal;
      -ms-flex-direction: column;
          flex-direction: column;
  gap: 5rem;
}

.service-section {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-orient: vertical;
  -webkit-box-direction: normal;
      -ms-flex-direction: column;
          flex-direction: column;
  gap: 1.375rem;
}

.service-section__header {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-orient: vertical;
  -webkit-box-direction: normal;
      -ms-flex-direction: column;
          flex-direction: column;
  gap: 1.6875rem;
}

.service-section__title {
  font-size: 1.375rem;
  line-height: 1.45454545;
  color: #5a9ad4;
}

.service-section__intro {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-orient: vertical;
  -webkit-box-direction: normal;
      -ms-flex-direction: column;
          flex-direction: column;
  gap: 1.25rem;
}

.service-section__lead {
  font-family: "Zen Kaku Gothic New", sans-serif;
  font-size: 1.375rem;
  font-weight: 700;
  line-height: 1.45454545;
}

.service-section__desc {
  line-height: 1.8;
}

.service-section__title--repair {
  color: #a7ce8c;
}

.service-subsection {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-orient: vertical;
  -webkit-box-direction: normal;
      -ms-flex-direction: column;
          flex-direction: column;
  gap: 1.625rem;
  margin-top: 2.5rem;
}

.service-subsection__title {
  font-family: "Zen Kaku Gothic New", sans-serif;
  font-size: 1.25rem;
  font-weight: 700;
  color: #5a9ad4;
  line-height: 1.67;
}

.service-subsection__title--repair {
  color: #a7ce8c;
}

.service-card-list {
  display: grid;
  grid-template-columns: 1fr;
  gap: 1.25rem;
}

.service-card {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-orient: vertical;
  -webkit-box-direction: normal;
      -ms-flex-direction: column;
          flex-direction: column;
  gap: 0.5625rem;
  background-color: #fff;
  border-radius: 0.5rem;
  overflow: hidden;
}

.service-card__img-wrapper {
  width: 100%;
  overflow: hidden;
}

.service-card__img-wrapper img {
  border-radius: 1.25rem;
  aspect-ratio: 67/50;
}

.service-card__content {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-orient: vertical;
  -webkit-box-direction: normal;
      -ms-flex-direction: column;
          flex-direction: column;
  gap: 0.9375rem;
}

.service-card__title {
  font-family: "Zen Kaku Gothic New", sans-serif;
  font-size: 1.125rem;
  font-weight: 500;
  text-align: center;
  line-height: 1.66666667;
}

.service-card__title--small {
  font-size: 1.125rem;
}

.service-card__title--left {
  text-align: center;
}

.service-card__text {
  font-size: 0.875rem;
  line-height: 1.8;
}

.service-gallery {
  display: grid;
  grid-template-columns: 1fr;
  gap: 1.25rem;
}

.service-gallery--02 {
  gap: 3.125rem;
}

.service-gallery--03 {
  grid-template-areas: "a b" "c c";
  grid-template-columns: 1fr 1fr;
  gap: 3.125rem 1.25rem;
}

.service-gallery__item {
  position: relative;
}

.service-gallery--02 .service-gallery__item:nth-of-type(2n-1)::after,
.service-gallery--03 .service-gallery__item:nth-of-type(3n-1)::after {
  position: absolute;
  content: "";
  bottom: -0.5rem;
  left: 50%;
  -webkit-transform: translate(-50%, 100%) rotate(90deg);
          transform: translate(-50%, 100%) rotate(90deg);
  background-image: url(../img/arrow-cleaning.svg);
  background-repeat: no-repeat;
  background-size: cover;
  background-position: center;
  width: 1.25rem;
  height: 1.875rem;
}

.service-gallery--02--repair .service-gallery__item:nth-of-type(2n-1)::after {
  background-image: url(../img/arrow-repair.svg);
}

.service-gallery--03 .service-gallery__item:nth-of-type(3n-1)::after {
  left: 0;
  -webkit-transform: translate(-100%, 100%) rotate(90deg);
          transform: translate(-100%, 100%) rotate(90deg);
}

.service-gallery--03 .service-gallery__item:nth-of-type(1) {
  grid-area: a;
}

.service-gallery--03 .service-gallery__item:nth-of-type(2) {
  grid-area: b;
}

.service-gallery--03 .service-gallery__item:nth-of-type(3) {
  grid-area: c;
}

.service-gallery__img-wrapper {
  width: 100%;
  overflow: hidden;
  -webkit-transition: -webkit-transform 0.3s ease;
  transition: -webkit-transform 0.3s ease;
  transition: transform 0.3s ease;
  transition: transform 0.3s ease, -webkit-transform 0.3s ease;
}

.service-gallery__img-wrapper img {
  aspect-ratio: 426/330;
  border-radius: 0.625rem;
}

.service-gallery__img-wrapper--02 img {
  aspect-ratio: 35/33;
}

.service-gallery__img-wrapper--03 img {
  aspect-ratio: 482/330;
}

.service-gallery__img-wrapper--04 img {
  aspect-ratio: 240/330;
}

.service-gallery__img-wrapper--05 img {
  aspect-ratio: 332/330;
}

.service-gallery__img-wrapper--06 img {
  aspect-ratio: 35/45;
}

.service-gallery__img-wrapper--07 img {
  aspect-ratio: 482/450;
}

.service-gallery__img-wrapper--08 img {
  aspect-ratio: 426/450;
}

.service-gallery__img-wrapper--09 img {
  aspect-ratio: 426/330;
}

.service-gallery__label {
  font-family: "Zen Kaku Gothic New", sans-serif;
  font-size: 1.125rem;
  font-weight: 500;
  line-height: 1.44;
  text-align: center;
  margin-top: 0.5rem;
  color: #5a9ad4;
}

.service-gallery__label--center {
  text-align: right;
  margin-right: -2rem;
}

.service-gallery__label--small {
  font-size: 0.9375rem;
  line-height: 1.47;
}

.service-gallery__label--repair {
  color: #a7ce8c;
}

.service-gallery-group {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-orient: vertical;
  -webkit-box-direction: normal;
      -ms-flex-direction: column;
          flex-direction: column;
  gap: 1rem;
  margin-top: 1.25rem;
}

.service-gallery-group__title {
  font-family: "Zen Kaku Gothic New", sans-serif;
  font-size: 1.125rem;
  font-weight: 700;
  color: #5a9ad4;
  line-height: 1.45;
}

.service-gallery-group__title--repair {
  color: #a7ce8c;
}

.js-gallery-slide-in {
  opacity: 0;
  -webkit-transition: opacity 0.8s ease, -webkit-transform 0.8s ease;
  transition: opacity 0.8s ease, -webkit-transform 0.8s ease;
  transition: opacity 0.8s ease, transform 0.8s ease;
  transition: opacity 0.8s ease, transform 0.8s ease, -webkit-transform 0.8s ease;
}

.js-gallery-slide-in.slide-from-left {
  -webkit-transform: translateX(-5rem) translateY(1.25rem) scale(0.9);
          transform: translateX(-5rem) translateY(1.25rem) scale(0.9);
}

.js-gallery-slide-in.slide-from-right {
  -webkit-transform: translateX(5rem) translateY(1.25rem) scale(0.9);
          transform: translateX(5rem) translateY(1.25rem) scale(0.9);
}

.js-gallery-slide-in.is-visible {
  opacity: 1;
  -webkit-transform: translateX(0) translateY(0) scale(1);
          transform: translateX(0) translateY(0) scale(1);
}

.service-reason {
  padding: 3.125rem 0;
  background-color: #eef2f5;
}

.service-reason__title {
  text-align: center;
  color: #5a9ad4;
}

.service-reason__list {
  display: grid;
  grid-template-columns: 1fr;
  gap: 4.375rem;
  margin-top: 4.375rem;
}

.service-reason__item {
  opacity: 0;
  -webkit-transform: translateY(1.875rem);
          transform: translateY(1.875rem);
  -webkit-transition: opacity 0.8s ease, -webkit-transform 0.8s ease;
  transition: opacity 0.8s ease, -webkit-transform 0.8s ease;
  transition: opacity 0.8s ease, transform 0.8s ease;
  transition: opacity 0.8s ease, transform 0.8s ease, -webkit-transform 0.8s ease;
}

.service-reason__item.is-visible {
  opacity: 1;
  -webkit-transform: translateY(0);
          transform: translateY(0);
}

.service-reason__item:nth-child(1).is-visible {
  -webkit-transition-delay: 0s;
          transition-delay: 0s;
}

.service-reason__item:nth-child(2).is-visible {
  -webkit-transition-delay: 0.2s;
          transition-delay: 0.2s;
}

.service-reason__item:nth-child(3).is-visible {
  -webkit-transition-delay: 0.4s;
          transition-delay: 0.4s;
}

.service-reason__card {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-orient: vertical;
  -webkit-box-direction: normal;
      -ms-flex-direction: column;
          flex-direction: column;
  background-color: #fff;
  border-radius: 0.625rem;
  -webkit-transition: -webkit-box-shadow 0.3s ease, -webkit-transform 0.3s ease;
  transition: -webkit-box-shadow 0.3s ease, -webkit-transform 0.3s ease;
  transition: box-shadow 0.3s ease, transform 0.3s ease;
  transition: box-shadow 0.3s ease, transform 0.3s ease, -webkit-box-shadow 0.3s ease, -webkit-transform 0.3s ease;
  position: relative;
}

.service-reason__badge {
  position: absolute;
  top: -3.125rem;
  left: -0.9375rem;
  width: 5.625rem;
  z-index: 5;
}

.service-reason__img-wrapper {
  position: relative;
  overflow: hidden;
  border-radius: 0.625rem 0.625rem 0 0;
}

.service-reason__img-wrapper img {
  aspect-ratio: 380/244;
}

.service-reason__content {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-orient: vertical;
  -webkit-box-direction: normal;
      -ms-flex-direction: column;
          flex-direction: column;
  gap: 0.9375rem;
  padding: 1.125rem;
}

.service-reason__card-title {
  font-family: "Zen Kaku Gothic New", sans-serif;
  font-size: 1.125rem;
  font-weight: 700;
  line-height: 1.5;
  text-align: center;
}

.service-reason__text {
  font-size: 0.9375rem;
  font-weight: 500;
  line-height: 1.8;
  text-align: justify;
}

/* ==========================================
    画面高さが1020px以下のデバイス
   ========================================== */

@media screen and (min-width: 414px) {
  .hide-sp {
    display: none;
  }
}

@media screen and (min-width: 524px) {
  .md-sm-none {
    display: block;
  }

  .hide-sm {
    display: none;
  }
}

@media screen and (min-width: 769px) {
  .inner {
    max-width: 76.25rem;
    padding-inline: 1.25rem;
  }

  .hide-md {
    display: none;
  }

  .show-md {
    display: block;
  }

  .lg-md-only {
    display: block;
  }

  .md-sm-none {
    display: none;
  }

  .section-title__heading {
    font-size: 3.75rem;
  }

  .section-title__text {
    margin-top: -0.0625rem;
    margin-left: 0.4375rem;
    font-size: 1.125rem;
  }

  .section-sub-title {
    font-size: 1.625rem;
  }

  .section-text {
    line-height: 2.33;
  }

  .detail-link {
    padding: 0.25rem 4.3125rem 0.25rem 3.5rem;
    font-size: 0.9375rem;
    line-height: 2.33;
    margin: 0;
  }

  .detail-link:hover {
    opacity: 1;
    -webkit-box-shadow: 0 0.25rem 0.5rem rgba(0, 0, 0, 0.1);
            box-shadow: 0 0.25rem 0.5rem rgba(0, 0, 0, 0.1);
  }

  .detail-link__icon {
    width: 1.3125rem;
  }

  .detail-link:hover .detail-link__icon {
    -webkit-transform: translate(0.375rem, -50%);
            transform: translate(0.375rem, -50%);
  }

  .detail-link--green:hover {
    background-color: rgb(145.24, 191.3890909091, 112.8109090909);
  }

  .detail-link--blue:hover {
    background-color: rgb(57.6346153846, 134.1884615385, 203.5653846154);
  }

  .page-fv {
    min-height: 30.6875rem;
    margin-top: 9.0625rem;
  }

  .page-fv__svg--pc {
    width: calc(100% + 25rem);
    margin-left: -8rem;
  }

  .page-fv__title-ja {
    font-size: 2.5rem;
  }

  .page-fv__title-en {
    font-size: 1.375rem;
    margin-top: 0.0625rem;
  }

  .page-fv__img-wrapper {
    margin-top: 2.3625rem;
  }

  .opening__header-logo {
    width: -webkit-fit-content;
    width: -moz-fit-content;
    width: fit-content;
  }

  .opening__header-img {
    width: 18.625rem;
    height: auto;
  }

  .opening__icon {
    width: 8.2913125rem;
    height: auto;
  }

  .opening.is-active .opening__bg {
    -webkit-animation: openingBgSlideOut 0.8s cubic-bezier(0.65, 0, 0.35, 1) 2.7s forwards;
            animation: openingBgSlideOut 0.8s cubic-bezier(0.65, 0, 0.35, 1) 2.7s forwards;
  }

  .opening.is-active .opening__header-logo {
    -webkit-animation: openingHeaderLogoFadeIn 0.3s ease-out 0s forwards, openingHeaderLogoFadeOut 0.3s ease-out 2.7s forwards;
            animation: openingHeaderLogoFadeIn 0.3s ease-out 0s forwards, openingHeaderLogoFadeOut 0.3s ease-out 2.7s forwards;
  }

  .opening.is-active .opening__icon {
    -webkit-animation: openingIconFadeIn 0.3s ease-out 0.3s forwards, openingIconMove 2s cubic-bezier(0.4, 0, 0.2, 1) 0.6s forwards, openingIconFadeOut 0.3s ease-out 2.7s forwards;
            animation: openingIconFadeIn 0.3s ease-out 0.3s forwards, openingIconMove 2s cubic-bezier(0.4, 0, 0.2, 1) 0.6s forwards, openingIconFadeOut 0.3s ease-out 2.7s forwards;
  }

  .opening.is-active .opening__band-svg-wrapper {
    -webkit-animation: openingBandFadeOut 0.3s ease-out 2.7s forwards;
            animation: openingBandFadeOut 0.3s ease-out 2.7s forwards;
  }

  .header {
    height: initial;
  }

  .header__inner {
    padding: 0 1.25rem;
    height: initial;
  }

  .header__logo-img-wrapper {
    width: 11.5625rem;
  }

  .header__link {
    font-size: 1.125rem;
    height: 5.3125rem;
  }

  .header__link:hover {
    opacity: 1;
  }

  .header__link:hover span::after {
    -webkit-transform: scaleX(1);
            transform: scaleX(1);
  }

  .drawer {
    display: none;
  }

  .footer {
    padding: 2.8125rem 0 3.125rem;
    margin-top: 12.5rem;
  }

  .footer--service {
    margin-top: 0;
  }

  .footer__inner {
    padding-inline: 4.5rem 6.8125rem;
  }

  .footer__top {
    -webkit-box-orient: horizontal;
    -webkit-box-direction: normal;
        -ms-flex-direction: row;
            flex-direction: row;
    -webkit-box-pack: justify;
        -ms-flex-pack: justify;
            justify-content: space-between;
    -webkit-box-align: start;
        -ms-flex-align: start;
            align-items: flex-start;
    gap: 0;
    max-width: 62.5rem;
    margin-inline: auto;
    position: relative;
    left: 1.125rem;
  }

  .footer__logo-wrapper {
    width: 15.125rem;
  }

  .footer__nav {
    width: auto;
    margin-top: 2.1875rem;
  }

  .footer__list {
    -ms-flex-wrap: nowrap;
        flex-wrap: nowrap;
    gap: 2.5625rem;
  }

  .footer__link {
    font-size: 1.0625rem;
  }

  .footer__link:hover {
    opacity: 1;
  }

  .footer__link:hover::after {
    -webkit-transform: scaleX(1);
            transform: scaleX(1);
  }

  .footer__info {
    margin-top: 0.9375rem;
    max-width: 60rem;
    margin-inline: auto;
    -webkit-box-align: start;
        -ms-flex-align: start;
            align-items: flex-start;
    gap: 0.25rem;
  }

  .footer__info-text {
    font-size: 1rem;
  }

  .footer__copyright {
    margin-top: 1.8125rem;
    font-size: 1rem;
  }

  .phone-button {
    display: none;
  }

  .fv {
    margin-top: 5.3125rem;
    height: calc(100vh - 5.3125rem);
  }

  .fv__text {
    top: 26.8%;
    left: 1.25rem;
    -webkit-transform: translateY(-50%);
            transform: translateY(-50%);
    padding: 0;
    width: auto;
  }

  .fv__text-desc {
    font-size: 1.125rem;
    line-height: 1.72;
  }

  .fv__text-title {
    font-size: 2.75rem;
    line-height: 1.45;
    margin-top: 2rem;
  }

  .fv__text-title--large {
    font-size: 3.75rem;
  }

  .fv__text-title--conjunction {
    font-size: 2.75rem;
  }

  .fv__pager {
    right: 2.5rem;
    bottom: 2.5rem;
  }

  .service {
    padding: 9.1875rem 0 12.5rem;
  }

  .service__list {
    margin-top: 2.375rem;
    gap: 7.0625rem;
  }

  .service__item {
    -webkit-box-orient: horizontal;
    -webkit-box-direction: normal;
        -ms-flex-direction: row;
            flex-direction: row;
    gap: 4.1875rem;
    width: 67.625rem;
    margin-right: auto;
  }

  .service__item--reverse {
    -webkit-box-orient: horizontal;
    -webkit-box-direction: reverse;
        -ms-flex-direction: row-reverse;
            flex-direction: row-reverse;
    margin-left: auto;
    margin-right: 0;
  }

  .service__img-wrapper {
    width: 36.25rem;
    border-radius: 0.625rem;
  }

  .service__content {
    margin-top: 2.25rem;
    -webkit-box-flex: 1;
        -ms-flex: 1;
            flex: 1;
  }

  .service__content--reverse {
    margin-top: 3.1875rem;
  }

  .service__content-text {
    margin-top: 0.875rem;
  }

  .service__content-link {
    margin-top: 1.4375rem;
  }

  .service__icon-wrapper {
    bottom: -1.9375rem;
    right: -1.125rem;
    width: 8.4375rem;
  }

  .service__icon-wrapper--reverse {
    bottom: 0;
    right: -0.4375rem;
    width: 7.125rem;
  }

  .service__line01-wrapper {
    bottom: initial;
    top: 0;
    width: 64.75rem;
    right: -15.8333333333vw;
  }

  .service__line02-wrapper {
    bottom: initial;
    top: 0;
    width: 64.75rem;
    left: -15.8333333333vw;
  }

  .service__bottom-img-wrapper {
    margin-top: 14.5625rem;
  }

  .service__bottom-img {
    aspect-ratio: initial;
  }

  .company {
    padding: 6.0625rem 0;
  }

  .company__content {
    margin-top: 3.25rem;
    -webkit-box-orient: horizontal;
    -webkit-box-direction: normal;
        -ms-flex-direction: row;
            flex-direction: row;
    gap: 6.75rem;
    width: 62.5rem;
    margin-inline: auto;
  }

  .company__img-wrapper {
    width: 28.125rem;
  }

  .company__text-content {
    margin-top: -0.5625rem;
    -webkit-box-flex: 1;
        -ms-flex: 1;
            flex: 1;
  }

  .company__text-desc {
    margin-top: 1.0625rem;
  }

  .company__text-link {
    margin-top: 1.25rem;
  }

  .company-greeting {
    padding: 12rem 0 5.8125rem;
  }

  .company-greeting__inner {
    max-width: 65rem;
  }

  .company-greeting__content {
    -webkit-box-orient: horizontal;
    -webkit-box-direction: normal;
        -ms-flex-direction: row;
            flex-direction: row;
    gap: 6.5625rem;
    -webkit-box-align: start;
        -ms-flex-align: start;
            align-items: flex-start;
    margin-top: 3rem;
  }

  .company-greeting__img-wrapper {
    width: 23.75rem;
    border-radius: 1.25rem;
  }

  .company-greeting__text-wrapper {
    -webkit-box-flex: 1;
        -ms-flex: 1;
            flex: 1;
    gap: 1.25rem;
  }

  .company-greeting__signature {
    gap: 0;
    margin-left: 0.25rem;
  }

  .company-greeting__signature-title {
    font-size: 1.125rem;
  }

  .company-greeting__signature-name {
    font-size: 1.375rem;
  }

  .company-company {
    padding: 6.25rem 0;
  }

  .company-company__inner {
    max-width: 65rem;
  }

  .company-company__list {
    margin-top: 2rem;
  }

  .company-company__item {
    -webkit-box-orient: horizontal;
    -webkit-box-direction: normal;
        -ms-flex-direction: row;
            flex-direction: row;
    gap: 1.875rem;
  }

  .company-company__term {
    width: 10rem;
    font-size: 0.9375rem;
    padding: 0.78125rem 0;
    -ms-flex-negative: 0;
        flex-shrink: 0;
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    -webkit-box-align: center;
        -ms-flex-align: center;
            align-items: center;
  }

  .company-company__desc {
    padding: 0.78125rem 0;
    -webkit-box-flex: 1;
        -ms-flex: 1;
            flex: 1;
    line-height: 2;
  }

  .company-company__business-item {
    line-height: 2.1;
  }

  .company__bottom-image-wrapper {
    padding: 6.25rem 0 0;
  }

  .company__bottom-image-wrapper img {
    aspect-ratio: 144/35;
  }

  .service-content {
    padding: 9.25rem 0 12.5rem;
  }

  .service-content__inner {
    -webkit-box-orient: horizontal;
    -webkit-box-direction: normal;
        -ms-flex-direction: row;
            flex-direction: row;
    gap: 3.75rem;
    -webkit-box-align: start;
        -ms-flex-align: start;
            align-items: flex-start;
    max-width: 76.25rem;
  }

  .service-nav__list {
    gap: 15.5rem;
  }

  .service-nav__link {
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    -webkit-box-align: center;
        -ms-flex-align: center;
            align-items: center;
    gap: 0.5625rem;
    font-size: 1.125rem;
    padding: 0;
  }

  .service-nav__sublist {
    margin-top: 5.9375rem;
    padding-left: 0.1875rem;
    gap: 3.4375rem;
  }

  .service-nav__sublink {
    font-size: 1rem;
    padding: 0.5rem 1.875rem 0.5625rem 0;
    border-bottom: 0.0625rem solid #dde3e9;
  }

  .service-main {
    gap: 12.6875rem;
  }

  .service-section {
    gap: 2.5rem;
  }

  .service-section__header {
    -webkit-box-orient: horizontal;
    -webkit-box-direction: normal;
        -ms-flex-direction: row;
            flex-direction: row;
    -webkit-box-pack: justify;
        -ms-flex-pack: justify;
            justify-content: space-between;
    -webkit-box-align: start;
        -ms-flex-align: start;
            align-items: flex-start;
  }

  .service-section__title {
    font-size: 1.625rem;
    width: 19.6875rem;
    line-height: 1.42307692;
  }

  .service-section__intro {
    width: 26.0625rem;
    gap: 1.1875rem;
  }

  .service-section__lead {
    font-size: 1.625rem;
    line-height: 1.54;
  }

  .service-subsection {
    gap: 2.0625rem;
    margin-top: 7rem;
  }

  .service-subsection--02 {
    margin-top: 0.8125rem;
  }

  .service-subsection--03,
  .service-subsection--04 {
    border-top: 0.0625rem solid #5a9ad4;
    margin-top: 3.625rem;
    padding-top: 3rem;
  }

  .service-subsection--04 {
    border-color: #a7ce8c;
  }

  .service-subsection__title {
    font-size: 1.5rem;
  }

  .service-card-list {
    grid-template-columns: repeat(3, 1fr);
    gap: 2.3125rem 1.5625rem;
  }

  .service-card {
    gap: 0.125rem;
  }

  .service-card__img-wrapper img {
    border-radius: 1.25rem;
    aspect-ratio: 426/330;
  }

  .service-card__title {
    font-size: 1.125rem;
    width: 15.75rem;
    margin-inline: auto;
    line-height: 1.44;
  }

  .service-card__title--small {
    font-size: 1.0625rem;
    width: -webkit-fit-content;
    width: -moz-fit-content;
    width: fit-content;
  }

  .service-card__title--left {
    text-align: left;
  }

  .service-gallery {
    grid-template-columns: repeat(2, 1fr);
    gap: 1.5625rem;
  }

  .service-gallery--02 {
    grid-template-columns: 350fr 482fr;
    gap: 2.8125rem;
  }

  .service-gallery--03 {
    grid-template-areas: "a b c";
    grid-template-columns: 240fr 240fr 332fr;
    gap: 2.34375rem;
  }

  .service-gallery--04 {
    grid-template-columns: repeat(2, 1fr);
    gap: 3.125rem 1.5625rem;
  }

  .service-gallery--triple {
    grid-template-columns: repeat(3, 1fr);
  }

  .service-gallery--02 .service-gallery__item:nth-of-type(2n-1)::after,
  .service-gallery--03 .service-gallery__item:nth-of-type(3n-1)::after {
    bottom: initial;
    left: initial;
    top: 47%;
    right: -0.6875rem;
    -webkit-transform: translate(100%, -50%) rotate(0);
            transform: translate(100%, -50%) rotate(0);
    width: 1.5625rem;
    height: 2.1875rem;
  }

  .service-gallery--03 .service-gallery__item:nth-of-type(3n-1)::after {
    right: -0.5rem;
  }

  .service-gallery--03 .service-gallery__item + .service-gallery__item {
    position: relative;
    left: -1.09375rem;
  }

  .service-gallery__img-wrapper img {
    border-radius: 1.25rem;
  }

  .service-gallery__label {
    font-size: 1.125rem;
    margin-top: 0.9375rem;
  }

  .service-gallery__label--small {
    font-size: 1.0625rem;
  }

  .service-gallery-group {
    gap: 1.25rem;
    margin-top: 0;
  }

  .service-gallery-group--02 {
    margin-top: 0.9375rem;
  }

  .service-gallery-group__title {
    font-size: 1.25rem;
  }

  .service-reason {
    padding: 8.5rem 0;
  }

  .service-reason__inner {
    max-width: 71.25rem;
  }

  .service-reason__list {
    grid-template-columns: repeat(3, 1fr);
    gap: 0.625rem;
    margin-top: 6.0625rem;
  }

  .service-reason__card {
    height: 100%;
    border-radius: 1.25rem;
  }

  .service-reason__badge {
    top: -1.25rem;
    left: -0.625rem;
    width: 5.625rem;
  }

  .service-reason__img-wrapper {
    border-radius: 1.25rem 1.25rem 0 0;
  }

  .service-reason__content {
    -webkit-box-flex: 1;
        -ms-flex: 1;
            flex: 1;
    gap: 0.125rem;
    padding: 1.25rem;
  }

  .service-reason__card-title {
    font-size: 1.1875rem;
    line-height: 1.8;
  }

  .service-reason__text {
    font-size: 0.9375rem;
    line-height: 2.33333333;
  }
}

@media (max-height: 1020px) and (min-width: 769px) {
  .service-nav__list {
    gap: 7.5rem;
  }

  .service-nav__sublist {
    margin-top: 1.875rem;
    gap: 1.875rem;
  }
}

@media screen and (min-width: 1024px) {
  .hide-lg {
    display: none;
  }

  .show-lg {
    display: block;
  }

  .lg-md-only {
    display: none;
  }

  .service-reason__list {
    gap: 1.25rem;
  }

  .service-reason__badge {
    top: -3.6875rem;
    left: -2rem;
    width: 7.1875rem;
  }
}

@media screen and (min-width: 1200px) {
  .service-reason__content {
    padding: 1.875rem 1.6875rem 1.5rem;
  }
}

@media screen and (min-width: 1440px) {
  .hide-xl {
    display: none;
  }

  .service-reason__inner {
    max-width: 76.25rem;
  }

  .service-reason__card-title {
    font-size: 1.25rem;
  }
}

@media screen and (min-width: 1601px) {
  .hide-xl2 {
    display: none;
  }
}

@media (min-width: 1921px) {
  html {
    font-size: min(0.8333333333vw, 19.2px);
  }
}

@media screen and (max-width: 782px) {
  /* モバイル用の管理バー */

  body.admin-bar {
    margin-bottom: 46px;
    /* モバイル用の管理バーの高さ分 */
  }
}

@media (max-width: 768px) {
  html {
    font-size: min(4.2666666667vw, 24px);
  }
}

@media (min-width: 769px) and (max-width: 1220px) {
  html {
    font-size: 1.3114754098vw;
  }
}

@media (min-width: 1220px) and (max-width: 1920px) {
  html {
    font-size: 16px;
  }
}

@media (any-hover: hover) {
  a:hover {
    opacity: 0.7;
  }
}
/*# sourceMappingURL=style.css.map */