@charset "UTF-8";
/* ========== Reset CSS ========== */
/* 全要素にbox-sizing設定 */
*, *::before, *::after {
  box-sizing: border-box;
}

/* 基本要素のリセット */
html, body, div, span, applet, object, iframe,
h1, h2, h3, h4, h5, h6, p, blockquote, pre,
a, abbr, acronym, address, big, cite, code,
del, dfn, em, img, ins, kbd, q, s, samp,
small, strike, strong, sub, sup, tt, var,
b, u, i, center,
dl, dt, dd, ol, ul, li,
fieldset, form, label, legend,
table, caption, tbody, tfoot, thead, tr, th, td,
article, aside, canvas, details, figcaption, figure,
footer, header, hgroup, menu, nav, section, summary,
time, mark, audio, video {
  margin: 0;
  padding: 0;
  border: 0;
  font-size: 100%;
  font: inherit;
  vertical-align: baseline;
}

header,
footer,
nav,
section,
article,
main,
aside,
figure,
figcaption {
  display: block;
}

ol,
ul {
  list-style: none;
}

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

a {
  color: inherit;
  text-decoration: none;
}

button {
  margin: 0;
  padding: 0;
  border: none;
  box-shadow: none;
  background: transparent;
  cursor: pointer;
  font: inherit;
}

input,
select,
textarea {
  font: inherit;
  color: inherit;
  vertical-align: top;
}

/* テーブルのリセット */
table {
  border-collapse: collapse;
  border-spacing: 0;
}

/* 水平線（hr）のリセット */
hr {
  display: block;
  height: 1px;
  border: 0;
  border-top: 1px solid #cccccc;
  margin: 1em 0;
  padding: 0;
}

html {
  font-size: 62.5%;
  overflow-x: hidden;
  scroll-behavior: smooth;
}

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

body {
  font-size: 1.6rem;
  font-family: "Noto Sans JP", sans-serif;
  font-weight: 400;
  color: #4A4947;
  line-height: 1.8;
  background: #F1EFEC;
  background-repeat: repeat;
  background-position: top center;
  background-size: auto;
}
@media (max-width: 767px) and (prefers-color-scheme: dark) {
  html,
body {
    background-color: #F8F6F2 !important;
    color: #4A4947 !important;
  }
}
body.loaded {
  filter: blur(0);
  opacity: 1;
}

li {
  list-style: none;
}

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

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

.stalker {
  background-color: rgba(28, 180, 211, 0.5);
  width: 1.2rem;
  height: 1.2rem;
  border-radius: 50%;
  top: -6px;
  left: -6px;
  opacity: 0;
  pointer-events: none;
  position: fixed;
  transition: all 0.3s ease-out;
  z-index: 9999;
}

/* リンクにホバーした時のスタイル */
.stalker.js-hover {
  background-color: #fff;
  width: 4.6rem;
  height: 4.6rem;
  left: -2.3rem;
  top: -2.3rem;
  mix-blend-mode: difference;
}

.header {
  height: 11rem;
  position: fixed;
  top: 0;
  left: 0;
  width: 100vw;
  z-index: 2000;
}
@media screen and (max-width: 767px) {
  .header {
    height: 6.6rem;
  }
}

.header.is-scrolled {
  backdrop-filter: blur(10px);
  -webkit-backdrop-filter: blur(10px);
  background-color: rgba(241, 239, 236, 0.3);
  transition: background-color 0.3s ease, -webkit-backdrop-filter 0.3s ease;
  transition: backdrop-filter 0.3s ease, background-color 0.3s ease;
  transition: backdrop-filter 0.3s ease, background-color 0.3s ease, -webkit-backdrop-filter 0.3s ease;
}

.header__inner {
  width: 100%;
  max-width: 135.8rem;
  display: flex;
  align-items: center;
  height: 100%;
  margin-inline: auto;
  padding-inline: 1.5rem;
}
@media screen and (max-width: 767px) {
  .header__inner {
    padding-inline: 2rem;
  }
}

.header__left {
  margin-right: auto;
}

.header__logo {
  width: clamp(17rem, 14.7vw, 21.1rem);
  background-color: transparent;
  color: #4A4947;
}
@media screen and (max-width: 767px) {
  .header__logo {
    width: 12.4rem;
  }
}

.header__logo svg {
  display: block;
  width: 100%;
  height: auto;
}

.header-nav {
  padding-right: clamp(3rem, 6.2vw, 9rem);
}
@media screen and (max-width: 767px) {
  .header-nav {
    display: none;
  }
}

.header-nav.is-hidden {
  display: none;
}

.header-nav__lists {
  display: flex;
  align-items: center;
  gap: clamp(3rem, 4.5vw, 5.6rem);
  list-style: none;
  margin: 0;
  padding: 0;
}

.header-nav__list {
  position: relative;
  font-family: "Montserrat", sans-serif;
  text-align: center;
}

.header-nav__list--has-dropdown:hover .header-nav__dropdown-lists {
  display: flex;
}

.header-nav__link {
  display: block;
  font-size: clamp(1.6rem, 2vw, 2.2rem);
  font-weight: 600;
  color: #4A4947;
  line-height: 1.4;
  text-decoration: none;
}

.header-nav__link-text-ja {
  display: block;
  font-size: clamp(1rem, 1.34vw, 1.2rem);
  font-family: "Noto Sans JP", sans-serif;
  font-weight: 500;
  margin-top: 0.4rem;
}

.header-nav__link:hover {
  opacity: 0.7;
}

.header-nav__dropdown-lists {
  display: none;
  position: absolute;
  top: 100%;
  left: 50%;
  transform: translateX(-50%);
  padding: 1.2rem 0;
  min-width: -webkit-max-content;
  min-width: -moz-max-content;
  min-width: max-content;
  z-index: 100;
  flex-direction: column;
  gap: 1rem;
}

.header-nav__dropdown-list {
  text-align: left;
  background-color: #4A4947;
  transition: background-color 0.3s ease;
  opacity: 0;
  -webkit-animation: dropdownFade 0.4s ease forwards;
          animation: dropdownFade 0.4s ease forwards;
}

.header-nav__dropdown-link {
  display: block;
  padding-block: 8px;
  padding-inline: 8px;
  white-space: nowrap;
  color: #FDFAF5;
  font-size: 1.3rem;
  font-weight: 500;
  font-family: "Noto Sans JP", sans-serif;
  text-decoration: none;
  transition: color 0.3s ease;
}

.header-nav__dropdown-list:hover {
  background-color: #F0FF42;
}
.header-nav__dropdown-list:hover .header-nav__dropdown-link {
  color: #4A4947;
}

.header-nav__list--has-dropdown:hover .header-nav__dropdown-lists {
  display: flex;
  flex-direction: column;
  gap: 1.2rem;
}

.header-nav__list--has-dropdown:hover .header-nav__dropdown-list:nth-child(1) {
  -webkit-animation-delay: 0s;
          animation-delay: 0s;
}

.header-nav__list--has-dropdown:hover .header-nav__dropdown-list:nth-child(2) {
  -webkit-animation-delay: 0.1s;
          animation-delay: 0.1s;
}

.header-nav__list--has-dropdown:hover .header-nav__dropdown-list:nth-child(3) {
  -webkit-animation-delay: 0.2s;
          animation-delay: 0.2s;
}

@-webkit-keyframes dropdownFade {
  from {
    opacity: 0;
    transform: translateY(-10px);
  }
  to {
    opacity: 1;
    transform: translateY(0);
  }
}

@keyframes dropdownFade {
  from {
    opacity: 0;
    transform: translateY(-10px);
  }
  to {
    opacity: 1;
    transform: translateY(0);
  }
}
.header__right {
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: 0.4rem;
}

.drawer-icon {
  position: relative;
  width: clamp(3.6rem, 4.5vw, 4.6rem);
  height: 2.4rem;
  border: none;
  background: transparent;
  cursor: pointer;
}
@media screen and (max-width: 767px) {
  .drawer-icon {
    width: 3rem;
    height: 3rem;
  }
}

.drawer-icon__bar {
  position: absolute;
  top: 50%;
  left: 50%;
  width: clamp(3.6rem, 4.5vw, 4.6rem);
  height: 2px;
  background-color: #4A4947;
  transform-origin: center;
  transition: transform 0.3s ease, opacity 0.3s ease;
}
@media screen and (max-width: 767px) {
  .drawer-icon__bar {
    width: 3rem;
  }
}

.drawer-icon__bar:first-child {
  transform: translate(-50%, -6px) rotate(0deg);
}

.drawer-icon__bar:last-child {
  transform: translate(-50%, 6px) rotate(0deg);
}

.drawer-open .drawer-icon__bar:first-child {
  transform: translate(-50%, -50%) rotate(45deg);
}

.drawer-open .drawer-icon__bar:last-child {
  transform: translate(-50%, -50%) rotate(-45deg);
}

.header__right .drawer-icon__label {
  line-height: 1;
}

.drawer-icon__text {
  font-family: "Montserrat", sans-serif;
  height: 1em;
  line-height: 1em;
  overflow: hidden;
}
@media screen and (max-width: 767px) {
  .drawer-icon__text {
    font-size: 1.2rem;
  }
}

.drawer-icon__text-inner {
  position: relative;
  top: 0;
  transition: all 0.2s ease;
}

.drawer-icon__text-inner span {
  display: block;
}

.js-drawer-icon__text.active {
  color: #4A4947;
}

.js-drawer-icon__text-inner.active {
  top: -1em;
}

/* メニューオーバーレイ */
.menu-overlay {
  position: fixed;
  top: 0;
  right: -100%;
  width: 100%;
  height: 100vh;
  background-color: rgba(255, 255, 255, 0.5);
  -webkit-backdrop-filter: blur(0.8rem);
          backdrop-filter: blur(0.8rem);
  transition: right 0.4s ease;
  z-index: 1100;
  display: flex;
  justify-content: flex-end;
  overflow: hidden;
}

.menu-overlay.open {
  right: 0;
}

.menu-content {
  width: 48rem;
  height: 100vh;
  overflow-y: auto;
  -webkit-overflow-scrolling: touch;
  padding-top: 12rem;
  padding-inline: 14.6rem;
  padding-bottom: 12rem;
  box-sizing: border-box;
  background-color: #F1EFEC;
  position: relative;
}
@media screen and (max-width: 767px) {
  .menu-content {
    width: 26rem;
    padding-top: 8rem;
    padding-inline: 4.6rem;
    padding-bottom: 8rem;
  }
}

.menu-overlay__lists {
  display: flex;
  flex-direction: column;
  gap: 3.6rem;
}
@media screen and (max-width: 767px) {
  .menu-overlay__lists {
    gap: 2rem;
  }
}

.menu-overlay__list {
  font-family: "Montserrat", sans-serif;
  font-size: 3.2rem;
  font-weight: 600;
}
@media screen and (max-width: 767px) {
  .menu-overlay__list {
    font-size: 2rem;
  }
}

/* ===================================
   ▼ 新しいテキスト用クラス
=================================== */
.menu-overlay__link {
  display: flex;
  flex-direction: column;
}

.menu-overlay__link-text-en {
  font-size: 3.2rem;
  font-weight: 700;
  font-family: "Montserrat", sans-serif;
  line-height: 1.2;
  position: relative;
  display: inline-block;
}
@media screen and (max-width: 767px) {
  .menu-overlay__link-text-en {
    font-size: 2rem;
  }
}

.menu-overlay__link-text-ja {
  font-size: 1.2rem;
  font-weight: 500;
  font-family: "Noto Sans JP", sans-serif;
  color: #4A4947;
  margin-top: 0.4rem;
  position: relative;
}
.menu-overlay__link-text-ja::after {
  content: "";
  position: absolute;
  left: 0;
  bottom: 0;
  width: 100%;
  height: 1px;
  background-color: #4A4947;
  transform: scaleX(0);
  transform-origin: left;
  transition: transform 0.3s ease;
}
@media screen and (max-width: 767px) {
  .menu-overlay__link-text-ja {
    font-size: 1.2rem;
  }
}

.menu-overlay__link:hover .menu-overlay__link-text-ja::after,
.menu-overlay__toggle-button:hover .menu-overlay__link-text-ja::after {
  transform: scaleX(1);
}

.menu-overlay__submenu-list {
  font-family: "Noto Sans JP", sans-serif;
  font-size: 1.5rem;
  font-weight: 500;
  text-transform: capitalize;
}
@media screen and (max-width: 767px) {
  .menu-overlay__submenu-list {
    font-size: 1.2rem;
  }
}

.menu-overlay__submenu-link {
  position: relative;
}
.menu-overlay__submenu-link::after {
  content: "";
  position: absolute;
  left: 0;
  bottom: 0;
  width: 100%;
  height: 1px;
  background-color: #4A4947;
  transform: scaleX(0);
  transform-origin: left;
  transition: transform 0.3s ease;
}
.menu-overlay__submenu-link:hover::after {
  transform: scaleX(1);
}

.menu-overlay__submenu-lists {
  display: none;
  flex-direction: column;
  gap: 1.2rem;
  margin-top: 1.15rem;
}
@media screen and (max-width: 767px) {
  .menu-overlay__submenu-lists {
    margin-top: 2.4rem;
  }
}
.menu-overlay__submenu-lists.open {
  display: flex;
}

/* 閉じるボタン（×） */
.close-btn {
  position: absolute;
  top: 2rem;
  right: 2rem;
  font-size: 2rem;
  cursor: pointer;
  line-height: 1;
  z-index: 1001;
}

/* service行のトグル */
.service-toggle {
  display: flex;
  align-items: center;
  justify-content: space-between;
  cursor: pointer;
}

.toggle-icon {
  display: inline-block;
  width: 2.4rem;
  height: 2.4rem;
  text-align: center;
  border: 0.1rem solid #4A4947;
  border-radius: 50%;
  font-size: 1.1rem;
  line-height: 2.2rem;
  margin-left: 1rem;
}

.menu-overlay__toggle-text {
  display: flex;
  flex-direction: column;
}

/* 共通のスタイルを a と button に適用 */
.menu-overlay__link,
.menu-overlay__toggle-button {
  position: relative;
  text-decoration: none;
  display: flex;
  color: #4A4947;
  background: none;
  border: none;
  font: inherit;
  cursor: pointer;
}

.menu-overlay__toggle-button {
  display: flex;
  align-items: center;
  gap: 2rem;
}

