:root {
  --font-size-base: 1;
  --text-size-scale: 1.2;
}

.c-main {
  color: #000;
  position: relative;
  overflow: hidden;
}
@media not screen and (max-width: 768px), print {
  .c-main {
    margin-top: -18.1rem;
    margin-bottom: 0;
  }
}
@media only screen and (max-width: 768px) {
  .c-main {
    margin-top: 0;
    padding-top: 12rem;
    margin-bottom: 0;
  }
}

.c-header {
  background: rgba(255, 255, 255, 0.48);
}
@media not screen and (max-width: 768px), print {
  .c-header {
    border-bottom: 1px solid rgba(0, 0, 0, 0);
  }
}

.c-footer {
  position: relative;
  z-index: 1;
}

.top-mv {
  position: relative;
  z-index: 1;
}
@media not screen and (max-width: 768px), print {
  .top-mv {
    margin-top: 18.1rem;
    height: calc(100vh - 18.1rem);
  }
}
@media only screen and (max-width: 768px) {
  .top-mv {
    justify-content: center;
    height: calc(100vh - 12rem);
    height: calc(100svh - 12rem);
    padding-bottom: 4rem;
    display: flex;
    justify-content: flex-end;
    align-items: stretch;
    flex-direction: column;
  }
}

@media not screen and (max-width: 768px), print {
  .top-mv__body {
    width: 132rem;
    margin: auto;
    display: flex;
    justify-content: flex-end;
    align-items: flex-start;
    flex-direction: column;
    height: 80%;
    max-height: 70rem;
  }
}

.top-mv__title {
  line-height: 1.364;
  display: flex;
  justify-content: flex-start;
  align-items: flex-start;
  flex-direction: column;
  font-weight: 700;
}
@media not screen and (max-width: 768px), print {
  .top-mv__title {
    font-size: calc(33 * var(--font-size-base) * 0.1rem);
  }
}
@media only screen and (max-width: 768px) {
  .top-mv__title {
    margin: 4rem;
    font-size: calc(33 * var(--font-size-base) * 0.1rem);
  }
}
.top-mv__title b {
  font-family: "Open Sans", sans-serif;
  font-weight: 700;
  line-height: 1;
  letter-spacing: -0.02em;
}
@media not screen and (max-width: 768px), print {
  .top-mv__title b {
    margin-top: 4rem;
    font-size: calc(99 * var(--font-size-base) * 0.1rem);
  }
}
@media only screen and (max-width: 768px) {
  .top-mv__title b {
    font-size: calc(99 * var(--font-size-base) * 0.1rem);
  }
}

.top-feature {
  overflow: hidden;
  background: #fff;
  box-shadow: 0 0 1.5rem rgba(0, 0, 0, 0.12);
}
@media not screen and (max-width: 768px), print {
  .top-feature {
    position: absolute;
    margin: auto 0;
    top: 0;
    bottom: 0;
    left: 50%;
    right: 0;
    border-radius: 3.6rem 0 0 3.6rem;
    height: 80%;
    max-height: 70rem;
    transition: border-radius 0.2s ease;
  }
}
@media screen and (min-width: 1440px) {
  .top-feature {
    max-width: 72rem;
    border-radius: 3.6rem;
  }
}
@media only screen and (max-width: 768px) {
  .top-feature {
    width: 100%;
    height: 60rem;
    position: relative;
  }
}

.top-feature__inner {
  width: 100%;
  height: 100%;
  display: flex;
  justify-content: space-between;
  align-items: stretch;
  flex-direction: column;
}
@media not screen and (max-width: 768px), print {
  .top-feature__inner {
    transition-property: opacity;
    transition-duration: 0.15s;
    transition-timing-function: ease-in-out;
  }
  .top-feature__inner:hover {
    opacity: 0.6;
  }
}

.top-feature__label {
  font-family: "Open Sans", sans-serif;
  font-style: italic;
  font-weight: 700;
  position: relative;
  z-index: 2;
  line-height: 1;
  margin: 3.2rem 0 0 3.9rem;
}
@media not screen and (max-width: 768px), print {
  .top-feature__label {
    font-size: calc(26 * var(--font-size-base) * 0.1rem);
  }
}
@media only screen and (max-width: 768px) {
  .top-feature__label {
    font-size: calc(39 * var(--font-size-base) * 0.1rem);
  }
}

.top-feature__title {
  background: rgba(0, 0, 0, 0.5);
  color: #fff;
  font-weight: 700;
  line-height: 1.7;
  position: relative;
  z-index: 2;
  padding: 1.8rem 2rem;
  white-space: nowrap;
}
@media not screen and (max-width: 768px), print {
  .top-feature__title {
    font-size: calc(18 * var(--font-size-base) * 0.1rem);
  }
}
@media only screen and (max-width: 768px) {
  .top-feature__title {
    font-size: calc(27 * var(--font-size-base) * 0.1rem);
  }
}

.top-feature__image {
  position: absolute;
  z-index: 1;
  left: 0;
  right: 0;
  top: 0;
  bottom: 0;
}
.top-feature__image img {
  width: 100%;
  height: 100%;
  -o-object-fit: cover;
     object-fit: cover;
  -o-object-position: center top;
     object-position: center top;
}

