/* common */
* {
  box-sizing: border-box;
  margin: 0;
  padding: 0;
}
html {
  font-family: "A1 Gothic R", Amiko, Helvetica, "游ゴシック Medium", "Yu Gothic Medium", 游ゴシック体, YuGothic, a-otf-midashi-go-mb31-pr6n, "Hiragino Kaku Gothic ProN", Meiryo, sans-serif;
  font-size: 14px;
  margin: 0;
  padding: 0;
  scroll-behavior: smooth;
}
img {
  width: 100%;
  display: block;
}
ul {
  list-style-type: none;
  padding: 0;
  margin: 0;
}
a {
  text-decoration: none;
  display: block;
}
.br-sp {
  display: none;
}
.bold {
  font-weight: bold;
}
.line_font {
  font-family: "LINE Seed JP", sans-serif;
  font-style: normal;
}
@media (max-width: 600px) {
  .br-sp {
    display: block;
  }
}

/* SP-------------------------------*/
#wapper {
  margin-top: 14%;
}
.cta_fix {
  position: fixed;
  bottom: 10px;
  left: 50%;
  transform: translateX(-50%);
  width: 95%;
  z-index: 5;
}
.target {
  scroll-margin-top: 60px;
}
/* header */
header {
  position: fixed;
  width: 100%;
  top: 0;
  background: #fff;
  padding: 3% 4%;
  box-shadow: 0px 8px 5px -6px rgba(148, 148, 148, 0.3);
  z-index: 5;
}
header .logo {
  width: 45%;
}
/* ハンバーガー */
.menu-wrapper {
  position: relative;
}
.menu-icon {
  width: 32px;
  height: 30px;
  position: fixed; /* ← fixedにして常に左上固定 */
  top: 9px;
  right: 15px;
  cursor: pointer;
  z-index: 3;
  display: inline-block;
}
.menu-icon span {
  display: block;
  height: 3px;
  margin: 6px 0;
  background: #000;
  transition: 0.4s;
}
/* ハンバーガーがXに変形 */
#menu-toggle:checked + .menu-icon span:nth-child(1) {
  transform: translateY(10px) rotate(45deg);
}
#menu-toggle:checked + .menu-icon span:nth-child(2) {
  opacity: 0;
}
#menu-toggle:checked + .menu-icon span:nth-child(3) {
  transform: translateY(-10px) rotate(-45deg);
}
/* オーバーレイ背景 */
.overlay {
  position: fixed;
  inset: 0;
  background: rgba(0,0,0,0.5);
  opacity: 0;
  pointer-events: none;
  transition: 0.4s;
  z-index: 1;
}
#menu-toggle:checked ~ .overlay {
  opacity: 1;
  pointer-events: auto;
}
/* メニュー本体（左から出す） */
.menu {
  position: fixed;
  top: 0;
  right: -300px; /* ← 初期位置を左へ */
  width: 300px;
  height: 100%;
  background: #fff;
  box-shadow: 2px 0 8px rgba(60, 60, 60, 0.2);
  transition: right 0.4s ease;
  z-index: 2;
}
#menu-toggle:checked ~ .menu {
  right: 0; /* ← 開いたときは左0へ */
}
.menu ul {
  list-style: none;
  padding: 40% 0 0 12%;
}
.menu li {
  margin: 0 0 20%;
}
header nav a {
  font-family: "LINE Seed JP", sans-serif;
  font-style: normal;
  font-weight: bold;
  font-size: 5vw;
  text-decoration: none;
  transition: color 0.3s;
  color: #000;
}
/* mv */
.mv h1 {
  width: 90%;
  margin: 0 0 0 auto;
  position: relative;
}
.mv h1::before {
  content: "";
  position: absolute;
  width: 35%;
  height: 50%;
  background: url(../img/kv_icon.png) no-repeat;
  background-size: 100%;
  left: -10%;
  top: 5%;
  animation: blinking 1s ease-in-out infinite alternate;
}
@keyframes blinking {
  0%   { opacity: 0; }
  100% { opacity: 1; }
}
.mv .fix {
  padding: 8% 5%;
}
.mv h2 {
  width: 75%;
  margin: 0 0 8%;
}
.mv .catch {
  margin: 0 0 5%;
}
.mv .txt {
  margin: 0 0 5%;
}