/* 黒丸を表示（共通） */
.menu-overlay__link-text-en::before,
.menu-overlay__toggle-button::before {
  content: "";
  position: absolute;
  left: -3.6rem;
  top: 50%;
  transform: translateY(-50%);
  width: 9px;
  height: 9px;
  background-color: #4A4947;
  border-radius: 50%;
  opacity: 0;
  transition: opacity 0.3s;
}
@media screen and (max-width: 767px) {
  .menu-overlay__link-text-en::before,
.menu-overlay__toggle-button::before {
    left: -2rem;
    width: 6px;
    height: 6px;
  }
}

/* hover時に黒丸を表示（共通） */
.menu-overlay__link:hover .menu-overlay__link-text-en::before,
.menu-overlay__toggle-button:hover::before {
  opacity: 1;
}

.menu-overlay__link:hover .text::after,
.menu-overlay__toggle-button:hover .menu-overlay__toggle-text::after {
  transform: scaleX(1);
}

.menu-overlay__toggle-icon {
  width: 4.2rem;
  height: 4.2rem;
  pointer-events: none;
  color: #4A4947;
  transition: color 0.3s;
}
@media screen and (max-width: 767px) {
  .menu-overlay__toggle-icon {
    width: 2.4rem;
    height: 2.4rem;
  }
}

.menu-overlay__toggle-button:hover .menu-overlay__toggle-icon {
  color: #F0FF42;
}

.mb-large {
  margin-bottom: 27.2rem;
}
@media screen and (max-width: 767px) {
  .mb-large {
    margin-bottom: 14rem;
  }
}

.breadcrumb {
  padding-block: 1.2rem;
}

.breadcrumb__inner {
  display: flex;
  justify-content: flex-end;
}

.breadcrumb__list {
  display: flex;
  align-items: flex-end;
  gap: 4px;
  list-style: none;
  padding: 0;
  margin: 0;
}

.breadcrumb__item {
  font-size: 1.4rem;
}

.breadcrumb__link {
  text-decoration: none;
  transition: opacity 0.3s ease;
}

.breadcrumb__link:hover {
  text-decoration: underline;
  opacity: 0.6;
}

.breadcrumb__current {
  display: inline-block;
  position: relative;
}

.breadcrumb__current::after {
  content: "";
  display: block;
  width: 100%;
  height: 1px;
  position: absolute;
  bottom: -0.2em;
  left: 0;
}

.breadcrumb__separator {
  width: 3rem;
  height: 1px;
  background-color: #D4D4D4;
}

.breadcrumb--custom__inner {
  margin-bottom: 3rem;
}
@media screen and (max-width: 767px) {
  .breadcrumb--custom__inner {
    margin-bottom: 2rem;
    justify-content: flex-start;
  }
}

.breadcrumb--custom .breadcrumb__list {
  display: inline-block;
  position: relative;
  padding-right: 2rem;
}
.breadcrumb--custom .breadcrumb__list::after {
  content: "__";
  position: absolute;
  right: 0;
  margin-left: 0.5rem;
  color: #4A4947;
}

.breadcrumb--custom .breadcrumb__list:last-child::after {
  content: none;
}

.section-title-ja {
  font-size: clamp(3.6rem, 4.2vw, 5.6rem);
  font-weight: 500;
  line-height: 1.4;
}
@media screen and (max-width: 767px) {
  .section-title-ja {
    font-size: 3.4rem;
  }
}

.section-title-en {
  font-family: "Montserrat", sans-serif;
  font-size: 4rem;
  font-weight: 600;
  letter-spacing: 0.04em;
}
@media screen and (max-width: 767px) {
  .section-title-en {
    font-size: 2.6rem;
  }
}

.subpage-hero {
  padding-top: 18.3rem;
}
@media screen and (max-width: 767px) {
  .subpage-hero {
    padding-top: 10.2rem;
  }
}

.subpage-hero__inner {
  display: flex;
  align-items: center;
}
@media screen and (max-width: 767px) {
  .subpage-hero__inner {
    align-items: center;
    gap: 3.2rem;
    padding-inline: 2rem;
  }
}

@media screen and (max-width: 767px) {
  .inner-std.subpage-hero__inner {
    padding-left: 6.6rem;
  }
}
.subpage-hero__title {
  margin-right: auto;
}

.subpage-hero__illust {
  width: auto;
  height: auto;
}
@media screen and (max-width: 767px) {
  .subpage-hero__illust {
    text-align: center;
  }
}

.subpage-hero__illust svg {
  display: block;
}
@media screen and (max-width: 767px) {
  .subpage-hero__illust svg {
    width: 6.4rem;
    height: auto;
    margin: 0 auto;
  }
}

.subpage-section {
  padding-top: 10.8rem;
  padding-bottom: 10.8rem;
}
@media screen and (max-width: 767px) {
  .subpage-section {
    padding-top: 8.8rem;
    padding-bottom: 7.8rem;
  }
}

.section.top-works.sub-works {
  padding-bottom: 8rem;
}

.inner-std {
  max-width: 108rem;
  width: 100%;
  margin-inline: auto;
  padding-inline: 1.5rem;
}

.swiper-background-wrapper {
  display: flex;
  align-items: center;
  justify-content: center;
  flex-direction: column;
  width: 100%;
  height: 100vh;
  margin: 0;
  position: relative;
}
@media screen and (max-width: 767px) {
  .swiper-background-wrapper {
    height: auto;
    padding-block: 11rem;
  }
}

.swiper-bg-image {
  position: absolute;
  top: 50%;
  left: 50%;
  width: 100%;
  max-width: 140rem;
  transform: translate(-50%, -50%);
  z-index: 0;
  pointer-events: none;
}

.swiper {
  width: 100%;
  overflow: hidden;
}

.swiper-wrapper {
  position: relative;
  overflow: visible;
}

.swiper-slide {
  max-width: 76.8rem;
  width: 100%;
  transition: none;
  display: flex;
  justify-content: flex-start;
  align-items: flex-end;
  position: relative;
  z-index: 1;
  -webkit-margin-start: 0;
          margin-inline-start: 0;
  transform: scale(0.9);
  transition: transform 0.3s ease;
}

.slide-inner {
  transition: transform 0.4s ease;
  transform-origin: bottom center;
}

.swiper-slide-active .card-img {
  transform: scale(1);
}

.card {
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  transform: scale(0.9);
  max-width: 76.8rem;
  width: 100%;
}

.swiper-slide-active .card {
  transform: scale(1);
  transform-origin: bottom center;
}

.card__thumb {
  overflow: hidden;
  position: relative;
  border-radius: 20px;
  width: 100%;
  aspect-ratio: 768/500;
  margin-bottom: 2.6rem;
}
@media screen and (max-width: 767px) {
  .card__thumb {
    margin-bottom: 1rem;
    border-radius: 8px;
  }
}
.card__thumb img {
  width: 100%;
  height: auto;
  min-height: 100%;
  -o-object-fit: cover;
     object-fit: cover;
  -o-object-position: top;
     object-position: top;
  transition: transform 3s linear;
  transform: translateY(0);
  border-radius: 20px;
}
@media screen and (max-width: 767px) {
  .card__thumb img {
    border-radius: 8px;
  }
}

.card__body {
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  gap: 1.4rem;
}
@media screen and (max-width: 767px) {
  .card__body {
    gap: 6px;
  }
}

.card__title {
  text-align: center;
  font-size: clamp(1.8rem, 1.52vw, 2.2rem);
  font-weight: 500;
  line-height: 1;
}
@media screen and (max-width: 767px) {
  .card__title {
    font-size: 1.4rem;
  }
}

.card__tags {
  display: flex;
  flex-wrap: wrap;
  gap: 1.6rem;
}

.card__tag {
  display: inline-block;
  font-size: clamp(0.875rem, 1.11vw, 1rem);
  color: #4A4947;
  background-color: transparent;
  border: 1px solid #4A4947;
  padding-block: 8.5px;
  padding-inline: 20px;
  border-radius: 35px;
  line-height: 1;
}
@media screen and (max-width: 767px) {
  .card__tag {
    font-size: 8px;
    padding-block: 2px;
    padding-inline: 8px;
  }
}

/* ボタン位置 */
.swiper-button-prev,
.swiper-button-next {
  position: absolute;
  top: 50%;
  transform: translateY(-50%);
  z-index: 5;
  width: clamp(3rem, 3.47vw, 5rem);
  height: clamp(3rem, 3.47vw, 5rem);
  background-color: rgba(255, 255, 255, 0.7);
  border-radius: 50%;
  display: flex;
  align-items: center;
  justify-content: center;
  border: 1px solid #4A4947;
  cursor: pointer;
  transition: background-color 0.3s ease, border-color 0.3s ease;
}

.swiper-button-prev {
  position: absolute;
  top: 50%;
  transform: translateY(-50%);
  left: 2rem;
  z-index: 10;
}

.swiper-button-next {
  position: absolute;
  top: 50%;
  transform: translateY(-50%);
  right: 2rem;
  z-index: 10;
}

.swiper-button-next::after,
.swiper-button-prev::after {
  font-size: clamp(1.3rem, 1.11vw, 1.6rem);
  color: #4A4947;
}

.swiper-button-prev:hover,
.swiper-button-next:hover {
  background-color: #F0FF42;
  color: #4A4947;
}

.cards-common {
  display: grid;
}

.card-common {
  max-width: 100%;
}

.card-thumb {
  width: 100%;
  border-radius: 3rem;
  overflow: hidden;
  margin-bottom: 1rem;
  aspect-ratio: 4/3;
  position: relative;
}
.card-thumb img {
  display: block;
  width: 100%;
  height: 100%;
  -o-object-fit: cover;
     object-fit: cover;
  border-radius: inherit;
}

.card-thumb-tag {
  background: #FDFAF5;
  color: #fff;
  font-size: 12px;
  line-height: 1.1;
  padding: 6px 14px;
  position: absolute;
  right: 3%;
  text-decoration: none;
  top: 0;
}

.card-text {
  display: flex;
  flex-direction: column;
  gap: 1.6rem;
}

.card-title {
  text-align: left;
  flex: 1;
  text-align: left;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}

.card-date {
  text-align: right;
  font-size: 1.2rem;
  white-space: nowrap;
}

.single-post-pagination {
  margin-bottom: 11rem;
}
@media screen and (max-width: 767px) {
  .single-post-pagination {
    margin-bottom: 8rem;
  }
}

.pagination__prev,
.pagination__next {
  font-family: "Montserrat", sans-serif;
  font-weight: 600;
}
@media screen and (max-width: 767px) {
  .pagination__prev,
.pagination__next {
    font-size: 1.4rem;
  }
}

.pagination__prev,
.pagination__next {
  color: #4A4947;
  display: inline-flex;
  align-items: center;
  gap: 1.6rem;
  text-decoration: none;
  position: relative;
  transition: color 0.3s, opacity 0.3s;
}
@media screen and (max-width: 767px) {
  .pagination__prev,
.pagination__next {
    gap: 8px;
  }
}
.pagination__prev:hover,
.pagination__next:hover {
  opacity: 0.6;
}

.pagination__icon {
  width: 4rem;
  height: auto;
  display: inline-block;
}
@media screen and (max-width: 767px) {
  .pagination__icon {
    width: 3rem;
  }
}

.pagination__back {
  font-weight: 500;
}
@media screen and (max-width: 767px) {
  .pagination__back {
    font-size: 1.4rem;
  }
}

.pagination__numbers {
  display: flex;
  gap: 2.4rem;
}
@media screen and (max-width: 767px) {
  .pagination__numbers {
    gap: 1.4rem;
  }
}

.pagination__number {
  font-family: "Montserrat", sans-serif;
}

.pagination__layout {
  display: grid;
  grid-template-columns: 1fr auto 1fr;
  align-items: center;
  text-align: center;
}

.pagination__prev {
  justify-self: start;
}

.pagination__numbers {
  justify-self: center;
  display: flex;
  gap: 2.4rem;
}

.pagination__next {
  justify-self: end;
}

.btn-circle {
  display: flex;
  font-size: 1.6rem;
  font-weight: 700;
}

.btn-circle__link {
  display: flex;
  align-items: center;
  color: #4A4947;
  text-decoration: none;
  position: relative;
}

.btn-circle__circle {
  display: block;
  position: relative;
  width: 11rem;
  height: 11rem;
  aspect-ratio: 1/1;
  margin-right: 2.4rem;
  z-index: 0;
  transform-origin: center;
}
@media screen and (max-width: 767px) {
  .btn-circle__circle {
    width: 6rem;
    height: 6rem;
  }
}

/* 枠付きの歪んだ円 */
.btn-circle__circle::before {
  content: "";
  position: absolute;
  inset: 0;
  border: 1px solid #4A4947;
  border-radius: 50% 45% 48% 52%/55% 50% 60% 45%;
  background: transparent;
  transition: transform 0.4s ease, opacity 0.4s ease;
  z-index: 2;
}

/* 背景色の黄色歪んだ円 */
.btn-circle__circle::after {
  content: "";
  position: absolute;
  inset: 0;
  border-radius: 50% 45% 48% 52%/55% 50% 60% 45%;
  background-color: #F0FF42;
  transform: scale(0);
  opacity: 0;
  transition: transform 0.4s ease, opacity 0.4s ease;
  z-index: 1;
}

/* 矢印ラッパー */
.btn-circle__circle-ico {
  position: absolute;
  top: 50%;
  left: 50%;
  transform: translate(-50%, -50%);
  width: 2rem;
  height: 2rem;
  z-index: 3;
}

/* 共通：矢印SVGマスク設定 */
.btn-circle__circle-ico::before,
.btn-circle__circle-ico::after {
  content: "";
  position: absolute;
  width: 100%;
  height: 100%;
  background-color: currentColor;
  -webkit-mask-image: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 10 8'><path d='M6.982 2.265C6.243 1.62 5.75.86 5.16 0c0 .033-.017.083-.017.132v.215c0 .53.115.893.345 1.422.198.446.641 1.147 1.003 1.627H0v.962h6.473c-.361.48-.805 1.164-1.002 1.627-.23.546-.345.893-.345 1.405v.199c0 .05 0 .099.016.149.592-.86 1.085-1.604 1.824-2.249.723-.645 1.692-1.19 2.58-1.62-.871-.43-1.84-.96-2.564-1.604Z'/></svg>");
  mask-image: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 10 8'><path d='M6.982 2.265C6.243 1.62 5.75.86 5.16 0c0 .033-.017.083-.017.132v.215c0 .53.115.893.345 1.422.198.446.641 1.147 1.003 1.627H0v.962h6.473c-.361.48-.805 1.164-1.002 1.627-.23.546-.345.893-.345 1.405v.199c0 .05 0 .099.016.149.592-.86 1.085-1.604 1.824-2.249.723-.645 1.692-1.19 2.58-1.62-.871-.43-1.84-.96-2.564-1.604Z'/></svg>");
  -webkit-mask-repeat: no-repeat;
  -webkit-mask-position: center;
  -webkit-mask-size: contain;
  mask-repeat: no-repeat;
  mask-position: center;
  mask-size: contain;
}

