@charset "UTF-8";
.u-vertical {
  writing-mode: vertical-rl;
}

/* ===============================================
# pxをremに変換
$px 文字サイズ
$basepx 基準となるピクセル数
=============================================== */
/* ===============================================
# line-heightを計算する
$pixels 文字サイズ
$height figma上のline-height
=============================================== */
:root {
  --color-primary: #3A5E19;
  --color-secondly: #46701D;
  --color-text: #333333;
  --color-light-gray: #CCCCCC;
  --color-dark-gray: #787878;
  --color-dark-gray2: #626262;
  --color-gray: #999999;
  --color-green-leaf: #549315;
  --color-pink: #EB8484;
  --color-white: #FFFFFF;
  --color-black: #000000;
  --color-light-beige: #FFFAF3;
  --font-yumincho: "Yu Mincho", "Yu Mincho", serif;
  --font-yumincho-demibold: "Yu Mincho Demibold", "Yu Mincho Demibold", serif;
  --font-shippori-mincho: "Shippori Mincho", serif;
  --font-hurricane: "Hurricane", serif;
  --font-eb-garamond: "EB Garamond", serif;
  --font-noto-serif-jp: "Noto Serif JP", serif;
  --font-noto-sans-jp: "Noto Sans JP", sans-serif;
  --font-montserrat: "Montserrat", sans-serif;
  --font-biz-udp-mincho: "BIZ UDPMincho", serif;
  --font-hurricane: "Hurricane", cursive;
  --font-domine: "Domine", serif;
}

html {
  font-size: 16px;
}

body {
  font-family: var(--font-yumincho);
  font-weight: 500;
  color: var(--color-text);
  overflow-x: hidden;
}

a[href^="tel:"] {
  pointer-events: none;
}
@media screen and (max-width: 750px) {
  a[href^="tel:"] {
    pointer-events: auto;
  }
}

a {
  transition: opacity 0.3s;
}
a:hover {
  opacity: 0.7;
}

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

/* Remove default padding */
ul,
ol {
  padding: 0;
}

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

/* Set core root defaults */
/*
html {
  scroll-behavior: smooth;
}
*/
/* Set core body defaults */
body {
  min-height: 100vh;
  text-rendering: optimizeSpeed;
  line-height: 1.5;
}

/* Remove list styles on ul, ol elements with a class attribute */
ul,
ol {
  list-style: none;
}

/* A elements that don't have a class get default styles */
a:not([class]) {
  -webkit-text-decoration-skip: ink;
          text-decoration-skip-ink: auto;
}

a {
  text-decoration: none;
}

/* Make images easier to work with */
img {
  max-width: 100%;
  display: block;
  width: 100%;
}

/* Natural flow and rhythm in articles by default */
/* Inherit fonts for inputs and buttons */
input,
button,
textarea,
select {
  font: inherit;
}

/* Blur images when they have no alt attribute */
img:not([alt]) {
  filter: blur(10px);
}

/* フォームリセット */
input,
button,
select,
textarea {
  -webkit-appearance: none;
  -moz-appearance: none;
  appearance: none;
  background: transparent;
  border: none;
  border-radius: 0;
  font: inherit;
  outline: none;
}

textarea {
  resize: vertical;
}

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

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

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

.header {
  position: fixed;
  top: 0;
  left: 0;
  width: 100%;
  z-index: 101;
  transition: all 0.5s ease;
}
@media screen and (max-width: 750px) {
  .header {
    height: 5rem;
  }
}

.header__dropdown {
  position: relative;
}
.header__dropdown:hover .header__submenu, .header__dropdown:focus-within .header__submenu {
  opacity: 1;
  visibility: visible;
  pointer-events: auto;
  transform: translateY(0);
}

.header__link--has-submenu {
  position: relative;
  cursor: pointer;
}

.header__submenu {
  position: absolute;
  top: 100%;
  left: -0.75rem;
  min-width: 16.25rem;
  opacity: 0;
  visibility: hidden;
  pointer-events: none;
  transform: translateY(0.9375rem);
  transition: opacity 0.35s cubic-bezier(0.4, 0, 0.2, 1), transform 0.35s cubic-bezier(0.4, 0, 0.2, 1), visibility 0.3s;
  z-index: 10;
  padding: 0.75rem 0;
  border-radius: 0.5rem;
}

.header__submenu-item {
  width: 100%;
  padding: 0 0.75rem;
}

.header__submenu-link {
  display: block;
  width: 100%;
  color: var(--color-white);
  text-decoration: none;
  padding: 0.625rem 0;
  transition: background-color 0.3s, color 0.3s;
}
.header__submenu-link:hover, .header__submenu-link:focus {
  color: var(--color-primary);
}

.header.is-active {
  background-color: var(--color-white);
}
.header.is-active .header__logo {
  background-image: url(../images/header-logo-green.png);
  aspect-ratio: 342/103;
}
.header.is-active .header__link {
  color: var(--color-text);
}
.header.is-active .header__link:hover {
  opacity: 1;
  color: var(--color-primary);
}
.header.is-active .header__sns-link--instagram {
  background-image: url("../images/icon/instagram-icon-black.svg");
}
.header.is-active .header__sns-link--youtube {
  background-image: url("../images/icon/youtube-icon-black.svg");
}
.header.is-active .header__cta {
  background-color: var(--color-primary);
  border: 1px solid var(--color-primary);
}
.header.is-active .header__hamburger-line {
  background-color: var(--color-primary);
}
.header.is-active .header__submenu {
  background-color: var(--color-white);
}
.header.is-active .header__submenu .header__submenu-link {
  color: var(--color-text);
}
.header.is-active .header__submenu .header__submenu-link:hover, .header.is-active .header__submenu .header__submenu-link:focus {
  color: var(--color-primary);
}

.header__inner {
  display: flex;
  align-items: center;
  padding: 0.75rem 2.5rem;
  height: inherit;
}
@media screen and (max-width: 1440px) {
  .header__inner {
    padding: 0.5rem 1rem;
  }
}
.header__title {
  display: flex;
  align-items: center;
  margin-right: auto;
  height: inherit;
  z-index: 101;
}

.header__logo {
  background-image: url(../images/header-logo-w.png);
  background-repeat: no-repeat;
  background-size: contain;
  width: 17.875rem;
  aspect-ratio: 286/79;
  transition: background-image 0.3s ease;
}
@media screen and (max-width: 1024px) {
  .header__logo {
    width: 13.75rem;
  }
}
@media screen and (max-width: 750px) {
  .header__logo {
    background-image: url(../images/header-logo-w-sp.png);
    width: clamp(6.875rem, 4.084rem + 13.95vw, 10.625rem);
    aspect-ratio: 342/103;
  }
}

.header__logo.is-drawer-active {
  background-image: url(../images/header-logo-green.png);
}

.header__top {
  display: flex;
  justify-content: flex-end;
  align-items: center;
  gap: 2.5rem;
}
@media screen and (max-width: 750px) {
  .header__top {
    display: none;
  }
}

.header__sns-list {
  display: flex;
  align-items: center;
  gap: 1.5rem;
}

.header__sns-link {
  display: block;
  background-size: contain;
  background-repeat: no-repeat;
}
.header__sns-link--instagram {
  width: 1.5rem;
  height: 1.5rem;
  background-image: url("../images/icon/instagram-icon-w.svg");
}
.header__sns-link--youtube {
  width: 1.75rem;
  height: 1.25rem;
  background-image: url("../images/icon/youtube-icon-w.svg");
}

.header__cta {
  display: flex;
  align-items: center;
  padding: 0.625rem 2rem;
  gap: 0.5rem;
  border: 1px solid var(--color-white);
  border-radius: 9999px;
  color: var(--color-white);
}

.header__cta-icon {
  background-image: url("../images/icon/mail-icon-w.svg");
  background-size: contain;
  background-repeat: no-repeat;
  width: 1rem;
  height: 0.8125rem;
}

.header__cta-text {
  font-family: var(--font-shippori-mincho);
  font-size: 0.875rem;
  font-weight: 600;
  line-height: 1.5;
  letter-spacing: 0.05em;
}
@media screen and (max-width: 750px) {
  .header__cta-text {
    font-size: 3.2vw;
  }
}

.header__bottom {
  margin-top: 1rem;
}

.header__items {
  display: flex;
  align-items: center;
  height: inherit;
  flex-wrap: wrap;
  -moz-column-gap: 2.25rem;
       column-gap: 2.25rem;
  margin-left: 1.875rem;
}

.header__item {
  height: inherit;
}

.header__link {
  font-family: var(--font-shippori-mincho);
  font-size: 0.9375rem;
  font-weight: 500;
  color: var(--color-white);
  display: flex;
  align-items: center;
  height: inherit;
  transition: all 0.3s ease;
}
@media screen and (max-width: 750px) {
  .header__link {
    font-size: 3.3333333333vw;
  }
}
.header__link:hover {
  opacity: 1;
  color: var(--color-primary);
}

.header__hamburger-wrap {
  display: none;
  width: 2.5rem;
  aspect-ratio: 1/1;
  z-index: 101;
}
@media screen and (max-width: 750px) {
  .header__hamburger-wrap {
    display: flex;
    align-items: center;
    justify-content: center;
  }
}

.header__hamburger {
  display: flex;
  flex-direction: column;
  width: 100%;
  height: 100%;
  align-items: center;
  justify-content: center;
  border: none;
  background: none;
  padding: 0;
  cursor: pointer;
}

.header__hamburger-lines {
  display: flex;
  flex-direction: column;
  justify-content: space-between;
  width: 1.625rem;
  height: 1.1875rem;
}

.header__hamburger-line {
  display: block;
  width: 100%;
  height: 2px;
  background-color: var(--color-white);
  transition: all 0.3s;
}

.header__hamburger.is-active .header__hamburger-line:first-child {
  transform: translateY(9px) rotate(45deg);
  background-color: var(--color-primary);
}

.header__hamburger.is-active .header__hamburger-line:nth-child(2) {
  opacity: 0;
}

.header__hamburger.is-active .header__hamburger-line:last-child {
  transform: translateY(-9px) rotate(-45deg);
  background-color: var(--color-primary);
}

.drawer {
  position: fixed;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  max-height: 100vh;
  overflow-y: auto;
  -webkit-overflow-scrolling: touch;
  background-image: url(../images/bg-primary.jpg);
  background-repeat: no-repeat;
  background-size: cover;
  background-position: top center;
  opacity: 0;
  visibility: hidden;
  transition: opacity 0.3s ease, visibility 0.3s ease;
  padding: 7.5rem 1.5625rem 6.25rem;
  z-index: 100;
  pointer-events: none;
}

.drawer.is-active {
  opacity: 1;
  visibility: visible;
  pointer-events: auto;
}

.drawer__items {
  list-style: none;
  padding: 0;
  margin: 0 auto;
}

.drawer__link {
  font-family: var(--font-noto-serif-jp);
  font-size: 1rem;
  line-height: 1.5;
  font-weight: 600;
  color: var(--color-text);
  display: flex;
  align-items: center;
  height: inherit;
  margin-top: 2rem;
}
@media screen and (max-width: 750px) {
  .drawer__link {
    font-size: 3.4666666667vw;
  }
}

.drawer__item a:hover {
  opacity: 1;
  color: var(--color-primary);
}

.drawer__submenu {
  margin-top: 0.9375rem;
  padding-left: 1.875rem;
}

.drawer__submenu-item .drawer__link {
  margin-top: 0.9375rem;
}

.drawer__sns {
  margin-top: 2rem;
}

.drawer__sns-text {
  font-size: 0.75rem;
  font-weight: 600;
  line-height: 1.5;
  letter-spacing: 0.05em;
}
@media screen and (max-width: 750px) {
  .drawer__sns-text {
    font-size: 2.9333333333vw;
  }
}

.drawer__sns-nav {
  margin-top: 0.75rem;
}

.drawer__sns-list {
  display: flex;
  justify-content: flex-start;
  align-items: center;
  gap: 1.5rem;
}

.drawer__sns-link {
  display: block;
  background-size: contain;
  background-repeat: no-repeat;
}
.drawer__sns-link--instagram {
  width: 1.5rem;
  height: 1.5rem;
  background-image: url("../images/icon/instagram-icon-black.svg");
}
.drawer__sns-link--youtube {
  width: 1.75rem;
  height: 1.25rem;
  background-image: url("../images/icon/youtube-icon-black.svg");
}

body.is-drawer-active {
  overflow: hidden;
}

/* パンくず */
.breadcrumb {
  padding-top: 1.25rem;
}
.breadcrumb.breadcrumb--work-single {
  padding-top: 8.75rem;
}

.breadcrumb__inner {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  -moz-column-gap: 0.5rem;
  column-gap: 0.5rem;
  font-size: 0.875rem;
  font-weight: 500;
  line-height: 1.4;
  letter-spacing: 0.05em;
  padding: 1rem 5rem 0;
}
@media screen and (max-width: 750px) {
  .breadcrumb__inner {
    padding: 1rem 1.25rem 0;
    font-size: 0.75rem;
    row-gap: 0.5rem;
  }
}
@media screen and (max-width: 430px) {
  .breadcrumb__inner {
    font-size: 0.625rem;
  }
}

.breadcrumb a {
  color: var(--color-text);
}

.breadcrumb .current-item {
  font-weight: 700;
  color: var(--color-primary);
}

.breadcrumb__between::before {
  content: ">";
  color: var(--color-primary);
  display: inline-block;
}

.breadcrumb span[property=name] {
  display: inline-block;
  padding: 0;
  vertical-align: middle;
  overflow: hidden;
  text-overflow: ellipsis;
  text-transform: uppercase;
}

.c-button {
  position: relative;
  width: 100%;
  font-family: var(--font-shippori-mincho);
  font-size: 0.9375rem;
  font-weight: 600;
  line-height: 1.5;
  border: 1px solid var(--color-text);
  color: var(--color-text);
  cursor: pointer;
  text-decoration: none;
  padding: 0.75rem 2rem;
  border-radius: 62.4375rem;
  display: flex;
  align-items: center;
  justify-content: center;
  transition: all 0.3s ease;
}
@media screen and (max-width: 750px) {
  .c-button {
    font-size: 3.3333333333vw;
  }
}
.c-button:hover {
  opacity: 1;
  color: var(--color-white);
  background-color: var(--color-text);
}
.c-button:hover .c-button__arrow {
  background-image: url(../images/icon/right-arrow-w.svg);
}
@media screen and (max-width: 750px) {
  .c-button {
    font-size: 3.6458333333vw;
    line-height: 2.1923076923;
    padding: 0.625rem 0.9375rem;
  }
}
.c-button.c-button--solid {
  border-radius: 0;
  border: unset;
  background-color: var(--color-text);
  color: var(--color-white);
  font-family: var(--font-yumincho);
  font-size: 1.125rem;
  font-weight: 500;
  line-height: 2.2222222222;
  padding: 0.5rem 1.25rem;
}
@media screen and (max-width: 750px) {
  .c-button.c-button--solid {
    font-size: 3.7333333333vw;
  }
}
.c-button.c-button--solid:hover {
  opacity: 0.7;
}
.c-button.c-button--green {
  background-color: var(--color-primary);
}

.c-button__arrow {
  background-image: url(../images/icon/right-arrow-black.svg);
  background-repeat: no-repeat;
  background-size: contain;
  width: 1rem;
  height: 0.6875rem;
  aspect-ratio: 16/11;
  display: flex;
  justify-content: center;
  align-items: center;
  margin-left: 0.5rem;
  transition: transform 0.3s ease;
}

.c-table {
  border-collapse: collapse;
  width: 100%;
}

.c-table__row:not(:last-child) {
  border-bottom: 1px dotted #AAAAAA;
}

.c-table__head,
.c-table__data {
  font-family: var(--font-shippori-mincho);
  letter-spacing: 0.1em;
  line-height: 1.8;
}

.c-table__head {
  width: 203px;
  background-color: var(--color-green-leaf);
  color: var(--color-white);
  padding: 0.9375rem 1.5625rem;
  text-align: left;
  vertical-align: middle;
}
@media screen and (max-width: 750px) {
  .c-table__head {
    width: 36%;
    padding: 0.625rem;
  }
}
@media screen and (max-width: 430px) {
  .c-table__head {
    width: 38%;
    padding: 0.4375rem;
  }
}

.c-table__data {
  color: var(--color-black);
  background-color: var(--color-white);
  padding: 0.625rem 1.25rem;
}
@media screen and (max-width: 750px) {
  .c-table__data {
    padding: 0.625rem;
  }
}
@media screen and (max-width: 430px) {
  .c-table__data {
    padding: 0.9375rem 0.625rem;
  }
}
.c-table__data a {
  color: var(--color-text);
}

.c-cat01 svg {
  width: 6.4375rem;
  height: auto;
}
@media screen and (max-width: 750px) {
  .c-cat01 svg {
    width: 13.7333333333vw;
  }
}

.c-cat02 svg {
  width: 9.8125rem;
  height: auto;
}
@media screen and (max-width: 1024px) {
  .c-cat02 svg {
    width: 7.5rem;
  }
}
@media screen and (max-width: 750px) {
  .c-cat02 svg {
    width: 23.4666666667vw;
    aspect-ratio: 88/72;
  }
}

.c-cat03 svg {
  width: 4.6875rem;
  height: auto;
}
@media screen and (max-width: 750px) {
  .c-cat03 svg {
    width: 14.6666666667vw;
  }
}

.c-cat04 svg {
  width: 9.375rem;
  height: auto;
}
@media screen and (max-width: 750px) {
  .c-cat04 svg {
    width: 20vw;
  }
}

.c-cat05 svg {
  width: 9.25rem;
  height: auto;
}
@media screen and (max-width: 750px) {
  .c-cat05 svg {
    width: 19.7333333333vw;
  }
}

.c-cat06 svg {
  width: 6.5625rem;
  height: auto;
}
@media screen and (max-width: 750px) {
  .c-cat06 svg {
    width: 14vw;
  }
}

.c-cat07 svg {
  width: 10.375rem;
  height: auto;
}
@media screen and (max-width: 750px) {
  .c-cat07 svg {
    width: 22.1333333333vw;
  }
}

.c-cat08 svg {
  width: 5.4375rem;
  height: auto;
}
@media screen and (max-width: 1200px) {
  .c-cat08 svg {
    width: 5.8333333333vw;
  }
}
@media screen and (max-width: 750px) {
  .c-cat08 svg {
    width: 11.6vw;
  }
}

.c-cat09 svg {
  width: 7.1875rem;
  height: auto;
}
@media screen and (max-width: 750px) {
  .c-cat09 svg {
    width: 15.3333333333vw;
  }
}

/****************************************/
/****************************************/
.footer {
  padding: 5rem 0 2.5rem;
}

.footer__top {
  display: flex;
  justify-content: space-between;
  align-items: flex-end;
  gap: 1.25rem;
}
@media screen and (max-width: 750px) {
  .footer__top {
    flex-direction: column;
    align-items: center;
  }
}

.footer__company-info {
  display: flex;
  align-items: flex-end;
  gap: 2.5rem;
}
@media screen and (max-width: 750px) {
  .footer__company-info {
    flex-direction: column;
    align-items: center;
  }
}

.footer__company-logo {
  width: 17.6875rem;
  -o-object-fit: contain;
     object-fit: contain;
  aspect-ratio: 283/63;
}

.footer__company-address {
  color: var(--color-primary);
  font-size: 0.875rem;
  font-weight: 500;
  line-height: 1.5;
  letter-spacing: 0.05em;
}
@media screen and (max-width: 750px) {
  .footer__company-address {
    font-size: 3.2vw;
  }
}

.footer__sns-list {
  display: flex;
  align-items: center;
  gap: 1.5rem;
}

.footer__sns-link {
  display: block;
  background-size: contain;
  background-repeat: no-repeat;
}
.footer__sns-link--instagram {
  width: 2rem;
  height: 2rem;
  background-image: url("../images/icon/instagram-icon-green.svg");
}
.footer__sns-link--youtube {
  width: 2rem;
  height: 1.375rem;
  background-image: url("../images/icon/youtube-icon-green.svg");
}

.footer__bottom {
  margin-top: 4.5rem;
}

.footer__nav-list {
  display: flex;
  justify-content: center;
  flex-wrap: wrap;
  row-gap: 0.9375rem;
  width: 100%;
}
@media screen and (max-width: 750px) {
  .footer__nav-list {
    flex-direction: column;
    padding: 0 3.125rem;
    row-gap: 1.5625rem;
  }
}

.footer__item {
  position: relative;
  padding: 0 2.25rem;
}
@media screen and (max-width: 750px) {
  .footer__item {
    padding: 0;
  }
}
.footer__item::before {
  content: "|";
  position: absolute;
  top: 50%;
  left: 0;
  transform: translateY(-50%);
  pointer-events: none;
  font-weight: normal;
  color: var(--color-text);
}
@media screen and (max-width: 750px) {
  .footer__item::before {
    content: "";
  }
}

.footer__item:last-child::after {
  content: "|";
  position: absolute;
  top: 50%;
  right: 0;
  transform: translateY(-50%);
  font-weight: normal;
  color: var(--color-text);
}
@media screen and (max-width: 750px) {
  .footer__item:last-child::after {
    content: "";
  }
}

.footer__item-link {
  position: relative;
  display: inline-block;
  font-family: var(--font-shippori-mincho);
  font-size: 0.9375rem;
  font-weight: 600;
  line-height: 1.5;
  letter-spacing: 0.05em;
  color: var(--color-text);
  z-index: 11;
}
@media screen and (max-width: 750px) {
  .footer__item-link {
    font-size: 3.3333333333vw;
  }
}

.footer__dropdown {
  position: relative;
}
.footer__dropdown:hover .footer__submenu, .footer__dropdown:focus-within .footer__submenu {
  opacity: 1;
  visibility: visible;
  pointer-events: auto;
  transform: translateY(0);
}

.footer__link--has-submenu {
  position: relative;
  cursor: pointer;
}

.footer__submenu {
  position: absolute;
  top: 100%;
  left: -0.75rem;
  min-width: 16.25rem;
  opacity: 0;
  visibility: hidden;
  pointer-events: none;
  transform: translateY(0.9375rem);
  transition: opacity 0.35s cubic-bezier(0.4, 0, 0.2, 1), transform 0.35s cubic-bezier(0.4, 0, 0.2, 1), visibility 0.3s;
  padding: 0.75rem 0;
}
@media screen and (max-width: 750px) {
  .footer__submenu {
    position: relative;
    opacity: 1;
    left: unset;
    visibility: visible;
    padding: 0 0 0 1.875rem;
    transform: none;
    transition: none;
    pointer-events: auto;
  }
}

.footer__submenu-item {
  position: relative;
  width: 100%;
  padding: 0.625rem 0;
  z-index: 11;
}

.footer__copyright {
  display: block;
  width: 100%;
  padding: 1.25rem 0;
  text-align: right;
  color: var(--color-primary);
  font-size: 0.875rem;
  font-weight: 500;
  line-height: 1.5;
  letter-spacing: 0.05em;
  margin-top: 6.25rem;
}
@media screen and (max-width: 750px) {
  .footer__copyright {
    font-size: 3.2vw;
  }
}
@media screen and (max-width: 750px) {
  .footer__copyright {
    margin-top: 3.75rem;
    padding-bottom: 2.5rem;
    text-align: center;
  }
}

/****************************************/
/****************************************/
.page-top {
  display: block;
  position: fixed;
  bottom: -100px;
  right: 40px;
  background-color: var(--color-secondly);
  cursor: pointer;
  opacity: 0;
  width: 3.5rem;
  height: 3.5rem;
  border-radius: 50%;
  z-index: 10;
  transition: opacity 0.5s ease, bottom 0.5s ease;
}
@media screen and (max-width: 750px) {
  .page-top {
    width: 2.5rem;
    height: 2.5rem;
    right: 4%;
  }
}
.page-top:hover {
  opacity: 0.7;
}

.page-top::after {
  content: "";
  position: absolute;
  top: 50%;
  left: 50%;
  background-image: url(../images/icon/top-arrow-w.svg);
  background-repeat: no-repeat;
  background-size: contain;
  height: 1.25rem;
  width: 0.875rem;
  transform: translate(-50%, -50%);
}

.page-top.active {
  bottom: 3rem;
  opacity: 1;
}
@media screen and (max-width: 750px) {
  .page-top.active {
    bottom: 5rem;
  }
}

/****************************************/
/****************************************/
.fixed-sp-menu {
  position: fixed;
  width: 100%;
  bottom: 0px;
  background-color: var(--color-primary);
  display: none;
  z-index: 105;
  text-align: center;
  transition: display 0.3s ease;
}
@media screen and (max-width: 750px) {
  .fixed-sp-menu {
    display: block;
  }
}
.fixed-sp-menu .fixed-sp-menu__items {
  display: flex;
  align-items: stretch;
  list-style: none;
  padding: 0;
  margin: 0;
  width: 100%;
}
.fixed-sp-menu .fixed-sp-menu__item {
  width: 33.3vw;
  padding: 1rem 1.25rem;
}
.fixed-sp-menu .fixed-sp-menu__item .fixed-sp-menu__icon {
  background-repeat: no-repeat;
  background-size: contain;
}
.fixed-sp-menu .fixed-sp-menu__item.fixed-sp-menu__item--service-document {
  background-color: var(--color-primary);
}
.fixed-sp-menu .fixed-sp-menu__item.fixed-sp-menu__item--service-document .fixed-sp-menu__icon {
  background-image: url(../images/icon/book-icon-w.svg);
  width: 4.2666666667vw;
  aspect-ratio: 8/7;
}
.fixed-sp-menu .fixed-sp-menu__item.fixed-sp-menu__item--contact {
  background-color: var(--color-secondly);
}
.fixed-sp-menu .fixed-sp-menu__item.fixed-sp-menu__item--contact .fixed-sp-menu__icon {
  background-image: url(../images/icon/mail-icon-w.svg);
  width: 4vw;
  aspect-ratio: 15/12;
}
.fixed-sp-menu .fixed-sp-menu__item.fixed-sp-menu__item--tel {
  background-color: var(--color-text);
}
.fixed-sp-menu .fixed-sp-menu__item.fixed-sp-menu__item--tel .fixed-sp-menu__icon {
  background-image: url(../images/icon/tel-icon-w.svg);
  width: 4.8vw;
  aspect-ratio: 1/1;
}
@media screen and (max-width: 430px) {
  .fixed-sp-menu .fixed-sp-menu__item {
    padding: 0.75rem 0.9375rem;
  }
}
.fixed-sp-menu .fixed-sp-menu__link {
  text-align: center;
  display: flex;
  justify-content: center;
  align-items: center;
  gap: 0.25rem;
  width: 100%;
  color: var(--color-white);
}
@media screen and (max-width: 430px) {
  .fixed-sp-menu .fixed-sp-menu__link {
    gap: 0.1875rem;
  }
}
.fixed-sp-menu .fixed-sp-menu__text {
  font-size: 0.75rem;
  font-weight: 600;
  line-height: 1.5;
  letter-spacing: 0.05em;
}
@media screen and (max-width: 750px) {
  .fixed-sp-menu .fixed-sp-menu__text {
    font-size: 2.9333333333vw;
  }
}

.fixed-side-menu {
  position: fixed;
  bottom: 15vh;
  right: 0;
  width: 160px;
  z-index: 10;
  transform: translateY(0) translateX(0);
}
@media screen and (max-width: 750px) {
  .fixed-side-menu {
    display: none;
    top: auto;
    bottom: 0;
    left: 0;
    width: 100%;
    transform: none;
  }
}

@media screen and (max-width: 750px) {
  .fixed-side-menu.active {
    display: block;
    position: -webkit-sticky;
    position: sticky;
    transform: none;
    padding: 0 0.5rem;
  }
}

.fixed-side-menu__buttons {
  display: flex;
  justify-content: center;
  flex-direction: column;
  gap: 0.5rem;
}

.fixed-side-menu__icon {
  background-repeat: no-repeat;
  background-size: contain;
}

.fixed-side-menu__button {
  position: relative;
  display: flex;
  align-items: center;
  justify-content: flex-start;
  gap: 0.5rem;
  padding: 1rem;
  font-size: 0.875rem;
  line-height: 1.5;
  letter-spacing: 0.05em;
  font-weight: 700;
  color: var(--color-white);
  line-height: 1;
}
@media screen and (max-width: 750px) {
  .fixed-side-menu__button {
    font-size: 3.2vw;
  }
}
.fixed-side-menu__button.fixed-side-menu__button--service-document {
  background-color: var(--color-primary);
}
.fixed-side-menu__button.fixed-side-menu__button--service-document .fixed-side-menu__icon {
  background-image: url(../images/icon/book-icon-w.svg);
  width: 1.125rem;
  height: 0.9375rem;
}
.fixed-side-menu__button.fixed-side-menu__button--contact {
  background-color: var(--color-secondly);
}
.fixed-side-menu__button.fixed-side-menu__button--contact .fixed-side-menu__icon {
  background-image: url(../images/icon/mail-icon-w.svg);
  width: 1rem;
  height: 0.8125rem;
}
.fixed-side-menu__button.fixed-side-menu__button--tel {
  background-color: var(--color-text);
}
.fixed-side-menu__button.fixed-side-menu__button--tel .fixed-side-menu__icon {
  background-image: url(../images/icon/tel-icon-w.svg);
  width: 0.75rem;
  height: 0.75rem;
}
@media screen and (max-width: 1440px) {
  .fixed-side-menu__button {
    height: -webkit-fit-content;
    height: -moz-fit-content;
    height: fit-content;
  }
}
@media (min-width: 769px) and (max-height: 560px) {
  .fixed-side-menu__button {
    font-size: 0.75rem;
    padding: 0.625rem 0.5rem 0.625rem 0.75rem;
  }
}

