.aisatsu {
  padding: 40px min(27px, max(16px, calc(27px + 50vw - 180px))) 100px;
}

.aisatsu-image {
  display: block;
  max-width: 415px;
  width: 100%;
  height: auto;
  margin: 0 auto;
}

.aisatsu > .subtitle {
  margin: 40px auto 0;
}

.aisatsu .common-text {
  margin: 20px auto 0;
  max-width: 700px;
}

.aisatsu-banner {
  border-radius: 20px;
  background: #2dbe95;
  mix-blend-mode: multiply;
  padding: 40px 16px;
  margin: 40px auto 0;
}

.aisatsu-banner * {
  color: #fff;
  font-family: "M PLUS Rounded 1c", sans-serif;
}
.aisatsu-banner h4 {
  margin-top: 20px;
  font-size: 20px;
  line-height: 24px;
  text-align: center;
}

.aisatsu-banner p {
  font-size: 18px;
  line-height: 24px;
  font-weight: 700;
  width: fit-content;
  margin: 20px auto 0;
}

.aisatsu strong {
  display: block;
  text-align: right;
  margin-top: 30px;
}

.numbers {
  position: relative;
  padding: 80px 27px;
}

.numbers::before,
.numbers::after {
  content: "";
  display: block;
  position: absolute;
  background-size: contain;
  background-repeat: no-repeat;
  z-index: 2;
}

.numbers::before {
  background-image: url(../images/common/cloud-3.png);
  width: clamp(197px, 52.54vw, 250px);
  height: auto;
  aspect-ratio: 197 / 172;
  right: -33px;
  top: -140px;
}