/* 初期状態の矢印（A） */
.btn-circle__circle-ico::before {
  opacity: 1;
  transform: translateX(0);
  z-index: 1;
  transition: transform 0.4s ease, opacity 0.4s ease;
}

/* 後から現れる矢印（B） */
.btn-circle__circle-ico::after {
  opacity: 0;
  transform: translateX(-40%);
  z-index: 0;
  transition: transform 0.4s ease, opacity 0.4s ease;
}

/* ホバー演出 */
@media (hover: hover) and (pointer: fine) {
  .btn-circle__link:hover .btn-circle__circle::before {
    transform: scale(1.2);
    opacity: 0;
  }
  .btn-circle__link:hover .btn-circle__circle::after {
    transform: scale(1);
    opacity: 1;
  }
  .btn-circle__link:hover .btn-circle__circle-ico::before {
    transform: translateX(80%);
    opacity: 0;
  }
  .btn-circle__link:hover .btn-circle__circle-ico::after {
    transform: translateX(0);
    opacity: 1;
  }
}
/* レイアウトオプション */
.btn-circle-wrapper {
  display: flex;
  justify-content: center;
}

.btn-circle-wrapper--left {
  justify-content: flex-start;
}
@media screen and (max-width: 767px) {
  .btn-circle-wrapper--left {
    justify-content: flex-end;
  }
}

.btn-circle-wrapper--right {
  justify-content: flex-end;
}
@media screen and (max-width: 767px) {
  .btn-circle-wrapper--right {
    justify-content: flex-start;
  }
}

.button__inner {
  max-width: 108rem;
  width: 100%;
  margin-inline: auto;
  padding-inline: 1.5rem;
}

.btn-circle[class*=u-text] .btn-circle__circle::before {
  border-color: currentColor;
}

.btn-circle__txt-en {
  font-family: "Montserrat", sans-serif;
  font-weight: 600;
  line-height: 1;
  letter-spacing: 0.04em;
}
@media screen and (max-width: 767px) {
  .btn-circle__txt-en {
    font-size: 1.5rem;
  }
}

.btn-circle--small {
  font-size: 1.2rem;
}
.btn-circle--small .btn-circle__circle {
  width: 6rem;
  height: 6rem;
  margin-right: 0rem;
}
@media screen and (max-width: 767px) {
  .btn-circle--small .btn-circle__circle {
    width: 4.8rem;
    height: 4.8rem;
  }
}
.btn-circle--small .btn-circle__circle-ico {
  width: 1.2rem;
  height: 1.2rem;
  transform: translate(-50%, -50%);
}
.btn-circle--small .btn-circle__circle-ico::before, .btn-circle--small .btn-circle__circle-ico::after {
  content: "";
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
}
.btn-circle--small .btn-circle__circle::before {
  border-width: 1px;
}

/* ←に反転する */
.btn-circle--reverse .btn-circle__circle-ico {
  transform: translate(-50%, -50%) scaleX(-1);
}

/* 初期矢印（A） */
.btn-circle--reverse .btn-circle__circle-ico::before {
  opacity: 1;
  transform: translateX(0);
  transition: transform 0.4s ease, opacity 0.4s ease;
}

.btn-circle--reverse .btn-circle__link:hover .btn-circle__circle-ico::before {
  transform: translateX(-80%);
  opacity: 0;
}

/* 後から出てくる矢印（B） */
.btn-circle--reverse .btn-circle__circle-ico::after {
  opacity: 0;
  transform: translateX(40%);
  transition: transform 0.4s ease, opacity 0.4s ease;
}

/* ホバー時のアニメーションを逆向きに */
@media (hover: hover) and (pointer: fine) {
  .btn-circle--reverse .btn-circle__link:hover .btn-circle__circle::before {
    transform: scale(1.2);
    opacity: 0;
  }
  .btn-circle--reverse .btn-circle__link:hover .btn-circle__circle::after {
    transform: scale(1);
    opacity: 1;
  }
}
@media (hover: hover) and (pointer: fine) and (hover: hover) and (pointer: fine) {
  .btn-circle--reverse .btn-circle__link:hover .btn-circle__circle-ico::before {
    transform: translateX(-80%);
    opacity: 0;
  }
  .btn-circle--reverse .btn-circle__link:hover .btn-circle__circle-ico::after {
    transform: translateX(0);
    opacity: 1;
  }
}
@media (hover: hover) and (pointer: fine) {
  .btn-circle--reverse .btn-circle__circle-ico::after {
    transform: translateX(40%);
  }
}
.company-related-links__item {
  display: flex;
  justify-content: flex-start;
}

.link-arrow__link {
  margin-block: 1.5rem;
  margin-inline: clamp(0rem, 2vw, 6.4rem);
  padding-top: 1rem;
  padding-bottom: 2rem;
  padding-inline: 8px;
  width: 28rem;
  display: flex;
  justify-content: space-between;
}
@media screen and (max-width: 767px) and (max-width: 767px) {
  .link-arrow__link {
    padding-bottom: 1rem;
  }
}
.link-arrow__link::after {
  content: "";
  position: absolute;
  bottom: 0;
  left: 0;
  height: 1px;
  width: 100%;
  background-color: #4A4947;
}

.link-arrow__circle {
  width: 7rem;
  height: 6.4rem;
  margin-right: 0rem;
  flex-shrink: 0;
}
@media screen and (max-width: 767px) {
  .link-arrow__circle {
    width: 4.2rem;
    height: 4.2rem;
  }
}

.link-arrow__text {
  font-size: 2rem;
  font-weight: 500;
  flex-shrink: 1;
}
@media screen and (max-width: 767px) {
  .link-arrow__text {
    font-size: 1.5rem;
  }
}

.link-arrow__icon::before,
.link-arrow__icon::after {
  opacity: 1;
  transform: translateX(0) rotate(-20deg);
  z-index: 1;
  transition: transform 0.4s ease, opacity 0.4s ease;
}
@media screen and (max-width: 767px) {
  .link-arrow__icon::before,
.link-arrow__icon::after {
    width: 80%;
    height: 80%;
    top: 50%;
    left: 50%;
    transform: translate(-50%, -50%) rotate(-20deg);
  }
}

@media (hover: hover) and (pointer: fine) {
  .btn-circle__link:hover .btn-circle__circle::before {
    transform: scale(1.2);
    opacity: 0;
  }
  .btn-circle__link:hover .btn-circle__circle::after {
    transform: scale(1);
    opacity: 1;
  }
  .btn-circle__link:hover .link-arrow__icon::before {
    transform: translateX(80%) rotate(-20deg);
    opacity: 0;
  }
  .btn-circle__link:hover .link-arrow__icon::after {
    transform: translateX(0) rotate(-20deg);
    opacity: 1;
  }
}
.fix-contact-button {
  position: fixed;
  bottom: 10%;
  transform: translateY(-50%) translateX(2rem);
  right: 5rem;
  width: 8rem;
  height: 8rem;
  background-color: #F0FF42;
  border-radius: 50% 40% 60% 50%/50% 60% 40% 50%;
  display: flex;
  justify-content: center;
  align-items: center;
  font-family: sans-serif;
  font-weight: bold;
  font-size: 14px;
  color: #4A4947;
  cursor: pointer;
  z-index: 1000;
  opacity: 0;
  pointer-events: none;
  transition: opacity 0.8s ease, transform 0.8s cubic-bezier(0.25, 1, 0.5, 1);
}
@media screen and (max-width: 767px) {
  .fix-contact-button {
    right: 1rem;
    width: 5rem;
    height: 5rem;
  }
}

.fix-contact-button.is-visible {
  opacity: 1;
  pointer-events: auto;
  transform: translateY(-50%) translateX(0);
}

@media screen and (max-width: 767px) {
  .fix-contact-text {
    font-size: 10px;
  }
}

/* 🟡 グニャグニャ変形（拡大なし） */
.fix-contact-button:hover {
  -webkit-animation: blobShapeOnly 1.8s infinite ease-in-out;
          animation: blobShapeOnly 1.8s infinite ease-in-out;
}

.fix-contact-button::after {
  content: "";
  position: absolute;
  bottom: 5px;
  right: 5px;
  width: 100%;
  height: 100%;
  border: 1px solid #4A4947;
  border-radius: 50% 40% 60% 50%/50% 60% 40% 50%;
  z-index: -1;
}
@media screen and (max-width: 767px) {
  .fix-contact-button::after {
    right: 1px;
  }
}

.fix-contact-button:hover::after {
  -webkit-animation: blobOutline 1.8s infinite ease-in-out;
          animation: blobOutline 1.8s infinite ease-in-out;
}

/* 黄色背景：グニャグニャのみ（scaleなし） */
@-webkit-keyframes blobShapeOnly {
  0% {
    border-radius: 50% 40% 60% 50%/50% 60% 40% 50%;
  }
  25% {
    border-radius: 60% 45% 55% 60%/60% 55% 50% 45%;
  }
  50% {
    border-radius: 45% 60% 65% 40%/65% 40% 60% 40%;
  }
  75% {
    border-radius: 55% 50% 60% 55%/55% 60% 50% 60%;
  }
  100% {
    border-radius: 50% 40% 60% 50%/50% 60% 40% 50%;
  }
}
@keyframes blobShapeOnly {
  0% {
    border-radius: 50% 40% 60% 50%/50% 60% 40% 50%;
  }
  25% {
    border-radius: 60% 45% 55% 60%/60% 55% 50% 45%;
  }
  50% {
    border-radius: 45% 60% 65% 40%/65% 40% 60% 40%;
  }
  75% {
    border-radius: 55% 50% 60% 55%/55% 60% 50% 60%;
  }
  100% {
    border-radius: 50% 40% 60% 50%/50% 60% 40% 50%;
  }
}
/* 黒アウトライン：ややずらしたグニャ */
@-webkit-keyframes blobOutline {
  0%, 100% {
    border-radius: 50% 40% 60% 50%/50% 60% 40% 50%;
  }
  30% {
    border-radius: 52% 42% 62% 48%/52% 62% 38% 48%;
  }
  70% {
    border-radius: 47% 57% 58% 52%/60% 48% 52% 42%;
  }
}
@keyframes blobOutline {
  0%, 100% {
    border-radius: 50% 40% 60% 50%/50% 60% 40% 50%;
  }
  30% {
    border-radius: 52% 42% 62% 48%/52% 62% 38% 48%;
  }
  70% {
    border-radius: 47% 57% 58% 52%/60% 48% 52% 42%;
  }
}
.fix-contact-button:hover .fix-contact-text {
  -webkit-animation: textWobble 1.8s infinite ease-in-out;
          animation: textWobble 1.8s infinite ease-in-out;
}

.fix-contact-button:hover .fix-contact-text {
  -webkit-animation: textWobble 1.8s infinite ease-in-out;
          animation: textWobble 1.8s infinite ease-in-out;
}

@-webkit-keyframes textWobble {
  0%, 100% {
    transform: translateY(0);
  }
  25% {
    transform: translateY(-2px);
  }
  50% {
    transform: translateY(2px);
  }
  75% {
    transform: translateY(-1px);
  }
}

@keyframes textWobble {
  0%, 100% {
    transform: translateY(0);
  }
  25% {
    transform: translateY(-2px);
  }
  50% {
    transform: translateY(2px);
  }
  75% {
    transform: translateY(-1px);
  }
}
.footer {
  padding-top: 10rem;
  padding-bottom: 3rem;
}
@media screen and (max-width: 767px) {
  .footer {
    padding-top: 8.8rem;
    padding-bottom: 2.4rem;
  }
}

.footer__inner {
  display: flex;
  flex-direction: column;
  gap: 6rem;
}
@media screen and (max-width: 767px) {
  .footer__inner {
    padding-inline: 2rem;
    gap: 4.4rem;
  }
}

.footer__top {
  display: flex;
  justify-content: space-between;
  flex-wrap: wrap;
  gap: 4rem;
}
@media screen and (max-width: 767px) {
  .footer__top {
    flex-direction: column;
    gap: 4.4rem;
  }
}

.footer__message {
  max-width: 51%;
  min-width: 30rem;
}
@media screen and (max-width: 767px) {
  .footer__message {
    max-width: 100%;
    min-width: auto;
  }
}

.footer__catch {
  font-size: 2.4rem;
  font-weight: 500;
  margin-bottom: 2.6rem;
  letter-spacing: 2.4px;
}
@media screen and (max-width: 767px) {
  .footer__catch {
    font-size: 1.5rem;
    margin-bottom: 1.6rem;
    letter-spacing: 1.5px;
  }
}

.footer__logo {
  width: 45.1rem;
  margin-bottom: 6rem;
}
@media screen and (max-width: 767px) {
  .footer__logo {
    width: 17.5rem;
    margin-bottom: 2.4rem;
  }
}

.footer__logo img {
  width: 100%;
  height: auto;
}
.footer__address {
  font-style: normal;
  line-height: 1.8;
}
.footer__address [itemprop=name] {
  font-size: 1.6rem;
  display: block;
}
@media screen and (max-width: 767px) {
  .footer__address [itemprop=name] {
    font-size: 1.4rem;
  }
}
.footer__address [itemprop=address] {
  font-size: 1.2rem;
  display: block;
}

.footer__nav {
  display: flex;
  align-items: flex-start;
  gap: 7.3rem;
}
@media screen and (max-width: 767px) {
  .footer__nav {
    flex-direction: column;
    gap: 2.4rem;
  }
}

.footer__lists {
  list-style: none;
  padding: 0;
  margin: 0;
  display: flex;
  flex-direction: column;
  gap: 2.4rem;
}
@media screen and (max-width: 767px) {
  .footer__lists {
    gap: 2rem;
  }
}

.footer__child-group {
  display: flex;
  flex-direction: column;
  gap: 1em;
}