/* ページネーション */
.pagination {
  margin-top: 3.4375rem;
}

.nav-links {
  display: flex;
  justify-content: center;
  gap: 0.75rem;
}

.pagination__arrow {
  color: var(--color-green-leaf);
}

.page-numbers {
  font-family: var(--font-shippori-mincho);
  display: flex;
  align-items: center;
  justify-content: center;
  width: 2.75rem;
  height: 2.75rem;
  color: var(--color-green-leaf);
  border: 1px solid var(--color-green-leaf);
  font-weight: 500;
  transition: all 0.3s ease;
}

.page-numbers:hover {
  opacity: 1;
  background-color: var(--color-green-leaf);
  color: var(--color-white);
}

.page-numbers.current {
  color: var(--color-white);
  background-color: var(--color-green-leaf);
}

.page-numbers.dots,
.page-numbers.prev,
.page-numbers.next {
  border: none;
  background-color: transparent;
}

/****************************************/
/****************************************/
.top-mv {
  position: relative;
  overflow: hidden;
}

/* PC */
.top-mv__video {
  width: 100%;
  position: static;
  height: auto;
  aspect-ratio: 16/9;
  -o-object-fit: contain;
     object-fit: contain;
}

.top-mv__inner {
  max-width: 1200px;
  margin-inline: auto;
  height: inherit;
}

.top-mv__content {
  position: absolute;
  content: "";
  left: 3.75rem;
  bottom: 3.75rem;
  z-index: 5;
}
@media screen and (max-width: 750px) {
  .top-mv__content {
    padding: 0 1.25rem;
  }
}

.top-mv__title {
  display: flex;
  justify-content: flex-start;
  align-items: flex-start;
  gap: 0.5rem;
}

.top-mv__title-text {
  width: -moz-fit-content;
  width: -webkit-fit-content;
  width: fit-content;
  font-family: var(--font-shippori-mincho);
  font-size: 2rem;
  font-weight: 600;
  line-height: 1.45;
  color: var(--color-white);
}
@media screen and (max-width: 750px) {
  .top-mv__title-text {
    font-size: 5.6vw;
  }
}

/****************************************/
/****************************************/
.top-about__cat01,
.top-about__cat02,
.top-about__cat03 {
  opacity: 0;
  transition: opacity 1.2s ease;
}
.top-about__cat01.is-active,
.top-about__cat02.is-active,
.top-about__cat03.is-active {
  opacity: 1;
}

.top-about {
  position: relative;
  padding: 10rem 0 15rem;
}
@media screen and (max-width: 750px) {
  .top-about {
    padding: 5rem 0;
  }
}

.top-about__top {
  position: relative;
  display: flex;
  justify-content: flex-end;
  margin: 0 auto;
}
@media screen and (max-width: 750px) {
  .top-about__top {
    flex-direction: column;
  }
}

.top-about__cat01 {
  position: absolute;
  top: -5.75rem;
  left: 1.875rem;
}
@media screen and (max-width: 750px) {
  .top-about__cat01 {
    top: -12.5333333333vw;
  }
}

.top-about__top-img-wrap {
  max-width: 55%;
  width: 100%;
  pointer-events: none;
}
@media screen and (max-width: 750px) {
  .top-about__top-img-wrap {
    position: relative;
    max-width: 95%;
    top: 0;
    transform: none;
  }
}

.top-about__top-content {
  position: relative;
  max-width: 45%;
  width: 100%;
  padding-left: 9rem;
  margin-top: 2.1875rem;
}
@media screen and (max-width: 1200px) {
  .top-about__top-content {
    padding-left: clamp(3.125rem, -4.681rem + 16.24vw, 7.5rem);
  }
}
@media screen and (max-width: 750px) {
  .top-about__top-content {
    max-width: 100%;
    padding-left: 0;
    margin-top: 3.25rem;
  }
}

.top-about__title-en {
  font-family: var(--font-shippori-mincho);
  font-size: 2rem;
  font-weight: 600;
  display: flex;
  justify-content: flex-end;
  align-items: flex-start;
  flex-direction: row-reverse;
  gap: 1.25rem;
}
@media screen and (max-width: 1200px) {
  .top-about__title-en {
    font-size: clamp(1.375rem, 0.539rem + 1.78vw, 1.875rem);
  }
}
@media screen and (max-width: 750px) {
  .top-about__title-en {
    font-size: 2rem;
    justify-content: center;
    gap: 0.5rem;
  }
}
@media screen and (max-width: 750px) and (max-width: 750px) {
  .top-about__title-en {
    font-size: 5.6vw;
  }
}

.top-about__bottom {
  position: relative;
  display: flex;
  justify-content: space-between;
  padding-left: 7.3125rem;
  padding-right: 5.1875rem;
  margin-top: 5rem;
  gap: 8rem;
}
@media screen and (max-width: 1200px) {
  .top-about__bottom {
    gap: clamp(3.75rem, -3.359rem + 15.14vw, 8rem);
    padding-left: clamp(1.25rem, -0.527rem + 3.79vw, 2.313rem);
    padding-right: clamp(1.125rem, -0.652rem + 3.79vw, 2.188rem);
  }
}
@media screen and (max-width: 750px) {
  .top-about__bottom {
    flex-direction: column;
    margin-inline: auto;
    text-align: center;
    padding-left: 0;
    padding-right: 0;
    gap: clamp(6.25rem, -2.5rem + 37.33vw, 15rem);
  }
}

.top-about__cat02 {
  position: absolute;
  bottom: -6.25rem;
  left: 3.125rem;
}
@media screen and (max-width: 1200px) {
  .top-about__cat02 {
    left: clamp(0.313rem, -4.392rem + 10.02vw, 3.125rem);
  }
}
@media screen and (max-width: 750px) {
  .top-about__cat02 {
    left: unset;
    right: 1.5625rem;
    bottom: -3.125rem;
  }
}

.top-about__bottom-content {
  position: relative;
  flex: 1;
  width: 100%;
  max-width: 44.75rem;
}
@media screen and (max-width: 750px) {
  .top-about__bottom-content {
    width: 81%;
    padding-left: 0;
    margin-inline: auto;
    margin-top: 3.125rem;
  }
}

.top-about__bottom-img-wrap {
  position: relative;
  width: 32%;
  pointer-events: none;
  margin-top: 4.625rem;
  flex-shrink: 0;
}
@media screen and (max-width: 750px) {
  .top-about__bottom-img-wrap {
    z-index: 1;
    width: 73%;
    margin-left: auto;
  }
}

.top-about__cat03 {
  position: absolute;
  top: -5.25rem;
  right: 6.25rem;
}
@media screen and (max-width: 750px) {
  .top-about__cat03 {
    top: -16.5333333333vw;
    right: 1.5625rem;
  }
}

.top-about__bottom-text {
  font-size: 1.125rem;
  font-weight: 500;
  line-height: 2.5;
  letter-spacing: 0.05em;
}
@media screen and (max-width: 750px) {
  .top-about__bottom-text {
    font-size: 3.7333333333vw;
  }
}
@media screen and (max-width: 1200px) {
  .top-about__bottom-text {
    font-size: 1rem;
  }
}
@media screen and (max-width: 1200px) and (max-width: 750px) {
  .top-about__bottom-text {
    font-size: 3.4666666667vw;
  }
}
@media screen and (max-width: 750px) {
  .top-about__bottom-text {
    font-size: 1.125rem;
    line-height: 2.2;
  }
}
@media screen and (max-width: 750px) and (max-width: 750px) {
  .top-about__bottom-text {
    font-size: 3.7333333333vw;
  }
}

.top-about__bottom-button {
  max-width: 13.625rem;
  margin-left: auto;
  margin-top: 2.5rem;
}
@media screen and (max-width: 750px) {
  .top-about__bottom-button {
    max-width: 55%;
    margin-right: auto;
    margin-top: 2rem;
  }
}
@media screen and (max-width: 430px) {
  .top-about__bottom-button {
    max-width: 80%;
  }
}

.top-about__map {
  position: absolute;
  content: "";
  background-image: url(../images/top/top-about-map.png);
  background-repeat: no-repeat;
  background-size: cover;
  background-position: top center;
  width: 38.125rem;
  -o-object-fit: contain;
     object-fit: contain;
  aspect-ratio: 305/178;
  bottom: 4.5rem;
  left: 0;
}
@media screen and (max-width: 1200px) {
  .top-about__map {
    width: clamp(23.75rem, -0.294rem + 51.22vw, 38.125rem);
  }
}
@media screen and (max-width: 750px) {
  .top-about__map {
    bottom: clamp(13rem, 6rem + 29.87vw, 20rem);
    width: 52%;
    aspect-ratio: 183/206;
    background-image: url(../images/top/top-about-map-sp.png);
  }
}

.top-parallax-01 {
  height: 25.625rem;
}
@media screen and (max-width: 750px) {
  .top-parallax-01 {
    height: 11.25rem;
  }
}

.top-parallax-01::after {
  content: "";
  position: fixed;
  top: 0;
  left: 0;
  z-index: -10;
  width: 100%;
  height: 100vh;
  background: url(../images/top/bg-parallax-01.jpg);
  background-size: cover;
  background-position: center bottom;
  background-repeat: no-repeat;
}
@media screen and (max-width: 750px) {
  .top-parallax-01::after {
    background-size: auto 100%;
  }
}

/****************************************/
/****************************************/
.top-service {
  position: relative;
  padding: 12.5rem 0 0;
}
@media screen and (max-width: 750px) {
  .top-service {
    padding: 5rem 0 0;
  }
}

.top-service__inner {
  max-width: 1440px;
  width: 100%;
  margin: 0 auto;
  padding: 0 1.75rem;
}
@media screen and (max-width: 750px) {
  .top-service__inner {
    padding: 0 1.25rem;
  }
}

.top-service__overview {
  display: flex;
  justify-content: space-between;
  align-items: flex-start;
  gap: 3.125rem;
}
@media screen and (max-width: 750px) {
  .top-service__overview {
    flex-direction: column;
    gap: 2.5rem;
  }
}

.top-service__overview-left {
  width: 37%;
  flex-shrink: 0;
}
@media screen and (max-width: 750px) {
  .top-service__overview-left {
    width: 100%;
  }
}

.top-service__overview-right {
  flex: 1;
}

.top-service__subtitle {
  font-family: var(--font-shippori-mincho);
  font-size: 2rem;
  font-weight: 600;
  line-height: 1.5;
  letter-spacing: 0.05em;
}
@media screen and (max-width: 750px) {
  .top-service__subtitle {
    font-size: 5.6vw;
  }
}

.top-service__text {
  margin-top: 2.5rem;
}

.top-service__cards {
  position: relative;
  display: flex;
  gap: 0.5rem;
  margin-top: 4.8125rem;
}
@media screen and (max-width: 750px) {
  .top-service__cards {
    flex-direction: column;
    gap: 1.25rem;
    margin-top: 6.25rem;
  }
}

.top-service__cat01 {
  position: absolute;
  top: -5rem;
  left: 6.75rem;
}
@media screen and (max-width: 1024px) {
  .top-service__cat01 {
    left: 4%;
  }
}
@media screen and (max-width: 750px) {
  .top-service__cat01 {
    top: -10.6666666667vw;
    left: 2.5rem;
  }
}

.top-service__cat01 {
  opacity: 0;
  transition: opacity 1.2s ease;
}
.top-service__cat01.is-active {
  opacity: 1;
}

.top-service__card {
  position: relative;
  overflow: hidden;
  isolation: isolate;
  flex: 0 1 calc((100% - min(0.5555555556vw, 8px) * 2) / 3);
  display: flex;
  flex-direction: column;
  align-items: center;
  padding: 4.375rem 3.125rem;
  min-height: 38rem;
  text-decoration: none;
}
@media screen and (max-width: 1024px) {
  .top-service__card {
    padding: 3.125rem 1.25rem;
  }
}
@media screen and (max-width: 750px) {
  .top-service__card {
    flex: 0 1 100%;
    justify-content: center;
    padding: 0.9375rem 2.5rem;
    min-height: 12.5rem;
  }
}
.top-service__card::before {
  content: "";
  position: absolute;
  inset: 0;
  background-size: cover;
  background-position: center;
  background-repeat: no-repeat;
  transition: transform 0.6s ease;
  z-index: 0;
}
.top-service__card:hover::before {
  transform: scale(1.1);
}
.top-service__card > * {
  position: relative;
  z-index: 1;
}
.top-service__card.top-service__card--newly-built::before {
  background-image: url(../images/top/top-service-01.png);
}
.top-service__card.top-service__card--kominka::before {
  background-image: url(../images/top/top-service-02.png);
}
.top-service__card.top-service__card--reform::before {
  background-image: url(../images/top/top-service-03.png);
}

.top-service__card-number {
  font-family: var(--font-eb-garamond);
  font-size: 1rem;
  color: var(--color-white);
}
@media screen and (max-width: 750px) {
  .top-service__card-number {
    font-size: 3.4666666667vw;
  }
}
@media screen and (max-width: 750px) {
  .top-service__card-number {
    font-size: 0.875rem;
  }
}
@media screen and (max-width: 750px) and (max-width: 750px) {
  .top-service__card-number {
    font-size: 3.2vw;
  }
}

.top-service__card-title {
  font-family: var(--font-shippori-mincho);
  font-size: 2rem;
  color: var(--color-white);
  font-weight: 600;
  letter-spacing: 0.25em;
  margin-top: 0.75rem;
}
@media screen and (max-width: 750px) {
  .top-service__card-title {
    font-size: 5.6vw;
  }
}
@media screen and (max-width: 750px) {
  .top-service__card-title {
    writing-mode: horizontal-tb;
    font-size: 1.5rem;
  }
}
@media screen and (max-width: 750px) and (max-width: 750px) {
  .top-service__card-title {
    font-size: 4.5333333333vw;
  }
}

.top-service__card-text {
  margin-top: auto;
  font-size: 0.9375rem;
  line-height: 1.8;
  font-weight: 500;
  color: var(--color-white);
  text-align: center;
}
@media screen and (max-width: 750px) {
  .top-service__card-text {
    font-size: 3.3333333333vw;
  }
}
@media screen and (max-width: 750px) {
  .top-service__card-text {
    margin-top: 1.25rem;
    font-size: 0.625rem;
  }
}
@media screen and (max-width: 750px) and (max-width: 750px) {
  .top-service__card-text {
    font-size: 2.6666666667vw;
  }
}

.top-service__card-title-offset {
  display: inline-block;
}

/****************************************/
/****************************************/
.top-work {
  position: relative;
  padding: 12.5rem 0 0;
}
@media screen and (max-width: 750px) {
  .top-work {
    padding: 8.75rem 0 0;
  }
}

.top-work__inner {
  position: relative;
}

.top-work__cat01 {
  position: absolute;
  top: -8.4375rem;
  right: -1.875rem;
}
@media screen and (max-width: 1440px) {
  .top-work__cat01 {
    right: 1.5rem;
  }
}
@media screen and (max-width: 1200px) {
  .top-work__cat01 {
    right: 0.625rem;
  }
}
@media screen and (max-width: 750px) {
  .top-work__cat01 {
    top: -18vw;
    right: 2.5rem;
  }
}

.top-work__cat01 {
  opacity: 0;
  transition: opacity 1.6s ease;
}
.top-work__cat01.is-active {
  opacity: 1;
}

.top-work__content {
  display: flex;
  justify-content: space-between;
  align-items: flex-start;
}
@media screen and (max-width: 750px) {
  .top-work__content {
    flex-direction: column;
    gap: 1.5625rem;
  }
}

.top-work__content-left {
  width: 33.3%;
  flex-shrink: 0;
}
@media screen and (max-width: 750px) {
  .top-work__content-left {
    width: 100%;
  }
}

.top-work__content-right {
  flex: 1;
  min-width: 0;
}

.top-work__button {
  max-width: 10.625rem;
  margin-right: auto;
  margin-top: 1.875rem;
}
@media screen and (max-width: 750px) {
  .top-work__button {
    display: none;
    max-width: 75%;
    margin-left: auto;
  }
}
.top-work__button.top-work__button--sp {
  display: none;
}
@media screen and (max-width: 750px) {
  .top-work__button.top-work__button--sp {
    display: flex;
    margin-top: 3.75rem;
  }
}

.top-work__cards {
  display: grid;
  grid-template-columns: 1fr 1fr;
  -moz-column-gap: 2.5rem;
       column-gap: 2.5rem;
  row-gap: 5rem;
}
@media screen and (max-width: 750px) {
  .top-work__cards {
    display: none;
  }
}

.top-work__card {
  display: flex;
  flex-direction: column;
  height: 100%;
}

.top-work__card-img-wrap {
  width: 100%;
  aspect-ratio: 1/1;
  overflow: hidden;
  display: block;
}
@media screen and (max-width: 750px) {
  .top-work__card-img-wrap {
    aspect-ratio: 16/9;
    padding-bottom: 1.25rem;
  }
}

.top-work__card-img {
  width: 100%;
  height: 100%;
  -o-object-fit: cover;
     object-fit: cover;
  transition: transform 0.5s ease;
}
.top-work__card-img:hover {
  transform: scale(1.1);
}

.top-work__swiper {
  display: none !important;
  width: 100%;
  min-width: 0;
}
@media screen and (max-width: 750px) {
  .top-work__swiper {
    display: block !important;
  }
}

.top-work__swiper-wrapper {
  padding-bottom: 3.125rem;
}

.top-work__slide {
  padding-bottom: 1.25rem;
}

.top-work__card-title {
  font-family: var(--font-shippori-mincho);
  font-size: 1.25rem;
  font-weight: 600;
  color: var(--color-text);
  letter-spacing: 0.05em;
  margin-top: 1.25rem;
}
@media screen and (max-width: 750px) {
  .top-work__card-title {
    font-size: 4vw;
  }
}

.top-work__card-category {
  margin-top: 1.25rem;
  display: flex;
  align-items: stretch;
  flex-wrap: wrap;
  -moz-column-gap: 0.5rem;
       column-gap: 0.5rem;
  row-gap: 0.75rem;
}

.top-work__card-category-link {
  font-family: var(--font-shippori-mincho);
  display: inline-block;
  font-size: 0.875rem;
  font-weight: 500;
  line-height: 1.5;
  letter-spacing: 0.05em;
  border: 1px solid var(--color-text);
  color: var(--color-text);
  padding: 0.25rem 0.75rem;
  border-radius: 0.125rem;
  transition: background-color 0.3s ease;
}
@media screen and (max-width: 750px) {
  .top-work__card-category-link {
    font-size: 3.2vw;
  }
}
.top-work__card-category-link:hover {
  opacity: 1;
  background-color: var(--color-text);
  color: var(--color-white);
}

@media screen and (max-width: 750px) {
  .top-work__swiper-pagination {
    margin-top: 5rem;
  }
}

/****************************************/
/****************************************/
.top-official-accounts {
  padding: 12.5rem 0 0;
}
@media screen and (max-width: 750px) {
  .top-official-accounts {
    padding: 8.75rem 0 0;
  }
}

.top-official-accounts__content {
  position: relative;
  border-top: 1px solid var(--color-text);
  border-bottom: 1px solid var(--color-text);
  display: grid;
  grid-template-columns: 1fr 1fr 1fr;
  min-height: 500px;
}
@media screen and (max-width: 750px) {
  .top-official-accounts__content {
    grid-template-columns: 1fr;
  }
}

.top-official-accounts__cat01 {
  position: absolute;
  top: -6.625rem;
  left: 4.1875rem;
}
@media screen and (max-width: 750px) {
  .top-official-accounts__cat01 {
    top: -14.1333333333vw;
  }
}

.top-official-accounts__cat01 {
  opacity: 0;
  transition: opacity 1.2s ease;
}
.top-official-accounts__cat01.is-active {
  opacity: 1;
}

.top-official-accounts__left {
  padding: 2.5rem 2.5rem 2.5rem 7.5rem;
}
@media screen and (max-width: 1200px) {
  .top-official-accounts__left {
    padding: 2.5rem 1.25rem 2.5rem clamp(2.5rem, -3.772rem + 13.36vw, 6.25rem);
  }
}
@media screen and (max-width: 750px) {
  .top-official-accounts__left {
    padding: 1.25rem 1.875rem;
  }
}

.top-official-accounts__box {
  position: relative;
  overflow: hidden;
}

.top-official-accounts__box::before {
  content: "";
  position: absolute;
  inset: 0;
  background-image: url("../images/top/bg-top-official-accounts-instagram-hover.png");
  background-size: cover;
  background-repeat: no-repeat;
  background-position: center;
  opacity: 0;
  transform: translate(-20%, -20%) scale(1.1);
  transition: opacity 0.3s ease, transform 0.3s ease;
  z-index: 0;
}

.top-official-accounts__box:hover::before {
  opacity: 1;
  transform: translate(0, 0) scale(1);
}

.top-official-accounts__center {
  position: relative;
  border-left: 1px solid var(--color-text);
  border-right: 1px solid var(--color-text);
  overflow: hidden;
  padding: 2.5rem 1.875rem;
  display: flex;
  justify-content: space-between;
  align-items: flex-start;
}
@media screen and (max-width: 750px) {
  .top-official-accounts__center {
    border-left: none;
    border-right: none;
    border-top: 1px solid var(--color-text);
    border-bottom: 1px solid var(--color-text);
  }
}

/* ▼ 前面レイヤー */
.top-official-accounts__box > * {
  z-index: 1;
}

/* ▼ 背景（薄いズームフェード推奨） */
.top-official-accounts__box::before {
  content: "";
  position: absolute;
  inset: 0;
  background-size: cover;
  background-repeat: no-repeat;
  background-position: center;
  opacity: 0;
  transform: scale(1.1);
  transition: opacity 0.5s ease, transform 0.5s ease;
  z-index: 0;
}

.top-official-accounts__center::before {
  background-image: url("../images/top/bg-top-official-accounts-instagram-hover.png");
}

.top-official-accounts__right::before {
  background-image: url("../images/top/bg-top-official-accounts-youtube-hover.png");
}

/* ▼ hoverしたらふわっとフェード&微ズームイン */
.top-official-accounts__box:hover::before {
  opacity: 1;
  transform: scale(1);
}

/* =========================================
  ▼ 中のテキスト・アイコンを白に
========================================= */
.top-official-accounts__box:hover .top-official-accounts_sns-name,
.top-official-accounts__box:hover .top-official-accounts_sns-text,
.top-official-accounts__box:hover .top-official-accounts__sns-text,
.top-official-accounts__box:hover .top-official-accounts__sns-text-offset {
  color: var(--color-white);
}

/* ▼ アイコン（SVGの背景画像を白版に） */
.top-official-accounts__box:hover .top-official-accounts__sns-icon--instagram {
  background-image: url("../images/icon/instagram-icon-w.svg");
}

.top-official-accounts__box:hover .top-official-accounts__sns-icon--youtube {
  background-image: url("../images/icon/youtube-icon-w.svg");
}

/* =========================================
  ▼ ボタンの見た目を全て白に
========================================= */
.top-official-accounts__box:hover .top-official-accounts__button-arrow {
  background-image: url("../images/icon/right-arrow-w.svg");
}

.top-official-accounts__box:hover .top-official-accounts__button {
  border-color: var(--color-white);
}
.top-official-accounts__box:hover .top-official-accounts__button:hover {
  background-color: transparent;
}

.top-official-accounts__center,
.top-official-accounts__right {
  padding: 2.5rem 1.875rem;
  display: flex;
  justify-content: space-between;
  align-items: flex-start;
}
@media screen and (max-width: 750px) {
  .top-official-accounts__center,
.top-official-accounts__right {
    padding: 1.25rem 1.5625rem;
  }
}

.top-official-accounts__sns-name {
  display: flex;
  align-items: center;
  gap: 0.625rem;
  z-index: 1;
}

.top-official-accounts__sns-icon {
  background-size: contain;
  background-repeat: no-repeat;
}
.top-official-accounts__sns-icon.top-official-accounts__sns-icon--instagram {
  background-image: url(../images/icon/instagram-icon-black.svg);
  width: 1.6875rem;
  height: 1.6875rem;
  aspect-ratio: 1/1;
}
.top-official-accounts__sns-icon.top-official-accounts__sns-icon--youtube {
  background-image: url(../images/icon/youtube-icon-black.svg);
  width: 1.75rem;
  height: 1.25rem;
  aspect-ratio: 7/5;
}

.top-official-accounts__sns-text {
  font-size: 1.25rem;
  font-weight: 700;
  line-height: 2.2;
  letter-spacing: 0.05em;
  text-transform: capitalize;
}
@media screen and (max-width: 750px) {
  .top-official-accounts__sns-text {
    font-size: 4vw;
  }
}

.top-official-accounts__sns-body {
  display: flex;
  flex-direction: column;
  align-items: center;
}
@media screen and (max-width: 750px) {
  .top-official-accounts__sns-body {
    width: 35%;
  }
}

.top-official-accounts__sns-text {
  font-family: var(--font-shippori-mincho);
  font-size: 1.25rem;
  font-weight: 600;
  line-height: 1.6;
}
@media screen and (max-width: 750px) {
  .top-official-accounts__sns-text {
    font-size: 4vw;
  }
}

.top-official-accounts__sns-text-offset {
  display: inline-block;
}
.top-official-accounts__sns-text-offset.top-official-accounts__sns-text-offset--instagram {
  margin-top: 10.4375rem;
}
@media screen and (max-width: 750px) {
  .top-official-accounts__sns-text-offset.top-official-accounts__sns-text-offset--instagram {
    margin-top: 6.875rem;
  }
}
.top-official-accounts__sns-text-offset.top-official-accounts__sns-text-offset--youtube {
  margin-top: 15rem;
}
@media screen and (max-width: 750px) {
  .top-official-accounts__sns-text-offset.top-official-accounts__sns-text-offset--youtube {
    margin-top: 11.25rem;
  }
}

.top-official-accounts__button {
  position: absolute;
  right: 1.4375rem;
  bottom: 1.4375rem;
  max-width: 5.25rem;
}
@media screen and (max-width: 750px) {
  .top-official-accounts__button {
    position: unset;
    right: unset;
    bottom: unset;
    margin-top: 1.25rem;
  }
}

.top-official-accounts__button-arrow {
  margin-left: 0;
}

/****************************************/
/****************************************/
.top-blog {
  padding: 12.5rem 0 0;
}
@media screen and (max-width: 750px) {
  .top-blog {
    padding: 3.125rem 0 0;
  }
}

.top-blog__overview {
  display: flex;
  justify-content: space-between;
  align-items: center;
}
@media screen and (max-width: 750px) {
  .top-blog__overview {
    flex-direction: column;
    gap: 1.5625rem;
  }
}

.top-blog__overview-left {
  width: 50%;
  flex-shrink: 0;
}
@media screen and (max-width: 750px) {
  .top-blog__overview-left {
    width: 100%;
  }
}

.top-blog__overview-right {
  flex: 1;
}
@media screen and (max-width: 750px) {
  .top-blog__overview-right {
    width: 75%;
  }
}

.top-blog__button {
  max-width: 10.625rem;
  margin-left: auto;
}
@media screen and (max-width: 750px) {
  .top-blog__button {
    display: none;
    max-width: 75%;
    margin-right: auto;
  }
}
.top-blog__button.top-blog__button--sp {
  display: none;
}
@media screen and (max-width: 750px) {
  .top-blog__button.top-blog__button--sp {
    display: flex;
    margin-top: 1.25rem;
  }
}

.top-blog__swiper {
  margin-top: 3.5rem;
  padding-bottom: 3.75rem !important;
}
@media screen and (max-width: 750px) {
  .top-blog__swiper {
    margin-top: 1.5625rem;
    padding-bottom: 2.5rem !important;
  }
}

.top-blog__slide-img-wrap {
  width: 100%;
  aspect-ratio: 373/249;
  overflow: hidden;
  display: block;
}

.top-blog__slide-img-img {
  width: 100%;
  height: 100%;
  -o-object-fit: cover;
     object-fit: cover;
  transition: transform 0.5s ease;
}
.top-blog__slide-img-img:hover {
  transform: scale(1.1);
}

.top-blog__slide-link {
  font-family: var(--font-shippori-mincho);
  font-size: 1.125rem;
  font-weight: 600;
  line-height: 1.5;
  letter-spacing: 0.05em;
  color: var(--color-text);
  display: block;
  display: -webkit-box;
  -webkit-line-clamp: 2;
  -webkit-box-orient: vertical;
  overflow: hidden;
  text-overflow: ellipsis;
  margin-top: 0.75rem;
}
@media screen and (max-width: 750px) {
  .top-blog__slide-link {
    font-size: 3.7333333333vw;
  }
}

.top-blog__slide-date {
  display: block;
  font-size: 0.9375rem;
  font-weight: 500;
  line-height: 1.5;
  letter-spacing: 0.03em;
  color: var(--color-dark-gray);
  margin-top: 0.75rem;
}
@media screen and (max-width: 750px) {
  .top-blog__slide-date {
    font-size: 3.3333333333vw;
  }
}

.top-blog__swiper-pagination {
  margin-top: 4.125rem;
}
@media screen and (max-width: 750px) {
  .top-blog__swiper-pagination {
    margin-top: 2.5rem;
  }
}

