/*
Theme Name: My Custom Theme
*/
: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.link {
  display: inline-block;
  font-weight: 500;
  color: var(--main-blue);
  border-bottom: 1px solid var(--main-blue);
  margin-top: 10px;
}

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, "zen-kaku-gothic-new",
    "游ゴシック体",
    YuGothic,
    "游ゴシック",
    "Yu Gothic",
    "Hiragino Kaku Gothic ProN",
    "Hiragino Sans",
    Meiryo,
    sans-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.js-fade-section,
.mvv-wrapper .mission-inner.js-fade-section,
.mvv-wrapper .value-inner.js-fade-section {
  opacity: 0;
  transform: translate3d(0, 46px, 0) scale(0.99);
  transition:
    opacity 1.05s cubic-bezier(0.2, 0.8, 0.2, 1),
    transform 1.05s cubic-bezier(0.2, 0.8, 0.2, 1);
  will-change: opacity, transform;
}

section.js-fade-section.is-show,
.mvv-wrapper .mission-inner.js-fade-section.is-show,
.mvv-wrapper .value-inner.js-fade-section.is-show {
  opacity: 1;
  transform: translate3d(0, 0, 0) scale(1);
}

@media (prefers-reduced-motion: reduce) {

  section.js-fade-section,
  .mvv-wrapper .mission-inner.js-fade-section,
  .mvv-wrapper .value-inner.js-fade-section {
    transition: none;
    transform: none;
  }

  section.js-fade-section.is-show,
  .mvv-wrapper .mission-inner.js-fade-section.is-show,
  .mvv-wrapper .value-inner.js-fade-section.is-show {
    opacity: 1;
  }
}

.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;
}

br.pc-only {
  display: block;
}

br.sp-only {
  display: none;
}