.footer__list {
  font-family: "Montserrat", sans-serif;
  font-size: 1.8rem;
  font-weight: 600;
  position: relative;
  padding-left: 1.2em;
  line-height: 1.6;
}
@media screen and (max-width: 767px) {
  .footer__list {
    font-size: 1.3rem;
  }
}
.footer__list::before {
  content: "●";
  position: absolute;
  left: 0;
  top: 50%;
  transform: translateY(-50%);
  font-size: 0.5em;
}
.footer__list--child {
  font-size: 1.6rem;
  font-weight: normal;
  padding-left: 2em;
}
@media screen and (max-width: 767px) {
  .footer__list--child {
    font-size: 1.2rem;
  }
}
.footer__list--child::before {
  content: "–";
  font-size: 1em;
}

.footer__link:hover {
  text-decoration: underline;
}

.footer__bottom {
  width: 100%;
  border-top: 1px solid #4A4947;
  padding-top: 2.4rem;
  display: flex;
  justify-content: space-between;
  flex-wrap: wrap;
  gap: 1rem;
}
@media screen and (max-width: 767px) {
  .footer__bottom {
    padding-top: 1.2rem;
    flex-direction: column;
    gap: 8px;
  }
}

.footer__policy {
  font-size: 1.4rem;
  font-weight: 300;
  text-decoration: underline;
}
@media screen and (max-width: 767px) {
  .footer__policy {
    font-size: 10px;
  }
}

.footer__copyright {
  font-size: 1.4rem;
  font-weight: 300;
  margin-left: auto;
}
@media screen and (max-width: 767px) {
  .footer__copyright {
    font-size: 10px;
    margin-left: 0;
    text-align: left;
  }
}

.top-mv {
  position: relative;
  height: clamp(40rem, 60vw, 100vh);
  padding-top: 10rem;
  padding-bottom: 13rem;
  display: flex;
  flex-direction: column;
}
@media screen and (max-width: 767px) {
  .top-mv {
    height: auto;
    padding-top: 4.6rem;
    padding-bottom: 2.4rem;
  }
}

.top-mv__wrapper {
  aspect-ratio: 1356/660;
  width: 94%;
  max-width: 135.6rem;
  margin-inline: auto;
  position: relative;
}
@media screen and (max-width: 767px) {
  .top-mv__wrapper {
    aspect-ratio: 338/511;
    width: 96%;
    max-width: 76.7rem;
    position: relative;
    height: 100%;
  }
}

.top-mv__inner,
.top-mv__mask-wrapper {
  position: absolute;
  inset: 0;
}

.top-mv__inner {
  background-color: #F0FF42;
  border-radius: 4rem;
  width: 83%;
  aspect-ratio: 1200/630;
  margin-inline: auto;
  margin-top: 3.5rem;
  border: 1px solid #4A4947;
  position: relative;
}
@media screen and (max-width: 767px) {
  .top-mv__inner {
    width: 82.7%;
    margin-top: 4rem;
    height: 122.7161290323vw;
  }
}

.top-mv__mask-wrapper {
  width: 95%;
  margin-inline: auto;
}

.top-mv__video {
  position: absolute;
  width: 100%;
  height: auto;
  display: block;
  z-index: 1;
}
@media screen and (max-width: 767px) {
  .top-mv__video {
    position: absolute;
    width: 100%;
    height: 100%;
    -o-object-fit: cover;
       object-fit: cover;
    display: block;
  }
}

.fade-in-onload {
  opacity: 0;
  filter: blur(10px);
  -webkit-animation: fadeInOnLoad 1.2s ease-out forwards;
          animation: fadeInOnLoad 1.2s ease-out forwards;
}

@-webkit-keyframes fadeInOnLoad {
  0% {
    opacity: 0;
    filter: blur(20px);
  }
  30% {
    opacity: 0.3;
    filter: blur(12px);
  }
  60% {
    opacity: 0.6;
    filter: blur(5px);
  }
  100% {
    opacity: 1;
    filter: blur(0);
  }
}

@keyframes fadeInOnLoad {
  0% {
    opacity: 0;
    filter: blur(20px);
  }
  30% {
    opacity: 0.3;
    filter: blur(12px);
  }
  60% {
    opacity: 0.6;
    filter: blur(5px);
  }
  100% {
    opacity: 1;
    filter: blur(0);
  }
}
.top-about {
  margin-top: 9rem;
  margin-bottom: 28.6rem;
}
@media screen and (max-width: 767px) {
  .top-about {
    margin-top: 6.8rem;
    margin-bottom: 18.2rem;
  }
}

.top-about__contents {
  display: flex;
  gap: 3%;
}
@media screen and (max-width: 767px) {
  .top-about__contents {
    flex-direction: column;
    gap: 4rem;
    padding-inline: 2rem;
  }
}

.top-about__contents--left {
  display: flex;
  flex-direction: column;
  gap: 8rem;
  width: 40%;
}
@media screen and (max-width: 767px) {
  .top-about__contents--left {
    width: 100%;
    gap: 4rem;
  }
}

@media screen and (max-width: 767px) {
  .top-service__heading {
    padding-inline: 4.5rem;
  }
}

.top-about__image {
  width: 22.4rem;
  height: 24.8rem;
}
@media screen and (max-width: 767px) {
  .top-about__image {
    margin-inline: auto;
  }
}

.top-about__contents--right {
  width: 57%;
}
@media screen and (max-width: 767px) {
  .top-about__contents--right {
    width: 100%;
  }
}

.top-about__text-block {
  display: flex;
  flex-direction: column;
  gap: 4.6rem;
  margin-bottom: 5.6rem;
}
@media screen and (max-width: 767px) {
  .top-about__text-block {
    gap: 2.4rem;
  }
}

.top-about__text {
  font-size: 2rem;
  font-weight: 500;
}
@media screen and (max-width: 767px) {
  .top-about__text {
    font-size: 1.5rem;
  }
}

.top-about__button-wrapper {
  justify-content: flex-start;
}

.wave-line svg {
  width: 100%;
  height: auto;
  display: block;
}

.top-service {
  margin-top: 9.8rem;
  padding-bottom: 18rem;
}
@media screen and (max-width: 767px) {
  .top-service {
    margin-top: 6.6rem;
    padding-bottom: 6.9rem;
    padding-inline: 3rem;
  }
}

.top-service__heading {
  margin-bottom: 1rem;
}

.top-service__items {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: 7rem;
}
@media screen and (max-width: 767px) {
  .top-service__items {
    grid-template-columns: 1fr;
    gap: 1.5rem;
  }
}

.top-service__item {
  position: relative;
  text-align: center;
  text-decoration: none;
  color: inherit;
  transition: transform 0.3s ease;
}

.top-service__item:hover {
  transform: scale(1.02);
}

.top-service__bg {
  width: 100%;
  display: block;
}

.top-service__content {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  display: flex;
  flex-direction: column;
  justify-content: center;
  align-items: center;
  pointer-events: none;
}

.top-service__gif-web {
  width: clamp(13.7rem, 13.68vw, 19.7rem);
  height: auto;
  margin-bottom: 8px;
}
@media screen and (max-width: 767px) {
  .top-service__gif-web {
    width: 40.7%;
    margin-bottom: 4px;
  }
}

.top-service__gif-video {
  width: clamp(13.7rem, 13.68vw, 19.7rem);
  height: auto;
  margin-bottom: 3px;
}
@media screen and (max-width: 767px) {
  .top-service__gif-video {
    width: 40.7%;
    margin-bottom: 4px;
  }
}

.top-service__text {
  font-size: 2rem;
  font-weight: 500;
  letter-spacing: 0.1em;
  margin-bottom: 2.4rem;
}
@media screen and (max-width: 767px) {
  .top-service__text {
    font-size: 1.4rem;
    margin-bottom: 1rem;
    font-size: clamp(2rem, 4vw, 2.8rem);
  }
}

@media (hover: hover) and (pointer: fine) {
  .top-service__item:hover .btn-circle__circle::before {
    transform: scale(1.2);
    opacity: 0;
  }
  .top-service__item:hover .btn-circle__circle::after {
    transform: scale(1);
    opacity: 1;
  }
  .top-service__item:hover .btn-circle__circle-ico::before {
    transform: translateX(80%);
    opacity: 0;
  }
  .top-service__item:hover .btn-circle__circle-ico::after {
    transform: translateX(0);
    opacity: 1;
  }
}
.top-focus {
  margin-top: 6rem;
  margin-bottom: 18rem;
  margin-inline: 1.5rem;
}
@media screen and (max-width: 767px) {
  .top-focus {
    margin-inline: 4rem;
    margin-bottom: 5.8rem;
  }
}

.top-focus__inner {
  position: relative;
  text-align: center;
  padding-block: 3rem;
  padding-inline: 6rem;
}
@media screen and (max-width: 767px) {
  .top-focus__inner {
    padding-inline: 4rem;
    padding-bottom: 5rem;
  }
}

.top-focus__frame-top,
.top-focus__frame-bottom {
  position: absolute;
  left: 0;
  width: 100%;
  height: auto;
  pointer-events: none;
}

.top-focus__frame-top {
  top: 0;
}

.top-focus__frame-bottom {
  bottom: 0;
}

.top-focus__icon {
  position: absolute;
  width: 6rem;
  height: auto;
}
@media screen and (max-width: 767px) {
  .top-focus__icon {
    width: 3rem;
  }
}

.top-focus__icon--left {
  left: 0;
}

.top-focus__icon--center {
  left: 50%;
  transform: translateX(-50%);
  width: 14rem;
}
@media screen and (max-width: 767px) {
  .top-focus__icon--center {
    width: 8rem;
  }
}

.top-focus__icon--right {
  right: 0;
}

.top-focus__contents {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 3rem;
  margin-top: 3.6rem;
  flex-wrap: wrap;
}
@media screen and (max-width: 767px) {
  .top-focus__contents {
    flex-direction: column;
    text-align: center;
    margin-top: 5rem;
    gap: 4rem;
  }
}

.top-focus__text {
  font-size: clamp(2.4rem, 1.67vw, 3.2rem);
  font-weight: 500;
  text-align: left;
  white-space: pre-line;
}
@media screen and (max-width: 767px) {
  .top-focus__text {
    font-size: 2.4rem;
  }
}

.space {
  display: inline-block;
  width: 1.5em;
}

.top-focus__illust {
  width: 22.5rem;
  max-width: 100%;
}
@media screen and (max-width: 767px) {
  .top-focus__illust {
    width: 14rem;
  }
}

.br-pc {
  display: block;
}
@media screen and (max-width: 767px) {
  .br-pc {
    display: none;
  }
}

.br-sp {
  display: none;
}
@media screen and (max-width: 767px) {
  .br-sp {
    display: block;
  }
}

.blurAnime {
  opacity: 0;
  filter: blur(15px);
  transform: translateY(30px);
  transition: opacity 1.5s ease-out, transform 1.5s ease-out, filter 1.5s ease-out;
  will-change: opacity, transform, filter;
}

.blurAnime.visible {
  opacity: 1;
  filter: blur(0);
  transform: translateY(0);
}

.top-works {
  padding-top: 8rem;
  padding-bottom: 8rem;
}

.top-works__inner {
  max-width: 100%;
  padding-left: 0;
  padding-right: 0;
}

@media screen and (max-width: 767px) {
  .top-works__button-inner {
    padding-inline: 6.65rem;
  }
}

.top-company {
  position: relative;
  margin-top: 14rem;
  border-top-left-radius: 80px;
  border-top-right-radius: 80px;
  padding-block: 14rem;
}
@media screen and (max-width: 767px) {
  .top-company {
    margin-top: 8.6rem;
    padding-top: 8rem;
    padding-bottom: 4.3rem;
  }
}

.top-company__decoration {
  position: absolute;
  top: -24%;
  left: 12.4%;
  width: 16.3rem;
  z-index: 3;
}
@media screen and (max-width: 767px) {
  .top-company__decoration {
    width: 12.8rem;
    top: -22%;
    left: 50%;
    transform: translateX(-50%);
  }
}

.top-company__bg {
  position: absolute;
  inset: 0;
  z-index: 0;
  border-radius: 80px 80px 0 0;
  overflow: hidden;
}

.top-company__bg::before {
  content: "";
  position: absolute;
  inset: 0;
  background: rgba(255, 255, 255, 0.3);
  -webkit-backdrop-filter: blur(5px);
          backdrop-filter: blur(5px);
  z-index: 2;
  border-radius: 80px 80px 0 0;
  pointer-events: none;
}

.top-company__bg video {
  width: 100%;
  height: 100%;
  -o-object-fit: cover;
     object-fit: cover;
  display: block;
  border-radius: 80px 80px 0 0;
}

.top-company__bg picture {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
}

.top-company__inner {
  position: relative;
  z-index: 2;
}
@media screen and (max-width: 767px) {
  .top-company__inner {
    padding-inline: 5.2rem;
  }
}

.top-company__contents {
  color: #4A4947;
}

.top-company__head {
  margin-bottom: 6rem;
}
@media screen and (max-width: 767px) {
  .top-company__head {
    margin-bottom: 4rem;
  }
}

.top-company__catch {
  display: inline-block;
  font-size: 5.6rem;
  font-weight: 500;
  line-height: 1.5;
}
@media screen and (max-width: 767px) {
  .top-company__catch {
    font-size: 3.4rem;
  }
}

.top-company__body {
  display: flex;
}
@media screen and (max-width: 767px) {
  .top-company__body {
    padding-inline: 1.45rem;
    flex-direction: column;
  }
}

.top-company__text-group {
  display: flex;
  flex-direction: column;
  gap: 1.6rem;
}

.top-company__text {
  font-size: 2rem;
}
@media screen and (max-width: 767px) {
  .top-company__text {
    font-size: 1.5rem;
  }
}

.top-company__button {
  margin-left: auto;
  margin-top: 2rem;
}
@media screen and (max-width: 767px) {
  .top-company__button {
    margin-left: 0rem;
    margin-top: 3.4rem;
  }
}

.top-news {
  padding-block: 18rem;
}
@media screen and (max-width: 767px) {
  .top-news {
    padding-block: 8.8rem;
  }
}

.top-news__inner {
  padding-inline: 5rem;
}

.top-news__contents {
  display: flex;
  justify-content: space-between;
  gap: 4rem;
}
@media screen and (max-width: 767px) {
  .top-news__contents {
    flex-direction: column;
    gap: 2.4rem;
  }
}

.top-news__left {
  width: 25%;
}
@media screen and (max-width: 767px) {
  .top-news__left {
    width: 100%;
  }
}

.top-news__title {
  margin-bottom: 6rem;
}
@media screen and (max-width: 767px) {
  .top-news__title {
    margin-bottom: 0rem;
  }
}

.top-news__button {
  display: block;
}
@media screen and (max-width: 767px) {
  .top-news__button {
    display: none;
  }
}

