@import url("https://fonts.googleapis.com/css2?family=Zen+Kaku+Gothic+New:wght@500;700;900&display=swap");
:root {
  --swl-letter_spacing: 0.12em;
  --swl-font_family: "Zen Kaku Gothic New", sans-serif;
  --swl-font_weight: 500;
  --font-weight--bold: 700;
  --font-weight--black: 900;
  --color-thin_border: #e3e3e3;
  --color-thin_border--black: #555;
  --leading-trim: calc((1em - 1lh) / 2);
  --swl-text_color--black: var(--color_text);
  --logo_size_pc: 2.375rem;
  --logo_size_pcfix: 2.375rem;
  --logo_size_sp: 2.1428571429rem;
}
@media screen and (max-width: 1280px) {
  :root {
    --swl-fz--root: min(16px, 1.25vw);
    --swl-fz--content: min(16px, 1.25vw);
  }
}
@media screen and (max-width: 960px) {
  :root {
    --swl-pad_container: 6.6666666667vw;
    --swl-fz--root: 3.7333333333vw;
    --swl-fz--content: 3.7333333333vw;
    --width-full-margin: calc(var(--swl-pad_container) * -1)
      calc(var(--swl-pad_container) * -1);
    --swl-box_padding: 1.4285714286rem 1.7857142857rem;
  }
}

/** override */
.pc-py-0 {
  padding-block: var(--padding-block-start, 0) var(--padding-block-end, 0) !important;
}

.editor-visual-editor .pc-py-0 {
  padding-block: var(--padding-block-start, 0) var(--padding-block-end, 0) !important;
}

.top #content {
  padding-block-start: 5rem;
}
@media screen and (max-width: 960px) {
  .top #content {
    padding-block-start: 2.1428571429rem;
  }
}

.l-content {
  margin-block-end: 12.5rem;
  padding-block-start: 5.625rem;
}
@media screen and (max-width: 960px) {
  .l-content {
    padding-block-start: 2.8571428571rem;
    margin-block-end: 8.5714285714rem;
  }
}

.wp-block-image img {
  width: 100%;
}

.l-header__inner.l-container,
.l-fixHeader__inner {
  max-width: 96.5879265092vw;
  align-items: center;
}

.l-header__logo,
.l-fixHeader__logo {
  position: absolute;
  left: 0;
}
@media screen and (max-width: 960px) {
  .l-header__logo,
  .l-fixHeader__logo {
    position: relative;
  }
}

.l-header__gnav,
.l-fixHeader__gnav {
  margin: auto;
}
.l-header__gnav .c-gnav > .menu-item,
.l-fixHeader__gnav .c-gnav > .menu-item {
  padding-inline: 0.9375rem;
}
.l-header__gnav .c-gnav > .menu-item > a,
.l-fixHeader__gnav .c-gnav > .menu-item > a {
  padding: 0.9375rem 0;
}

.-body-solid .l-fixHeader {
  box-shadow: none;
}

.c-gnav {
  padding-block: 2.1875rem;
}

.c-gnav .sub-menu {
  background: var(--color_main);
  color: #fff;
  width: fit-content;
  padding: 1em;
  white-space: nowrap;
}

.c-gnav > .menu-item.menu-item__contact {
  position: absolute;
  display: grid;
  align-items: center;
  right: 0;
  top: 0;
}
.c-gnav > .menu-item.menu-item__contact > a {
  background: var(--color_text);
  color: #fff;
  padding: 0.875rem 1.25rem;
  height: auto;
  transition: background-color 0.3s, color 0.3s;
  border: 1px solid var(--color_text);
}
.c-gnav > .menu-item.menu-item__contact > a:after {
  content: none;
}
.c-gnav > .menu-item.menu-item__contact:hover > a {
  background-color: #fff;
  color: var(--color_text);
}

.c-gnav > .menu-item > a .ttl {
  font-size: 16px;
  font-weight: var(--font-weibht--bold);
}

.c-gnav .sub-menu a:before,
.c-listMenu a:before {
  content: none;
}

.c-listMenu a:hover {
  padding-inline: inherit;
}