/* number */
.about {
  background: #E5E5E5;
  padding: 10% 5%;
  margin-bottom: 15%;
}
.about h2 {
  text-align: center;
  line-height: 2;
  letter-spacing: 0.1em;
  margin-bottom: 10%;
}
.about h2 .ruby {
  color: #C8C8C8;
}
.about .list li {
  background: #fff;
  margin-bottom: 5%;
  padding: 5%;
  text-align: center;
}
.about .list li .img {
  margin-bottom: 5%;
}
.about .list li .title {
  margin-bottom: 5%;
}
.about .attention {
  text-align: center;
  font-size: 3vw;
}

/* vision */
.vision {
  margin-bottom: 15%;
}
.vision h2 {
  text-align: center;
  line-height: 2;
  letter-spacing: 0.1em;
  margin-bottom: 5%;
}
.vision h2 .ruby {
  color: #C8C8C8;
}
.vision .txt {
  text-align: center;
  margin-bottom: 8%;
}

/* brand */
.brand {
  background: #454545;
  padding: 8% 5%;
}
.brand h2 {
  text-align: center;
  line-height: 2;
  letter-spacing: 0.1em;
  margin-bottom: 10%;
}
.brand h2 .ruby {
  color: #C8C8C8;
}
.brand h2 .kana {
  color: #fff;
}
.brand ul li {
  background: #fff;
  margin-bottom: 5%;
}
.brand ul li .title {
  padding: 0 5% 5%;
  color: #000;
  font-weight: bold;
  font-size: 5vw;
  display: inline-block;
  position: relative;
  font-family: "LINE Seed JP", sans-serif;
  font-style: normal;
}
.brand ul li .title::after {
  position: absolute;
  content: "";
  background: url(../img/brand_arrow.png) no-repeat;
  background-size: 100%;
  width: 20px;
  height: 30px;
  right: -10%;
  top: 50%;
  transform: translateY(-50%);
}
.brand ul li .txt {
  padding: 0 5% 5%;
}
.brand ul li a {
  color: #000;
}
/* relief */
.relief {
  background: #E5E5E5;
  padding: 8% 5%;
  margin-bottom: 15%;
}
.relief h2 {
  text-align: center;
  line-height: 2;
  letter-spacing: 0.1em;
  margin-bottom: 10%;
}
.relief h2 .ruby {
  color: #C8C8C8;
}
.relief ul li {
  background: #fff;
  margin-bottom: 5%;
  padding: 5% 0 0;
}
.relief ul li .img {
  margin: 0 0 5%;
}
.relief ul li .title {
  padding: 0 5% 5%;
  color: #000;
  font-weight: bold;
  font-size: 5vw;
  display: inline-block;
  position: relative;
  font-family: "LINE Seed JP", sans-serif;
  font-style: normal;
}
.relief ul li .txt {
  padding: 0 5% 5%;
}