.top-news__right {
  width: 70%;
}
@media screen and (max-width: 767px) {
  .top-news__right {
    width: 100%;
  }
}

.top-news__lists {
  list-style: none;
  padding: 0;
  margin: 0;
}

.top-news__list {
  padding-block: 2.4rem;
  border-bottom: 1px solid #D4D4D4;
}
@media screen and (max-width: 767px) {
  .top-news__list {
    padding-block: 1.6rem;
  }
}

.top-news__link {
  display: flex;
  align-items: center;
  gap: 5.2rem;
  width: 100%;
  text-decoration: none;
  color: inherit;
}
@media screen and (max-width: 767px) {
  .top-news__link {
    flex-direction: column;
    align-items: flex-start;
    gap: 1.4rem;
  }
}

.top-news__meta {
  display: flex;
  flex-direction: column;
  gap: 0.4rem;
  white-space: nowrap;
  align-items: center;
}
@media screen and (max-width: 767px) {
  .top-news__meta {
    flex-direction: row;
    gap: 0.6rem;
    justify-content: flex-start;
  }
}

.top-news__date {
  font-family: "Poppins", sans-serif;
  font-size: 1.4rem;
}

.top-news__category {
  display: inline-block;
  font-size: 1.1rem;
  background-color: #EEE8DF;
  padding-block: 5.5px;
  padding-inline: 10px;
  border-radius: 41px;
  text-align: center;
}

.top-news__text-wrapper {
  display: flex;
  align-items: flex-end;
  flex: 1;
  height: 100%;
}
.top-news__text {
  text-overflow: ellipsis;
}

.top-contact__line {
  width: 100vw;
  overflow: hidden;
}

.top-contact__line img {
  display: block;
  width: 100%;
  height: auto;
}

.top-contact {
  padding-top: 19.1rem;
  padding-bottom: 18rem;
  position: relative;
}
@media screen and (max-width: 767px) {
  .top-contact {
    padding-top: 10.8rem;
    padding-bottom: 6.8rem;
  }
}

.top-contact__inner {
  text-align: center;
  position: relative;
}
@media screen and (max-width: 767px) {
  .top-contact__inner {
    padding-inline: 5rem;
  }
}

.top-contact__visual {
  display: block;
}

.top-contact__visual img {
  width: 82rem;
  max-width: 100%;
}
@media screen and (max-width: 767px) {
  .top-contact__visual img {
    width: 43rem;
  }
}

.top-contact__visual-wrapper {
  position: absolute;
  top: -62%;
  right: 0;
}
@media screen and (max-width: 767px) {
  .top-contact__visual-wrapper {
    top: -29%;
  }
}

.top-contact__visual-inner {
  display: flex;
  justify-content: flex-end;
}

.top-contact__head {
  display: flex;
  align-items: baseline;
  gap: 4rem;
  margin-bottom: 1.6rem;
}
@media screen and (max-width: 767px) {
  .top-contact__head {
    flex-direction: column;
    gap: 6px;
    margin-bottom: 3.2rem;
    text-align: left;
  }
}

.top-contact__lead {
  font-size: 1.4rem;
  color: #666;
}
@media screen and (max-width: 767px) {
  .top-contact__lead {
    font-size: 1.3rem;
  }
}

.top-contact__cards {
  display: flex;
  justify-content: center;
  position: relative;
  border: 1px solid #4A4947;
  border-radius: 12px;
  overflow: hidden;
  padding-block: 2.6rem;
}
.top-contact__cards::before {
  content: "";
  position: absolute;
  top: 2rem;
  bottom: 2rem;
  left: 50%;
  width: 1px;
  background-color: #4A4947;
}
@media screen and (max-width: 767px) {
  .top-contact__cards {
    flex-direction: column;
    padding-block: 0rem;
  }
  .top-contact__cards::before {
    top: 50%;
    left: 2rem;
    right: 2rem;
    width: auto;
    height: 1px;
  }
}

.top-contact__card {
  flex: 1;
  padding-top: 9.8rem;
  padding-bottom: 3.7rem;
  padding-inline: 1.3%;
  display: flex;
  flex-direction: column;
  align-items: center;
  text-align: center;
}
@media screen and (max-width: 767px) {
  .top-contact__card {
    padding: 3.2rem 1.5rem;
    min-height: 28rem;
    justify-content: center;
  }
}

.top-contact__icon {
  width: 4rem;
  height: 4rem;
  border-radius: 50%;
  display: flex;
  align-items: center;
  justify-content: center;
}

.top-contact__label {
  font-size: 2.4rem;
  margin-bottom: 1rem;
}
@media screen and (max-width: 767px) {
  .top-contact__label {
    font-size: 1.5rem;
    margin-bottom: 4px;
  }
}

.top-contact__tel {
  font-family: "Poppins", sans-serif;
  font-size: 4rem;
  margin-bottom: 4px;
  display: flex;
  gap: 1.2rem;
  flex-wrap: nowrap;
  justify-content: center;
  white-space: nowrap;
}
@media screen and (max-width: 767px) {
  .top-contact__tel {
    font-size: 2.2rem;
  }
}

@media screen and (max-width: 767px) {
  .top-contact__time {
    font-size: 1.3rem;
  }
}

.top-contact__icon-blob {
  width: 14rem;
  height: 14rem;
  border: 1px solid #4A4947;
  border-radius: 50%/50%;
  display: flex;
  align-items: center;
  justify-content: center;
  position: relative;
  margin-bottom: 2.4rem;
  -webkit-animation: blob-animation 8s infinite alternate ease-in-out;
          animation: blob-animation 8s infinite alternate ease-in-out;
}
@media screen and (max-width: 767px) {
  .top-contact__icon-blob {
    width: 9.8rem;
    height: 9.8rem;
  }
}

.top-contact__icon-blob::before {
  content: "";
  display: block;
  border: 1px solid #4A4947;
  border-radius: 50%/50%;
  width: 13rem;
  height: 13rem;
  position: absolute;
  top: 50%;
  left: 50%;
  transform: translate(-50%, -50%);
  -webkit-animation: blob-animation 12s linear 0.5s infinite alternate;
          animation: blob-animation 12s linear 0.5s infinite alternate;
}
@media screen and (max-width: 767px) {
  .top-contact__icon-blob::before {
    width: 8.8rem;
    height: 8.8rem;
  }
}

.top-contact__icon-blob--phone {
  -webkit-animation: blob-phone 8s infinite alternate ease-in-out;
          animation: blob-phone 8s infinite alternate ease-in-out;
}

.top-contact__icon-blob--phone::before {
  -webkit-animation: blob-phone 12s linear 0.5s infinite alternate;
          animation: blob-phone 12s linear 0.5s infinite alternate;
}

.top-contact__icon-blob--mail {
  margin-bottom: 5.6rem;
  -webkit-animation: blob-mail 9s infinite alternate ease-in-out;
          animation: blob-mail 9s infinite alternate ease-in-out;
}
@media screen and (max-width: 767px) and (max-width: 767px) {
  .top-contact__icon-blob--mail {
    margin-bottom: 1.6rem;
  }
}

.top-contact__icon-blob--mail::before {
  -webkit-animation: blob-mail 10s linear 1s infinite alternate;
          animation: blob-mail 10s linear 1s infinite alternate;
}

@-webkit-keyframes blob-phone {
  0% {
    border-radius: 60% 40% 55% 45%/50% 60% 40% 50%;
  }
  25% {
    border-radius: 50% 70% 40% 60%/60% 40% 70% 30%;
  }
  50% {
    border-radius: 80% 30% 70% 20%/50% 80% 30% 60%;
  }
  75% {
    border-radius: 45% 55% 60% 40%/70% 30% 60% 40%;
  }
  100% {
    border-radius: 60% 40% 55% 45%/50% 60% 40% 50%;
  }
}

@keyframes blob-phone {
  0% {
    border-radius: 60% 40% 55% 45%/50% 60% 40% 50%;
  }
  25% {
    border-radius: 50% 70% 40% 60%/60% 40% 70% 30%;
  }
  50% {
    border-radius: 80% 30% 70% 20%/50% 80% 30% 60%;
  }
  75% {
    border-radius: 45% 55% 60% 40%/70% 30% 60% 40%;
  }
  100% {
    border-radius: 60% 40% 55% 45%/50% 60% 40% 50%;
  }
}
@-webkit-keyframes blob-mail {
  0% {
    border-radius: 50% 50% 50% 50%/50% 50% 50% 50%;
  }
  20% {
    border-radius: 70% 30% 60% 40%/60% 40% 70% 30%;
  }
  40% {
    border-radius: 30% 80% 40% 70%/50% 70% 40% 60%;
  }
  60% {
    border-radius: 65% 35% 80% 20%/60% 50% 70% 40%;
  }
  80% {
    border-radius: 40% 60% 30% 90%/70% 60% 30% 80%;
  }
  100% {
    border-radius: 50% 50% 50% 50%/50% 50% 50% 50%;
  }
}
@keyframes blob-mail {
  0% {
    border-radius: 50% 50% 50% 50%/50% 50% 50% 50%;
  }
  20% {
    border-radius: 70% 30% 60% 40%/60% 40% 70% 30%;
  }
  40% {
    border-radius: 30% 80% 40% 70%/50% 70% 40% 60%;
  }
  60% {
    border-radius: 65% 35% 80% 20%/60% 50% 70% 40%;
  }
  80% {
    border-radius: 40% 60% 30% 90%/70% 60% 30% 80%;
  }
  100% {
    border-radius: 50% 50% 50% 50%/50% 50% 50% 50%;
  }
}
.top-contact__card {
  transition: background-color 0.3s ease;
}
.top-contact__card:hover {
  background-color: rgba(255, 255, 255, 0.3);
  border-radius: 30px;
}
.top-contact__card:hover .icon-shake {
  -webkit-animation: metronome-shake 0.8s ease-in-out infinite;
          animation: metronome-shake 0.8s ease-in-out infinite;
}

@-webkit-keyframes metronome-shake {
  0% {
    transform: rotate(0deg);
  }
  25% {
    transform: rotate(-10deg);
  }
  50% {
    transform: rotate(10deg);
  }
  75% {
    transform: rotate(-10deg);
  }
  100% {
    transform: rotate(0deg);
  }
}

@keyframes metronome-shake {
  0% {
    transform: rotate(0deg);
  }
  25% {
    transform: rotate(-10deg);
  }
  50% {
    transform: rotate(10deg);
  }
  75% {
    transform: rotate(-10deg);
  }
  100% {
    transform: rotate(0deg);
  }
}
.about-us {
  padding-top: 11.6rem;
  padding-bottom: 25rem;
}
@media screen and (max-width: 767px) {
  .about-us {
    padding-top: 9.6rem;
    padding-bottom: 10rem;
  }
}

@media screen and (max-width: 767px) {
  .about-us__inner {
    padding-inline: 0;
    padding-left: 6.6rem;
    padding-right: 6.6rem;
  }
}

@media screen and (max-width: 767px) {
  .about-us__title {
    margin-bottom: 3.4rem;
  }
}

.about-us__content {
  max-width: 108rem;
  width: 100%;
  display: flex;
  align-items: flex-start;
  padding-inline: 1.5rem;
  margin-inline: auto;
}
@media screen and (max-width: 767px) {
  .about-us__content {
    flex-direction: column;
    gap: 4rem;
    padding-inline: 0;
  }
}

.about-us__text-area {
  display: flex;
  flex-direction: column;
  gap: 8rem;
  width: 55%;
}
@media screen and (max-width: 767px) {
  .about-us__text-area {
    gap: 5rem;
    width: 100%;
  }
}

.about-us__text-block {
  display: flex;
  flex-direction: column;
  gap: 4.6rem;
}

.about-us__text {
  font-size: 2rem;
  font-weight: 500;
}
@media screen and (max-width: 767px) {
  .about-us__text {
    font-size: 1.5rem;
  }
}

.about-us__image-area {
  width: 40%;
  display: flex;
  justify-content: center;
  position: -webkit-sticky;
  position: sticky;
  top: 13rem;
}
@media screen and (max-width: 767px) {
  .about-us__image-area {
    position: static;
    top: auto;
    width: 100%;
    overflow: hidden;
  }
}

.about-us__image-inner {
  top: 6rem;
  background: url("/assets/images/about-us-bg.svg") no-repeat center/contain;
  width: 100%;
  max-width: 48rem;
  aspect-ratio: 12/11;
  flex-shrink: 0;
}
@media screen and (max-width: 767px) {
  .about-us__image-inner {
    width: 120%;
  }
}

.about-us__image-wrapper {
  position: relative;
  width: 100%;
  max-width: 28rem;
  aspect-ratio: 2/3;
  height: auto;
  margin-inline: auto;
}

.about-us__image {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  border-radius: 1.2rem;
  display: block;
  opacity: 0;
  transition: opacity 0.6s ease;
}

.about-us__image.is-visible {
  opacity: 1;
  z-index: 1;
}

.about-us__image-area--sp-only {
  display: none;
}
@media screen and (max-width: 767px) {
  .about-us__image-area--sp-only {
    display: flex;
  }
}

.about-us__image-area--sp-hidden {
  display: block;
}
@media screen and (max-width: 767px) {
  .about-us__image-area--sp-hidden {
    display: none;
  }
}

.about-us-contents {
  max-width: 108rem;
  width: 100%;
  display: flex;
  justify-content: space-between;
  padding-inline: 1.5rem;
  margin-inline: auto;
}
@media screen and (max-width: 767px) {
  .about-us-contents {
    flex-direction: column;
    justify-content: flex-start;
    gap: 4rem;
    padding-inline: 0;
  }
}

@media screen and (max-width: 767px) {
  .about-us-service {
    padding-bottom: 10.9rem;
  }
}

.about-us-contact-line {
  margin-top: 27.2rem;
}
@media screen and (max-width: 767px) {
  .about-us-contact-line {
    margin-top: 14rem;
  }
}

.company-hero {
  padding-top: 15rem;
}
@media screen and (max-width: 767px) {
  .company-hero {
    padding-top: 8.8rem;
  }
}

.company-message {
  padding-top: 10.8rem;
  padding-bottom: 9.8rem;
}
@media screen and (max-width: 767px) {
  .company-message {
    padding-top: 9.6rem;
    padding-bottom: 6.8rem;
  }
}

.company-message__inner {
  padding-inline: 11rem;
}
@media screen and (max-width: 767px) {
  .company-message__inner {
    padding-inline: 5.2rem;
  }
}

.company-message__title {
  margin-bottom: 6rem;
}