/*個別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;
  height: 100dvh;
  position: fixed;
  top: 0;
  left: 0;
  z-index: 4000;
  background: no-repeat center center / cover url(assets/img/common/menu-bg.png);
  background-color: var(--main-blue);
  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;
  height: 100dvh;
  position: relative;
}

.top .fv-illustration {
  --fv-base-w: 947.28466796875;
  --fv-base-h: 588.30419921875;
  width: min(85vw, calc(75dvh * (var(--fv-base-w) / var(--fv-base-h))));
  aspect-ratio: var(--fv-base-w) / var(--fv-base-h);
  position: absolute;
  top: 0;
  left: 0;
  right: 0;
  bottom: 0;
  margin: auto;
  max-width: 1123.8599853515625px;
  max-height: 684.5099487304688px;
  pointer-events: none;
}

.top .fv-illustration .fv-image-base {
  width: 100%;
  height: 100%;
  object-fit: contain;
  object-position: center center;
  display: block;
}

.top .fv-illustration .fv-deco {
  position: absolute;
  transform: translate3d(0, 0, 0);
  transform-origin: center bottom;
  will-change: transform;
}

.top .fv-illustration .fv-deco.is-hopping {
  animation: fv-pyoko 0.66s cubic-bezier(0.22, 0.61, 0.36, 1) 1;
}

.top .fv-illustration .fv-deco--traveler-with-suitcase {
  left: 0.13%;
  top: 30.93%;
  width: 5.73%;
  --pyoko-delay: 0.37s;
  --pyoko-duration: 3.3s;
  --pyoko-amp: 10px;
}

.top .fv-illustration .fv-deco--person-with-flowers {
  left: 22.57%;
  top: 33.74%;
  width: 3.08%;
  --pyoko-delay: 0.74s;
  --pyoko-duration: 2.8s;
  --pyoko-amp: 7px;
}

.top .fv-illustration .fv-deco--running-man-alt {
  left: 62.93%;
  top: 54.93%;
  width: 4.53%;
  --pyoko-delay: 1.11s;
  --pyoko-duration: 3.5s;
  --pyoko-amp: 10px;
}

.top .fv-illustration .fv-deco--laptop-walk-right {
  left: 6.79%;
  top: 38.42%;
  width: 3.5%;
  --pyoko-delay: 1.48s;
  --pyoko-duration: 3.0s;
  --pyoko-amp: 7px;
}

.top .fv-illustration .fv-deco--laptop-walk-left {
  left: 82.66%;
  top: 22.56%;
  width: 3.38%;
  --pyoko-delay: 1.85s;
  --pyoko-duration: 3.7s;
  --pyoko-amp: 10px;
}

.top .fv-illustration .fv-deco--jumping-person-with-ball {
  left: 66.71%;
  top: 24.66%;
  width: 6.93%;
  --pyoko-delay: 0.12s;
  --pyoko-duration: 3.2s;
  --pyoko-amp: 7px;
}

.top .fv-illustration .fv-deco--woman-with-hotair-balloon {
  left: 8.74%;
  top: 6.89%;
  width: 5.47%;
  --pyoko-delay: 0.49s;
  --pyoko-duration: 2.7s;
  --pyoko-amp: 10px;
}

.top .fv-illustration .fv-deco--running-woman-side {
  left: 39.2%;
  top: 50.40%;
  width: 3.50%;
  --pyoko-delay: 0.86s;
  --pyoko-duration: 3.4s;
  --pyoko-amp: 7px;
}

.top .fv-illustration .fv-deco--roundtable-meeting-scene {
  left: 41.35%;
  top: 20.38%;
  width: 18.21%;
  --pyoko-delay: 1.23s;
  --pyoko-duration: 2.9s;
  --pyoko-amp: 10px;
}

.top .fv-illustration .fv-deco--jumping-people-scene {
  left: 45%;
  top: 60%;
  margin: auto;
  width: 11.11%;
  --pyoko-delay: 1.60s;
  --pyoko-duration: 3.6s;
  --pyoko-amp: 7px;
}

.top .fv-illustration .fv-deco--woman-with-phone-alt {
  left: 78.56%;
  top: 35.93%;
  width: 3.70%;
  --pyoko-delay: 1.97s;
  --pyoko-duration: 3.1s;
  --pyoko-amp: 10px;
}

.top .fv-illustration .fv-deco--wheelchair-support-scene {
  left: 35.56%;
  top: 3.93%;
  width: 6.70%;
  --pyoko-delay: 0.24s;
  --pyoko-duration: 2.6s;
  --pyoko-amp: 7px;
}

.top .fv-illustration .fv-deco--running-man {
  left: 30.81%;
  top: 10.16%;
  width: 4.02%;
  --pyoko-delay: 0.61s;
  --pyoko-duration: 3.3s;
  --pyoko-amp: 10px;
}

.top .fv-illustration .fv-deco--woman-holding-ball {
  left: 45.38%;
  top: -3.52%;
  width: 2.54%;
  --pyoko-delay: 0.98s;
  --pyoko-duration: 2.8s;
  --pyoko-amp: 7px;
}

.top .fv-illustration .fv-deco--diving-man {
  left: 20.50%;
  top: 53.11%;
  width: 6.2%;
  --pyoko-delay: 1.35s;
  --pyoko-duration: 3.5s;
  --pyoko-amp: 10px;
}

.top .fv-illustration .fv-deco--helping-pair {
  left: 11.53%;
  top: 55.00%;
  width: 5.27%;
  --pyoko-delay: 1.72s;
  --pyoko-duration: 3.0s;
  --pyoko-amp: 7px;
}

.top .fv-illustration .fv-deco--woman-with-phone {
  left: 19.56%;
  top: 22.99%;
  width: 3.67%;
  --pyoko-delay: 2.09s;
  --pyoko-duration: 3.7s;
  --pyoko-amp: 10px;
}

.top .fv-illustration .fv-deco--woman-with-gear-ball {
  left: 75.50%;
  top: 24.20%;
  width: 2.54%;
  --pyoko-delay: 0.36s;
  --pyoko-duration: 3.2s;
  --pyoko-amp: 7px;
}

.top .fv-illustration .fv-deco--running-woman-back {
  left: 58%;
  top: 7.53%;
  width: 3%;
  --pyoko-delay: 0.73s;
  --pyoko-duration: 2.7s;
  --pyoko-amp: 10px;
}

.top .fv-illustration .fv-deco--running-man-with-phone {
  left: 10.30%;
  top: 28.91%;
  width: 5%;
  --pyoko-delay: 1.10s;
  --pyoko-duration: 3.4s;
  --pyoko-amp: 7px;
}

.top .fv-illustration .fv-deco--woman-holding-ball-front {
  left: 73.66%;
  top: 12.03%;
  width: 3.31%;
  --pyoko-delay: 1.47s;
  --pyoko-duration: 2.9s;
  --pyoko-amp: 10px;
}

.top .fv-illustration .fv-deco--woman-holding-ball-alt {
  left: 90.39%;
  top: 22.75%;
  width: 4%;
  --pyoko-delay: 1.84s;
  --pyoko-duration: 3.6s;
  --pyoko-amp: 7px;
}

.top .fv-illustration .fv-deco--woman-with-balloon {
  left: 16.53%;
  top: 36.11%;
  width: 4%;
  --pyoko-delay: 0.11s;
  --pyoko-duration: 3.1s;
  --pyoko-amp: 10px;
}

.top .fv-illustration .fv-deco--dog-walking-man {
  left: 22.87%;
  top: 8%;
  width: 7.44%;
  --pyoko-delay: 0.48s;
  --pyoko-duration: 2.6s;
  --pyoko-amp: 7px;
}

.top .fv-illustration .fv-deco--walking-men-pair {
  left: 45.66%;
  top: 41.64%;
  width: 6.76%;
  --pyoko-delay: 0.85s;
  --pyoko-duration: 3.3s;
  --pyoko-amp: 10px;
}

.top .fv-illustration .fv-deco--crouching-businessman {
  left: 16.23%;
  top: 48.99%;
  width: 3%;
  --pyoko-delay: 1.22s;
  --pyoko-duration: 2.8s;
  --pyoko-amp: 7px;
}

.top .fv-illustration .fv-deco--cheering-pair-scene {
  left: 72.65%;
  top: 48.24%;
  width: 7%;
  --pyoko-delay: 1.96s;
  --pyoko-duration: 3.0s;
  --pyoko-amp: 7px;
}

.top .fv-illustration .fv-deco--office-building-scene {
  left: 20.51%;
  top: 51.06%;
  width: 15.27%;
  --pyoko-delay: 0.23s;
  --pyoko-duration: 3.7s;
  --pyoko-amp: 10px;
}

.top .fv-illustration .fv-deco--table-carry-pair {
  left: 60.59%;
  top: 15.89%;
  width: 10%;
  --pyoko-delay: 0.60s;
  --pyoko-duration: 3.2s;
  --pyoko-amp: 7px;
}

.top .fv-illustration .fv-deco--startup-launch-scene {
  left: 27.27%;
  top: 23.11%;
  width: 12.23%;
  --pyoko-delay: 0.97s;
  --pyoko-duration: 2.7s;
  --pyoko-amp: 10px;
}

.top .fv-illustration .fv-deco--person-with-bouquet {
  left: 88.56%;
  top: 35.28%;
  width: 5%;
  --pyoko-delay: 1.34s;
  --pyoko-duration: 3.4s;
  --pyoko-amp: 7px;
}

.top .fv-illustration .fv-deco--speech-bubble {
  left: 46.42%;
  top: 5.27%;
  width: 8.18%;
  --pyoko-delay: 1.71s;
  --pyoko-duration: 2.9s;
  --pyoko-amp: 10px;
}

.top .fv-illustration .fv-deco--car-and-balloon-scene {
  left: 78.78%;
  top: 55.68%;
  width: 11.72%;
  --pyoko-delay: 2.08s;
  --pyoko-duration: 3.6s;
  --pyoko-amp: 7px;
}

.top .fv-illustration .fv-deco--farming-team-scene {
  left: 76.23%;
  top: 4.39%;
  width: 11.11%;
  --pyoko-delay: 0.35s;
  --pyoko-duration: 3.1s;
  --pyoko-amp: 10px;
}

.top .fv-illustration .fv-deco--community-house-scene {
  left: 57.33%;
  top: -5.69%;
  width: 15.99%;
  --pyoko-delay: 0.72s;
  --pyoko-duration: 2.6s;
  --pyoko-amp: 7px;
}

.top .fv-illustration .fv-deco--flower-shop-scene {
  left: 19.24%;
  top: -1.09%;
  width: 14.57%;
  --pyoko-delay: 1.09s;
  --pyoko-duration: 3.3s;
  --pyoko-amp: 10px;
}

.top .fv-illustration .fv-deco--workshop-team-scene {
  left: 59.32%;
  top: 35.66%;
  width: 11.94%;
  --pyoko-delay: 1.46s;
  --pyoko-duration: 2.8s;
  --pyoko-amp: 7px;
}

@keyframes fv-pyoko {
  0% {
    transform: translate3d(0, 0, 0);
    animation-timing-function: cubic-bezier(0.22, 0.61, 0.36, 1);
  }

  42% {
    transform: translate3d(0, calc(var(--pyoko-amp, 12px) * -1.18), 0);
    animation-timing-function: cubic-bezier(0.12, 0, 0.39, 0);
  }

  76% {
    transform: translate3d(0, calc(var(--pyoko-amp, 12px) * -0.1), 0);
    animation-timing-function: ease-out;
  }

  100% {
    transform: translate3d(0, 0, 0);
  }
}

.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: 0 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 {
  width: 32px;
  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;
}

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>a {
  width: 100%;
  display: flex;
  align-items: center;
  justify-content: flex-start;
}

.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;
}

main.page:not(.sand-lab) .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,
.page.single .page-title h2 {
  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: 20px;
}

.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 60px 0;
}

/* .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;
}

.about-us-wrapper .about-us-inner .section-content .viison-inner {
  margin-top: 60px;
}

.about-us-wrapper .about-us-inner .section-content .viison-inner h3 {
  margin-bottom: 4rem;
}

.about-us-wrapper .about-us-inner .section-content .viison-inner p {
  font-size: 1.6rem;
  line-height: 2;
  margin-bottom: 1em;
}

.about-us-wrapper .about-us-inner .section-content .viison-inner h2,
.mvv-wrapper h2 {
  color: var(--sub-blue);
  text-align: left;
  letter-spacing: 0.2rem;
  margin-bottom: 20px;
}

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

.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;
  height: 100dvh;
  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 {
  width: calc(100% - 60px);
  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;
  /* サイト共通の和文フォント（YakuHan / Typekit）を使わず OS ネイティブ系で表示 */
  font-family: "Hiragino Kaku Gothic ProN", "Hiragino Sans", "Yu Gothic", YuGothic, Meiryo, sans-serif;
  font-feature-settings: normal;
}

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