/* ドットの通常色 */
.top-work__swiper-pagination .swiper-pagination-bullet,
.top-blog__swiper-pagination .swiper-pagination-bullet {
  background-color: rgba(51, 51, 51, 0.3);
  opacity: 1;
}

/* ドットのアクティブ色 */
.top-work__swiper-pagination .swiper-pagination-bullet-active,
.top-blog__swiper-pagination .swiper-pagination-bullet-active {
  background-color: var(--color-text);
}

/****************************************/
/****************************************/
.top-staff {
  padding: 11.5625rem 0 12.5rem;
  overflow: hidden;
}
@media screen and (max-width: 750px) {
  .top-staff {
    padding: 8.75rem 0 5rem;
  }
}

.top-staff__container {
  position: relative;
  display: flex;
  justify-content: flex-start;
  gap: 2.5rem;
  width: 100%;
  max-width: none;
  margin-left: auto;
  margin-right: auto;
  padding-left: 12.5rem;
  padding-right: 0;
}
@media screen and (max-width: 1440px) {
  .top-staff__container {
    padding-left: 7.5rem;
  }
}
@media screen and (max-width: 1200px) {
  .top-staff__container {
    padding-left: 2.5rem;
  }
}
@media screen and (max-width: 750px) {
  .top-staff__container {
    flex-direction: column;
    padding-left: 1.25rem;
    padding-right: 1.25rem;
  }
}

.top-staff__cat01 {
  position: absolute;
  top: -10rem;
  right: 11.5%;
}
@media screen and (max-width: 750px) {
  .top-staff__cat01 {
    top: -18.6666666667vw;
  }
}

.top-staff__cat01 {
  opacity: 0;
  transition: opacity 1.5s ease;
}
.top-staff__cat01.is-active {
  opacity: 1;
}

/* 左ブロックの幅を固定 */
.top-staff__inner {
  width: 31.25rem;
  flex-shrink: 0;
}
@media screen and (max-width: 1440px) {
  .top-staff__inner {
    width: 25rem;
  }
}
@media screen and (max-width: 1200px) {
  .top-staff__inner {
    width: 21.25rem;
  }
}
@media screen and (max-width: 1024px) {
  .top-staff__inner {
    width: 18.75rem;
  }
}
@media screen and (max-width: 750px) {
  .top-staff__inner {
    width: 100%;
  }
}

.top-staff__content {
  display: flex;
  flex-direction: column;
}

.top-staff__right {
  flex: 1;
  overflow: hidden;
}
@media screen and (max-width: 750px) {
  .top-staff__right {
    margin-right: 0;
  }
}

.top-staff__swiper {
  overflow: visible;
}
.top-staff__swiper .swiper-wrapper {
  overflow: visible;
}

.top-staff__text {
  font-size: 1rem;
  font-weight: 500;
  line-height: 1.8;
  letter-spacing: 0.05em;
  margin-top: 3.5rem;
}
@media screen and (max-width: 750px) {
  .top-staff__text {
    font-size: 3.4666666667vw;
  }
}
@media screen and (max-width: 750px) {
  .top-staff__text {
    text-align: center;
  }
}

.top-staff__button {
  max-width: 10.625rem;
  margin-right: auto;
  margin-top: 1.875rem;
}
@media screen and (max-width: 750px) {
  .top-staff__button {
    display: none;
    max-width: 75%;
    margin-left: auto;
  }
}
.top-staff__button.top-staff__button--sp {
  display: none;
}
@media screen and (max-width: 750px) {
  .top-staff__button.top-staff__button--sp {
    display: flex;
    margin-top: 4.6875rem;
  }
}

.top-staff__slide-info {
  display: flex;
  justify-content: space-between;
  align-items: flex-end;
  gap: 0.9375rem;
  margin-top: 0.625rem;
}

.top-staff__slide-info-name {
  font-family: var(--font-shippori-mincho);
  font-size: 1.25rem;
  font-weight: 600;
  line-height: 1.5;
  letter-spacing: 0.05em;
}
@media screen and (max-width: 750px) {
  .top-staff__slide-info-name {
    font-size: 4vw;
  }
}

.top-staff__slide-info-position {
  font-family: var(--font-shippori-mincho);
  font-size: 1rem;
  font-weight: 500;
  line-height: 1.5;
  letter-spacing: 0.05em;
  color: var(--color-dark-gray2);
  margin-top: 0.25rem;
}
@media screen and (max-width: 750px) {
  .top-staff__slide-info-position {
    font-size: 3.4666666667vw;
  }
}

.top-staff__slide-button {
  max-width: 10.625rem;
  margin-right: auto;
  margin-top: 1.875rem;
}
@media screen and (max-width: 1440px) {
  .top-staff__slide-button {
    max-width: clamp(3.75rem, -8.813rem + 16.74vw, 6.25rem);
  }
}
@media screen and (max-width: 1200px) {
  .top-staff__slide-button {
    max-width: 3.125rem;
  }
}
@media screen and (max-width: 750px) {
  .top-staff__slide-button {
    max-width: 100%;
    margin-left: auto;
    margin-top: 0;
  }
}

@media screen and (max-width: 750px) {
  .top-staff__slide-info-left {
    width: 100%;
    text-align: center;
  }
}

.top-staff__slide-info-right {
  flex-shrink: 0;
}

.top-staff__slide-img-wrap {
  aspect-ratio: 320/452;
  position: relative;
  overflow: hidden;
  display: block;
}

.top-staff__slide-img-wrap:hover {
  opacity: 1;
}

.top-staff__slide-img-name {
  position: absolute;
  content: "";
  bottom: 3.125rem;
  left: 1.25rem;
  display: flex;
  flex-direction: column;
  gap: 3.125rem;
  transform: rotate(-2.14deg);
  z-index: 4;
}

.top-staff__slide-img-name span {
  display: block;
  font-family: var(--font-hurricane);
  font-size: 4rem;
  font-weight: 400;
  color: var(--color-white);
  line-height: 0.08;
}
@media screen and (max-width: 1440px) {
  .top-staff__slide-img-name span {
    font-size: 4.4444444444vw;
  }
}
@media screen and (max-width: 750px) {
  .top-staff__slide-img-name span {
    font-size: 12.8vw;
  }
}

/* 重ねる */
.top-staff__front,
.top-staff__back {
  position: absolute;
  width: 100%;
  inset: 0;
}

.top-staff__front {
  z-index: 3;
}

.top-staff__back {
  z-index: 2;
}

/* 初期状態 */
.top-staff__front {
  opacity: 1;
}

.top-staff__back {
  opacity: 0;
}

/* 切替アニメーション */
.top-staff__front,
.top-staff__back {
  transition: opacity 0.4s ease;
}

/* hover切替 */
.top-staff__slide-img-wrap:hover .top-staff__front {
  opacity: 0;
}

.top-staff__slide-img-wrap:hover .top-staff__back {
  opacity: 1;
}

.top-pallarax {
  height: 420px;
  position: relative;
}

.parallax__container {
  clip: rect(0, auto, auto, 0);
  height: 100%;
  left: 0;
  overflow: hidden;
  position: absolute;
  top: 0;
  width: 100%;
  z-index: 0;
}

.parallax__container::before {
  content: "";
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  opacity: 0.2;
  z-index: 1;
  height: 100%;
}

.parallax--bg {
  background-repeat: no-repeat;
  background-position: bottom;
  background-size: cover;
  min-height: 1000px;
}

.top-parallax-02 {
  height: 26.375rem;
}
@media screen and (max-width: 750px) {
  .top-parallax-02 {
    height: 12.5rem;
  }
}

.top-parallax-02::after {
  content: "";
  position: fixed;
  top: 0;
  left: 0;
  z-index: -10;
  width: 100%;
  height: 100vh;
  background: url(../images/top/bg-parallax-02.jpg);
  background-size: cover;
  background-position: center bottom;
  background-repeat: no-repeat;
}
@media screen and (max-width: 750px) {
  .top-parallax-02::after {
    background-size: auto 100%;
  }
}

/****************************************/
/****************************************/
.top-company {
  padding: 12.5rem 0;
}
@media screen and (max-width: 750px) {
  .top-company {
    padding: 5rem 0;
  }
}

.top-company__container {
  position: relative;
  display: flex;
  justify-content: flex-start;
  margin: 0 auto;
}
@media screen and (max-width: 750px) {
  .top-company__container {
    flex-direction: column-reverse;
    gap: 2.5rem;
  }
}

.top-company__img-wrap {
  max-width: 59%;
  width: 100%;
  pointer-events: none;
}
@media screen and (max-width: 750px) {
  .top-company__img-wrap {
    position: relative;
    max-width: 95%;
    top: 0;
    transform: none;
  }
}

.top-company__content {
  position: relative;
  max-width: 30%;
  width: 100%;
  padding-left: 4.8125rem;
  margin-top: 7.5rem;
}
@media screen and (max-width: 1200px) {
  .top-company__content {
    margin-top: clamp(0.938rem, 0.937rem + 0vw, 7.5rem);
  }
}
@media screen and (max-width: 1024px) {
  .top-company__content {
    padding-left: clamp(1.875rem, -5.002rem + 14.65vw, 4.375rem);
  }
}
@media screen and (max-width: 750px) {
  .top-company__content {
    max-width: 100%;
    padding-left: 0;
    margin-top: 3.25rem;
  }
}

.top-company__text {
  margin-top: 3.5rem;
  font-size: 1rem;
  font-weight: 500;
  line-height: 1.8;
  letter-spacing: 0.05em;
}
@media screen and (max-width: 750px) {
  .top-company__text {
    font-size: 3.4666666667vw;
  }
}
@media screen and (max-width: 1024px) {
  .top-company__text {
    margin-top: 1.25rem;
  }
}
@media screen and (max-width: 750px) {
  .top-company__text {
    text-align: center;
  }
}

.top-company__button {
  max-width: 10.625rem;
  margin-right: auto;
  margin-top: 2.5rem;
}
@media screen and (max-width: 1024px) {
  .top-company__button {
    margin-top: 0.9375rem;
  }
}
@media screen and (max-width: 750px) {
  .top-company__button {
    max-width: 60%;
    margin-left: auto;
  }
}

.top-company__cat01 {
  position: absolute;
  right: 0;
  bottom: 0;
}
@media screen and (max-width: 1024px) {
  .top-company__cat01 {
    right: -2.8125rem;
  }
}
@media screen and (max-width: 750px) {
  .top-company__cat01 {
    right: 1.875rem;
    bottom: -2.5rem;
  }
}

.top-company__cat01 {
  opacity: 0;
  transition: opacity 1.5s ease;
}
.top-company__cat01.is-active {
  opacity: 1;
}

/****************************************/
/****************************************/
.top-access {
  position: relative;
  padding: 0 0 12.5rem;
}
@media screen and (max-width: 750px) {
  .top-access {
    padding: 0 0 8.75rem;
  }
}

.top-access__cat01 {
  position: absolute;
  left: 4.6875rem;
  bottom: 0;
}

.top-access__cat01 {
  opacity: 0;
  transition: opacity 1.6s ease;
}
.top-access__cat01.is-active {
  opacity: 1;
}

.top-access__content {
  display: flex;
  justify-content: space-between;
  align-items: stretch;
  gap: 4.0625rem;
}
@media screen and (max-width: 750px) {
  .top-access__content {
    flex-direction: column;
    gap: 2.5rem;
  }
}

.top-access__content-left {
  width: 33.3%;
  flex-shrink: 0;
  display: flex;
  flex-direction: column;
  justify-content: space-between;
}
@media screen and (max-width: 750px) {
  .top-access__content-left {
    width: 100%;
  }
}

.top-access__address {
  font-size: 1.125rem;
  font-weight: 500;
  line-height: 1.5;
  letter-spacing: 0.05em;
  margin-top: auto;
}
@media screen and (max-width: 750px) {
  .top-access__address {
    font-size: 3.7333333333vw;
  }
}
@media screen and (max-width: 750px) {
  .top-access__address {
    text-align: center;
    margin-top: 2.5rem;
  }
}

.top-access__button {
  max-width: 12.5rem;
  margin-top: 1rem;
}
@media screen and (max-width: 750px) {
  .top-access__button {
    max-width: 60%;
    margin-inline: auto;
  }
}

.top-access__content-right {
  flex: 1;
}

.top-access__map {
  aspect-ratio: 43/24;
  width: 100%;
  position: relative;
  overflow: hidden;
}
@media screen and (max-width: 750px) {
  .top-access__map {
    aspect-ratio: 1/1;
  }
}
.top-access__map iframe {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  border: 0;
}

/* 猫のアニメーション */
.features-overview__cat01 {
  opacity: 0;
  transition: opacity 1.2s ease;
}
.features-overview__cat01.is-active {
  opacity: 1;
}

/****************************************/
/****************************************/
.features-overview {
  position: relative;
  padding: 10rem 0 5rem;
}
@media screen and (max-width: 1024px) {
  .features-overview {
    padding: clamp(5rem, -5.316rem + 21.98vw, 8.75rem) 0 clamp(3.75rem, 0.311rem + 7.33vw, 5rem);
  }
}
@media screen and (max-width: 750px) {
  .features-overview {
    padding: 3.75rem 0 2.5rem;
  }
}

.features-overview__inner {
  max-width: 1012px;
  width: 100%;
  margin: 0 auto;
  padding: 0 1.25rem;
}
@media screen and (max-width: 750px) {
  .features-overview__inner {
    padding: 0 0.9375rem;
  }
}

.features-overview__cat01 {
  text-align: center;
}

.features-overview__title {
  text-align: center;
  margin-top: 1.5rem;
}

.features-overview__content {
  padding: 6.25rem 0 5rem;
}
@media screen and (max-width: 750px) {
  .features-overview__content {
    padding: 3.75rem 0 2.5rem;
  }
}

.features-overview__text {
  line-height: 2.2;
  letter-spacing: 0.05em;
  text-align: center;
}

.features-overview__text + .features-overview__text {
  margin-top: 2.5rem;
}

.features-overview__values {
  padding: 6.5625rem 0 5rem;
}
@media screen and (max-width: 750px) {
  .features-overview__values {
    padding: 3.4375rem 0 2.5rem;
  }
}

.features-overview__values-title {
  color: var(--color-text);
  font-family: var(--font-shippori-mincho);
  font-size: 2rem;
  font-weight: 600;
  line-height: 1.5;
  letter-spacing: 0.05em;
  text-align: center;
}
@media screen and (max-width: 750px) {
  .features-overview__values-title {
    font-size: 5.6vw;
  }
}

.features-overview__values-top {
  margin-top: 7.8125rem;
}
@media screen and (max-width: 750px) {
  .features-overview__values-top {
    margin-top: 0.625rem;
  }
}

.features-overview__values-item {
  position: relative;
  display: flex;
  flex-direction: column;
  align-items: center;
  padding-top: 3rem;
  min-height: 26rem;
}
@media screen and (max-width: 750px) {
  .features-overview__values-item {
    min-height: unset;
    padding-top: 1.5625rem;
  }
}
.features-overview__values-item.features-overview__values-item--01::after {
  background: rgba(70, 112, 29, 0.7);
}
.features-overview__values-item.features-overview__values-item--01 .features-overview-values-item__img {
  width: 8.75rem;
  -o-object-fit: contain;
     object-fit: contain;
  aspect-ratio: 14/13;
}
@media screen and (max-width: 430px) {
  .features-overview__values-item.features-overview__values-item--01 .features-overview-values-item__img {
    width: 32%;
  }
}
.features-overview__values-item.features-overview__values-item--02 {
  width: 44%;
}
@media screen and (max-width: 750px) {
  .features-overview__values-item.features-overview__values-item--02 {
    width: 100%;
  }
}
.features-overview__values-item.features-overview__values-item--02::after {
  background: #BBB498;
}
.features-overview__values-item.features-overview__values-item--02 .features-overview-values-item__img {
  width: 10.25rem;
  -o-object-fit: contain;
     object-fit: contain;
  aspect-ratio: 164/103;
}
@media screen and (max-width: 430px) {
  .features-overview__values-item.features-overview__values-item--02 .features-overview-values-item__img {
    width: 38%;
  }
}
.features-overview__values-item.features-overview__values-item--03 {
  width: 49%;
}
@media screen and (max-width: 750px) {
  .features-overview__values-item.features-overview__values-item--03 {
    width: 100%;
  }
}
.features-overview__values-item.features-overview__values-item--03::after {
  background: rgba(212, 175, 112, 0.8);
}
.features-overview__values-item.features-overview__values-item--03 .features-overview-values-item__img {
  width: 10.75rem;
  -o-object-fit: contain;
     object-fit: contain;
  aspect-ratio: 172/90;
}
@media screen and (max-width: 430px) {
  .features-overview__values-item.features-overview__values-item--03 .features-overview-values-item__img {
    width: 40%;
  }
}

.features-overview__values-item::after {
  position: absolute;
  content: "";
  left: 50%;
  top: 50%;
  transform: translate(-50%, -50%);
  width: 26rem;
  aspect-ratio: 1/1;
  opacity: 0.35;
  filter: blur(27.013px);
  border-radius: 5397.19px;
}
@media screen and (max-width: 1200px) {
  .features-overview__values-item::after {
    width: clamp(20rem, 11.637rem + 17.82vw, 25rem);
  }
}
@media screen and (max-width: 430px) {
  .features-overview__values-item::after {
    width: 96%;
  }
}

.features-overview__values-item > * {
  z-index: 1;
}

.features-overview-values-item__title {
  font-size: 1.875rem;
  font-weight: 900;
  line-height: 2.2;
  letter-spacing: 0.05em;
}
@media screen and (max-width: 750px) {
  .features-overview-values-item__title {
    font-size: 5.3333333333vw;
  }
}
@media screen and (max-width: 1024px) {
  .features-overview-values-item__title {
    font-size: clamp(1.375rem, 0.343rem + 2.2vw, 1.75rem);
  }
}
@media screen and (max-width: 750px) {
  .features-overview-values-item__title {
    font-size: 1.875rem;
  }
}
@media screen and (max-width: 750px) and (max-width: 750px) {
  .features-overview-values-item__title {
    font-size: 5.3333333333vw;
  }
}

@media screen and (max-width: 750px) {
  .features-overview-values-item__img {
    margin-top: 1.25rem;
  }
}

.features-overview-values-item__text {
  text-align: center;
  margin-top: auto;
}
@media screen and (max-width: 750px) {
  .features-overview-values-item__text {
    margin-top: 1.25rem;
  }
}

.features-overview__values-bottom {
  display: flex;
  justify-content: center;
  gap: 4.625rem;
  margin-top: 1.4375rem;
}
@media screen and (max-width: 1200px) {
  .features-overview__values-bottom {
    gap: clamp(1.875rem, -2.725rem + 9.8vw, 4.625rem);
  }
}
@media screen and (max-width: 750px) {
  .features-overview__values-bottom {
    flex-direction: column;
  }
}

/****************************************/
/****************************************/
.strengths {
  position: relative;
  padding: 7.5rem 0 13.75rem;
}
@media screen and (max-width: 750px) {
  .strengths {
    padding: 2.5rem 0 6.25rem;
  }
}

.strengths__items {
  margin-top: 7.875rem;
}
@media screen and (max-width: 750px) {
  .strengths__items {
    margin-top: 4.0625rem;
  }
}

.strengths__item {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 5rem;
}
@media screen and (max-width: 1200px) {
  .strengths__item {
    gap: clamp(1.875rem, -1.261rem + 6.68vw, 3.75rem);
  }
}
@media screen and (max-width: 750px) {
  .strengths__item {
    flex-direction: column;
    gap: 0;
  }
}

.strengths__item:nth-child(even) {
  flex-direction: row-reverse;
}
@media screen and (max-width: 750px) {
  .strengths__item:nth-child(even) {
    flex-direction: column;
  }
}

.strengths__item:not(:first-child) {
  margin-top: 7.5rem;
}
@media screen and (max-width: 750px) {
  .strengths__item:not(:first-child) {
    margin-top: 2.5rem;
  }
}

.strengths-item__img {
  width: 31.8125rem;
  -o-object-fit: contain;
     object-fit: contain;
  aspect-ratio: 509/286;
  flex-shrink: 0;
}
@media screen and (max-width: 1200px) {
  .strengths-item__img {
    width: clamp(17.5rem, -3.408rem + 44.54vw, 30rem);
  }
}
@media screen and (max-width: 750px) {
  .strengths-item__img {
    order: 2;
    width: 100%;
    margin-top: 1.25rem;
  }
}

.strengths-item__body {
  flex: 1;
}
@media screen and (max-width: 750px) {
  .strengths-item__body {
    display: contents;
  }
}

.strengths-item__title {
  color: var(--color-text);
  font-family: var(--font-shippori-mincho);
  font-size: 2rem;
  font-weight: 400;
  line-height: 1.5;
  letter-spacing: 0.05em;
}
@media screen and (max-width: 750px) {
  .strengths-item__title {
    font-size: 5.6vw;
  }
}
@media screen and (max-width: 1024px) {
  .strengths-item__title {
    font-size: 1.625rem;
  }
}
@media screen and (max-width: 1024px) and (max-width: 750px) {
  .strengths-item__title {
    font-size: 4.8vw;
  }
}
@media screen and (max-width: 750px) {
  .strengths-item__title {
    font-size: 2rem;
    order: 1;
    text-align: center;
  }
}
@media screen and (max-width: 750px) and (max-width: 750px) {
  .strengths-item__title {
    font-size: 5.6vw;
  }
}

.strengths-item__text {
  font-size: 1.25rem;
  font-weight: 500;
  line-height: 2.5;
  letter-spacing: 0.8px;
  margin-top: 2.0625rem;
}
@media screen and (max-width: 750px) {
  .strengths-item__text {
    font-size: 4vw;
  }
}
@media screen and (max-width: 1024px) {
  .strengths-item__text {
    font-size: 1.125rem;
  }
}
@media screen and (max-width: 1024px) and (max-width: 750px) {
  .strengths-item__text {
    font-size: 3.7333333333vw;
  }
}
@media screen and (max-width: 750px) {
  .strengths-item__text {
    font-size: 1rem;
    line-height: 2.2;
    order: 3;
    margin-top: 1.25rem;
  }
}
@media screen and (max-width: 750px) and (max-width: 750px) {
  .strengths-item__text {
    font-size: 3.4666666667vw;
  }
}

.strengths__cat01 {
  position: absolute;
  right: 8%;
  bottom: 0.375rem;
}

/* 猫のアニメーション */
.features-overview__cat01,
.strengths__cat01 {
  opacity: 0;
  transition: opacity 1.6s ease;
}
.features-overview__cat01.is-active,
.strengths__cat01.is-active {
  opacity: 1;
}

/****************************************/
/****************************************/
.service-about {
  position: relative;
  padding: 10rem 0 5.9375rem;
}
@media screen and (max-width: 750px) {
  .service-about {
    padding: 8.75rem 0 5rem;
  }
}

.service-about__top {
  position: relative;
  display: flex;
  justify-content: flex-end;
  margin: 0 auto;
}
@media screen and (max-width: 750px) {
  .service-about__top {
    flex-direction: column;
  }
}

.service-about__cat01 {
  position: absolute;
  top: -5.75rem;
  left: 1.875rem;
}
@media screen and (max-width: 750px) {
  .service-about__cat01 {
    top: -13.7333333333vw;
  }
}

.service-about__top-img-wrap {
  max-width: 55%;
  width: 100%;
  pointer-events: none;
  padding-left: 0.625rem;
}
@media screen and (max-width: 750px) {
  .service-about__top-img-wrap {
    position: relative;
    max-width: 95%;
    top: 0;
    transform: none;
    padding-left: 0;
  }
}

.service-about__top-content {
  position: relative;
  max-width: 45%;
  width: 100%;
  padding-left: 9rem;
  margin-top: 2.1875rem;
}
@media screen and (max-width: 1200px) {
  .service-about__top-content {
    padding-left: clamp(3.125rem, -4.681rem + 16.24vw, 7.5rem);
  }
}
@media screen and (max-width: 750px) {
  .service-about__top-content {
    max-width: 100%;
    padding-left: 0;
    margin-top: 3.25rem;
  }
}

.service-about__title {
  font-family: var(--font-shippori-mincho);
  font-size: 2.5rem;
  font-weight: 600;
  letter-spacing: 0.15em;
  display: flex;
  justify-content: flex-end;
  align-items: flex-start;
  flex-direction: row-reverse;
  gap: 1.25rem;
}
@media screen and (max-width: 1200px) {
  .service-about__title {
    font-size: clamp(1.375rem, 0.539rem + 1.78vw, 1.875rem);
  }
}
@media screen and (max-width: 750px) {
  .service-about__title {
    font-size: 2.5rem;
    justify-content: center;
    gap: 0.5rem;
  }
}
@media screen and (max-width: 750px) and (max-width: 750px) {
  .service-about__title {
    font-size: 6.6666666667vw;
  }
}

.service-about__bottom {
  position: relative;
  display: flex;
  justify-content: space-between;
  padding-left: 7.3125rem;
  padding-right: 5.1875rem;
  margin-top: 5rem;
  gap: 8rem;
}
@media screen and (max-width: 1200px) {
  .service-about__bottom {
    gap: clamp(3.75rem, -3.359rem + 15.14vw, 8rem);
    padding-left: clamp(1.25rem, -0.527rem + 3.79vw, 2.313rem);
    padding-right: clamp(1.125rem, -0.652rem + 3.79vw, 2.188rem);
  }
}
@media screen and (max-width: 750px) {
  .service-about__bottom {
    flex-direction: column;
    margin-inline: auto;
    margin-top: 2.5rem;
    text-align: center;
    padding-left: 0;
    padding-right: 0;
    gap: 1.875rem;
  }
}

.service-about__cat02 {
  position: absolute;
  bottom: -6.25rem;
  left: 3.125rem;
}
@media screen and (max-width: 1200px) {
  .service-about__cat02 {
    left: clamp(0.313rem, -4.392rem + 10.02vw, 3.125rem);
  }
}
@media screen and (max-width: 750px) {
  .service-about__cat02 {
    left: unset;
    right: 1.5625rem;
    bottom: -3.125rem;
  }
}

.service-about__bottom-content {
  position: relative;
  flex: 1;
  width: 100%;
  max-width: 44.75rem;
}
@media screen and (max-width: 750px) {
  .service-about__bottom-content {
    width: 100%;
    padding-left: 0;
    margin-inline: auto;
    margin-top: 3.125rem;
  }
}

.service-about__bottom-img-wrap {
  position: relative;
  width: 32%;
  pointer-events: none;
  margin-top: 4.625rem;
  flex-shrink: 0;
}
@media screen and (max-width: 750px) {
  .service-about__bottom-img-wrap {
    z-index: 1;
    width: 73%;
    margin-left: auto;
  }
}

.service-about__cat03 {
  position: absolute;
  top: -5.25rem;
  right: 6.25rem;
}
@media screen and (max-width: 750px) {
  .service-about__cat03 {
    top: -16.5333333333vw;
    right: 1.5625rem;
  }
}

.service-about__bottom-text {
  font-size: 1.25rem;
  font-weight: 500;
  line-height: 2.5;
  letter-spacing: 0.05em;
}
@media screen and (max-width: 750px) {
  .service-about__bottom-text {
    font-size: 4vw;
  }
}
@media screen and (max-width: 1200px) {
  .service-about__bottom-text {
    font-size: 1.125rem;
  }
}
@media screen and (max-width: 1200px) and (max-width: 750px) {
  .service-about__bottom-text {
    font-size: 3.7333333333vw;
  }
}
@media screen and (max-width: 750px) {
  .service-about__bottom-text {
    font-size: 1rem;
    line-height: 2.2;
  }
}
@media screen and (max-width: 750px) and (max-width: 750px) {
  .service-about__bottom-text {
    font-size: 3.4666666667vw;
  }
}

.service-about__cat01,
.service-about__cat02,
.service-about__cat03 {
  opacity: 0;
  transition: opacity 1.2s ease;
}
.service-about__cat01.is-active,
.service-about__cat02.is-active,
.service-about__cat03.is-active {
  opacity: 1;
}

/****************************************/
/****************************************/
.building-flow {
  padding: 6.25rem 0 2rem;
  overflow-x: hidden;
}
@media screen and (max-width: 750px) {
  .building-flow {
    padding: 4.6875rem 0 1.875rem;
  }
}

.building-flow__inner {
  max-width: 1240px;
  margin-left: auto;
  margin-right: auto;
  padding: 0 1.25rem;
}
@media screen and (max-width: 1440px) {
  .building-flow__inner {
    margin-left: unset;
  }
}
@media screen and (max-width: 750px) {
  .building-flow__inner {
    padding: 0 0.9375rem;
  }
}

.building-flow__subtitle {
  font-family: var(--font-shippori-mincho);
  font-size: 2rem;
  font-weight: 600;
  line-height: 1.5;
  letter-spacing: 0.05em;
  margin-top: 1.875rem;
}
@media screen and (max-width: 750px) {
  .building-flow__subtitle {
    font-size: 5.6vw;
  }
}
@media screen and (max-width: 750px) {
  .building-flow__subtitle {
    font-size: 1.625rem;
  }
}
@media screen and (max-width: 750px) and (max-width: 750px) {
  .building-flow__subtitle {
    font-size: 4.8vw;
  }
}

.building-flow__slick-container {
  position: relative;
  margin-inline: auto;
}