/* voice */
.voice {
  margin-bottom: 15%;
}
.voice h2 {
  text-align: center;
  line-height: 2;
  letter-spacing: 0.1em;
  margin-bottom: 5%;
}
.voice h2 .ruby {
  color: #C8C8C8;
}
.voice .tadaden {
  margin-bottom: 10%;
}
.voice .tadaden .phone,.voice .bit .phone {
  background: url(../img/tadaden_bg.png) no-repeat;
  background-size: 100%;
  height: 289px;
  overflow: hidden;
  margin-bottom: 5%;
}
.voice .tadaden .voice_slider,.voice .bit .voice_slider {
  width: 250%;
  margin: 5% 0;
  animation: infinity-scroll-left 80s infinite linear 0.5s both;
  z-index: -1;
}
	@keyframes infinity-scroll-left {
from {
  transform: translateX(0);
}
  to {
  transform: translateX(-100%);
}
}
.voice .bit .txt {
  text-align: center;
  font-weight: bold;
  font-size: 5.5vw;
  margin-bottom: 5%;
background: linear-gradient(90deg, #0092CC 0%, #58E9D8 80%);
  -webkit-background-clip: text;
  -webkit-text-fill-color: transparent;
}
.voice .bit .voice_slider {
  width: 310%;
}
.voice .bit .phone {
  background: url(../img/bit_bg.png) no-repeat;
  background-size: 100%;
}
.voice .attention {
  font-size: 3vw;
  text-align: center;
}

/* ついてくるボタン */
#toTopBtn_sp {
  position: fixed;
  bottom: 1%;
  z-index: 999;
  opacity: 0; /* 初期は非表示 */
  pointer-events: none; /* 非表示中はクリック不可 */
  transition: opacity 0.3s;
}
#toTopBtn_sp.show {
  opacity: 1;
  pointer-events: auto; /* 表示時はクリック可能 */
}
#toTopBtn_sp .fix_txt {
  background: #454545;
  color: #fff;
  padding: 1% 1% 2% 2%;
  width: 88%;
  border-radius: 3px;
  margin: 0 auto 3%;
}

#toTopBtn_sp .fix_cta {
  width: 90%;
  margin: 0 auto;
}
.close_btn {
  position: absolute;
  top: 3%;
  right: 7%;
  z-index: 10;
  border: none;
  background: transparent;
  font-size: 1.3rem;
  line-height: 1;
  cursor: pointer;
  padding: 4px;
  color: #fff;
}