.top-banner__text {
  line-height: 1.625;
}
@media not screen and (max-width: 768px), print {
  .top-banner__text {
    font-size: calc(18 * var(--font-size-base) * 0.1rem);
    text-align: center;
  }
}
@media only screen and (max-width: 768px) {
  .top-banner__text {
    font-size: calc(18 * var(--font-size-base) * 0.1rem);
  }
  .top-banner__text br {
    display: none;
  }
}

.top-banner__link {
  font-weight: 700;
  display: flex;
  justify-content: flex-start;
  align-items: center;
}
@media not screen and (max-width: 768px), print {
  .top-banner__link {
    font-size: calc(20 * var(--font-size-base) * 0.1rem);
  }
}
@media only screen and (max-width: 768px) {
  .top-banner__link {
    font-size: calc(20 * var(--font-size-base) * 0.1rem);
  }
}
@media not screen and (max-width: 768px), print {
  .top-banner__link {
    transition-property: opacity;
    transition-duration: 0.15s;
    transition-timing-function: ease-in-out;
  }
  .top-banner__link:hover {
    opacity: 0.6;
  }
}
.top-banner__link::before {
  content: "";
  display: block;
  background: url(../images/SH02/open.svg) no-repeat center center/contain;
  width: 3rem;
  height: 2.7rem;
  margin-top: 0.5rem;
  margin-right: 1.8rem;
}

.top-banner-1 {
  position: relative;
  z-index: 1;
  background: rgba(255, 255, 255, 0.75);
  display: flex;
  justify-content: center;
  align-items: center;
  flex-direction: column;
}
@media not screen and (max-width: 768px), print {
  .top-banner-1 {
    width: 132rem;
    height: 18rem;
    margin: 0 auto;
  }
}
@media only screen and (max-width: 768px) {
  .top-banner-1 {
    margin: 4rem;
    padding: 3rem;
  }
}
.top-banner-1 .top-banner__link {
  margin-top: 3rem;
}

.top-section {
  position: relative;
  z-index: 1;
}
@media not screen and (max-width: 768px), print {
  .top-section {
    padding: 5rem 0 15rem;
    width: 132rem;
    margin-left: auto;
    margin-right: auto;
  }
}
@media only screen and (max-width: 768px) {
  .top-section {
    padding: 5rem 0;
    margin: 0 4rem;
  }
}

@media not screen and (max-width: 768px), print {
  .top-section__group {
    display: flex;
    justify-content: flex-start;
    align-items: stretch;
    flex-direction: column;
  }
}

.top-section__label {
  font-family: "Open Sans", sans-serif;
  font-weight: 700;
  margin-bottom: 1rem;
}
@media not screen and (max-width: 768px), print {
  .top-section__label {
    font-size: calc(18 * var(--font-size-base) * 0.1rem);
  }
}
@media only screen and (max-width: 768px) {
  .top-section__label {
    font-size: calc(21.6 * var(--font-size-base) * 0.1rem);
  }
}

.top-section__title {
  font-weight: 700;
  line-height: 1.3;
  display: flex;
  justify-content: flex-start;
  align-items: flex-start;
  flex-direction: column;
  margin-bottom: 4rem;
}
@media not screen and (max-width: 768px), print {
  .top-section__title {
    font-size: calc(40 * var(--font-size-base) * 0.1rem);
  }
}
@media only screen and (max-width: 768px) {
  .top-section__title {
    font-size: calc(48 * var(--font-size-base) * 0.1rem);
  }
}
.top-section__title::before {
  content: "";
  display: block;
  border-top: 1px solid #000;
  width: 4.5rem;
  margin-bottom: 4rem;
}

.top-section__text {
  line-height: 1.875;
  font-weight: 700;
}
@media not screen and (max-width: 768px), print {
  .top-section__text {
    font-size: calc(18 * var(--font-size-base) * 0.1rem);
  }
}
@media only screen and (max-width: 768px) {
  .top-section__text {
    font-size: calc(21.6 * var(--font-size-base) * 0.1rem);
  }
}

.top-section__link {
  font-weight: 700;
  line-height: 1;
  display: flex;
  justify-content: flex-start;
  align-items: flex-end;
  margin-top: 6rem;
  transition-property: opacity;
  transition-duration: 0.15s;
  transition-timing-function: ease-in-out;
}
@media not screen and (max-width: 768px), print {
  .top-section__link {
    font-size: calc(24 * var(--font-size-base) * 0.1rem);
  }
}
@media only screen and (max-width: 768px) {
  .top-section__link {
    font-size: calc(28.8 * var(--font-size-base) * 0.1rem);
  }
}
.top-section__link::before {
  content: "";
  display: block;
  background: url(../images/SH02/arrow-79.svg) repeat-x left bottom/contain;
  width: 7.9rem;
  height: 1.9rem;
  margin-right: 2.2rem;
}
@media not screen and (max-width: 768px), print {
  .top-section__link::before {
    transition-property: background;
    transition-duration: 0.15s;
    transition-timing-function: ease-in-out;
  }
}
@media not screen and (max-width: 768px), print {
  .top-section__link:hover {
    opacity: 0.6;
  }
}