.building-flow__slick {
  margin-top: 7.5rem;
  width: 100vw;
}
@media screen and (max-width: 750px) {
  .building-flow__slick {
    margin-top: 4.6875rem;
  }
}
.building-flow__slick .slick-list {
  overflow: visible;
  padding-top: 3.125rem;
  padding-left: 5rem;
  padding-right: 5rem;
}
@media screen and (max-width: 750px) {
  .building-flow__slick .slick-list {
    padding-left: 1.875rem;
    padding-right: 1.875rem;
  }
}

.building-flow__card {
  position: relative;
  margin: 0 2.1875rem;
}
@media screen and (max-width: 1440px) {
  .building-flow__card {
    margin: 0 1.25rem;
  }
}
@media screen and (max-width: 750px) {
  .building-flow__card {
    margin: 0 0.625rem;
  }
}

.building-flow__slick,
.building-flow__cards {
  overflow: visible !important;
}

.building-flow-card__number {
  position: absolute;
  content: "";
  top: -2.5rem;
  left: 0.625rem;
  font-size: 2.75rem;
  font-weight: 500;
  color: var(--color-green-leaf);
  letter-spacing: 2.84px;
}
@media screen and (max-width: 750px) {
  .building-flow-card__number {
    top: -1.5625rem;
    font-size: 1.875rem;
  }
}

.building-flow-card__body {
  position: relative;
  background-color: var(--color-white);
  padding: 1.875rem 0.9375rem;
  width: 90%;
  border-radius: 0.17625rem;
  margin-top: -4.6875rem;
  margin-inline: auto;
  z-index: 1;
}
@media screen and (max-width: 1024px) {
  .building-flow-card__body {
    margin-top: -3.125rem;
  }
}
@media screen and (max-width: 750px) {
  .building-flow-card__body {
    margin-top: -3.75rem;
  }
}
@media screen and (max-width: 430px) {
  .building-flow-card__body {
    margin-top: -2.5rem;
    padding: 1.25rem 0.625rem;
  }
}

.building-flow-card__title {
  font-family: var(--font-noto-serif-jp);
  font-size: 1.25rem;
  font-weight: 600;
  letter-spacing: 0.05em;
  color: #232323;
}
@media screen and (max-width: 750px) {
  .building-flow-card__title {
    font-size: 4vw;
  }
}
@media screen and (max-width: 1200px) {
  .building-flow-card__title {
    font-size: 1.125rem;
  }
}
@media screen and (max-width: 1200px) and (max-width: 750px) {
  .building-flow-card__title {
    font-size: 3.7333333333vw;
  }
}
@media screen and (max-width: 750px) {
  .building-flow-card__title {
    font-size: 1.25rem;
  }
}
@media screen and (max-width: 750px) and (max-width: 750px) {
  .building-flow-card__title {
    font-size: 4vw;
  }
}

.building-flow-card__text {
  font-family: var(--font-noto-serif-jp);
  font-size: 0.875rem;
  font-weight: 400;
  line-height: 1.7142857143;
  letter-spacing: 0.05em;
  color: var(--color-black);
  margin-top: 1.25rem;
}
@media screen and (max-width: 750px) {
  .building-flow-card__text {
    font-size: 3.2vw;
  }
}
@media screen and (max-width: 1024px) {
  .building-flow-card__text {
    font-size: 0.75rem;
  }
}
@media screen and (max-width: 1024px) and (max-width: 750px) {
  .building-flow-card__text {
    font-size: 2.9333333333vw;
  }
}
@media screen and (max-width: 750px) {
  .building-flow-card__text {
    font-size: 0.875rem;
  }
}
@media screen and (max-width: 750px) and (max-width: 750px) {
  .building-flow-card__text {
    font-size: 3.2vw;
  }
}

.building-flow-slick-button-prev {
  left: 4.6875rem !important;
  transform: translateY(-50%) rotate(135deg) !important;
  border-right: 3px solid var(--color-green-leaf);
  border-bottom: 3px solid var(--color-green-leaf);
}
@media screen and (max-width: 1200px) {
  .building-flow-slick-button-prev {
    left: 4.375rem !important;
  }
}
@media screen and (max-width: 1024px) {
  .building-flow-slick-button-prev {
    left: 4.0625rem !important;
  }
}
@media screen and (max-width: 750px) {
  .building-flow-slick-button-prev {
    left: 2.5rem !important;
  }
}

.building-flow-slick-button-next {
  right: 4.0625rem !important;
  transform: translateY(-50%) rotate(-45deg) !important;
  border-right: 3px solid var(--color-green-leaf);
  border-bottom: 3px solid var(--color-green-leaf);
}
@media screen and (max-width: 1200px) {
  .building-flow-slick-button-next {
    right: 3.75rem !important;
  }
}
@media screen and (max-width: 1024px) {
  .building-flow-slick-button-next {
    right: 3.4375rem !important;
  }
}
@media screen and (max-width: 750px) {
  .building-flow-slick-button-next {
    right: 1.875rem !important;
  }
}

.building-flow-slick-button-prev,
.building-flow-slick-button-next {
  position: absolute !important;
  top: 50% !important;
  transform: translateY(-50%);
  width: 44px !important;
  height: 44px !important;
  z-index: 99 !important;
  display: flex !important;
  align-items: center !important;
  justify-content: center !important;
  opacity: 1 !important;
  visibility: visible !important;
}
@media screen and (max-width: 1024px) {
  .building-flow-slick-button-prev,
.building-flow-slick-button-next {
    width: 2.1875rem !important;
    height: 2.1875rem !important;
  }
}
@media screen and (max-width: 750px) {
  .building-flow-slick-button-prev,
.building-flow-slick-button-next {
    width: 5.8666666667vw !important;
    height: 5.8666666667vw !important;
  }
}

.new-parallax-01 {
  height: 26.25rem;
}
@media screen and (max-width: 750px) {
  .new-parallax-01 {
    height: 12.5rem;
  }
}

.new-parallax-01::after {
  content: "";
  position: fixed;
  top: 0;
  left: 0;
  z-index: -10;
  width: 100%;
  height: 100vh;
  background: url(../images/new/bg-parallax-01.jpg);
  background-size: cover;
  background-position: center top;
  background-repeat: no-repeat;
}
@media screen and (max-width: 750px) {
  .new-parallax-01::after {
    background-size: auto 100%;
  }
}

/****************************************/
/****************************************/
.new-case {
  padding: 13.625rem 0 10.4375rem;
}
@media screen and (max-width: 750px) {
  .new-case {
    padding: 6.25rem 0 5rem;
  }
}

.new-case__inner {
  position: relative;
}

.new-case__overview {
  max-width: 47.25rem;
  width: 100%;
  margin-left: auto;
}

.new-case__title {
  font-family: var(--font-shippori-mincho);
  font-size: 2rem;
  font-weight: 600;
  line-height: 1.5;
  letter-spacing: 0.05em;
}
@media screen and (max-width: 750px) {
  .new-case__title {
    font-size: 5.6vw;
  }
}

.new-case__text {
  margin-top: 2.5rem;
  font-size: 1.25rem;
  font-weight: 500;
  line-height: 2.2;
  letter-spacing: 0.05em;
}
@media screen and (max-width: 750px) {
  .new-case__text {
    font-size: 4vw;
  }
}
@media screen and (max-width: 1200px) {
  .new-case__text {
    font-size: 1.125rem;
  }
}
@media screen and (max-width: 1200px) and (max-width: 750px) {
  .new-case__text {
    font-size: 3.7333333333vw;
  }
}
@media screen and (max-width: 750px) {
  .new-case__text {
    font-size: 1rem;
  }
}
@media screen and (max-width: 750px) and (max-width: 750px) {
  .new-case__text {
    font-size: 3.4666666667vw;
  }
}

.new-case__cards {
  position: relative;
  display: flex;
  gap: 2.125rem;
  margin-top: 5.3125rem;
}
@media screen and (max-width: 750px) {
  .new-case__cards {
    flex-direction: column;
    gap: 1.25rem;
    margin-top: 6.25rem;
  }
}

.new-case__cat01 {
  position: absolute;
  top: -5rem;
  left: -0.625rem;
}
@media screen and (max-width: 750px) {
  .new-case__cat01 {
    top: -10.6666666667vw;
    left: 0.625rem;
  }
}

.new-case__card {
  position: relative;
  overflow: hidden;
  isolation: isolate;
  flex: 0 1 calc(100% - min(2.3611111111vw, 34px) / 2);
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  padding: 2.1875rem 3.125rem;
  min-height: 40.1875rem;
  text-decoration: none;
}
@media screen and (max-width: 750px) {
  .new-case__card {
    flex: 0 1 100%;
  }
}
@media screen and (max-width: 430px) {
  .new-case__card {
    min-height: clamp(21.25rem, -4.205rem + 127.27vw, 26rem);
  }
}
.new-case__card::before {
  content: "";
  position: absolute;
  inset: 0;
  background-size: cover;
  background-position: center;
  background-repeat: no-repeat;
  transition: transform 0.6s ease;
  z-index: 0;
}
.new-case__card:hover::before {
  transform: scale(1.1);
}
.new-case__card > * {
  position: relative;
  z-index: 1;
}
.new-case__card.new-case__card--1f-house::before {
  background-image: url(../images/new/new-case-1f.png);
}
.new-case__card.new-case__card--2f-house .new-case__card-title span .text-lg {
  font-size: 2.75rem;
}
@media screen and (max-width: 750px) {
  .new-case__card.new-case__card--2f-house .new-case__card-title span .text-lg {
    font-size: 7.2vw;
  }
}
.new-case__card .new-case__card-title .text-offset:nth-child(1) {
  padding-bottom: 11.25rem;
}
@media screen and (max-width: 750px) {
  .new-case__card .new-case__card-title .text-offset:nth-child(1) {
    padding-bottom: 5rem;
  }
}
.new-case__card::before {
  background-image: url(../images/new/new-case-2f.png);
}

.new-case__card-title {
  display: flex;
  align-items: flex-end;
  flex-direction: column;
  gap: 0.9375rem;
}

.new-case__card-title span {
  font-family: var(--font-shippori-mincho);
  font-size: 1.875rem;
  color: var(--color-white);
  font-weight: 400;
  letter-spacing: 0.25em;
}
@media screen and (max-width: 750px) {
  .new-case__card-title span {
    font-size: 5.3333333333vw;
  }
}
.new-case__card-title span .text-lg {
  font-size: 3rem;
  font-weight: 600;
  letter-spacing: 0.15em;
}
@media screen and (max-width: 750px) {
  .new-case__card-title span .text-lg {
    font-size: 7.7333333333vw;
  }
}

.new-case__card-title .text-offset:nth-child(2) {
  padding-bottom: 0.625rem;
}

.new-case__card-title .text-offset:nth-child(1) {
  padding-bottom: 6.25rem;
}
@media screen and (max-width: 750px) {
  .new-case__card-title .text-offset:nth-child(1) {
    padding-bottom: 2.5rem;
  }
}

.new-case__cat02 {
  position: absolute;
  bottom: -10.3125rem;
  right: -0.625rem;
}
@media screen and (max-width: 1440px) {
  .new-case__cat02 {
    right: 0rem;
  }
}
@media screen and (max-width: 750px) {
  .new-case__cat02 {
    bottom: -19.7333333333vw;
    right: 2.5rem;
  }
}

/****************************************/
/****************************************/
.new-technology {
  padding: 1.3125rem 0 1.375rem;
}
@media screen and (max-width: 750px) {
  .new-technology {
    padding: 2.5rem 0;
  }
}

.new-technology__inner {
  max-width: 65rem;
  width: 100%;
  margin: 0 auto;
  padding: 0 1.25rem;
}

.new-technology__box {
  background-color: var(--color-light-beige);
  box-shadow: 5px 5px 10px rgba(0, 0, 0, 0.05);
  padding: 3.8125rem 0.9375rem 2.5rem;
  display: flex;
  flex-direction: column;
  align-items: center;
}

.new-technology__title {
  font-size: 2rem;
  font-weight: 500;
  line-height: 1.5;
  color: var(--color-green-leaf);
  text-align: center;
}
@media screen and (max-width: 750px) {
  .new-technology__title {
    font-size: 5.6vw;
  }
}

.new-technology__text {
  text-align: center;
  margin-top: 1.375rem;
  font-size: 1.25rem;
  font-weight: 500;
  line-height: 2.2;
  letter-spacing: 0.05em;
}
@media screen and (max-width: 750px) {
  .new-technology__text {
    font-size: 4vw;
  }
}
@media screen and (max-width: 1200px) {
  .new-technology__text {
    font-size: 1.125rem;
  }
}
@media screen and (max-width: 1200px) and (max-width: 750px) {
  .new-technology__text {
    font-size: 3.7333333333vw;
  }
}
@media screen and (max-width: 750px) {
  .new-technology__text {
    font-size: 1rem;
  }
}
@media screen and (max-width: 750px) and (max-width: 750px) {
  .new-technology__text {
    font-size: 3.4666666667vw;
  }
}

.new-technology__button {
  max-width: 30rem;
  margin-top: 1.375rem;
  margin-inline: auto;
}

/****************************************/
/****************************************/
.guarantee-support {
  padding: 9.375rem 0 3.5rem;
}
@media screen and (max-width: 750px) {
  .guarantee-support {
    padding: 5rem 0 3.125rem;
  }
}

.guarantee-support__subtitle {
  font-family: var(--font-shippori-mincho);
  font-size: 2rem;
  font-weight: 600;
  line-height: 1.5;
  margin-top: 2.5rem;
}
@media screen and (max-width: 750px) {
  .guarantee-support__subtitle {
    font-size: 5.6vw;
  }
}

.guarantee-support__text {
  margin-top: 1.5rem;
  font-size: 1.25rem;
  font-weight: 500;
  line-height: 2.2;
  letter-spacing: 0.05em;
}
@media screen and (max-width: 750px) {
  .guarantee-support__text {
    font-size: 4vw;
  }
}
@media screen and (max-width: 1200px) {
  .guarantee-support__text {
    font-size: 1.125rem;
  }
}
@media screen and (max-width: 1200px) and (max-width: 750px) {
  .guarantee-support__text {
    font-size: 3.7333333333vw;
  }
}
@media screen and (max-width: 750px) {
  .guarantee-support__text {
    font-size: 1rem;
  }
}
@media screen and (max-width: 750px) and (max-width: 750px) {
  .guarantee-support__text {
    font-size: 3.4666666667vw;
  }
}

.guarantee-support__content {
  max-width: 59.1875rem;
  width: 100%;
  margin: 5rem auto 0;
  padding: 0 0.9375rem;
}
@media screen and (max-width: 750px) {
  .guarantee-support__content {
    margin-top: 2.5rem;
  }
}

.guarantee-support__cards {
  display: flex;
  gap: 3.75rem;
}
@media screen and (max-width: 750px) {
  .guarantee-support__cards {
    flex-direction: column;
    gap: 1.25rem;
  }
}

.guarantee-support__card {
  flex: 0 1 calc((100% - min(4.1666666667vw, 60px) * 2) / 3);
  display: flex;
  flex-direction: column;
  align-items: center;
}
.guarantee-support__card:nth-child(1) .guarantee-support-card__years-wrap::after {
  background: #CED4B9;
}
.guarantee-support__card:nth-child(2) .guarantee-support-card__years-wrap::after {
  background: #E5DFD1;
}
.guarantee-support__card:nth-child(3) .guarantee-support-card__years-wrap::after {
  background: #EFE1C9;
}
.guarantee-support__card:nth-child(3) .guarantee-support-card__text {
  margin-top: 2.3125rem;
}
@media screen and (max-width: 750px) {
  .guarantee-support__card:nth-child(3) .guarantee-support-card__text {
    margin-top: 0.625rem;
  }
}

.guarantee-support-card__years-wrap {
  position: relative;
  display: flex;
  align-items: center;
  justify-content: center;
  width: 100%;
  aspect-ratio: 252/254;
}
@media screen and (max-width: 750px) {
  .guarantee-support-card__years-wrap {
    width: 80%;
    aspect-ratio: 252/160;
  }
}

.guarantee-support-card__years-wrap > * {
  z-index: 1;
}

.guarantee-support-card__years-wrap::after {
  position: absolute;
  content: "";
  left: 50%;
  top: 50%;
  transform: translate(-50%, -50%);
  width: 100%;
  aspect-ratio: 1/1;
  filter: blur(25px);
  border-radius: 50%;
}
@media screen and (max-width: 750px) {
  .guarantee-support-card__years-wrap::after {
    width: 65%;
  }
}
@media screen and (max-width: 430px) {
  .guarantee-support-card__years-wrap::after {
    width: 70%;
  }
}

.guarantee-support-card__years-text {
  font-size: 1.5rem;
  font-weight: 500;
  line-height: 2;
  letter-spacing: 2px;
  color: var(--color-black);
  text-align: center;
}
@media screen and (max-width: 750px) {
  .guarantee-support-card__years-text {
    font-size: 6.4vw;
  }
}
.guarantee-support-card__years-text .text-lg {
  display: block;
  font-size: 3.125rem;
  line-height: 1.0416666667;
  font-weight: 900;
  margin-top: 0.625rem;
}
@media screen and (max-width: 750px) {
  .guarantee-support-card__years-text .text-lg {
    font-size: 10vw;
  }
}

.guarantee-support-card__text {
  font-size: 1rem;
  font-weight: 500;
  line-height: 1.875;
  letter-spacing: 0.8px;
  color: var(--color-black);
  text-align: center;
  margin-top: 1.375rem;
  z-index: 2;
}
@media screen and (max-width: 750px) {
  .guarantee-support-card__text {
    font-size: 3.4666666667vw;
  }
}
@media screen and (max-width: 750px) {
  .guarantee-support-card__text {
    font-size: 0.9375rem;
    margin-top: 0.625rem;
  }
}
@media screen and (max-width: 750px) and (max-width: 750px) {
  .guarantee-support-card__text {
    font-size: 3.3333333333vw;
  }
}

.guarantee-support__note {
  max-width: 47.5rem;
  width: 100%;
  margin: 3.4375rem auto 0;
  padding: 0 0.625rem;
}

.guarantee-support__note {
  font-size: 0.875rem;
  font-weight: 500;
  line-height: 1.7142857143;
  letter-spacing: 2px;
  color: var(--color-black);
  margin-top: 3.4375rem;
}
@media screen and (max-width: 750px) {
  .guarantee-support__note {
    font-size: 3.2vw;
  }
}

.guarantee-support__after-support {
  display: flex;
  align-items: center;
  flex-direction: column;
  margin-top: 2.4375rem;
}
@media screen and (max-width: 750px) {
  .guarantee-support__after-support {
    margin-top: 3.125rem;
  }
}

.guarantee-support__after-support-title {
  display: inline-block;
  font-size: 1.5rem;
  font-weight: 600;
  line-height: 2.0833333333;
  letter-spacing: 0.8px;
  text-align: center;
  color: var(--color-white);
  background-color: var(--color-green-leaf);
  padding: 0.625rem 1.25rem;
}
@media screen and (max-width: 750px) {
  .guarantee-support__after-support-title {
    font-size: 4.5333333333vw;
  }
}

.guarantee-support__after-support-text {
  margin-top: 1.75rem;
  text-align: center;
  font-size: 1.25rem;
  font-weight: 500;
  line-height: 2.2;
  letter-spacing: 0.05em;
}
@media screen and (max-width: 750px) {
  .guarantee-support__after-support-text {
    font-size: 4vw;
  }
}
@media screen and (max-width: 1200px) {
  .guarantee-support__after-support-text {
    font-size: 1.125rem;
  }
}
@media screen and (max-width: 1200px) and (max-width: 750px) {
  .guarantee-support__after-support-text {
    font-size: 3.7333333333vw;
  }
}
@media screen and (max-width: 750px) {
  .guarantee-support__after-support-text {
    font-size: 1rem;
  }
}
@media screen and (max-width: 750px) and (max-width: 750px) {
  .guarantee-support__after-support-text {
    font-size: 3.4666666667vw;
  }
}

.guarantee-support__inspection-box {
  max-width: 52.125rem;
  width: 100%;
  margin-top: 2.4375rem;
  margin-inline: auto;
  background-color: var(--color-light-beige);
  border: 1px solid var(--color-green-leaf);
  box-sizing: border-box;
  padding: 2.4375rem 2.9375rem;
  display: flex;
  flex-direction: column;
}
@media screen and (max-width: 750px) {
  .guarantee-support__inspection-box {
    flex-direction: row;
    padding: 1.875rem 1.25rem;
  }
}

.guarantee-support__inspection-box-list {
  display: flex;
  justify-content: center;
  gap: 1.875rem;
}
@media screen and (max-width: 750px) {
  .guarantee-support__inspection-box-list {
    flex-direction: column;
    width: 100%;
    gap: 1.25rem;
  }
}

.guarantee-support__inspection-box-item {
  flex: 0 1 calc((100% - min(2.0833333333vw, 30px) * 5) / 6);
  display: flex;
  flex-direction: column;
  align-items: center;
  border: 1px solid var(--color-green-leaf);
  font-size: 1rem;
  font-weight: 500;
  line-height: 1.5625;
  letter-spacing: 0.67px;
  color: var(--color-green-leaf);
  padding: 0.625rem;
}
@media screen and (max-width: 750px) {
  .guarantee-support__inspection-box-item {
    font-size: 3.4666666667vw;
  }
}

.guarantee-support__line-wrap {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 0.9375rem;
  width: 100%;
  margin-top: 0.75rem;
}
@media screen and (max-width: 750px) {
  .guarantee-support__line-wrap {
    flex-direction: column;
    width: 35%;
  }
}

.guarantee-support__line {
  flex: 1;
  height: 3px;
  background-color: var(--color-green-leaf);
}
@media screen and (max-width: 750px) {
  .guarantee-support__line {
    width: 3px;
  }
}
.guarantee-support__line.guarantee-support__line--arrow {
  position: relative;
  /* 黒い矢印（＞部分） */
}
.guarantee-support__line.guarantee-support__line--arrow::after {
  content: "";
  position: absolute;
  right: 0;
  top: 50%;
  transform: translateY(-50%) rotate(-45deg);
  width: 10px;
  height: 10px;
  border-right: 3px solid var(--color-green-leaf);
  border-bottom: 3px solid var(--color-green-leaf);
}
@media screen and (max-width: 750px) {
  .guarantee-support__line.guarantee-support__line--arrow::after {
    right: unset;
    top: unset;
    bottom: 0;
    left: 50%;
    transform: translateX(-50%) rotate(45deg);
  }
}

.guarantee-support__line-text {
  white-space: nowrap;
  color: var(--color-green-leaf);
  font-size: 1rem;
  font-weight: 500;
  line-height: 2.5;
  letter-spacing: 0.8px;
}
@media screen and (max-width: 750px) {
  .guarantee-support__line-text {
    font-size: 3.4666666667vw;
  }
}
@media screen and (max-width: 750px) {
  .guarantee-support__line-text {
    writing-mode: vertical-rl;
  }
}

/****************************************/
/****************************************/
.service-area {
  position: relative;
  padding: 6.25rem 0 7.1875rem;
}
@media screen and (max-width: 750px) {
  .service-area {
    padding: 4.6875rem 0 8.75rem;
  }
}

.service-area__content {
  max-width: 72.625rem;
  width: 100%;
  margin-top: 8.0625rem;
  padding-left: 2.0625rem;
  display: flex;
  justify-content: center;
  gap: 6.25rem;
}
@media screen and (max-width: 1200px) {
  .service-area__content {
    gap: clamp(1.875rem, -3.352rem + 11.14vw, 5rem);
  }
}
@media screen and (max-width: 1024px) {
  .service-area__content {
    padding-left: 0.625rem;
  }
}
@media screen and (max-width: 750px) {
  .service-area__content {
    margin-top: 3.125rem;
    padding-left: 0;
    flex-direction: column;
    gap: 3.75rem;
  }
}

.service-area__map {
  width: 41.1%;
  -o-object-fit: contain;
     object-fit: contain;
  aspect-ratio: 478/503;
  flex-shrink: 0;
}
@media screen and (max-width: 750px) {
  .service-area__map {
    width: 60%;
    margin-inline: auto;
  }
}

.service-area__body {
  padding-top: 6.5625rem;
}
@media screen and (max-width: 1200px) {
  .service-area__body {
    padding-top: clamp(2.5rem, -2.727rem + 11.14vw, 5.625rem);
  }
}
@media screen and (max-width: 750px) {
  .service-area__body {
    position: relative;
    padding-top: 1.875rem;
  }
}

.service-area__subtitle {
  font-family: var(--font-shippori-mincho);
  font-size: 2rem;
  font-weight: 600;
  line-height: 1.5;
  letter-spacing: 0.05em;
}
@media screen and (max-width: 750px) {
  .service-area__subtitle {
    font-size: 5.6vw;
  }
}

.service-area__text {
  margin-top: 1.5rem;
  font-size: 1.25rem;
  font-weight: 500;
  line-height: 2.2;
  letter-spacing: 0.05em;
}
@media screen and (max-width: 750px) {
  .service-area__text {
    font-size: 4vw;
  }
}
@media screen and (max-width: 1200px) {
  .service-area__text {
    font-size: 1.125rem;
  }
}
@media screen and (max-width: 1200px) and (max-width: 750px) {
  .service-area__text {
    font-size: 3.7333333333vw;
  }
}
@media screen and (max-width: 750px) {
  .service-area__text {
    margin-top: 0.9375rem;
    font-size: 1rem;
  }
}
@media screen and (max-width: 750px) and (max-width: 750px) {
  .service-area__text {
    font-size: 3.4666666667vw;
  }
}

.service-area__cat01 {
  margin-top: 2.5rem;
}
@media screen and (max-width: 750px) {
  .service-area__cat01 {
    position: absolute;
    top: -3.75rem;
    right: 0;
    margin-top: 0;
  }
}

.service-area__cat02 {
  position: absolute;
  bottom: 0;
  right: 17%;
}
@media screen and (max-width: 750px) {
  .service-area__cat02 {
    right: 1.5625rem;
  }
}

/* 猫のアニメーション */
.new-case__cat01,
.new-case__cat02,
.service-area__cat02 {
  opacity: 0;
  transition: opacity 1.6s ease;
}
.new-case__cat01.is-active,
.new-case__cat02.is-active,
.service-area__cat02.is-active {
  opacity: 1;
}

.service-area__cat01 {
  opacity: 0;
  transition: opacity 0.8s ease;
}
.service-area__cat01.is-active {
  opacity: 1;
}

/****************************************/
/****************************************/
.kominka-about .service-about__bottom {
  margin-top: 9.625rem;
}
@media screen and (max-width: 750px) {
  .kominka-about .service-about__bottom {
    margin-top: 5rem;
  }
}
.kominka-about .service-about__bottom .service-about__bottom-content {
  margin-top: 1.25rem;
}
.kominka-about .service-about__bottom .service-about__bottom-img-wrap {
  margin-top: 0;
}
@media screen and (max-width: 750px) {
  .kominka-about .service-about__bottom .service-about__bottom-img-wrap {
    margin-top: 5rem;
  }
}

.kominka-parallax-01 {
  height: 29.9375rem;
}
@media screen and (max-width: 750px) {
  .kominka-parallax-01 {
    height: 17.5rem;
  }
}

.kominka-parallax-01::after {
  content: "";
  position: fixed;
  top: 0;
  left: 0;
  z-index: -10;
  width: 100%;
  height: 100vh;
  background: url(../images/kominka/bg-parallax-01.png);
  background-size: cover;
  background-position: center bottom;
  background-repeat: no-repeat;
}
@media screen and (max-width: 750px) {
  .kominka-parallax-01::after {
    background-size: auto 100%;
  }
}

/****************************************/
/****************************************/
.thoughts {
  position: relative;
  padding: 7.5rem 0;
}
@media screen and (max-width: 750px) {
  .thoughts {
    padding: 3.75rem 0;
  }
}

.thoughts__items {
  margin-top: 7.875rem;
}
@media screen and (max-width: 750px) {
  .thoughts__items {
    margin-top: 4.0625rem;
  }
}

.thoughts__item {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 5rem;
}
@media screen and (max-width: 1200px) {
  .thoughts__item {
    gap: clamp(1.875rem, -1.261rem + 6.68vw, 3.75rem);
  }
}
@media screen and (max-width: 750px) {
  .thoughts__item {
    flex-direction: column;
    gap: 0;
  }
}

.thoughts__item:nth-child(even) {
  flex-direction: row-reverse;
}
@media screen and (max-width: 750px) {
  .thoughts__item:nth-child(even) {
    flex-direction: column;
  }
}

.thoughts__item:not(:first-child) {
  margin-top: 7.5rem;
}
@media screen and (max-width: 750px) {
  .thoughts__item:not(:first-child) {
    margin-top: 3.75rem;
  }
}

.thoughts-item__img {
  width: 31.8125rem;
  -o-object-fit: contain;
     object-fit: contain;
  aspect-ratio: 509/286;
  flex-shrink: 0;
}
@media screen and (max-width: 1200px) {
  .thoughts-item__img {
    width: clamp(17.5rem, -3.408rem + 44.54vw, 30rem);
  }
}
@media screen and (max-width: 750px) {
  .thoughts-item__img {
    order: 2;
    width: 100%;
    margin-top: 1.25rem;
  }
}

.thoughts-item__body {
  flex: 1;
}
@media screen and (max-width: 750px) {
  .thoughts-item__body {
    display: contents;
  }
}

