@charset "UTF-8";
*,
*::before,
*::after {
  box-sizing: border-box;
}

body,
h1,
h2,
h3,
h4,
p,
figure,
blockquote,
dl,
dd {
  margin: 0;
}

ul,
ol {
  list-style: none;
  margin: 0;
  padding: 0;
}

body {
  min-height: 100vh;
  text-rendering: optimizeSpeed;
  line-height: 1.5;
}

img,
picture {
  max-width: 100%;
  display: block;
}

input,
button,
textarea,
select {
  font: inherit;
}

@media (prefers-reduced-motion: reduce) {
  *,
  *::before,
  *::after {
    animation-duration: 0.01ms !important;
    animation-iteration-count: 1 !important;
    transition-duration: 0.01ms !important;
    scroll-behavior: auto !important;
  }
}
html {
  scroll-behavior: smooth;
  width: 100%;
  overflow-x: hidden;
  font-family: "kozuka-gothic-pr6n", sans-serif;
}

body {
  width: 100%;
  overflow-x: hidden;
  font-family: "kozuka-gothic-pr6n", sans-serif;
  margin: 0;
  padding: 0;
}
body.no-scroll {
  overflow: hidden;
}

* {
  box-sizing: border-box;
  margin: 0;
  padding: 0;
}

ul {
  list-style: none;
}

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

a {
  text-decoration: none;
  color: inherit;
}

:focus-visible {
  outline: 2px solid #cf87ff;
  outline-offset: 4px;
}

.wrap {
  width: 100%;
  max-width: 750px;
  margin: 0 auto;
  text-align: left;
  position: relative;
  background-color: #fff;
  box-shadow: 0 0 20px rgba(0, 0, 0, 0.1);
  overflow: hidden;
}
.wrap .global-side-bg {
  position: absolute;
  top: 0;
  right: 0;
  width: 100%;
  z-index: 1;
}
.wrap .global-side-bg img {
  width: 100%;
  display: block;
  object-fit: cover;
}
.wrap .global-side-bg2 {
  position: relative;
  width: 118.12%;
  z-index: 1;
}
.wrap .global-side-bg2 img {
  position: absolute;
  width: 100%;
  display: block;
  object-fit: cover;
  margin-top: 65%;
  margin-left: -14.7%;
}
.wrap .global-side-bg3 {
  position: relative;
  width: 112.8%;
  z-index: 0;
}
.wrap .global-side-bg3 img {
  position: absolute;
  width: 100%;
  display: block;
  right: 0;
  object-fit: cover;
  margin-top: 83.5%;
}
.wrap .global-side-bg5 {
  position: relative;
  width: 96%;
  max-width: 642px;
  margin-left: -6.1%;
  z-index: 0;
}
.wrap .global-side-bg5 img {
  position: absolute;
  width: 100%;
  display: block;
}

.inner {
  max-width: 90%;
  margin: 0 auto;
}

.kern-1 {
  letter-spacing: -0.1em;
}

.kern-2 {
  letter-spacing: -0.12em;
}

.kern-3 {
  letter-spacing: -0.02em;
}

.kern-4 {
  letter-spacing: -0.06em;
}

h3 {
  font-family: "din-2014-narrow", sans-serif;
  font-size: clamp(32px, 13.2vw, 99px);
  font-weight: 700;
  line-height: 1.06;
  color: #000;
  letter-spacing: 0.01em;
  margin-bottom: 0.5em;
}

h4 {
  font-size: min(7.43vw, 55.73px);
  font-weight: 700;
  line-height: 1.22;
  color: #fff;
  margin-bottom: 0.5em;
}

section p:not([class*=description]):not([class*=card_text]):not([class*=title]):not([class*=data-points]):not([class*=main-logo]):not([class*=sub-copy]):not([class*=message]) {
  font-family: "kozuka-gothic-pr6n", sans-serif;
  font-size: min(3.86vw, 29px);
  font-weight: 400;
  line-height: 2.2;
  color: #000;
  margin-bottom: 20px;
}

.fade-in-up {
  opacity: 0;
  transform: translate3d(0, 40px, 0);
  transition: opacity 0.8s cubic-bezier(0.165, 0.84, 0.44, 1), transform 0.8s cubic-bezier(0.165, 0.84, 0.44, 1);
  will-change: opacity, transform;
}
/* スクロール連動テキストぼかし */
.blur-on-exit {
  transition: filter 0.5s ease, opacity 0.5s ease;
}
.blur-on-exit.is-passed {
  filter: blur(4px);
  opacity: 0.35;
  pointer-events: none;
}
/* 3D チルト */
.num_card,
.service_item {
  transform-style: preserve-3d;
  cursor: default;
}
.clip-reveal {
  clip-path: inset(0 100% 0 0);
  transition: clip-path 0.9s cubic-bezier(0.77, 0, 0.175, 1);
  will-change: clip-path;
}
.clip-reveal.is-visible {
  clip-path: inset(0 0% 0 0);
}
@keyframes glitch-rgb {
  0%, 87%, 100% {
    transform: none;
    filter: none;
  }
  88% {
    transform: translate(-5px, 0);
    filter: drop-shadow(5px 0 0 rgba(255, 0, 60, 0.8)) drop-shadow(-5px 0 0 rgba(0, 220, 255, 0.8));
  }
  89% {
    transform: translate(5px, 0);
    filter: drop-shadow(-5px 0 0 rgba(255, 0, 60, 0.8)) drop-shadow(5px 0 0 rgba(0, 220, 255, 0.8));
  }
  90% {
    transform: translate(-2px, 1px);
    filter: none;
  }
  91% {
    transform: translate(3px, -1px);
    filter: drop-shadow(4px 0 0 rgba(255, 0, 60, 0.6));
  }
  92% {
    transform: none;
    filter: none;
  }
  94% {
    transform: translate(-2px, 0);
    filter: drop-shadow(-5px 0 0 rgba(0, 220, 255, 0.7));
  }
  95% {
    transform: translate(2px, 0);
    filter: drop-shadow(3px 0 0 rgba(255, 0, 60, 0.5)) drop-shadow(-3px 0 0 rgba(0, 220, 255, 0.5));
  }
  96% {
    transform: none;
    filter: none;
  }
}
.glitch {
  animation: glitch-rgb 6s 1s infinite;
  will-change: transform, filter;
}
/* SVG パスドロー */
.path-draw line,
.path-draw polyline {
  stroke-dasharray: 2000;
  stroke-dashoffset: 2000;
  transition: stroke-dashoffset 2s cubic-bezier(0.77, 0, 0.175, 1);
}
.path-draw polygon {
  opacity: 0;
  transition: opacity 0.4s ease 1.7s;
}
.path-draw.is-visible line,
.path-draw.is-visible polyline {
  stroke-dashoffset: 0;
}
.path-draw.is-visible polygon {
  opacity: 1;
}
.text-stagger .line-wrap {
  display: block;
  overflow: hidden;
}
.text-stagger .line-inner {
  display: block;
  transform: translateY(110%);
  transition: transform 0.75s cubic-bezier(0.77, 0, 0.175, 1);
}
.text-stagger.is-visible .line-inner {
  transform: translateY(0);
}
.fade-in-up.slide-left {
  transform: translate3d(-100px, 0, 0);
}
.fade-in-up.slide-right {
  transform: translate3d(100px, 0, 0);
}
.fade-in-up.slide-down {
  transform: translate3d(0, -100%, 0);
}
.fade-in-up.is-visible {
  opacity: 1;
  transform: translate3d(0, 0, 0);
}

.delay-100 {
  transition-delay: 0.1s;
}

.delay-200 {
  transition-delay: 0.2s;
}

.delay-300 {
  transition-delay: 0.3s;
}

.delay-400 {
  transition-delay: 0.4s;
}

.delay-500 {
  transition-delay: 0.5s;
}

.delay-600 {
  transition-delay: 0.6s;
}

.delay-700 {
  transition-delay: 0.7s;
}

.delay-800 {
  transition-delay: 0.8s;
}

.delay-900 {
  transition-delay: 0.9s;
}

.delay-1000 {
  transition-delay: 1s;
}

.js-parallax {
  will-change: transform;
  backface-visibility: hidden;
  transform-style: preserve-3d;
}

.header {
  display: flex;
  justify-content: space-between;
  align-items: center;
  position: fixed;
  top: 0;
  left: 50%;
  transform: translateX(-50%);
  width: 100%;
  max-width: 750px;
  padding: 40px 0;
  z-index: 100;
  color: #000;
  background-color: transparent;
  transition: background-color 0.2s ease, padding 0.2s ease;
}
.header.is-scrolled {
  background-color: rgba(255, 255, 255, 0.9);
  padding-top: 15px;
  padding-bottom: 15px;
  box-shadow: 0 2px 10px rgba(0, 0, 0, 0.05);
}
.header_logo {
  width: 27.3%;
  z-index: 100;
  margin-left: 6.8%;
}
.header_logo img {
  width: 100%;
  display: block;
}
.header_nav {
  display: flex;
  align-items: center;
  margin-right: 5.6%;
}
.header_nav.is-open .icon-bars .bar {
  background-color: #fff;
}
.header_nav.is-open .icon-bars .top {
  height: 3px !important;
  width: 40px !important;
  position: absolute;
  top: 50%;
  left: 50%;
  transform: translate(-50%, -50%) rotate(45deg);
}
.header_nav.is-open .icon-bars .middle {
  opacity: 0;
  transform: scale(0);
}
.header_nav.is-open .icon-bars .bottom {
  height: 3px !important;
  width: 40px !important;
  position: absolute;
  top: 50%;
  left: 50%;
  transform: translate(-50%, -50%) rotate(-45deg);
}
.header_menu-icon {
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  z-index: 110;
  cursor: pointer;
  width: min(5.33vw, 40px);
  margin-right: min(5.73vw, 43px);
}
.header_menu-icon .menu-text {
  font-family: "kozuka-gothic-pr6n", sans-serif;
  font-size: min(2.165vw, 16.24px);
  margin-bottom: 6px;
  line-height: 1;
  font-weight: 200;
  width: 100%;
  text-align: center;
  white-space: nowrap;
  transition: color 0.2s;
  text-indent: -3%;
}
.header_nav.is-open .header_menu-icon .menu-text {
  color: #fff;
}
.header .icon-bars {
  position: relative;
  display: flex;
  flex-direction: row;
  justify-content: space-between;
  align-items: flex-start;
  width: 100%;
  height: min(8vw, 60px);
}
.header .icon-bars .bar {
  display: block;
  width: 12.5%;
  height: 100%;
  background-color: #000;
  transition: all 0.2s cubic-bezier(0.25, 0.1, 0.25, 1);
}
.header .icon-bars .bar.top {
  height: 65%;
}
.header_menu-wrapper {
  position: fixed;
  top: 0;
  right: 0;
  width: 100%;
  height: 100vh;
  background-color: rgba(0, 0, 0, 0.95);
  transform: translateX(100%);
  visibility: hidden;
  opacity: 0;
  transition: transform 0.2s ease-in-out, opacity 0.2s ease-in-out, visibility 0.2s ease-in-out;
  z-index: 100;
  display: flex;
  justify-content: center;
  align-items: center;
}
.header_nav.is-open .header_menu-wrapper {
  transform: translateX(0);
  visibility: visible;
  opacity: 1;
}
.header_menu-list {
  text-align: center;
}
.header_menu-list li {
  margin: 20px 0;
}
.header_menu-list li a {
  font-family: "din-2014-narrow", sans-serif;
  font-size: min(7.43vw, 55.73px);
  color: #fff;
  text-transform: uppercase;
  letter-spacing: 0.1em;
}
.header_menu-list li a:hover {
  color: #cf87ff;
}