.c-listMenu .children a:hover,
.c-listMenu .sub-menu a:hover {
  padding-left: inherit;
}

.l-header__menuBtn,
.p-spMenu__closeBtn {
  width: auto;
  height: auto;
  margin-block: 1.6428571429rem;
  margin-inline-end: 4vw;
}
.l-header__menuBtn .c-iconBtn__icon,
.p-spMenu__closeBtn .c-iconBtn__icon {
  display: grid;
  gap: 1.25rem;
  background: var(--color_main);
  width: 7.5rem;
  aspect-ratio: 1/1;
  border-radius: 100vh;
  place-content: center;
}
@media screen and (max-width: 960px) {
  .l-header__menuBtn .c-iconBtn__icon,
  .p-spMenu__closeBtn .c-iconBtn__icon {
    gap: 0.5714285714rem;
    width: 2.8571428571rem;
  }
}
.l-header__menuBtn .c-iconBtn__icon:before, .l-header__menuBtn .c-iconBtn__icon:after,
.p-spMenu__closeBtn .c-iconBtn__icon:before,
.p-spMenu__closeBtn .c-iconBtn__icon:after {
  content: "";
  width: 3.125rem;
  height: 2px;
  background: #fff;
}
@media screen and (max-width: 960px) {
  .l-header__menuBtn .c-iconBtn__icon:before, .l-header__menuBtn .c-iconBtn__icon:after,
  .p-spMenu__closeBtn .c-iconBtn__icon:before,
  .p-spMenu__closeBtn .c-iconBtn__icon:after {
    width: 1.1428571429rem;
  }
}

.p-spMenu__closeBtn .c-iconBtn__icon {
  display: block;
  position: relative;
}
.p-spMenu__closeBtn .c-iconBtn__icon:before, .p-spMenu__closeBtn .c-iconBtn__icon:after {
  position: absolute;
  top: 50%;
  left: 50%;
}
.p-spMenu__closeBtn .c-iconBtn__icon:before {
  transform: translate(-50%, -50%) rotate(45deg);
}
.p-spMenu__closeBtn .c-iconBtn__icon:after {
  transform: translate(-50%, -50%) rotate(-45deg);
}

.c-headLogo,
.l-fixHeader .c-headLogo {
  height: auto;
}
.c-headLogo img,
.l-fixHeader .c-headLogo img {
  height: var(--logo_size_pc);
}
@media screen and (max-width: 960px) {
  .c-headLogo img,
  .l-fixHeader .c-headLogo img {
    height: var(--logo_size_sp);
  }
}

.-img .c-headLogo__link {
  padding: 0.625rem 0;
}
@media screen and (max-width: 960px) {
  .-img .c-headLogo__link {
    padding: 1.6428571429rem 0;
  }
}

.p-spMenu__inner {
  width: 100vw;
}

.-right .p-spMenu__inner {
  -webkit-transform: translateX(100vw);
  transform: translateX(100vw);
  padding-top: 0;
  box-shadow: none;
}

[data-spmenu=opened] .p-spMenu__inner {
  -webkit-transform: translateX(0);
  transform: translateX(0);
}

.p-spMenu__nav {
  margin-top: 1.4285714286rem;
}

@media screen and (max-width: 960px) {
  .c-listMenu .sub-menu a {
    padding-block: 1.4285714286rem;
    border-bottom: 1px solid var(--color-thin_border);
  }
}

.c-spnav > .menu-item > a {
  background: none;
}

.c-spnav > .menu-item > a {
  border-bottom: 1px solid var(--color-thin_border);
  padding-block: 1.4285714286rem;
}

.c-submenuToggleBtn {
  width: 2rem;
  height: 2rem;
}
.c-submenuToggleBtn.is-opened:before {
  content: "\e919";
}
.c-submenuToggleBtn:before {
  content: "\e91c";
  font-size: 1.1428571429rem;
  color: #fff;
  margin-block: var(--leading-trim);
}
.c-submenuToggleBtn:after {
  border: none;
  background: var(--color_main);
  opacity: 1;
  border-radius: 100vh;
  z-index: -1;
}