.thoughts-item__title {
  color: var(--color-text);
  font-family: var(--font-shippori-mincho);
  font-size: 2rem;
  font-weight: 400;
  line-height: 1.5;
  letter-spacing: 0.05em;
}
@media screen and (max-width: 750px) {
  .thoughts-item__title {
    font-size: 5.6vw;
  }
}
@media screen and (max-width: 1024px) {
  .thoughts-item__title {
    font-size: 1.625rem;
  }
}
@media screen and (max-width: 1024px) and (max-width: 750px) {
  .thoughts-item__title {
    font-size: 4.8vw;
  }
}
@media screen and (max-width: 750px) {
  .thoughts-item__title {
    font-size: 2rem;
    order: 1;
    text-align: center;
  }
}
@media screen and (max-width: 750px) and (max-width: 750px) {
  .thoughts-item__title {
    font-size: 5.6vw;
  }
}

.thoughts-item__text {
  font-size: 1.25rem;
  font-weight: 500;
  line-height: 2.5;
  letter-spacing: 0.8px;
  margin-top: 2.0625rem;
}
@media screen and (max-width: 750px) {
  .thoughts-item__text {
    font-size: 4vw;
  }
}
@media screen and (max-width: 1024px) {
  .thoughts-item__text {
    font-size: 1.125rem;
  }
}
@media screen and (max-width: 1024px) and (max-width: 750px) {
  .thoughts-item__text {
    font-size: 3.7333333333vw;
  }
}
@media screen and (max-width: 750px) {
  .thoughts-item__text {
    font-size: 1rem;
    line-height: 2.2;
    order: 3;
    margin-top: 1.25rem;
  }
}
@media screen and (max-width: 750px) and (max-width: 750px) {
  .thoughts-item__text {
    font-size: 3.4666666667vw;
  }
}

.kominka-flow {
  position: relative;
  padding-bottom: 7.5rem;
}
@media screen and (max-width: 750px) {
  .kominka-flow {
    padding-bottom: 3.75rem;
  }
}

.kominka-flow__list-container {
  max-width: 1240px;
  margin-left: auto;
  margin-right: auto;
  padding: 0 1.25rem;
}
@media screen and (max-width: 750px) {
  .kominka-flow__list-container {
    position: relative;
    padding: 0;
  }
}

.kominka-flow__list {
  display: flex;
  justify-content: center;
  gap: 3.125rem;
  margin-top: 5rem;
}
@media screen and (max-width: 750px) {
  .kominka-flow__list {
    display: block;
    flex-direction: unset;
    gap: 0;
  }
}

.kominka-flow__item {
  position: relative;
  flex: 0 1 calc((100% - min(3.4722222222vw, 50px) * 5) / 6);
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: space-between;
  background-color: var(--color-light-beige);
  box-shadow: 5px 5px 10px rgba(0, 0, 0, 0.05);
  padding: 0.75rem 0.625rem 2.5rem;
}
@media screen and (max-width: 750px) {
  .kominka-flow__item {
    flex: 0 1 100%;
    padding: 0.9375rem 0.625rem 1.25rem;
    width: auto;
    margin-inline: 0;
    text-align: center;
  }
}
.kominka-flow__item.kominka-flow__item--01 .kominka-flow__item-img {
  width: 4.8125rem;
  aspect-ratio: 77/68;
}
.kominka-flow__item.kominka-flow__item--02 .kominka-flow__item-img {
  width: 4.9375rem;
  aspect-ratio: 1/1;
}
.kominka-flow__item.kominka-flow__item--03 .kominka-flow__item-img {
  width: 4.3125rem;
  aspect-ratio: 69/67;
}
.kominka-flow__item.kominka-flow__item--04 .kominka-flow__item-img {
  width: 5.6875rem;
  aspect-ratio: 91/81;
}
.kominka-flow__item.kominka-flow__item--05 .kominka-flow__item-img {
  width: 5rem;
  aspect-ratio: 16/17;
}
.kominka-flow__item.kominka-flow__item--06 .kominka-flow__item-img {
  width: 5rem;
  aspect-ratio: 80/71;
}

.kominka-flow__item:not(:last-child)::after {
  position: absolute;
  content: "";
  right: -1.875rem;
  top: 50%;
  transform: translateY(-50%);
  background-image: url(../images/kominka/flow-arriw.svg);
  background-repeat: no-repeat;
  background-size: contain;
  background-position: top center;
  width: 0.75rem;
  aspect-ratio: 12/45;
}
@media screen and (max-width: 1200px) {
  .kominka-flow__item:not(:last-child)::after {
    right: -2rem;
  }
}
@media screen and (max-width: 750px) {
  .kominka-flow__item:not(:last-child)::after {
    background-image: none;
    right: unset;
    left: 50%;
    transform: translateX(-50%) rotate(90deg);
    top: unset;
    bottom: -2.5rem;
    width: 7.8125rem;
    aspect-ratio: 45/12;
  }
}

.kominka-flow__item-number {
  font-size: 1.875rem;
  font-weight: 500;
  line-height: 1.6;
  letter-spacing: 2px;
  color: var(--color-green-leaf);
  text-align: center;
}
@media screen and (max-width: 750px) {
  .kominka-flow__item-number {
    font-size: 5.3333333333vw;
  }
}
@media screen and (max-width: 750px) {
  .kominka-flow__item-number {
    font-size: 2.75rem;
  }
}
@media screen and (max-width: 750px) and (max-width: 750px) {
  .kominka-flow__item-number {
    font-size: 7.2vw;
  }
}

.kominka-flow__item-title {
  font-family: var(--font-biz-udp-mincho);
  font-size: 1.5rem;
  font-weight: 400;
  line-height: 1.4;
  letter-spacing: 1em;
  margin-top: 0.625rem;
  text-align: center;
  writing-mode: vertical-rl;
}
@media screen and (max-width: 750px) {
  .kominka-flow__item-title {
    font-size: 4.5333333333vw;
  }
}
@media screen and (max-width: 750px) {
  .kominka-flow__item-title {
    writing-mode: unset;
    letter-spacing: 0.05em;
  }
}

.kominka-flow__item-img {
  margin-top: 1.75rem;
}
@media screen and (max-width: 750px) {
  .kominka-flow__item-img {
    margin-top: 0.9375rem;
  }
}

@media screen and (max-width: 750px) {
  .js-kominka-flow-slick .kominka-flow__item-img {
    display: block;
    margin-inline: auto;
    height: 4.6875rem;
    width: auto !important;
    max-width: 70%;
    -o-object-fit: contain;
       object-fit: contain;
  }
}

@media screen and (max-width: 750px) {
  .js-kominka-flow-slick .slick-slide {
    padding: 1.25rem 0.625rem;
    box-sizing: border-box;
    margin: 0 0.9375rem;
  }
}

.kominka-flow__arrow {
  display: none !important;
}
@media screen and (max-width: 750px) {
  .kominka-flow__arrow {
    display: flex !important;
    top: 50%;
    transform: translateY(-50%);
    z-index: 99;
  }
}

.yuzurihanomori {
  padding-bottom: 11.5rem;
}
@media screen and (max-width: 750px) {
  .yuzurihanomori {
    padding-bottom: 6.25rem;
  }
}

.yuzurihanomori__subtitle {
  font-family: var(--font-shippori-mincho);
  font-size: 2rem;
  font-weight: 600;
  line-height: 1.5;
  letter-spacing: 0.05em;
  margin-top: 2.5rem;
}
@media screen and (max-width: 750px) {
  .yuzurihanomori__subtitle {
    font-size: 5.6vw;
  }
}
@media screen and (max-width: 750px) {
  .yuzurihanomori__subtitle {
    font-size: 1.625rem;
  }
}
@media screen and (max-width: 750px) and (max-width: 750px) {
  .yuzurihanomori__subtitle {
    font-size: 4.8vw;
  }
}

.yuzurihanomori__text {
  margin-top: 1.5rem;
  font-size: 1.25rem;
  line-height: 2.2;
  font-weight: 500;
  letter-spacing: 0.05em;
}
@media screen and (max-width: 750px) {
  .yuzurihanomori__text {
    font-size: 4vw;
  }
}
@media screen and (max-width: 1200px) {
  .yuzurihanomori__text {
    font-size: 1.125rem;
  }
}
@media screen and (max-width: 1200px) and (max-width: 750px) {
  .yuzurihanomori__text {
    font-size: 3.7333333333vw;
  }
}
@media screen and (max-width: 750px) {
  .yuzurihanomori__text {
    font-size: 1rem;
  }
}
@media screen and (max-width: 750px) and (max-width: 750px) {
  .yuzurihanomori__text {
    font-size: 3.4666666667vw;
  }
}

.yuzurihanomori__movie {
  margin-top: 3.5rem;
  width: 78%;
  max-width: 100%;
  position: relative;
  aspect-ratio: 16/9;
  margin-inline: auto;
}
.yuzurihanomori__movie iframe {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
}
@media screen and (max-width: 750px) {
  .yuzurihanomori__movie {
    width: 100%;
    margin-top: 1.875rem;
  }
}

.yuzurihanomori__button {
  max-width: 27.1875rem;
  margin-top: 4rem;
  margin-inline: auto;
}
@media screen and (max-width: 750px) {
  .yuzurihanomori__button {
    margin-top: 2.5rem;
    max-width: 85%;
  }
}
@media screen and (max-width: 430px) {
  .yuzurihanomori__button {
    margin-top: 1.875rem;
    max-width: 95%;
  }
}

.yuzurihanomori-cta {
  position: relative;
  margin-top: 13.3125rem;
  background-image: url(../images/kominka/bg-yuzurihanomori.png);
  background-repeat: no-repeat;
  background-size: cover;
  background-position: top center;
  padding: 4.375rem 6.25rem;
}
@media screen and (max-width: 750px) {
  .yuzurihanomori-cta {
    margin-top: 8.75rem;
    padding: 3.125rem 2.5rem;
  }
}
@media screen and (max-width: 430px) {
  .yuzurihanomori-cta {
    padding: 2.5rem 1.5625rem;
  }
}

.yuzurihanomori-cta__cat01 {
  position: absolute;
  top: -5.25rem;
  right: 13%;
}
@media screen and (max-width: 750px) {
  .yuzurihanomori-cta__cat01 {
    top: -16vw;
    right: 1.5625rem;
  }
}

.yuzurihanomori-cta__box {
  background: rgba(255, 250, 243, 0.9);
  padding: 2.5rem;
}
@media screen and (max-width: 750px) {
  .yuzurihanomori-cta__box {
    padding: 2.1875rem 1.25rem;
  }
}

.yuzurihanomori-cta__box-title {
  font-size: 2rem;
  font-weight: 600;
  line-height: 1.5;
  letter-spacing: 2px;
  text-align: center;
}
@media screen and (max-width: 750px) {
  .yuzurihanomori-cta__box-title {
    font-size: 5.6vw;
  }
}

.yuzurihanomori-cta__box-text {
  margin-top: 1.25rem;
  text-align: center;
  font-size: 1.25rem;
  font-weight: 500;
  line-height: 2.2;
  letter-spacing: 0.05em;
}
@media screen and (max-width: 750px) {
  .yuzurihanomori-cta__box-text {
    font-size: 4vw;
  }
}
@media screen and (max-width: 1200px) {
  .yuzurihanomori-cta__box-text {
    font-size: 1.125rem;
  }
}
@media screen and (max-width: 1200px) and (max-width: 750px) {
  .yuzurihanomori-cta__box-text {
    font-size: 3.7333333333vw;
  }
}
@media screen and (max-width: 750px) {
  .yuzurihanomori-cta__box-text {
    font-size: 1rem;
  }
}
@media screen and (max-width: 750px) and (max-width: 750px) {
  .yuzurihanomori-cta__box-text {
    font-size: 3.4666666667vw;
  }
}

.yuzurihanomori-cta__box-buttons {
  display: flex;
  justify-content: center;
  gap: 3.125rem;
  margin-top: 2.75rem;
}
@media screen and (max-width: 750px) {
  .yuzurihanomori-cta__box-buttons {
    flex-direction: column;
    gap: 1.875rem;
  }
}

.yuzurihanomori-cta__box-button {
  background-color: var(--color-primary);
}

/* 猫のアニメーション */
.features-overview__cat01 {
  opacity: 0;
  transition: opacity 1.2s ease;
}
.features-overview__cat01.is-active {
  opacity: 1;
}

/****************************************/
/****************************************/
.remodeling-about .service-about__bottom {
  margin-top: 7.8125rem;
}
@media screen and (max-width: 750px) {
  .remodeling-about .service-about__bottom {
    margin-top: 3.75rem;
  }
}
.remodeling-about .service-about__bottom .service-about__bottom-content {
  margin-top: 1.25rem;
}
.remodeling-about .service-about__bottom .service-about__bottom-img-wrap {
  margin-top: 2.5rem;
}
@media screen and (max-width: 750px) {
  .remodeling-about .service-about__bottom .service-about__bottom-img-wrap {
    margin-top: 5rem;
  }
}

.remodeling-about__bottom {
  position: relative;
  display: flex;
  justify-content: space-between;
  align-items: center;
  padding-left: 7.3125rem;
  padding-right: 5.1875rem;
  padding-bottom: 5rem;
  margin-top: 3.75rem;
  gap: 9.9375rem;
}
@media screen and (max-width: 1200px) {
  .remodeling-about__bottom {
    gap: clamp(3.75rem, -3.359rem + 15.14vw, 8rem);
    padding-left: clamp(1.25rem, -0.527rem + 3.79vw, 2.313rem);
    padding-right: clamp(1.125rem, -0.652rem + 3.79vw, 2.188rem);
  }
}
@media screen and (max-width: 750px) {
  .remodeling-about__bottom {
    flex-direction: column-reverse;
    margin-inline: auto;
    margin-top: 2.5rem;
    text-align: center;
    padding-left: 0;
    padding-right: 0;
    gap: 1.875rem;
    margin-top: 3.75rem;
  }
}
.remodeling-about__bottom .remodeling-about__bottom-content {
  position: relative;
  flex: 1;
  width: 100%;
  max-width: 45.625rem;
}
@media screen and (max-width: 750px) {
  .remodeling-about__bottom .remodeling-about__bottom-content {
    width: 100%;
    padding-left: 0;
    margin-inline: auto;
  }
}
.remodeling-about__bottom .remodeling-about__bottom-img-wrap {
  position: relative;
  width: 39%;
  pointer-events: none;
  flex-shrink: 0;
}
@media screen and (max-width: 750px) {
  .remodeling-about__bottom .remodeling-about__bottom-img-wrap {
    z-index: 1;
    width: 73%;
    margin-right: auto;
  }
}

/****************************************/
/****************************************/
.remodeling-case {
  padding-bottom: 6.9375rem;
}
@media screen and (max-width: 750px) {
  .remodeling-case {
    padding-bottom: 3.75rem;
  }
}

.remodeling-case__cards {
  position: relative;
  margin-top: 5.5rem;
  display: grid;
  grid-template-columns: 1fr 1fr;
  -moz-column-gap: 2.9375rem;
       column-gap: 2.9375rem;
  row-gap: 2.5rem;
}
@media screen and (max-width: 750px) {
  .remodeling-case__cards {
    grid-template-columns: 1fr;
    row-gap: 1.5625rem;
  }
}

.remodeling-case__cat01 {
  position: absolute;
  top: -5.75rem;
  right: 2.5rem;
}
@media screen and (max-width: 750px) {
  .remodeling-case__cat01 {
    top: -13.0666666667vw;
  }
}

.remodeling-case__cat01 {
  opacity: 0;
  transition: opacity 0.8s ease;
}
.remodeling-case__cat01.is-active {
  opacity: 1;
}

.remodeling-case__card {
  width: 100%;
  position: relative;
  overflow: hidden;
  isolation: isolate;
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  justify-content: flex-end;
  padding: 2.1875rem 3.125rem;
  min-height: 20.125rem;
  text-decoration: none;
  border-radius: 0.625rem;
  background-position: center;
  background-size: cover;
  background-repeat: no-repeat;
}
@media screen and (max-width: 750px) {
  .remodeling-case__card {
    padding: 1.25rem 2.1875rem;
  }
}
@media screen and (max-width: 430px) {
  .remodeling-case__card {
    min-height: 15rem;
    padding: 0.9375rem 1.25rem;
  }
}
.remodeling-case__card::after {
  content: "";
  position: absolute;
  inset: 0;
  background: rgba(0, 0, 0, 0.3);
  z-index: 1;
  pointer-events: none;
}
.remodeling-case__card::before {
  content: "";
  position: absolute;
  inset: 0;
  background-size: cover;
  background-position: center;
  background-repeat: no-repeat;
  transition: transform 0.6s ease;
  z-index: 0;
}
.remodeling-case__card:hover::before {
  transform: scale(1.1);
}
.remodeling-case__card > * {
  position: relative;
  z-index: 2;
}
.remodeling-case__card.remodeling-case__card--interior {
  background-image: url(../images/remodeling/bg-case-interior.png);
}
.remodeling-case__card.remodeling-case__card--storage {
  background-image: url(../images/remodeling/bg-case-storage.png);
}
.remodeling-case__card.remodeling-case__card--pet {
  background-image: url(../images/remodeling/bg-case-pet.png);
}
.remodeling-case__card.remodeling-case__card--exterior-wall {
  background-image: url(../images/remodeling/bg-case-exterior-wall.png);
}
.remodeling-case__card.remodeling-case__card--roof {
  background-image: url(../images/remodeling/bg-case-roof.png);
}
.remodeling-case__card.remodeling-case__card--garden {
  background-image: url(../images/remodeling/bg-case-garden.png);
}
.remodeling-case__card.remodeling-case__card--kitchen {
  background-image: url(../images/remodeling/bg-case-kitchen.png);
}
.remodeling-case__card.remodeling-case__card--bathtub {
  background-image: url(../images/remodeling/bg-case-bathtub.png);
}
.remodeling-case__card.remodeling-case__card--washroom {
  background-image: url(../images/remodeling/bg-case-washroom.png);
}
.remodeling-case__card.remodeling-case__card--toilet {
  background-image: url(../images/remodeling/bg-case-toilet.png);
}
.remodeling-case__card.remodeling-case__card--insulation {
  background-image: url(../images/remodeling/bg-case-insulation.png);
}
.remodeling-case__card.remodeling-case__card--nursing-care {
  background-image: url(../images/remodeling/bg-case-nursing-care.png);
}
.remodeling-case__card.remodeling-case__card--solar-power {
  background-image: url(../images/remodeling/bg-case-solar-power.png);
}
.remodeling-case__card.remodeling-case__card--diy {
  background-image: url(../images/remodeling/bg-case-diy.png);
}

.remodeling-case__card-title {
  display: inline-block;
  font-family: var(--font-shippori-mincho);
  font-size: 1.5rem;
  font-weight: 600;
  line-height: 1.5;
  letter-spacing: 0.05em;
  color: var(--color-white);
  padding-bottom: 0.25rem;
  border-bottom: 1px solid var(--color-white);
}
@media screen and (max-width: 750px) {
  .remodeling-case__card-title {
    font-size: 4.5333333333vw;
  }
}

.remodeling-case__card-text {
  color: var(--color-white);
  margin-top: 0.5625rem;
}

@media screen and (max-width: 750px) {
  .c-section-title.c-section-title--bl.remodeling-case__title,
.c-section-title.c-section-title--bl.building-flow__title {
    font-size: 1.5rem;
  }
}
@media screen and (max-width: 750px) and (max-width: 750px) {
  .c-section-title.c-section-title--bl.remodeling-case__title,
.c-section-title.c-section-title--bl.building-flow__title {
    font-size: 4.5333333333vw;
  }
}

.remodeling-flow {
  padding-bottom: 11.1875rem;
}

/* 猫のアニメーション */
.new-case__cat01,
.new-case__cat02,
.service-area__cat02 {
  opacity: 0;
  transition: opacity 1.6s ease;
}
.new-case__cat01.is-active,
.new-case__cat02.is-active,
.service-area__cat02.is-active {
  opacity: 1;
}

.service-area__cat01 {
  opacity: 0;
  transition: opacity 0.8s ease;
}
.service-area__cat01.is-active {
  opacity: 1;
}

/****************************************/
/****************************************/
.work-search {
  position: relative;
  max-width: 75rem;
  width: 100%;
  margin-inline: auto;
  padding: 10.5rem 1.25rem 12.125rem;
}
@media screen and (max-width: 750px) {
  .work-search {
    padding: 7.5rem 0.9375rem 8.75rem;
  }
}

.work-search__box {
  position: relative;
  padding: 5.9375rem 1.25rem 4.5625rem;
  margin-inline: auto;
  background-color: var(--color-light-beige);
  box-shadow: 0px 4px 10px rgba(0, 0, 0, 0.1);
}
@media screen and (max-width: 750px) {
  .work-search__box {
    padding: 2.5rem 0.9375rem 3.4375rem;
  }
}

.work-search__cat01 {
  position: absolute;
  top: -5.75rem;
  left: 13%;
}
@media screen and (max-width: 750px) {
  .work-search__cat01 {
    top: -12.5333333333vw;
  }
}

.work-search__box-inner {
  max-width: 55.25rem;
  width: 100%;
  padding: 0 0.9375rem;
  margin-inline: auto;
}

.work-search__title {
  font-family: var(--font-shippori-mincho);
  font-size: 1.5rem;
  font-weight: 500;
  line-height: 1.8;
  color: var(--color-green-leaf);
  letter-spacing: 0.1em;
}
@media screen and (max-width: 750px) {
  .work-search__title {
    font-size: 4.5333333333vw;
  }
}
.work-search__title.work-search__title--category {
  text-align: center;
  padding-bottom: 3.75rem;
}

.work-search__category {
  margin-top: 2.3125rem;
}

.work-search__category-title {
  font-family: var(--font-shippori-mincho);
  font-size: 1rem;
  font-weight: 700;
  line-height: 1.8;
  color: #232323;
  letter-spacing: 0.1em;
}
@media screen and (max-width: 750px) {
  .work-search__category-title {
    font-size: 3.4666666667vw;
  }
}

.work-search__category-list {
  display: flex;
  flex-wrap: wrap;
  gap: 1.25rem;
  margin-top: 1.25rem;
}

.work-cat-item {
  display: flex;
  align-items: center;
  cursor: pointer;
  position: relative;
}

.work-cat-item input[type=checkbox] {
  display: none; /* 既存のチェックボックスを非表示 */
}

.work-cat-item__check {
  width: 1.375rem;
  height: 1.375rem;
  border: 2px solid #BEBEBE;
  background-color: #BEBEBE;
  margin-right: 0.75rem;
  display: inline-block;
  position: relative;
}

.work-cat-item input[type=checkbox]:checked + .work-cat-item__check {
  background-color: var(--color-white);
}

.work-cat-item input[type=checkbox]:checked + .work-cat-item__check::after {
  content: "";
  position: absolute;
  left: 50%;
  top: 50%;
  width: 0.5rem;
  height: 0.875rem;
  border-right: 1px solid var(--color-green-leaf);
  border-bottom: 1px solid var(--color-green-leaf);
  transform: translate(-50%, -65%) rotate(45deg);
  pointer-events: none;
}

.work-cat-item input[type=checkbox]:checked + .work-cat-item__check::before {
  content: "";
  display: none;
}

.work-cat-item__label {
  font-family: var(--font-shippori-mincho);
  font-size: 1rem;
  font-weight: 400;
  line-height: 1.8;
  color: #232323;
  letter-spacing: 0.1em;
}
@media screen and (max-width: 750px) {
  .work-cat-item__label {
    font-size: 3.4666666667vw;
  }
}

.work-search__keyword {
  margin-top: 1.9375rem;
}

.work-search__button {
  margin-top: 5.3125rem;
  max-width: 26.6875rem;
  width: 100%;
  display: flex;
  justify-content: center;
  align-items: center;
  gap: 1.75rem;
  background-color: var(--color-green-leaf);
  color: var(--color-white);
  padding: 1.25rem;
  margin-inline: auto;
}
.work-search__button:hover {
  opacity: 0.7;
}
@media screen and (max-width: 750px) {
  .work-search__button {
    margin-top: 2.5rem;
  }
}

.work-search__button-icon {
  background-image: url(../images/icon/search-icon.svg);
  background-repeat: no-repeat;
  background-size: contain;
  background-position: top center;
  width: 1.3125rem;
  aspect-ratio: 1/1;
}

.work-search__button-text {
  font-family: var(--font-shippori-mincho);
  font-size: 1.25rem;
  font-weight: 400;
  line-height: 1.8;
  letter-spacing: 0.1em;
}
@media screen and (max-width: 750px) {
  .work-search__button-text {
    font-size: 4vw;
  }
}

.work-search__cat02 {
  position: absolute;
  bottom: 0.625rem;
  right: 3.125rem;
}
@media screen and (max-width: 750px) {
  .work-search__cat02 {
    right: 2.5rem;
  }
}

.work-result {
  position: relative;
  padding: 4.375rem 0 10.5rem;
}
@media screen and (max-width: 750px) {
  .work-result {
    padding: 3.125rem 0 8.75rem;
  }
}

.work-result__cards {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  -moz-column-gap: 5rem;
       column-gap: 5rem;
  row-gap: 3.75rem;
}
@media screen and (max-width: 750px) {
  .work-result__cards {
    grid-template-columns: 1fr;
  }
}

.work-result__card {
  display: flex;
  flex-direction: column;
}

.work-result__card-img-wrap {
  width: 100%;
  aspect-ratio: 340/227;
  overflow: hidden;
  display: block;
}

.work-result__card-img {
  width: 100%;
  height: 100%;
  -o-object-fit: cover;
  object-fit: cover;
  transition: transform 0.5s ease;
}
.work-result__card-img:hover {
  transform: scale(1.1);
}

.work-result__card-title {
  font-size: 1.25rem;
  font-weight: 500;
  color: #232323;
  line-height: 1.6;
  letter-spacing: 0.05em;
  margin-top: 0.625rem;
  text-align: center;
}
@media screen and (max-width: 750px) {
  .work-result__card-title {
    font-size: 4vw;
  }
}

.work-result__card-category {
  display: flex;
  justify-content: center;
  align-items: stretch;
  flex-wrap: wrap;
  -moz-column-gap: 0.5rem;
       column-gap: 0.5rem;
  row-gap: 0.75rem;
  margin-top: 0.375rem;
}

.work-result__card-category-link {
  display: inline-block;
  font-size: 0.8125rem;
  font-weight: 500;
  line-height: 1.8769230769;
  border: 1px solid var(--color-green-leaf);
  background-color: var(--color-white);
  color: var(--color-green-leaf);
  padding: 0.0625rem 0.625rem;
  border-radius: 1.21875rem;
  transition: background-color 0.3s ease;
}
@media screen and (max-width: 750px) {
  .work-result__card-category-link {
    font-size: 3.0666666667vw;
  }
}
.work-result__card-category-link:hover {
  opacity: 1;
  background-color: var(--color-green-leaf);
  color: var(--color-white);
}

.work-result__cat01 {
  position: absolute;
  bottom: 0;
  left: 5%;
}

.work-result__pager {
  margin-top: 6.25rem;
}
@media screen and (max-width: 750px) {
  .work-result__pager {
    margin-top: 3.75rem;
  }
}

.work-beforeafter {
  position: relative;
  max-width: 50rem;
  width: 100%;
  margin: 1.875rem auto 0;
  aspect-ratio: 16/9;
  overflow: hidden;
}

.cndkbeforeafter-item img {
  max-width: none !important;
}

/* Before 側を基準にする */
.beforeafterdrag [data-type=before] {
  position: relative;
  z-index: 1;
}

/* 黒オーバーレイ（Beforeの上・Afterの下） */
.beforeafterdrag [data-type=before]::after {
  content: "";
  position: absolute;
  inset: 0;
  background: rgba(0, 0, 0, 0.4);
  pointer-events: none;
  z-index: 5;
}

/* After は必ず Before より前 */
.beforeafterdrag [data-type=after] {
  position: absolute;
  inset: 0;
  z-index: 2;
}

/* ハンドルは最前面 */
.beforeafterdrag .cndkbeforeafter-handle {
  z-index: 3;
}

.cndkbeforeafter-seperator > div > span,
.cndkbeforeafter-theme-light .cndkbeforeafter-seperator > div > span {
  width: 2.125rem;
  height: 2.125rem;
  margin-top: -20px;
  margin-left: -17px;
  left: auto !important;
  background: var(--color-green-leaf) url(../images/icon/eye-icon.svg) 50% 50% no-repeat !important;
  background-size: 100%;
  border-color: var(--color-green-leaf) !important;
  top: 40%;
}

.cndkbeforeafter-seperator > div > span::before,
.cndkbeforeafter-seperator > div > span::after {
  border-width: 0 !important;
}

.cndkbeforeafter-seperator > div > span::after, .cndkbeforeafter-seperator > div > span::before {
  font-family: var(--font-domine);
  font-size: 1rem;
  font-weight: 700;
  letter-spacing: 0.1em;
  border-width: 0px !important;
  transform: rotate(0deg);
  color: var(--color-white);
  padding: 0px;
  white-space: nowrap;
}
@media screen and (max-width: 750px) {
  .cndkbeforeafter-seperator > div > span::after, .cndkbeforeafter-seperator > div > span::before {
    font-size: 3.4666666667vw;
  }
}

.cndkbeforeafter-seperator > div > span::before {
  content: "before";
  right: 100%;
  text-align: right;
  letter-spacing: 0;
}

.cndkbeforeafter-seperator > div > span::after {
  content: "after";
  left: 100%;
  text-align: left;
  letter-spacing: 0;
}

