@charset "UTF-8";
/* ===============================================
# fonts
=============================================== */
@import url("https://fonts.googleapis.com/css2?family=Noto+Sans+JP:wght@100..900&display=swap");
@import url("https://fonts.googleapis.com/css2?family=Roboto+Condensed:ital,wght@0,700;1,700&display=swap");
/* ===============================================
# 共通
=============================================== */
:root {
  --main-color: #58B132;
  --sub-color: #FFF100;
  --accent-color: #E7373C;
  --text-color: #333333;
  --fz40: clamp( 32px, calc( 28.68px + 0.88vw ), 40px );
  --fz38: clamp( 22px, calc( 15.37px + 1.76vw ), 38px );
  --fz32: clamp( 28px, calc( 26.34px + 0.44vw ), 32px );
  --fz26: clamp( 18px, calc( 14.68px + 0.88vw ), 26px );
  --fz24: clamp( 18px, calc( 15.51px + 0.66vw ), 24px );
  --fz20: clamp( 16px, calc( 14.34px + 0.44vw ), 20px );
  --fz18: clamp( 14px, calc( 12.34px + 0.44vw ), 18px );
  --fz16: clamp( 14px, calc( 13.17px + 0.22vw ), 16px );
  --fz15: clamp( 14px, calc( 13.58px + 0.11vw ), 15px );
  --main-text: "Noto Sans JP", "Hiragino Sans", "ヒラギノ角ゴシック", "游ゴシック", "Yu Gothic", "游ゴシック Medium", "Yu Gothic Medium", "游ゴシック体", YuGothic, "メイリオ", Meiryo, sans-serif;
  --title-jp-text: "Noto Sans JP", sans-serif;
  --title-en-text: "Roboto Condensed", sans-serif;
  --transition-normal: all 0.3s ease-out;
  --transition-slow: all 0.5s ease-out;
}

* {
  -webkit-box-sizing: border-box;
          box-sizing: border-box;
}

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

body {
  color: var(--text-color);
  font-family: var(--main-text);
  font-optical-sizing: auto;
  font-size: 14px;
  font-weight: 400;
  line-height: 1.5;
  letter-spacing: 0.02em;
  -webkit-text-size-adjust: 100%;
  word-wrap: break-word;
  word-break: break-all;
  overflow-wrap: break-word;
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
}

a {
  color: var(--main-color);
  text-decoration: none;
  -webkit-transition: var(--transition-normal);
  transition: var(--transition-normal);
}

a:hover {
  color: var(--main-color);
}

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

.flex {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -ms-flex-wrap: wrap;
      flex-wrap: wrap;
  -webkit-box-pack: center;
      -ms-flex-pack: center;
          justify-content: center;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
  -webkit-box-orient: horizontal;
  -webkit-box-direction: normal;
      -ms-flex-direction: row;
          flex-direction: row;
}

.img-trim img {
  aspect-ratio: 1/1;
  width: 100%;
  -o-object-fit: cover;
     object-fit: cover;
}

.pc-hide {
  display: none;
}

/* ===============================================
# parts - circle
=============================================== */
.circle::before {
  content: "";
  width: 12px;
  height: 12px;
  position: absolute;
  top: 50%;
  left: 0;
  -webkit-transform: translate(0, -50%);
          transform: translate(0, -50%);
  background-color: #BBD9AE;
  border-radius: 50%;
}
.circle::after {
  content: "";
  width: 6px;
  height: 6px;
  position: absolute;
  top: 50%;
  left: 3px;
  -webkit-transform: translate(0, -50%);
          transform: translate(0, -50%);
  background-color: var(--main-color);
  border-radius: 50%;
}
.circle--white::after {
  background-color: #ffffff;
}

/* ===============================================
# parts - heading
=============================================== */
.heading {
  position: relative;
  text-align: center;
}
.heading__main {
  font-size: var(--fz40);
  font-weight: 700;
  font-family: var(--title-en-text);
  line-height: 1;
  letter-spacing: 0.5px;
  color: var(--main-color);
}
.heading__sub {
  font-size: 14px;
  line-height: 1;
  letter-spacing: 0;
  margin-top: 8px;
}