.l-topTitleArea {
  min-height: auto;
  padding-block: 5rem 1.5625rem;
}
@media screen and (max-width: 960px) {
  .l-topTitleArea {
    padding-block: 1.6428571429rem;
  }
}

.l-topTitleArea__body {
  text-shadow: none;
  color: var(--color_text);
}

.c-pageTitle {
  font-weight: var(--font-weight--bold);
  font-size: 3.125rem;
  display: flex;
  flex-direction: column-reverse;
  letter-spacing: 0.03em;
}
@media screen and (max-width: 960px) {
  .c-pageTitle {
    font-size: 2.1428571429rem;
  }
}
.c-pageTitle__subTitle {
  font-style: normal;
  letter-spacing: 0.12em;
  line-height: 1.8;
  margin: 0;
  opacity: 1;
}
.c-pageTitle__subTitle:after {
  content: "/";
  margin-inline-start: 0.4em;
}

.-frame-on .p-breadcrumb,
.c-infoBar + .p-breadcrumb,
.c-infoBar + [data-barba=container] > .p-breadcrumb,
.l-topTitleArea + .p-breadcrumb {
  padding: 0;
}

.p-breadcrumb__item {
  font-size: 1rem;
}
.p-breadcrumb__item:not(:last-child) {
  opacity: 0.6;
}
.p-breadcrumb__item:last-child {
  font-weight: var(--font-weight--bold);
}

.p-breadcrumb__list {
  flex-wrap: wrap;
}

.is-style-float > .swell-block-dl__dt,
.is-style-float > .swell-block-dl__dd {
  border-bottom: 1px solid var(--color-thin_border);
  padding: 1.5rem 0;
  font-weight: normal;
}

.is-style-float > .swell-block-dl__dt:after {
  content: none;
}

.post_content h3 {
  font-size: 1.5rem;
}
@media screen and (max-width: 960px) {
  .post_content h3 {
    font-size: 1.7142857143rem;
  }
}

.wp-block-columns {
  --wp-column-gap: 3.125rem;
  line-height: 1.8;
}

.swell-block-columns {
  --swl-clmn-mrgn--x: 3.125rem;
  --swl-clmn-mrgn--y: 3.125rem;
  --swl-clmn-pddng: 0;
}
@media screen and (max-width: 960px) {
  .swell-block-columns {
    --swl-clmn-mrgn--x: 1.4285714286rem;
    --swl-clmn-mrgn--y: 1.4285714286rem;
    --swl-clmn-pddng: 0;
  }
}

@media screen and (max-width: 960px) {
  .swell-block-column {
    --clmn-w: var(--clmn-w--tab, 100%);
  }
}

:where(.is-layout-flex) {
  gap: 3.125rem;
}

.widget_categories > ul > .cat-item > a:before,
.wp-block-categories-list > li > a:before {
  content: "";
  display: inline-block;
  left: 0.4em;
  line-height: 1;
  opacity: 0.85;
  position: absolute;
  top: 50%;
}

.widget_categories > ul > .cat-item > a,
.wp-block-categories-list > li > a {
  padding-left: 0;
}

.c-listMenu a {
  font-weight: var(--font-weight--bold);
  padding-inline-start: 0;
  border: none;
}

.c-listMenu .children a,
.c-listMenu .sub-menu a {
  font-size: 0.875rem;
  padding-inline: 0;
  font-weight: normal;
}
.c-listMenu .children a:before,
.c-listMenu .sub-menu a:before {
  content: none;
}

@media screen and (max-width: 960px) {
  .-type-list .p-postList__link,
  .-type-list2 .p-postList__link {
    flex-direction: column;
    gap: 1rem;
  }
}

@media screen and (max-width: 960px) {
  .-type-list .p-postList__thumb,
  .-type-list2 .p-postList__thumb {
    width: 100%;
  }
}

@media screen and (max-width: 960px) {
  .-type-list .p-postList__body,
  .-type-list2 .p-postList__body {
    width: 100%;
  }
}

.p-postList .p-postList__title {
  font-size: 1.125rem;
}

[class*=" icon-"]:before,
[class^=icon-]:before {
  content: none;
}