.top-carousel {
  width: 52.5rem;
  padding: 5rem 0;
}
.top-carousel .swiper {
  overflow: visible;
}
.top-carousel .swiper-slide {
  width: 52.5rem;
  padding: 0 2.25rem;
}

.top-carousel__item {
  background: rgba(255, 255, 255, 0.84);
  overflow: hidden;
  display: flex;
  justify-content: flex-start;
  align-items: stretch;
  flex-direction: column;
  width: 48rem;
  box-shadow: 0 0 1.5rem rgba(0, 0, 0, 0.12);
  border-radius: 3.6rem;
}

.top-carousel__dots {
  display: flex;
  justify-content: center;
  align-items: center;
  margin: 2rem 0;
}
.top-carousel__dots .swiper-pagination-bullet {
  width: 3rem;
  height: 3rem;
  background: none;
  display: flex;
  justify-content: center;
  align-items: center;
  opacity: 1;
}
.top-carousel__dots .swiper-pagination-bullet::after {
  content: "";
  display: block;
  width: 1rem;
  height: 1rem;
  border-radius: 1rem;
  background: #ccc;
  box-shadow: 0 0 8px 1px rgba(255, 255, 255, 0.5);
  transition-property: background;
  transition-duration: 0.25s;
  transition-timing-function: ease-in-out;
}
.top-carousel__dots .swiper-pagination-bullet.swiper-pagination-bullet-active::after {
  background: #00bfb3;
}

@media not screen and (max-width: 768px), print {
  .top-approach {
    position: relative;
  }
}
@media not screen and (max-width: 768px), print {
  .top-approach .top-section__group {
    height: 60rem;
  }
}
@media not screen and (max-width: 768px), print {
  .top-approach .top-section__link {
    margin-top: auto;
    margin-bottom: 0;
  }
}

.top-approach__carousel {
  overflow: hidden;
}
@media not screen and (max-width: 768px), print {
  .top-approach__carousel {
    position: absolute;
    left: 50%;
    top: 0;
    right: calc((var(--width) * 1px - 132rem) / -2);
  }
}
@media only screen and (max-width: 768px) {
  .top-approach__carousel {
    margin-left: -4rem;
    margin-right: -4rem;
  }
}

.top-approach__item {
  padding: 4.8rem 4rem;
  height: 60rem;
  position: relative;
}
@media not screen and (max-width: 768px), print {
  .top-approach__item {
    transition-property: opacity;
    transition-duration: 0.15s;
    transition-timing-function: ease-in-out;
  }
  .top-approach__item:hover {
    opacity: 0.6;
  }
}

.top-approach__image {
  position: absolute;
  left: 0;
  top: 0;
  width: 100%;
  height: 100%;
  pointer-events: none;
}
.top-approach__image img {
  width: 100%;
  height: 100%;
  -o-object-fit: contain;
     object-fit: contain;
}

.top-approach__no {
  font-family: "Open Sans", sans-serif;
  font-weight: 700;
  line-height: 1;
  margin-bottom: 2.3rem;
  position: relative;
}
@media not screen and (max-width: 768px), print {
  .top-approach__no {
    font-size: calc(18 * var(--font-size-base) * 0.1rem);
  }
}
@media only screen and (max-width: 768px) {
  .top-approach__no {
    font-size: calc(21.6 * var(--font-size-base) * 0.1rem);
  }
}

.top-approach__title {
  font-weight: 700;
  line-height: 1.5;
  position: relative;
}
@media not screen and (max-width: 768px), print {
  .top-approach__title {
    font-size: calc(24 * var(--font-size-base) * 0.1rem);
  }
}
@media only screen and (max-width: 768px) {
  .top-approach__title {
    font-size: calc(28.8 * var(--font-size-base) * 0.1rem);
  }
}

.top-approach__text {
  background: url(../images/SH02/arrow-169.svg) no-repeat right bottom;
  line-height: 1.714;
  padding-bottom: 0.5em;
  margin-top: auto;
  background-size: 16.9rem;
  position: relative;
}
@media not screen and (max-width: 768px), print {
  .top-approach__text {
    font-size: calc(16 * var(--font-size-base) * 0.1rem);
  }
}
@media only screen and (max-width: 768px) {
  .top-approach__text {
    font-size: calc(19.2 * var(--font-size-base) * 0.1rem);
  }
}

.top-services {
  display: flex;
  justify-content: center;
  align-items: center;
  flex-direction: column;
}
.top-services .top-section__title {
  align-items: center;
}
@media not screen and (max-width: 768px), print {
  .top-services .top-section__text {
    text-align: center;
  }
}
@media only screen and (max-width: 768px) {
  .top-services .top-section__text br {
    display: none;
  }
}