.cndkbeforeafter-seperator::after {
  position: absolute;
  content: "";
  left: 0;
  top: 55%;
  background-image: url("../images/icon/arrow-left-right.svg");
  background-repeat: no-repeat;
  background-position: center bottom;
  background-size: 24px 24px;
  padding-bottom: 28px;
}

/* 矢印アイコン */
.cndkbeforeafter-seperator > div > span .ba-arrows {
  position: absolute;
  top: 100%;
  left: 25%;
  transform: translateX(-50%);
  width: 1rem;
  height: 1rem;
  margin-top: 0.625rem;
  background: url("../images/icon/arrow-left-right.svg") no-repeat center/contain;
  pointer-events: none;
  z-index: 2;
}

/* セパレーターの hover / active 効果を完全に無効化 */
.cndkbeforeafter-seperator,
.cndkbeforeafter-seperator:hover,
.cndkbeforeafter-seperator.active {
  opacity: 1 !important;
}

/* 中のアイコン・テキストの拡大縮小を無効化 */
.cndkbeforeafter-seperator *,
.cndkbeforeafter-seperator:hover *,
.cndkbeforeafter-seperator.active * {
  transform: none !important;
}

/* transition 自体を無効化したい場合（任意） */
.cndkbeforeafter-seperator,
.cndkbeforeafter-seperator * {
  transition: none !important;
}

.work-single {
  padding: 13.75rem 0;
}
@media screen and (max-width: 750px) {
  .work-single {
    padding: 7.5rem 0;
  }
}

.work-single__title {
  font-family: var(--font-shippori-mincho);
  font-size: 2.5rem;
  font-weight: 400;
  display: block;
  line-height: 1.8;
  letter-spacing: 0.05em;
  color: var(--color-text);
  border-left: 5px solid var(--color-green-leaf);
  padding-left: 1.375rem;
  display: inline-block;
}
@media screen and (max-width: 750px) {
  .work-single__title {
    font-size: 6.6666666667vw;
  }
}
@media screen and (max-width: 1024px) {
  .work-single__title {
    font-size: 2.375rem;
  }
}
@media screen and (max-width: 1024px) and (max-width: 750px) {
  .work-single__title {
    font-size: 6.4vw;
  }
}
@media screen and (max-width: 750px) {
  .work-single__title {
    font-size: 2.5rem;
    text-align: left;
  }
}
@media screen and (max-width: 750px) and (max-width: 750px) {
  .work-single__title {
    font-size: 6.6666666667vw;
  }
}

.work-single__tags {
  margin-top: 0.5rem;
  padding: 0 2.375rem;
  display: flex;
  flex-wrap: wrap;
  gap: 0.875rem;
}

.work-single__tag a {
  display: inline-block;
  padding: 0.125rem 1.125rem;
  border: 1.76px solid var(--color-green-leaf);
  border-radius: 2.125rem;
  font-size: 1.25rem;
  font-weight: 500;
  color: var(--color-green-leaf);
  background: var(--color-white);
  text-decoration: none;
}
@media screen and (max-width: 750px) {
  .work-single__tag a {
    font-size: 4vw;
  }
}

.work-single__tag a:hover {
  opacity: 1;
  background: var(--color-green-leaf);
  color: var(--color-white);
}

.work-gallery-main {
  max-width: 57.625rem;
  width: 100%;
  margin-inline: auto;
  margin-top: 5rem;
}

.work-gallery-main img {
  width: 100%;
  height: auto;
  display: block;
}

.work-gallery-thumb {
  position: relative;
  width: 100vw;
  left: 50%;
  transform: translateX(-50%);
  margin-top: 2.5rem;
}

.work-gallery-thumb.is-center .swiper-wrapper {
  justify-content: center;
}
@media screen and (max-width: 750px) {
  .work-gallery-thumb.is-center .swiper-wrapper {
    justify-content: flex-start;
  }
}

.work-gallery-thumb .swiper-slide {
  cursor: pointer;
}

.work-gallery-thumb .swiper-slide-thumb-active {
  opacity: 1;
}

.work-gallery-thumb img {
  width: 100%;
  height: auto;
  display: block;
  aspect-ratio: 294/179;
  -o-object-fit: cover;
     object-fit: cover;
}

.work-overview {
  margin-top: 7.5rem;
}

.work-overview__table {
  border-collapse: collapse;
  width: 100%;
  margin-top: 5rem;
}

.work-overview__table-row:not(:last-child) {
  border-bottom: 1px dotted #AAAAAA;
}

.work-overview__table-head {
  width: 12.6875rem;
  background-color: var(--color-green-leaf);
  color: var(--color-white);
  padding: 0.9375rem 1.5625rem;
  text-align: left;
  vertical-align: middle;
}
@media screen and (max-width: 750px) {
  .work-overview__table-head {
    width: 36%;
    padding: 0.625rem;
  }
}
@media screen and (max-width: 430px) {
  .work-overview__table-head {
    width: 38%;
    padding: 0.4375rem;
  }
}

.work-overview__table-data {
  background-color: var(--color-white);
  padding: 0.625rem 1.25rem;
}
@media screen and (max-width: 750px) {
  .work-overview__table-data {
    padding: 0.625rem;
  }
}
@media screen and (max-width: 430px) {
  .work-overview__table-data {
    padding: 0.9375rem 0.625rem;
  }
}

.work-overview__box-wrap {
  margin-top: 5rem;
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  justify-content: center;
  align-items: stretch;
  gap: 2.375rem;
}
@media screen and (max-width: 750px) {
  .work-overview__box-wrap {
    grid-template-columns: 1fr;
  }
}

.work-overview__box {
  background-color: var(--color-white);
  padding: 2.5rem;
  border-radius: 1.8125rem;
}
@media screen and (max-width: 750px) {
  .work-overview__box {
    padding: 2.5rem 1.875rem;
  }
}

.work-overview__box-title {
  font-family: var(--font-shippori-mincho);
  font-size: 1.875rem;
  font-weight: 400;
  display: block;
  line-height: 1.5;
  letter-spacing: 0.05em;
  color: var(--color-text);
  border-left: 5px solid var(--color-green-leaf);
  padding-left: 1.375rem;
  display: inline-block;
}
@media screen and (max-width: 750px) {
  .work-overview__box-title {
    font-size: 5.3333333333vw;
  }
}
@media screen and (max-width: 1024px) {
  .work-overview__box-title {
    font-size: 1.5rem;
  }
}
@media screen and (max-width: 1024px) and (max-width: 750px) {
  .work-overview__box-title {
    font-size: 4.5333333333vw;
  }
}
@media screen and (max-width: 750px) {
  .work-overview__box-title {
    font-size: 1.875rem;
  }
}
@media screen and (max-width: 750px) and (max-width: 750px) {
  .work-overview__box-title {
    font-size: 5.3333333333vw;
  }
}

.work-overview__box-subtitle {
  font-size: 1.5rem;
  font-weight: 500;
  line-height: 1.8;
  letter-spacing: 0.05em;
  color: var(--color-black);
  margin-top: 1.875rem;
}
@media screen and (max-width: 750px) {
  .work-overview__box-subtitle {
    font-size: 4.5333333333vw;
  }
}

.work-overview__box-text {
  margin-top: 1.25rem;
}

.work-detail {
  margin-top: 7.625rem;
}

.work-detail__list {
  display: flex;
  flex-direction: column;
  gap: 5.125rem;
}

.work-detail__item {
  display: flex;
  justify-content: center;
  align-items: center;
  gap: 2.5rem;
}
@media screen and (max-width: 750px) {
  .work-detail__item {
    flex-direction: column;
    gap: 0;
  }
}

.work-detail__item:nth-child(even) {
  flex-direction: row-reverse;
}
@media screen and (max-width: 750px) {
  .work-detail__item:nth-child(even) {
    flex-direction: column;
  }
}

.work-detail__item-img-wrap {
  flex-shrink: 0;
  width: 47.5%;
  position: relative;
}
@media screen and (max-width: 750px) {
  .work-detail__item-img-wrap {
    order: 2;
    width: 100%;
    margin-top: 1.25rem;
  }
}

.work-detail__item-ba {
  width: 100%;
  height: 100%;
  position: relative;
}

.work-detail__item-info {
  flex: 1;
}
@media screen and (max-width: 750px) {
  .work-detail__item-info {
    display: contents;
  }
}

.work-detail__item-title {
  font-size: 1.875rem;
  font-weight: 900;
  line-height: 2.2;
  letter-spacing: 0.05em;
  color: var(--color-black);
}
@media screen and (max-width: 750px) {
  .work-detail__item-title {
    font-size: 5.3333333333vw;
  }
}
@media screen and (max-width: 750px) {
  .work-detail__item-title {
    order: 1;
    text-align: center;
  }
}

.work-detail__item-text {
  margin-top: 1.125rem;
}
@media screen and (max-width: 750px) {
  .work-detail__item-text {
    order: 3;
    margin-top: 1.25rem;
  }
}

.work-user-voice {
  padding-top: 7.5rem;
}
@media screen and (max-width: 750px) {
  .work-user-voice {
    padding-top: 5rem;
  }
}

.work-user-voice__box {
  width: 100%;
  background-color: var(--color-white);
  padding: 3.625rem 4.5rem;
  border-radius: 1.25rem;
  margin-top: 2.6875rem;
}
@media screen and (max-width: 750px) {
  .work-user-voice__box {
    padding: 2.5rem 1.875rem;
  }
}

.staff-list {
  padding: 5rem 0 7.5rem;
}
@media screen and (max-width: 750px) {
  .staff-list {
    padding: 2.8125rem 0;
  }
}

.staff-list__inner {
  max-width: 66rem;
  width: 100%;
  margin-inline: auto;
  padding: 0 1.25rem;
}

.staff-list__cards {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  -moz-column-gap: 1.75rem;
       column-gap: 1.75rem;
  row-gap: 2.1875rem;
}
@media screen and (max-width: 1024px) {
  .staff-list__cards {
    grid-template-columns: repeat(3, 1fr);
  }
}
@media screen and (max-width: 750px) {
  .staff-list__cards {
    grid-template-columns: repeat(2, 1fr);
    -moz-column-gap: 0.9375rem;
         column-gap: 0.9375rem;
    row-gap: 1.5625rem;
  }
}

.staff-card__info {
  display: flex;
  justify-content: space-between;
  align-items: flex-end;
  gap: 0.9375rem;
  margin-top: 0.625rem;
}
@media screen and (max-width: 750px) {
  .staff-card__info {
    flex-direction: column;
    align-items: center;
  }
}

.staff-card__info-name {
  font-family: var(--font-shippori-mincho);
  font-size: 1.25rem;
  font-weight: 600;
  line-height: 1.5;
  letter-spacing: 0.05em;
}
@media screen and (max-width: 750px) {
  .staff-card__info-name {
    font-size: 4vw;
  }
}
@media screen and (max-width: 1200px) {
  .staff-card__info-name {
    font-size: 1.125rem;
  }
}
@media screen and (max-width: 1200px) and (max-width: 750px) {
  .staff-card__info-name {
    font-size: 3.7333333333vw;
  }
}
@media screen and (max-width: 750px) {
  .staff-card__info-name {
    font-size: 1rem;
  }
}
@media screen and (max-width: 750px) and (max-width: 750px) {
  .staff-card__info-name {
    font-size: 3.4666666667vw;
  }
}

.staff-card__info-position {
  font-family: var(--font-shippori-mincho);
  font-size: 1rem;
  font-weight: 500;
  line-height: 1.5;
  letter-spacing: 0.05em;
  color: var(--color-dark-gray2);
  margin-top: 0.25rem;
}
@media screen and (max-width: 750px) {
  .staff-card__info-position {
    font-size: 3.4666666667vw;
  }
}
@media screen and (max-width: 1200px) {
  .staff-card__info-position {
    font-size: 1rem;
  }
}
@media screen and (max-width: 1200px) and (max-width: 750px) {
  .staff-card__info-position {
    font-size: 3.4666666667vw;
  }
}
@media screen and (max-width: 750px) {
  .staff-card__info-position {
    font-size: 0.875rem;
  }
}
@media screen and (max-width: 750px) and (max-width: 750px) {
  .staff-card__info-position {
    font-size: 3.2vw;
  }
}

.staff-card__info-right {
  flex-shrink: 0;
}
@media screen and (max-width: 750px) {
  .staff-card__info-right {
    width: 60%;
  }
}

.staff-card__img-wrap {
  aspect-ratio: 320/452;
  position: relative;
  overflow: hidden;
  display: block;
}

/* ▼ オーバーレイ */
.staff-card__img-wrap::after {
  content: "";
  position: absolute;
  inset: 0;
  background: linear-gradient(180deg, rgba(0, 0, 0, 0) 67.81%, rgba(0, 0, 0, 0.2) 100%);
  z-index: 4;
  pointer-events: none;
}

.staff-card__img-wrap:hover {
  opacity: 1;
}

.staff-card__name {
  position: absolute;
  content: "";
  bottom: 3.125rem;
  left: 1.25rem;
  display: flex;
  flex-direction: column;
  gap: 3.125rem;
  transform: rotate(-2.14deg);
  z-index: 5;
}
@media screen and (max-width: 750px) {
  .staff-card__name {
    gap: clamp(1.563rem, 0.4rem + 5.81vw, 3.125rem);
  }
}

.staff-card__name span {
  display: block;
  font-family: var(--font-hurricane);
  font-size: 3.625rem;
  font-weight: 400;
  color: var(--color-white);
  line-height: 0.08;
}
@media screen and (max-width: 1440px) {
  .staff-card__name span {
    font-size: 4.0277777778vw;
  }
}
@media screen and (max-width: 1024px) {
  .staff-card__name span {
    font-size: 5.46875vw;
  }
}
@media screen and (max-width: 750px) {
  .staff-card__name span {
    font-size: 7.4666666667vw;
  }
}

/* 重ねる */
.staff-card__front,
.staff-card__back {
  position: absolute;
  width: 100%;
  inset: 0;
}

.staff-card__front {
  z-index: 3;
}

.staff-card__back {
  z-index: 2;
}

/* 初期状態 */
.staff-card__front {
  opacity: 1;
}

.staff-card__back {
  opacity: 0;
}

/* 切替アニメーション */
.staff-card__front,
.staff-card__back {
  transition: opacity 0.4s ease;
}

/* hover切替 */
.staff-card__img-wrap:hover .staff-card__front {
  opacity: 0;
}

.staff-card__img-wrap:hover .staff-card__back {
  opacity: 1;
}

/****************************************/
/****************************************/
.staff-modal {
  position: fixed;
  inset: 0;
  display: none;
  z-index: 1000;
}

/* モーダルが非表示のとき */
.staff-modal[aria-hidden=true] {
  display: none;
}

.staff-modal[aria-hidden=false] {
  display: block;
}

.staff-modal__overlay {
  position: absolute;
  inset: 0;
  background: rgba(98, 98, 98, 0.6);
}

/* モーダル本体 */
.staff-modal__content {
  position: absolute;
  content: "";
  top: 50%;
  left: 50%;
  transform: translate(-50%, -50%);
  max-width: 51.25rem;
  width: 100%;
  max-height: calc(100vh - 80px);
  margin: 0 auto;
  background: var(--color-white);
  border-radius: 0.625rem;
  border: 5px solid var(--color-green-leaf);
  overflow: visible;
  opacity: 0;
  visibility: hidden;
  transition: opacity 0.3s ease;
}
@media screen and (max-width: 1024px) {
  .staff-modal__content {
    max-width: clamp(37.5rem, 3.114rem + 73.26vw, 50rem);
  }
}
@media screen and (max-width: 750px) {
  .staff-modal__content {
    top: 45%;
  }
}

/* 内側：中身だけ隠す */
.staff-modal__inner {
  overflow: hidden;
  border-radius: 0.625rem;
  height: 100%;
}

/* ▼ 追加：中身は最初は隠す */
/* ▼ 表示状態 */
.staff-modal.is-ready .staff-modal__content {
  opacity: 1;
  visibility: visible;
}

.staff-modal__nav {
  position: absolute;
  top: 50%;
  transform: translateY(-50%);
  width: 3.375rem;
  height: 3.375rem;
  border-radius: 50%;
  background: var(--color-white);
  border: none;
  cursor: pointer;
  z-index: 1001;
}
@media screen and (max-width: 1024px) {
  .staff-modal__nav {
    width: 2.5rem;
    height: 2.5rem;
  }
}
@media screen and (max-width: 750px) {
  .staff-modal__nav {
    top: unset;
    bottom: -5rem;
  }
}
.staff-modal__nav::before {
  content: "";
  position: absolute;
  top: 50%;
  left: 50%;
  transform: translate(-50%, -50%);
  width: 1.25rem;
  height: 0.1875rem;
  background-repeat: no-repeat;
  background-position: center;
  background-size: contain;
}

.staff-modal__nav--prev {
  left: -69px;
}
@media screen and (max-width: 1024px) {
  .staff-modal__nav--prev {
    left: -55px;
  }
}
@media screen and (max-width: 750px) {
  .staff-modal__nav--prev {
    left: calc(50% - 75px);
  }
}
.staff-modal__nav--prev::before {
  background-image: url("../images/icon/modal-left-arrow.svg");
}

.staff-modal__nav--next {
  right: -69px;
}
@media screen and (max-width: 1024px) {
  .staff-modal__nav--next {
    right: -55px;
  }
}
@media screen and (max-width: 750px) {
  .staff-modal__nav--next {
    right: calc(50% - 75px);
  }
}
.staff-modal__nav--next::before {
  background-image: url("../images/icon/modal-right-arrow.svg");
}

/* 中身をスクロール */
.staff-modal__body {
  max-height: calc(100vh - 160px);
  overflow-y: auto;
  padding: 3.75rem;
  -webkit-overflow-scrolling: touch; /* iOS対応 */
}
@media screen and (max-width: 1024px) {
  .staff-modal__body {
    padding: 3.125rem 2.5rem;
  }
}
@media screen and (max-width: 750px) {
  .staff-modal__body {
    max-height: calc(100vh - 250px);
    padding: 3.125rem 1.875rem;
  }
}

.staff-modal__close {
  position: absolute;
  content: "";
  right: 0.9375rem;
  top: 0.3125rem;
  color: var(--color-green-leaf);
  font-size: 3.125rem;
  z-index: 20;
  pointer-events: auto;
}
@media screen and (max-width: 750px) {
  .staff-modal__close {
    right: 0.3125rem;
    top: 0.625rem;
    font-size: 1.875rem;
  }
}

.staff-modal__loading {
  position: absolute;
  inset: 0;
  display: flex;
  flex-direction: column;
  justify-content: center;
  align-items: center;
  background: rgba(255, 255, 255, 0.9);
  z-index: 10;
}

.staff-modal__loading[aria-hidden=true] {
  display: none;
}

.staff-modal__spinner {
  width: 2.5rem;
  height: 2.5rem;
  border: 4px solid #ddd;
  border-top-color: var(--color-primary);
  border-radius: 50%;
  -webkit-animation: staff-spin 0.8s linear infinite;
          animation: staff-spin 0.8s linear infinite;
}

.staff-modal__spinner-text {
  margin-top: 0.9375rem;
}

@-webkit-keyframes staff-spin {
  to {
    transform: rotate(360deg);
  }
}

@keyframes staff-spin {
  to {
    transform: rotate(360deg);
  }
}
.staff-modal__profile {
  display: flex;
  gap: 2.5rem;
}
@media screen and (max-width: 1024px) {
  .staff-modal__profile {
    gap: clamp(0.938rem, -3.361rem + 9.16vw, 2.5rem);
  }
}
@media screen and (max-width: 750px) {
  .staff-modal__profile {
    flex-direction: column-reverse;
    gap: 1.5625rem;
  }
}

.staff-modal__profile-left {
  position: relative;
  width: 18.75rem;
  border-top-left-radius: 0.625rem;
  border-top-right-radius: 0.625rem;
  flex-shrink: 0;
}
@media screen and (max-width: 1024px) {
  .staff-modal__profile-left {
    width: clamp(14.375rem, 5.778rem + 18.32vw, 17.5rem);
  }
}
@media screen and (max-width: 750px) {
  .staff-modal__profile-left {
    width: 100%;
  }
}

.staff-modal__profile-left img {
  width: 100%;
  height: 100%;
  -o-object-fit: cover;
     object-fit: cover;
  -o-object-position: top;
     object-position: top;
  display: block;
}

.staff-modal__profile-right {
  flex: 1;
}

.staff-modal__profile-position {
  color: #232323;
}

.staff-modal__profile-name {
  position: relative;
  display: flex;
  flex-wrap: wrap;
  align-items: flex-end;
  gap: 0.6875rem;
}
.staff-modal__profile-name::after {
  position: absolute;
  content: "";
  height: 0.1875rem;
  width: 2.75rem;
  bottom: 0;
  left: 0;
  background-color: var(--color-green-leaf);
}

.staff-modal__profile-name-ja {
  font-size: 1.5rem;
  font-weight: 900;
  line-height: 2.2;
  letter-spacing: 0.05em;
  color: #111111;
}
@media screen and (max-width: 750px) {
  .staff-modal__profile-name-ja {
    font-size: 4.5333333333vw;
  }
}

.staff-modal__profile-name-roman {
  color: #616161;
}

.staff-modal__profile-qualifications {
  margin-top: 1.875rem;
}

.staff-modal__subtitle {
  font-size: 1.25rem;
  font-weight: 900;
  line-height: 2.2;
  letter-spacing: 0.05em;
  color: #232323;
}
@media screen and (max-width: 750px) {
  .staff-modal__subtitle {
    font-size: 4vw;
  }
}

.staff-modal__profile-qualifications-text {
  margin-top: 0.5rem;
}

.staff-modal__profile-philosophy {
  margin-top: 1.875rem;
}

.staff-modal__profile-other-list {
  margin-top: 1.5rem;
}

.staff-modal__profile-other-item {
  display: flex;
  align-items: flex-start;
  gap: 1.875rem;
}

.staff-modal__profile-other-item:not(:first-child) {
  margin-top: 0.625rem;
}

.staff-modal__other-label {
  display: inline-block;
  border-radius: 0.25rem;
  background-color: var(--color-green-leaf);
  color: var(--color-white);
  padding: 0 0.625rem;
}

.staff-modal__other-value {
  color: #252525;
}

.staff-modal__profile-voice {
  margin-top: 1.875rem;
}

.staff-modal__text {
  font-size: 1rem;
  font-weight: 300;
  line-height: 2;
  letter-spacing: 0.05em;
  margin-top: 0.5rem;
  color: #111111;
}
@media screen and (max-width: 750px) {
  .staff-modal__text {
    font-size: 3.4666666667vw;
  }
}
.staff-modal__text.staff-modal__text--title {
  font-weight: 700;
}

.staff-list__more {
  margin-top: 1.875rem;
  display: flex;
  justify-content: center;
}

.staff-list__more-button {
  max-width: 18.75rem;
  width: 100%;
  margin-inline: auto;
}

.staff-list__more-button.is-hidden {
  display: none;
}

@media screen and (max-width: 750px) {
  .staff-list__card.is-hidden {
    display: none;
  }
}

.blog__posts {
  display: flex;
  flex-direction: column;
  row-gap: 1.875rem;
}

.blog-post {
  display: flex;
  -moz-column-gap: 1.25rem;
       column-gap: 1.25rem;
  border-bottom: 1px solid var(--color-green-leaf);
  padding: 1.5625rem 0.9375rem;
}
@media screen and (max-width: 750px) {
  .blog-post {
    flex-direction: column;
    row-gap: 0.9375rem;
  }
}

.blog-post__thumbnail__link {
  width: 16.25rem;
  display: block;
  overflow: hidden;
  flex-shrink: 0;
}
@media screen and (max-width: 1024px) {
  .blog-post__thumbnail__link {
    width: calc(16.25rem * 0.7);
  }
}
@media screen and (max-width: 750px) {
  .blog-post__thumbnail__link {
    width: 100%;
    margin: 0 auto;
  }
}

.blog-post__thumbnail {
  width: 100%;
  height: auto;
  -o-object-fit: cover;
     object-fit: cover;
  transition: transform 0.5s ease;
}
.blog-post__thumbnail:hover {
  transform: scale(1.1);
}

.blog-item__link {
  display: block;
  font-size: 1.25rem;
  font-weight: 600;
  letter-spacing: 0.05em;
  margin-top: 0.875rem;
  color: #1C1C1C;
}
@media screen and (max-width: 750px) {
  .blog-item__link {
    font-size: 4vw;
  }
}

.blog-item__excerpt {
  font-size: 1rem;
  font-weight: 500;
  line-height: 1.6;
  letter-spacing: 0.05em;
  color: #1C1C1C;
  margin-top: 0.625rem;
}
@media screen and (max-width: 750px) {
  .blog-item__excerpt {
    font-size: 3.4666666667vw;
  }
}

.blog-post__meta {
  display: flex;
  flex-direction: column;
}

.blog-post__date {
  display: block;
  font-size: 0.875rem;
  font-weight: 500;
  line-height: 2.2;
  letter-spacing: 0.05em;
  color: #1C1C1C;
}
@media screen and (max-width: 750px) {
  .blog-post__date {
    font-size: 3.2vw;
  }
}

.blog-item__category {
  display: inline-block;
  background-color: var(--color-green-leaf);
  color: var(--color-white);
  padding: 0.1875rem 0.875rem;
  font-size: 0.875rem;
  font-weight: 500;
  letter-spacing: 0.05em;
  margin-top: 0.625rem;
}
@media screen and (max-width: 750px) {
  .blog-item__category {
    font-size: 3.2vw;
  }
}

.blog-post__excerpt {
  margin-top: 0.9375rem;
}

.blog-item__arrow {
  text-align: right;
}

.blog-item__arrow-link {
  display: inline-block;
  margin-top: 0.9375rem;
}
.blog-item__arrow-link img {
  width: 1.5625rem;
  -o-object-fit: contain;
     object-fit: contain;
  aspect-ratio: 25/8;
}

.blog-post__date {
  display: block;
  font-size: 1.125rem;
  font-weight: 500;
  line-height: 2.2;
  letter-spacing: 0.05em;
  color: #143C63;
}
@media screen and (max-width: 750px) {
  .blog-post__date {
    font-size: 3.7333333333vw;
  }
}

.blog-detail__title {
  position: relative;
  display: block;
  font-size: 1.875rem;
  font-weight: 500;
  line-height: 2.2;
  letter-spacing: 0.05em;
  color: var(--color-black);
  margin-top: 1rem;
}
@media screen and (max-width: 750px) {
  .blog-detail__title {
    font-size: 5.3333333333vw;
  }
}

.blog-detail__title::after {
  position: absolute;
  content: "";
  background-color: var(--color-green-leaf);
  height: 1px;
  width: 100%;
  left: 0;
  bottom: -0.8125rem;
}

.blog-detail__meta {
  margin-top: 1.625rem;
  padding-left: 0.375rem;
}

.blog-detail__thumbnail {
  max-width: 100%;
  width: 100%;
  height: auto;
  margin-top: 2.25rem;
}

.blog-detail__content {
  margin-top: 5rem;
}

.blog-detail__nav-wrapper {
  margin-top: 2.5rem;
}

.blog__notfound-text {
  margin-top: 1.25rem;
}

.blog__notfound-search {
  margin-top: 1.875rem;
}

/*************/
/*サイドバー
**************/
.sidebar {
  width: 27%;
}
@media screen and (max-width: 750px) {
  .sidebar {
    width: 100%;
    margin-top: 3.125rem;
  }
}

.widget {
  width: 100%;
}

.widget__inner {
  padding: 0 0.75rem;
}

.widget:not(:first-child) {
  margin-top: 2.25rem;
}

.widget p {
  margin-top: 0.3125rem;
}

.widget img {
  padding: 0 0.75rem;
}

.widget ul {
  margin-top: 0.75rem;
}

.widget ul li:not(:first-child),
.widget article:not(:first-child) {
  margin-top: 1rem;
}

.widget ul li a {
  font-size: 1.25rem;
  font-weight: 500;
  letter-spacing: 0.05em;
  color: #1C1C1C;
}
@media screen and (max-width: 750px) {
  .widget ul li a {
    font-size: 4vw;
  }
}

.widget h2 {
  font-family: var(--font-shippori-mincho);
  font-size: 1.5rem;
  letter-spacing: 0.95px;
  font-weight: 500;
  width: 100%;
  color: #1C1C1C;
  padding: 1.25rem 0;
  border-top: 1px solid var(--color-black);
}
@media screen and (max-width: 750px) {
  .widget h2 {
    font-size: 4.5333333333vw;
  }
}

.widget h3 {
  font-size: 1rem;
  font-weight: 500;
}

.archive-date__select-wrap {
  position: relative;
}

.side-widget__input-select {
  font-size: 0.875rem;
  width: 100%;
  padding: 0.875rem 1rem;
  border: 1px solid #274A46;
  background-color: var(--color-white);
  margin-top: 1.125rem;
}
@media screen and (max-width: 750px) {
  .side-widget__input-select {
    font-size: 3.2vw;
  }
}

.archive-date__select-wrap::before {
  position: absolute;
  top: 50%;
  right: 0.875rem;
  width: 0;
  height: 0;
  border-width: 0 6px 6px 6px;
  border-style: solid;
  border-color: transparent transparent var(--color-black) transparent;
  content: "";
  pointer-events: none;
}