.numbers::after {
  background-image: url(../images//common/cloud-5.png);
  width: clamp(235px, 62.67vw, 300px);
  height: auto;
  aspect-ratio: 235 / 120;
  left: -81px;
  bottom: -61px;
  z-index: 0;
}

.numbers * {
  position: relative;
}

.numbers p {
  font-size: 20px;
  line-height: 24px;
  text-align: center;
  margin: 48px auto 0;
  width: fit-content;
  font-weight: 700;
  font-family: "M PLUS Rounded 1c", sans-serif;
}

.numbers .link-button {
  position: relative;
  margin-top: 34px;
  z-index: 2;
}

.naiyou {
  padding: 100px min(27px, max(16px, calc(27px + 50vw - 180px))) 80px;
}

.naiyou-wrapper {
  margin: 40px auto 0;
  display: flex;
  flex-direction: column;
  gap: 40px;
}

.naiyou-item {
  margin: 0 auto;
}

.naiyou-item__image {
  display: block;
  width: 100%;
  aspect-ratio: 320 / 214;
  object-fit: cover;
  object-position: top;
  max-width: 500px;
  margin: 0 auto;
  border-radius: 40px;
  border: 4px solid #fc9300;
}

.naiyou-item__title {
  font-family: "Rounded M+ 1c", sans-serif;
  font-weight: bold;
  font-size: 20px;
  line-height: 24px;
  color: #2dbe95;
  margin-top: 10px;
}

.naiyou-item__text {
  display: block;
  margin: 10px auto 0;
}

.company {
  position: relative;

  padding: 80px min(27px, max(16px, calc(27px + 50vw - 180px))) 80px;
}

.company::before {
  content: "";
  position: absolute;
  display: block;
  width: 100%;
  height: 100%;
  left: 0;
  top: 0;
  background-color: #d0f0e7;
  mix-blend-mode: multiply;
  z-index: -1;
}

.company-info {
  margin: 40px auto 0;
  width: 100%;
  max-width: 720px;
}

.company-info__row:nth-child(odd) {
  background-color: #f4f4f4;
}

.company-info__row:nth-child(even) {
  background-color: #fff;
}

.company-info__row th,
.company-info__row td {
  font-size: 16px;
  line-height: 24px;
  color: #484848;
}

.company-info__row th {
  padding: 20px;
  width: 31.25%;
  vertical-align: top;
  min-width: 80px;
}

.company-info__row td {
  padding: 20px 10px 20px 0;
}

.company-info__row:last-child td span {
  display: block;
  text-decoration: underline;
  transform: scaleX(0.95);
  width: 110%;
  position: relative;
  left: -10px;
}

.access {
  padding: 80px min(27px, max(16px, calc(27px + 50vw - 180px))) 80px;
}

.access-wrapper {
  margin: 40px auto 0;
  display: flex;
  flex-direction: column;
  gap: 40px;
  max-width: 550px;
}

.access-item__title {
  font-family: "Rounded M+ 1c", sans-serif;
  font-size: 20px;
  line-height: 24px;
  text-align: center;
}

.access-item__address {
  margin: 20px auto 0;
}

.access-map {
  width: 100%;
  aspect-ratio: 16 / 9;
  border-radius: 40px;
  overflow: hidden;
  margin-top: 20px;
}

.access-map iframe {
  width: 100%;
  height: 100%;
}

@media (min-width: 500px) {
  .company-info__row th .sp {
    display: none;
  }

  .company-info__row th {
    width: 142px;
  }
}

svg {
  position: absolute;
  top: -10000px;
}

@media (min-width: 768px) {
  .aisatsu {
    padding-top: 100px;
    padding-bottom: 280px;
  }

  .aisatsu > .subtitle {
    margin: 30px auto 0;
  }

  .aisatsu .common-text {
    margin: 20px auto 0;
    max-width: 700px;
    text-align: center;
  }

  .aisatsu-banner {
    mix-blend-mode: multiply;
    padding: 60px 20px;
    margin: 80px auto 0;
    max-width: 830px;
  }

  .aisatsu-banner h4 {
    font-size: 24px;
    line-height: 36px;
  }

  .aisatsu-banner p {
    font-size: 24px;
    line-height: 36px;
    margin: 40px auto 0;
  }

  .numbers {
    padding: 140px 27px;
  }

  .numbers p {
    font-size: 24px;
    line-height: 36px;
    margin: 40px auto 0;
  }

  .numbers .link-button {
    margin-top: 40px;
  }

  .numbers::before {
    width: 461px;
    aspect-ratio: 461 / 403;
    right: max(-43px, calc(50vw - 73px - 192.5px - 461px));
    top: -355px;
  }

  .numbers::after {
    width: 685px;
    aspect-ratio: 685 / 349;
    left: max(-288px, calc(50vw - 127px - 160px - 684px));
    bottom: -134px;
    z-index: 0;
  }

  @media (max-width: 930px) {
    .numbers::after {
      left: -390px;
    }
  }

  .naiyou {
    padding-top: 280px;
    padding-bottom: 200px;
  }

  .naiyou-wrapper {
    max-width: 850px;
    margin-top: 100px;
  }

  .naiyou-item {
    display: flex;
    gap: 40px;
    flex-direction: row;
  }

  .naiyou-item__title {
    font-size: 24px;
    line-height: 36px;
    margin-top: 0px;
  }

  .naiyou-item:nth-child(even) {
    flex-direction: row-reverse;
  }

  .naiyou-item__image {
    object-position: center;
    border: 8px solid #fc9300;
    height: auto;
    border-radius: 40px;
    max-height: 270px;
  }

  .naiyou-item__image,
  .naiyou-item__content {
    width: calc(50% - 20px);
  }

  .company {
    padding-top: 200px;
    padding-bottom: 200px;
  }

  .company-info {
    margin: 100px auto 0;
  }

  .company-info__row th {
    width: 120px;
  }

  .company-info__row:last-child td span {
    transform: scaleX(1);
    width: 100%;
    left: 0px;
  }

  .access {
    padding-top: 200px;
    padding-bottom: 200px;
  }

  .access-wrapper {
    margin: 100px auto 0;
    gap: 100px;
    max-width: 660px;
  }

  .access-item__title {
    font-size: 24px;
    line-height: 36px;
  }

  .access-item__address {
    margin: 10px auto 0;
    text-align: center;
  }

  .access-map {
    aspect-ratio: 660 / 371;
    margin-top: 36px;
  }
}