.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 (min-width: 480px) {
  @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.large-col {
  align-items: center;
  margin: 60px auto;
}

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

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

.other-service-list-wrapper .col2.large-col .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.large-col.steamdays-nr .box img {
  max-width: 320px;
}

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

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

.other-service-list-wrapper .col2.large-col .box .inner-brdr {
  margin: 20px auto 0;
  padding: 20px 30px;
  position: relative;
  border-radius: 20px;
}

.other-service-list-wrapper .col2.large-col .box .inner-brdr::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;
}

.other-service-list-wrapper .col2.large-col .box .inner-brdr h4 {
  margin-bottom: 5px;
  font-size: 1.8rem;
}

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

.other-service-list-wrapper .col2.normal .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.normal .box h3 {
  font-size: 2.1rem;
}

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

.other-service-list-wrapper .col2.normal .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-movie .service-movie-list {
  margin-top: 60px;
}

.service-movie .service-movie-list .box {
  margin-bottom: 40px;
}

.service-movie .service-movie-list .box iframe {
  width: 100%;
  aspect-ratio: 16/9;

}

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

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

.service-main-desc-wrapper .box.section-content .logo {
  width: 150px;
  margin-bottom: 50px;
}

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


.service-main-desc-wrapper .box.section-content h2 {
  font-size: 2.5rem;
  letter-spacing: 0.1rem;
}