.heading--white .heading__main {
  color: #ffffff;
}
.heading--white .heading__sub {
  color: #ffffff;
}

/* ===============================================
# header
=============================================== */
.header {
  width: 100%;
  height: 80px;
  padding-left: 40px;
  padding-right: 40px;
  position: fixed;
  top: 0;
  left: 0;
  z-index: 999;
  -webkit-transition: var(--transition-normal);
  transition: var(--transition-normal);
  border-bottom: 1px solid #ffffff;
}
.header.is-change {
  background-color: var(--main-color);
  border: none;
}
.header__logo {
  margin-right: auto;
}
.header__logo a:hover {
  opacity: 0.7;
}
.header__logo a img {
  width: 100%;
  max-width: 277px;
  display: block;
}
.header__ul {
  gap: 32px;
}
.header__li {
  text-align: center;
}
.header__li a {
  font-size: var(--fz16);
  font-weight: 700;
  color: #ffffff;
}
.header__li a:hover {
  opacity: 0.7;
}
.header .cta__link a {
  display: block;
  background-color: var(--accent-color);
  padding: 14px 32px;
  border-radius: 100vmax;
}
.header .cta__link a > i {
  margin-left: 8px;
  -webkit-transition: var(--transition-normal);
  transition: var(--transition-normal);
}
.header .cta__link a:hover {
  opacity: 0.9;
}
.header .cta__link a:hover > i {
  translate: 4px;
}

/* ===============================================
# drawer
=============================================== */
.drawer__icon {
  z-index: 99;
  text-align: center;
  cursor: pointer;
  -webkit-transition: var(--transition-normal);
  transition: var(--transition-normal);
}
.drawer__icon:hover {
  opacity: 0.7;
}
.drawer__icon.is-checked {
  -webkit-transform: translateX(-360px);
          transform: translateX(-360px);
}
.drawer__icon.is-checked .drawer__bar:nth-of-type(1) {
  top: 10px;
  -webkit-transform: rotate(-45deg);
          transform: rotate(-45deg);
  background-color: #ffffff;
}
.drawer__icon.is-checked .drawer__bar:nth-of-type(2) {
  background: transparent;
}
.drawer__icon.is-checked .drawer__bar:nth-of-type(3) {
  top: 10px;
  -webkit-transform: rotate(45deg);
          transform: rotate(45deg);
  background-color: #ffffff;
}
.drawer__bars {
  display: none;
  width: 24px;
  height: 20px;
  position: relative;
  vertical-align: middle;
}
.drawer__bar {
  position: absolute;
  right: 0;
  left: 0;
  display: block;
  background-color: #ffffff;
  width: 100%;
  height: 2px;
  -webkit-transition: var(--transition-normal);
  transition: var(--transition-normal);
}
.drawer__bar:nth-of-type(1) {
  top: 0;
}
.drawer__bar:nth-of-type(2) {
  top: 8px;
}
.drawer__bar:nth-of-type(3) {
  top: 16px;
}
.drawer__background {
  display: none;
  position: fixed;
  z-index: 39;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  background-color: #000000;
  opacity: 0;
  -webkit-transition: var(--transition-normal);
  transition: var(--transition-normal);
}
.drawer__background.is-checked {
  display: block;
  opacity: 0.8;
}
.drawer__content {
  overflow: auto;
  position: fixed;
  top: 0;
  right: 0;
  bottom: auto;
  left: auto;
  -webkit-transform: translateX(105%);
          transform: translateX(105%);
  z-index: 98;
  width: 360px;
  max-width: 90%;
  height: 100%;
  background-color: var(--main-color);
  -webkit-transition: var(--transition-normal);
  transition: var(--transition-normal);
  text-align: left;
  padding: 32px;
}
.drawer__content.is-checked {
  -webkit-transform: translateX(0);
          transform: translateX(0);
}
.drawer__logo a:hover {
  opacity: 0.7;
}
.drawer__logo a img {
  width: 100%;
  max-width: 220px;
  display: block;
}
.drawer__list {
  margin-top: 32px;
}
.drawer__li {
  margin-top: 16px;
}
.drawer__li > a {
  position: relative;
  color: #ffffff;
  display: inline-block;
  padding-left: 20px;
}
.drawer__li > a:hover {
  opacity: 0.7;
}
.drawer__li i {
  font-size: 12px;
  margin-left: 4px;
}
.drawer__li-sub {
  font-size: 13px;
  font-weight: 300;
  margin-top: 4px;
}
.drawer__li-sub:first-child {
  margin-top: 8px;
}
.drawer__li-sub > span {
  position: relative;
  display: inline-block;
  padding-left: 36px;
  color: #ffffff;
}
.drawer__li-sub > span::after {
  content: "";
  position: absolute;
  width: 8px;
  height: 1px;
  top: 50%;
  left: 20px;
  -webkit-transform: translateY(-50%);
          transform: translateY(-50%);
  background-color: #ffffff;
}
.drawer__info {
  font-size: 12px;
  font-weight: 300;
  line-height: 1.8;
  color: #ffffff;
  margin-top: 32px;
}