/* Q&A */
.qa h2 {
  text-align: center;
  line-height: 2;
  letter-spacing: 0.1em;
  margin-bottom: 5%;
}
.qa h2 .ruby {
  color: #C8C8C8;
}
.qa {
  width: 93%;
  margin: 0 auto 15%;
}
.qa h2 {
  margin-bottom: 15%;
}
.qa .qa_unit {
  margin-bottom: 8%;
}
.qa .qa_unit:last-child {
  margin-bottom: 0;
}
.qa .qa_unit .flex {
  display: -webkit-flex;
  display: flex;
  align-items: center;
  justify-content: center;
}
.qa .qa_unit .flex .qa_a {
  font-size: 1.5rem;
  text-align: center;
  width: 15%;
  font-weight: bold;
  display: inline-block;
  font-family: "Roboto", sans-serif;
  font-weight: bold;
  margin:0 auto;
  background: linear-gradient(90deg, #255c9e 0%, #2d9fff 25%, #8ed5ff 44%, #ffa59e 65%, #ff8b84 80%, #ff6f92 92%);
  -webkit-background-clip: text;
  -webkit-text-fill-color: transparent;
}
.qa .qa_unit .flex .qa_txt {
  width: 85%;
}
.qa .qa_q {
  margin: 0 auto 0 0;
  width: 10%;
  font-weight: bold;
}
.qa .qa_title {
  width: 90%;
}
.qa .qa_unit summary {
  display: flex;
  align-items: center; /* 上下中央 */
  justify-content: center; /* 左右中央も同時に行う場合 */
  position: relative;
  font-weight: 600;
  cursor: pointer;
  border-bottom: 1px solid;
  border-image: linear-gradient(to right, #255C9E, #2D9FFF, #8ED5FF, #FFA59E, #FF8B84, #FF6F92) 1;
  margin-bottom: 5%;
  padding: 0 2% 2% 0;
}
.qa .qa_unit summary::-webkit-details-marker {
  display: none;
}
.qa .qa_unit summary::after {
  transform: translateY(-25%) rotate(45deg);
  width: 7px;
  height: 7px;
  border-bottom: 3px solid #333333b3;
  border-right: 3px solid #333333b3;
  content: '';
  transition: transform .3s;
}
.qa .qa_unit[open] summary::after {
  transform: rotate(225deg);
}
.qa .qa_unit .flex {
  transform: translateY(-10px);
  opacity: 0;
  margin: 0;
  transition: transform .5s, opacity .5s;
}
.qa .qa_unit[open] .flex {
  transform: none;
  opacity: 1;
}
.qa .cta {
  width: 90%;
  margin: 0 auto;
}

/* last */
.last {
  margin-bottom: 15%;
}
.last p {
  color: #009FE0;
  text-align: center;
  font-size: 5vw;
  font-weight: bold;
  margin-bottom: 5%;
}
.last .app {
  display: -webkit-flex;
  display: flex;
  -webkit-justify-content: space-between;
  justify-content: space-between;
  width: 90%;
  margin: 0 auto;
}
.last .app li:first-child {
  width: 44%;
}
.last .app li:last-child {
  width: 52%;
}

/* company */
.company {
  background: #454545;
  color: #fff;
  border-radius: 10px 10px 0 0;
  padding: 5% 5% 15%;
}
.company h2 {
  line-height: 2;
  letter-spacing: 0.1em;
  margin-bottom: 10%;
}
.company h2 .ruby {
  color: #C8C8C8;
}
.company ul li {
  border-bottom: 1px solid #C8C8C8;
  line-height: 2;
  padding: 5% 0;
}
.company ul li:first-child {
  padding-top: 0;
}

/* footer */
.footer {
  padding: 8% 8% 28%;
  background: #FBFBFB;
}
.footer .footer_logo {
  width: 80%;
  margin-bottom: 10%;
}
.footer ul {
  margin-bottom: 10%;
}
.footer ul:last-child {
  margin-bottom: 0;
}
.footer ul li {
  margin-bottom: 2%;
}
.footer ul li a {
  color: #000;
}
.footer .app {
  display: -webkit-flex;
  display: flex;
}
.footer .app li:first-child {
  width: 32%;
  margin-right: 2%;
}
.footer .app li:last-child {
  width: 39%;
}
.footer .list span {
  background: #2D9FFF;
  color: #fff;
  border-radius: 5px;
  font-size: 0.8rem;
  padding: 1%;
}

/* スライダー -------------------------------*/
.slider_wrapper {
  display: -webkit-flex;
  display: flex;
  overflow: hidden;
  margin: 5% auto;
}
.slider_wrapper ul {
  display: -webkit-flex;
  display: flex;
  animation: scroll-left 20s linear infinite .5s both;
}
.slider_wrapper ul li {
  flex: 0 0 auto;
  width: calc(100% / 3);
  margin-right: 5%;
}
.slider_wrapper ul li:last-child {
  margin-right: 0;
}
/* CSSアニメーション */
@keyframes scroll-left {
  from {
    transform: translateX(0);
  }
  to {
    transform: translateX(-100%);
  }
}

/* カルーセル -------------------------------*/
.slider-window {
  overflow: hidden;
}

.slider-track {
  display: flex;
  transition: transform 0.5s ease;
}

.slide {
  flex: 0 0 40%;
  margin: 0 10px;
  border: 1px solid #C8C8C8;
  border-radius: 5px;
  padding: 3%;
  width: 80%;
}
.slide .title {
  font-weight: bold;
  margin-bottom: 3%;
}
.slide .txt {
  margin-bottom: 3%;
}
.slide .user {
  text-align: right;
}
/* 下のボタン */
.slider-controls {
  display: flex;
  justify-content: center;
  gap: 12px;
}
.slider-btn {
  width: 44px;
  height: 44px;
  border: none;
  background: #fff;
  border-radius: 50%;
  font-size: 28px;
  line-height: 1;
  cursor: pointer;
}
@media screen and (max-width: 768px) {
  .slide {
    flex: 0 0 59%;
    margin: 0 6px;
  }
  .slider-controls {
    margin-top: 5px;
  }
}
/* PC-------------------------------*/
@media screen and (max-width: 768px) {
	.pc {
    display: none;
  }
}

@media screen and (min-width: 481px) {
	/* 481px以上に適用されるCSS（タブレット用） */
}
@media screen and (min-width: 767px) {
  .sp {
    display: none;
  }
/* 全体 */
#wapper {
  margin-top: 12%;
}
.cta_fix {
  bottom: 20px;
  right: 20px;
  width: 200px;
  transform: none;
  left: auto;
}
.target {
  scroll-margin-top: 80px;
}
/* header */
header {
  width: 95%;
  margin: 1.5% auto 0;
  display: -webkit-flex;
  display: flex;
  -webkit-justify-content: space-between;
  justify-content: space-between;
  position: absolute;
  left: 50%;
  transform: translateX(-50%);
  box-shadow: 0px 0px 10px 0px rgba(119, 119, 119, 0.35);
  border-radius: 10px;
  padding: 1% 3%;
  position: fixed;
}
header .logo {
  width: 20%;
}
.menu-wrapper {
  display: none;
}
header nav {
  width: 60%;
  position: absolute;
  top: 50%;
  right: 3%;
  transform: translateY(-50%);
}
header nav ul {
  display: -webkit-flex;
  display: flex;
  -webkit-justify-content: space-between;
  justify-content: space-between;
}
header nav ul li a {
  font-size: 1.2vw;
}

/* mv */
.mv {
  display: -webkit-flex;
  display: flex;
  -webkit-justify-content: space-between;
  justify-content: space-between;
  margin-bottom: 10%;
}
.mv .fix {
  order: -1;
  width: 60%;
  margin: 0 0 0 10%;
  padding: 2% 10% 0 0;
}
.mv h1::before {
  width: 29%;
  top: -10%;
}

/* vision */
.about {
  padding: 4% 0 5%;
  margin-bottom: 5%;
}
.about h2 {
  margin-bottom: 30px;
}
.about h2 .kana {
  font-size: 44px;
}
.about .list {
  display: -webkit-flex;
  display: flex;
  -webkit-justify-content: space-between;
  justify-content: space-between;
  flex-wrap: wrap;
  width: 1000px;
  margin: 0 auto 20px;
}
.about .list li {
  width: calc(100% / 3 - 2%);
}
.about .list li:nth-child(-n+3) {
  margin-bottom: 3%;
}
.about .list li:nth-last-child(-n+3) {
  margin-bottom: 0;
}
.about .attention {
  font-size: 12px;
}

/* vision */
.vision {
  margin-bottom: 10%;
}
.vision h2 {
  margin-bottom: 30px;
}
.vision h2 .kana {
  font-size: 32px;
}
.vision .txt {
  margin-bottom: 30px;
  line-height: 2;
}
.vision .contents ul {
  width: 900px;
  margin: 0 auto;
  display: -webkit-flex;
  display: flex;
  -webkit-justify-content: space-between;
  justify-content: space-between;
}
.vision .contents ul li {
  width: calc(100% / 4 - 3%);
}

/* brand */
.brand {
  padding: 4% 0 5%;
}
.brand h2 {
  margin-bottom: 30px;
}
.brand h2 .kana {
  font-size: 32px;
}
.brand ul {
  width: 1000px;
  margin: 0 auto;
  display: -webkit-flex;
  display: flex;
  -webkit-justify-content: space-between;
  justify-content: space-between;
}
.brand ul li {
  width: calc(100% / 3 - 2%);
  transition: all 0.3s ease;
}
.brand ul li:hover {
  box-shadow: 0px 0px 15px 0px rgba(255, 255, 255, 0.8);
}
.brand ul li .title {
  font-size: 24px;
}

/* relief */
.relief {
  padding: 4% 0 5%;
  margin-bottom: 5%;
}
.relief h2 {
  margin-bottom: 30px;
}
.relief h2 .kana {
  font-size: 32px;
}
.relief ul {
  display: -webkit-flex;
  display: flex;
  flex-wrap: wrap;
  width: 1000px;
  margin: 0 auto;
    -webkit-justify-content: center;
    justify-content: center;
}
.relief ul li {
  width: calc(100% / 3 - 2%);
  margin-right: 20px;
}
.relief ul li:nth-child(3),.relief ul li:last-child {
  margin-right: 0;
}
.relief ul li .title {
  font-size: 24px;
}
.relief ul li {
  padding: 20px 0 0;
}

/* voice */
.voice {
  margin-bottom: 5%;
}
.voice h3 {
  width: 400px;
  margin: 0 auto 20px;
}
.voice .img {
  width: 1000px;
  margin: 0 auto 20px;
}
.voice .tadaden {
  margin-bottom: 80px;
}
.voice .bit .txt {
  font-size: 30px;
  margin-bottom: 20px;
}
.voice .attention {
  font-size: 12px;
}
.voice .slider-wrap {
  width: 1000px;
  margin: 0 auto;
}

/* last */
.last {
  margin-bottom: 50px;
}
.last p {
  font-size: 20px;
  margin-bottom: 20px;
}
.last .app {
  width: 30%;
}

/* company */
.company {
  border-radius: 50px 50px 0 0;
  padding: 5% 0;
}
.company h2 {
  width: 1000px;
  margin: 0 auto 30px;
}
.company h2 .kana {
  font-size: 60px;
}
.company ul {
  width: 1000px;
  margin: 0 auto;
}
.company ul li {
  display: -webkit-flex;
  display: flex;
  padding-bottom: 20px;
}
.company ul li .title {
  width: 20%;
}

/* footer */
.footer {
  padding: 2% 5% 4%;
  line-height: 1.8;
}
.footer ul {
  margin-bottom: 0;
}
.footer .footer_logo {
  width: 20%;
  margin-bottom: 2%;
}
.footer .footer_flex {
    display: -webkit-flex;
    display: flex;
    -webkit-justify-content: space-between;
    justify-content: space-between;
}
.footer .footer_flex ul.app {
  width: 28%;
}
.footer .footer_flex .list {
  width: 20%;
  margin-bottom: 0;
}


#toTopBtn_pc {
  position: fixed;
  bottom: 1%;
  z-index: 999;
  opacity: 0; /* 初期は非表示 */
  pointer-events: none; /* 非表示中はクリック不可 */
  transition: opacity 0.3s;
  right: 0;
  padding: 1%;
}
#toTopBtn_pc.show {
  opacity: 1;
  pointer-events: auto; /* 表示時はクリック可能 */
}
#toTopBtn_pc .fix_txt {
  background: #454545;
  color: #fff;
  padding: 2% 2% 2% 4%;
  width: 88%;
  border-radius: 3px;
  margin: 0 0 3% auto;
}
#toTopBtn_pc .fix_txt span {
  display: inline-block;
  margin-left: 6%;
  font-size: 1.3rem;
  cursor:pointer
}
#toTopBtn_pc .fix_cta {
  width:45%;
  margin: 0 0 0 auto;
}
.close_btn {
  top: 22px;
  right: 17px;
}

/* Q&A */
.qa {
  width: 1000px;
  margin: 0 auto 100px;
}
.qa h2 {
  margin-bottom: 5%;
}
.qa h2 .kana {
  font-size: 32px;
}
.qa .qa_unit {
  margin-bottom: 4%;
}
.qa .qa_q {
  font-size: 40px;
}
.qa .qa_unit .flex .qa_a {
  font-size: 40px;
}
.qa .qa_unit summary {
  margin-bottom: 2%;
}
}