.top-services__image {
  display: flex;
  justify-content: center;
  align-items: center;
  margin-bottom: 4.5rem;
}
@media not screen and (max-width: 768px), print {
  .top-services__image {
    width: 77.77rem;
    height: 42.56rem;
  }
}
@media only screen and (max-width: 768px) {
  .top-services__image {
    width: 66.66rem;
    height: 36.48rem;
  }
}
.top-services__image img {
  position: absolute;
  left: 0;
  top: 0;
  width: 100%;
  height: 100%;
  -o-object-fit: contain;
     object-fit: contain;
  pointer-events: none;
}

.top-services__block {
  position: relative;
  display: flex;
  justify-content: center;
  align-items: center;
  flex-direction: column;
}
@media not screen and (max-width: 768px), print {
  .top-services__block {
    width: 38.885rem;
    padding-bottom: 2rem;
  }
}
@media only screen and (max-width: 768px) {
  .top-services__block {
    width: 33.33rem;
    padding-bottom: 2rem;
  }
}
@media not screen and (max-width: 768px), print {
  .top-services__block:first-child {
    padding-left: 2rem;
  }
}
@media not screen and (max-width: 768px), print {
  .top-services__block:last-child {
    padding-right: 2rem;
  }
}

.top-services__label {
  font-weight: 700;
  margin-bottom: 1em;
  text-align: center;
}
@media not screen and (max-width: 768px), print {
  .top-services__label {
    font-size: calc(16 * var(--font-size-base) * 0.1rem);
  }
}
@media only screen and (max-width: 768px) {
  .top-services__label {
    font-size: calc(16 * var(--font-size-base) * 0.1rem);
  }
}

.top-services__title {
  font-weight: 700;
  text-align: center;
}
@media not screen and (max-width: 768px), print {
  .top-services__title {
    font-size: calc(28 * var(--font-size-base) * 0.1rem);
  }
}
@media only screen and (max-width: 768px) {
  .top-services__title {
    font-size: calc(28 * var(--font-size-base) * 0.1rem);
  }
}

@media not screen and (max-width: 768px), print {
  .top-casestudy {
    position: relative;
  }
}
@media not screen and (max-width: 768px), print {
  .top-casestudy .top-section__group {
    height: 46rem;
  }
}
@media not screen and (max-width: 768px), print {
  .top-casestudy .top-section__link {
    margin-top: auto;
    margin-bottom: 0;
  }
}

.top-casestudy__carousel {
  overflow: hidden;
}
@media not screen and (max-width: 768px), print {
  .top-casestudy__carousel {
    position: absolute;
    left: 50%;
    top: 0;
    right: calc((var(--width) * 1px - 132rem) / -2);
  }
}
@media only screen and (max-width: 768px) {
  .top-casestudy__carousel {
    margin-left: -4rem;
    margin-right: -4rem;
  }
}

.top-casestudy__item {
  position: relative;
  justify-content: space-between;
  padding: 3rem 4rem;
  height: 46rem;
}

.top-casestudy__title {
  font-weight: 700;
  line-height: 1.5;
  position: relative;
  z-index: 2;
  text-shadow: -1px -1px 2px rgba(255, 255, 255, 0.5), 0px -1px 2px rgba(255, 255, 255, 0.5), 1px -1px 2px rgba(255, 255, 255, 0.5), -1px 0px 2px rgba(255, 255, 255, 0.5), 1px 0px 2px rgba(255, 255, 255, 0.5), -1px 1px 2px rgba(255, 255, 255, 0.5), 0px 1px 2px rgba(255, 255, 255, 0.5), 1px 1px 2px rgba(255, 255, 255, 0.5);
}
@media not screen and (max-width: 768px), print {
  .top-casestudy__title {
    font-size: calc(24 * var(--font-size-base) * 0.1rem);
  }
}
@media only screen and (max-width: 768px) {
  .top-casestudy__title {
    font-size: calc(24 * var(--font-size-base) * 0.1rem);
  }
}

.top-casestudy__image {
  position: absolute;
  z-index: 1;
  right: 0;
  top: 8.4rem;
  left: 12rem;
  bottom: 7.5rem;
}
.top-casestudy__image img {
  width: 100%;
  height: 100%;
  -o-object-fit: cover;
     object-fit: cover;
}

.top-casestudy__text {
  line-height: 1.5;
  position: relative;
  z-index: 2;
  display: flex;
  justify-content: flex-start;
  align-items: flex-end;
}
@media not screen and (max-width: 768px), print {
  .top-casestudy__text {
    font-size: calc(16 * var(--font-size-base) * 0.1rem);
  }
}
@media only screen and (max-width: 768px) {
  .top-casestudy__text {
    font-size: calc(16 * var(--font-size-base) * 0.1rem);
  }
}
.top-casestudy__text::after {
  content: "";
  display: block;
  background: url(../images/SH02/arrow-79.svg) no-repeat right bottom/contain;
  width: 7.9rem;
  height: 1.9rem;
  margin-left: 2.2rem;
  margin-bottom: 0.2rem;
}