/* ===============================================
# main
=============================================== */
main {
  width: 100%;
}

/* ===============================================
# main visual
=============================================== */
.mv {
  position: relative;
  width: 100%;
  overflow: hidden;
  background-color: var(--main-color);
  background-image: url(../img/bg-pattern.webp), url(../img/bg-dots.webp);
  background-repeat: no-repeat, repeat;
  background-position: center center, left top;
  background-size: cover, 81.92px auto;
  z-index: 1;
}
.mv::after {
  content: "";
  position: absolute;
  width: 100%;
  height: 100%;
  top: 0;
  left: 0;
}
.mv__inner {
  width: 100%;
  max-width: 1420px;
  height: 720px;
  margin-inline: auto;
  position: relative;
  background-image: url(../img/mv_frame.webp);
  background-repeat: no-repeat;
  background-position: center bottom;
  background-size: contain;
}
.mv__title {
  display: block;
  position: absolute;
  top: 19%;
  left: 50%;
  -webkit-transform: translateX(-50%);
          transform: translateX(-50%);
  z-index: 19;
  width: 42%;
  max-width: 534px;
}
.mv__mockup {
  display: block;
  position: absolute;
  bottom: 0;
  left: 50%;
  -webkit-transform: translateX(-50%);
          transform: translateX(-50%);
  z-index: 18;
  width: 32%;
  max-width: 400px;
}
.mv__left-img {
  display: block;
  position: absolute;
  bottom: 26px;
  left: 40px;
  z-index: -1;
  width: 33%;
  max-width: 420px;
}
.mv__right-img {
  display: block;
  position: absolute;
  bottom: 26px;
  right: 40px;
  z-index: -1;
  width: 33%;
  max-width: 420px;
}

/* ===============================================
# section
=============================================== */
.section {
  position: relative;
  margin-top: 80px;
}
.section__inner {
  width: 100%;
  max-width: 1360px;
  padding-inline: 40px;
  margin-inline: auto;
}
.section__inner--vertical {
  padding-top: 80px;
  padding-bottom: 80px;
}

/* ===============================================
# service
=============================================== */
.service__inner {
  width: 100%;
  max-width: 860px;
  margin-top: 48px;
  margin-inline: auto;
}
.service__body {
  width: 100%;
}
.service__title {
  font-size: var(--fz26);
  font-weight: 700;
  line-height: 1.6;
  text-align: center;
}
.service__title > span::before, .service__title > span::after {
  content: "";
  width: 32px;
  height: 3px;
  background-color: currentColor;
}
.service__title > span::before {
  margin-right: 16px;
  rotate: 45deg;
}
.service__title > span::after {
  margin-left: 16px;
  rotate: -45deg;
}
.service__text-wrap {
  font-size: var(--fz15);
  line-height: 2.2;
  letter-spacing: 0;
  margin-top: 32px;
}
.service__text {
  margin-top: 8px;
}
.service__text > strong {
  font-weight: 700;
  background: -webkit-gradient(linear, left top, left bottom, color-stop(60%, transparent), color-stop(60%, var(--sub-color)));
  background: linear-gradient(transparent 60%, var(--sub-color) 60%);
}
.service__list {
  list-style-type: disc;
  margin-top: 8px;
  margin-left: 24px;
}
.service__item {
  font-weight: 700;
  color: var(--accent-color);
  line-height: 2.4;
  text-decoration: underline;
}