.p-postList__body {
  display: flex;
  flex-direction: column-reverse;
  gap: 0.625rem;
}

.p-postList__meta {
  font-size: 0.875rem;
}
.p-postList__meta .u-thin {
  opacity: 1;
}

.p-postList__cat,
.c-categoryList__link {
  background: var(--color_text);
  color: #fff;
  padding: 0.125rem 0.625rem;
  font-weight: var(--font-weight--bold);
  line-height: inherit;
}

.p-postList__times {
  font-weight: var(--font-weight--bold);
  letter-spacing: 0.05em;
}

.-type-list .p-postList__item {
  padding-block: 1.875rem;
  border-bottom: 1px solid var(--color-thin_border);
  margin: 0;
}

.-type-card .p-postList__item {
  padding-inline: 2rem;
}
@media screen and (max-width: 960px) {
  .-type-card .p-postList__item {
    padding: 0.7142857143rem;
    width: 100%;
  }
}

.c-categoryList:before {
  content: none;
}

.p-articleMetas {
  font-size: 0.875rem;
  flex-direction: row-reverse;
  justify-content: flex-end;
}
.p-articleMetas.-top .p-articleMetas__termList {
  font-size: 0.875rem;
}

/* style */
.post_content h2.is-style-page_second_heading {
  font-size: 3rem;
  font-weight: var(--font-weight--black);
}
@media screen and (max-width: 960px) {
  .post_content h2.is-style-page_second_heading {
    font-size: 2.5714285714rem;
    margin-block-end: 4.8571428571rem;
  }
}

.is-style-underline_button .wp-block-button__link {
  border-bottom: 1px solid;
  font-weight: var(--font-weight--bold);
  background: none;
  color: var(--color_text);
  border-radius: 0;
  width: 16.875rem !important;
  padding: 0 0 0.375rem 0;
  font-size: 1rem;
  position: relative;
  overflow: hidden;
}
.is-style-underline_button .wp-block-button__link:before, .is-style-underline_button .wp-block-button__link:after {
  content: "";
  position: absolute;
  top: 0;
  bottom: 0;
  margin: auto;
  right: 0;
  display: block;
  width: 1.5625rem;
  aspect-ratio: 25/9;
  background: url("../images/arrow.svg") no-repeat center/contain;
}
.is-style-underline_button .wp-block-button__link:after {
  opacity: 0;
}
.is-style-underline_button .wp-block-button__link:hover:before {
  animation: transformLeftRight 0.3s forwards ease-in-out;
}
.is-style-underline_button .wp-block-button__link:hover:after {
  animation: transformRightLeft 0.3s 0.3s forwards ease-in-out;
}

@keyframes transformLeftRight {
  0% {
    transform: translateX(0%);
  }
  100% {
    transform: translateX(250%);
  }
}
@keyframes transformRightLeft {
  0% {
    transform: translateX(-100%);
    opacity: 0;
  }
  100% {
    transform: translateX(0);
    opacity: 1;
  }
}
.is-style-fill_button {
  width: 100%;
  max-width: 22.5rem;
}
.is-style-fill_button .wp-block-button__link {
  font-weight: var(--font-weight--bold);
  background: var(--color_main);
  color: #fff;
  border-radius: 0;
  padding: 1rem 1.875rem;
  font-size: 1rem;
  position: relative;
  overflow: hidden;
  text-align: left;
}
.is-style-fill_button .wp-block-button__link:before, .is-style-fill_button .wp-block-button__link:after {
  content: "";
  position: absolute;
  top: 0;
  bottom: 0;
  margin: auto;
  right: 8%;
  display: block;
  width: 1.5625rem;
  aspect-ratio: 25/9;
  background: url("../images/arrow_w.svg") no-repeat center/contain;
}
.is-style-fill_button .wp-block-button__link.has-white-background-color:before, .is-style-fill_button .wp-block-button__link.has-white-background-color:after {
  background-image: url("../images/arrow.svg");
}
.is-style-fill_button .wp-block-button__link:after {
  opacity: 0;
}
.is-style-fill_button .wp-block-button__link:hover:before {
  animation: transformLeftRight 0.3s forwards ease-in-out;
}
.is-style-fill_button .wp-block-button__link:hover:after {
  animation: transformRightLeft 0.3s 0.3s forwards ease-in-out;
}