.service-main-desc-wrapper .box.service-image {
  width: 400px;
}

.service-main-desc-wrapper .box.service-image img {
  width: 100%;
  height: 100%;
  object-fit: contain;
  object-position: center center;
  margin-top: 40px;
}

.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: 60px auto 0;
}

.page.sand-lab .service-structure-wrapper img {
  max-width: 520px;
}

.service-structure-wrapper .sub-desc-wrapper {
  padding: 30px 20px 0;
  max-width: 640px;
  margin: 50px auto 0;
  border-top: 1px solid;
  border-image: var(--btn-grd) 1;
}

.service-structure-wrapper .sub-desc-wrapper h3 {
  font-size: 1.6rem;
  border-bottom: none;
  margin-bottom: 10px;
}

.service-structure-wrapper .sub-desc-wrapper p {
  font-size: 1.3rem;
}

.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;
  align-items: flex-start;
}

.service-voice-wrapper .swiper-slide span,
.service-voice-wrapper .swiper-slide h3 {
  text-align: left;
}

.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((100% / 2) - 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;
}

.partner-detail .program-detail-inner {
  margin-bottom: 80px;
}

.partner-detail .program-detail-inner .box img {
  width: 150px;
  height: 150px;
  object-fit: contain;
  object-position: center center;
  margin: 0 auto 30px;
}

.partner-detail .program-detail-inner .box:nth-of-type(2) img {
  width: 250px;
}

.partner-detail .program-detail-inner .box h4 {
  font-size: 2.8rem;
  text-align: center;
}

.partner-detail .program-detail-inner .box .btn {
  margin-right: 10px;
}

.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-wrapper {
  display: flex;
  align-items: flex-start;
  justify-content: center;
  flex-wrap: wrap;
}

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

.merit-offer-wrapper .section-content .merit-list-wrapper .merit-list {
  max-width: 420px;
  margin: 0 20px;
}

.merit-offer-wrapper .section-content .merit-list-wrapper h3 {
  font-size: 2.4rem;
}

.merit-offer-wrapper .section-content .merit-list-wrapper h3 span {
  font-size: 0.7em;
}

.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 .news-cat-nav {
  margin-bottom: 64px;
}

.news-list-wrapper .news-cat-nav-list {
  list-style: none;
  margin: 0;
  padding: 0;
  display: flex;
  flex-wrap: wrap;
  gap: 10px 12px;
  align-items: center;
}

.news-list-wrapper .news-cat-nav-list li {
  margin: 0;
  padding: 0;
}