/* ===============================================
# message
=============================================== */
.message {
  background-color: var(--main-color);
  background-image: url(../img/bg-text.webp), url(../img/bg-dots.webp);
  background-repeat: repeat-x, repeat;
  background-position: left bottom, left top;
  background-size: 466px auto, 81.92px auto;
}
.message__inner {
  width: 100%;
  padding: 32px 40px;
  margin-top: 96px;
}
.message__img {
  width: 100%;
  max-width: 175px;
  position: absolute;
  left: 0;
  bottom: -32px;
}
.message__title {
  position: relative;
  font-size: var(--fz20);
  font-weight: 700;
  line-height: 1.8;
  color: #ffffff;
  padding-inline: 215px;
}

/* ===============================================
# recommend
=============================================== */
.recommend {
  background-color: #F9FBF9;
  margin-top: 0 !important;
}
.recommend__inner {
  position: relative;
  gap: 64px;
  margin-top: 48px;
}
.recommend__img {
  width: 35%;
}
.recommend__body {
  width: 45.5833333333%;
}
.recommend__item:not(:first-child) {
  margin-top: 24px;
}
.recommend__title {
  position: relative;
  font-size: var(--fz16);
  font-weight: 500;
  line-height: 1.6;
  padding-left: 20px;
}
.recommend .circle::before {
  top: 13px;
}
.recommend .circle::after {
  top: 13px;
}

/* ===============================================
# features
=============================================== */
.features {
  margin-top: 0 !important;
}
.features__bg {
  width: 100%;
  background-color: var(--main-color);
  background-image: url(../img/bg-pattern.webp), url(../img/bg-dots.webp);
  background-repeat: no-repeat, repeat;
  background-position: center center, left top;
  background-size: cover, 81.92px auto;
  padding-top: 80px;
  padding-bottom: 128px;
}
.features .section__inner {
  position: relative;
  width: 100%;
  max-width: 1160px;
  background-color: #ffffff;
  border-top-left-radius: 16px;
  border-top-right-radius: 16px;
  padding-top: 24px;
  margin-top: -80px;
}
.features__inner {
  -ms-flex-pack: distribute;
      justify-content: space-around;
  -webkit-box-align: stretch;
      -ms-flex-align: stretch;
          align-items: stretch;
  margin-top: 48px;
}
.features__item {
  width: 29.6296296296%;
}
.features__body {
  padding: 8px 16px 0;
}
.features__title {
  position: relative;
  font-size: var(--fz18);
  font-weight: 700;
  line-height: 1.6;
  text-indent: 0.04em;
  letter-spacing: 0.04em;
  text-align: center;
}
.features__title > strong {
  background: -webkit-gradient(linear, left top, left bottom, color-stop(60%, transparent), color-stop(60%, var(--sub-color)));
  background: linear-gradient(transparent 60%, var(--sub-color) 60%);
}
.features__text {
  font-size: var(--fz15);
  line-height: 2;
  letter-spacing: 0;
  margin-top: 8px;
}

/* ===============================================
# works
=============================================== */
.works {
  background-color: #F9FBF9;
}
.works__title {
  font-size: var(--fz26);
  font-weight: 700;
  line-height: 1.6;
  text-align: center;
  margin-top: 48px;
}
.works__title > span::before, .works__title > span::after {
  content: "";
  width: 32px;
  height: 3px;
  background-color: currentColor;
}
.works__title > span::before {
  margin-right: 16px;
  rotate: 45deg;
}
.works__title > span::after {
  margin-left: 16px;
  rotate: -45deg;
}
.works__inner {
  gap: 48px;
  margin-top: 48px;
}
.works__item {
  width: calc(33.3333333333% - 32px);
  max-width: 320px;
}