.is-style-row_categories {
  display: flex;
  gap: 1.25rem;
}
.is-style-row_categories .cat-item {
  display: inline-block;
  background: var(--color_main);
  border: 1px solid var(--color_main);
  color: #fff;
}
.is-style-row_categories .cat-item a {
  transition: background-color 0.3s, color 0.3s;
  border: none;
  padding: 0.625rem 0.75rem;
}
.is-style-row_categories .cat-item a:hover {
  background: #fff;
  color: var(--color_text);
}

/* TOP */
.fv__img {
  max-width: 81.8897637795vw;
  margin-left: auto;
}
@media screen and (max-width: 960px) {
  .fv__img {
    max-width: 100vw;
    margin-top: 1.8571428571rem;
    margin-inline: 0;
  }
  .fv__img img {
    height: 70vh;
    object-fit: cover;
  }
}

.fv-copy__text {
  font-size: 3.125rem;
  font-weight: var(--font-weight--bold);
  line-height: 1;
  letter-spacing: 0.16em;
  position: relative;
  z-index: 1;
  margin-block-end: -4.375rem;
  margin-inline-start: 5.249343832vw;
}
@media screen and (max-width: 960px) {
  .fv-copy__text {
    font-size: 1.4285714286rem;
    width: fit-content;
    margin-block-end: -2.4285714286rem;
  }
}
.fv-copy__text figure {
  width: 9.375rem;
  aspect-ratio: 1/1;
  position: absolute;
  left: 31.875rem;
  bottom: -4.625rem;
  mask-image: conic-gradient(from 270deg, transparent 60deg, black 60deg 270deg);
  -webkit-mask-repeat: no-repeat;
  mask-repeat: no-repeat;
  border-radius: 50%;
}
@media screen and (max-width: 960px) {
  .fv-copy__text figure {
    width: 5.7142857143rem;
    left: 14.2857142857rem;
    bottom: -3.2142857143rem;
  }
}
.fv-copy__text figure img {
  transform-origin: center;
  animation: spin 40s linear infinite;
}

.top-feature__section {
  --padding-block-start: 11.25rem;
  --padding-block-end: 7.5rem;
}
@media screen and (max-width: 960px) {
  .top-feature__section {
    --padding-block-start: 4.2857142857rem;
    --padding-block-end: 0;
  }
}

.top-feature__columns .swell-block-columns__inner {
  flex-wrap: nowrap;
}
@media screen and (max-width: 960px) {
  .top-feature__columns .swell-block-columns__inner {
    flex-wrap: wrap;
  }
}
.top-feature__columns .swell-block-column {
  flex: 1;
}
@media screen and (max-width: 960px) {
  .top-feature__columns .swell-block-column {
    flex: auto;
  }
}
.top-feature__columns .top-feature__column__image {
  margin-inline-end: -19.5538057743vw;
  width: auto;
}
@media screen and (max-width: 960px) {
  .top-feature__columns .top-feature__column__image {
    left: calc(50% - 50vw + var(--swl-scrollbar_width, 0px) / 2);
    margin: 0;
    width: calc(100vw - var(--swl-scrollbar_width, 0px));
    position: relative;
  }
  .top-feature__columns .top-feature__column__image figure {
    width: 100vw;
  }
}

.top-feature__list {
  gap: 9.375rem;
}
@media screen and (max-width: 960px) {
  .top-feature__list {
    gap: 6.4285714286rem;
  }
}