.company-message__text-box {
  display: flex;
  flex-direction: column;
  gap: 1.6rem;
}

.company-message__text {
  font-size: 2rem;
  font-weight: 500;
}

.company-info {
  margin-bottom: 14.8rem;
}
@media screen and (max-width: 767px) {
  .company-info {
    margin-bottom: 5.5rem;
  }
}

.company-info__table {
  width: 100%;
  margin-inline: auto;
  border-collapse: collapse;
}

.company-info__inner {
  padding-inline: 11rem;
}
@media screen and (max-width: 767px) {
  .company-info__inner {
    padding-inline: 5.2rem;
  }
}

.company-info__row {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 6rem;
  padding-block: 3.4rem;
  border-bottom: 1px solid rgba(212, 212, 212, 0.6);
}
@media screen and (max-width: 767px) {
  .company-info__row {
    flex-direction: column;
    gap: 0rem;
    padding-block: 2rem;
    align-items: flex-start;
  }
}
.company-info__row:first-of-type {
  border-top: 1px solid rgba(212, 212, 212, 0.6);
}

.company-info__label {
  width: 18rem;
  flex-shrink: 0;
  font-size: 2rem;
  font-weight: 500;
  color: #4A4947;
}
@media screen and (max-width: 767px) {
  .company-info__label {
    font-size: 1.6rem;
  }
}

.company-info__data {
  flex: 1;
  display: flex;
  flex-wrap: wrap;
  gap: 2.6rem;
  font-size: 2rem;
  font-weight: 500;
  color: #4A4947;
}
@media screen and (max-width: 767px) {
  .company-info__data {
    font-size: 1.6rem;
  }
}

.company-info__items {
  display: flex;
  flex-direction: column;
  gap: 8px;
}

.company-related-links {
  margin-bottom: 25.2rem;
}
@media screen and (max-width: 767px) {
  .company-related-links {
    margin-bottom: 14.7rem;
  }
}

.company-related-links__inner {
  padding-inline: 11rem;
}
@media screen and (max-width: 767px) {
  .company-related-links__inner {
    padding-inline: 5.2rem;
  }
}

.company-related-links__title {
  font-size: 2rem;
  font-weight: 500;
  margin-bottom: 5.5rem;
}
@media screen and (max-width: 767px) {
  .company-related-links__title {
    font-size: 1.6rem;
    margin-bottom: 3.3rem;
  }
}

.company-related-links__wrapper {
  padding-inline: 1.2rem;
}

.company-related-links__items {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(30rem, 1fr));
  row-gap: 5rem;
}
@media screen and (max-width: 767px) {
  .company-related-links__items {
    display: flex;
    flex-direction: column;
    gap: 1.6rem;
  }
}

.service-contents {
  padding-top: 10.8rem;
  padding-bottom: 9.8rem;
}
@media screen and (max-width: 767px) {
  .service-contents {
    padding-top: 8.8rem;
    padding-bottom: 5.8rem;
  }
}

.service-contents__inner {
  padding-inline: 11rem;
}
@media screen and (max-width: 767px) {
  .service-contents__inner {
    padding-inline: 3.8rem;
  }
}

.service-contents__intro {
  margin-bottom: 10.8rem;
}
@media screen and (max-width: 767px) {
  .service-contents__intro {
    margin-bottom: 8.8rem;
  }
}

.service-contents__intro--video {
  margin-bottom: 6.8rem;
}

.service-contents__title {
  font-size: 3.2rem;
  font-weight: 500;
  margin-bottom: 4rem;
}
@media screen and (max-width: 767px) {
  .service-contents__title {
    font-size: 2.4rem;
  }
}

.service-contents__text-box {
  display: flex;
  flex-direction: column;
  gap: 1.6rem;
}

.service__button-wrapper {
  margin-bottom: 8rem;
}
.service__button-wrapper .btn-circle__circle {
  width: 7rem;
  height: 7rem;
}
@media screen and (max-width: 767px) {
  .service__button-wrapper .btn-circle__circle {
    width: 6rem;
    height: 6rem;
  }
}

.service-contents__text {
  font-size: 2rem;
  font-weight: 500;
}
@media screen and (max-width: 767px) {
  .service-contents__text {
    font-size: 1.6rem;
  }
}

.service-contents__lists {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(20rem, 1fr));
  gap: 4rem 2rem;
}
@media screen and (max-width: 767px) {
  .service-contents__lists {
    grid-template-columns: repeat(auto-fit, minmax(13.4rem, 1fr));
    gap: 1.2rem 10px;
  }
}

.service-video__lists {
  grid-template-columns: repeat(auto-fit, minmax(clamp(24rem, 30vw, 42rem), 1fr));
  gap: 3rem 2rem;
}
@media screen and (max-width: 767px) {
  .service-video__lists {
    grid-template-columns: repeat(auto-fit, minmax(23.1rem, 1fr));
    gap: 1.2rem;
  }
}

.service-contents__list {
  max-width: 20rem;
  width: 100%;
  margin-inline: auto;
  background-color: #FDFAF5;
  border-radius: 16px;
  padding-block: 3.4rem;
  padding-inline: 10px;
  text-align: center;
  display: flex;
  flex-direction: column;
  gap: 3rem;
  align-items: center;
  justify-content: flex-start;
}
@media screen and (max-width: 767px) {
  .service-contents__list {
    padding-block: 2rem;
    width: 13.4rem;
    gap: 1.6rem;
  }
}

.service-video__list {
  max-width: 100%;
  gap: 2.4rem;
  padding-block: 5rem;
  padding-inline: 2.3rem;
}
@media screen and (max-width: 767px) {
  .service-video__list {
    width: 27.8rem;
    gap: 1.6rem;
    padding-block: 3rem;
  }
}

.service-contents__label {
  line-height: 1.6;
}
@media screen and (max-width: 767px) {
  .service-contents__label {
    font-size: 1.4rem;
  }
}

.service-video__label {
  font-size: clamp(14px, 1.15vw, 16px);
}
@media screen and (max-width: 767px) {
  .service-video__label {
    font-size: 1.5rem;
  }
}

.service-contents__icon {
  width: 4rem;
  height: 4rem;
}

.service-price {
  padding-top: 8rem;
  padding-bottom: 9.8rem;
}
@media screen and (max-width: 767px) {
  .service-price {
    padding-top: 5.8rem;
    padding-bottom: 5.8rem;
  }
}

.service-price__inner {
  max-width: 111rem;
  padding-inline: 1.5rem;
}
@media screen and (max-width: 767px) {
  .service-price__inner {
    padding-inline: 3.3rem;
  }
}

.service-price__inner--web {
  max-width: 135rem;
}

.service-price__title {
  text-align: center;
}

.service-price__plans {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(28rem, 1fr));
  gap: 3rem;
  justify-content: center;
  align-items: start;
  margin-bottom: 3rem;
}
@media screen and (max-width: 767px) {
  .service-price__plans {
    grid-template-columns: 1fr;
    justify-content: stretch;
    gap: 4rem;
    margin-bottom: 2rem;
  }
}

.service-price__plan {
  max-width: 100%;
  background-color: #FDFAF5;
  border-radius: 16px;
  padding-top: 3.2rem;
  padding-bottom: 2.4rem;
  padding-inline: 2rem;
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  height: 100%;
}
@media screen and (max-width: 767px) {
  .service-price__plan {
    width: 100%;
    padding-block: 1.6rem;
    padding-inline: 1.6rem;
  }
}

.service-price__plans--web {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(24rem, 1fr));
  gap: 3rem;
  justify-content: center;
  align-items: start;
  margin-bottom: 3rem;
}
@media screen and (max-width: 1200px) {
  .service-price__plans--web {
    grid-template-columns: repeat(2, 1fr);
    justify-content: center;
  }
}
@media screen and (max-width: 767px) {
  .service-price__plans--web {
    grid-template-columns: 1fr;
    justify-content: stretch;
    gap: 4rem;
    margin-bottom: 2rem;
  }
}

.service-price__plan-title-wrapper {
  display: flex;
  flex-direction: column;
  gap: 1rem;
  text-align: center;
  width: 100%;
  border-bottom: 1px solid #D4D4D4;
  padding-block: 2.4rem;
}
@media screen and (max-width: 767px) {
  .service-price__plan-title-wrapper {
    padding-block: 8px;
  }
}

.service-price__plan-title {
  font-size: 2.2rem;
  font-weight: 500;
  line-height: 1;
}
@media screen and (max-width: 767px) {
  .service-price__plan-title {
    font-size: 1.8rem;
  }
}

.service-price__lists {
  width: 100%;
  display: flex;
  flex-direction: column;
  gap: 2rem;
  padding-block: 3.4rem;
  padding-inline: 8px;
  border-bottom: 1px solid #D4D4D4;
  flex-grow: 1;
}
@media screen and (max-width: 767px) {
  .service-price__lists {
    padding-left: 0.4rem;
    padding-block: 2.4rem;
    gap: 1.6rem;
  }
}

.service-price__list {
  display: flex;
  gap: 8px;
  align-items: center;
}
@media screen and (max-width: 767px) {
  .service-price__list {
    font-size: 1.5rem;
    gap: 1.2rem;
  }
}

.service-price__list--web {
  font-size: clamp(14px, 1.15vw, 15px);
}
@media screen and (max-width: 1200px) {
  .service-price__list--web {
    font-size: 1.6rem;
  }
}

.service-price__icon {
  width: 2rem;
  height: 1.8rem;
}
.service-price__price-wrapper {
  padding-top: 2.4rem;
  padding-bottom: 8px;
  padding-inline: 1.6rem;
}
@media screen and (max-width: 767px) {
  .service-price__price-wrapper {
    padding-top: 1.6rem;
    padding-bottom: 0rem;
  }
}

.service-price__price {
  font-family: "Montserrat", sans-serif;
  font-size: 2rem;
  font-weight: 600;
}

.service-price__note-box {
  text-align: right;
}

@media screen and (max-width: 767px) {
  .service-price__note {
    font-size: 1.2rem;
  }
}

.service-price--maintenance__note-box {
  margin-bottom: 9.8rem;
}
@media screen and (max-width: 767px) {
  .service-price--maintenance__note-box {
    margin-bottom: 6rem;
  }
}

.service-flow {
  padding-top: 9.8rem;
  padding-bottom: 18rem;
}
@media screen and (max-width: 767px) {
  .service-flow {
    padding-top: 5.8rem;
    padding-bottom: 17.4rem;
  }
}

.service-flow__inner {
  max-width: 75.2rem;
  padding-inline: 2.8rem;
}

.service-flow__title-wrapper {
  margin-bottom: 4rem;
}

.service-flow__title {
  text-align: center;
}

.service-flow__steps-wrapper {
  margin-bottom: 11.3rem;
}
@media screen and (max-width: 767px) {
  .service-flow__steps-wrapper {
    margin-bottom: 5.5rem;
  }
}

.service-flow__step {
  display: flex;
  gap: 3.2rem;
  padding-block: 3.2rem;
  padding-inline: 2rem;
  border-bottom: 1px solid #D4D4D4;
  align-items: center;
}
@media screen and (max-width: 767px) {
  .service-flow__step {
    flex-direction: column;
    gap: 2.4rem;
    padding-block: 2.4rem;
    align-items: center;
    padding-inline: 1rem;
  }
}

.service-flow__icon {
  width: 9rem;
  height: 9rem;
  aspect-ratio: 1/1;
  border-radius: 50%;
  display: flex;
  align-items: center;
  justify-content: center;
}

.service-flow__text {
  display: flex;
  flex-direction: column;
  gap: 1.6rem;
}

.service-flow__step-title {
  font-size: 2.2rem;
  font-weight: 500;
  line-height: 1;
}
@media screen and (max-width: 767px) {
  .service-flow__step-title {
    font-size: 1.8rem;
    margin-inline: auto;
  }
}

.service-flow__desc {
  line-height: 1.6;
}
@media screen and (max-width: 767px) {
  .service-flow__desc {
    font-size: 1.5rem;
  }
}

.service-flow__links-wrapper {
  padding-inline: 1.7rem;
}

.service-flow__links-items {
  display: flex;
  gap: 3rem;
  flex-wrap: wrap;
  justify-content: space-between;
}
@media screen and (max-width: 767px) {
  .service-flow__links-items {
    justify-content: center;
  }
}

.service-maintenance__links-items {
  justify-content: center;
  gap: 15rem;
}
@media screen and (max-width: 767px) {
  .service-maintenance__links-items {
    gap: 3rem;
  }
}

.service-flow__link-inner {
  display: inline-flex;
  width: auto;
  gap: 4.2rem;
  margin-inline: 0rem;
}

.works-hero__illust {
  width: 12rem;
}

.works-info {
  padding-bottom: 18rem;
}
@media screen and (max-width: 767px) {
  .works-info {
    padding-bottom: 8rem;
  }
}

.works__layout {
  display: flex;
  gap: clamp(7rem, 9.72vw, 14rem);
  align-items: flex-start;
}
@media screen and (max-width: 767px) {
  .works__layout {
    flex-direction: column;
    align-items: center;
    gap: 5.8rem;
  }
}

.works__tags {
  width: 18.4rem;
  max-width: 100%;
  flex-shrink: 0;
}
@media screen and (max-width: 767px) {
  .works__tags {
    width: 100%;
  }
}

.works__tag-lists {
  display: flex;
  flex-direction: column;
  gap: 2rem;
}
@media screen and (max-width: 767px) {
  .works__tag-lists {
    flex-direction: row;
    -moz-column-gap: 1.3rem;
         column-gap: 1.3rem;
    row-gap: 1.3rem;
    flex-wrap: wrap;
  }
}

.works__tag {
  border: 1px solid #4A4947;
  border-radius: 35px;
  padding-block: 8px;
  padding-inline: 1.6rem;
  font-size: 1.2rem;
  font-weight: 500;
}
@media screen and (max-width: 767px) {
  .works__tag {
    padding-inline: 8px;
  }
}

.works__tag.is-active {
  background-color: #EEE8DF;
  color: #4A4947;
}

.works__list-wrapper {
  flex: 1;
  min-width: 0;
}
@media screen and (max-width: 767px) {
  .works__list-wrapper {
    width: 100%;
  }
}

.works__cards {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(28rem, -webkit-max-content));
  grid-template-columns: repeat(auto-fit, minmax(28rem, max-content));
  gap: 5.8rem 3.6rem;
  margin-bottom: 11.8rem;
  justify-content: center;
}
@media screen and (max-width: 767px) {
  .works__cards {
    gap: 4rem;
  }
}