.archive-date__select-wrap::after {
  position: absolute;
  top: 65%;
  right: 0.875rem;
  width: 0;
  height: 0;
  border-width: 6px 6px 0 6px;
  border-style: solid;
  border-color: var(--color-black) transparent transparent transparent;
  content: "";
  pointer-events: none;
}

/****************************************/
/****************************************/
.company-greeting {
  position: relative;
  padding: 6.25rem 0 7.5rem;
}
@media screen and (max-width: 750px) {
  .company-greeting {
    padding: 3.75rem 0 5rem;
  }
}

.company-greeting__inner {
  max-width: 80.625rem;
  width: 100%;
  margin-inline: auto;
  padding: 0 1.25rem;
}

.company-greeting__top {
  position: relative;
  display: flex;
  justify-content: flex-end;
  margin: 5rem auto 0;
}
@media screen and (max-width: 750px) {
  .company-greeting__top {
    flex-direction: column;
  }
}

.company-greeting__top-img-wrap {
  max-width: 55%;
  width: 100%;
  pointer-events: none;
}
@media screen and (max-width: 750px) {
  .company-greeting__top-img-wrap {
    position: relative;
    max-width: 100%;
    top: 0;
    transform: none;
  }
}

.company-greeting__top-content {
  position: relative;
  max-width: 45%;
  width: 100%;
  padding-left: 13.75rem;
  margin-top: 2.1875rem;
}
@media screen and (max-width: 1200px) {
  .company-greeting__top-content {
    padding-left: clamp(6.25rem, -4.204rem + 22.27vw, 12.5rem);
  }
}
@media screen and (max-width: 750px) {
  .company-greeting__top-content {
    max-width: 100%;
    padding-left: 0;
    margin-top: 3.25rem;
  }
}

.company-greeting__title {
  font-family: var(--font-shippori-mincho);
  font-size: 2.5rem;
  font-weight: 600;
  letter-spacing: 0.15em;
  display: flex;
  justify-content: flex-end;
  align-items: flex-start;
  flex-direction: row-reverse;
  gap: 1.25rem;
}
@media screen and (max-width: 1200px) {
  .company-greeting__title {
    font-size: clamp(1.375rem, 0.539rem + 1.78vw, 1.875rem);
  }
}
@media screen and (max-width: 750px) {
  .company-greeting__title {
    font-size: 2.5rem;
    justify-content: center;
    gap: 0.5rem;
  }
}
@media screen and (max-width: 750px) and (max-width: 750px) {
  .company-greeting__title {
    font-size: 6.6666666667vw;
  }
}

.company-greeting__bottom {
  position: relative;
  display: flex;
  justify-content: space-between;
  margin-top: 7.1875rem;
  gap: 6.625rem;
}
@media screen and (max-width: 1200px) {
  .company-greeting__bottom {
    gap: clamp(3.75rem, -3.359rem + 15.14vw, 8rem);
  }
}
@media screen and (max-width: 750px) {
  .company-greeting__bottom {
    flex-direction: column;
    margin-inline: auto;
    margin-top: 2.5rem;
    text-align: center;
    padding-left: 0;
    padding-right: 0;
    gap: 1.875rem;
  }
}

.company-greeting__cat01 {
  position: absolute;
  bottom: 1.75rem;
  left: 2.5rem;
}
@media screen and (max-width: 1200px) {
  .company-greeting__cat01 {
    bottom: -1.25rem;
    left: clamp(0.313rem, -4.392rem + 10.02vw, 3.125rem);
  }
}
@media screen and (max-width: 750px) {
  .company-greeting__cat01 {
    left: unset;
    right: 1.5625rem;
    bottom: -3.125rem;
  }
}

.company-greeting__bottom-content {
  position: relative;
  flex: 1;
  width: 100%;
  max-width: 46.75rem;
}
@media screen and (max-width: 750px) {
  .company-greeting__bottom-content {
    width: 100%;
    padding-left: 0;
    margin-inline: auto;
    margin-top: 3.125rem;
  }
}

.company-greeting__bottom-img-wrap {
  position: relative;
  width: 32%;
  pointer-events: none;
  margin-top: 1.875rem;
  flex-shrink: 0;
}
@media screen and (max-width: 750px) {
  .company-greeting__bottom-img-wrap {
    z-index: 1;
    width: 100%;
    margin-left: auto;
    margin-top: 5rem;
  }
}

/* 画像だけ切り抜く箱 */
.company-greeting__cat02 {
  position: absolute;
  top: -5.25rem;
  right: 2.5rem;
}
@media screen and (max-width: 750px) {
  .company-greeting__cat02 {
    top: -16.5333333333vw;
    right: 1.5625rem;
  }
}

.company-greeting__cat01,
.company-greeting__cat02 {
  opacity: 0;
  transition: opacity 1.2s ease;
}
.company-greeting__cat01.is-active,
.company-greeting__cat02.is-active {
  opacity: 1;
}

.company-greeting__message {
  max-width: 52.5rem;
  width: 100%;
  margin-top: 6.25rem;
  margin-inline: auto;
}
@media screen and (max-width: 750px) {
  .company-greeting__message {
    margin-top: 3.125rem;
  }
}

.company-greeting__message-title {
  font-family: var(--font-shippori-mincho);
  font-size: 2.5rem;
  font-weight: 600;
  line-height: 2.2;
  letter-spacing: 0.05em;
  text-align: center;
}
@media screen and (max-width: 750px) {
  .company-greeting__message-title {
    font-size: 6.6666666667vw;
  }
}

.company-greeting__message-title + .company-greeting__message-text {
  margin-top: 3.75rem;
}
@media screen and (max-width: 750px) {
  .company-greeting__message-title + .company-greeting__message-text {
    margin-top: 2.5rem;
  }
}

.company-greeting__bottom-text,
.company-greeting__message-text {
  text-align: center;
  font-size: 1.25rem;
  font-weight: 500;
  line-height: 2.5;
  letter-spacing: 0.05em;
}
@media screen and (max-width: 750px) {
  .company-greeting__bottom-text,
.company-greeting__message-text {
    font-size: 4vw;
  }
}
@media screen and (max-width: 1200px) {
  .company-greeting__bottom-text,
.company-greeting__message-text {
    font-size: 1.125rem;
  }
}
@media screen and (max-width: 1200px) and (max-width: 750px) {
  .company-greeting__bottom-text,
.company-greeting__message-text {
    font-size: 3.7333333333vw;
  }
}
@media screen and (max-width: 750px) {
  .company-greeting__bottom-text,
.company-greeting__message-text {
    font-size: 1rem;
    line-height: 2.2;
  }
}
@media screen and (max-width: 750px) and (max-width: 750px) {
  .company-greeting__bottom-text,
.company-greeting__message-text {
    font-size: 3.4666666667vw;
  }
}

.company-greeting__message-text + .company-greeting__message-text {
  margin-top: 3.125rem;
}
@media screen and (max-width: 750px) {
  .company-greeting__message-text + .company-greeting__message-text {
    margin-top: 1.875rem;
  }
}

.company-greeting__message-name {
  font-family: " Yu Mincho Demibold", serif;
  margin-top: 3.75rem;
  text-align: center;
  font-size: 1.25rem;
  font-weight: 600;
  line-height: 2.2;
  letter-spacing: 0.05em;
}
@media screen and (max-width: 750px) {
  .company-greeting__message-name {
    font-size: 4vw;
  }
}
@media screen and (max-width: 750px) {
  .company-greeting__message-name {
    margin-top: 2.5rem;
  }
}

.company-profile {
  padding-bottom: 7.5rem;
}
@media screen and (max-width: 750px) {
  .company-profile {
    padding-bottom: 5rem;
  }
}

.company-profile__inner {
  max-width: 75rem;
  width: 100%;
  margin-inline: auto;
  padding: 0 1.25rem;
}

.company-profile__table {
  margin-top: 2.5rem;
}

.company-profile__table-head,
.company-profile__table-data {
  font-size: 1rem;
}
@media screen and (max-width: 750px) {
  .company-profile__table-head,
.company-profile__table-data {
    font-size: 3.4666666667vw;
  }
}
@media screen and (max-width: 430px) {
  .company-profile__table-head,
.company-profile__table-data {
    font-size: 0.8125rem;
  }
}

.company-area {
  padding-bottom: 7.5rem;
}
@media screen and (max-width: 750px) {
  .company-area {
    padding-bottom: 5rem;
  }
}

.company-area__inner {
  max-width: 75rem;
  width: 100%;
  margin-inline: auto;
  padding: 0 1.25rem;
  display: flex;
  justify-content: center;
  gap: 3.125rem;
}
@media screen and (max-width: 750px) {
  .company-area__inner {
    flex-direction: column;
  }
}

.company-area__left {
  flex: 1;
}

.company-area__subtitle {
  font-size: 2.5rem;
  font-weight: 500;
  line-height: 1.25;
  letter-spacing: 0.8px;
  margin-top: 4.9375rem;
}
@media screen and (max-width: 750px) {
  .company-area__subtitle {
    font-size: 6.6666666667vw;
  }
}

.company-area__text {
  font-size: 1.25rem;
  font-weight: 500;
  line-height: 2.5;
  letter-spacing: 0.8px;
  margin-top: 2.25rem;
}
@media screen and (max-width: 750px) {
  .company-area__text {
    font-size: 4vw;
  }
}
@media screen and (max-width: 750px) {
  .company-area__text {
    font-size: 1rem;
    line-height: 2.2;
  }
}
@media screen and (max-width: 750px) and (max-width: 750px) {
  .company-area__text {
    font-size: 3.4666666667vw;
  }
}

.company-area__right {
  width: 43.6%;
  -o-object-fit: contain;
     object-fit: contain;
  aspect-ratio: 478/503;
  flex-shrink: 0;
}
@media screen and (max-width: 750px) {
  .company-area__right {
    width: 65%;
    margin-inline: auto;
  }
}

.company-access {
  position: relative;
  padding-bottom: 13rem;
}
@media screen and (max-width: 750px) {
  .company-access {
    padding-bottom: 8.75rem;
  }
}

.company-access__inner {
  position: relative;
  max-width: 75rem;
  width: 100%;
  margin-inline: auto;
  padding: 0 1.25rem;
  display: flex;
  justify-content: center;
  align-items: flex-end;
  gap: 3.125rem;
}
@media screen and (max-width: 750px) {
  .company-access__inner {
    flex-direction: column;
  }
}

.company-access__left {
  flex: 0 0 50%;
  max-width: 36.4375rem;
}
@media screen and (max-width: 750px) {
  .company-access__left {
    flex: 0 0 100%;
    max-width: 100%;
  }
}

.company-access__map {
  margin-top: 3.75rem;
  aspect-ratio: 583/379;
  width: 100%;
  position: relative;
  overflow: hidden;
}
@media screen and (max-width: 750px) {
  .company-access__map {
    margin-top: 6.25rem;
  }
}
.company-access__map iframe {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  border: 0;
}

.company-access__left-text {
  margin-top: 1.625rem;
}

.company-access__right {
  flex: 1;
}

.company-access__img-wrap {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: 1.4375rem;
  margin-top: 5.75rem;
}
@media screen and (max-width: 750px) {
  .company-access__img-wrap {
    grid-template-columns: 1fr;
    margin-top: 2.5rem;
  }
}

.company-access__img {
  width: 100%;
  height: auto;
  display: block;
}

.company-access__cat01 {
  position: absolute;
  right: 9.375rem;
  top: 0;
}
@media screen and (max-width: 1200px) {
  .company-access__cat01 {
    right: clamp(2.5rem, -8.999rem + 24.5vw, 9.375rem);
  }
}
@media screen and (max-width: 750px) {
  .company-access__cat01 {
    right: 1.25rem;
    top: 1.25rem;
  }
}

.company-access__cat02 {
  position: absolute;
  left: 7.5rem;
  bottom: 0;
}
@media screen and (max-width: 1200px) {
  .company-access__cat02 {
    left: 2.5rem;
  }
}

/****************************************/
/****************************************/
.recruit-overview {
  position: relative;
  padding: 7.5rem 0;
}
@media screen and (max-width: 1024px) {
  .recruit-overview {
    padding: 6.25rem 0 5rem;
  }
}
@media screen and (max-width: 750px) {
  .recruit-overview {
    padding: 5rem 0 2.5rem;
  }
}

.recruit-overview__inner {
  max-width: 1012px;
  width: 100%;
  margin: 0 auto;
  padding: 0 1.25rem;
}
@media screen and (max-width: 750px) {
  .recruit-overview__inner {
    padding: 0 0.9375rem;
  }
}

.recruit-overview__cat01 {
  text-align: center;
}

.recruit-overview__title {
  text-align: center;
  margin-top: 2.3125rem;
}

.recruit-overview__content {
  padding: 5.4375rem 0 0;
}
@media screen and (max-width: 750px) {
  .recruit-overview__content {
    padding: 3.75rem 0 0;
  }
}

.recruit-overview__text {
  line-height: 2.2;
  letter-spacing: 0.05em;
  text-align: center;
}

.recruit-overview__text + .recruit-overview__text {
  margin-top: 2.5rem;
}

/****************************************/
/****************************************/
.job-category {
  position: relative;
  padding: 4.875rem 0 11.25rem;
}
@media screen and (max-width: 750px) {
  .job-category {
    padding: 3.75rem 0 7.5rem;
  }
}

.job-category__content {
  max-width: 65rem;
  width: 100%;
  margin: 0 auto;
  padding: 0 1.25rem;
}
@media screen and (max-width: 750px) {
  .job-category__content {
    padding: 0;
  }
}

.job-category__cards {
  position: relative;
  display: flex;
  gap: 4rem;
  margin-top: 3.75rem;
}
@media screen and (max-width: 1024px) {
  .job-category__cards {
    gap: 2.5rem;
  }
}
@media screen and (max-width: 750px) {
  .job-category__cards {
    flex-direction: column;
    gap: 1.25rem;
    margin-top: 2.5rem;
  }
}

.job-category__card {
  position: relative;
  overflow: hidden;
  isolation: isolate;
  flex: 0 1 calc(100% - min(4.4444444444vw, 64px) / 2);
  padding: 1.75rem 2.6875rem;
  min-height: 31.25rem;
  text-decoration: none;
}
@media screen and (max-width: 1024px) {
  .job-category__card {
    flex: 0 1 calc(100% - min(3.90625vw, 40px) / 2);
    padding: 1.625rem 1.875rem;
  }
}
@media screen and (max-width: 750px) {
  .job-category__card {
    flex: 0 1 100%;
    min-height: clamp(25rem, 3.045rem + 81.5vw, 41.25rem);
    padding: 1.25rem 1.875rem;
  }
}
@media screen and (max-width: 430px) {
  .job-category__card {
    min-height: 25rem;
  }
}
.job-category__card::before {
  content: "";
  position: absolute;
  inset: 0;
  z-index: 0;
}
.job-category__card > * {
  position: relative;
  z-index: 1;
}

.job-category__card:nth-child(1)::before {
  background: linear-gradient(0deg, rgba(0, 0, 0, 0.2), rgba(0, 0, 0, 0.2)), linear-gradient(0deg, rgba(84, 147, 21, 0.1), rgba(84, 147, 21, 0.1)), url(../images/recruit/recrult-select01.png);
  background-size: cover;
  background-position: center;
  background-repeat: no-repeat;
}
.job-category__card:nth-child(1) .job-category__card-text {
  top: 10%;
}
@media screen and (max-width: 1024px) {
  .job-category__card:nth-child(1) .job-category__card-text {
    top: 15%;
  }
}
.job-category__card:nth-child(1) .job-category__card-text .text-offset:nth-child(1) {
  padding-bottom: 6.875rem;
}

.job-category__card:nth-child(2)::before {
  background: linear-gradient(0deg, rgba(0, 0, 0, 0.2), rgba(0, 0, 0, 0.2)), linear-gradient(0deg, rgba(84, 147, 21, 0.1), rgba(84, 147, 21, 0.1)), url(../images/recruit/recrult-select02.png);
  background-size: cover;
  background-position: center;
  background-repeat: no-repeat;
}
.job-category__card:nth-child(2) .job-category__card-text {
  top: 50%;
  transform: translateY(-50%);
}
.job-category__card:nth-child(2) .job-category__card-text .text-offset:nth-child(1) {
  padding-bottom: 1.875rem;
}

.job-category__card-title {
  font-size: 2rem;
  line-height: 2.2;
  letter-spacing: 0.05em;
  color: var(--color-white);
  font-weight: 500;
  text-align: left;
}
@media screen and (max-width: 750px) {
  .job-category__card-title {
    font-size: 5.6vw;
  }
}
@media screen and (max-width: 1024px) {
  .job-category__card-title {
    font-size: 1.5rem;
  }
}
@media screen and (max-width: 1024px) and (max-width: 750px) {
  .job-category__card-title {
    font-size: 4.5333333333vw;
  }
}
@media screen and (max-width: 750px) {
  .job-category__card-title {
    font-size: 2rem;
  }
}
@media screen and (max-width: 750px) and (max-width: 750px) {
  .job-category__card-title {
    font-size: 5.6vw;
  }
}

.job-category__card-text {
  position: absolute;
  content: "";
  right: 2.5625rem;
  top: 10%;
  display: flex;
  align-items: flex-end;
  flex-direction: column;
  gap: 1.25rem;
  font-family: var(--font-shippori-mincho);
  font-size: 1.25rem;
  line-height: 0.8333333333;
  color: var(--color-white);
  font-weight: 500;
  letter-spacing: 0.2em;
}
@media screen and (max-width: 750px) {
  .job-category__card-text {
    font-size: 4vw;
  }
}

.job-category__entry-box {
  background-color: var(--color-light-beige);
  box-shadow: 5px 5px 10px rgba(0, 0, 0, 0.05);
  padding: 3.8125rem 0.9375rem 2.5rem;
  display: flex;
  flex-direction: column;
  align-items: center;
  margin-top: 11.25rem;
}
@media screen and (max-width: 750px) {
  .job-category__entry-box {
    margin-top: 3.75rem;
  }
}

.job-category__entry-title {
  font-size: 2rem;
  font-weight: 500;
  line-height: 1.5;
  letter-spacing: 2px;
  color: var(--color-green-leaf);
  text-align: center;
}
@media screen and (max-width: 750px) {
  .job-category__entry-title {
    font-size: 5.6vw;
  }
}
@media screen and (max-width: 1024px) {
  .job-category__entry-title {
    font-size: 1.75rem;
  }
}
@media screen and (max-width: 1024px) and (max-width: 750px) {
  .job-category__entry-title {
    font-size: 5.0666666667vw;
  }
}
@media screen and (max-width: 750px) {
  .job-category__entry-title {
    font-size: 2rem;
  }
}
@media screen and (max-width: 750px) and (max-width: 750px) {
  .job-category__entry-title {
    font-size: 5.6vw;
  }
}

.job-category__entry-subtitle {
  font-size: 1.5rem;
  font-weight: 500;
  line-height: 2.2;
  letter-spacing: 0.05em;
  color: var(--color-black);
  text-align: center;
  margin-top: 0.9375rem;
}
@media screen and (max-width: 750px) {
  .job-category__entry-subtitle {
    font-size: 4.5333333333vw;
  }
}
@media screen and (max-width: 1024px) {
  .job-category__entry-subtitle {
    font-size: 1.25rem;
  }
}
@media screen and (max-width: 1024px) and (max-width: 750px) {
  .job-category__entry-subtitle {
    font-size: 4vw;
  }
}
@media screen and (max-width: 750px) {
  .job-category__entry-subtitle {
    font-size: 1.5rem;
  }
}
@media screen and (max-width: 750px) and (max-width: 750px) {
  .job-category__entry-subtitle {
    font-size: 4.5333333333vw;
  }
}

.job-category__entry-text {
  text-align: center;
  color: var(--color-black);
  margin-top: 0.3125rem;
}

.job-category__entry-button {
  max-width: 30rem;
  margin-top: 2rem;
  margin-inline: auto;
}

/* 猫のアニメーション */
.recruit-overview__cat01 {
  opacity: 0;
  transition: opacity 1.6s ease;
}
.recruit-overview__cat01.is-active {
  opacity: 1;
}

.entry {
  padding: 7.5rem 0;
}
@media screen and (max-width: 750px) {
  .entry {
    padding: 3.75rem 0;
  }
}

.contact-explanation {
  max-width: 67.8125rem;
  width: 100%;
  margin: 0 auto;
  padding: 0 1.25rem;
}

.contact-explanation__box {
  background-color: var(--color-light-beige);
  padding: 4.0625rem 5rem;
  display: flex;
  flex-direction: column;
  align-items: center;
}
@media screen and (max-width: 1024px) {
  .contact-explanation__box {
    padding: 3.125rem 2.8125rem;
  }
}
@media screen and (max-width: 750px) {
  .contact-explanation__box {
    padding: 2.8125rem 1.25rem;
  }
}

.contact-explanation__title {
  font-size: 1.75rem;
  font-weight: 500;
  line-height: 2.2;
  letter-spacing: 0.05em;
  color: var(--color-green-leaf);
  text-align: center;
}
@media screen and (max-width: 750px) {
  .contact-explanation__title {
    font-size: 5.0666666667vw;
  }
}
@media screen and (max-width: 1024px) {
  .contact-explanation__title {
    font-size: 1.5rem;
  }
}
@media screen and (max-width: 1024px) and (max-width: 750px) {
  .contact-explanation__title {
    font-size: 4.5333333333vw;
  }
}
@media screen and (max-width: 750px) {
  .contact-explanation__title {
    font-size: 1.625rem;
  }
}
@media screen and (max-width: 750px) and (max-width: 750px) {
  .contact-explanation__title {
    font-size: 4.8vw;
  }
}

.contact-explanation__text {
  text-align: center;
  font-size: 1.25rem;
  font-weight: 500;
  line-height: 2.2;
  letter-spacing: 0.05em;
}
@media screen and (max-width: 750px) {
  .contact-explanation__text {
    font-size: 4vw;
  }
}
@media screen and (max-width: 1200px) {
  .contact-explanation__text {
    font-size: 1.125rem;
  }
}
@media screen and (max-width: 1200px) and (max-width: 750px) {
  .contact-explanation__text {
    font-size: 3.7333333333vw;
  }
}
@media screen and (max-width: 750px) {
  .contact-explanation__text {
    font-size: 1rem;
  }
}
@media screen and (max-width: 750px) and (max-width: 750px) {
  .contact-explanation__text {
    font-size: 3.4666666667vw;
  }
}
.contact-explanation__text.text-sm {
  font-size: 0.8125rem;
}

.contact-explanation__title + .contact-explanation__text {
  margin-top: 0.3125rem;
}
@media screen and (max-width: 750px) {
  .contact-explanation__title + .contact-explanation__text {
    margin-top: 0.9375rem;
  }
}

.contact-explanation__text + .contact-explanation__text {
  margin-top: 2.5rem;
}

/****************************************/
/****************************************/
.contact {
  padding: 3.75rem 0 6.25rem;
}
@media screen and (max-width: 430px) {
  .contact {
    padding: 2.5rem 0 3.75rem;
  }
}

.contact__inner {
  max-width: 57.625rem;
  width: 100%;
  margin: 0 auto;
  padding: 0 0.9375rem;
}

.contact__text {
  color: var(--color-text);
  font-size: 1.125rem;
  padding-left: 1.25rem;
  border-left: 5px solid var(--color-primary);
}
@media screen and (max-width: 750px) {
  .contact__text {
    font-size: 3.7333333333vw;
  }
}

.contact__mail-wrap {
  margin-top: 2.5rem;
}

.contact__link {
  color: var(--color-primary);
  text-decoration: underline;
}

.contact__form {
  margin-top: 2.8125rem;
}

.contact-thanks__text {
  margin-top: 2.875rem;
}

.form__list {
  margin-top: 2.5rem;
}

.form__field + .form__field {
  margin-top: 1.25rem;
}

.form__acceptance {
  margin-top: 1.25rem;
}

.form__note {
  margin-left: 0.9375rem;
  font-weight: 300;
}

.form__input::-moz-placeholder, .form__textarea::-moz-placeholder {
  color: var(--color-gray);
  font-weight: 300;
}

.form__input::placeholder,
.form__textarea::placeholder {
  color: var(--color-gray);
  font-weight: 300;
}

.form__radio,
.form__checkbox {
  margin-top: 0.625rem;
}

.form__textarea {
  height: 17.8125rem;
  resize: none;
}

.form__label label {
  font-size: 1.25rem;
  color: var(--color-black);
  font-weight: 500;
  display: flex;
  align-items: center;
  -moz-column-gap: 1.25rem;
       column-gap: 1.25rem;
}
@media screen and (max-width: 750px) {
  .form__label label {
    font-size: 4vw;
  }
}

.form__required {
  color: var(--color-white);
  background-color: var(--color-pink);
  border-radius: 0.125rem;
  padding: 0.125rem 0.5rem;
  font-size: 1rem;
  font-weight: 300;
  min-width: 3.125rem;
}

.form__input,
.form__select,
.form__textarea,
.form__acceptance-text {
  font-size: 1.25rem;
  width: 100%;
  max-width: 100%;
  padding: 0.8125rem 1.0625rem;
  background-color: var(--color-white);
  border: 1px solid var(--color-light-gray);
  margin-top: 0.625rem;
  border-radius: 0.3125rem;
}
@media screen and (max-width: 750px) {
  .form__input,
.form__select,
.form__textarea,
.form__acceptance-text {
    font-size: 1.125rem;
  }
}

.form__data-select {
  position: relative;
}

.form__data-select::after {
  position: absolute;
  top: 60%;
  right: 15px;
  width: 0;
  height: 0;
  margin-top: -3px;
  border-width: 6px 6px 0 6px;
  border-style: solid;
  border-color: var(--color-black) transparent transparent transparent;
  content: "";
  pointer-events: none;
}

.form__data-radio {
  display: flex;
  flex-wrap: wrap;
}

.form__privacy-overview {
  margin-top: 0.5rem;
  font-size: 1rem;
  line-height: 1.75;
}

.form__privacy-text {
  font-size: 1.25rem;
  line-height: 2.2;
  letter-spacing: 0.05em;
  font-weight: 500;
  margin-left: 2.375rem;
}
@media screen and (max-width: 750px) {
  .form__privacy-text {
    font-size: 4vw;
  }
}
@media screen and (max-width: 430px) {
  .form__privacy-text {
    margin-left: 1.5rem;
  }
}

.wpcf7-list-item {
  margin: 0;
}

.wpcf7-form-control-wrap input[type=file] {
  width: 100%;
}

.wpcf7-form-control-wrap[data-name=privacy] .wpcf7-list-item-label {
  position: relative;
  display: inline-block;
  margin-top: 1.5625rem;
}

.wpcf7-form-control-wrap[data-name=privacy] .wpcf7-list-item-label::before {
  position: absolute;
  top: 50%;
  left: 0;
  width: 1.25rem;
  height: 1.25rem;
  content: "";
  border: 1px solid var(--color-light-gray);
  background-color: var(--color-white);
  transform: translateY(-50%);
}

.wpcf7-form-control-wrap[data-name=privacy] .wpcf7-list-item-label::after {
  position: absolute;
  left: 0.4375rem;
  top: 50%;
  width: 0.375rem;
  height: 0.75rem;
  border-right: 2px solid var(--color-green-leaf);
  border-bottom: 2px solid var(--color-green-leaf);
  transform: translateY(-60%) rotate(45deg);
  box-sizing: border-box;
  opacity: 0;
}

.form__checkbox:checked + .wpcf7-list-item-label::after {
  opacity: 1;
}

.wpcf7-form-control.wpcf7-radio {
  display: flex;
  flex-wrap: wrap;
  gap: 3rem;
  align-items: center;
}

.wpcf7-form-control.wpcf7-checkbox {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  -moz-column-gap: 3rem;
       column-gap: 3rem;
  row-gap: 0.3125rem;
  justify-content: space-between;
}
@media screen and (max-width: 1024px) {
  .wpcf7-form-control.wpcf7-checkbox {
    justify-content: flex-start;
  }
}
@media screen and (max-width: 750px) {
  .wpcf7-form-control.wpcf7-checkbox {
    display: grid;
    grid-template-columns: repeat(2, 1fr);
    -moz-column-gap: 0.625rem;
         column-gap: 0.625rem;
    row-gap: 0.5rem;
  }
}

.wpcf7-form-control.wpcf7-acceptance {
  display: flex;
  justify-content: center;
  margin-top: 4.6875rem;
}
@media screen and (max-width: 750px) {
  .wpcf7-form-control.wpcf7-acceptance {
    margin-top: 2.5rem;
  }
}

.wpcf7-form-control.wpcf7-radio .wpcf7-list-item,
.wpcf7-form-control.wpcf7-checkbox .wpcf7-list-item {
  margin: 0;
}

/* label全体をクリック可能に */
.wpcf7-form-control.wpcf7-radio .wpcf7-list-item label,
.wpcf7-form-control.wpcf7-checkbox .wpcf7-list-item label {
  display: inline-flex;
  align-items: center;
  cursor: pointer;
  -webkit-user-select: none;
     -moz-user-select: none;
          user-select: none;
  gap: 0.5rem;
}

/* 元のラジオを隠す */
.wpcf7-form-control.wpcf7-radio .wpcf7-list-item input[type=radio] {
  position: absolute;
  opacity: 0;
  width: 1px;
  height: 1px;
  overflow: hidden;
}