.top-insight {
  width: auto;
  display: flex;
  justify-content: center;
  align-items: center;
  flex-direction: column;
}
.top-insight .top-section__title {
  align-items: center;
}
@media not screen and (max-width: 768px), print {
  .top-insight .top-section__text {
    text-align: center;
  }
}
@media only screen and (max-width: 768px) {
  .top-insight .top-section__text br {
    display: none;
  }
}

.top-insight__carousel {
  height: 62rem;
  overflow: hidden;
}
@media not screen and (max-width: 768px), print {
  .top-insight__carousel {
    width: 100%;
    padding: 0;
  }
}
@media only screen and (max-width: 768px) {
  .top-insight__carousel {
    width: 100vw;
  }
}
.top-insight__carousel .top-carousel {
  height: 62rem;
}
@media not screen and (max-width: 768px), print {
  .top-insight__carousel .top-carousel {
    width: 105rem;
    padding: 5rem 0;
    margin: 0 auto;
  }
}
@media only screen and (max-width: 768px) {
  .top-insight__carousel .top-carousel {
    margin: 0 auto;
  }
}

.top-insight__item {
  height: 52rem;
  padding: 0 2.8rem 4rem;
}
@media not screen and (max-width: 768px), print {
  .top-insight__item {
    transition-property: opacity;
    transition-duration: 0.15s;
    transition-timing-function: ease-in-out;
  }
  .top-insight__item:hover {
    opacity: 0.6;
  }
}

.top-insight__image {
  margin-left: -2.8rem;
  margin-right: -2.8rem;
  height: 27.4rem;
  margin-bottom: 3rem;
}
.top-insight__image img {
  width: 100%;
  height: 100%;
  -o-object-fit: cover;
     object-fit: cover;
}

.top-insight__title {
  line-height: 1.4;
  font-weight: 700;
  margin-bottom: 2rem;
}
@media not screen and (max-width: 768px), print {
  .top-insight__title {
    font-size: calc(20 * var(--font-size-base) * 0.1rem);
  }
}
@media only screen and (max-width: 768px) {
  .top-insight__title {
    font-size: calc(20 * var(--font-size-base) * 0.1rem);
  }
}

.top-insight__summary {
  line-height: 1.5;
  overflow: hidden;
  -webkit-line-clamp: 2;
  display: -webkit-box;
  text-overflow: ellipsis;
  -webkit-box-orient: vertical;
  max-height: 3em;
}
@media not screen and (max-width: 768px), print {
  .top-insight__summary {
    font-size: calc(16 * var(--font-size-base) * 0.1rem);
  }
}
@media only screen and (max-width: 768px) {
  .top-insight__summary {
    font-size: calc(16 * var(--font-size-base) * 0.1rem);
  }
}

.top-insight__guide {
  line-height: 1;
  font-weight: 700;
  background: url(../images/SH02/arrow-79.svg) no-repeat right bottom;
  background-size: 7.9rem auto;
  margin-top: auto;
}
@media not screen and (max-width: 768px), print {
  .top-insight__guide {
    font-size: calc(20 * var(--font-size-base) * 0.1rem);
  }
}
@media only screen and (max-width: 768px) {
  .top-insight__guide {
    font-size: calc(20 * var(--font-size-base) * 0.1rem);
  }
}

.top-banner-2 {
  position: relative;
  z-index: 1;
  background: rgba(244, 244, 244, 0.84);
}
@media not screen and (max-width: 768px), print {
  .top-banner-2 {
    margin: 12.5rem 0 0;
    padding: 7.5rem 0;
  }
}
@media only screen and (max-width: 768px) {
  .top-banner-2 {
    margin-top: 16rem;
    padding: 4rem;
  }
}
.top-banner-2 .top-banner__text {
  text-align: left;
  margin-top: 3rem;
}

.top-banner-2__body {
  background: #fff url(../images/SH02/banner-2.jpg) no-repeat;
  display: flex;
  justify-content: center;
  flex-direction: column;
}
@media not screen and (max-width: 768px), print {
  .top-banner-2__body {
    width: 132rem;
    height: 27rem;
    margin: 0 auto;
    align-items: flex-start;
    padding-left: 60.6rem;
    background-position: left center;
    background-size: auto 100%;
  }
}
@media only screen and (max-width: 768px) {
  .top-banner-2__body {
    justify-content: center;
    align-items: center;
    padding: 38rem 4rem 4rem;
    background-position: center top;
    background-size: 100% auto;
  }
}

.top-contact {
  position: relative;
  z-index: 1;
  background: rgba(152, 153, 157, 0.84);
  color: #fff;
  display: flex;
  justify-content: center;
  align-items: center;
  flex-direction: column;
}
@media not screen and (max-width: 768px), print {
  .top-contact {
    padding: 7.5rem 0 9rem;
  }
}
@media only screen and (max-width: 768px) {
  .top-contact {
    padding: 4rem;
  }
}

.top-contact__title {
  font-weight: 700;
  margin-bottom: 4rem;
}
@media not screen and (max-width: 768px), print {
  .top-contact__title {
    font-size: calc(32 * var(--font-size-base) * 0.1rem);
  }
}
@media only screen and (max-width: 768px) {
  .top-contact__title {
    font-size: calc(32 * var(--font-size-base) * 0.1rem);
  }
}