.top-feature__item {
  padding-inline: 1.875rem;
}
@media screen and (max-width: 960px) {
  .top-feature__item {
    padding-inline: 2.1428571429rem 0;
  }
}
.top-feature__item h3 {
  font-size: 1.875rem;
  font-weight: var(--font-weight--bold);
}
@media screen and (max-width: 960px) {
  .top-feature__item h3 {
    font-size: 1.7857142857rem;
  }
}
.top-feature__item h3:before {
  content: "";
  bottom: -1.2em;
  background: url("../images/number_img_01.svg") no-repeat center/contain;
  z-index: -1;
  width: 8.125rem;
  aspect-ratio: 130/185;
  left: -1.875rem;
}
@media screen and (max-width: 960px) {
  .top-feature__item h3:before {
    width: 7.2857142857rem;
    left: -2.1428571429rem;
    bottom: 0.47em;
  }
}
.top-feature__item:nth-of-type(1) h3::before {
  background-image: url("../images/number_img_01.svg");
}
.top-feature__item:nth-of-type(2) h3::before {
  background-image: url("../images/number_img_02.svg");
}
.top-feature__item:nth-of-type(3) h3::before {
  background-image: url("../images/number_img_03.svg");
}

.top-service__section {
  --padding-block-start: 7.5rem;
  --padding-block-end: 7.5rem;
  max-width: 96.5879265092vw !important;
  margin-inline-start: calc((3.4120734908vw - var(--swl-scrollbar_width, 0px)) / 2);
}
@media screen and (max-width: 960px) {
  .top-service__section {
    --padding-block-start: 4.2857142857rem;
    --padding-block-end: 4.2857142857rem;
    margin-inline: 0;
    max-width: 100vw !important;
  }
}
.top-service__body > .swell-block-columns__inner {
  align-items: flex-start;
}
@media screen and (min-width: 961px) {
  .top-service__heading {
    position: sticky;
    top: calc(var(--logo_size_pcfix) + 7.5rem);
  }
}
.top-service__list {
  gap: 5rem;
}
@media screen and (max-width: 960px) {
  .top-service__list {
    gap: 4.2857142857rem;
  }
}
.top-service__item > div {
  align-items: stretch !important;
}
.top-service__item__body {
  display: flex;
  flex-grow: 1;
}

.top-blog__section {
  --padding-block-start: 7.5rem;
}
@media screen and (max-width: 960px) {
  .top-blog__section {
    --padding-block-start: 4.2857142857rem;
  }
}

/** service **/
.service-archive__section .service-archive__list__card .c-bannerLink:before {
  content: none;
}
.service-archive__section .service-archive__list__card .c-bannerLink__text {
  display: block;
  top: auto;
  background: #000;
  bottom: 0;
  height: auto;
  padding: 1em;
}
.service-archive__section .service-archive__list__card .c-bannerLink__title {
  font-size: 1rem;
}
.service-work__section {
  --padding-block-start: 11.5625rem;
  --padding-block-end: 11.875rem;
  margin-block-start: -8.125rem !important;
}
@media screen and (max-width: 960px) {
  .service-work__section {
    --padding-block-start: 3.7142857143rem;
    --padding-block-end: 7.1428571429rem;
    margin-block-start: 0 !important;
  }
}

@media screen and (max-width: 960px) {
  .service-work__list {
    left: calc(50% - 50vw + var(--swl-scrollbar_width, 0px) / 2);
    width: calc(100vw - var(--swl-scrollbar_width, 0px));
  }
}

.service-work__item {
  line-height: 1.3;
  --border-radius: 0.625rem;
  display: flex;
  flex-direction: column;
  height: auto;
  justify-content: space-between;
  --swl-clmn-pddng: 0 0.625rem 1.25rem;
}
.service-work__item__wrap {
  --swl-box_padding: 0 !important;
  justify-content: space-between;
  height: 100%;
  border-radius: var(--border-radius);
  box-shadow: 0.1875rem 0.1875rem 0.625rem rgba(0, 0, 0, 0.2);
}
.service-work__item__icon {
  margin: auto;
}
.service-work__item__dl {
  width: 100%;
}
.service-work__item__comp {
  align-items: center;
  gap: 0.625rem;
}
.service-work__item__comp:after {
  content: "";
  text-align: center;
  clip-path: polygon(50% 100%, 0 0, 100% 0);
  background: var(--color_main);
  aspect-ratio: 1/1;
  width: 1.25rem;
}
.service-work__item__comp p:last-of-type {
  order: 2;
  margin-block: var(--leading-trim);
}
.service-work__item__title {
  width: 100%;
  display: flex;
  flex-direction: column;
  justify-content: center;
  flex-grow: 1;
  font-size: 1.5rem;
  --swl-box_padding: 1rem 1.25rem;
  border-radius: var(--border-radius) var(--border-radius) 0 0;
  margin-block-end: 1.25rem;
}
@media screen and (max-width: 960px) {
  .service-work__item__title {
    --swl-box_padding: 1rem 1.1428571429rem;
  }
}
.service-work__item__body {
  justify-content: center;
  align-items: center;
  padding: 0 1.5rem 1.5rem;
}
.service-work__item__text {
  justify-content: center;
  align-items: center;
  gap: 1.875rem;
}
.service-work__item__label {
  --swl-box_padding: 0.25rem 1rem;
  background: var(--color_main);
  font-size: 1.25rem;
}
@media screen and (max-width: 960px) {
  .service-work__item__label {
    --swl-box_padding: 0.2857142857rem 0.7142857143rem;
  }
}