/* □（枠）を作る */
.wpcf7-form-control.wpcf7-radio .wpcf7-list-item .wpcf7-list-item-label,
.wpcf7-form-control.wpcf7-checkbox .wpcf7-list-item .wpcf7-list-item-label {
  position: relative;
  padding-left: 1.75rem;
  font-size: 1.25rem;
  font-weight: 300;
  color: var(--color-black);
  line-height: 2.2;
  letter-spacing: 0.05em;
}
@media screen and (max-width: 750px) {
  .wpcf7-form-control.wpcf7-radio .wpcf7-list-item .wpcf7-list-item-label,
.wpcf7-form-control.wpcf7-checkbox .wpcf7-list-item .wpcf7-list-item-label {
    font-size: 4vw;
  }
}

.wpcf7-form-control.wpcf7-radio .wpcf7-list-item .wpcf7-list-item-label::before,
.wpcf7-form-control.wpcf7-checkbox .wpcf7-list-item .wpcf7-list-item-label::before {
  content: "";
  position: absolute;
  left: 0;
  top: 50%;
  transform: translateY(-50%);
  width: 1.25rem;
  height: 1.25rem;
  border: 2px solid var(--color-light-gray);
  border-radius: 0.125rem;
  box-sizing: border-box;
  background-color: var(--color-white);
}

/* チェック（レ点） */
.wpcf7-form-control.wpcf7-radio .wpcf7-list-item input[type=radio]:checked + .wpcf7-list-item-label::after,
.wpcf7-form-control.wpcf7-checkbox .wpcf7-list-item input[type=checkbox]:checked + .wpcf7-list-item-label::after {
  content: "";
  position: absolute;
  left: 0.4375rem;
  top: 50%;
  width: 0.375rem;
  height: 0.75rem;
  border-right: 2px solid var(--color-green-leaf);
  border-bottom: 2px solid var(--color-green-leaf);
  transform: translateY(-60%) rotate(45deg);
  box-sizing: border-box;
}

/* フォーカス時の見た目（キーボード操作対策） */
.wpcf7-form-control.wpcf7-radio .wpcf7-list-item input[type=radio]:focus-visible + .wpcf7-list-item-label::before,
.wpcf7-form-control.wpcf7-checkbox .wpcf7-list-item input[type=checkbox]:focus-visible + .wpcf7-list-item-label::before {
  outline: 3px solid rgba(0, 0, 0, 0.2);
  outline-offset: 2px;
}

/* 元のファイル選択ボタンを隠す */
.wpcf7-form-control-wrap input[type=file] {
  opacity: 0;
  position: absolute;
  z-index: -1;
}

/* カスタムラベルのスタイル */
.custom-file-container {
  display: flex;
  align-items: center;
  margin-top: 0.625rem;
  flex-wrap: wrap;
  background-color: var(--color-white);
  border: 1px solid var(--color-light-gray);
  border-radius: 0.3125rem;
  padding: 0.5rem 0.8125rem;
}
@media screen and (max-width: 430px) {
  .custom-file-container {
    flex-direction: column;
    align-items: flex-start;
    row-gap: 0.3125rem;
  }
}

.form__caution-title {
  font-size: 1.5rem;
  font-weight: 700;
  line-height: 1.75;
  color: var(--color-primary);
  margin-top: 1.4375rem;
}
@media screen and (max-width: 750px) {
  .form__caution-title {
    font-size: clamp(1.375rem, 1.256rem + 0.51vw, 1.5rem);
  }
}
@media screen and (max-width: 430px) {
  .form__caution-title {
    font-size: clamp(1.125rem, 0.388rem + 4.21vw, 1.375rem);
  }
}

/* カスタムボタンのスタイル */
.custom-file-label {
  display: inline-block;
  padding: 0.75rem 1.6875rem;
  background-color: #9D9D9D;
  color: var(--color-white);
  font-weight: 500;
  font-size: 0.875rem;
  border-radius: 0.3125rem;
  cursor: pointer;
  transition: background-color 0.3s;
}
@media screen and (max-width: 430px) {
  .custom-file-label {
    flex: 1;
    max-width: 100%;
  }
}

.custom-file-label:hover {
  background-color: var(--color-dark-gray2);
  color: var(--color-white);
}

.custom-file-text {
  margin-left: 0.9375rem;
  font-size: 1.25rem;
}
@media screen and (max-width: 430px) {
  .custom-file-text {
    margin-left: 0;
    flex: 2;
    max-width: 100%;
  }
}

.form__caution {
  font-size: 0.875rem;
  margin-top: 0.625rem;
}
@media screen and (max-width: 750px) {
  .form__caution {
    font-size: 0.75rem;
  }
}

input[type=submit] {
  appearance: none;
  -webkit-appearance: none;
  -moz-appearance: none;
}

.form__submit-wrap {
  margin-top: 4.5625rem;
  text-align: center;
}

.form__submit-button {
  padding: 1rem 1.375rem;
  max-width: 27.5rem;
  display: block;
  width: 100%;
  margin-inline: auto;
  background-color: var(--color-green-leaf);
  font-size: 1.25rem;
  font-weight: 500;
  text-align: center;
  line-height: 2.2;
  letter-spacing: 0.05em;
  border-radius: 0.625rem;
  color: var(--color-white);
}
@media screen and (max-width: 750px) {
  .form__submit-button {
    font-size: 4vw;
  }
}
@media screen and (max-width: 430px) {
  .form__submit-button {
    max-width: 100%;
  }
}

.form__submit-button:hover {
  opacity: 0.7;
}

.form__submit-button input {
  color: var(--color-white);
}

.wpcf7-not-valid-tip {
  margin-top: 0.625rem;
  display: block;
}

.wpcf7-spinner {
  display: none;
}

.wpcf7-form.sent .wpcf7-response-output {
  display: none;
}

.privacy-policy-box {
  border: 1px solid #707070;
  padding: 2.1875rem;
  margin-top: 7.5rem;
}
@media screen and (max-width: 750px) {
  .privacy-policy-box {
    margin-top: 3.75rem;
    padding: 1.875rem 1.25rem;
  }
}

.privacy-policy-box__title {
  font-size: 1.5rem;
  font-weight: 500;
  line-height: 2.2;
  letter-spacing: 0.05em;
  color: var(--color-black);
}
@media screen and (max-width: 750px) {
  .privacy-policy-box__title {
    font-size: 4.5333333333vw;
  }
}

.privacy-policy-box__text {
  color: var(--color-black);
  line-height: 2.2;
  letter-spacing: 0.05em;
}

/****************************************/
/****************************************/
.contact-thanks {
  max-width: 90rem;
  width: 100%;
  margin-inline: auto;
  padding: 11.25rem 0 9.6875rem;
}
@media screen and (max-width: 750px) {
  .contact-thanks {
    padding: 6.25rem 0 3.75rem;
  }
}

.contact-thanks__inner {
  max-width: 67.8125rem;
  width: 100%;
  margin-inline: auto;
  padding: 0 1.25rem;
}

.contact-thanks__title {
  font-size: 2.5rem;
  font-weight: 900;
  line-height: 2.2;
  letter-spacing: 0.05em;
  color: var(--color-green-leaf);
  text-align: center;
}
@media screen and (max-width: 750px) {
  .contact-thanks__title {
    font-size: 6.6666666667vw;
  }
}

.contact-thanks__text {
  text-align: center;
  margin-top: 2rem;
}

.contact-thanks__button {
  max-width: 30rem;
  margin-top: 3rem;
  margin-inline: auto;
}

/****************************************/
/****************************************/
.site-content h2,
.site-content h3 {
  margin-bottom: 1.875rem;
}

.site-content p,
.site-content h4,
.site-content h5,
.site-content h6,
.site-content ul,
.site-content ol,
.site-content table {
  margin-bottom: 2.5rem;
}

.site-content img {
  margin-bottom: 5rem;
}

.site-content p {
  font-size: 1.25rem;
  font-weight: 500;
  line-height: 2.2;
  letter-spacing: 0.05em;
}
@media screen and (max-width: 750px) {
  .site-content p {
    font-size: 4vw;
  }
}

.site-content h2 {
  position: relative;
  font-family: var(--font-shippori-mincho);
  font-size: 1.875rem;
  font-weight: 700;
  line-height: 1.5;
  letter-spacing: 0.05em;
  border-left: 5px solid var(--color-green-leaf);
  padding-left: 1.0625rem;
}
@media screen and (max-width: 750px) {
  .site-content h2 {
    font-size: 5.3333333333vw;
  }
}

.site-content h3 {
  position: relative;
  font-size: 1.5rem;
  font-weight: 900;
  line-height: 2.2;
  letter-spacing: 0.05em;
  color: var(--color-green-leaf);
}
@media screen and (max-width: 750px) {
  .site-content h3 {
    font-size: 4.5333333333vw;
  }
}

.site-content h4 {
  font-size: 1.5rem;
  line-height: 1.6;
  font-weight: 700;
  color: var(--color-primary);
  letter-spacing: 1px;
  margin-bottom: 0.9375rem;
}
@media screen and (max-width: 750px) {
  .site-content h4 {
    font-size: 4.5333333333vw;
  }
}

.site-content h5 {
  font-size: 1.25rem;
  font-weight: 700;
  line-height: 1.6;
}
@media screen and (max-width: 750px) {
  .site-content h5 {
    font-size: 4vw;
  }
}

.site-content h6 {
  font-size: 1.125rem;
  font-weight: 700;
  line-height: 1.6;
}
@media screen and (max-width: 750px) {
  .site-content h6 {
    font-size: 3.7333333333vw;
  }
}

.site-content ul {
  list-style: none;
  padding-left: 2.25rem;
  background-color: var(--color-white);
  width: 100%;
  border-radius: 0.625rem;
  padding: 2.9375rem 2.5rem;
}
@media screen and (max-width: 750px) {
  .site-content ul {
    padding: 2.1875rem 1.25rem;
  }
}

.site-content ul li {
  font-size: 1.25rem;
  font-weight: 500;
  line-height: 2.2;
  letter-spacing: 0.05em;
  display: flex;
  align-items: flex-start;
}
@media screen and (max-width: 750px) {
  .site-content ul li {
    font-size: 4vw;
  }
}

.site-content ul li::before {
  content: "⚫︎";
  font-size: 0.5em;
  margin-right: 1em;
  margin-top: 0.75rem;
  flex-shrink: 0;
}

.site-content ol {
  counter-reset: number;
  list-style-type: none !important;
  padding-left: 1.25rem;
  background-color: var(--color-white);
  width: 100%;
  border-radius: 0.625rem;
  padding: 2.9375rem 2.5rem;
}
@media screen and (max-width: 750px) {
  .site-content ol {
    padding: 2.1875rem 1.25rem;
  }
}

.site-content ol li {
  position: relative;
  line-height: 1.6;
  padding-left: 2.1875rem;
}

.site-content ol li:not(:first-child) {
  margin-top: 0.625rem;
}

.site-content ol li:before {
  position: absolute;
  counter-increment: number;
  content: counter(number);
  display: inline-block;
  background-color: var(--color-primary);
  color: var(--color-white);
  font-weight: 500;
  font-size: 1rem;
  left: 0;
  width: 1.5625rem;
  height: 1.5625rem;
  line-height: 25px;
  text-align: center;
  top: 1.5625rem;
  transform: translateY(-50%);
}
@media screen and (max-width: 750px) {
  .site-content ol li:before {
    font-size: 3.4666666667vw;
  }
}

.site-content table {
  width: 100%;
}

.site-content table table {
  border: none;
}

.site-content table thead {
  border-bottom: 1px solid var(--color-white);
}

.site-content table th {
  background: var(--color-primary);
  color: var(--color-white);
}

.site-content table td {
  background-color: var(--color-white);
}

.site-content a {
  color: var(--color-primary);
  text-decoration: underline;
  word-break: break-all;
}

@media screen and (max-width: 750px) {
  .site-content figure {
    text-align: center;
  }
}

.site-content figure.wp-block-image img {
  width: auto !important;
  max-width: 100%;
  height: auto;
  display: inline-block;
}

/* YouTube iframe対応（レスポンシブ） */
.site-content iframe {
  display: block;
  max-width: 100%;
  width: 100%;
  height: auto;
  aspect-ratio: 16/9; /* CSSでアスペクト比を維持 */
  margin-bottom: 0.9375rem;
}

/* 旧ブラウザ対応が必要な場合はwrapで対応 */
.site-content .video-wrap {
  position: relative;
  width: 100%;
  padding-top: 56.25%; /* 16:9のアスペクト比 */
  margin-bottom: 0.9375rem;
}

.site-content .video-wrap iframe {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
}

.page-title {
  position: absolute;
  left: -9999px;
  top: auto;
  width: 1px;
  height: 1px;
  overflow: hidden;
}

.inner {
  max-width: 1240px;
  margin-left: auto;
  margin-right: auto;
  padding: 0 1.25rem;
}
@media screen and (max-width: 750px) {
  .inner {
    padding: 0 0.9375rem;
  }
}

.c-bg-primary {
  background-image: url(../images/bg-primary.jpg);
  background-repeat: repeat;
  background-size: contain;
  background-position: top center;
}

.c-parallax-bg {
  -webkit-clip-path: inset(0);
          clip-path: inset(0);
  width: 100%;
}

.c-text {
  font-size: 1rem;
  font-weight: 500;
  line-height: 2.2;
  letter-spacing: 0.05em;
}
@media screen and (max-width: 750px) {
  .c-text {
    font-size: 3.4666666667vw;
  }
}
.c-text.c-text--md {
  font-size: 1.25rem;
}
@media screen and (max-width: 750px) {
  .c-text.c-text--md {
    font-size: 4vw;
  }
}

.c-section-title {
  font-family: var(--font-shippori-mincho);
  font-size: 2.75rem;
  font-weight: 400;
  display: block;
  line-height: 1.5;
  color: var(--color-text);
}
@media screen and (max-width: 750px) {
  .c-section-title {
    font-size: 7.2vw;
  }
}
@media screen and (max-width: 1024px) {
  .c-section-title {
    font-size: 2.375rem;
  }
}
@media screen and (max-width: 1024px) and (max-width: 750px) {
  .c-section-title {
    font-size: 6.4vw;
  }
}
@media screen and (max-width: 750px) {
  .c-section-title {
    font-size: 2.75rem;
    text-align: center;
  }
}
@media screen and (max-width: 750px) and (max-width: 750px) {
  .c-section-title {
    font-size: 7.2vw;
  }
}
.c-section-title.c-section-title--bl {
  position: relative;
  padding-left: 1.375rem;
  display: inline-block;
}
@media screen and (max-width: 750px) {
  .c-section-title.c-section-title--bl {
    text-align: left;
    padding-left: 0.625rem;
  }
}
.c-section-title.c-section-title--bl::before {
  content: "";
  position: absolute;
  left: 0;
  top: 50%;
  transform: translateY(-50%);
  width: 5px;
  height: 5.0625rem;
  background-color: var(--color-green-leaf);
}
@media screen and (max-width: 750px) {
  .c-section-title.c-section-title--bl::before {
    height: clamp(2.813rem, 1.473rem + 6.7vw, 4.688rem);
  }
}

.c-section-title__en {
  font-family: var(--font-montserrat);
  font-size: 4rem;
  font-weight: 700;
  display: block;
  line-height: 1.4;
  color: var(--color-primary);
  text-transform: uppercase;
}
@media screen and (max-width: 750px) {
  .c-section-title__en {
    font-size: 9.8666666667vw;
  }
}
@media screen and (max-width: 1024px) {
  .c-section-title__en {
    font-size: 3rem;
  }
}
@media screen and (max-width: 1024px) and (max-width: 750px) {
  .c-section-title__en {
    font-size: 7.7333333333vw;
  }
}

.u-secondary-color {
  color: var(--color-secondary);
}

.u-primary-color {
  color: var(--color-primary);
}

.u-bold {
  font-weight: 700;
}

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

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

.page-content {
  padding: 5.4375rem 0;
}
@media screen and (max-width: 750px) {
  .page-content {
    padding: 2.5rem 0 3.75rem;
  }
}

.page-content__inner {
  width: 100%;
  max-width: 1200px;
  padding: 0 3.125rem;
  margin: 0 auto;
}
@media screen and (max-width: 750px) {
  .page-content__inner {
    padding: 0 1.5625rem;
  }
}

.page-content-2col {
  display: flex;
  width: 100%;
  max-width: 80rem;
  margin: 0 auto;
  padding: 3.125rem 1.25rem 7.5rem;
  -moz-column-gap: 6.5625rem;
       column-gap: 6.5625rem;
}
@media screen and (max-width: 1024px) {
  .page-content-2col {
    padding: 3.125rem 1.25rem 7.5rem;
    -moz-column-gap: 2.5rem;
         column-gap: 2.5rem;
  }
}
@media screen and (max-width: 750px) {
  .page-content-2col {
    padding: 2.875rem 0.9375rem 6.25rem;
    flex-direction: column;
  }
}

.main-area {
  flex-grow: 1;
  width: calc(100% - 18.4375rem - 6.5625rem);
}
@media screen and (max-width: 1024px) {
  .main-area {
    width: calc(100% - 18.4375rem - 2.5rem);
    -moz-column-gap: 2.5rem;
         column-gap: 2.5rem;
  }
}
@media screen and (max-width: 750px) {
  .main-area {
    width: 100%;
  }
}

.post {
  padding: 3.75rem 0;
}
@media screen and (max-width: 750px) {
  .post {
    padding: 2.5rem 0 3.75rem;
  }
}

.post__inner {
  width: 100%;
  max-width: 1000px;
  padding: 0 3.125rem;
  margin: 0 auto;
}
@media screen and (max-width: 750px) {
  .post__inner {
    padding: 0 1.5625rem;
  }
}

.post__body {
  padding-top: 3.75rem;
}

.post__meta {
  display: flex;
  align-items: center;
  justify-content: space-between;
  margin-top: 0.9375rem;
  flex-wrap: wrap;
}

.post__category {
  display: flex;
  align-items: center;
  justify-content: center;
  color: var(--color-primary);
  background-color: var(--color-gray-faint);
  border-radius: 1rem;
  padding: 0.25rem;
  font-size: 1rem;
  max-width: 300px;
  min-width: 128px;
  font-weight: 500;
  letter-spacing: 0.03em;
  margin-left: 1.25rem;
  transition: all 0.3s;
}
@media screen and (max-width: 750px) {
  .post__category {
    font-size: 3.4666666667vw;
  }
}

.post__category:hover {
  opacity: 1;
  background-color: var(--color-primary);
  color: var(--color-white);
}

.post__date {
  font-size: 1rem;
  font-weight: 500;
  color: var(--color-gray-blue2);
}
@media screen and (max-width: 750px) {
  .post__date {
    font-size: 3.4666666667vw;
  }
}

.post__title {
  position: relative;
  font-size: 2.375rem;
  font-weight: 700;
  color: var(--color-secondary);
  line-height: 1.6;
}
@media screen and (max-width: 750px) {
  .post__title {
    font-size: 6.4vw;
  }
}

.post__title::after {
  position: absolute;
  content: "";
  width: 100%;
  background: linear-gradient(90deg, #105797 0%, #6BB0F0 100%);
  height: 1px;
  left: 0;
  bottom: -5px;
}

.single-nav__items {
  margin-top: 90px;
  max-width: 600px;
  margin-inline: auto;
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(calc(33.3333333333% - 1.25rem), 1fr));
  -moz-column-gap: 20px;
  column-gap: 20px;
  justify-items: center;
  align-items: center;
}
@media screen and (max-width: 750px) {
  .single-nav__items {
    margin-top: 3.4375rem;
    grid-template-columns: 1fr;
    row-gap: 1.6875rem;
  }
}

.single-nav__item {
  width: 100%;
}

.page-nav-button {
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 1rem;
  font-weight: 500;
  background-color: var(--color-white);
  border: 1px solid var(--color-primary);
  color: var(--color-primary);
  padding: 0.625rem 1.25rem;
  border-radius: 2.1875rem;
  transition: background-color 0.3s ease;
}

.page-nav-button:hover {
  border: 1px solid transparent;
  background-color: var(--color-primary);
  color: var(--color-white);
  opacity: 1;
}

.news__category-title-wrap {
  margin-top: 2.25rem;
  display: flex;
  justify-content: center;
  align-items: center;
  flex-direction: column;
}

.news__category-title-en {
  font-family: var(--font-fraunces);
  font-size: 1.875rem;
  font-weight: 300;
  line-height: 1.2;
  letter-spacing: 0.1em;
  color: var(--color-primary);
}
@media screen and (max-width: 750px) {
  .news__category-title-en {
    font-size: clamp(1.75rem, 1.607rem + 0.82vw, 2rem);
  }
}

.news__category-title {
  font-weight: 300;
  font-size: 1.5rem;
  line-height: 1.2;
  color: var(--color-secondary);
  margin-top: 0.9375rem;
}
@media screen and (max-width: 750px) {
  .news__category-title {
    font-size: clamp(1rem, 0.607rem + 0.82vw, 1.5rem);
  }
}

.error-not-found {
  padding: 5rem 0 7.5rem;
}

.error-not-found__text {
  font-size: 1.25rem;
  font-weight: 500;
  line-height: 2;
  letter-spacing: 0.05em;
  text-align: center;
}

.map {
  width: 100%;
  height: 28.75rem;
  position: relative;
  overflow: hidden;
}
.map iframe {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  border: 0;
}

.mv {
  height: 27.875rem;
  background-image: url(../images/top/top-mv-hover.png);
  background-repeat: no-repeat;
  background-size: cover;
  background-position: bottom center;
}
@media screen and (max-width: 750px) {
  .mv {
    height: clamp(11.25rem, 4.738rem + 32.56vw, 20rem);
  }
}
.mv.mv--features {
  background-image: url(../images/features/bg-mv.webp);
}
.mv.mv--new {
  background-image: url(../images/new/bg-mv.webp);
}
.mv.mv--kominka {
  background-image: url(../images/kominka/bg-mv.webp);
}
@media screen and (max-width: 750px) {
  .mv.mv--kominka {
    background-position: 60%;
  }
}
.mv.mv--remodeling {
  background-image: url(../images/remodeling/bg-mv.webp);
}
.mv.mv--work {
  background-image: url(../images/work/bg-mv.webp);
}
.mv.mv--staff {
  background-image: url(../images/staff/bg-mv.webp);
}
.mv.mv--blog {
  background-image: url(../images/blog/bg-mv.webp);
}
.mv.mv--company {
  background-image: url(../images/company/bg-mv.webp);
}
.mv.mv--recruit {
  background-image: url(../images/recruit/bg-mv.webp);
}
.mv.mv--contact {
  background-image: url(../images/contact/bg-mv.webp);
}

.mv__inner {
  position: relative;
  max-width: 1200px;
  width: 100%;
  margin-inline: auto;
  padding: 0 1.25rem;
  height: inherit;
}

.mv__content {
  display: flex;
  align-items: center;
  justify-content: center;
  height: inherit;
}

.mv__heading {
  position: relative;
  padding-top: 0.9375rem;
  padding-bottom: 0.9375rem;
  width: 100%;
  display: flex;
  justify-content: center;
}

.mv__title-ja {
  color: var(--color-white);
  font-family: var(--font-shippori-mincho);
  font-size: 2rem;
  font-weight: 600;
  line-height: 1;
  letter-spacing: 0.25em;
  margin-top: 2.5rem;
  text-align: left;
  filter: drop-shadow(0px 4px 4px rgba(0, 0, 0, 0.25));
}
@media screen and (max-width: 750px) {
  .mv__title-ja {
    font-size: 5.6vw;
  }
}
@media screen and (max-width: 750px) {
  .mv__title-ja {
    display: block;
    width: -webkit-fit-content;
    width: -moz-fit-content;
    width: fit-content;
    margin: 0 auto;
    font-size: 1.25rem;
  }
}
@media screen and (max-width: 750px) and (max-width: 750px) {
  .mv__title-ja {
    font-size: 4vw;
  }
}
.mv__title-ja.mv__title-ja--white {
  color: var(--color-white);
}

.mv__title-line {
  display: block;
}

.mv__title-line--sub {
  padding-right: 1.25rem;
}
@media screen and (max-width: 750px) {
  .mv__title-line--sub {
    padding-right: 0.9375rem;
  }
}

/****************************************/
/****************************************/
.cta {
  padding: 0 2.5rem 12.5rem;
}
@media screen and (max-width: 750px) {
  .cta {
    padding: 0 1.25rem 5rem;
  }
}

.cta__container {
  background-image: url(../images/bg-cta.png);
  background-repeat: no-repeat;
  background-size: cover;
  background-position: top center;
  padding: 7.5rem 0;
}
@media screen and (max-width: 750px) {
  .cta__container {
    padding: 3.125rem 0;
  }
}
.cta__container.cta__container--remodeling {
  background-image: url(../images/remodeling/bg-cta-remodeling.png);
}

.cta__title {
  color: var(--color-white);
  letter-spacing: 0.05em;
}
.cta__title.cta__title--remodeling {
  font-size: 1.875rem;
  text-align: center;
}
@media screen and (max-width: 750px) {
  .cta__title.cta__title--remodeling {
    font-size: 5.3333333333vw;
  }
}

.cta__text {
  font-size: 1rem;
  font-weight: 500;
  line-height: 1.8;
  letter-spacing: 0.05em;
  color: var(--color-white);
  margin-top: 3rem;
}
@media screen and (max-width: 750px) {
  .cta__text {
    font-size: 3.4666666667vw;
  }
}
@media screen and (max-width: 750px) {
  .cta__text {
    text-align: center;
    margin-top: 2.1875rem;
  }
}
.cta__text.cta__text--remodeling {
  font-size: 1.375rem;
  text-align: center;
  margin-top: 1.8125rem;
}
@media screen and (max-width: 750px) {
  .cta__text.cta__text--remodeling {
    font-size: 4.2666666667vw;
  }
}
@media screen and (max-width: 750px) {
  .cta__text.cta__text--remodeling {
    font-size: 1rem;
    line-height: 2.2;
    margin-top: 1.25rem;
  }
}
@media screen and (max-width: 750px) and (max-width: 750px) {
  .cta__text.cta__text--remodeling {
    font-size: 3.4666666667vw;
  }
}

.cta__button {
  display: flex;
  justify-content: center;
  align-items: center;
  max-width: 30rem;
  width: 100%;
  background-color: var(--color-primary);
  border-radius: 62.4375rem;
  margin-top: 2.5rem;
  padding: 1.25rem 3rem;
  gap: 0.5rem;
  transition: background-color 0.3s ease;
}
@media screen and (max-width: 750px) {
  .cta__button {
    max-width: 95%;
    padding: 1.5625rem 2.1875rem;
    margin-top: 1.5625rem;
    margin-inline: auto;
  }
}
.cta__button:hover {
  opacity: 1;
  background-color: var(--color-text);
}
.cta__button.cta__button--remodeling {
  margin-top: 4.3125rem;
  margin-inline: auto;
}
@media screen and (max-width: 750px) {
  .cta__button.cta__button--remodeling {
    margin-top: 2.5rem;
  }
}

.cta__button-icon {
  background-image: url(../images/icon/mail-icon-w.svg);
  background-repeat: no-repeat;
  background-size: contain;
  width: 1.5625rem;
  aspect-ratio: 5/4;
}

.cta__button-text {
  font-family: var(--font-shippori-mincho);
  font-size: 1.5rem;
  font-weight: 600;
  letter-spacing: 0.05em;
  display: block;
  line-height: 1.5;
  color: var(--color-white);
}
@media screen and (max-width: 750px) {
  .cta__button-text {
    font-size: 4.5333333333vw;
  }
}

.cta__contact-info {
  margin-top: 2rem;
  display: flex;
  align-items: stretch;
  justify-content: flex-start;
  gap: 1.25rem;
}
@media screen and (max-width: 750px) {
  .cta__contact-info {
    flex-direction: column;
  }
}
.cta__contact-info.cta__contact-info--remodeling {
  justify-content: center;
}

.cta__contact-tel {
  display: flex;
  justify-content: center;
  align-items: center;
  gap: 0.5rem;
}

.cta__contact-tel-icon {
  background-image: url(../images/icon/tel-icon-w.svg);
  background-repeat: no-repeat;
  background-size: contain;
  width: 1.4375rem;
  aspect-ratio: 1/1;
}

.cta__contact-tel-text {
  font-family: var(--font-shippori-mincho);
  font-size: 1.5rem;
  font-weight: 600;
  letter-spacing: 0.05em;
  display: block;
  line-height: 1.5;
  color: var(--color-white);
}
@media screen and (max-width: 750px) {
  .cta__contact-tel-text {
    font-size: 4.5333333333vw;
  }
}

.cta__contact-info-hour {
  background: rgba(255, 255, 255, 0.25);
  border-radius: 62.4375rem;
  padding: 0.25rem 1rem;
  color: var(--color-white);
  -webkit-backdrop-filter: blur(25px);
          backdrop-filter: blur(25px);
  font-family: var(--font-shippori-mincho);
  font-size: 0.9375rem;
  font-weight: 600;
  line-height: 1.8;
  letter-spacing: 0.05em;
}
@media screen and (max-width: 750px) {
  .cta__contact-info-hour {
    font-size: 3.3333333333vw;
  }
}
@media screen and (max-width: 750px) {
  .cta__contact-info-hour {
    margin-inline: auto;
  }
}

.animate-image {
  opacity: 0;
  transform: translateX(-50px);
  transition: opacity 0.8s ease, transform 0.8s ease;
  will-change: opacity, transform;
}

.animate-image.is-visible {
  opacity: 1;
  transform: translateX(0);
}