/* ===============================================
# cta
=============================================== */
.cta {
  position: relative;
  background-color: var(--main-color);
  background-image: url(../img/bg-pattern.webp), url(../img/bg-dots.webp);
  background-repeat: no-repeat, repeat;
  background-position: center center, left top;
  background-size: cover, 81.92px auto;
  margin-top: 0 !important;
}
.cta .section__inner {
  padding-bottom: 120px !important;
}
.cta__title {
  font-size: var(--fz26);
  font-weight: 700;
  color: #ffffff;
  line-height: 1.6;
  text-align: center;
  margin-top: 48px;
}
.cta__title > span::before, .cta__title > span::after {
  content: "";
  width: 32px;
  height: 3px;
  background-color: currentColor;
}
.cta__title > span::before {
  margin-right: 16px;
  rotate: 45deg;
}
.cta__title > span::after {
  margin-left: 16px;
  rotate: -45deg;
}
.cta__inner {
  gap: 48px;
  margin-top: 48px;
}
.cta__img {
  width: 100%;
  max-width: 184px;
  position: absolute;
  bottom: -20px;
  left: 50%;
  -webkit-transform: translateX(-50%);
          transform: translateX(-50%);
  z-index: 1;
  pointer-events: none;
}

.contact {
  gap: 24px 48px;
  margin-top: 24px;
}
.contact__btn {
  width: 50%;
  max-width: 380px;
  height: 110px;
  color: var(--text-color);
  background-color: #ffffff;
  border-radius: 8px;
  text-align: center;
  gap: 8px;
  -webkit-box-orient: vertical;
  -webkit-box-direction: normal;
      -ms-flex-direction: column;
          flex-direction: column;
}
.contact__btn--mail .text02 {
  font-size: var(--fz18);
}
.contact__btn--tel .text02 {
  font-size: var(--fz24);
  line-height: calc(var(--fz18) * 1.5);
}
.contact__btn--tel .text02 > i {
  translate: 0 -3px;
}
.contact__btn:hover {
  color: #ffffff;
  background-color: var(--accent-color);
  translate: 0 -4px;
}
.contact__btn:hover .text02 {
  color: #ffffff;
}
.contact .text01 {
  font-size: 14px;
  font-weight: 700;
}
.contact .text02 {
  font-weight: 700;
  color: var(--accent-color);
  -webkit-transition: var(--transition-normal);
  transition: var(--transition-normal);
}
.contact .text02 > i {
  font-size: var(--fz18);
  margin-right: 8px;
}
.contact .text03 {
  font-size: 12px;
  font-weight: 700;
  line-height: 1;
}

/* ===============================================
# company
=============================================== */
.company {
  background-color: #F9FBF9;
  margin-top: 0 !important;
}
.company__inner {
  width: 100%;
  max-width: 920px;
  margin-inline: auto;
  margin-top: 48px;
}
.company__list {
  border-top: 2px solid var(--text-color);
  border-bottom: 2px solid var(--text-color);
}
.company__dl {
  padding: 10px 0;
  -webkit-box-align: stretch;
      -ms-flex-align: stretch;
          align-items: stretch;
}
.company__dl:not(:first-child) {
  border-top: 1px solid #C0C0C0;
}
.company__dt {
  width: 23.9130434783%;
  border-right: 1px solid #C0C0C0;
  padding: 10px 16px;
  font-size: var(--fz15);
  font-weight: 700;
  line-height: 1.8;
}
.company__dd {
  width: 76.0869565217%;
  padding: 10px 16px;
  font-size: var(--fz15);
  line-height: 1.8;
}