/** blog **/
.blog {
  --article_size: 68.125rem;
}

/** footer **/
.l-footer__foot {
  max-width: 115rem;
  margin: auto;
  padding-block: 1.25rem 2.5rem;
  border-block-start: 1px solid var(--color-thin_border--black);
}
@media screen and (max-width: 960px) {
  .l-footer__foot {
    max-width: 23.2142857143rem;
    border: none;
  }
}
.l-footer__foot .l-container {
  display: flex;
  justify-content: space-between;
  align-items: center;
  flex-wrap: wrap;
}
@media screen and (max-width: 960px) {
  .l-footer__foot .l-container {
    flex-direction: column;
    align-items: flex-start;
    padding: 0;
  }
}

.l-footer__widgetArea {
  padding-block: 3.75rem;
}
@media screen and (max-width: 960px) {
  .l-footer__widgetArea {
    padding-block: 2.1428571429rem;
  }
}

.w-footer {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  grid-template-rows: repeat(2, 1fr);
  row-gap: 6.25rem;
}
@media screen and (max-width: 960px) {
  .w-footer {
    grid-template-columns: auto;
    row-gap: 2.8571428571rem;
    grid-template-rows: 1fr;
  }
}

.w-footer__box {
  padding: 0;
  margin: 0;
}
.w-footer__box:nth-of-type(1) {
  grid-column: span 2/span 2;
}
@media screen and (max-width: 960px) {
  .w-footer__box:nth-of-type(1) {
    grid-column: auto;
  }
}
.w-footer__box:nth-of-type(2) {
  grid-row-start: 2;
}
@media screen and (max-width: 960px) {
  .w-footer__box:nth-of-type(2) {
    grid-row-start: 4;
  }
}
.w-footer__box:nth-of-type(3) {
  grid-row-start: 2;
  display: flex;
  gap: 5rem;
}
@media screen and (max-width: 960px) {
  .w-footer__box:nth-of-type(3) {
    grid-row-start: 3;
    flex-direction: column;
    gap: 0;
  }
}
@media screen and (min-width: 961px) {
  .w-footer__box .c-submenuToggleBtn {
    display: none;
  }
}
@media screen and (max-width: 960px) {
  .w-footer__box .c-submenuToggleBtn:before {
    color: var(--color_text);
  }
  .w-footer__box .c-submenuToggleBtn:after {
    background: #fff;
  }
}
.w-footer__box .c-listMenu a {
  transition: opacity 0.2s;
}
.w-footer__box .c-listMenu a:hover {
  opacity: 0.8;
}
@media screen and (max-width: 960px) {
  .w-footer__box .c-listMenu a {
    border-block-end: 1px solid var(--color-thin_border--black);
    padding-block: 1.1428571429rem;
  }
}
@media screen and (min-width: 961px) {
  .w-footer__box .c-listMenu .sub-menu {
    height: auto;
    opacity: 1;
    overflow: auto;
    transition: none;
  }
}
@media screen and (max-width: 960px) {
  .w-footer__box a {
    border-color: var(--color-thin_border--black);
  }
}

.c-widget + .c-widget {
  margin: 0;
}