.top-contact__text {
  font-weight: 700;
  margin-bottom: 4rem;
}
@media not screen and (max-width: 768px), print {
  .top-contact__text {
    font-size: calc(18 * var(--font-size-base) * 0.1rem);
  }
}
@media only screen and (max-width: 768px) {
  .top-contact__text {
    font-size: calc(16 * var(--font-size-base) * 0.1rem);
  }
}

.top-contact__buttons {
  display: flex;
  justify-content: center;
  align-items: center;
}
@media only screen and (max-width: 768px) {
  .top-contact__buttons {
    flex-direction: column;
    width: 100%;
  }
}

.top-contact__tel,
.top-contact__link {
  background: #fff;
}
@media not screen and (max-width: 768px), print {
  .top-contact__tel,
  .top-contact__link {
    width: 54rem;
    height: 12rem;
    margin: 0 3rem;
  }
}
@media only screen and (max-width: 768px) {
  .top-contact__tel,
  .top-contact__link {
    width: 100%;
    padding: 4rem 0;
    margin: 3rem 0;
  }
}
@media not screen and (max-width: 768px), print {
  .top-contact__tel,
  .top-contact__link {
    transition-property: opacity;
    transition-duration: 0.15s;
    transition-timing-function: ease-in-out;
  }
  .top-contact__tel:hover,
  .top-contact__link:hover {
    opacity: 0.6;
  }
}

.top-contact__tel {
  color: #444;
  display: grid;
  place-content: center;
  grid-template-columns: auto auto;
  line-height: 1;
}
.top-contact__tel::before {
  content: "";
  display: block;
  grid-row: 1/3;
  grid-column: 1/2;
  background: url(../images/common/tel__k.svg) no-repeat center center/contain;
}
@media not screen and (max-width: 768px), print {
  .top-contact__tel::before {
    width: 6rem;
    height: 6rem;
    margin-right: 1.3rem;
  }
}
@media only screen and (max-width: 768px) {
  .top-contact__tel::before {
    width: 8rem;
    height: 8rem;
    margin-right: 2rem;
  }
}
.top-contact__tel strong {
  font-family: "Montserrat", sans-serif;
  font-weight: 700;
  line-height: 0.7;
}
@media not screen and (max-width: 768px), print {
  .top-contact__tel strong {
    font-size: calc(45 * var(--font-size-base) * 0.1rem);
  }
}
@media only screen and (max-width: 768px) {
  .top-contact__tel strong {
    font-size: calc(60 * var(--font-size-base) * 0.1rem);
  }
}
.top-contact__tel small {
  text-align: center;
  margin-top: 0.3em;
}
@media not screen and (max-width: 768px), print {
  .top-contact__tel small {
    font-size: calc(18 * var(--font-size-base) * 0.1rem);
  }
}
@media only screen and (max-width: 768px) {
  .top-contact__tel small {
    font-size: calc(24 * var(--font-size-base) * 0.1rem);
  }
}

.top-contact__link {
  color: #000;
  display: flex;
  justify-content: center;
  align-items: center;
  font-weight: 700;
}
@media not screen and (max-width: 768px), print {
  .top-contact__link {
    font-size: calc(24 * var(--font-size-base) * 0.1rem);
  }
}
@media only screen and (max-width: 768px) {
  .top-contact__link {
    font-size: calc(42 * var(--font-size-base) * 0.1rem);
  }
}
.top-contact__link::before, .top-contact__link::after {
  content: "";
  display: block;
  background: no-repeat center center/contain;
}
.top-contact__link::before {
  background-image: url(../images/common/mail__g.svg);
}
@media not screen and (max-width: 768px), print {
  .top-contact__link::before {
    width: 6rem;
    height: 6rem;
    margin-right: 2.2rem;
  }
}
@media only screen and (max-width: 768px) {
  .top-contact__link::before {
    width: 8rem;
    height: 8rem;
    margin-right: 2rem;
  }
}
.top-contact__link::after {
  background-image: url(../images/SH02/arrow-40.svg);
  width: 4rem;
  height: 1.9rem;
  margin-left: 2.7rem;
}

.top-inks {
  position: fixed;
  z-index: 0;
  top: 0;
  left: 0;
  right: 0;
  bottom: 0;
  margin: 0 auto;
  overflow: hidden;
}

.top-ink {
  position: absolute;
  mix-blend-mode: multiply;
  display: none;
}

@media not screen and (max-width: 768px), print {
  .top-ink.ink-000_a {
    right: 5.2rem;
    top: -18.9rem;
    width: 48.2rem;
  }
}
@media only screen and (max-width: 768px) {
  .top-ink.ink-000_a {
    right: 5.2rem;
    top: 0%;
    width: 33.74rem;
  }
}

@media not screen and (max-width: 768px), print {
  .top-ink.ink-001_a {
    left: -1.6rem;
    top: 25.7rem;
    width: 72.7rem;
  }
}
@media only screen and (max-width: 768px) {
  .top-ink.ink-001_a {
    left: -1.6rem;
    top: 0%;
    width: 50.89rem;
  }
}