/* ===============================================
# footer
=============================================== */
.footer {
  color: #ffffff;
  background-color: var(--main-color);
  margin-top: 0 !important;
}
.footer__inner {
  width: 100%;
  max-width: 1280px;
  padding-inline: 40px;
  margin-inline: auto;
}
.footer__top {
  border-bottom: 1px solid #ffffff;
  padding: 24px 0 16px;
}
.footer__logo {
  margin-right: auto;
  -webkit-box-align: end;
      -ms-flex-align: end;
          align-items: flex-end;
}
.footer__logo a:hover {
  opacity: 0.7;
}
.footer__logo a img {
  width: 100%;
  max-width: 147px;
  display: block;
}
.footer__info {
  font-size: 12px;
  margin-left: 24px;
}
.footer__bottom {
  -webkit-box-pack: start;
      -ms-flex-pack: start;
          justify-content: flex-start;
  -webkit-box-align: start;
      -ms-flex-align: start;
          align-items: flex-start;
  gap: 32px 96px;
  padding-top: 16px;
}
.footer__li {
  margin-top: 16px;
}
.footer__li > a {
  position: relative;
  color: #ffffff;
  display: inline-block;
  padding-left: 20px;
}
.footer__li > a:hover {
  opacity: 0.7;
}
.footer__li i {
  font-size: 12px;
  margin-left: 4px;
}
.footer__li-sub {
  font-size: 13px;
  font-weight: 300;
  margin-top: 4px;
}
.footer__li-sub:first-child {
  margin-top: 8px;
}
.footer__li-sub > span {
  position: relative;
  display: inline-block;
  padding-left: 36px;
}
.footer__li-sub > span::after {
  content: "";
  position: absolute;
  width: 8px;
  height: 1px;
  top: 50%;
  left: 20px;
  -webkit-transform: translateY(-50%);
          transform: translateY(-50%);
  background-color: #ffffff;
}

.copyright {
  font-size: 12px;
  text-align: center;
  margin-top: 64px;
}

/* ===============================================
# pageTop
=============================================== */
.page-top {
  -webkit-transition: var(--transition-normal);
  transition: var(--transition-normal);
  cursor: pointer;
}
.page-top:hover {
  translate: 0 -4px;
}
.page-top span {
  display: inline-block;
  background-image: url(../img/icon_arrow-white.webp);
  background-repeat: no-repeat;
  background-position: center right;
  background-size: 8px 18px;
  padding-right: 16px;
}

/* ===============================================
# animation
=============================================== */
.js-animateMainVisual-mockup {
  opacity: 0;
  visibility: hidden;
  -webkit-transform: translateY(60px);
          transform: translateY(60px);
  -webkit-filter: blur(8px);
          filter: blur(8px);
}

.js-animateFadeInUp-item {
  opacity: 0;
  visibility: hidden;
  -webkit-transform: translateY(60px);
          transform: translateY(60px);
  -webkit-filter: blur(8px);
          filter: blur(8px);
}

.js-animateFadeInLeft-item {
  opacity: 0;
  visibility: hidden;
  -webkit-transform: translateX(-60px);
          transform: translateX(-60px);
  -webkit-filter: blur(8px);
          filter: blur(8px);
}

@media (max-width: 1024px){
  .header {
    height: 68px;
    padding-left: 24px;
    padding-right: 24px;
  }
  .header__logo a img {
    max-width: 220px;
  }
  .header__li {
    display: none;
  }
  .drawer__bars {
    display: inline-block;
  }
  .mv__inner {
    height: 68vw;
  }
  .mv__title {
    top: 22%;
    width: 48%;
  }
  .mv__mockup {
    width: 34%;
  }
  .mv__left-img {
    left: 20px;
    width: 30%;
  }
  .mv__right-img {
    right: 20px;
    width: 30%;
  }
  .message__img {
    width: 20%;
  }
  .message__title {
    padding-left: calc(20% + 16px);
    padding-right: 0;
  }
  .recommend__inner {
    gap: 32px;
  }
  .recommend__img {
    width: calc(40% - 32px);
  }
  .recommend__body {
    width: 60%;
  }
  .features .section__inner {
    max-width: calc(100% - 40px);
  }
  .contact__btn {
    width: 320px;
  }
}

@media (max-width: 768px){
  .tb-hide {
    display: none;
  }
  .header {
    height: 62px;
  }
  .section {
    margin-top: 56px;
  }
  .section__inner {
    padding-inline: 30px;
  }
  .message__inner {
    padding-inline: 30px;
  }
  .recommend__inner {
    -webkit-box-align: start;
        -ms-flex-align: start;
            align-items: flex-start;
  }
  .works__title br.pc-hide {
    display: block;
  }
  .works__item {
    width: calc(50% - 24px);
  }
  .cta__img {
    max-width: 124px;
    bottom: -14px;
  }
}