.fv {
  position: relative;
  width: 100%;
  overflow: hidden;
  display: flex;
  align-items: center;
  justify-content: center;
  padding-bottom: 70%;
}
.fv_bg {
  position: absolute;
  top: -19.8%;
  left: 0;
  width: 100%;
  height: 100%;
  z-index: 1;
}
.fv_bg .hero__layer img {
  width: 100%;
  height: 100%;
  object-fit: contain;
}
.fv .hero__content {
  position: relative;
  z-index: 1;
  width: 88.93%;
  padding-top: 33.5%;
}
.fv .hero__title-area {
  margin-bottom: 15%;
}
.fv .hero__title-area .main-logo-svg {
  width: 101%;
  margin-left: -5.2%;
  margin-bottom: 10.5%;
}
.fv .hero__title-area .main-logo-svg img {
  width: 100%;
}
.fv .hero__title-area .sub-copy {
  display: block;
  width: 93.8%;
  height: auto;
  margin-bottom: 6%;
  padding-left: 1.5%;
}
.fv .hero__title-area .message {
  font-family: "futura", sans-serif;
  font-size: min(2.26vw, 17px);
  letter-spacing: 0.154em;
  font-weight: medium;
  padding-left: 2%;
}
.fv .hero__scroll-area {
  display: flex;
  justify-content: flex-end;
  margin-bottom: 30%;
  padding-right: 1%;
}
.fv .hero__scroll-area .scroll-down-btn {
  display: flex;
  align-items: center;
  gap: 15px;
  color: #000;
  cursor: pointer;
  position: relative;
  overflow: hidden;
  transition: transform 0.3s ease;
}
.fv .hero__scroll-area .scroll-down-btn .text {
  font-family: "kozuka-gothic-pr6n", sans-serif;
  font-size: min(1.6vw, 12px);
  letter-spacing: 0.05em;
  font-weight: 500;
}
.fv .hero__scroll-area .scroll-down-btn img {
  width: 11.73vw;
  max-width: 88px;
}
.fv .hero__scroll-area .scroll-down-btn:hover {
  transform: translateY(-2px);
}
.fv .hero__bottom {
  width: 51.73vw;
  max-width: 388px;
  margin: auto;
}
.fv .hero__bottom img {
  margin-left: 5%;
}

.concept-mission-wrap {
  position: relative;
  z-index: 1;
  overflow: hidden;
}
.concept-mission-wrap::before {
  content: "";
  position: absolute;
  top: 13.5%;
  bottom: 0;
  right: 0%;
  width: 137.8%;
  background-image: url(../img/bg2-2.webp);
  background-size: cover;
  background-position: right center;
  background-repeat: no-repeat;
  z-index: -1;
  pointer-events: none;
}

.concept {
  position: relative;
  width: 100%;
  padding: 0 0 75%;
  z-index: 1;
}
.concept_side-text {
  position: absolute;
  top: 31.3%;
  left: 87.5%;
  z-index: 5;
  font-family: "din-2014-narrow", sans-serif;
  font-size: min(32.26vw, 212px);
  line-height: 1;
  font-weight: bold;
  color: #000;
  writing-mode: vertical-rl;
  white-space: nowrap;
  pointer-events: none;
}
.concept .inner {
  position: relative;
  z-index: 1;
  width: 88%;
  max-width: 622px;
  margin: 0 auto 0 8.6%;
}
.concept .concept_area {
  margin-bottom: 26%;
  color: #000;
}
.concept .concept_area h3 {
  margin-bottom: 22%;
  position: relative;
  z-index: 1;
}
.concept .concept_area .concept_lead {
  font-family: "din-2014-narrow", sans-serif;
  font-size: min(7.43vw, 55.73px);
  font-weight: bold;
  line-height: 1.3;
  margin-bottom: 7%;
  position: relative;
  z-index: 1;
  color: #000;
}
.concept .concept_area .concept_lead .equal {
  line-height: 2;
}
.concept .concept_area .concept_lead .font-sub {
  font-family: "kozuka-gothic-pr6n", sans-serif;
  font-size: min(7.2vw, 54px);
}
.concept .concept_area .concept_text {
  margin-bottom: 16% !important;
  position: relative;
}
.concept .concept_area .concept_text strong {
  font-weight: 900;
}
.concept .concept_area .concept_deco-squares {
  width: 39.38%;
  position: relative;
}
.concept .intro_area {
  color: #000;
}
.concept .intro_area .intro_title-en {
  line-height: 1.06;
  margin-bottom: 6.5%;
}
.concept .intro_area .intro_title-jp {
  margin-bottom: 6.5%;
  font-weight: bold;
}
.concept .intro_area .intro_title-jp .sub {
  display: block;
  font-size: min(7.43vw, 55.73px);
  margin-bottom: 0.8%;
  font-weight: normal;
  letter-spacing: 0.075em;
}
.concept .intro_area .intro_title-jp .main {
  display: block;
  font-size: min(7.2vw, 54px);
  line-height: 1.3;
  letter-spacing: 0.047em;
}
.concept .intro_area .intro_text {
  font-size: min(3.7vw, 15px);
  line-height: 2.2;
  font-weight: 500;
  margin-bottom: 6.5% !important;
  letter-spacing: 0.075em;
}
.concept .intro_area .intro_text .highlight-black {
  background-color: #000;
  color: #fff;
  padding: 0.36em 0.35em;
  box-decoration-break: clone;
  -webkit-box-decoration-break: clone;
  margin-left: -1.5%;
  letter-spacing: 0.05em;
}
.concept .intro_area .intro_text .space {
  letter-spacing: 0.075em;
  padding-right: 0.8em;
}
.concept .intro_area .intro_text .large {
  font-weight: 900;
}
.concept .intro_area .intro_arrow-icon {
  width: 14%;
  margin-bottom: 8.5%;
}
.concept .intro_area .intro_arrow-icon img {
  width: 100%;
}
.concept .intro_area .platform_title {
  background-color: #000;
  color: #cf87ff;
  font-family: "kozuka-gothic-pr6n", sans-serif;
  font-size: min(5.42vw, 33.76px);
  font-weight: bold;
  padding: 0.45em 0.9em;
  display: block;
  width: 89%;
  margin-bottom: 4.7%;
  letter-spacing: 0.075em;
}
.concept .intro_area .platform_title img {
  width: 78%;
}
.concept .intro_area .platform_text {
  font-size: min(7.2vw, 54px) !important;
  font-weight: 600 !important;
  line-height: 1.4 !important;
  margin-bottom: 0 !important;
  letter-spacing: 0.047em;
}
.concept .intro_area .platform_text span {
  border-bottom: 2px solid #000;
  padding-bottom: 0.05em;
  margin-bottom: 0.15em;
  line-height: 1;
  display: inline-block;
}

.mission {
  position: relative;
  width: 100%;
  color: #fff;
  padding-bottom: 16%;
  z-index: 1;
}
.mission .inner {
  width: 88.93%;
  margin: 0 auto 0 8.6%;
}
.mission h3 {
  font-size: min(13.2vw, 99px);
  line-height: 1;
  margin-bottom: 13%;
  color: #fff;
}
.mission .mission_divider {
  width: 100%;
  height: 2px;
  background-color: #fff;
  margin-top: 4%;
  margin-bottom: 10%;
}
.mission .mission_block .mission_lead {
  font-size: min(7.2vw, 54px);
  font-weight: 600;
  line-height: 1.29;
  margin-bottom: 6.5%;
}
.mission .mission_block .mission_text {
  color: #fff !important;
  letter-spacing: 0.075em;
}
.mission .vision_block h3 {
  font-size: min(7.43vw, 55.73px);
  font-weight: 600;
  margin-bottom: 6.4%;
}
.mission .vision_block .vision_lead {
  font-size: min(7.2vw, 54px);
  font-weight: 500;
  line-height: 1.29;
  margin-bottom: 30px;
}
.mission .vision_block .vision_text {
  color: #fff !important;
  letter-spacing: 0.075em;
}

