:root {
  --main-bk: #333;
  --main-blue: #1A5C97;
  --sub-blue: #5AB3CF;
  --sub-lightblue: #CCE6EE;
  --brdr-color: #aeaeae;
  --st-easing: cubic-bezier(0, 0.315, 0.155, 0.995);
  --btn-grd: linear-gradient(135deg, var(--sub-blue) 40%, var(--main-blue) 100%);
  --basic-grd: linear-gradient(125deg, var(--sub-blue) 0%, #03428F 100%);
}

html,
body {
  background-color: #fff;
  font-family: YakuHanJP, "zen-kaku-gothic-new", "游ゴシック体", YuGothic, "游ゴシック", "Yu Gothic", "Hiragino Kaku Gothic ProN", "Hiragino Sans", Meiryo, sans-serif;
  /* font-family: '游明朝', 'Yu Mincho', '游明朝体', 'YuMincho', 'ヒラギノ明朝 Pro W3', 'Hiragino Mincho Pro', 'ＭＳ Ｐ明朝', 'MS PMincho', serif; */
  font-weight: 400;
  font-size: 62.5%;
  line-height: 1.75;
  letter-spacing: 0.1rem;
  margin: 0;
  padding: 0;
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
  font-feature-settings: "palt";
}

/*html {
  visibility: hidden;
}

html.wf-active,
html.loading-delay {
  visibility: visible;
}*/

body.hidden {
  overflow: hidden;
}

::selection {
  background: var(--main-bk);
  color: #fff;
}

/*共通css*/
p {
  font-size: 1.5rem;
  color: var(--main-blue);
}

a {
  font-size: 1.5rem;
  color: #008fe2;
  text-decoration: none;
  cursor: pointer;
  transition: .5s var(--st-easing);
}

a:hover {
  color: #008fe2;
  opacity: 0.5;
  text-decoration: none;
}

.circle-btn {
  width: 140px;
  aspect-ratio: 1/1;
  display: flex;
  align-items: center;
  justify-content: center;
  flex-direction: column;
  text-align: center;
  color: #fff;
  position: relative;
}

.circle-rotate {
  width: 100%;
  height: 100%;
  animation: rotate-anime 30s linear infinite;
  position: absolute;
  top: 0;
  left: 0;
  z-index: 1;
}

@keyframes rotate-anime {
  0% {
    transform: rotate(0);
  }

  100% {
    transform: rotate(-360deg);
  }
}

.circle-round {
  width: 100%;
  height: 100%;
  border-radius: 50% 50% 54% 46% / 53% 54% 46% 47%;
  animation: round_anime 8s linear infinite;
  background-color: var(--sub-blue);
}

.circle-btn.wh .circle-round {
  background-color: #fff;
}

@keyframes round_anime {
  0% {
    border-radius: 50% 50% 54% 46% / 53% 54% 46% 47%;
  }

  25% {
    border-radius: 51% 49% 47% 53% / 56% 44% 56% 44%;
  }

  50% {
    border-radius: 52% 48% 54% 46% / 49% 54% 46% 51%;
  }

  75% {
    border-radius: 51% 49% 47% 53% / 56% 44% 56% 44%;
  }

  100% {
    border-radius: 50% 50% 54% 46% / 53% 54% 46% 47%;
  }
}

.circle-btn p {
  position: relative;
  z-index: 2;
  color: #fff;
  font-size: 1.8rem;
  line-height: 1.2;
}

.circle-btn.wh p {
  color: var(--sub-blue);
}

.circle-btn span {
  font-size: 0.8em;
  display: block;
  margin-bottom: 8px;
}

.btn-wrapper.left {
  text-align: left;
}

.btn-wrapper.center {
  text-align: center;
}

.btn-wrapper.right {
  text-align: right;
}

.btn,
.btn:visited {
  min-width: 120px;
  margin: 35px auto 0;
  text-align: center;
  padding: 9px 30px 7px;
  position: relative;
  display: inline-block;
  font-size: 1.5rem;
  font-family: goldenbook, "zen-kaku-gothic-new",
    "游ゴシック体",
    YuGothic,
    "游ゴシック",
    "Yu Gothic",
    "Hiragino Kaku Gothic ProN",
    "Hiragino Sans",
    Meiryo,
    sans-serif;
  ;
  font-feature-settings: "ss02" 1;
  color: var(--main-blue);
  font-weight: 500;
}

.btn::before {
  content: "";
  position: absolute;
  top: 0;
  left: 0;
  right: 0;
  bottom: 0;
  border-radius: 50px;
  border: 2px solid transparent;
  background: var(--basic-grd) border-box;
  -webkit-mask: linear-gradient(#fff 0 0) padding-box, linear-gradient(#fff 0 0) border-box;
  -webkit-mask-composite: destination-out;
  mask: linear-gradient(#fff 0 0) padding-box, linear-gradient(#fff 0 0) border-box;
  mask-composite: exclude;
}

.btn-wh {
  min-width: 120px;
  margin: 35px auto 0;
  text-align: center;
  padding: 8px 20px;
  position: relative;
  display: inline-block;
  font-size: 1.5rem;
  font-family: goldenbook, serif;
  font-feature-settings: "ss02" 1;
  color: #fff;
  font-weight: 500;
  border: 1px solid #fff;
  border-radius: 50px;
}

/* .btn:after {
  content: "";
  width: 100%;
  height: 1px;
  position: absolute;
  left: 0;
  bottom: 0;
  background-color: #838383;
  transform: scale(0, 1);
  transform-origin: right top;
  transition: transform .4s var(--st-easing);
} */

.comingsoon .btn:after {
  display: none;
}

.box:hover,
.btn:hover {
  opacity: 1;
}

.box:hover .btn:after,
.btn:hover:after {
  transform-origin: left top;
  transform: scale(1, 1);
}

.btn-sq {
  border: 1px solid var(--brdr-color);
  border-radius: 2px;
  padding: 7px 70px 5px;
  display: inline-block;
  text-align: center;
}

.btn-sq:hover {
  opacity: 1;
  background-color: rgb(240, 240, 240);
}

img {
  width: 100%;
  /* margin-bottom: 20px; */
  display: block;
}

.thum {
  background: no-repeat center center / cover;
}

.en-typo {
  font-family: goldenbook, serif;
  font-weight: 400 !important;
  font-feature-settings: "ss02" 1;
}

.en-typo.thin {
  font-family: goldenbook, serif;
  font-weight: 300 !important;
  font-feature-settings: "ss02" 1;
}

.brdr-head {
  border-bottom: 1px solid;
  border-image: var(--btn-grd) 1;
}

h5.brdr-head {
  display: inline-block;
  border: none;
  border-bottom: 2px solid var(--main-blue);
  padding-bottom: 2px;
}

h1,
h2,
h3,
h4,
h5,
h6 {
  line-height: 1.5;
  font-weight: 500;
  color: var(--main-blue);
  letter-spacing: 0.2rem;
}

h1 {
  font-size: 5.4rem;
  margin-bottom: 30px;
}

h2 {
  font-size: 3.6rem;
  line-height: 1.5;
  margin-bottom: 35px;
}

h2 span {
  font-size: 0.65em;
  display: block;
}

h3 {
  font-size: 2.8rem;
  margin-bottom: 20px;
}

h4 {
  font-size: 2.1rem;
  letter-spacing: 0.1rem;
  margin-bottom: 20px;
}

h4 span {
  font-size: 0.9em;
}

h5 {
  font-size: 1.8rem;
  margin-bottom: 10px;
}

h6 {
  font-size: 1.6rem;
  margin-bottom: 10px;
}

section {
  padding: 30px 0 0;
  margin: 0 auto 80px;
}

.section-title {
  font-size: 3.2rem;
  margin-bottom: 30px;
  text-align: center;
  letter-spacing: 0.8rem;
}

.section-title span {
  font-size: 0.7em;
  letter-spacing: 0.2rem;
  font-family: goldenbook, serif;
  font-weight: 400 !important;
}

.fix-width {
  width: calc(100% - 80px);
  max-width: 960px;
  margin: 0 auto 0px;
  padding-top: 0px;
}

dl {
  display: flex;
  align-items: flex-start;
  justify-content: flex-start;
  flex-wrap: wrap;
}

dl dt {
  font-size: 1.6rem;
  width: 100px;
  margin-right: 20px;
}

dl dd {
  font-size: 1.6rem;
  width: calc(100% - 120px);
}

.col2,
.col3,
.col4 {
  display: flex;
  align-items: flex-start;
  justify-content: flex-start;
  flex-wrap: wrap;
}

/*2列レイアウト*/
.col2 .box {
  width: calc(50% - 50px);
  margin-right: 100px;
}

.col2 .box:nth-of-type(2n) {
  margin-right: 0;
}

/*3列レイアウト*/
.col3 .box {
  width: calc((100% / 3) - 30px);
  margin-right: 45px;
  margin-bottom: 20px;
}

.col3 .box:nth-of-type(3n) {
  margin-right: 0;
}

/*4列レイアウト*/
.col4 {
  width: 100%;
  margin-bottom: 30px;
}

.col4 .box {
  width: calc(25% - 30px);
  margin-right: 40px;
  margin-bottom: 30px;
}

.col4 .box:nth-of-type(4n) {
  margin-right: 0;
}

.col4 .box img {
  width: 100%;
  object-fit: cover;
  margin-bottom: 10px;
}

.col4 .box p {
  font-size: 1.2rem;
}

.col4 .box p.min {
  font-size: 1rem;
}

/*個別css*/
header {
  width: 100%;
  display: flex;
  align-items: center;
  justify-content: space-between;
  position: fixed;
  z-index: 5000;
}

header .header-logo {
  width: 60px;
  margin: 20px 0 0 20px;
  opacity: 1;
  transition: .2s var(--st-easing);
}

header .header-logo.hide {
  opacity: 0;
}

header .menu-btn {
  width: 60px;
  height: 61px;
  position: absolute;
  top: 10px;
  right: 20px;
  cursor: pointer;
  text-align: center;
}

header .menu-btn span {
  width: 40px;
  aspect-ratio: 1/1;
  border: 1px solid var(--sub-blue);
  position: absolute;
  left: 0;
  right: 0;
  margin: 0 auto;
  border-radius: 50%;
  transform: scaleY(0.3);
  transition: .2s var(--st-easing);
}

header .menu-btn:after {
  content: 'MENU';
  font-family: goldenbook, serif;
  font-size: 1.3rem;
  color: var(--sub-blue);
  position: absolute;
  left: 0;
  right: 0;
  bottom: 0;
  margin: 0 auto;
  transition: .3s var(--st-easing);
}

header .menu-btn span:nth-of-type(1) {
  top: 5px;
}

header .menu-btn span:nth-of-type(2) {
  top: 11px;
}

header .menu-btn.active span {
  border: 2px solid #fff;
}

header .menu-btn.active span:nth-of-type(1) {
  transform: rotate(-20deg) scaleY(0.1);
}

header .menu-btn.active span:nth-of-type(2) {
  top: 5px;
  transform: rotate(20deg) scaleY(0.1);
}

header .menu-btn.active:after {
  content: 'CLOSE';
  color: #fff;
}

menu {
  width: 100%;
  height: 100vh;
  position: fixed;
  top: 0;
  left: 0;
  z-index: 4000;
  background: no-repeat center center / cover url(assets/img/common/footer-bg.png);
  overflow-y: scroll;
  opacity: 0;
  pointer-events: none;
  transition: .3s var(--st-easing);
}

menu.active {
  opacity: 1;
  pointer-events: auto;
}

menu .menu-list {
  max-width: 800px;
  height: 100%;
  display: flex;
  justify-content: center;
  align-content: center;
  flex-wrap: wrap;
  margin: 0 auto;
  padding: 0 100px;
  list-style: none;
}

menu .menu-list li {
  width: 325px;
}

menu .menu-list li.logo {
  width: 100%;
  margin-bottom: 60px;
}

menu .menu-list li.logo img {
  width: 260px;
}

menu .menu-list li a,
menu .menu-list li a:visited {
  font-size: 2.8rem;
  color: #fff;
  line-height: 1.5;
  margin: 0 0 30px;
  display: flex;
  align-items: flex-start;
  justify-content: flex-start;
  flex-direction: column;
}

menu .menu-list li a span {
  display: inline-block;
  font-size: 0.5em;
}

menu .menu-list li:nth-of-type(2) a {
  transform: translateX(-5px);
}

menu .menu-list li:nth-of-type(2) a span {
  transform: translateX(10px);
}

main {
  width: 100%;
}

/* TOP */
.top {
  width: 100%;
  height: 100vh;
  position: relative;
}

.top .fv-image {
  width: 85%;
  height: 75vh;
  object-fit: contain;
  object-position: center center;
  position: absolute;
  top: 0;
  left: 0;
  right: 0;
  bottom: 0;
  margin: auto;
}

.top .fv-logo {
  width: 70px;
  aspect-ratio: 1/1;
  top: 20px;
  left: 30px;
  position: absolute;
}

.top .fv-logotype {
  width: 30vw;
  aspect-ratio: 382/75;
  left: 50px;
  bottom: 30PX;
  position: absolute;
}

.top .nav {
  height: 50px;
  position: absolute;
  bottom: 37px;
  left: calc(30vw + 80px);
  display: flex;
  justify-content: flex-start;
  align-items: center;
  list-style: none;
}

.top .nav li {
  margin-left: 30px;
}

.top .nav li a {
  font-size: 2.1rem;
  color: var(--main-blue);
}

.top .float-btn {
  position: absolute;
  bottom: 30px;
  right: 30px;
  z-index: 1000;
}

.float-btn .circle-btn {
  width: 120px;
}

section.we-are-vision {
  width: calc(100% - 80px);
  margin: 120px auto 80px;
  display: flex;
  align-items: flex-start;
  justify-content: center;
}

section.we-are-vision .vision-image {
  width: 40%;
  aspect-ratio: 1012/782;
  object-fit: contain;
  object-position: center center;
}

section.we-are-vision .section-title {
  writing-mode: vertical-rl;
  font-size: 3.6rem;
  letter-spacing: 0.2rem;
  padding: 0 40px;
  color: var(--sub-blue);
  position: relative;
  padding-top: 40px;
}

section.we-are-vision .section-title:after {
  content: "";
  width: 13px;
  height: 30px;
  background: no-repeat center center / contain url(assets/img/common/dot-bl.svg);
  position: absolute;
  top: 0;
  left: 0;
  right: 0;
  margin: 0 auto;
}

section.we-are-vision .section-content {
  width: 50%;
}

section.we-are-vision .section-content .about-text h3 {
  margin-bottom: 40px;
}

section.we-are-vision .section-content .about-text h3 span {
  display: inline-block;
}

section.we-are-vision .section-content .about-text p {
  font-size: 1.6rem;
  margin-bottom: 1em;
}

.scroll-mission-wrapper {
  width: 100%;
  display: flex;
  align-items: flex-start;
  flex-wrap: wrap;
  justify-content: center;
}

.marquee {
  overflow: hidden;
  background: no-repeat center center / cover var(--basic-grd);
  margin-bottom: 80px;
}

.marquee__wrapper {
  width: 100%;
  display: flex;
  overflow: hidden;
  padding: 0 0 7px;
}

.marquee__text {
  font-size: 3rem;
  font-weight: 500;
  transform: translateX(0%) scaleY(1.5);
  color: #fff;
  line-height: 1.2;
  letter-spacing: -0.2rem;
  flex-shrink: 0;
  width: auto;
  height: auto;
  display: inline-block;
  text-wrap: nowrap;
  white-space: nowrap;
}

.marquee__text:nth-of-type(1) {
  animation: anim--first 20s infinite linear 0.1s both;
}

.marquee__text:nth-of-type(2) {
  animation: anim--second 20s infinite linear 0.1s both;
}

@keyframes anim--first {
  0% {
    transform: translateX(0%) scaleY(1.5);
  }

  100% {
    transform: translateX(-100%) scaleY(1.5);
  }
}

@keyframes anim--second {
  0% {
    transform: translateX(0%) scaleY(1.5);
  }

  100% {
    transform: translateX(-100%) scaleY(1.5);
  }
}

section.service-intro .service-list .box img {
  width: 270px;
  height: 150px;
  object-fit: contain;
  object-position: center center;
  margin: 0 auto 20px;
}

section.service-intro .service-list .box .service-title p {
  font-size: 1.8rem;
  font-weight: 500;
  text-align: center;
  margin-bottom: 0;
}

section.service-intro .service-list .box .service-title h3 {
  font-size: 5.5rem;
  line-height: 1.2;
  text-align: center;
  display: flex;
  align-items: center;
  justify-content: center;
}

section.service-intro .service-list .box .service-title h3 span,
.sand-lab-kumi span {
  font-size: 0.35em;
  text-align: left;
  line-height: 1;
  letter-spacing: 0;
  margin-left: 0.5em;
}

section.other-service-intro {
  width: 100%;
  background: no-repeat center center / cover url(assets/img/common/other-survice.jpg);
  position: relative;
  padding-bottom: 30px;
  margin-top: 120px;
}

section.other-service-intro .over-link {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  z-index: 3;
}

section.other-service-intro:before {
  content: "&";
  width: calc(100% - 40px);
  font-size: 12rem;
  line-height: 0.7;
  position: absolute;
  top: -0.67em;
  left: 0;
  right: 0;
  margin: 0 auto;
  color: var(--sub-color);
  font-family: "goldenbook", serif;
  font-feature-settings: "ss02" 1;
  font-weight: 300;
  text-align: center;
  transform: skewX(-10deg);
  color: var(--sub-blue);
}

section.other-service-intro:after {
  width: 100%;
  height: 100%;
  content: "";
  position: absolute;
  top: 0;
  left: 0;
  background-image: var(--basic-grd);
  opacity: 1;
  z-index: 1;
  mix-blend-mode: screen;
}

section.other-service-intro .fix-width {
  position: relative;
  top: 0;
  left: 0;
  z-index: 2;
}

section.other-service-intro .section-title {
  color: #fff;
  font-size: 4.2rem;
  letter-spacing: 0.2rem;
  font-weight: 300 !important;
  text-align: left;
}

section.other-service-intro .section-content .card-list {
  display: flex;
  align-items: flex-start;
  justify-content: flex-start;
  flex-wrap: wrap;
  padding: 5px;
}

section.other-service-intro .section-content .card-list .box {
  background-color: #fff;
  margin: 0 20px 20px 0;
  padding: 10px;
}

section.other-service-intro .section-content .card-list .box h3 {
  margin-bottom: 0;
  line-height: 1.25;
  color: var(--sub-blue);
}

section.other-service-intro .section-content .card-list .box h3 span {
  font-size: 0.6em;
  display: block;
  letter-spacing: 0.1rem;
}

section.other-service-intro .side-more {
  height: 100%;
  position: absolute;
  top: 25px;
  right: 10px;
  z-index: 5;
}

section.other-service-intro .side-more:after {
  content: "";
  width: 20px;
  aspect-ratio: 1/3.5;
  position: absolute;
  bottom: 50px;
  right: 5px;
  background: no-repeat center center / contain url(assets/img/common/arrow-wh.svg);
}

section.other-service-intro .side-more p {
  color: #fff;
  font-size: 2rem;
  letter-spacing: 0.2rem;
  writing-mode: vertical-rl;
}

section.partner-intro {
  width: 100%;
  background: no-repeat center center / cover url(assets/img/common/partner-bg.jpg);
  position: relative;
  padding-bottom: 50px;
  margin-top: 120px;
  margin-bottom: 0;
}

section.partner-intro:before {
  content: "";
  position: absolute;
  top: 0;
  left: 0;
  right: 0;
  bottom: 0;
  margin: auto;
  width: calc(100% - 40px);
  height: calc(100% - 40px);
  background-color: rgba(255, 255, 255, 0);
  backdrop-filter: blur(5px);
  z-index: 2;
  mix-blend-mode: screen;
}

section.partner-intro:after {
  content: "";
  position: absolute;
  top: 0;
  left: 0;
  right: 0;
  bottom: 0;
  margin: auto;
  width: 100%;
  height: 100%;
  background: no-repeat center center / cover;
  background-image: var(--basic-grd);
  mix-blend-mode: screen;
  z-index: 1;
}

section.partner-intro .fix-width {
  position: relative;
  top: 0;
  left: 0;
  z-index: 5;
}

section.partner-intro .fix-width * {
  color: #fff;
}

section.partner-intro .fix-width .section-title {
  text-align: left;
}

/* INFORMATION */
.news-list {
  max-width: 760px;
  margin: 0 auto 20px;
}

.news-list .news-list-item {
  border-bottom: 1px solid;
  border-image: var(--basic-grd) 1;
  display: flex;
  align-items: center;
  justify-content: flex-start;
  padding: 15px 0;
}

.news-list .news-list-item p {
  font-size: 1.6rem;
  margin-bottom: 0;
  padding: 0 20px;
  position: relative;
  margin-bottom: 0;
  transform: translateY(2px);
}

.news-list .news-list-item p:after {
  content: "";
  width: 1px;
  height: 15px;
  background: no-repeat center center / contain var(--basic-grd);
  position: absolute;
  top: 50%;
  right: 0;
  transform: translateY(-60%) rotate(30deg);
}

.news-list .news-list-item h3 {
  font-size: 1.5rem;
  font-weight: 400;
  margin-bottom: 0;
  padding: 0 20px 0;
  display: -webkit-box;
  -webkit-box-orient: vertical;
  overflow: hidden;
  text-overflow: ellipsis;
  -webkit-line-clamp: 1;
}

/* page */
.page-fv {
  width: 100%;
  position: relative;
}

.page-title {
  padding-top: 180px;
  margin-bottom: 180px;
  position: relative;
  z-index: 2;
}

.page:not(.service-detail) .page-title span {
  display: inline-block;
  font-size: 1.6rem;
  letter-spacing: 0.1rem;
  line-height: 0;
  padding: 12px 5px 10px;
  border-radius: 3px;
  color: #fff;
  margin-bottom: 10px;
  background: no-repeat center center / contain var(--btn-grd);
}

.page-title h1 {
  font-size: 4.2rem;
  letter-spacing: 0.2rem;
  color: var(--sub-blue);
}

.page-fv-bg {
  width: 100%;
  height: 1000px;
  background: no-repeat center top / cover url(assets/img/common/page-fv-bg.svg);
  position: absolute;
  top: 0;
  left: 0;
  z-index: 1;
}

.service-page-fv-bg {
  width: 100%;
  height: 1000px;
  background: no-repeat 55% top / cover url(assets/img/common/service-page-fv-bg.svg);
  position: absolute;
  top: -0px;
  left: 0;
  z-index: 1;
}

.page-fv-bg img {
  width: 280px;
  position: absolute;
  top: 200px;
  right: 150px;
}

.page .first-content {
  position: relative;
  z-index: 2;
}

.page.service-detail .page-title {
  margin-bottom: 100px;
}

.page.service-detail .page-fv .page-title .catchcopy {
  font-size: 2.1rem;
  font-weight: 500;
}

.page.service-detail .page-fv .page-title h1 {
  font-size: 6.35rem;
  line-height: 1.2;
  font-weight: 300 !important;
  color: var(--main-blue);
  transform: translateX(-0.07em);
}

.sand-lab-kumi {
  display: flex;
  align-items: center;
  justify-content: flex-start;
}

/* about */
.page.about {
  position: relative;
  overflow: hidden;
}

.page.about::before,
.page.about::after {
  content: "";
  width: 200px;
  aspect-ratio: 1/1;
  background: no-repeat center center / contain url(assets/img/common/grd-circle.svg);
  position: absolute;
  top: 700px;
  left: 0;
  right: 0;
  margin: 0 auto;
  z-index: 1;
}

.page.about::before {
  transform: translateX(-400px);
}

.page.about::after {
  width: 600px;
  transform: translateX(580px) rotate(180deg);
}

.about-us-wrapper .about-us-inner {
  max-width: 720px;
  margin: 0 auto;
  position: relative;
  background-color: rgba(255, 255, 255, 0.2);
  padding: 60px;
}

.about-us-wrapper .about-us-inner::before {
  content: "";
  position: absolute;
  top: 0;
  left: 0;
  right: 0;
  bottom: 0;
  border-radius: 20px;
  border: 1px solid transparent;
  background: var(--basic-grd) border-box;
  -webkit-mask: linear-gradient(#fff 0 0) padding-box, linear-gradient(#fff 0 0) border-box;
  -webkit-mask-composite: destination-out;
  mask: linear-gradient(#fff 0 0) padding-box, linear-gradient(#fff 0 0) border-box;
  mask-composite: exclude;
}

.about-us-wrapper .about-us-inner .about-us-logo {
  width: 350px;
  margin: 0 auto 40px;
}

.about-us-wrapper .about-us-inner .section-content {
  padding-top: 40px;
  position: relative;
}

.about-us-wrapper .about-us-inner .section-content:after {
  width: 100px;
  height: 1px;
  content: "";
  background: no-repeat center center / contain var(--basic-grd);
  position: absolute;
  top: 0;
  left: 0;
  right: 0;
  margin: 0 auto;
}

.mvv-wrapper h2 {
  color: var(--sub-blue);
  text-align: left;
  letter-spacing: 0.2rem;
  margin-bottom: 20px;
}

.mvv-wrapper .mission-value-wrapper {
  margin: 40px 0;
}

.mvv-wrapper .mission-value-wrapper ul {
  list-style: none;
}

.mvv-wrapper .mission-value-wrapper ul li {
  font-size: 2.2rem;
  font-weight: 500;
  color: var(--main-blue);
  position: relative;
  padding-left: 35px;
  margin-left: 5px;
}

.mvv-wrapper .mission-value-wrapper ul li:after {
  content: "";
  width: 15px;
  height: 15px;
  background: #D3F4FF;
  position: absolute;
  top: 50%;
  left: 0;
  transform: translateY(-40%);
  border-radius: 50%;
}

.mvv-wrapper .mission-inner ul li:nth-of-type(2):after {
  background: #AEE7F8;
}

.mvv-wrapper .mission-inner ul li:nth-of-type(3):after {
  background: #8FDAF1;
}

.mvv-wrapper .mission-value-wrapper .value-inner ul li:after {
  background-color: transparent;
  border: 1px solid var(--sub-blue);
}

.purpose-detail {
  max-width: 820px;
  margin: 180px auto 0;
}

.purpose-detail .box {
  width: calc(50% - 20px);
  margin-right: 40px;
}

.purpose-detail .box:nth-of-type(2) {
  margin-right: 0;
}

.purpose-circle {
  position: relative;
  z-index: 1;
}

.purpose-circle:after {
  content: "";
  width: 100%;
  aspect-ratio: 1/1;
  position: absolute;
  top: 0;
  left: 0;
  right: 0;
  bottom: 0;
  margin: auto;
  z-index: 2;
  background: no-repeat center center / contain url(assets/img/about/purpose-circle.png);
  transform: scale(1.2);
}

.purpose-detail .box:nth-of-type(2) .purpose-circle:after {
  transform: scale(1.2);
}

.purpose-detail .box img {
  max-width: 200px;
  aspect-ratio: 1/1;
  object-fit: contain;
  object-position: center center;
  margin: 0 auto;
}

.purpose-detail .box .info {
  position: relative;
  padding: 30px;
  background-color: rgba(255, 255, 255, 0.75);
  z-index: 2;
}

.purpose-detail .box .info::before {
  content: "";
  position: absolute;
  top: 0;
  left: 0;
  right: 0;
  bottom: 0;
  border-radius: 20px;
  border: 1px solid transparent;
  background: var(--basic-grd) border-box;
  -webkit-mask: linear-gradient(#fff 0 0) padding-box, linear-gradient(#fff 0 0) border-box;
  -webkit-mask-composite: destination-out;
  mask: linear-gradient(#fff 0 0) padding-box, linear-gradient(#fff 0 0) border-box;
  mask-composite: exclude;
}

.purpose-detail .box h4 {
  text-align: center;
}

.purpose-detail .box p {
  font-size: 1.3rem;
  text-align: justify;
}

.member-wrapper .card-list .box .circle-wrapper {
  position: relative;
}

.member-wrapper .card-list .box .circle-wrapper:after {
  content: "";
  width: 90%;
  aspect-ratio: 1/1;
  position: absolute;
  top: 0;
  left: 0;
  right: 0;
  bottom: 0;
  margin: auto;
  z-index: 2;
  background: no-repeat center center / contain url(assets/img/common/about-circle.png);
  transition: .3s var(--st-easing);
  cursor: pointer;
}

.member-wrapper .card-list .box:nth-of-type(2n) .circle-wrapper:after {
  transform: rotate(90deg);
}

.member-wrapper .card-list .box:nth-of-type(3n) .circle-wrapper:after {
  transform: rotate(180deg);
}

.member-wrapper .card-list .box:nth-of-type(4n) .circle-wrapper:after {
  transform: rotate(270deg);
}

.member-wrapper .card-list .box:hover .circle-wrapper:after {
  transform: rotate(90deg) scale(1.1);
}

.member-wrapper .card-list .box:nth-of-type(2n):hover .circle-wrapper:after {
  transform: rotate(180deg) scale(1.1);
}

.member-wrapper .card-list .box:nth-of-type(3n):hover .circle-wrapper:after {
  transform: rotate(270deg) scale(1.1);
}

.member-wrapper .card-list .box:nth-of-type(4n):hover .circle-wrapper:after {
  transform: rotate(360deg) scale(1.1);
}

.member-wrapper .card-list .box .circle-wrapper img {
  position: relative;
  z-index: 1;
}

.member-wrapper .card-list .box .role {
  display: block;
  font-size: 1.3rem;
  text-align: center;
  color: #999999;
}

.member-wrapper .card-list .box h3 {
  display: block;
  font-size: 1.8rem;
  text-align: center;
  color: var(--sub-blue);
}

/* member-modal */
.member-modal-wrapper {
  width: 100%;
  height: 100vh;
  position: fixed;
  top: 0;
  left: 0;
  z-index: 2000;
  background-color: rgba(84, 171, 198, 0.8);
  opacity: 0;
  pointer-events: none;
  padding: 0;
}

.member-modal-wrapper.active {
  opacity: 1;
  pointer-events: all;
}

.member-modal-wrapper .member-modal-inner {
  width: 100%;
  height: 100%;
  overflow-y: scroll;
}

.member-modal-wrapper .member-modal-inner .swiper-container {
  margin-top: 80px;
  padding: 0 0 80px;
}

.member-modal-wrapper .swiper-container .swiper-slide {
  width: 490px;
  background-color: #fff;
  border-radius: 20px;
  margin: 0 60px;
}

.member-modal-wrapper .swiper-container .swiper-slide .top-inner {
  height: 280px;
  position: relative;
  padding: 30px;
  display: flex;
  align-items: center;
  justify-content: center;
}

.member-modal-wrapper .swiper-container .swiper-slide .top-inner .member-image-wrapper {
  max-width: 260px;
  aspect-ratio: 1/1;
  margin: 0 auto;
  position: relative;
}

.member-modal-wrapper .swiper-container .swiper-slide .top-inner .member-image-wrapper:after {
  content: "";
  width: 90%;
  aspect-ratio: 1/1;
  position: absolute;
  top: 0;
  left: 0;
  right: 0;
  bottom: 0;
  margin: auto;
  z-index: 2;
  background: no-repeat center center / contain url(assets/img/common/about-circle.png);
  transition: .3s var(--st-easing);
  cursor: pointer;
}

.member-modal-wrapper .swiper-container .swiper-slide .top-inner .member-image-wrapper img {
  object-fit: contain;
  object-position: center center;
  position: relative;
  z-index: 1;
}

.member-modal-wrapper .swiper-container .swiper-slide .role {
  position: absolute;
  top: 25px;
  right: 25px;
  writing-mode: vertical-lr;
  background-image: var(--btn-grd);
  border-radius: 2px;
  z-index: 10;
}

.member-modal-wrapper .swiper-container .swiper-slide .role p {
  font-size: 1.3rem;
  font-weight: 500;
  line-height: 1;
  letter-spacing: 0rem;
  color: #fff;
  padding: 3px;
}

.member-modal-wrapper .swiper-container .swiper-slide .name {
  position: absolute;
  bottom: 25px;
  left: 28px;
  z-index: 10;
}

.member-modal-wrapper .swiper-container .swiper-slide .name h3 {
  font-size: 2.4rem;
  writing-mode: vertical-lr;
  letter-spacing: -0.3rem;
  color: var(--sub-blue);
  position: relative;
  z-index: 10;
}

.member-modal-wrapper .swiper-container .swiper-slide .furigana {
  position: absolute;
  bottom: 0px;
  left: 35px;
  z-index: 10;
}

.member-modal-wrapper .swiper-container .swiper-slide .furigana p {
  font-size: 1.7rem;
  color: var(--sub-blue);
}

.member-modal-wrapper .swiper-container .swiper-slide .bottom-inner {
  padding: 20px 35px 35px;
}

.member-modal-wrapper .swiper-container .swiper-slide .bottom-inner p {
  font-size: 1.3rem;
  letter-spacing: 0;
}

.member-modal-wrapper .swiper-prevnext {
  max-width: 670px;
  margin: 0 auto;
  position: absolute;
  top: 360px;
  left: 0;
  right: 0;
  margin: auto;
  pointer-events: none;
}

.member-modal-wrapper .swiper-prevnext * {
  pointer-events: all;
}

.member-modal-wrapper .swiper-prevnext .swiper-button-prev,
.member-modal-wrapper .swiper-prevnext .swiper-button-next {
  width: 30px;
  height: auto;
  aspect-ratio: 1/3;
}

.member-modal-wrapper .swiper-prevnext .swiper-button-prev::after,
.member-modal-wrapper .swiper-prevnext .swiper-button-next::after {
  content: "";
  width: 100%;
  height: 100%;
  margin: auto;
  background-repeat: no-repeat;
  background-size: contain;
}

.member-modal-wrapper .swiper-prevnext .swiper-button-prev::after {
  background-image: url(assets/img/common/arrow-wh.svg);
  transform: rotate(180deg);
}

.member-modal-wrapper .swiper-prevnext .swiper-button-next::after {
  background-image: url(assets/img/common/arrow-wh.svg);
}

.member-modal-wrapper .close-btn {
  width: 80px;
  position: absolute;
  left: 0;
  right: 0;
  bottom: 30px;
  margin: 0 auto;
  z-index: 100;
}

@media screen and (max-height: 790px) {
  .member-modal-wrapper .close-btn {
    top: 20px;
    left: 0;
    right: 0;
    bottom: auto;
  }
}

.member-modal-wrapper .close-btn p {
  font-size: 1.8rem;
}


.company-profile-wrapper dl {
  display: flex;
  align-items: stretch;
  justify-content: flex-start;
  flex-wrap: wrap;
}

.company-profile-wrapper dl dt,
.company-profile-wrapper dl dd {
  border-bottom: 1px solid var(--sub-blue);
  color: var(--main-blue);
  margin: 0;
  font-size: 1.3rem;
  padding: 5px 0;
}

.company-profile-wrapper dl dt {
  width: 150px;
  display: flex;
  align-items: center;
}

.company-profile-wrapper dl dd {
  width: calc(100% - 150px);
}

.company-profile-wrapper .map-container {
  height: 320px;
}

/* service */
.other-service-list-wrapper .col2 {
  align-items: center;
  margin: 60px auto;
}

.other-service-list-wrapper .col2 .box:nth-of-type(1) {
  width: 44%;
  margin: 0;
}

.other-service-list-wrapper .col2 .box:nth-of-type(2) {
  width: 56%;
  margin: 0;
}

.other-service-list-wrapper .col2 .box img {
  width: calc(100% - 60px);
  max-width: 220px;
  padding: 0 30px;
  aspect-ratio: 1/1;
  object-fit: contain;
  object-position: center center;
  margin: 0 auto;
}

.other-service-list-wrapper .col2 .box p {
  font-size: 1.4rem;
}

.other-service-list-wrapper .col2 .box h3 {
  font-size: 2.4rem;
}

.other-service-list-wrapper .col3 .box img {
  width: calc(100% - 60px);
  max-width: 220px;
  padding: 0 30px;
  aspect-ratio: 1/1;
  object-fit: contain;
  object-position: center center;
  margin: 0 auto;
}

.other-service-list-wrapper .col3 .box h3 {
  font-size: 2.1rem;
}

.other-service-list-wrapper .col3 .box p {
  font-size: 1.3rem;
}

/* service detail */
.service-main-desc-wrapper .service-main-inner {
  display: flex;
  align-items: flex-start;
  justify-content: flex-start
}

.service-main-desc-wrapper .box.section-content {
  width: calc(100% - 280px);
  max-width: 580px;
  margin-right: 80px;
}

.service-main-desc-wrapper .box.section-content h2 {
  font-size: 2.8rem;
}

.service-main-desc-wrapper .box.service-logo {
  width: 200px;
}

.page.sand-lab .service-main-desc-wrapper .box.service-logo {
  width: 300px;
  margin-top: 60px;
  position: relative;
  z-index: 0;
}

.service-point-wrapper {
  position: relative;
  padding-bottom: 140px;
}

.service-point-wrapper:after {
  content: "";
  width: 100%;
  height: calc(100% - 165px);
  background-color: var(--sub-blue);
  position: absolute;
  left: 0;
  bottom: 0;
  z-index: 1;
}

.service-point-brdr-wrapper {
  position: relative;
  top: 75px;
  z-index: 2;
}

.service-point-wrapper .section-title {
  position: absolute;
  top: -80px;
  left: 80px;
  font-size: 3.4rem;
  line-height: 1;
  letter-spacing: 0.1rem;
  font-weight: 300;
  margin: 0 auto;
  z-index: 3;
}

.service-point-wrapper .section-title span {
  font-size: 10rem;
  line-height: 1;
  font-weight: 300 !important;
  display: inline-block;
  transform: translateY(16px) skewX(-10deg);
  margin-right: 5px;
}

.service-point-wrapper .service-title {
  display: flex;
  position: absolute;
  top: -42px;
  right: 55px;
  font-size: 5.2rem;
  font-weight: 300 !important;
  line-height: 1;
  margin: 0 auto;
  z-index: 3;
}

.service-point-brdr-inner {
  width: calc(100% - 80px);
  max-width: 1040px;
  margin: 0 auto;
  position: relative;
  background-color: rgba(255, 255, 255, 1);
  padding: 60px 20px 20px;
  border-radius: 20px;
}

.service-point-brdr-inner::before {
  content: "";
  position: absolute;
  top: 0;
  left: 0;
  right: 0;
  bottom: 0;
  border-radius: 20px;
  border: 1px solid transparent;
  background: var(--basic-grd) border-box;
  -webkit-mask: linear-gradient(#fff 0 0) padding-box, linear-gradient(#fff 0 0) border-box;
  -webkit-mask-composite: destination-out;
  mask: linear-gradient(#fff 0 0) padding-box, linear-gradient(#fff 0 0) border-box;
  mask-composite: exclude;
}

.service-point-brdr-wrapper .service-point-image {
  margin-bottom: 20px;
  position: relative;
}

.service-point-brdr-wrapper .service-point-image img {
  position: relative;
  z-index: 1;
}

.service-point-brdr-wrapper .service-point-image:after {
  content: "";
  width: 100%;
  height: 100%;
  position: absolute;
  top: 0;
  left: 0;
  z-index: 2;
  background-image: var(--basic-grd);
  mix-blend-mode: screen;
}

.service-point-brdr-wrapper h3 {
  font-size: 1.8rem;
  letter-spacing: 0;
  text-align: center;
  margin-bottom: 10px;
}

.service-point-brdr-wrapper p {
  font-size: 1.4rem;
  text-align: justify;
}

.schedule-wrapper {
  position: relative;
}

.schedule-wrapper .fix-width {
  width: 100%;
  max-width: calc((100% - 960px) / 2 + 960px);
  margin-left: calc((100% - 960px) / 2);
}

@media screen and (min-width: 1280px) {
  .schedule-wrapper .fix-width {
    margin: 0;
    margin-left: calc((100% - 960px) / 2);
  }
}

@media screen and (max-width: 960px) {
  .schedule-wrapper .fix-width {
    max-width: calc(100% - 80px);
    margin-left: 80px;
  }
}

.schedule-title {
  width: 165px;
  aspect-ratio: 1/1;
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 2.1rem;
  letter-spacing: 0;
  color: #fff;
  text-align: center;
  background: no-repeat center center / contain url(assets/img/common/circle-btn.svg);
  position: absolute;
  top: 80px;
  z-index: 2;
}

.schedule-scroll-container {
  overflow-x: scroll;
  padding-top: 50px;
  padding-left: 50px;
  padding-right: 350px;
  /* scroll-behavior: smooth; */
  -ms-overflow-style: none;
  /* IE, Edge */
  scrollbar-width: none;
  /* Firefox */
  overscroll-behavior-x: none;
}

.schedule-list {
  display: flex;
  width: max-content;
  display: block;
}

.schedule-list .box {
  display: inline-block;
  width: 420px;
  aspect-ratio: 1/1;
  overflow-x: scroll;
  text-align: center;
  margin-right: -50px;
  margin-bottom: 80px;
  position: relative;
}

.schedule-list .box:after {
  content: "";
  width: 100%;
  height: 100%;
  background: no-repeat center center / contain url(assets/img/common/grd-circle.svg);
  position: absolute;
  top: 0;
  left: 0;
  z-index: 1;
}

.schedule-list .box:nth-child(4n + 1):after {
  transform: rotate(0deg);
}

/* 2、6、10番目... (90度) */
.schedule-list .box:nth-child(4n + 2):after {
  transform: rotate(90deg);
}

/* 3、7、11番目... (180度) */
.schedule-list .box:nth-child(4n + 3):after {
  transform: rotate(180deg);
}

/* 4、8、12番目... (270度) */
.schedule-list .box:nth-child(4n + 4):after {
  transform: rotate(270deg);
}

.schedule-list .box:nth-of-type(odd) {
  transform: translateY(80px);
}

.schedule-list .box .inner {
  width: 100%;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  margin-top: 75px;
}

.schedule-list .box .num {
  font-size: 6rem;
  line-height: 1;
  margin-bottom: 15px;
  font-weight: 300 !important;
  color: var(--sub-blue);
}

.schedule-list .box h3 {
  font-size: 2.1rem;
}

.schedule-list .box p {
  max-width: 300px;
  font-size: 1.4rem;
}

/* プログレスバーのレール */
.progress-container {
  width: 100%;
  max-width: 800px;
  height: 4px;
  background: #eee;
  margin: 60px auto 0;
  position: relative;
  cursor: pointer;
  /* レールをクリックしても動くように */
  user-select: none;
  border-radius: 4px;
  /* ドラッグ中に文字選択されないように */
}

@media screen and (max-width: 960px) {
  .progress-container {
    width: calc(100% - 160px);
    max-width: 600px;
  }
}

/* 文字の共通スタイル */
.label-start,
.label-goal {
  position: absolute;
  top: -10px;
  /* バーの「上」に配置する場合。下にしたいなら bottom: -25px; */
  font-size: 12px;
  font-weight: bold;
  color: var(--sub-blue);
  white-space: nowrap;
}

/* STARTを左端に固定 */
.label-start {
  left: -60px;
}

/* GOALを右端に固定 */
.label-goal {
  right: -60px;
}

/* 動くバー（現在地） */
.progress-bar {
  position: absolute;
  top: 0;
  left: 0;
  height: 100%;
  background: var(--sub-blue);
  /* ★ここが「スクロールした分」の色（自由に変えてください） */
  width: 0%;
  /* JSでここが 0% 〜 100% に変化します */
  border-radius: 4px;
  /* transition: width 0.1s ease-out; 滑らかにしたい場合 */
}

/* 現在地を示す画像ボタン */
.scroll-thumb {
  position: absolute;
  /* バーの右端（先端）に画像を配置 */
  right: -10px;
  top: -20px;
  /* 画像の中心をバーの先端に合わせるため、中心をずらす */
  transform: translate(50%, -50%);
  width: 55px;
  /* 画像のサイズ */
  height: auto;
  cursor: grab;
  z-index: 10;
}

.scroll-thumb:active {
  cursor: grabbing;
  /* 掴んでいる間のカーソル */
}

.service-structure-wrapper img {
  max-width: 700px;
  margin: 0 auto;
}

.service-target-wrapper h3 span {
  font-size: 0.65em;
}

.target-inner {
  padding: 10px 25px 0;
  margin-bottom: 50px;
}

.target-inner .service-target-list {
  list-style: none;
}

.target-inner .service-target-list li {
  padding-left: 20px;
  font-size: 1.3rem;
  color: var(--main-blue);
  position: relative;
  margin-bottom: 4px;
}

.target-inner .service-target-list li:after {
  content: "";
  width: 10px;
  aspect-ratio: 1/1;
  border: 1px solid var(--main-blue);
  border-radius: 50%;
  position: absolute;
  top: 5px;
  left: 0;
}

.target-inner.other-purpose h4 {
  margin-top: -20px;
}

.target-inner.other-purpose ul {
  margin-bottom: 20px;
}

.next-challenge-wrapper {
  position: relative;
}

.next-challenge-wrapper:after {
  content: "";
  width: 100%;
  height: calc(100% - 96px);
  background-color: var(--sub-lightblue);
  position: absolute;
  top: 96px;
  left: 0;
  z-index: 1;
}

.challenge-title {
  display: flex;
  align-items: center;
  justify-content: space-between;
  position: relative;
  z-index: 2;
}

.challenge-title * {
  font-size: 5.6rem;
  letter-spacing: 0;
  color: var(--sub-blue);
  margin-bottom: 0;
}

.challenge-title img {
  width: 20px;
  height: 70px;
}

.next-challenge-wrapper .section-content {
  position: relative;
  z-index: 2;
  padding: 40px;
}

.next-challenge-wrapper .section-content h3 {
  font-size: 2.1rem;
  text-align: center;
}

.next-challenge-wrapper .col2.challenge-list {
  margin: 50px auto 0;
  align-items: stretch;
}

.next-challenge-wrapper .challenge-list .box {
  width: calc(50% - 80px);
  margin: 0 auto 30px;
  position: relative;
  background-color: rgba(255, 255, 255, 1);
  padding: 30px 30px;
  border-radius: 20px;
}

.next-challenge-wrapper .challenge-list .box::before {
  content: "";
  position: absolute;
  top: 0;
  left: 0;
  right: 0;
  bottom: 0;
  border-radius: 20px;
  border: 1px solid transparent;
  background: var(--basic-grd) border-box;
  -webkit-mask: linear-gradient(#fff 0 0) padding-box, linear-gradient(#fff 0 0) border-box;
  -webkit-mask-composite: destination-out;
  mask: linear-gradient(#fff 0 0) padding-box, linear-gradient(#fff 0 0) border-box;
  mask-composite: exclude;
}

/* .next-challenge-wrapper .challenge-list .box:nth-last-of-type(-n+2) {
  margin-bottom: 0;
} */

.next-challenge-wrapper .challenge-list .box h4 {
  text-align: center;
}

.next-challenge-wrapper .challenge-list .box img {
  height: 63px;
  object-fit: contain;
  object-position: center center;
  margin: 0 auto;
}

.service-voice-wrapper .swiper-container {
  margin-top: 60px;
  margin-bottom: 60px;
}

.service-voice-wrapper .swiper-slide {
  width: 280px;
  margin: 0 25px;
}

.service-voice-wrapper .swiper-slide p {
  line-height: 1.75;
}

.service-voice-wrapper .swiper-slide img {
  height: 100px;
  aspect-ratio: 1/1;
  object-fit: contain;
  object-position: center center;
  margin-bottom: 20px;
}

.service-voice-wrapper .swiper-slide .role {
  display: inline-block;
  font-size: 1.5rem;
  line-height: 1;
  color: #fff;
  padding: 2px 3px;
  background-color: var(--sub-blue);
  margin-bottom: 10px;
}

.service-voice-wrapper .swiper-slide h3 {
  font-size: 1.8rem;
  margin-bottom: 10px;
}

.service-voice-wrapper .swiper-slide p {
  font-size: 1.4rem;
  font-weight: 400;
}

.field-partner-wrapper {
  display: flex;
  align-items: flex-start;
  justify-content: center;
  padding: 20px 0;
}

.field-partner-wrapper h2 {
  display: inline-block;
  border: none;
  border-bottom: 1px solid #fff;
  padding-bottom: 10px;
}

.field-partner-wrapper h3 {
  font-size: 2.4rem;
}

.field-partner-wrapper .box.info {
  width: 59%;
  margin-right: 50px;
}

.field-partner-wrapper .box.merit-list {
  width: calc(41% - 50px);
  margin-top: 30px;
}

.field-partner-wrapper .box.merit-list ul {
  list-style: none;
}

.field-partner-wrapper .box.merit-list ul li {
  border: 1px solid #fff;
  border-radius: 20px;
  margin-bottom: 20px;
}

.field-partner-wrapper .box.merit-list ul li p {
  font-weight: 500;
  text-align: center;
  padding: 20px 20px;
}


/* PARTNER */
.partner-main-wrapper .fix-width {
  max-width: 1280px;
  padding-bottom: 80px;
  border-bottom: 1px solid;
  border-image: var(--basic-grd) 1;
}

.partner-main-wrapper .fix-width .col2 {
  align-items: center;
}

.partner-main-wrapper .fix-width .section-content h2 {
  font-size: 3.2rem;
  position: relative;
  padding-bottom: 40px;
  margin-bottom: 40px;
}

.partner-main-wrapper .fix-width .section-content h2:after {
  content: "";
  width: 70px;
  height: 1px;
  background-image: var(--basic-grd);
  position: absolute;
  left: 0;
  bottom: 0;
  z-index: 1;
}

.partner-main-wrapper .fix-width .section-content h3 {
  font-size: 2.4rem;
}

.partner-nav-wrapper .partner-nav-list {
  max-width: 650px;
  margin: 0 auto;
}

.partner-nav-wrapper .partner-nav-list .box {
  width: calc(50% - 15px);
  position: relative;
  margin-right: 30px;
  margin-bottom: 30px;
  padding-bottom: 25px;
}

.partner-nav-wrapper .partner-nav-list .box:nth-of-type(2n) {
  margin-right: 0;
}

.partner-nav-wrapper .partner-nav-list .box::before {
  content: "";
  position: absolute;
  top: 0;
  left: 0;
  right: 0;
  bottom: 0;
  border-radius: 20px;
  border: 1px solid transparent;
  background: var(--basic-grd) border-box;
  -webkit-mask: linear-gradient(#fff 0 0) padding-box, linear-gradient(#fff 0 0) border-box;
  -webkit-mask-composite: destination-out;
  mask: linear-gradient(#fff 0 0) padding-box, linear-gradient(#fff 0 0) border-box;
  mask-composite: exclude;
}

.partner-nav-wrapper .partner-nav-list .box::after {
  content: "";
  width: 17px;
  aspect-ratio: 1/3.8;
  background: no-repeat center center / contain url(assets/img/common/arrow.svg);
  position: absolute;
  left: 0;
  right: 0;
  bottom: -6px;
  transform: rotate(90deg);
  margin: 0 auto;
}

.partner-nav-wrapper .partner-nav-list .box .cat {
  display: flex;
  align-items: center;
  justify-content: space-between;
  background-image: var(--basic-grd);
  border-radius: 20px 20px 20px 0;
  padding: 4px 10px;
}

.partner-nav-wrapper .partner-nav-list .box .cat * {
  color: #fff;
  font-size: 1.3rem;
  font-weight: 500;
}

.partner-nav-wrapper .partner-nav-list .box p.partner-name {
  font-size: 1.8rem;
  letter-spacing: 0;
  font-weight: 500;
  text-align: center;
  padding: 20px;
}

.partner-detail .section-title {
  letter-spacing: 0.2rem;
}

.partner-detail .partner-info {
  margin-top: 60px;
  margin-bottom: 80px;
}

.partner-detail .partner-info .box:nth-of-type(1) {
  width: calc(100% - 350px);
  margin-right: 50px;
}

.partner-detail .partner-info .box:nth-of-type(2) {
  width: 300px;
}

.partner-detail.founding-partner-info-wrapper .partner-info .box:nth-of-type(2) {
  display: flex;
  align-items: center;
  justify-content: space-between;
}

.partner-detail.founding-partner-info-wrapper .partner-info .box:nth-of-type(2) img {
  width: 45%;
  display: inline-block;
}

.partner-detail .partner-info .box h3 {
  font-size: 2.4rem;
}

.merit-offer-wrapper {
  position: relative;
}

.merit-offer-wrapper:after {
  content: "";
  width: 100%;
  height: calc(100% - 48px);
  background-color: var(--sub-lightblue);
  position: absolute;
  top: 48px;
  left: 0;
  z-index: 1;
}

.merit-offer-wrapper h3 {
  font-size: 6rem;
  line-height: 1;
  color: var(--sub-blue);
  text-align: center;
}

.merit-offer-wrapper .section-content {
  position: relative;
  padding-top: 30px;
  padding-bottom: 50px;
  z-index: 2;
}

.merit-offer-wrapper .section-content .merit-list {
  max-width: 600px;
  margin: 0 auto;
  text-align: center;
}

.merit-offer-wrapper .section-content .merit-list .box {
  background-color: #fff;
  border-radius: 20px;
  margin-bottom: 20px;
  padding: 25px;
  position: relative;
}

.merit-offer-wrapper .section-content .merit-list .box::before {
  content: "";
  position: absolute;
  top: 0;
  left: 0;
  right: 0;
  bottom: 0;
  border-radius: 20px;
  border: 1px solid transparent;
  background: var(--basic-grd) border-box;
  -webkit-mask: linear-gradient(#fff 0 0) padding-box, linear-gradient(#fff 0 0) border-box;
  -webkit-mask-composite: destination-out;
  mask: linear-gradient(#fff 0 0) padding-box, linear-gradient(#fff 0 0) border-box;
  mask-composite: exclude;
}

.merit-offer-wrapper .section-content .merit-list .box h4 {
  margin-bottom: 0;
}

.merit-offer-wrapper .section-content .merit-list .box ul {
  list-style: none;
  margin-top: 18px;
  padding-top: 20px;
  border-top: 1px solid;
  border-image: var(--basic-grd) 1;
  display: flex;
  align-items: flex-start;
  justify-content: center;
  flex-wrap: wrap;
}

.merit-offer-wrapper .section-content .merit-list .box ul li {
  font-size: 1.5rem;
  font-weight: 500;
  color: var(--main-blue);
  margin: 5px 15px;
}

/* NEWS */
.news-list-wrapper .col3 .box {
  position: relative;
  margin-bottom: 40px;
}

.news-list-wrapper .col3 .box * {
  position: relative;
  z-index: 1;
  cursor: pointer;
}

.news-list-wrapper .col3 .box .cat {
  background-image: var(--btn-grd);
  font-size: 1.2rem;
  letter-spacing: 0;
  line-height: 1;
  font-weight: 500;
  color: #fff;
  padding: 2px 2px 3px;
  position: absolute;
  top: 13px;
  left: -15px;
  z-index: 2;
  border-radius: 2px;
}

.news-list-wrapper .col3 .box .image-wrapper {
  width: 100%;
  aspect-ratio: 3/1.8;
  overflow: hidden;
  position: relative;
}

.news-list-wrapper .col3 .box .image-wrapper:after {
  content: '';
  width: 100%;
  height: 100%;
  background-image: var(--basic-grd);
  mix-blend-mode: screen;
  position: absolute;
  top: 0;
  left: 0;
  z-index: 2;
  opacity: 1;
  transition: .3s var(--st-easing);
}

.news-list-wrapper .col3 .box img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: center center;
  position: relative;
  z-index: 1;
  transition: .3s var(--st-easing);
  filter: grayscale(100);
}

.news-list-wrapper .col3 .box:hover .image-wrapper:after {
  opacity: 0;
  transform: scale(1.5);
}

.news-list-wrapper .col3 .box:hover img {
  transform: scale(1.1);
  filter: grayscale(0);
}

.news-list-wrapper .col3 .box span {
  display: block;
  color: var(--sub-blue);
  font-size: 1.4rem;
  margin: 10px 0 2px;
}

.news-list-wrapper .col3 .box h2 {
  font-size: 1.6rem;
  margin-bottom: 5px;
}

.news-list-wrapper .col3 .box p {
  font-size: 1.3rem;
  display: -webkit-box;
  -webkit-box-orient: vertical;
  -webkit-line-clamp: 3;
  overflow: hidden;
}

/* FOOTER */
footer {
  background: no-repeat center center / cover url(assets/img/common/footer-bg.png);
  padding: 50px 0;
}

footer .col2 .box.company-content {
  width: calc(100% - 550px);
  margin-right: 50px;
}

.footer-logo {
  width: 240px;
  margin-bottom: 30px;
}

footer .company-info p {
  font-size: 1.4rem;
  color: #fff;
  margin-bottom: 30px;
}

footer .col2 .box.contact-intro {
  width: 500px;
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
}

footer .contact-intro * {
  color: #fff;
}

footer .contact-intro .section-title {
  text-align: left;
  letter-spacing: 0.2rem;
  font-weight: 300 !important;
}

footer .contact-intro .section-title span {
  font-size: 0.4em;
}

footer .contact-intro p.desc {
  font-size: 1.4rem;
}

footer .other-items {
  width: 100%;
  display: flex;
  align-items: center;
  justify-content: space-around;
  margin-top: 30px;
}

footer .other-items .copyright p {
  color: #fff;
  text-align: left;
}

footer .other-items .sns ul {
  list-style: none;
}

.copyright {
  width: 100%;
  text-align: center;
  font-size: 1.2rem;
}

@media screen and (max-width:960px) {
  h2 {
    font-size: 2.8rem;
  }

  h3 {
    font-size: 2.4rem;
  }

  menu .menu-list {
    justify-content: flex-start;
  }

  menu .menu-list li:not(.logo) {
    margin-left: 75px;
  }

  .top .fv-logotype {
    width: 300px;
    bottom: 100px;
  }

  .top .nav {
    left: 20px;
    bottom: 40px;
  }

  section.we-are-vision {
    flex-direction: column;
    position: relative;
  }

  section.we-are-vision .vision-image {
    width: 400px;
    margin: 0 auto;
  }

  section.we-are-vision .section-title {
    padding: 0;
    padding-top: 40px;
    position: absolute;
    top: 0;
    left: 0;
  }

  section.we-are-vision .section-content {
    width: 100%;
    max-width: 600px;
  }

  section.service-intro .service-list.col2 {
    justify-content: center;
  }

  section.service-intro .service-list.col2 .box:nth-of-type(1) {
    margin-right: 50px;
  }

  section.service-intro .service-list .box .service-title h3 {
    font-size: 4.2rem;
  }

  section.service-intro .service-list .box .service-title p {
    font-size: 1.5rem;
  }

  footer .col2 .box.company-content {
    width: 100%;
    margin-right: 0;
  }

  /* page */
  .page-fv-bg img {
    width: 280px;
    right: 30px;
  }

  .page-title h1 {
    font-size: 3.8rem;
  }

  /* about */
  .mission-value-wrapper.col2 .box {
    width: 100%;
    margin-right: 0;
  }

  .mission-value-wrapper.col2 .box:nth-of-type(1) {
    margin-bottom: 40px;
  }

  .company-profile-wrapper .col2 {
    max-width: 600px;
    margin: 0 auto;
  }

  .company-profile-wrapper .col2 .box {
    width: 100%;
  }

  .company-profile-wrapper .col2 .box:nth-of-type(1) {
    margin-bottom: 60px;
    margin-right: 0;
  }

  /* service */
  .other-service-list-wrapper .col3 .box h3 {
    font-size: 1.6rem;
  }

  /* service detail */
  .service-main-desc-wrapper .box.section-content h2 {
    font-size: 2.1rem;
  }

  .service-point-brdr-inner {
    max-width: 500px;
  }

  .service-point-wrapper .section-title {
    left: 20px;
    font-size: 2.8rem;
  }

  .service-point-wrapper .service-title {
    font-size: 3.8rem;
    right: 20px;
    top: -29px;
  }

  .service-point-wrapper .col3 .box {
    width: 100%;
    margin-right: 0;
    margin-bottom: 40px;
  }


  /* partner */
  .partner-main-wrapper .col2 .box {
    width: 100%;
    margin-right: 0;
  }

  .partner-main-wrapper .col2 .box:nth-of-type(1) {
    margin-bottom: 40px;
  }

  .service-main-desc-wrapper .box.section-content {
    width: calc(100% - 220px);
    margin-right: 40px;
  }

  .partner-detail .partner-info .box h3 {
    font-size: 2.1rem;
  }

  .partner-detail .partner-info .box h3 br {
    display: none;
  }

  .challenge-title {
    flex-wrap: wrap;
    justify-content: flex-start;
  }

  .challenge-title>span {
    width: 100%;
    line-height: 1;
  }

  .challenge-title img {
    margin-left: 5px;
  }

  .challenge-title h2 {
    margin-left: 30px;
  }

  .next-challenge-wrapper:after {
    height: calc(100% - 76px);
    top: 76px;
  }

  .next-challenge-wrapper .section-content {
    padding: 40px 0;
  }

  .field-partner-wrapper {
    flex-wrap: wrap;
  }

  .field-partner-wrapper .box.info {
    width: 100%;
    margin-right: 0;
  }

  .field-partner-wrapper .box.merit-list {
    width: 100%;
    max-width: 500px;
    margin-top: 80px;
  }

  .page.sand-lab .service-main-desc-wrapper .box.service-logo {
    width: 200px;
  }
}

@media screen and (max-width: 480px) {
  p {
    font-size: 1.4rem;
  }

  h1 {
    font-size: 3.6rem;
  }

  h2 {
    font-size: 2.1rem;
  }

  h3 {
    font-size: 1.8rem;
  }

  h4 {
    font-size: 1.6rem;
  }

  h5 {
    font-size: 1.4rem;
  }

  .btn,
  .btn:visited {
    margin-top: 20px;
  }

  section {
    padding: 15px 0 0;
    margin: 0 auto 40px;
  }

  .section-title {
    font-size: 2.6rem;
    letter-spacing: 0.5rem;
    margin-bottom: 15px;
  }

  .fix-width {
    width: calc(100% - 50px);
  }

  .circle-btn {
    width: 120px;
  }

  menu .menu-list {
    padding: 20px;
  }

  menu .menu-list li:not(.logo) {
    margin-left: 20px;
  }

  menu .menu-list li {
    width: 100%;
  }

  menu .menu-list li a,
  menu .menu-list li a:visited {
    font-size: 2.1rem;
    margin-bottom: 20px;
  }

  menu .menu-list li.logo img {
    width: 200px;
  }

  .top .fv-image,
  .top .fv-logotype,
  .top .nav {
    position: static;
  }

  .top {
    display: flex;
    align-items: flex-start;
    justify-content: center;
    flex-direction: column;
  }

  .top .fv-image {
    width: 95%;
    height: auto;
    margin: 50px auto 0;
  }

  .top .fv-logotype {
    width: 250px;
    margin: 50px 0 0 20px;
  }

  .top .nav {
    height: auto;
    flex-direction: column;
    align-items: flex-start;
    margin-top: 20px;
  }

  .top .nav li {
    margin-left: 20px;
  }

  section.we-are-vision .vision-image {
    width: 300px;
  }

  section.we-are-vision {
    width: calc(100% - 40px);
    flex-direction: row;
    flex-wrap: wrap;
    margin: 60px auto 20px;
  }

  section.we-are-vision .vision-image {
    width: 100%;
    height: 260px;
  }

  section.we-are-vision .section-title {
    margin-right: 10px;
    position: relative;
    transform: translate(-7px, -60px);
  }

  section.we-are-vision .section-content {
    width: calc(100% - 70px);
  }

  section.we-are-vision .section-content .about-text h3 {
    margin-bottom: 20px;
  }

  section.we-are-vision .section-content .about-text p {
    font-size: 1.4rem;
  }

  section.we-are-vision .section-content .about-text p br {
    display: none;
  }

  .marquee {
    margin-bottom: 40px;
  }

  .marquee__wrapper {
    padding-bottom: 2px;
  }

  .marquee__text {
    font-size: 2.4rem;

  }

  section.service-intro .service-list.col2 .box,
  section.service-intro .service-list.col2 .box:nth-of-type(1) {
    width: 100%;
    margin-right: 0;
  }

  section.service-intro .service-list.col2 .box:nth-of-type(1) {
    margin-bottom: 40px;
  }

  section.service-intro .service-list .box img {
    width: 100%;
    max-width: 250px;
  }

  section.service-intro .service-list .box:nth-of-type(2) img {
    height: auto;
    aspect-ratio: 2.5/1;
  }

  section.partner-intro {
    margin-top: 60px;
  }

  footer .contact-intro .circle-btn p {
    font-size: 1.5rem;
  }

  section.other-service-intro .side-more {
    height: 340px;
    top: 45px;
  }

  .news-list .news-list-item {
    flex-direction: column;
    align-items: flex-start;
    padding: 10px 0;
  }

  .news-list .news-list-item p {
    font-size: 1.3rem;
    padding: 0 10px;
  }

  .news-list .news-list-item p:after {
    display: none;
  }

  .news-list .news-list-item h3 {
    font-size: 1.3rem;
    padding: 0 10px;
  }

  section.partner-intro .fix-width {
    padding: 20px 0 0;
  }

  /* page */
  .page-title {
    padding-top: 120px;
  }

  .page-title h1 {
    font-size: 2.8rem;
  }

  .page-fv-bg {
    height: 600px;
    background-position: 38% top;
  }

  .page-fv-bg img {
    width: 180px;
    margin-top: -30px;
  }

  .page.about .page-fv-bg img {
    margin-top: 30px;
  }

  /* about */
  .about-us-wrapper .about-us-inner {
    padding: 40px 30px;
  }

  .about-us-wrapper .about-us-inner .about-us-logo {
    width: 250px;
  }

  .page.about::before {
    width: 200px;
    transform: translateX(-230px) rotate(180deg);
    top: 500px;
  }

  .page.about::after {
    width: 430px;
    transform: translateX(280px) rotate(180deg);
  }

  .mvv-wrapper h2 {
    margin-bottom: 10px;
  }

  .mvv-wrapper .mission-value-wrapper ul li {
    font-size: 1.7rem;
    padding-left: 25px;
    margin-left: 2px;
  }

  .mvv-wrapper .mission-value-wrapper ul li:after {
    width: 12px;
    height: 12px;
    transform: translateY(-45%);
  }

  .purpose-detail {
    margin-top: 40px;
  }

  .purpose-detail .box {
    width: 100%;
    margin-right: 0;
  }

  .purpose-detail .box:nth-of-type(1) {
    display: flex;
    flex-direction: column-reverse;
    align-items: center;
    justify-content: flex-start;
    margin-bottom: 90px;
  }

  .purpose-detail .box:nth-of-type(1) .info {
    margin-bottom: 20px;
  }

  .purpose-circle {
    width: 80%;
    margin: 0 auto;
  }

  .member-wrapper .col4 .box {
    width: calc(50% - 10px);
    margin-right: 20px;
    margin-bottom: 20px;
  }

  .member-wrapper .col4 .box:nth-of-type(2n) {
    margin-right: 0;
  }

  .member-wrapper .col4 .box img {
    margin-bottom: 0;
  }

  .member-wrapper .col4 .box h3 {
    margin-bottom: 0;
    font-size: 1.6rem;
  }

  .member-wrapper .card-list .box .role {
    font-size: 1rem;
  }

  .member-modal-wrapper .swiper-container .swiper-slide {
    width: calc(100% - 80px);
    margin: 0 10px;
  }

  .member-modal-wrapper .swiper-prevnext {
    display: none;
  }

  .member-modal-wrapper .swiper-container .swiper-slide .top-inner {
    height: 200px;
  }

  .member-modal-wrapper .swiper-container .swiper-slide .role {
    top: 15px;
    right: 15px;
  }

  .member-modal-wrapper .swiper-container .swiper-slide .role p {
    font-size: 1.2rem;
  }

  .member-modal-wrapper .swiper-container .swiper-slide .name {
    left: 15px;
  }

  .member-modal-wrapper .swiper-container .swiper-slide .furigana {
    left: 20px;
  }

  .member-modal-wrapper .swiper-container .swiper-slide .bottom-inner {
    padding: 10px 20px 20px;
  }

  .member-modal-wrapper .swiper-container .swiper-slide .top-inner .member-image-wrapper {
    width: 180px;
  }

  .member-modal-wrapper .swiper-container .swiper-slide .bottom-inner p {
    font-size: 1.2rem;
  }

  /* service  */
  .other-service-list-wrapper .col2 .box:nth-of-type(1) {
    width: 220px;
    margin: 0 auto 30px;
  }

  .other-service-list-wrapper .col2 .box:nth-of-type(2) {
    width: 100%;
  }

  .other-service-list-wrapper .col3 .box {
    width: 100%;
    margin-right: 0;
    margin-bottom: 50px;
  }

  .other-service-list-wrapper .col3 .box img {
    max-width: 280px;
    aspect-ratio: initial;
    margin-bottom: 20px;
  }

  .other-service-list-wrapper .col3 .box h3 {
    font-size: 2.1rem;
  }


  /* service detail */
  .service-page-fv-bg {
    height: 300px;
    top: -10px;
  }

  .page.service-detail .page-fv .page-title .catchcopy {
    font-size: 1.5rem;
  }

  .page.service-detail .page-fv .page-title {
    margin-bottom: 0px;
  }

  .page.service-detail .page-fv .page-title h1 {
    font-size: 4.55rem;
  }

  .service-main-desc-wrapper .service-main-inner {
    flex-wrap: wrap;
    flex-direction: column-reverse;
  }

  .service-main-desc-wrapper .box.service-logo {
    width: 150px;
    margin: 0 auto 30px;
  }

  .service-main-desc-wrapper .box.section-content {
    width: 100%;
    margin-right: 0;
  }

  .service-main-desc-wrapper .box.section-content h2 {
    font-size: 1.8rem;
    text-align: center;
    letter-spacing: 0;
    margin-bottom: 20px;
  }

  .service-point-wrapper {
    padding-bottom: 100px;
    margin-bottom: 0px;
  }

  .service-point-brdr-inner {
    padding-top: 40px;
  }

  .service-point-wrapper .section-title {
    left: 0;
    right: 0;
    margin: 0 auto;
  }

  .service-point-wrapper .service-title {
    font-size: 3.2rem;
    writing-mode: vertical-lr;
    top: 25px;
    right: auto;
    left: -13px;
  }

  .service-point-wrapper .fix-width {
    width: calc(100% - 20px);
  }

  .schedule-wrapper .fix-width {
    margin-left: 0;
  }

  .schedule-scroll-container {
    width: calc(100% - 70px);
    padding-top: 30px;
    padding-right: 100px;
  }

  .schedule-title {
    width: 130px;
    font-size: 1.6rem;
    top: 40px;
    left: 10px;
  }

  .schedule-list .box {
    width: 300px;
  }

  .schedule-list .box .inner {
    width: calc(100% - 100px);
    margin: 40px auto 0;
  }

  .schedule-list .box .num {
    font-size: 4.2rem;
    margin-bottom: 5px;
  }

  .schedule-list .box .inner h3 {
    font-size: 1.6rem;
    margin-bottom: 10px;
  }

  .schedule-list .box p {
    font-size: 1.2rem;
  }

  .target-inner {
    padding: 5px 10px 0;
  }

  .target-inner .col2 .box {
    width: 100%;
    margin-right: 0;
    margin-bottom: 20px;
  }

  .service-target-wrapper h3 span {
    display: block;
    margin-bottom: 10px;
  }

  .target-inner.other-purpose ul {
    margin-bottom: 0;
  }

  .challenge-title * {
    font-size: 4rem;
  }

  .challenge-title>span {
    width: auto;
    margin-left: 50px;
  }

  .challenge-title img {
    width: 30px;
    height: 110px;
    position: absolute;
    top: 0;
    left: 0;
    bottom: 0;
    margin: auto 0;
  }

  .challenge-title h2 {
    line-height: 1;
    width: 230px;
    margin-left: 50px;
  }

  .next-challenge-wrapper .section-content {
    padding-bottom: 0px;
  }

  .next-challenge-wrapper .section-content h3 {
    font-size: 1.8rem;
  }

  .next-challenge-wrapper .challenge-list .box {
    width: 100%;
    margin-right: 0;
  }

  .field-partner-wrapper {
    padding: 0;
  }

  section.partner-intro .fix-width .section-title {
    font-size: 2.4rem;
    letter-spacing: 0rem;
  }

  section.partner-intro .fix-width h3 {
    font-size: 1.8rem;
  }

  .field-partner-wrapper .box.merit-list {
    margin-top: 40px;
  }

  section.partner-intro .fix-width .btn-wrapper {
    text-align: center;
  }

  .field-partner-wrapper .box.merit-list ul li:nth-last-of-type(1) {
    margin-bottom: 0;
  }

  /* sand-lab */
  .page.sand-lab .service-main-desc-wrapper .box.service-logo {
    width: 240px;
    margin-top: 0px;
  }

  /* partner */
  .partner-main-wrapper .fix-width {
    margin-top: 40px;
    padding-bottom: 40px;
  }

  .partner-main-wrapper .fix-width .section-content h2 {
    font-size: 2.4rem;
  }

  .partner-main-wrapper .fix-width .section-content h3 {
    font-size: 1.8rem;
  }

  .partner-nav-wrapper .partner-nav-list {
    max-width: 280px;
  }

  .partner-nav-wrapper .partner-nav-list .box {
    width: 100%;
    margin-right: 0;
  }

  .partner-nav-wrapper .partner-nav-list .box p.partner-name {
    font-size: 1.6rem;
    padding-top: 13px;
    padding-bottom: 10px;
  }

  .partner-nav-wrapper .partner-nav-list .box::after {
    width: 13px;
  }

  .partner-detail .section-title {
    font-size: 2.4rem;
  }

  .partner-detail .partner-info {
    margin-top: 30px;
  }

  .partner-detail .partner-info .btn-wrapper {
    text-align: center;
    margin-top: 10px;
  }

  .partner-detail .partner-info .box,
  .partner-detail .partner-info .box:nth-of-type(1) {
    width: 100%;
    margin-right: 0;
  }

  .partner-detail .partner-info .box:nth-of-type(2) {
    margin: 30px auto 0;
  }

  .partner-detail .partner-info .box h3 {
    font-size: 1.8rem;
  }

  .partner-detail .partner-info .box h3 br {
    display: block;
  }

  .partner-detail .partner-info .box p br {
    display: none;
  }

  .merit-offer-wrapper h3 {
    font-size: 4rem;
  }

  .merit-offer-wrapper:after {
    height: calc(100% - 32px);
    top: 32px;
  }

  .merit-offer-wrapper .section-content {
    padding-top: 15px;
    padding-bottom: 25px;
  }

  .merit-offer-wrapper .section-content .merit-list .box h4 {
    font-size: 1.5rem;
  }

  .merit-offer-wrapper .section-content .merit-list .box ul li {
    font-size: 1.3rem;
    margin: 0 15px;
  }

  .news-list-wrapper .col3 .box {
    width: calc(100% - 30px);
    margin: 0 auto 30px;
  }
}