@media (max-width: 576px){
  .sp-hide {
    display: none;
  }
  .header {
    height: 54px;
    padding-left: 16px;
    padding-right: 16px;
  }
  .header__logo a img {
    max-width: 170px;
  }
  .drawer__icon.is-checked {
    -webkit-transform: translateX(-300px);
            transform: translateX(-300px);
  }
  .drawer__content {
    width: 300px;
  }
  .drawer__logo a img {
    max-width: 170px;
  }
  .mv__inner {
    height: 380px;
    background-size: auto 42px;
  }
  .mv__title {
    width: 80%;
  }
  .mv__mockup {
    width: 48%;
  }
  .mv__left-img {
    left: -12px;
    width: 32%;
  }
  .mv__right-img {
    right: -12px;
    width: 32%;
  }
  .section {
    margin-top: 32px;
  }
  .section__inner {
    padding-inline: 20px;
  }
  .section__inner--vertical {
    padding-top: 48px;
    padding-bottom: 48px;
  }
  .service__inner {
    margin-top: 24px;
  }
  .service__title > span::before, .service__title > span::after {
    width: 20px;
    height: 2px;
  }
  .service__title > span::before {
    margin-right: 2px;
  }
  .service__title > span::after {
    margin-left: 2px;
  }
  .service__text-wrap {
    margin-top: 24px;
  }
  .service__item {
    line-height: 2.2;
  }
  .message {
    background-size: 105% auto, 81.92px auto;
  }
  .message__inner {
    padding-inline: 20px;
    margin-top: 48px;
  }
  .message__img {
    width: 32%;
  }
  .message__title {
    padding-left: calc(32% + 16px);
  }
  .recommend__inner {
    margin-top: 24px;
  }
  .recommend__img {
    width: 80%;
  }
  .recommend__body {
    width: 100%;
  }
  .recommend__item:not(:first-child) {
    margin-top: 16px;
  }
  .features__inner {
    margin-top: 24px;
  }
  .features__item {
    width: 100%;
  }
  .features__img {
    display: block;
    width: 90%;
    margin-inline: auto;
  }
  .features__body {
    padding: 8px 0 24px;
  }
  .features__title {
    font-size: var(--fz20);
  }
  .features__text {
    line-height: 1.8;
  }
  .works__title {
    margin-top: 24px;
  }
  .works__title > span::before, .works__title > span::after {
    width: 20px;
    height: 2px;
  }
  .works__title > span::before {
    margin-right: 2px;
  }
  .works__title > span::after {
    margin-left: 2px;
  }
  .works__inner {
    margin-top: 24px;
  }
  .works__item {
    width: 100%;
  }
  .cta__title {
    margin-top: 24px;
  }
  .cta__title > span::before, .cta__title > span::after {
    width: 20px;
    height: 2px;
  }
  .cta__title > span::before {
    margin-right: 2px;
  }
  .cta__title > span::after {
    margin-left: 2px;
  }
  .cta__inner {
    margin-top: 24px;
  }
  .company__inner {
    margin-top: 24px;
  }
  .company__dt {
    width: 100%;
    border-right: none;
    padding: 4px 16px;
    line-height: 1.5;
  }
  .company__dd {
    width: 100%;
    padding: 4px 16px;
    line-height: 1.5;
  }
  .footer__top {
    -webkit-box-orient: vertical;
    -webkit-box-direction: normal;
        -ms-flex-direction: column;
            flex-direction: column;
  }
  .footer__logo a img {
    max-width: 120px;
  }
  .footer__info {
    margin-left: 0;
    margin-top: 16px;
  }
  .footer__bottom {
    -webkit-box-orient: vertical;
    -webkit-box-direction: normal;
        -ms-flex-direction: column;
            flex-direction: column;
    gap: 0;
  }
  .page-top {
    margin-top: 16px;
  }
}