.business {
  position: relative;
  width: 100%;
  margin-bottom: 17%;
  z-index: 1;
}
.business .inner {
  width: 88.93%;
  max-width: 651px;
}
.business_title-en {
  font-size: min(13.2vw, 99px);
  line-height: 1;
  margin-bottom: 40px;
  color: #9d8bf2;
}
.business_card {
  background-image: url(../img/bg.webp);
  background-size: cover;
  padding: 11% 0% 9.3% 6.2%;
  color: #000;
  margin-left: -8%;
}
.business_intro {
  margin-bottom: 6%;
  padding-left: 2%;
}
.business_intro .sub-title {
  font-size: min(7.43vw, 55.73px);
  letter-spacing: 0.075em;
}
.business_intro .main-title {
  font-size: min(7.2vw, 54px);
  font-weight: 700;
  line-height: 1.29;
  letter-spacing: 0.047em;
  margin-bottom: 6%;
}
.business_intro .description {
  font-size: min(3.86vw, 29px);
  font-weight: 900;
  line-height: 2.2;
  margin-bottom: 6%;
  letter-spacing: 0.075em;
}
.business .service_container {
  background-color: #fff;
  padding: 6% 7.55% 2.57% 2.73%;
}
.business .platform_logo-strip {
  margin-bottom: 5%;
}
.business .platform_logo-strip img {
  width: 100%;
}
.business .service_item {
  border: 6px solid transparent;
  border-image: linear-gradient(90deg, #93c8f6 0%, #8776e8 24%, #c563d8 41.3%, #ef70cc 54%, #fdbda0 68%);
  border-image-slice: 1;
  margin-bottom: 30px;
  background-color: #fff;
}
.business .service_item:last-child {
  margin-bottom: 0;
}
.business .service_item .service_head {
  display: flex;
  align-items: center;
  border-bottom: 6px solid transparent;
  border-image: linear-gradient(90deg, #93c8f6 0%, #8776e8 24%, #c563d8 41.3%, #ef70cc 54%, #fdbda0 68%);
  border-image-slice: 1;
}
.business .service_item .service_head .num-icon {
  width: 23.71%;
  aspect-ratio: 1;
  font-size: min(13.2vw, 99px);
  font-weight: bold;
  background: linear-gradient(135deg, #c563d8 0%, #ef70cc 27%, #fdbda0 70%);
  margin-right: 6.5%;
}
.business .service_item .service_head .num-icon .num {
  font-family: "din-2014-narrow", sans-serif;
  color: #fff;
  display: block;
  width: 100%;
  text-align: center;
}
.business .service_item .service_head .service_logo {
  width: 63.5%;
  max-width: 363px;
}
.business .service_item .service_head .service_logo img {
  width: 100%;
}
.business .service_item.item-2 .num-icon {
  background: linear-gradient(315deg, #c563d8 0%, #ef70cc 27%, #fdbda0 70%);
}
.business .service_item .service_body {
  padding: 8.59% 11.5% 12% 7.3%;
}
.business .service_item .service_body .catch {
  font-weight: bold !important;
  margin-bottom: 3% !important;
  line-height: 1.65 !important;
  letter-spacing: 0.075em !important;
}
.business .service_item .service_body .service_name {
  font-size: min(5.63vw, 42.26px);
  font-weight: bold;
  line-height: 1.29;
  letter-spacing: 0.047em;
  margin-bottom: 10.6%;
  white-space: nowrap;
}
.business .service_item .service_body .tag_row {
  display: flex;
  align-items: center;
  margin-bottom: 10px;
}
.business .service_item .service_body .tag_row .tag {
  background: linear-gradient(135deg, #93c8f6 0%, #8776e8 0%, #c563d8 55%, #ef70cc 71%, #fdbda0 100%);
  color: #fff;
  font-size: min(3.86vw, 29px);
  font-weight: 400;
  line-height: 1;
  padding: 2.22% 0;
  margin-right: 3.2%;
  letter-spacing: 0.075em;
  white-space: nowrap;
  width: min(17.82vw, 118px);
  text-align: center;
}
.business .service_item .service_body .tag_row .line {
  height: 3px;
  flex-grow: 1;
  background: linear-gradient(90deg, #93c8f6 0%, #8776e8 24%, #c563d8 41.3%, #ef70cc 54%, #fdbda0 68%);
  opacity: 0.5;
}
.business .service_item .service_body .text {
  font-size: min(3.8vw, 15px);
  line-height: 1.8;
  font-weight: 500;
  margin-bottom: 25px;
}
.business .service_item .service_body .text:last-child {
  margin-bottom: 0;
}
.business .achievements {
  text-align: center;
  position: relative;
  padding-top: 26%;
  padding-bottom: 59%;
}
.business .achievements::before {
  content: "";
  position: absolute;
  top: 0;
  left: -13.9%;
  width: 122.5%;
  height: 104%;
  aspect-ratio: 1522/6519;
  background-image: url(../img/bg3-2.webp);
  background-size: cover;
  background-position: top center;
  background-repeat: no-repeat;
  z-index: -1;
}
.business .achieve_lp {
  margin-bottom: 17%;
}
.business .achieve_lp .label_badge {
  position: relative;
  font-size: min(3.8vw, 14px);
  margin-bottom: 5%;
}
.business .achieve_lp .label_badge .capsule-frame {
  display: block;
  width: 70.66%;
  height: auto;
  margin: auto;
}
.business .achieve_lp .label_badge .label-text {
  position: absolute;
  top: 18%;
  left: 0;
  right: 0;
  margin: auto;
  width: 100%;
  white-space: nowrap;
  font-weight: 600;
  font-size: min(3.8vw, 14px);
  font-family: "hiragino-kaku-gothic-pro", sans-serif;
  line-height: 1.1;
  letter-spacing: 0.02em;
  background: linear-gradient(90deg, #93c8f6 0%, #8776e8 34.6%, #c563d8 65%, #ef70cc 100%);
  -webkit-background-clip: text;
  background-clip: text;
  -webkit-text-fill-color: transparent;
  color: transparent;
}
.business .achieve_lp .label_badge .label-text span {
  background: none !important;
  -webkit-text-fill-color: inherit !important;
  color: inherit !important;
  margin-left: -0.7%;
  display: inline-block;
}
.business .achieve_lp .label_badge .label-text span:nth-child(1) {
  font-family: "poppins", sans-serif;
  font-size: min(6.074vw, 45.56px);
  letter-spacing: -0.02em;
}
.business .achieve_lp .label_badge .label-text span:nth-child(2) {
  font-family: "kozuka-gothic-pr6n", sans-serif;
  font-size: min(3.037vw, 22.78px);
}
.business .achieve_lp .label_badge .label-text span:nth-child(3) {
  font-size: min(3.588vw, 26.91px);
  font-family: "kozuka-gothic-pr6n", sans-serif;
}
.business .achieve_lp .label_badge .label-text span:nth-child(4) {
  font-family: "kozuka-gothic-pr6n", sans-serif;
  font-weight: 400;
  font-size: min(3.037vw, 22.78px);
}
.business .achieve_lp .label_badge .label-text span:nth-child(5) {
  font-family: "poppins", sans-serif;
  font-size: min(4.634vw, 34.76px);
  font-weight: 500;
}
.business .achieve_lp .label_badge .label-text span:nth-child(6) {
  font-family: "hiragino-kaku-gothic-pro", sans-serif;
  font-size: min(3.588vw, 26.91px);
}
.business .achieve_lp .lp_image {
  width: 107.5%;
  display: flex;
  overflow-x: auto;
  padding-bottom: 20px;
  -webkit-overflow-scrolling: touch;
  gap: 20px;
  scrollbar-width: thin;
  scrollbar-color: #d6a4e8 #f0f0f0;
  -webkit-mask-image: linear-gradient(to right, black 85%, transparent 100%);
  mask-image: linear-gradient(to right, black 85%, transparent 100%);
}
.business .achieve_lp .lp_image::-webkit-scrollbar {
  display: block;
  height: 4px;
}
.business .achieve_lp .lp_image::-webkit-scrollbar-track {
  background: #f0f0f0;
  border-radius: 2px;
}
.business .achieve_lp .lp_image::-webkit-scrollbar-thumb {
  background: linear-gradient(90deg, #8ca6f2, #e882b6);
  border-radius: 2px;
}
.business .achieve_lp .lp_image img {
  width: 100%;
  margin-right: 20px;
}
.business .achieve_numbers {
  margin-bottom: 28%;
  position: relative;
}
.business .achieve_numbers .section_title {
  font-size: min(5.63vw, 42.26px);
  font-weight: bold;
  letter-spacing: 0.047em;
  margin-bottom: 3%;
  color: #000;
}
.business .achieve_numbers .results_title_capsule {
  position: relative;
  font-weight: bold;
  margin-bottom: 6%;
  z-index: 1;
  line-height: 1;
  white-space: nowrap;
  letter-spacing: 0.02em;
}
.business .achieve_numbers .results_title_capsule .capsule-frame {
  display: block;
  width: 70.66%;
  height: auto;
  margin: auto;
}
.business .achieve_numbers .results_title_capsule .label-text {
  position: absolute;
  top: 18%;
  left: 0;
  right: 0;
  margin: auto;
  width: 100%;
  white-space: nowrap;
  line-height: 1.1;
  font-weight: bold;
  letter-spacing: 0.02em;
  background: linear-gradient(90deg, #93c8f6 0%, #8776e8 35%, #c563d8 70%, #e882b6 100%);
  -webkit-background-clip: text;
  background-clip: text;
  -webkit-text-fill-color: transparent;
  color: transparent;
}
.business .achieve_numbers .results_title_capsule .label-text span {
  background: none !important;
  -webkit-text-fill-color: inherit !important;
  color: inherit !important;
  margin-left: -0.7%;
}
.business .achieve_numbers .results_title_capsule .label-text span:nth-child(1) {
  font-family: "poppins", sans-serif !important;
  font-size: min(6.074vw, 45.56px) !important;
  font-weight: 600;
}
.business .achieve_numbers .results_title_capsule .label-text span:nth-child(2) {
  font-family: "hiragino-kaku-gothic-pro", sans-serif;
  font-size: min(3.03vw, 22.78px);
}
.business .achieve_numbers .results_title_capsule .label-text span:nth-child(3) {
  font-size: min(3.588vw, 26.91px);
}
.business .achieve_numbers .results_title_capsule .label-text span:nth-child(4) {
  font-size: min(3.037vw, 22.78px);
  font-weight: 400;
}
.business .achieve_numbers .results_title_capsule .label-text span:nth-child(5) {
  font-size: min(3.588vw, 26.91px);
}
.business .achieve_numbers .num_cards_grid {
  display: flex;
  flex-wrap: wrap;
  justify-content: space-between;
  gap: min(2vw, 27px);
  max-width: 650px;
  margin: auto;
}
.business .achieve_numbers .num_card {
  width: calc(33% - 7px);
  max-width: 198.6px;
  aspect-ratio: 1/1;
  display: flex;
  flex-direction: column;
  justify-content: center;
  align-items: center;
  color: #fff !important;
  transition: transform 0.4s cubic-bezier(0.34, 1.56, 0.64, 1);
  background-repeat: no-repeat;
  background-position: center;
  background-size: 100% 100%;
}
.business .achieve_numbers .num_card:nth-child(1) {
  background-image: url(../img/card1.webp);
}
.business .achieve_numbers .num_card:nth-child(2) {
  background-image: url(../img/card2.webp);
}
.business .achieve_numbers .num_card:nth-child(3) {
  background-image: url(../img/card3.webp);
}
.business .achieve_numbers .num_card:nth-child(4) {
  background-image: url(../img/card4.webp);
}
.business .achieve_numbers .num_card:nth-child(5) {
  background-image: url(../img/card5.webp);
}
.business .achieve_numbers .num_card:nth-child(6) {
  background-image: url(../img/card6.webp);
}
.business .achieve_numbers .num_card:nth-child(7) {
  background-image: url(../img/card7.webp);
}
.business .achieve_numbers .num_card:hover {
  transform: translateY(-8px) scale(1.02);
}
.business .achieve_numbers .num_card .category {
  font-size: min(2.67vw, 20.25px) !important;
  margin-bottom: 0 !important;
  font-weight: bold;
  color: #fff !important;
  letter-spacing: 0.1em;
  line-height: 1.4 !important;
}
.business .achieve_numbers .num_card .count {
  font-family: "din-2014-narrow", sans-serif !important;
  font-size: min(14.48vw, 108.6px) !important;
  line-height: 0.9 !important;
  font-weight: bold !important;
  color: #fff !important;
  margin: 5px 0 !important;
}
.business .achieve_numbers .num_card .count .unit {
  font-size: min(2.67vw, 20.25px) !important;
  font-family: "kozuka-gothic-pr6n", sans-serif !important;
  margin-left: 2px;
}
.business .achieve_numbers .num_card .per {
  font-family: "poppins", sans-serif !important;
  font-size: min(3.5vw, 24px) !important;
  letter-spacing: 0.1em;
  color: #fff !important;
  line-height: 1.2 !important;
  margin-bottom: 0 !important;
}
.business .achieve_numbers .note {
  width: 100%;
  text-align: right;
  font-size: min(2.49vw, 18.71px) !important;
  display: inline-block;
  position: absolute;
  bottom: 0;
  right: 41%;
  margin-bottom: 0 !important;
  line-height: 1 !important;
}
.business .achieve_genres {
  background: linear-gradient(50deg, #e663d3 0%, #fdbfa0 60%);
  padding: 11% 0 10% 10.7%;
  color: #fff;
  display: flex;
  flex-direction: column;
  align-items: center;
  width: 100%;
  overflow: hidden;
}
.business .achieve_genres .genre_header {
  flex: 0 0 auto;
  width: 100%;
  text-align: left;
  margin-bottom: 9%;
}
.business .achieve_genres .genre_header .en {
  font-family: "din-2014-narrow", sans-serif;
  font-size: min(7.916vw, 59.37px);
  line-height: 1.06;
  letter-spacing: 0.011em;
}
.business .achieve_genres .genre_header .jp {
  line-height: 1 !important;
  color: #fff !important;
  font-weight: 100 !important;
  margin-bottom: 0 !important;
  letter-spacing: 0.075em;
}
.business .achieve_genres .genre_header .jp .slash {
  font-weight: 100 !important;
}
.business .achieve_genres .genre_header .jp .small {
  font-family: "din-2014-narrow", sans-serif;
  font-size: min(3.998vw, 29.99px);
  letter-spacing: 0.011em;
  font-weight: bold;
}
.business .achieve_genres .marquee_wrapper {
  width: 100%;
  overflow: hidden;
  padding-bottom: 5px;
}
.business .achieve_genres .genre_list {
  display: grid;
  grid-template-rows: repeat(5, auto);
  grid-auto-flow: column;
  gap: min(4vw, 30px);
  width: max-content;
  animation: marqueeScroll 20s linear infinite;
}
.business .achieve_genres .genre_list:hover {
  animation-play-state: paused;
}
.business .achieve_genres .genre_list span {
  display: flex;
  align-items: center;
  justify-content: center;
  background-color: #fff;
  color: #000;
  font-size: min(3.637vw, 27.28px);
  padding: 9.27% 0;
  width: min(38.8vw, 291px);
  white-space: nowrap;
  box-shadow: 0 0 10px rgba(255, 255, 255, 0.5);
  letter-spacing: 0.01em;
  line-height: 1;
}

@keyframes marqueeScroll {
  0% {
    transform: translate3d(0, 0, 0);
  }
  100% {
    transform: translate3d(-50%, 0, 0);
  }
}
.service {
  position: relative;
  width: 100%;
  padding-bottom: 33.4%;
  text-align: left;
  z-index: 1;
  background-image: url(../img/bg3-3.webp);
  background-size: 92.1% auto, cover;
  background-position: right 14.3%, center;
  background-repeat: no-repeat, no-repeat;
}
.service .inner {
  width: 88.93%;
  max-width: 900px;
  margin: 0 auto;
}
.service .service_block:last-child {
  margin-bottom: 0;
}
.service .service_content {
  margin-bottom: 6%;
  padding-top: 29.5%;
}
.service .service_content .service_label {
  display: flex;
  align-items: center;
  margin-bottom: 15%;
}
.service .service_content .service_label .text {
  font-family: "din-2014-narrow", sans-serif;
  font-size: min(13.2vw, 99px);
  color: #738ced;
  font-weight: bold;
  line-height: 1.06;
  letter-spacing: 0.011em;
}
.service .service_content .service_head {
  margin-bottom: 12%;
}
.service .service_content .service_head .logo-text {
  font-family: "din-2014-narrow", sans-serif;
  font-size: min(10vw, 48px);
  font-weight: bold;
  line-height: 1.2;
  margin-bottom: 7%;
  background: linear-gradient(90deg, #8ca6f2, #d6a4e8, #e882b6);
  -webkit-background-clip: text;
  background-clip: text;
  -webkit-text-fill-color: transparent;
  display: inline-block;
  width: 92%;
}
.service .service_content .service_head .logo-text img {
  width: 100%;
  height: auto;
  display: block;
}
.service .service_content .service_head .sub-copy {
  font-size: min(5.06vw, 38px);
  font-weight: bold;
  line-height: 1.47;
  letter-spacing: 0.047em;
  font-family: "din-2014-narrow", sans-serif;
}
.service .service_content .service_description {
  font-size: min(3.86vw, 29px);
  line-height: 2.2;
  margin-bottom: 6%;
  letter-spacing: 0.075em;
}
.service .service_content .service_description strong {
  font-weight: 900;
}
.service .service_content h4 {
  color: #000;
  font-family: "din-2014-narrow", sans-serif;
}
.service .service_content .service_points {
  margin-bottom: 33.5%;
}
.service .service_content .service_points .point_label {
  background: linear-gradient(137deg, #93c8f6 0%, #8776e8 1%, #c563d8 42%, #ef70cc 70%, #fdbda0 94%);
  color: #fff;
  font-size: min(3.86vw, 29px);
  line-height: 1.2;
  padding: 1.45% 5% 1.5% 3.9%;
  display: inline-block;
  margin-bottom: 6%;
  letter-spacing: 0.075em;
}
.service .service_content .service_points .point_list li {
  display: flex;
  align-items: center;
  font-weight: bold;
  font-size: min(5.06vw, 38px);
  margin-bottom: 3%;
  line-height: 1.53;
  letter-spacing: 0.047em;
}
.service .service_content .service_points .point_list li .num {
  display: flex;
  justify-content: center;
  align-items: center;
  padding-top: 0.1em;
  width: min(7.06vw, 53px);
  aspect-ratio: 1;
  border-radius: 50%;
  background: linear-gradient(142deg, #93c8f6 0%, #8776e8 34%, #c563d8 78%, #ef70cc 90%, #fdbda0 84%);
  color: #fff;
  font-size: min(4.29vw, 32.2px);
  font-weight: bold;
  margin-right: 1%;
  flex-shrink: 0;
  font-family: "kozuka-gothic-pr6n", sans-serif;
  line-height: 1;
  letter-spacing: -0.02em;
}
.service .service_content .service_points .point_list li:nth-child(2) .num {
  background: linear-gradient(142deg, #93c8f6 0%, #8776e8 0, #c563d8 10%, #ef70cc 50%, #fdbda0 90%);
}
.service .service_content .service_points .point_list li .small {
  font-size: min(4vw, 30px);
  margin-top: 1%;
}
.service .service_content .detail_box {
  background-color: #f0f0f0;
  padding: 17.3% 0 18% 0;
  margin-bottom: 8%;
  margin-left: 1.5%;
  position: relative;
  border-radius: 32px 0 0 0;
}
.service .service_content .detail_box .box_header {
  margin-bottom: 7.5%;
}
.service .service_content .detail_box .box_header .en {
  position: absolute;
  top: -6%;
  left: 0;
  width: 90%;
  max-width: 605px;
  height: auto;
  display: block;
}
.service .service_content .detail_box .box_header .jp {
  background: linear-gradient(50deg, #93c8f6 0%, #8776e8 0%, #c563d8 50%, #ef70cc 85%, #fdbda0 100%);
  padding: 4.4% 6% 2.39% 8%;
  display: inline-block;
  font-weight: bold !important;
  font-size: min(5.728vw, 42.96px) !important;
  line-height: 1.29 !important;
  letter-spacing: 0.047em;
  width: 103%;
  margin-left: -8%;
  margin-bottom: 0 !important;
  white-space: nowrap;
}
.service .service_content .detail_box .detail_list {
  background: linear-gradient(180deg, #9082f8 0%, #6db6ff 100%);
  -webkit-background-clip: text;
  background-clip: text;
  color: transparent;
  padding: 0 4.5%;
}
.service .service_content .detail_box .detail_list li {
  display: flex;
  align-items: center;
  margin-bottom: 5%;
  line-height: 1.5;
}
.service .service_content .detail_box .detail_list li .plus {
  display: inline-block;
  width: min(5.9vw, 44.2px);
  height: min(6.24vw, 46.8px);
  flex-shrink: 0;
  margin-right: 5%;
  background: linear-gradient(180deg, #9082f8 0%, #6db6ff 100%);
  -webkit-mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 44.2 46.8'%3E%3Cpath d='M26.6 0H17.6V18.9H0V27.9H17.6V46.8H26.6V27.9H44.2V18.9H26.6V0Z'/%3E%3C/svg%3E");
  -webkit-mask-size: 100% 100%;
  -webkit-mask-repeat: no-repeat;
  -webkit-mask-position: center;
  mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 44.2 46.8'%3E%3Cpath d='M26.6 0H17.6V18.9H0V27.9H17.6V46.8H26.6V27.9H44.2V18.9H26.6V0Z'/%3E%3C/svg%3E");
  mask-size: 100% 100%;
  mask-repeat: no-repeat;
  mask-position: center;
}
.service .service_content .detail_box .detail_list li .text {
  color: #000;
  font-size: min(3.86vw, 29px);
  font-weight: 700;
  line-height: 1;
  letter-spacing: 0.075em;
  padding-top: 0.35em;
  white-space: nowrap;
}
.service .service_content .detail_box .detail_list li:nth-child(1) .plus {
  background: linear-gradient(180deg, #9082f8 0%, #888ff9 100%);
}
.service .service_content .detail_box .detail_list li:nth-child(2) .plus {
  background: linear-gradient(180deg, #888ff9 0%, #809cfb 100%);
}
.service .service_content .detail_box .detail_list li:nth-child(3) .plus {
  background: linear-gradient(180deg, #809cfb 0%, #77a9fc 100%);
}
.service .service_content .detail_box .detail_list li:nth-child(4) .plus {
  background: linear-gradient(180deg, #77a9fc 0%, #6fb6fd 100%);
}
.service .service_content .detail_box .detail_list li:nth-child(5) {
  margin-bottom: 0;
}
.service .service_content .detail_box .detail_list li:nth-child(5) .plus {
  background: linear-gradient(180deg, #6fb6fd 0%, #6db6ff 100%);
}
.service .service_content .closing_message {
  font-size: min(3.86vw, 29px);
  line-height: 2.2;
  letter-spacing: 0.075em;
  margin-left: 6%;
}
.service .service_content .closing_message span {
  display: inline-block;
}
.service .service_01 .service_label .bar {
  background-color: #c148e0;
  display: none;
}
.service .service_01 .service_label .text {
  color: #738ced;
}
.service .service_01 .service_label .service_head .sub-copy {
  margin-left: -3.5%;
}
.service .service_image {
  width: 112.6%;
  margin-left: -6%;
}
.service .service_image img {
  width: 100%;
  height: auto;
  display: block;
}
.service .service_02 .service_label .bar {
  background-color: #8ca6f2;
}
.service .service_02 .service_label .text {
  color: #8ca6f2;
}
.service .service_02 .service_head .logo-text {
  -webkit-background-clip: text;
  background-clip: text;
  -webkit-text-fill-color: transparent;
  display: inline-block;
}
.service .service_02 .service_head .sub-copy {
  text-indent: 0;
}
.service .service_02 .service_description_highlight {
  font-size: min(3.86vw, 29px);
  line-height: 2.2;
  font-weight: bold;
  margin-bottom: 33%;
}
.service .service_02 .service_description_highlight p {
  margin-bottom: 2% !important;
  height: 1.75em;
}
.service .service_02 .service_description_highlight .mt-20 {
  margin-left: 2.1%;
  margin-bottom: 1.8% !important;
}
.service .service_02 .service_description_highlight .highlight-blue,
.service .service_02 .service_description_highlight .highlight-purple {
  color: #fff;
  padding: 1% 3% 0 3%;
  box-decoration-break: clone;
  -webkit-box-decoration-break: clone;
  display: inline-block;
  letter-spacing: 0.075em;
  font-weight: 700;
  margin-left: -1%;
  line-height: 1.5;
}
.service .service_02 .service_description_highlight .highlight-blue {
  background: linear-gradient(135deg, #6895ee 0%, #a480ee 100%);
}
.service .service_02 .service_description_highlight .highlight-purple {
  background: linear-gradient(135deg, #8083ec 0%, #ad60e4 100%);
}
.service .service_02 .service_description_highlight .small {
  font-weight: 400;
}
.service .service_02 .service_points .point_label_blue {
  background-color: #6b98ef;
  color: #fff;
  font-size: min(3.86vw, 29px);
  line-height: 1;
  padding: 1.8% 5% 1.8% 4%;
  display: inline-block;
  margin-bottom: 6%;
  border-radius: 2px;
  letter-spacing: 0.075em;
}
.service .service_02 .service_points .point_list_blue li {
  display: flex;
  align-items: flex-start;
  font-weight: bold;
  font-size: min(4.93vw, 37px);
  margin-bottom: 15%;
  letter-spacing: 0.047em;
  white-space: nowrap;
}
.service .service_02 .service_points .point_list_blue li .num {
  display: flex;
  justify-content: center;
  align-items: center;
  width: min(7.06vw, 53px);
  aspect-ratio: 1;
  border-radius: 50%;
  color: #fff;
  padding-top: 0.1em;
  font-size: min(4.29vw, 32.2px);
  font-weight: bold;
  font-family: "kozuka-gothic-pr6n", sans-serif;
  letter-spacing: -0.01em;
  margin-right: min(3.06vw, 23px);
  flex-shrink: 0;
  background: linear-gradient(155deg, #93c8f6 0%, #8776e8 100%);
}
.service .service_02 .service_points .point_list_blue li:nth-child(1) .num, .service .service_02 .service_points .point_list_blue li:nth-child(2) .num, .service .service_02 .service_points .point_list_blue li:nth-child(4) .num {
  background: linear-gradient(155deg, #93c8f6 0%, #8776e8 148%);
}
.service .service_02 .service_points .point_list_blue li:nth-child(3) .num {
  background: linear-gradient(155deg, #93c8f6 0%, #8776e8 157%);
}
.service .service_02 .service_points .point_list_blue li .small {
  font-size: min(4vw, 30px);
  margin-top: 1%;
}
.service .service_02 .service_points .point_list_blue li .item_content .title {
  font-size: min(4.93vw, 37px);
  font-weight: 700;
  line-height: 1.3;
  margin-bottom: 6%;
  letter-spacing: 0.047em;
  color: #000;
}
.service .service_02 .service_points .point_list_blue li .item_content .text {
  font-size: min(3.86vw, 29px) !important;
  font-weight: 400;
  margin-bottom: 0 !important;
  letter-spacing: 0.075em;
  color: #000;
}
.service .service_02 .service_points .point_list_blue li .item_content .text strong {
  font-weight: 800;
}
.service .service_02 .color {
  color: #738ced;
}
.service .service_02 .service_image_area {
  text-align: center;
  padding-top: 10.6%;
  position: relative;
}
.service .service_02 .service_image_area::after {
  content: "";
  position: absolute;
  top: 0;
  left: 57%;
  transform: translateX(-50%);
  width: 127%;
  max-width: 845px;
  height: auto;
  aspect-ratio: 758/4999;
  background-image: url(../img/bg5.webp);
  background-size: cover;
  background-position: top center;
  background-repeat: no-repeat;
  z-index: -1;
  pointer-events: none;
}
.service .service_02 .service_image_area .works_showcase {
  margin-bottom: 48%;
  position: relative;
}
.service .service_02 .service_image_area .works_showcase .section_label_blue {
  position: relative;
  color: #fff;
  font-size: min(4.66vw, 35px);
  margin-bottom: 6%;
  z-index: 1;
}
.service .service_02 .service_image_area .works_showcase .section_label_blue .capsule-frame {
  display: block;
  width: 70.66%;
  height: auto;
  margin: auto;
}
.service .service_02 .service_image_area .works_showcase .section_label_blue .label-text {
  position: absolute;
  top: 0;
  left: 0;
  right: 0;
  margin: auto;
  width: 100%;
  text-align: center;
  white-space: nowrap;
  letter-spacing: 0.22em;
  line-height: 2.1;
}
.service .service_02 .service_image_area .works_showcase .work_card {
  width: 90.3%;
  max-width: 601px;
  margin: auto;
  background-color: #efefef;
  border-radius: 10px;
  padding-top: 5%;
  padding-bottom: 2%;
  box-shadow: 7px 7px 5px rgba(188, 188, 188, 0.3);
  margin-bottom: 7%;
  overflow: hidden;
  transition: transform 0.4s cubic-bezier(0.34, 1.56, 0.64, 1);
}
.service .service_02 .service_image_area .works_showcase .work_card:hover {
  transform: translateY(-8px) scale(1.02);
}
.service .service_02 .service_image_area .works_showcase .work_card .card_label {
  display: inline-block;
  color: #fff;
  font-weight: bold;
  font-family: "poppins", sans-serif;
  font-style: italic;
  padding: 1.55% 16.1%;
  border-radius: 20px;
  font-size: min(6.268vw, 47.01px);
  letter-spacing: 0.025em;
}
.service .service_02 .service_image_area .works_showcase .work_card .card_label.purple, .service .service_02 .service_image_area .works_showcase .work_card .card_label.pink {
  background-color: #b478c8;
}
.service .service_02 .service_image_area .works_showcase .work_card .card_desc {
  font-family: "hiragino-kaku-gothic-pro", sans-serif !important;
  font-size: min(3.16vw, 23.7px) !important;
  margin-bottom: 0 !important;
  line-height: 2.92 !important;
}
.service .service_02 .service_image_area .works_showcase .work_card .card_img img {
  width: 100%;
  height: auto;
  display: block;
  margin-left: -2%;
}
.service .service_02 .service_image_area .results_area {
  position: relative;
  margin-bottom: 11%;
}
.service .service_02 .service_image_area .results_area .results_title_capsule,
.service .service_02 .service_image_area .results_area .section_label_dark {
  position: relative;
  color: #fff;
  font-size: min(4.66vw, 35px);
  font-weight: 100;
  margin-bottom: 6%;
  z-index: 1;
}
.service .service_02 .service_image_area .results_area .results_title_capsule .capsule-frame,
.service .service_02 .service_image_area .results_area .section_label_dark .capsule-frame {
  display: block;
  width: 70.66%;
  height: auto;
  margin: auto;
}
.service .service_02 .service_image_area .results_area .results_title_capsule .label-text,
.service .service_02 .service_image_area .results_area .section_label_dark .label-text {
  position: absolute;
  top: 12%;
  left: 0;
  right: 0;
  margin: auto;
  width: 100%;
  text-align: center;
  white-space: nowrap;
  letter-spacing: 0.22em;
}
.service .service_02 .service_image_area .results_area .num_cards_grid {
  display: flex;
  justify-content: space-between;
  max-width: 650px;
  margin: 0 auto;
}
.service .service_02 .service_image_area .results_area .num_card {
  width: calc(33.333% - 7px);
  max-width: 198.6px;
  aspect-ratio: 1/1;
  display: flex;
  flex-direction: column;
  justify-content: center;
  align-items: center;
  color: #fff !important;
  padding: 5px;
  transition: transform 0.4s cubic-bezier(0.34, 1.56, 0.64, 1);
  background-repeat: no-repeat;
  background-position: center;
  background-size: 100% 100%;
}
.service .service_02 .service_image_area .results_area .num_card:nth-child(1) {
  background-image: url(../img/card8.webp);
}
.service .service_02 .service_image_area .results_area .num_card:nth-child(2) {
  background-image: url(../img/card9.webp);
}
.service .service_02 .service_image_area .results_area .num_card:nth-child(3) {
  background-image: url(../img/card10.webp);
}
.service .service_02 .service_image_area .results_area .num_card:hover {
  transform: translateY(-8px) scale(1.02);
}
.service .service_02 .service_image_area .results_area .num_card .category {
  font-size: min(2.67vw, 20.25px) !important;
  margin-bottom: 0 !important;
  font-weight: bold;
  color: #fff !important;
  letter-spacing: 0.1em;
  line-height: 2.3 !important;
}
.service .service_02 .service_image_area .results_area .num_card .count {
  font-family: "din-2014-narrow", sans-serif !important;
  font-size: min(14.48vw, 108.6px) !important;
  line-height: 0.8 !important;
  font-weight: bold !important;
  color: #fff !important;
  margin-bottom: 0 !important;
}
.service .service_02 .service_image_area .results_area .num_card .count .unit {
  font-size: min(2.67vw, 20.25px) !important;
  font-family: "kozuka-gothic-pr6n", sans-serif !important;
  margin-left: 2px;
  color: #fff !important;
  margin-bottom: 0 !important;
}
.service .service_02 .service_image_area .results_area .num_card .per {
  font-family: "poppins", sans-serif !important;
  font-size: min(4vw, 30px) !important;
  letter-spacing: 0.1em;
  color: #fff !important;
  line-height: 1.8 !important;
  margin-bottom: 0 !important;
}
.service .service_02 .service_image_area .results_area .num_card .per .unit {
  font-size: min(2.494vw, 18.71px);
  display: block;
  margin-top: 10%;
}
.service .service_02 .service_image_area .results_area .note {
  width: 100%;
  text-align: right;
  color: #fff !important;
  font-family: "poppins", sans-serif !important;
  font-size: min(2.494vw, 18.71px) !important;
  line-height: 1 !important;
  padding-right: 2%;
  margin-top: 10px;
}
.service .service_02 .service_image_area .affiliate_results .results_title_capsule .label-text {
  letter-spacing: 0.02em !important;
}
.service .service_02 .service_image_area .affiliate_results .num_card:nth-child(1) {
  background-image: url(../img/card11.webp);
}
.service .service_02 .service_image_area .affiliate_results .num_card:nth-child(2) {
  background-image: url(../img/card12.webp);
}
.service .service_02 .service_image_area .affiliate_results .num_card:nth-child(3) {
  background-image: url(../img/card13.webp);
}

/* ==========================================
   Service Flow Chart
   ========================================== */
.service_flow {
  width: 91.4%;
  margin: auto;
  display: flex;
  flex-direction: column;
  align-items: center;
  position: relative;
  z-index: 2;
  margin-bottom: 57%;
}
.service_flow .flow_node,
.service_flow .partner_item {
  background-size: contain;
  background-position: center;
  background-repeat: no-repeat;
  display: flex;
  flex-direction: column;
  justify-content: center;
  align-items: center;
  width: 100%;
}
.service_flow .flow_node {
  justify-content: flex-end;
}
.service_flow .node_client {
  background-image: url(../img/top.webp);
  width: 87.2%;
  aspect-ratio: 532/126;
  justify-content: center;
  font-size: min(5.58vw, 41.87px);
  font-weight: bold;
  letter-spacing: 0.5em;
  text-indent: 0.5em;
  color: #fff;
  padding: 0;
  position: relative;
  z-index: 2;
}
.service_flow .flow_connector {
  width: 80%;
  max-width: 450px;
  border: 2px solid #8ca6f2;
  border-radius: 40px;
  display: flex;
  justify-content: center;
  align-items: center;
  padding: 20px 0;
  margin-top: -20px;
  position: relative;
  z-index: 1;
}
.service_flow .flow_joint {
  background-image: url(../img/joint.svg);
  background-size: contain;
  background-position: center;
  background-repeat: no-repeat;
  width: 100%;
  aspect-ratio: 610/410;
  margin-top: -11%;
}
.service_flow .node_makesapo {
  background-image: url(../img/middle.webp);
  width: 75.08%;
  aspect-ratio: 456/428;
  position: relative;
  margin-top: -44%;
  padding-bottom: 6%;
}
.service_flow .node_makesapo .joint_icon {
  width: 15.72%;
  aspect-ratio: 72/72;
  position: absolute;
  top: -8.2%;
}
.service_flow .node_makesapo .makesapo_label {
  font-size: min(4.912vw, 36.84px) !important;
  font-weight: bold !important;
  margin-bottom: 3.3% !important;
  color: #fff !important;
  letter-spacing: 0.047em;
  line-height: 1.58 !important;
  border-bottom: solid 3px #fff;
}
.service_flow .node_makesapo .makesapo_grid {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 0.7em;
  margin-bottom: 20px;
  width: 83.99%;
}
.service_flow .node_makesapo .makesapo_grid .grid_item {
  background: #fff;
  color: #000;
  padding: 5% 0;
  font-weight: bold;
  font-size: min(4.376vw, 32.82px);
  letter-spacing: 0.1em;
  line-height: 1.88;
  text-align: center;
}
.service_flow .node_makesapo .makesapo_logo {
  width: 76.53%;
  aspect-ratio: 349/42;
}
.service_flow .flow_branch {
  width: 100%;
  margin-top: -2px;
  margin-bottom: 3%;
}
.service_flow .flow_branch .arrow_set {
  width: 84%;
  height: auto;
  display: block;
  margin: 0 auto;
}
.service_flow .flow_partners {
  width: 100%;
  display: flex;
  justify-content: space-between;
  margin: 0 0 0 0;
  gap: 5px;
}
.service_flow .flow_partners .partner_item {
  flex: 1;
  aspect-ratio: 1/1;
  color: #fff;
  font-weight: 400;
  font-size: min(4.912vw, 37px);
  text-align: center;
  line-height: 1.2;
}
.service_flow .flow_partners .partner_item.p_asp {
  background-image: url(../img/bubble1.webp);
}
.service_flow .flow_partners .partner_item.p_agency {
  background-image: url(../img/bubble2.webp);
}
.service_flow .flow_partners .partner_item.p_pr {
  background-image: url(../img/bubble3.webp);
}
.service_flow .flow_partners .partner_item.p_etc {
  background-image: url(../img/bubble4.webp);
}
.service_flow .flow_connector_dot {
  display: flex;
  justify-content: flex-start;
  padding-left: 0;
  width: 100%;
}
.service_flow .flow_connector_dot .dot_vline_img {
  width: 4.62%;
  height: auto;
  margin-left: 10%;
  margin-top: -2.5%;
}
.service_flow .flow_footer_bubble {
  width: 100%;
  margin: 0 auto;
  margin-top: -1px;
  position: relative;
  text-align: center;
}
.service_flow .flow_footer_bubble .bubble_frame {
  width: 100%;
  height: auto;
  display: block;
}
.service_flow .flow_footer_bubble p {
  position: absolute;
  top: 50%;
  left: 0;
  right: 0;
  transform: translateY(-50%);
  color: #000 !important;
  font-size: min(4.376vw, 32.82px) !important;
  letter-spacing: 0.1em;
  margin-bottom: 0 !important;
  line-height: 1.4 !important;
}
.service_flow .flow_footer_bubble p strong {
  font-weight: 900;
}

.world-view {
  position: relative;
  width: 100%;
  color: #fff;
  text-align: left;
  overflow: hidden;
  z-index: 0;
  padding-top: 21.4%;
}
.world-view::before {
  content: "";
  position: absolute;
  top: 0;
  left: 51.5%;
  transform: translateX(-50%);
  width: 116%;
  max-width: 776px;
  height: 104%;
  background-image: url(../img/bg6.webp);
  background-size: cover;
  background-position: top center;
  background-repeat: no-repeat;
  z-index: -1;
}
.world-view .inner {
  width: 86.4%;
  max-width: 648px;
  margin: 0 auto;
}
.world-view .wv_content {
  margin-bottom: 39%;
  padding-left: 6%;
}
.world-view .wv_content .wv_title {
  font-family: "din-2014-narrow", sans-serif;
  font-size: min(13.2vw, 99px);
  margin-bottom: 28.6%;
  color: #000;
  line-height: 0.73;
}
.world-view .wv_content .wv_sub {
  font-size: min(7.43vw, 55.73px) !important;
  margin-bottom: 13% !important;
  letter-spacing: 0.075em !important;
  color: #fff !important;
  line-height: 1 !important;
}
.world-view .wv_content .wv_lead {
  font-size: min(7.2vw, 54px);
  font-weight: bold;
  line-height: 1.3;
  margin-bottom: 9%;
  letter-spacing: 0.047em;
  white-space: nowrap;
  color: #fff;
}
.world-view .wv_content .wv_text {
  line-height: 2.6 !important;
  color: #fff !important;
  font-weight: 300 !important;
  letter-spacing: 0.074em;
}
.world-view .contact_area {
  width: 100%;
  margin-bottom: 30%;
}
.world-view .contact_area .contact_title {
  font-family: "acumin-variable", sans-serif;
  font-variation-settings: "slnt" 0, "wdth" 115, "wght" 100;
  font-size: min(14.5893vw, 109.42px);
  font-weight: 100;
  margin-bottom: 19%;
  letter-spacing: 0.02em;
  color: #fff;
  text-align: center;
  white-space: nowrap;
}
.world-view .contact_area .contact_text {
  font-size: min(4.76vw, 35.71px) !important;
  line-height: 1.5 !important;
  color: #fff !important;
  font-weight: 100 !important;
  padding-left: 7%;
  margin-bottom: 15% !important;
}
.world-view .contact_area .contact_btn {
  display: block;
  width: 100%;
  max-width: 600px;
  background-color: #fff;
  color: #000;
  text-align: center;
  font-family: "acumin-variable", sans-serif;
  font-variation-settings: "slnt" 0, "wdth" 115, "wght" 100;
  font-weight: 100;
  padding: 15px 0;
  text-decoration: none;
  font-size: min(7.54vw, 56.86px);
  letter-spacing: 0.02em;
  position: relative;
  overflow: hidden;
  transition: transform 0.3s ease, box-shadow 0.3s ease;
  margin: auto;
}
.world-view .contact_area .contact_btn::after {
  content: "";
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  transform: scaleX(0);
  transform-origin: right;
  transition: transform 0.4s cubic-bezier(0.22, 1, 0.36, 1);
  z-index: 0;
}
.world-view .contact_area .contact_btn:hover {
  transform: translateY(-2px);
}
.world-view .contact_area .contact_btn:hover::after {
  transform: scaleX(1);
  transform-origin: left;
}
.world-view .gallery_wrapper_outer {
  position: relative;
  width: 93%;
  margin: 0 auto 105% auto;
  height: clamp(600px, 150vw, 1165px);
}
.world-view .gallery_wrapper_outer .gallery_area {
  width: 85%;
  height: 100%;
  max-height: 1165px;
  overflow: hidden;
  margin: 0 auto;
}
.world-view .gallery_wrapper_outer .gallery_scroll_wrapper {
  display: flex;
  justify-content: center;
  gap: 7.72%;
  height: 100%;
}
.world-view .gallery_wrapper_outer .gallery_column {
  width: 100%;
  max-width: 259px;
  height: 100%;
  position: relative;
  overflow: hidden;
}
.world-view .gallery_wrapper_outer .scrolling_track {
  display: flex;
  flex-direction: column;
  gap: 2em;
  animation-duration: 20s;
  animation-timing-function: linear;
  animation-iteration-count: infinite;
  will-change: transform;
  backface-visibility: hidden;
}
.world-view .gallery_wrapper_outer .gallery_item {
  width: 100%;
}
.world-view .gallery_wrapper_outer .gallery_item img {
  width: 100%;
  height: auto;
  object-fit: contain;
  display: block;
}
.world-view .gallery_wrapper_outer .gallery_item:last-child {
  margin-bottom: 2em;
}
.world-view .gallery_wrapper_outer .track_down {
  animation-name: scrollDown;
}
.world-view .gallery_wrapper_outer .track_up {
  animation-name: scrollUp;
  animation-duration: 15s;
}
.world-view .gallery_wrapper_outer .gallery_text_wrapper {
  position: absolute;
  top: clamp(-85%, -130vw, -66%);
  right: -3%;
  writing-mode: vertical-rl;
  z-index: 10;
  width: fit-content;
  display: flex;
  justify-content: center;
  align-items: center;
}
.world-view .gallery_vertical_text {
  font-size: min(3.2vw, 24px) !important;
  letter-spacing: 0.1em;
  color: #fff !important;
  font-family: "acumin-variable", sans-serif !important;
  line-height: 1.94 !important;
  font-variation-settings: "slnt" 0, "wdth" 115, "wght" 100;
  white-space: nowrap;
}
.world-view .info_lead {
  padding-bottom: 6.5%;
}
.world-view .info_lead h2 {
  font-family: "acumin-variable", sans-serif;
  font-size: min(31.7vw, 237.77px);
  font-variation-settings: "slnt" 0, "wdth" 115, "wght" 100;
  font-weight: 100;
  color: #333;
  letter-spacing: -0.02em;
  line-height: 1;
}

@keyframes scrollDown {
  0% {
    transform: translate3d(0, -66.66666%, 0);
  }
  100% {
    transform: translate3d(0, -33.33333%, 0);
  }
}
@keyframes scrollUp {
  0% {
    transform: translate3d(0, 0, 0);
  }
  100% {
    transform: translate3d(0, -33.33333%, 0);
  }
}
.footer {
  background-color: #fff;
  color: #333;
  padding-top: 60px;
  text-align: left;
  font-family: "Yu Gothic", "YuGothic", "Hiragino Kaku Gothic ProN", "Hiragino Sans", Meiryo, sans-serif, sans-serif;
}
.footer .inner {
  width: 86.66%;
  padding-top: 18.75%;
  padding-bottom: 13%;
}
.footer_head {
  margin-bottom: 30px;
}
.footer_logo {
  width: 32.13%;
  margin-bottom: 5.5%;
}
.footer_logo img {
  width: 100%;
  height: auto;
  display: block;
}
.footer_company {
  font-size: min(4vw, 30px);
  letter-spacing: 0.01em;
  font-weight: 500;
  line-height: 1;
  letter-spacing: 0.05em;
}
.footer_divider {
  border-bottom: 1px dashed #333;
  margin: 9.5% 0;
}
.footer .divider_wide {
  margin: 11% 0;
}
.footer_office {
  font-size: min(4vw, 30px);
  letter-spacing: 0.01em;
  line-height: 1;
}
.footer_office .office_title {
  font-size: min(4.93vw, 37px);
  font-weight: bold;
  margin-bottom: 6.4%;
}
.footer_office .office_title span {
  display: inline-block;
  font-weight: 100;
}
.footer_office .office_title span:first-child {
  margin-right: 0.2em;
}
.footer_office .office_title span:last-child {
  margin-left: 0.2em;
}
.footer_office .office_zip {
  margin-bottom: 5.5%;
}
.footer_office .office_address-jp {
  margin-bottom: 8%;
}
.footer_office .office_address-en {
  font-family: "century-gothic", sans-serif;
  font-size: min(3.2vw, 24px);
  line-height: 2.08;
  letter-spacing: 0.075em;
  color: rgba(179, 179, 179, 0.7019607843);
  margin-bottom: 10%;
}
.footer_office .office_tel {
  letter-spacing: 0.05em;
  margin-top: 10px;
}
.footer_office .office_tel a {
  text-decoration: none;
  color: inherit;
  transition: opacity 0.3s;
}
.footer_office .office_tel a:hover {
  opacity: 0.6;
}
.footer_advisors .advisor_row {
  display: flex;
  align-items: center;
  margin-bottom: 5.5%;
  padding-left: 0.5em;
}
.footer_advisors .advisor_row:last-child {
  margin-bottom: 0;
}
.footer_advisors .advisor_role {
  width: 30%;
  font-size: min(4vw, 30px);
  letter-spacing: 0.01em;
}
.footer_advisors .advisor_info {
  padding-left: 3.2%;
  border-left: 1px solid #333;
  font-size: min(4vw, 30px);
  letter-spacing: 0.01em;
}
.footer_advisors .advisor_info .name {
  margin-bottom: 5px;
  line-height: 1.4;
}
.footer_advisors .advisor_info .url {
  display: block;
  font-size: min(4vw, 30px);
  letter-spacing: 0.01em;
  color: #333;
  text-decoration: none;
  word-break: break-all;
}
.footer_advisors .advisor_info .url:hover {
  text-decoration: underline;
  opacity: 0.7;
}
.footer_copyright {
  font-family: "century-gothic", sans-serif;
  background-color: #e6e6e6;
  padding-top: 10%;
  padding-bottom: 22%;
  text-align: center;
}
.footer_copyright p {
  font-size: min(3.2vw, 24px);
  color: #333;
  letter-spacing: 0.075em;
  line-height: 0.7;
  width: 86.66%;
  text-align: left;
  margin: auto;
  display: flex;
  align-items: center;
}
.footer_copyright .copy-mark {
  font-size: 1.1em;
  position: relative;
  margin-right: 5px;
  left: -1px;
  display: inline-block;
  line-height: 1;
}

@media (min-width: 600px) {
  .inner {
    max-width: 85%;
  }
  .service_cards {
    flex-direction: row;
    justify-content: space-between;
  }
  .service_cards .card {
    flex: 1;
    margin: 0 10px;
  }
  .aboutus .inner {
    display: flex;
    align-items: center;
    gap: 40px;
  }
  .aboutus .content-left,
  .aboutus .content-right {
    flex: 1;
  }
  .aboutus .image-box {
    margin-bottom: 0;
    height: 300px;
  }
  .recruit_content {
    flex-direction: row;
    align-items: center;
    gap: 40px;
  }
  .recruit .text-area {
    flex: 1;
    order: 2;
  }
  .recruit .image-box {
    flex: 1;
    order: 1;
    height: 350px;
  }
}
/* ==========================================
   アコーディオンフォーム用スタイル
   ========================================== */
.contact-form-accordion {
  display: grid;
  grid-template-rows: 0fr;
  transition: grid-template-rows 0.6s cubic-bezier(0.22, 1, 0.36, 1);
  /* ヌルっと開く */
  overflow: hidden;
  margin-bottom: 50px;
}

/* 開いた状態 */
.contact-form-accordion.is-open {
  grid-template-rows: 1fr;
}

.contact-form-accordion .contact-form-inner {
  min-height: 0;
  overflow: hidden;
  /* 中身がはみ出ないように */
}

/* フォーム自体のスタイル */
.top-contact-form {
  background-color: transparent;
  margin-top: 0;
  /* 初期状態では余白と枠線を消して完全に隠す */
  padding: 0 40px;
  border: 1px solid transparent;
  transition: all 0.6s cubic-bezier(0.22, 1, 0.36, 1);
}

.contact-form-accordion.is-open .top-contact-form {
  background-color: rgba(0, 0, 0, 0.85);
  margin-top: 30px;
  padding: clamp(30px, 8vw, 60px) clamp(20px, 5vw, 40px);
  border-color: rgba(255, 255, 255, 0.3);
}

.dummy-form {
  width: 100%;
  margin: 0 auto;
}
.dummy-form .form-group {
  display: flex;
  align-items: center;
  margin-bottom: min(4vw, 30px);
  border-bottom: 1px solid rgba(255, 255, 255, 0.2);
  padding-bottom: 10px;
  transition: border-color 0.3s ease;
}
.dummy-form .form-group:focus-within {
  border-color: #fff;
}
@media (max-width: 600px) {
  .dummy-form .form-group {
    flex-direction: column;
    align-items: flex-start;
    gap: 10px;
  }
}
.dummy-form .form-label {
  width: 35%;
  font-size: min(2.5vw, 18px);
  font-weight: bold;
  letter-spacing: 0.15em;
  color: #fff;
  text-transform: uppercase;
}
@media (max-width: 600px) {
  .dummy-form .form-label {
    width: 100%;
  }
}
.dummy-form .form-label .asterisk {
  color: #ff4d4d;
  margin-left: 4px;
}
.dummy-form .form-input-wrap {
  width: 65%;
}
@media (max-width: 600px) {
  .dummy-form .form-input-wrap {
    width: 100%;
  }
}
.dummy-form .form-input-text {
  width: 100%;
  background: rgba(255, 255, 255, 0.05);
  border: none;
  color: #fff;
  font-size: min(3vw, 22px);
  outline: none;
  padding: 8px 12px;
  border-radius: 4px;
  transition: background 0.3s ease;
}
.dummy-form .form-input-text:focus {
  background: rgba(255, 255, 255, 0.1);
}
.dummy-form .form-textarea {
  width: 100%;
  background: #fff;
  color: #000;
  border: none;
  height: min(20vw, 180px);
  min-height: 120px;
  padding: 15px;
  outline: none;
  margin-top: 10px;
  border-radius: 4px;
  font-size: 16px;
}
.dummy-form .checkbox-group {
  display: flex;
  gap: min(5vw, 40px);
  flex-wrap: wrap;
}
.dummy-form .checkbox-item {
  display: flex;
  align-items: center;
  gap: 12px;
  cursor: pointer;
  font-size: min(3vw, 20px);
  font-weight: bold;
  color: #fff;
}
.dummy-form .checkbox-item input {
  width: 20px;
  height: 20px;
  cursor: pointer;
}
.dummy-form .form-footer {
  text-align: center;
  margin-top: clamp(30px, 8vw, 60px);
  border-top: 1px solid rgba(255, 255, 255, 0.2);
  padding-top: clamp(30px, 8vw, 50px);
  display: flex;
  justify-content: center;
  gap: 20px;
}
@media (max-width: 480px) {
  .dummy-form .form-footer {
    flex-direction: column-reverse;
    gap: 15px;
  }
}
.dummy-form .form-footer button,
.dummy-form .form-footer input[type=submit] {
  background: none;
  border: 1px solid #fff;
  color: #fff;
  padding: 15px clamp(30px, 10vw, 80px);
  font-size: min(2.5vw, 16px);
  letter-spacing: 0.3em;
  cursor: pointer;
  transition: all 0.3s ease;
  text-transform: uppercase;
}
.dummy-form .form-footer button:hover,
.dummy-form .form-footer input[type=submit]:hover {
  background: #fff;
  color: #000;
}
.dummy-form .form-footer button.form-close-btn {
  border-color: rgba(255, 255, 255, 0.5);
  color: rgba(255, 255, 255, 0.5);
  padding: 15px clamp(20px, 5vw, 40px);
  font-size: min(2.2vw, 14px);
}
.dummy-form .form-footer button.form-close-btn:hover {
  border-color: #fff;
  color: #fff;
  background: rgba(255, 255, 255, 0.1);
}

/* ==========================================
   CF7フォームスタイル (Contact Form 7 用)
   .wpcf7-form は dummy-form と同じクラス構造を使用
   ========================================== */

/* CF7 が出力する .wpcf7 ラッパーを透過させる */
.top-contact-form .wpcf7 {
  display: block;
  margin: 0;
  padding: 0;
}

/* form-group〜form-footer: dummy-form と同じスタイルを .wpcf7-form にも適用 */
.top-contact-form .wpcf7-form {
  width: 100%;
  margin: 0 auto;
}
.top-contact-form .wpcf7-form .form-group {
  display: flex;
  align-items: center;
  margin-bottom: min(4vw, 30px);
  border-bottom: 1px solid rgba(255, 255, 255, 0.2);
  padding-bottom: 10px;
  transition: border-color 0.3s ease;
}
.top-contact-form .wpcf7-form .form-group:focus-within {
  border-color: #fff;
}
@media (max-width: 600px) {
  .top-contact-form .wpcf7-form .form-group {
    flex-direction: column;
    align-items: flex-start;
    gap: 10px;
  }
}
.top-contact-form .wpcf7-form .form-label {
  width: 35%;
  font-size: min(2.5vw, 18px);
  font-weight: bold;
  letter-spacing: 0.15em;
  color: #fff;
  text-transform: uppercase;
}
@media (max-width: 600px) {
  .top-contact-form .wpcf7-form .form-label {
    width: 100%;
  }
}
.top-contact-form .wpcf7-form .form-label .asterisk {
  color: #ff4d4d;
  margin-left: 4px;
}
.top-contact-form .wpcf7-form .form-input-wrap {
  width: 65%;
}
@media (max-width: 600px) {
  .top-contact-form .wpcf7-form .form-input-wrap {
    width: 100%;
  }
}
.top-contact-form .wpcf7-form .form-input-wrap .wpcf7-form-control-wrap {
  display: block;
  width: 100%;
}
.top-contact-form .wpcf7-form .form-input-text,
.top-contact-form .wpcf7-form .wpcf7-text,
.top-contact-form .wpcf7-form .wpcf7-email,
.top-contact-form .wpcf7-form .wpcf7-tel {
  width: 100%;
  background: rgba(255, 255, 255, 0.05);
  border: none;
  color: #fff;
  font-size: min(3vw, 22px);
  outline: none;
  padding: 8px 12px;
  border-radius: 4px;
  transition: background 0.3s ease;
}
.top-contact-form .wpcf7-form .form-input-text:focus,
.top-contact-form .wpcf7-form .wpcf7-text:focus,
.top-contact-form .wpcf7-form .wpcf7-email:focus,
.top-contact-form .wpcf7-form .wpcf7-tel:focus {
  background: rgba(255, 255, 255, 0.1);
}
.top-contact-form .wpcf7-form .form-textarea,
.top-contact-form .wpcf7-form .wpcf7-textarea {
  width: 100%;
  background: #fff;
  color: #000;
  border: none;
  height: min(20vw, 180px);
  min-height: 120px;
  padding: 15px;
  outline: none;
  margin-top: 10px;
  border-radius: 4px;
  font-size: 16px;
  resize: vertical;
}
.top-contact-form .wpcf7-form .checkbox-group {
  display: flex;
  gap: min(5vw, 40px);
  flex-wrap: wrap;
}
.top-contact-form .wpcf7-form .checkbox-item {
  display: flex;
  align-items: center;
  gap: 12px;
  cursor: pointer;
  font-size: min(3vw, 20px);
  font-weight: bold;
  color: #fff;
}
.top-contact-form .wpcf7-form .checkbox-item input {
  width: 20px;
  height: 20px;
  cursor: pointer;
}
/* CF7 が出力するチェックボックス固有クラスのスタイル */
.top-contact-form .wpcf7-form .wpcf7-checkbox {
  display: flex;
  gap: min(5vw, 40px);
  flex-wrap: wrap;
}
.top-contact-form .wpcf7-form .wpcf7-list-item {
  display: flex;
  align-items: center;
  gap: 6px;
  cursor: pointer;
  color: #fff;
  margin: 0;
}
.top-contact-form .wpcf7-form .wpcf7-list-item input[type="checkbox"] {
  width: 20px;
  height: 20px;
  cursor: pointer;
  margin: 0;
}
.top-contact-form .wpcf7-form .wpcf7-list-item-label {
  font-size: min(2.5vw, 16px);
  color: #fff;
  letter-spacing: 0.05em;
}
.top-contact-form .wpcf7-form .form-footer {
  text-align: center;
  margin-top: clamp(30px, 8vw, 60px);
  border-top: 1px solid rgba(255, 255, 255, 0.2);
  padding-top: clamp(30px, 8vw, 50px);
  display: flex;
  justify-content: center;
  gap: 20px;
}
@media (max-width: 480px) {
  .top-contact-form .wpcf7-form .form-footer {
    flex-direction: column-reverse;
    gap: 15px;
  }
}
.top-contact-form .wpcf7-form .form-footer button,
.top-contact-form .wpcf7-form .form-footer input[type=submit] {
  background: none;
  border: 1px solid #fff;
  color: #fff;
  padding: 15px clamp(30px, 10vw, 80px);
  font-size: min(2.5vw, 16px);
  letter-spacing: 0.3em;
  cursor: pointer;
  transition: all 0.3s ease;
  text-transform: uppercase;
}
.top-contact-form .wpcf7-form .form-footer button:hover,
.top-contact-form .wpcf7-form .form-footer input[type=submit]:hover {
  background: #fff;
  color: #000;
}
.top-contact-form .wpcf7-form .form-footer button.form-close-btn {
  border-color: rgba(255, 255, 255, 0.5);
  color: rgba(255, 255, 255, 0.5);
  padding: 15px clamp(20px, 5vw, 40px);
  font-size: min(2.2vw, 14px);
}
.top-contact-form .wpcf7-form .form-footer button.form-close-btn:hover {
  border-color: #fff;
  color: #fff;
  background: rgba(255, 255, 255, 0.1);
}
.top-contact-form .wpcf7-form .wpcf7-spinner {
  display: none;
}

/*# sourceMappingURL=style.css.map */