.news-list-wrapper .news-cat-nav-list a {
  display: inline-block;
  font-size: 1.4rem;
  font-weight: 500;
  color: var(--main-blue);
  padding: 8px 8px;
  border: none;
  text-decoration: none;
  transition: opacity 0.25s var(--st-easing);
}

.news-list-wrapper .news-cat-nav-list a:hover,
.news-list-wrapper .news-cat-nav-list a:focus-visible {
  opacity: 0.7;
}

.news-list-wrapper .news-cat-nav-list a.is-current {
  color: var(--main-blue);
  background: none;
  border: none;
  border-bottom: 1px solid var(--main-blue);
  padding-bottom: 6px;
}

.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: 0;
  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(0);
}

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

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

.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;
}

/*ページネーション*/
.pagination {
  display: flex;
  align-items: center;
  justify-content: center;
  margin: 40px auto 0;
}

.pagination .next-link {
  display: inline-block;
  width: 24px;
  padding: 5px;
  position: relative;
  border: none;
}

.pagination .prev-link {
  display: inline-block;
  width: 24px;
  padding: 5px;
  position: relative;
  border: none;
}

.pagination .next-link.hide,
.pagination .prev-link.hide {
  opacity: 0;
  pointer-events: none;
}

.pagination a,
.pagination span {
  display: inline-block;
  font-size: 1.8rem;
  color: var(--main-blue);
  text-indent: 0;
  padding: 2px;
  margin: 0 5px;
  border: none;
  text-align: center;
}

.pagination span.current {
  font-weight: normal;
  border-bottom: 1px solid var(--main-blue);
}

/* single / news detail */
.page.single .page-title {
  margin-bottom: 90px;
}

.hero-image-wrapper {
  height: 250px;
  overflow: hidden;
  margin: 0;
  padding: 0;
}

.hero-image-wrapper img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: center center;
  position: relative;
  z-index: 1;
  filter: grayscale(100);
  margin: 0;
}

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

.single-main-wrapper .single-content-inner {
  max-width: 800px;
  margin: 0 auto;
}

.single-main-wrapper .single-content-inner .date-cat {
  display: flex;
  align-items: center;
  flex-wrap: wrap;
  gap: 0 0.5rem;
}

.single-main-wrapper .single-content-inner .date-cat p {
  display: inline-block;
  font-size: 1.6rem;
  line-height: 1;
  font-weight: 500;
}

.single-main-wrapper .single-content-inner .date-cat p.date {
  padding-right: 30px;
  position: relative;
}

.single-main-wrapper .single-content-inner .date-cat p.date:after {
  width: 1px;
  height: 100%;
  background-color: var(--main-blue);
  content: "";
  position: absolute;
  top: 0;
  right: 15px;
}

.single-main-wrapper .single-content-inner h1 {
  font-size: 2.8rem;
  margin: 30px 0;
}

/* 記事全体のフォント・行間設定 */
.entry-content {
  line-height: 1.8;
  letter-spacing: 0.03em;
  word-break: break-word;
  /* 長い英単語の突き抜け防止 */
  color: #333;
}

/* 見出し */
.entry-content h2 {
  font-size: 2.8rem;
  margin: 3rem 0 1.5rem;
  color: var(--main-blue);
  font-weight: 500;
}

.entry-content h3 {
  font-size: 2.1rem;
  margin: 2.5rem 0 1.2rem;
  border-bottom: 2px solid #eee;
  padding-bottom: 0.5rem;
  color: var(--main-blue);
  font-weight: 500;
}

/* 本文・リスト（.wp-block-list を除き、VK Blocks 等のブロックリストはテーマで上書きしない） */
.entry-content p {
  margin-bottom: 1.8rem;
}

.entry-content ul:not(.wp-block-list) {
  list-style: none;
  /* 標準のドットを非表示にする */
  padding: 0;
  margin: 0 0 1.8rem 0.5rem;
  /* 全体の位置調整 */
}

.entry-content ul:not(.wp-block-list) li {
  position: relative;
  padding-left: 1.5rem;
  /* ドットのスペースを確保 */
  line-height: 1.8;
  /* 記事本文と合わせる */
  margin-bottom: 0.6rem;
  font-size: 1.5rem;
  color: var(--main-blue);
}

/* 擬似要素でドットを作成 */
.entry-content ul:not(.wp-block-list) li::before {
  content: "";
  position: absolute;
  left: 0;
  top: 1.9em;
  width: 5px;
  height: 5px;
  background-color: var(--main-blue);
  border-radius: 50%;
}

/* ブロックリスト（コア / VK Blocks）— 本文と揃えたタイポ・余白・階層 */
.entry-content ul.wp-block-list,
.entry-content ol.wp-block-list {
  box-sizing: border-box;
  margin: 0 0 2rem 0;
  list-style-position: outside;
  padding-left: 2.25rem;
  padding-right: 0;
  color: var(--main-blue);
}