.footer-cta__heading {
  font-size: 2.5rem;
  font-weight: var(--font-weight--bold);
}
@media screen and (max-width: 960px) {
  .footer-cta__heading {
    text-align: center;
    font-size: 2.8571428571rem;
  }
}
.footer-cta__heading:after {
  content: "CONTACT";
  display: inline-block;
  position: absolute;
  top: -4.375rem;
  left: 0;
  font-size: 6rem;
  font-weight: var(--font-weight--bold);
  background: linear-gradient(180deg, #fff 0%, rgba(255, 255, 255, 0.35) 100%);
  -webkit-background-clip: text;
  background-clip: text;
  -webkit-text-fill-color: transparent;
  opacity: 0.2;
}
@media screen and (max-width: 960px) {
  .footer-cta__heading:after {
    font-size: 4.1428571429rem;
    right: 0;
    margin: auto;
    top: -3.2142857143rem;
  }
}

.l-footer .c-widget.widget_media_image {
  max-width: 10rem;
}

@media (min-width: 600px) {
  .l-footer__nav a {
    border: none;
    font-size: 0.875rem;
  }
  .l-footer__nav li:first-child a {
    border: none;
  }
}
.l-footer .copyright {
  font-size: 0.875rem;
}

@media screen and (max-width: 960px) {
  #pagetop {
    width: 3.7142857143rem;
    height: 3.7142857143rem;
  }
}
#pagetop i:before {
  content: "";
  display: block;
  width: 1.5625rem;
  aspect-ratio: 25/9;
  background: url("../images/arrow.svg") no-repeat center/cover;
  transform: rotate(-90deg);
  position: relative;
  left: -2px;
  transition: background-image 0.3s;
}
#pagetop:hover i:before {
  background-image: url("../images/arrow_w.svg");
}

/** contact form */
.smf-form {
  display: flex;
  flex-direction: column;
  gap: 2.5rem;
}

.smf-item {
  display: grid;
  gap: 0.375rem;
}

.smf-form .smf-text-control__control {
  width: 100%;
}

.smf-action {
  margin-block-start: 1.875rem;
}

.smf-action .smf-button-control__control {
  width: 100%;
}

.smf-item.required .smf-item__label__text {
  position: relative;
}
.smf-item.required .smf-item__label__text:after {
  content: "*";
  color: #f23a3c;
}

.smf-action .smf-button-control__control {
  max-width: 22.5rem;
  margin: auto;
  background: none;
  background-color: var(--color_main);
  color: #fff;
  font-weight: var(--font-weight--bold);
  border: none;
  border-radius: 0;
  text-align: left;
  padding: 1.375rem 1.875rem;
  display: flex;
  justify-content: space-between;
  align-items: center;
}
.smf-action .smf-button-control__control:after {
  content: "";
  display: block;
  width: 1.5625rem;
  aspect-ratio: 25/9;
  background: url("../images/arrow_w.svg") no-repeat center/cover;
}

.contact-privacy__checkbox {
  text-align: center;
  margin-block-start: 0.625rem;
}

/* swiper */
.swiper-wrapper {
  flex-wrap: nowrap;
  margin: 0;
}

.swiper-postListWrap .p-postList {
  flex-wrap: nowrap;
  margin: 0;
}

.swiper-wrapper .swiper-slide {
  margin: 0;
}

.swiper-button-next,
.swiper-button-prev {
  background: var(--color_main);
  border-radius: 100vh;
  height: calc(var(--swiper-nav-size));
}
@media screen and (max-width: 960px) {
  .swiper-button-next,
  .swiper-button-prev {
    --swiper-nav-size: 2.8571428571rem;
    --swiper-nav-border-width: 0.2142857143rem;
  }
}
.swiper-button-next:after,
.swiper-button-prev:after {
  width: calc(var(--swiper-nav-size) * 0.3);
  height: calc(var(--swiper-nav-size) * 0.3);
  top: -0.1428571429rem;
  left: 0;
}

@media screen and (max-width: 960px) {
  .swiper-button-prev:after {
    left: 0.2142857143rem;
  }
}