@media not screen and (max-width: 768px), print {
  .top-ink.ink-001_b {
    left: -48.5rem;
    top: 6.2rem;
    width: 113.3rem;
  }
}
@media only screen and (max-width: 768px) {
  .top-ink.ink-001_b {
    left: -48.5rem;
    top: 0%;
    width: 79.31rem;
  }
}

@media not screen and (max-width: 768px), print {
  .top-ink.ink-001_c {
    left: -33.9rem;
    top: 62rem;
    width: 59.2rem;
  }
}
@media only screen and (max-width: 768px) {
  .top-ink.ink-001_c {
    left: -33.9rem;
    top: 0%;
    width: 41.44rem;
  }
}

@media not screen and (max-width: 768px), print {
  .top-ink.ink-002_a {
    right: -10.5rem;
    top: -12.8rem;
    width: 51.7rem;
  }
}
@media only screen and (max-width: 768px) {
  .top-ink.ink-002_a {
    right: -10.5rem;
    top: 18.2727895819%;
    width: 36.19rem;
  }
}

@media not screen and (max-width: 768px), print {
  .top-ink.ink-002_b {
    right: 1.2rem;
    top: -6.7rem;
    width: 87.4rem;
  }
}
@media only screen and (max-width: 768px) {
  .top-ink.ink-002_b {
    right: 1.2rem;
    top: 18.2727895819%;
    width: 61.18rem;
  }
}

@media not screen and (max-width: 768px), print {
  .top-ink.ink-002_c {
    right: -37rem;
    top: 20.3rem;
    width: 119.4rem;
  }
}
@media only screen and (max-width: 768px) {
  .top-ink.ink-002_c {
    right: -37rem;
    top: 18.2727895819%;
    width: 83.58rem;
  }
}

@media not screen and (max-width: 768px), print {
  .top-ink.ink-003_a {
    left: -32rem;
    top: -19.6rem;
    width: 114.7rem;
  }
}
@media only screen and (max-width: 768px) {
  .top-ink.ink-003_a {
    left: -32rem;
    top: 30.6511309116%;
    width: 80.29rem;
  }
}

@media not screen and (max-width: 768px), print {
  .top-ink.ink-003_b {
    left: -48.3rem;
    top: 48rem;
    width: 73.8rem;
  }
}
@media only screen and (max-width: 768px) {
  .top-ink.ink-003_b {
    left: -48.3rem;
    top: 30.6511309116%;
    width: 51.66rem;
  }
}

@media not screen and (max-width: 768px), print {
  .top-ink.ink-003_c {
    left: -22.6rem;
    top: 57.9rem;
    width: 108.5rem;
  }
}
@media only screen and (max-width: 768px) {
  .top-ink.ink-003_c {
    left: -22.6rem;
    top: 30.6511309116%;
    width: 75.95rem;
  }
}

@media not screen and (max-width: 768px), print {
  .top-ink.ink-004_a {
    right: -7.6rem;
    top: 10.1rem;
    width: 62.8rem;
  }
}
@media only screen and (max-width: 768px) {
  .top-ink.ink-004_a {
    right: -7.6rem;
    top: 44.6333104866%;
    width: 43.96rem;
  }
}

@media not screen and (max-width: 768px), print {
  .top-ink.ink-004_b {
    right: -15.4rem;
    top: 48rem;
    width: 35.1rem;
  }
}
@media only screen and (max-width: 768px) {
  .top-ink.ink-004_b {
    right: -15.4rem;
    top: 44.6333104866%;
    width: 24.57rem;
  }
}

@media not screen and (max-width: 768px), print {
  .top-ink.ink-004_c {
    right: -23.1rem;
    top: 47.2rem;
    width: 95rem;
  }
}
@media only screen and (max-width: 768px) {
  .top-ink.ink-004_c {
    right: -23.1rem;
    top: 44.6333104866%;
    width: 66.5rem;
  }
}

@media not screen and (max-width: 768px), print {
  .top-ink.ink-005_a {
    left: -20.4rem;
    top: -7.6rem;
    width: 79.5rem;
  }
}
@media only screen and (max-width: 768px) {
  .top-ink.ink-005_a {
    left: -20.4rem;
    top: 64.6744345442%;
    width: 55.65rem;
  }
}

@media not screen and (max-width: 768px), print {
  .top-ink.ink-005_b {
    left: -10.1rem;
    top: 36.3rem;
    width: 99.1rem;
  }
}
@media only screen and (max-width: 768px) {
  .top-ink.ink-005_b {
    left: -10.1rem;
    top: 64.6744345442%;
    width: 69.37rem;
  }
}

@media not screen and (max-width: 768px), print {
  .top-ink.ink-005_c {
    left: -29.4rem;
    top: 14.1rem;
    width: 91.2rem;
  }
}
@media only screen and (max-width: 768px) {
  .top-ink.ink-005_c {
    left: -29.4rem;
    top: 64.6744345442%;
    width: 63.84rem;
  }
}