.works__cards:has(.works__card-link:nth-child(1):nth-last-child(1)) {
  justify-content: center;
}

.works__card {
  width: 35.8rem;
  max-width: 100%;
  display: flex;
  flex-direction: column;
  gap: 16px;
}
@media screen and (max-width: 767px) {
  .works__card {
    gap: 8px;
  }
}

.works__thumbnail-wrapper {
  width: 100%;
  aspect-ratio: 358/233;
  overflow: hidden;
  border-radius: 20px;
}

.works__thumbnail {
  border-radius: 20px;
  height: auto;
  transition: transform 0.4s ease;
}

.works__card:hover .works__thumbnail {
  transform: scale(1.05);
}

.works__content {
  display: flex;
  flex-direction: column;
  gap: 14px;
}
@media screen and (max-width: 767px) {
  .works__content {
    gap: 8px;
  }
}

.works__title {
  font-size: 1.8rem;
  font-weight: 500;
  line-height: 1.4;
}

.works__card-tags {
  flex-direction: row;
  flex-wrap: wrap;
  gap: 10px;
}

.works__pagination {
  display: flex;
  justify-content: center;
  align-items: center;
  margin-top: 4rem;
  gap: 1.5rem;
}

.works__pagination-numbers {
  display: flex;
  gap: 0.8rem;
}

.works__pagination-numbers li {
  padding: 0.4rem 0.8rem;
  border-radius: 0.4rem;
}

.works__pagination-numbers li.is-current {
  background: #000;
  color: #fff;
}

.works__pagination-prev,
.works__pagination-next {
  background: none;
  border: none;
  color: #333;
  cursor: pointer;
  font-size: 0.9rem;
}

.works__pagination-prev:disabled,
.works__pagination-next:disabled {
  opacity: 0.4;
  cursor: default;
}

.works-info__head {
  display: flex;
  flex-direction: column;
  gap: 2rem;
  margin-bottom: 3.8rem;
}

.works-info__title {
  font-size: 3.2rem;
  font-weight: 500;
  line-height: 1.4;
  border-bottom: 1px solid #4A4947;
  padding-bottom: 1.6rem;
}
@media screen and (max-width: 767px) {
  .works-info__title {
    font-size: 2.4rem;
    line-height: 1.6;
    padding-bottom: 1.4rem;
  }
}

.works-info__tags {
  flex-direction: row;
  gap: 10px;
}

.works-info__body {
  display: grid;
  gap: 5.8rem;
  margin-bottom: 11.8rem;
}
@media screen and (max-width: 767px) {
  .works-info__body {
    gap: 4rem;
    margin-bottom: 5.8rem;
  }
}

.works-info__image-wrapper {
  width: 100%;
  aspect-ratio: 47/34;
  overflow: hidden;
  border-radius: 20px;
}
.works-info__image-wrapper img {
  border-radius: 20px;
}
@media screen and (max-width: 767px) {
  .works-info__image-wrapper {
    aspect-ratio: 280/203;
  }
}

.works-info__table {
  width: 100%;
  border-collapse: collapse;
  font-size: 1.8rem;
  line-height: 1.4;
}

.works-info__table tr {
  border-bottom: 1px solid #D4D4D4;
}
@media screen and (max-width: 767px) {
  .works-info__table tr {
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    gap: 1rem;
  }
}

.works-info__table th {
  width: 18rem;
  font-weight: 500;
  white-space: nowrap;
  padding-top: 1.4rem;
  padding-bottom: 1.4rem;
  text-align: left;
  vertical-align: top;
}
@media screen and (max-width: 767px) {
  .works-info__table th {
    padding-top: 1.6rem;
    padding-bottom: 0rem;
  }
}

.works-info__table td {
  word-break: break-word;
  padding-top: 1.4rem;
  padding-bottom: 1.4rem;
  padding-left: 2rem;
  text-align: left;
  vertical-align: top;
}
@media screen and (max-width: 767px) {
  .works-info__table td {
    padding-top: 0rem;
    padding-bottom: 1.6rem;
    padding-left: 0rem;
  }
}

.works-info__link {
  display: inline-flex;
  align-items: center;
  text-decoration: underline;
}
.works-info__link:hover {
  opacity: 0.7;
}
.works-info__link:hover .works-info__link-icon {
  opacity: 0.7;
}

.works-info__link-icon {
  width: 1.6rem;
  height: 1.6rem;
  margin-left: 1.5rem;
  display: inline-block;
  vertical-align: middle;
  transform: translateY(1px);
}

.works-info__description {
  display: flex;
  flex-direction: column;
  gap: 2.4rem;
}

.works-info__description-comment {
  display: grid;
  gap: 0.8rem;
}
@media screen and (max-width: 767px) {
  .works-info__description-comment {
    gap: 0.6rem;
  }
}

.works-info__description-label {
  font-weight: 500;
  line-height: 1.8;
}

.works-info__description-text {
  font-weight: 500;
  line-height: 1.8;
  border-bottom: 1px solid #D4D4D4;
}

.post-detail__thumbnail {
  margin-bottom: 3rem;
  aspect-ratio: 1200/630;
  overflow: hidden;
  border-radius: 8px;
}
.post-detail__thumbnail img {
  width: 100%;
  height: 100%;
  -o-object-fit: cover;
     object-fit: cover;
  display: block;
  border-radius: 8px;
}

.post-detail__title {
  font-size: 3.8rem;
  margin-bottom: 3rem;
}
@media screen and (max-width: 767px) {
  .post-detail__title {
    font-size: 3rem;
    margin-bottom: 2rem;
  }
}

.entry-content {
  font-size: 1.6rem;
  line-height: 1.8;
  color: #4A4947;
  margin-bottom: 11rem;
}

.entry-content h2 {
  color: #F1EFEC;
  background-color: #4A4947;
  font-size: 3.2rem;
  margin-top: 3rem;
  padding: 0.8rem 1.2rem;
  width: 100%;
  border-radius: 8px;
}

@media screen and (max-width: 767px) {
  .entry-content h2 {
    font-size: 2.4rem;
  }
}
.entry-content h3 {
  color: #4A4947;
  position: relative;
  font-size: 2.4rem;
  padding-bottom: 0.5rem;
}