.entry-content ul.wp-block-list {
  list-style-type: disc;
}

.entry-content ol.wp-block-list {
  list-style-type: decimal;
}

.entry-content ul.wp-block-list.has-background,
.entry-content ol.wp-block-list.has-background {
  padding: 1.65rem 1.65rem 1.65rem 2.85rem;
}

.entry-content .wp-block-list li {
  margin: 0 0 0.7em 0;
  font-size: 1.5rem;
  line-height: 1.8;
  letter-spacing: 0.03em;
  color: var(--main-blue);
}

.entry-content .wp-block-list li:last-child {
  margin-bottom: 0;
}

.entry-content .wp-block-list li>p {
  margin: 0 0 0.55em 0;
  font-size: inherit;
  line-height: inherit;
  letter-spacing: inherit;
  color: inherit;
}

.entry-content .wp-block-list li>p:last-child {
  margin-bottom: 0;
}

.entry-content .wp-block-list .wp-block-list {
  margin-top: 0.85em;
  margin-bottom: 0.85em;
}

/* 画像・メディア：はみ出し防止 */
.entry-content figure {
  margin-bottom: 20px;
}

.entry-content img {
  max-width: 100%;
  height: auto;
  vertical-align: middle;
}

/* 埋め込み（YouTube / Google フォーム等）：本文内で確実に表示 */
.entry-content .wp-block-embed,
.entry-content .wp-block-embed__wrapper {
  max-width: 100%;
}

.entry-content .wp-block-embed iframe,
.entry-content iframe {
  max-width: 100%;
  width: 100%;
  vertical-align: middle;
}

.entry-content .wp-block-embed.is-type-video iframe,
.entry-content .wp-block-embed.is-provider-youtube iframe {
  aspect-ratio: 16 / 9;
  height: auto;
}

/* キャプション（WP標準・ブロックの wp-element-caption） */
.entry-content figcaption,
.entry-content figcaption.wp-element-caption {
  font-size: 1.4rem;
  line-height: 1.8;
  letter-spacing: 0.03em;
  font-weight: 400;
  color: var(--main-blue);
  text-align: center;
  margin-top: 0.5rem;
}

/* 引用（blockquote） */
.entry-content blockquote {
  margin: 2rem 0;
  padding: 1.5rem;
  background: #fdfdfd;
  border: 1px solid #eee;
  border-left: 4px solid #ccc;
  font-style: italic;
  color: #555;
}

/* テーブル：スマホでの崩れ防止 */
.entry-content table {
  width: 100%;
  margin-bottom: 1.8rem;
  border-collapse: collapse;
}

.entry-content th,
.entry-content td {
  padding: 0.8rem;
  border: 1px solid #ddd;
  font-size: 0.95rem;
}

/* コードブロック */
.entry-content pre {
  background: #2d2d2d;
  color: #ccc;
  padding: 1rem;
  overflow-x: auto;
  border-radius: 5px;
  margin-bottom: 1.8rem;
}

.entry-content .col2 {
  flex-wrap: unset;
  justify-content: space-between;
}

.entry-content .col2>* {
  width: 47.55%;
}

.page.single .page-nav {
  display: flex;
  justify-content: center;
  margin-top: 60px;
  padding-top: 20px;
  border-top: 1px solid var(--main-blue);
  position: relative;
}

.page.single .page-nav a {
  color: var(--main-blue);
}

.page.single .page-nav a.prev-btn,
.page.single .page-nav a.next-btn {
  position: absolute;
  top: 20px;
}

.page.single .page-nav a.prev-btn {
  right: 20px;
  padding-right: 30px;
}

.page.single .page-nav a.prev-btn:after {
  content: "";
  width: 10px;
  aspect-ratio: 1/3.8;
  background: no-repeat center center / contain url(assets/img/common/arrow.svg);
  position: absolute;
  right: 0;
  bottom: -6px;
  transform: rotate(0deg);
  margin: 0 auto;
}

.page.single .page-nav a.next-btn {
  left: 20px;
  padding-left: 30px;
}

.page.single .page-nav a.next-btn:after {
  content: "";
  width: 10px;
  aspect-ratio: 1/3.8;
  background: no-repeat center center / contain url(assets/img/common/arrow.svg);
  position: absolute;
  left: 0;
  bottom: -6px;
  transform: rotate(-180deg);
  margin: 0 auto;
}


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

/* CONTACT */
.page.contact .contact-main-wrapper .section-content {
  max-width: 760px;
  margin: 0 auto;
}