@media not screen and (max-width: 768px), print {
  .top-ink.ink-006_a {
    right: -29.2rem;
    top: -10.8rem;
    width: 82.7rem;
  }
}
@media only screen and (max-width: 768px) {
  .top-ink.ink-006_a {
    right: -29.2rem;
    top: 77.5188485264%;
    width: 57.89rem;
  }
}

@media not screen and (max-width: 768px), print {
  .top-ink.ink-006_b {
    right: -25.4rem;
    top: 44.2rem;
    width: 64.4rem;
  }
}
@media only screen and (max-width: 768px) {
  .top-ink.ink-006_b {
    right: -25.4rem;
    top: 77.5188485264%;
    width: 45.08rem;
  }
}

@media not screen and (max-width: 768px), print {
  .top-ink.ink-006_c {
    right: -16.1rem;
    top: 13.4rem;
    width: 85.5rem;
  }
}
@media only screen and (max-width: 768px) {
  .top-ink.ink-006_c {
    right: -16.1rem;
    top: 77.5188485264%;
    width: 59.85rem;
  }
}

@media not screen and (max-width: 768px), print {
  .top-ink.ink-007_a {
    left: -10.7rem;
    top: -3.5rem;
    width: 72.1rem;
  }
}
@media only screen and (max-width: 768px) {
  .top-ink.ink-007_a {
    left: -10.7rem;
    top: 94.8732008225%;
    width: 50.47rem;
  }
}

@media not screen and (max-width: 768px), print {
  .top-ink.ink-007_b {
    right: 7.5rem;
    top: 37.2rem;
    width: 53.7rem;
  }
}
@media only screen and (max-width: 768px) {
  .top-ink.ink-007_b {
    right: 7.5rem;
    top: 94.8732008225%;
    width: 37.59rem;
  }
}

@media not screen and (max-width: 768px), print {
  .top-ink.ink-mono_001 {
    right: 0rem;
    top: 72.2rem;
    width: 112.2rem;
  }
}
@media only screen and (max-width: 768px) {
  .top-ink.ink-mono_001 {
    right: 0rem;
    top: 0%;
    width: 78.54rem;
  }
}

@media not screen and (max-width: 768px), print {
  .top-ink.ink-mono_002 {
    left: 0rem;
    top: 112.1rem;
    width: 78rem;
  }
}
@media only screen and (max-width: 768px) {
  .top-ink.ink-mono_002 {
    left: 0rem;
    top: 0%;
    width: 54.6rem;
  }
}

@media not screen and (max-width: 768px), print {
  .top-ink.ink-mono_003 {
    right: 12.5rem;
    top: 286rem;
    width: 82rem;
  }
}
@media only screen and (max-width: 768px) {
  .top-ink.ink-mono_003 {
    right: 12.5rem;
    top: 0%;
    width: 57.4rem;
  }
}

@media not screen and (max-width: 768px), print {
  .top-ink.ink-mono_004 {
    left: 0rem;
    top: 417.7rem;
    width: 90.9rem;
  }
}
@media only screen and (max-width: 768px) {
  .top-ink.ink-mono_004 {
    left: 0rem;
    top: 0%;
    width: 63.63rem;
  }
}

@media not screen and (max-width: 768px), print {
  .top-ink.ink-mono_005 {
    left: 28.6rem;
    top: 552.5rem;
    width: 60.3rem;
  }
}
@media only screen and (max-width: 768px) {
  .top-ink.ink-mono_005 {
    left: 28.6rem;
    top: 0%;
    width: 42.21rem;
  }
}

@media not screen and (max-width: 768px), print {
  .top-ink.ink-mono_006 {
    right: 14.7rem;
    top: 665.8rem;
    width: 77.8rem;
  }
}
@media only screen and (max-width: 768px) {
  .top-ink.ink-mono_006 {
    right: 14.7rem;
    top: 0%;
    width: 54.46rem;
  }
}

*[data-block-bg] {
  opacity: 0;
  filter: blur(8px);
}
*[data-block-bg][data-animation-state=shown] {
  opacity: 1;
  filter: blur(0px);
}

@keyframes bg {
  0% {
    opacity: 0;
    filter: blur(8px);
  }
  100% {
    opacity: 1;
    filter: blur(0px);
  }
}
*[data-block-item] {
  opacity: 0;
  transform: translate(0, 20px);
  will-change: opacity, transform;
}
*[data-block-item][data-animation-state=shown] {
  opacity: 1;
  transform: translate(0, 0);
}

@keyframes item {
  0% {
    opacity: 0;
    transform: translate(0, 20px);
  }
  100% {
    opacity: 1;
    transform: translate(0, 0);
  }
}
.top-news {
  position: relative;
  z-index: 1;
  background: rgba(255, 255, 255, 0.75);
}
@media not screen and (max-width: 768px), print {
  .top-news {
    width: 132rem;
    margin: 5rem auto;
  }
}
@media only screen and (max-width: 768px) {
  .top-news {
    margin: 4rem;
    padding: 0 3rem;
  }
}
.top-news .SH57-article:last-of-type {
  border: 0;
  margin: 0;
}/*# sourceMappingURL=SH02.css.map */