.entry-content h3::before {
  content: "";
  position: absolute;
  bottom: 0;
  left: 0;
  width: 100%;
  height: 2px;
  background: linear-gradient(to right, #F0FF42 0%, #F0FF42 50%, #4A4947 50%, #4A4947 100%);
}

@media screen and (max-width: 767px) {
  .entry-content h3 {
    font-size: 2rem;
  }
}
.entry-content h4 {
  color: #4A4947;
  position: relative;
  font-size: 2rem;
  padding-bottom: 0.5rem;
}

.entry-content h4::before {
  content: "";
  position: absolute;
  bottom: 0;
  left: 0;
  width: 100%;
  height: 2px;
  background: #4A4947;
}

@media screen and (max-width: 767px) {
  .entry-content h4 {
    font-size: 1.8rem;
  }
}
.entry-content p {
  margin-bottom: 1.6rem;
}

.entry-content ul {
  list-style: disc;
  padding-left: 2em;
  margin-bottom: 1.6rem;
}

.entry-content ul li {
  list-style: disc;
  display: list-item;
}

.entry-content a {
  border-bottom: 1px solid #4A4947;
  transition: opacity 0.3s;
}

.entry-content a:hover {
  opacity: 0.7;
}

.contact-hero__inner {
  display: flex;
}
@media screen and (max-width: 767px) {
  .contact-hero__inner {
    align-items: center;
    gap: 3.2rem;
    padding-inline: 2rem;
  }
}

.contact-hero__title {
  margin-right: auto;
}

.contact-hero__illust {
  width: auto;
  height: auto;
}
@media screen and (max-width: 767px) {
  .contact-hero__illust {
    text-align: center;
  }
}

.contact-hero__illust svg {
  display: block;
}
@media screen and (max-width: 767px) {
  .contact-hero__illust svg {
    width: 6.4rem;
    height: auto;
    margin: 0 auto;
  }
}

.contact-contents {
  padding-top: 6rem;
  padding-bottom: 18rem;
}
@media screen and (max-width: 767px) {
  .contact-contents {
    padding-top: 3.4rem;
    padding-bottom: 7.3rem;
  }
}

@media screen and (max-width: 767px) {
  .contact-contents__inner {
    padding-inline: 12.8%;
  }
}

.contact-contents__catch {
  margin-bottom: 5.4rem;
}
@media screen and (max-width: 767px) {
  .contact-contents__catch {
    margin-bottom: 4rem;
  }
}

.contact-contents__lead {
  font-size: 1.8rem;
}
@media screen and (max-width: 767px) {
  .contact-contents__lead {
    font-size: 1.6rem;
  }
}

.contact-contents__wrapper {
  display: flex;
  gap: clamp(4.5rem, 8.125vw, 12rem);
}
@media screen and (max-width: 767px) {
  .contact-contents__wrapper {
    flex-direction: column;
    gap: 6.6rem;
  }
}

.contact-contents__left {
  width: 40rem;
  max-width: 100%;
  display: flex;
  flex-direction: column;
  gap: 6rem;
}
@media screen and (max-width: 767px) {
  .contact-contents__left {
    gap: 4rem;
  }
}

.contact-contents__right {
  width: 56rem;
  max-width: 100%;
}

.contact-contents__lists {
  display: flex;
  flex-direction: column;
  gap: 2rem;
}
@media screen and (max-width: 767px) {
  .contact-contents__lists {
    padding-left: 0.4rem;
  }
}

.contact-contents__list {
  display: flex;
  gap: 2rem;
  align-items: center;
}
@media screen and (max-width: 767px) {
  .contact-contents__list {
    font-size: 1.5rem;
    gap: 1.2rem;
  }
}

.contact-contents__icon {
  width: 2rem;
  height: 1.8rem;
}
@media screen and (max-width: 767px) {
  .contact-contents__tel-block {
    text-align: center;
  }
}

.contact-contents__tel-label {
  font-size: 2.4rem;
  margin-bottom: 1rem;
  line-height: 1.2;
}
@media screen and (max-width: 767px) {
  .contact-contents__tel-label {
    font-size: 1.5rem;
    margin-bottom: 4px;
  }
}

.contact-contents__tel {
  font-family: "Poppins", sans-serif;
  font-size: 4rem;
  display: flex;
  gap: 1.2rem;
  margin-bottom: 4px;
  flex-wrap: nowrap;
  white-space: nowrap;
}
@media screen and (max-width: 767px) {
  .contact-contents__tel {
    font-size: 2.2rem;
    display: block;
    justify-content: center;
  }
}

@media screen and (max-width: 767px) {
  .contact-contents__illust img {
    width: 43rem;
    max-width: 100%;
  }
}

.contact-form {
  display: flex;
  flex-direction: column;
  gap: 3.2rem;
}
@media screen and (max-width: 767px) {
  .contact-form {
    gap: 2rem;
  }
}

.wpcf7-form {
  display: flex;
  flex-direction: column;
  gap: 3.2rem;
}
@media screen and (max-width: 767px) {
  .wpcf7-form {
    gap: 2rem;
  }
}

.form-group {
  display: flex;
  flex-direction: column;
  gap: 8px;
}
@media screen and (max-width: 767px) {
  .form-group {
    gap: 6px;
  }
}

.form-group--checkbox {
  gap: 2.3rem;
}
@media screen and (max-width: 767px) {
  .form-group--checkbox {
    gap: 1.35rem;
  }
}

.form-label {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  line-height: 1;
}

.required-icon {
  display: inline-flex;
  align-items: center;
}
.required-icon svg {
  display: block;
}

.wpcf7-form-control-wrap {
  display: flex;
  flex-direction: column;
  gap: 8px;
}
@media screen and (max-width: 767px) {
  .wpcf7-form-control-wrap {
    gap: 6px;
  }
}
.wpcf7-form-control-wrap label {
  display: flex;
  flex-direction: row;
  gap: 8px;
  line-height: 1;
}
.wpcf7-form-control-wrap input[type=text],
.wpcf7-form-control-wrap input[type=email],
.wpcf7-form-control-wrap input[type=tel] {
  border-radius: 8px;
  border: 1px solid #D4D4D4;
  background: #FDFAF5;
  padding-block: 1.2rem;
  padding-inline: 1.6rem;
}
@media screen and (max-width: 767px) {
  .wpcf7-form-control-wrap input[type=text],
.wpcf7-form-control-wrap input[type=email],
.wpcf7-form-control-wrap input[type=tel] {
    padding-bottom: 6px;
    padding-inline: 8px;
  }
}
.wpcf7-form-control-wrap textarea {
  width: 100%;
  padding: 1.2rem 1.6rem;
  border: 1px solid #D4D4D4;
  border-radius: 8px;
  font-size: 1.6rem;
  line-height: 1.6;
  background-color: #FDFAF5;
  resize: vertical;
  min-height: 12rem;
}

.wpcf7-checkbox,
.form-group--checkbox-list {
  display: flex;
  flex-direction: column;
  gap: 1.2rem;
  padding-left: 1.4rem;
}
@media screen and (max-width: 767px) {
  .wpcf7-checkbox,
.form-group--checkbox-list {
    padding-left: 1rem;
  }
}
.wpcf7-checkbox .wpcf7-list-item,
.form-group--checkbox-list .wpcf7-list-item {
  position: relative;
  display: flex;
  align-items: center;
}
.wpcf7-checkbox .wpcf7-list-item input[type=checkbox],
.form-group--checkbox-list .wpcf7-list-item input[type=checkbox] {
  position: absolute;
  opacity: 0;
  pointer-events: none;
}
.wpcf7-checkbox .wpcf7-list-item label,
.form-group--checkbox-list .wpcf7-list-item label {
  position: relative;
  padding-left: 2.8rem;
  display: flex;
  align-items: center;
  gap: 1rem;
  cursor: pointer;
  font-size: 1.6rem;
}
@media screen and (max-width: 767px) {
  .wpcf7-checkbox .wpcf7-list-item label,
.form-group--checkbox-list .wpcf7-list-item label {
    font-size: 1.3rem;
  }
}
.wpcf7-checkbox .wpcf7-list-item label::before,
.form-group--checkbox-list .wpcf7-list-item label::before {
  content: "";
  position: absolute;
  left: 0;
  top: 50%;
  transform: translateY(-50%);
  width: 20px;
  height: 20px;
  background: #FDFAF5;
  border: 1px solid #D4D4D4;
  border-radius: 4px;
  box-sizing: border-box;
}
.wpcf7-checkbox .wpcf7-list-item label::after,
.form-group--checkbox-list .wpcf7-list-item label::after {
  content: "";
  position: absolute;
  top: 50%;
  left: 10px;
  width: 0.6rem;
  height: 1rem;
  border: solid #333;
  border-width: 0 2px 2px 0;
  transform: translate(-50%, -50%) rotate(45deg);
  opacity: 0;
  transition: opacity 0.2s ease;
}
.wpcf7-checkbox .wpcf7-list-item input[type=checkbox]:checked + .wpcf7-list-item-label::after,
.form-group--checkbox-list .wpcf7-list-item input[type=checkbox]:checked + .wpcf7-list-item-label::after {
  opacity: 1;
}

.wpcf7-list-item {
  position: relative;
  display: flex;
  align-items: center;
}
.wpcf7-list-item label {
  position: relative;
  padding-left: 2.8rem;
  display: flex;
  align-items: center;
  cursor: pointer;
  font-size: 1.6rem;
  gap: 1rem;
}
.wpcf7-list-item label input[type=checkbox] {
  position: absolute;
  opacity: 0;
  pointer-events: none;
}
.wpcf7-list-item label .wpcf7-list-item-label {
  position: relative;
}
.wpcf7-list-item label .wpcf7-list-item-label::before {
  content: "";
  position: absolute;
  left: -2.8rem;
  top: 50%;
  transform: translateY(-50%);
  width: 20px;
  height: 20px;
  background: #FDFAF5;
  border: 1px solid #D4D4D4;
  border-radius: 4px;
  box-sizing: border-box;
}
.wpcf7-list-item label .wpcf7-list-item-label::after {
  content: "";
  position: absolute;
  top: 50%;
  left: -2rem;
  width: 0.6rem;
  height: 1rem;
  border: solid #333;
  border-width: 0 2px 2px 0;
  transform: translateY(-50%) rotate(45deg);
  opacity: 0;
  transition: opacity 0.2s ease;
}
.wpcf7-list-item label input[type=checkbox]:checked ~ .wpcf7-list-item-label::after {
  opacity: 1;
}

.wpcf7-submit,
.submit-svg-button {
  border: none;
  background: transparent;
  padding: 0;
  cursor: pointer;
  transition: background-color 0.5s ease, color 0.3s ease;
}
.wpcf7-submit svg,
.submit-svg-button svg {
  display: block;
}
.wpcf7-submit svg path,
.submit-svg-button svg path {
  transition: fill 0.6s ease, stroke 0.6s ease;
}
.wpcf7-submit:hover svg path[fill="#F0FF42"],
.submit-svg-button:hover svg path[fill="#F0FF42"] {
  fill: #4A4947;
}
.wpcf7-submit:hover svg path[fill="#4A4947"],
.submit-svg-button:hover svg path[fill="#4A4947"] {
  fill: #F0FF42;
}
.wpcf7-submit:hover svg path[stroke="#4A4947"],
.submit-svg-button:hover svg path[stroke="#4A4947"] {
  stroke: #F0FF42;
}

.privacy-link {
  text-decoration: underline;
  color: #4A4947;
  transition: 0.2s;
}
.privacy-link:hover {
  color: #4A4947;
  opacity: 0.7;
  text-decoration: underline;
}

.form-group--privacy .wpcf7-list-item {
  padding-left: 5.4rem;
}
@media screen and (max-width: 767px) {
  .form-group--privacy .wpcf7-list-item {
    padding-left: 3rem;
  }
}

.form-group--privacy .wpcf7-list-item label {
  display: flex;
  align-items: center;
  gap: 0.4rem;
  padding-left: 0rem;
}

.form-group--privacy .wpcf7-list-item input[type=checkbox] {
  margin: 0;
}

@media screen and (max-width: 767px) {
  .form-group--privacy .checkbox-text {
    font-size: 1.3rem;
  }
}

.contact-thanks__inner {
  padding-inline: 5rem;
}

.contact-thanks__contents-wrapper {
  display: flex;
  gap: 11rem;
  margin-bottom: 8rem;
}
@media screen and (max-width: 767px) {
  .contact-thanks__contents-wrapper {
    flex-direction: column;
    gap: 3.4rem;
    margin-bottom: 3.4rem;
  }
}

.contact-thanks__message {
  width: 70rem;
  max-width: 100%;
  display: flex;
  flex-direction: column;
  gap: 2.4rem;
}
@media screen and (max-width: 767px) {
  .contact-thanks__message {
    gap: 1.6rem;
  }
}

.contact-thanks__text {
  font-size: 1.8rem;
}
@media screen and (max-width: 767px) {
  .contact-thanks__text {
    font-size: 1.3rem;
  }
}

.contact-thanks__text--lead {
  margin-bottom: 1.6rem;
}
@media screen and (max-width: 767px) {
  .contact-thanks__text--lead {
    margin-bottom: 1.8rem;
  }
}

.contact-thanks__image-wrapper {
  width: 35rem;
  max-width: 100%;
  padding-top: 7.2rem;
}
@media screen and (max-width: 767px) {
  .contact-thanks__image-wrapper {
    width: 100%;
    display: flex;
    justify-content: center;
    padding-top: 0;
  }
}

.contact-thanks__image img {
  width: 43rem;
  max-width: 100%;
}

.contact-thanks__button-wrapper {
  justify-content: flex-start;
  padding-left: 37%;
}
@media screen and (max-width: 767px) {
  .contact-thanks__button-wrapper {
    justify-content: center;
    padding-left: 0;
  }
}

.wp-block-heading {
  font-weight: bold;
  margin: 2rem 0 1.5rem;
  line-height: 1.4;
  color: #fff;
}

.wp-block-heading:is(h1) {
  font-size: 3rem;
  border-bottom: 3px solid #888;
  padding-bottom: 0.5rem;
}

.wp-block-heading:is(h2) {
  padding-left: 1rem;
}

.wp-block-heading:is(h3) {
  font-size: 2.2rem;
  font-weight: 600;
  line-height: 1.4;
  margin: 8.4rem 0 2.4rem;
  padding-left: calc(1rem + 5px);
  color: #4A4947;
}

.wp-block-heading:is(h4) {
  font-size: 1.8rem;
  font-weight: 600;
  line-height: 1.6;
  margin: 8.2rem 0 1.6rem;
  padding-left: 1rem;
  color: #4A4947;
}

.wp-block-paragraph {
  font-size: 1.6rem;
  line-height: 1.8;
  margin-bottom: 1.6rem;
  color: #fff;
}

.wp-block-image {
  margin: 2rem 0;
}
.wp-block-image img {
  max-width: 100%;
  height: auto;
  border-radius: 0.5rem;
}

.wp-block-quote {
  border-left: 4px solid #ccc;
  padding-left: 1rem;
  color: #ccc;
  font-style: italic;
  margin: 2rem 0;
}

.wp-block-list {
  padding-left: 2rem;
  margin-bottom: 2rem;
}
.wp-block-list li {
  margin-bottom: 0.6rem;
}

.wp-block-table {
  width: 100%;
  border-collapse: collapse;
  margin-bottom: 2rem;
}
.wp-block-table th,
.wp-block-table td {
  border: 1px solid #ccc;
  padding: 0.8rem;
  text-align: left;
}
.wp-block-table th {
  background: #f9f9f9;
}

.wp-block-code {
  background: #f4f4f4;
  font-family: monospace;
  font-size: 1.4rem;
  padding: 1rem;
  border-radius: 5px;
  overflow-x: auto;
}

.article {
  padding-top: 8rem;
  padding-bottom: 16rem;
}
.article::after {
  display: none;
}
@media screen and (max-width: 767px) {
  .article {
    padding-top: 0;
  }
}

.article__inner {
  width: 90rem;
  max-width: 100%;
  margin-inline: auto;
}
@media screen and (max-width: 767px) {
  .article__inner {
    padding-inline: 0;
  }
}

.article__header {
  margin-bottom: 4rem;
}

.article__label {
  display: inline-block;
  margin-bottom: 1.8rem;
  font-size: 1.2rem;
  font-weight: 600;
  background: #d81f32;
  padding: 0.4rem 1.6rem;
  text-align: center;
}

.article__title {
  font-size: 3rem;
  line-height: 1.41667;
  font-weight: 600;
  margin-bottom: 1.8rem;
}

.article__meta {
  display: flex;
  align-items: center;
  font-size: 1.4rem;
  margin-bottom: 4rem;
}

.article__updated {
  margin-left: 1.8rem;
}

.article__img {
  margin-top: 2rem;
  text-align: center;
  width: 60%;
  margin-inline: auto;
}
.article__img img {
  width: 100%;
  height: auto;
  border-radius: 0.5rem;
}
@media screen and (max-width: 767px) {
  .article__img {
    width: 100%;
  }
}

.article__content {
  line-height: 1.8;
  font-size: 1.6rem;
  color: #fff;
}
.article__content h2 {
  border-radius: 3px;
  border-bottom: 6px solid #FDFAF5;
  font-size: 2.6rem;
  font-weight: 600;
  margin: 8rem 0 3.8rem;
  padding-bottom: 1rem;
  position: relative;
}
.article__content h3 {
  font-size: 2.2rem;
  font-weight: 600;
  margin: 8.4rem 0 2.4rem;
  border-left: 5px solid #FDFAF5;
}
.article__content h4 {
  font-size: 1.8rem;
  font-weight: 600;
  line-height: 1.6;
  margin: 8.2rem 0 1.6rem;
  padding-left: 1rem;
  border-left: 5px solid #FDFAF5;
}
.article__content h5 {
  font-size: 1.8rem;
  font-weight: 600;
  line-height: 1.6;
  margin: 6rem 0 2.7rem;
}
.article__content h6 {
  font-size: 1.6rem;
  font-weight: 600;
  line-height: 1.6;
  margin: 2em 0 1em;
}
.article__content p {
  margin-top: 2rem;
  margin-bottom: 2rem;
  line-height: 1.8;
}
.article__content strong,
.article__content b {
  font-weight: 600;
}
.article__content img {
  max-width: 100%;
  height: auto;
  vertical-align: middle;
  border-radius: 0.5rem;
  margin: 2rem 0;
}
.article__content ul,
.article__content ol {
  margin: 2rem 0;
  padding-left: 2.5rem;
}
.article__content ul {
  list-style-type: disc;
}
.article__content ol {
  list-style-type: decimal;
}
.article__content li {
  margin: 0.5rem 0;
  line-height: 1.8;
}
.article__content blockquote {
  background: #eee;
  padding: 1em;
  margin: 2rem 0;
  border-left: 4px solid #ccc;
  color: #666;
}
.article__content blockquote > :first-child {
  margin-top: 0;
}
.article__content blockquote > :last-child {
  margin-bottom: 0;
}
.article__content q {
  background: #eee;
  padding: 0.2em;
}
.article__content table {
  width: 100%;
  border-collapse: collapse;
  margin: 2rem 0;
}
.article__content table th,
.article__content table td {
  border: 1px solid #eee;
  padding: 0.8rem;
  text-align: left;
  vertical-align: top;
}
.article__content table th {
  background: #f9f9f9;
}
.article__content pre,
.article__content code {
  font-family: monospace;
  font-size: 1.4rem;
  background: #f4f4f4;
  padding: 1rem;
  border-radius: 5px;
  overflow-x: auto;
}
.article__content a {
  color: #4A4947;
  font-weight: 600;
  transition: opacity 0.3s ease;
}
.article__content a:hover {
  opacity: 0.7;
}

.article__nav {
  margin: 4rem auto;
  padding: 4rem 0 2rem;
  border-top: 1px solid #ccc;
  text-align: center;
}

.article__nav-inner {
  display: flex;
  justify-content: space-between;
  gap: 2rem;
}
@media screen and (max-width: 767px) {
  .article__nav-inner {
    gap: 1rem;
  }
}
.article__nav-inner a {
  color: #fff;
  text-decoration: underline;
  transition: opacity 0.3s ease;
}
.article__nav-inner a:hover {
  opacity: 0.8;
}

.not-found {
  margin-top: 16.2rem;
  margin-bottom: 20rem;
}
@media screen and (max-width: 767px) {
  .not-found {
    margin-top: 15.4rem;
    margin-bottom: 11.3rem;
  }
}

.not-found__layout {
  padding-inline: 6rem;
  display: flex;
  gap: 5.8rem;
}
@media screen and (max-width: 767px) {
  .not-found__layout {
    flex-direction: column-reverse;
  }
}

.not-found__left {
  display: flex;
  flex-direction: column;
  gap: 4rem;
}
@media screen and (max-width: 767px) {
  .not-found__left {
    gap: 3.2rem;
  }
}

.not-found__title {
  font-family: "Montserrat", sans-serif;
  font-size: 4.8rem;
  font-weight: 600;
}
@media screen and (max-width: 767px) {
  .not-found__title {
    font-size: 3.6rem;
  }
}

.not-found__text {
  font-weight: 500;
  line-height: 1.8;
}
@media screen and (max-width: 767px) {
  .not-found__text {
    font-size: 1.5rem;
  }
}

.not-found__button-wrapper {
  justify-content: flex-start;
}

.privacy-policy__title {
  font-size: 2.4rem;
  margin-bottom: 3rem;
  text-align: center;
}

.privacy-policy__content {
  font-size: 1.6rem;
  line-height: 1.8;
  color: #4A4947;
  margin-bottom: 12rem;
}

.privacy-policy__content h2 {
  color: #F1EFEC;
  background-color: #4A4947;
  font-size: 3.2rem;
  margin-top: 3rem;
  padding: 0.8rem 1.2rem;
  width: 100%;
  border-radius: 8px;
}

.privacy-policy__content h3 {
  color: #4A4947;
  position: relative;
  font-size: 2.4rem;
  padding-bottom: 0.5rem;
}
.privacy-policy__content h3::before {
  content: "";
  position: absolute;
  bottom: 0;
  left: 0;
  width: 100%;
  height: 2px;
  background: linear-gradient(to right, #F0FF42 0%, #F0FF42 50%, #4A4947 50%, #4A4947 100%);
}

.privacy-policy__content p {
  margin-bottom: 1.6rem;
}

.privacy-policy__content ul {
  list-style: disc;
  padding-left: 2em;
  margin-bottom: 1.6rem;
}

.privacy-policy__content ul li {
  list-style: disc;
  display: list-item;
}

.privacy-policy__content a {
  border-bottom: 1px solid #4A4947;
}
/*# sourceMappingURL=style.css.map */