.page.contact .contact-desc {
  max-width: 560px;
  margin: 0 auto 40px;
  font-size: 1.5rem;
  line-height: 2;
}

.page.contact .contact-form {
  max-width: 560px;
  margin: 0 auto;
}

.page.contact .contact-form .wpcf7 form {
  display: grid;
  grid-template-columns: 1fr 1fr;
  column-gap: 24px;
  row-gap: 16px;
}

.page.contact .contact-form .wpcf7 form>p,
.page.contact .contact-form .wpcf7 .cf7-row {
  margin: 0;
  grid-column: 1 / -1;
}

.page.contact .contact-form .wpcf7 .cf7-row.half {
  grid-column: span 1;
}

/* Fallback for old CF7 markup without cf7-row classes */
.page.contact .contact-form .wpcf7 form>p:nth-of-type(2) {
  grid-column: 1 / 2;
}

.page.contact .contact-form .wpcf7 form>p:nth-of-type(3) {
  grid-column: 2 / 3;
}

.page.contact .contact-form .wpcf7 .cf7-row.full,
.page.contact .contact-form .wpcf7 .cf7-row.submit {
  grid-column: 1 / -1;
}

.page.contact .contact-form .wpcf7 label {
  display: block;
  font-size: 1.4rem;
  color: var(--main-blue);
}

.page.contact .contact-form .wpcf7 .wpcf7-form-control-wrap {
  display: block;
  margin-top: 8px;
}

.page.contact .contact-form .wpcf7 input[type="text"],
.page.contact .contact-form .wpcf7 input[type="email"],
.page.contact .contact-form .wpcf7 textarea {
  width: 100%;
  border: none;
  border-bottom: 1px solid var(--main-blue);
  background-color: transparent;
  color: var(--main-blue);
  font-size: 1.5rem;
  padding: 6px 0;
  border-radius: 0;
  box-sizing: border-box;
}

.page.contact .contact-form .wpcf7 textarea {
  min-height: 180px;
  border: 1px solid var(--main-blue);
  padding: 10px 12px;
  resize: vertical;
}

.page.contact .contact-form .wpcf7 input:focus,
.page.contact .contact-form .wpcf7 textarea:focus {
  outline: none;
  box-shadow: none;
}

.page.contact .contact-form .wpcf7 input[type="radio"] {
  appearance: none;
  margin-right: 6px;
  margin-top: 0;
  border: 1px solid var(--main-blue);
  border-radius: 50%;
  width: 12px;
  height: 12px;
  position: relative;
}

/* チェックされたラジオボタン内側のスタイル */
.page.contact .contact-form .wpcf7 input[type="radio"]::before {
  background-color: var(--main-blue);
  border-radius: 50%;
  bottom: 0;
  content: "";
  width: 6px;
  height: 6px;
  left: 0;
  margin: auto;
  opacity: 0;
  position: absolute;
  right: 0;
  top: 0;
}

/* チェックされたらラジオボタン内側を表示 */
.page.contact .contact-form .wpcf7 input[type="radio"]:checked::before {
  opacity: 1;
}

.page.contact .contact-form .wpcf7 .wpcf7-list-item {
  margin: 0 20px 8px 0;
}

.page.contact .contact-form .wpcf7 .wpcf7-list-item label {
  display: inline-flex;
  align-items: center;
  font-size: 1.3rem;
}

.page.contact .contact-form .wpcf7 input.wpcf7-submit {
  display: block;
  width: 180px;
  margin: 12px auto 0;
  border: 1px solid var(--sub-blue);
  border-radius: 999px;
  background: #fff;
  color: var(--main-blue);
  font-size: 1.4rem;
  letter-spacing: 0.1rem;
  padding: 12px 0 10px;
  cursor: pointer;
  transition: .3s var(--st-easing);
}

.page.contact .contact-form .wpcf7 input.wpcf7-submit:hover {
  background: var(--sub-blue);
  color: #fff;
}

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 .footer-menu {
  display: inline-block;
}

footer .footer-menu li {
  display: inline-block;
  margin-right: 10px;
}

footer .footer-menu li a {
  font-size: 1.8rem;
  color: #fff;
}

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.partner .page-title,
  .page.news .page-title {
    margin-bottom: 120px;
  }

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

  .page .first-content {
    margin-bottom: 40px;
  }

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

  .mission-value-wrapper.col2 .box:nth-of-type(2) {
    order: 3;
  }

  .mission-value-wrapper.col2 img {
    order: 2;
    margin: 30px 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 .service-main-inner {
    flex-wrap: wrap;
    flex-direction: column;
  }

  .service-main-desc-wrapper .service-main-inner .box,
  .service-main-desc-wrapper .service-main-inner .box.section-content {
    width: 100%;
    max-width: 580px;
    margin: 0 auto;
  }

  .service-main-desc-wrapper .service-main-inner .box.section-content h2 {
    text-align: center;
  }

  .service-main-desc-wrapper .service-main-inner .box.section-content .logo {
    margin: 0 auto 30px;
  }

  .service-main-desc-wrapper .box.service-image img {
    max-width: 400px;
    margin: 40px auto 0;
  }

  .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;
  }

  br.pc-only {
    display: none;
  }

  br.sp-only {
    display: block;
  }

  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;
  }

  header .header-logo {
    margin: 15px 0 0 15px;
  }

  header .menu-btn {
    top: 0px;
    right: 10px;
  }

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

  .top .fv-illustration {
    position: static;
    width: 98%;
    height: auto;
    margin: 50px auto 180px;
    position: relative;
  }

  /* .top .fv-illustration .fv-deco--traveler-with-suitcase {
    left: 2.53%;
    top: 23.93%;
  } */

  .top .fv-logotype {
    width: 80%;
    max-width: 300px;
    margin: 50px 0 0 20px;
    left: 10px;
    bottom: 210px;
  }

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

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

  .top .nav li a {
    font-size: 2.6rem;
    line-height: 1.6;
  }

  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;
  }

  .page.contact .contact-main-wrapper .section-content,
  .page.contact .contact-desc,
  .page.contact .contact-form {
    max-width: 100%;
  }

  .page.contact .contact-form .wpcf7 form {
    grid-template-columns: 1fr;
    row-gap: 12px;
  }

  .page.contact .contact-form .wpcf7 .cf7-row.half,
  .page.contact .contact-form .wpcf7 form>p:nth-of-type(2),
  .page.contact .contact-form .wpcf7 form>p:nth-of-type(3) {
    grid-column: 1 / -1;
  }

  .page.contact .contact-form .wpcf7 .wpcf7-list-item {
    display: inline-block;
    margin-right: 14px;
  }

  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>a {
    flex-direction: column;
    align-items: flex-start;
  }

  .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.contact .page-title {
    padding-top: 60px;
  }

  .page-title h1,
  .page.single .page-title h2 {
    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: 20px 10px;
  }

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

  .about-us-wrapper .about-us-inner .section-content .viison-inner p {
    font-size: 1.4rem;
  }

  .about-us-wrapper .about-us-inner .section-content .viison-inner p br {
    display: none;
  }

  .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-img {
    margin-top: 30px;
  }

  .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;
    letter-spacing: 0.2rem;
  }

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

  .member-modal-wrapper .swiper-container .swiper-slide .name h3 {
    letter-spacing: 0.2rem;
  }

  .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.large-col .box:nth-of-type(1) {
    width: 220px;
    margin: 0 auto 30px;
  }

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

  .other-service-list-wrapper .col2.large-col.steamdays-nr .box {
    width: 100%;
  }

  .other-service-list-wrapper .col2.large-col.steamdays-nr .box img {
    width: calc(100% - 60px);
    aspect-ratio: initial;
  }

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

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

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

  .service-movie .service-movie-list .box {
    width: 100%;
    margin-right: 0;
  }

  /* 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 .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;
  }

  .service-structure-wrapper img {
    margin: 30px auto 0;
  }

  .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;
  }

  .partner-detail .program-detail-inner {
    margin-bottom: 40px;
  }

  .partner-detail .program-detail-inner .box {
    width: 100%;
    margin-right: 0;
    margin-bottom: 20px;
  }

  .partner-detail .program-detail-inner .box:nth-of-type(1) {
    margin-bottom: 50px;
  }

  .partner-detail .program-detail-inner .box:nth-of-type(2) img {
    height: 100px;
  }

  .merit-offer-wrapper .section-content .merit-list-wrapper {
    flex-wrap: wrap;
  }

  .merit-offer-wrapper .section-content .merit-list-wrapper .merit-list {
    width: 100%;
    margin-bottom: 20px;
  }

  .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 .news-cat-nav {
    margin-bottom: 48px;
  }

  .news-list-wrapper .news-cat-nav-list a {
    font-size: 1.3rem;
    padding: 7px 12px;
  }

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

  /* single news detail */
  /* 見出し */
  .single-main-wrapper .single-content-inner h1 {
    font-size: 1.8rem;
  }

  .entry-content h2 {
    font-size: 2.1rem;
    margin: 3rem 0 1.5rem;
  }

  .entry-content h3 {
    font-size: 1.8rem;
    margin: 2.5rem 0 1.2rem;
    border-bottom: 2px solid #eee;
    padding-bottom: 0.5rem;
  }

  .entry-content .wp-block-list li {
    font-size: 1.4rem;
  }

  footer .footer-menu {
    margin-bottom: 30px;
  }
}