@charset "UTF-8";
/*------------------------------------------------------------------------------
    config
------------------------------------------------------------------------------*/
/***  media ***/
/***  color ***/
/*** font ***/
/*------------------------------------------------------------------------------
    reset
------------------------------------------------------------------------------*/
html {
  font-size: 0.78125vw;
}
@media screen and (max-width: 849px) {
  html {
    font-size: 1vw;
  }
}
body {
  margin: 0;
  color: #000000;
  font-family: "Noto Sans JP", sans-serif;
  letter-spacing: 0;
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
  line-height: 1.8;
  font-weight: 400;
}
@media screen and (max-width: 849px) {
  body {
    font-size: 12px;
  }
}
ul {
  margin-block-start: 0;
  margin-block-end: 0;
  margin-inline-start: 0px;
  margin-inline-end: 0px;
  padding-inline-start: 0;
}
* {
  box-sizing: border-box;
}
*:before,
*:after {
  box-sizing: border-box;
}
img {
  width: 100%;
  border: 0;
  margin: 0;
  vertical-align: top;
  max-width: 100%;
  height: auto;
}
p {
  margin: 0 0 1em;
  padding: 0;
  margin-block-start: 0px;
  margin-block-end: 0px;
  margin-inline-start: 0px;
  margin-inline-end: 0px;
}
p:last-child {
  margin-bottom: 0;
}
a {
  cursor: pointer;
  color: #000000;
  text-decoration: none;
}
a:link,
a:visited {
  color: #000000;
  text-decoration: none;
}
input,
textarea,
select {
  font-family: "Noto Sans JP", sans-serif;
  border-radius: 0;
  outline: none;
}
table {
  border-collapse: collapse;
}
ul {
  list-style: none;
  margin: 0;
  padding: 0;
}
h1,
h2,
h3,
h4,
h5,
h6 {
  font-size: 14px;
  font-weight: normal;
  margin: 0;
  padding: 0;
  margin-block-start: 0;
  margin-block-end: 0;
}
#wrapper {
  position: relative;
  padding: 0;
  overflow: hidden;
}
dd,
dt {
  margin-block-start: 0;
  margin-block-end: 0;
  margin-inline-start: 0px;
  margin-inline-end: 0px;
}
dl {
  margin-block-start: 0;
  margin-block-end: 0;
  margin-inline-start: 0px;
  margin-inline-end: 0px;
}
.pc {
  display: block !important;
}
.sp {
  display: none !important;
}
/*------------------------------------------------------------------------------
    CSS reset
------------------------------------------------------------------------------*/
@media screen and (max-width: 849px) {
  body {
    position: static;
    -webkit-appearance: none;
    -webkit-text-size-adjust: 100%;
    font-size: 14px;
    line-height: 1.42;
  }
  #wrapper {
    min-width: 320px;
    position: relative;
  }
  img {
    width: 100%;
    max-width: 100%;
  }
  input[type="submit"] {
    -webkit-appearance: none;
    -webkit-text-size-adjust: 100%;
  }
  .pc {
    display: none !important;
  }
  .sp {
    display: block !important;
  }
}
body,
p {
  line-height: 1.875;
}
@media screen and (max-width: 849px) {
  body,
  p {
    line-height: 1.42;
  }
}
@media screen and (min-width: 850px) {
  a {
    transition: 0.3s ease-in-out;
  }
  a:hover {
    opacity: 0.7;
  }
}
button {
  outline: none;
}
.inner {
  max-width: 1220px;
  width: 100%;
  margin: auto;
  padding-left: 20px;
  padding-right: 20px;
  position: relative;
  text-align: center;
}
/*------------------------------------------------------------------------------
    フェードインのCSS
------------------------------------------------------------------------------*/
.scrollanime {
  opacity: 0;
}
/*一瞬表示されるのを防ぐ*/
.fadeInDown {
  -webkit-animation-name: fadeInDown;
  animation-name: fadeInDown;
  -webkit-animation-duration: 1.5s;
  animation-duration: 1.5s;
  -webkit-animation-fill-mode: forwards;
  animation-fill-mode: forwards;
}
@-webkit-keyframes fadeInDown {
  0% {
    opacity: 0;
  }
  100% {
    opacity: 1;
    -webkit-transform: translate(0);
    transform: translate(0);
  }
}
@keyframes fadeInDown {
  0% {
    opacity: 0;
  }
  100% {
    opacity: 1;
    -webkit-transform: translate(0);
    transform: translate(0);
  }
}
.scrollanime2 {
  opacity: 0;
}
/*一瞬表示されるのを防ぐ*/
.fadeInDown2 {
  -webkit-animation-name: fadeInDown;
  animation-name: fadeInDown;
  -webkit-animation-duration: 3s;
  animation-duration: 3s;
  -webkit-animation-fill-mode: forwards;
  animation-fill-mode: forwards;
}
@-webkit-keyframes fadeInDown2 {
  0% {
    opacity: 0;
  }
  100% {
    opacity: 1;
    -webkit-transform: translate(0);
    transform: translate(0);
  }
}
@keyframes fadeInDown2 {
  0% {
    opacity: 0;
  }
  100% {
    opacity: 1;
    -webkit-transform: translate(0);
    transform: translate(0);
  }
}
/*2.上下の動きを指定*/
.updown {
  -webkit-transform: translateY(-100px);
  transform: translateY(-100px);
}
.downup {
  -webkit-transform: translateY(30px);
  transform: translateY(30px);
}
.leftin {
  -webkit-transform: translateX(-30px);
  transform: translateX(-30px);
}
.rightin {
  -webkit-transform: translateX(30px);
  transform: translateX(30px);
}
/*3.左右の動きを指定*/
.sect02 {
  overflow: hidden;
}
/*横スクロールバーを隠す*/
.slide-right {
  -webkit-transform: translateX(200px);
  transform: translateX(200px);
}
.slide-left {
  -webkit-transform: translateX(-200px);
  transform: translateX(-200px);
}
/* ---------------------------------------------
*   js_fadein_up
--------------------------------------------- */
.js_fadein_up {
  opacity: 0;
  transform: translateY(50px);
}
.js_fadein_up.is-active {
  transform: translateY(0);
  animation-delay: 0.5s;
  opacity: 1;
  transition: transform 0.8s, opacity 0.5s;
}
.js_fadein_up_d {
  opacity: 0;
  transform: translateY(50px);
}
.js_fadein_up_d.is-active_d {
  transform: translateY(0);
  animation-delay: 2s;
  opacity: 1;
  transition: transform 2.8s, opacity 4.5s;
}
/* -------------------------------フェードインのCSS */
/*------------------------------------------------------------------------------
    header
------------------------------------------------------------------------------*/
.is-show {
  top: 0 !important;
  visibility: visible !important;
  transition: 0.3s ease-in-out;
}
.all_body_hide {
  overflow: hidden !important;
}
.wrapper_bg_lb {
  width: 100%;
  height: 100%;
  background: rgba(0, 0, 0, 0.64);
  position: absolute;
  left: 0;
  top: 0;
  z-index: -10;
  opacity: 0;
  transition: 0.3s ease-in-out;
  cursor: pointer;
}
.lb_box {
  position: fixed;
  width: 100%;
  height: 100%;
  z-index: 299;
  display: flex;
  align-items: center;
  justify-content: center;
  z-index: -10;
  opacity: 0;
  transition: 0.3s ease-in-out;
  cursor: pointer;
}
@media screen and (max-width: 849px) {
  .lb_box {
    width: 90%;
    margin-left: 5%;
  }
}
.lb_box .li_box_item {
  max-width: 830px;
  border-radius: 5px;
  margin: auto;
  width: 100%;
  background: #ffffff;
  height: fit-content;
  min-height: 680px;
  padding: 53px 20px 20px 32px;
  position: relative;
  display: none;
}
@media screen and (max-width: 849px) {
  .lb_box .li_box_item {
    padding: 20px 35px;
    min-height: 520px;
  }
}
@media screen and (max-width: 550px) {
  .lb_box .li_box_item {
    min-height: 430px;
  }
}
.lb_box .li_box_item.is-show {
  display: block;
}

.lb_box .li_box_item_wrap {
  position: relative;
  width: 100%;
  max-width: 830px;
  margin: auto;
}

.lb_box .li_box_item_wrap .lb_l_btn {
  position: absolute;
  top: 45%;
  left: 35px;
  width: 40px;
  height: 40px;
  cursor: pointer;
  z-index: 10;
}
@media screen and (max-width: 849px) {
  .lb_box .li_box_item_wrap .lb_l_btn {
    width: 25px;
    height: 25px;
    left: 5px;
  }
}

.lb_box .li_box_item_wrap .lb_r_btn {
  position: absolute;
  top: 45%;
  right: 35px;
  width: 40px;
  height: 40px;
  cursor: pointer;
  z-index: 10;
}
@media screen and (max-width: 849px) {
  .lb_box .li_box_item_wrap .lb_r_btn {
    width: 25px;
    height: 25px;
    right: 5px;
  }
}
@media screen and (max-width: 849px) {
  .lb_box .li_box_item_wrap .lb_l_btn::after,
  .lb_box .li_box_item_wrap .lb_r_btn::after {
    content: "";
    position: absolute;
    top: 50%;
    left: 50%;
    width: 48px;
    height: 64px;   /* 縦長にして親指で押しやすく */
    transform: translate(-50%, -50%);
  }
}

.lb_box .li_box_item .li_box_item_txt {
  max-width: 586px;
  margin: auto;
}
.lb_box .li_box_item .li_box_item_txt .yb {
  width: 100%;
  aspect-ratio: 16 / 9;
}
.lb_box .li_box_item .li_box_item_txt .yb iframe {
  width: 100%;
  height: 100%;
}
.lb_box .li_box_item .li_box_item_txt .ttl_box {
  margin-top: 5px;
  display: flex;
  justify-content: space-between;
  align-items: end;
  border-bottom: 1px solid #CBCBCB;
  padding-bottom: 12px;
}
.lb_box .li_box_item .li_box_item_txt .ttl_box .num_box {
  display: flex;
  width: fit-content;
}
.lb_box .li_box_item .li_box_item_txt .ttl_box .num {
  color: #F18900;
  font-family: "Barlow Condensed", sans-serif;
  font-size: 50px;
  font-style: italic;
  text-align: left;
  font-weight: 500;
  line-height: 1.01;
  margin-right: 28px;
}
@media screen and (max-width: 849px) {
  .lb_box .li_box_item .li_box_item_txt .ttl_box .num {
    font-size: 23px;
    text-align: left;
    margin-right: 8px;
  }
}
.lb_box .li_box_item .li_box_item_txt .ttl_box .en_ttl {
  text-align: left;
  font-family: "Barlow Condensed", sans-serif;
  font-size: 35px;
  line-height: 1.01;
  font-weight: 600;
  margin-top: 15px;
}
@media screen and (max-width: 849px) {
  .lb_box .li_box_item .li_box_item_txt .ttl_box .en_ttl {
    margin-top: 5px;
    font-size: 18px;
  }
}
.lb_box .li_box_item .li_box_item_txt .ttl_box .jp_ttl {
  font-weight: bold;
  font-size: 14px;
  line-height: 2;
  width: fit-content;
}
@media screen and (max-width: 849px) {
  .lb_box .li_box_item .li_box_item_txt .ttl_box .jp_ttl {
    font-size: 11px;
  }
}
.lb_box .li_box_item .li_box_item_txt .txt {
  margin-top: 14px;
  text-align: left;
  font-size: 14px;
  font-weight: 500;
  line-height: 1.61;
}
@media screen and (max-width: 849px) {
  .lb_box .li_box_item .li_box_item_txt .txt {
    font-size: 12px;
  }
}
.lb_box .li_box_item .li_box_item_txt .lb_close {
  cursor: pointer;
  width: fit-content;
  margin: auto;
  margin-top: 40px;
  position: relative;
  padding-right: 26px;
  font-size: 14px;
  font-weight: 400;
}
@media screen and (max-width: 849px) {
  .lb_box .li_box_item .li_box_item_txt .lb_close {
    padding-right: 20px;
    font-size: 12px;
    margin-top: 20px;
  }
}
.lb_box .li_box_item .li_box_item_txt .lb_close::after {
  position: absolute;
  content: "";
  width: 18px;
  height: 18px;
  right: 0;
  top: 50%;
  z-index: 60;
  -webkit-transform: translateY(-50%);
  -ms-transform: translateY(-50%);
  transform: translateY(-50%);
  background: url(../img/close_after.png) no-repeat center / contain;
  transition: 0.3s ease-in-out;
  background-size: 100% 100%;
}
@media screen and (max-width: 849px) {
  .lb_box .li_box_item .li_box_item_txt .lb_close::after {
    width: 15px;
    height: 15px;
  }
}
/* ターゲットサイズ上げ */
@media screen and (max-width: 849px) {
  .lb_box .li_box_item .li_box_item_txt .lb_close::before {
    content: "";
    position: absolute;
    top: 50%;
    left: 50%;
    transform: translate(-50%, -50%);
    width: calc(100% + 40px);   /* テキスト幅＋左右20px */
    height: 48px;
  }
}
.lb_box .li_box_item .li_box_item_txt .sub_list {
  display: flex;
  flex-wrap: wrap;
  gap: 11px;
  column-gap: 10px;
  margin-top: 18px;
}
@media screen and (max-width: 849px) {
  .lb_box .li_box_item .li_box_item_txt .sub_list {
    gap: 8px;
    column-gap: 8px;
    margin-top: 10px;
  }
}
.lb_box .li_box_item .li_box_item_txt .sub {
  width: fit-content;
  border: 1px solid #000000;
  font-size: 14px;
  font-weight: 500;
  padding: 0 10px;
  border-radius: 2px;
  line-height: 23px;
}
@media screen and (max-width: 849px) {
  .lb_box .li_box_item .li_box_item_txt .sub {
    font-size: 12px;
    line-height: 20px;
    padding: 0 8px;
  }
}
.wrapper_bg {
  width: 100%;
  height: 100%;
  background: rgba(0, 0, 0, 0.64);
  position: absolute;
  left: 0;
  top: 0;
  z-index: -10;
  opacity: 0;
  transition: 0.3s ease-in-out;
}
.bg_show {
  opacity: 1 !important;
  z-index: 299;
  transition: 0.3s ease-in-out;
}
.lb_show {
  opacity: 1 !important;
  z-index: 399;
  transition: 0.3s ease-in-out;
}
#header {
  width: 100%;
  position: fixed;
  top: 0;
  left: 0;
  z-index: 999999;
  align-items: center;
  display: flex;
  top: -80px;
  visibility: hidden;
}
#header .inner {
  max-width: 1220px;
}
@media screen and (max-width: 1100px) {
  #header .inner {
    padding-left: 10px;
    padding-right: 10px;
  }
}
@media screen and (max-width: 849px) {
  #header .inner {
    padding-left: 22px;
    padding-right: 22px;
  }
}
#header .header_item {
  display: flex;
  position: relative;
  align-items: center;
  margin: auto;
  width: 100%;
  height: 60px;
  padding-right: 62px;
  padding-top: 12px;
}
@media screen and (max-width: 849px) {
  #header .header_item {
    padding: 0 ;
    align-items: center;
    justify-content: center;
    width: auto;
    display: flex;
    height: 38px;
    width: 100%;
    padding-right: 0;
  }
}
#header .header_item .logo_item {
  display: flex;
  align-items: center;
}
#header .header_item .logo_item .logo {
  margin: auto;
  display: flex;
  align-items: center;
}
#header .header_item .logo_item .logo .logo_img {
  max-width: 251px;
  margin-right: 24px;
}
@media screen and (max-width: 849px) {
  #header .header_item .logo_item .logo .logo_img {
    max-width: 141px;
    margin-right: 14px;
  }
}
#header .header_item .logo_item .logo .logo_img .hidden {
  display: none;
}
#header .header_item .logo_item .logo .logo_txt {
  font-size: 14px;
  line-height: 34px;
  width: fit-content;
  color: #ffffff;
  border: 1px solid #ffffff;
  padding: 0 15px;
}
@media screen and (max-width: 849px) {
  #header .header_item .logo_item .logo .logo_txt {
    line-height: 19px;
    font-size: 8px;
    padding: 0 8px;
  }
}
#header .menu_logo {
  display: none;
}
@media screen and (max-width: 849px) {
  #header .menu_logo {
    display: block;
    position: absolute;
    max-width: 220px;
    margin: auto;
    margin-left: 0;
    z-index: 999999999;
    left: 25px;
    top: 16px;
  }
}
#header .line_box {
  display: flex;
  column-gap: 20px;
  width: fit-content;
  margin: auto;
  margin-right: 0;
  position: relative;
  z-index: 999999;
}
@media screen and (max-width: 849px) {
  #header .line_box {
    display: none;
  }
}
#header .line_box a {
  display: block;
  padding: 0 45px;
  line-height: 40px;
  background: #5CB74F;
  color: #ffffff;
  font-size: 16px;
  font-weight: bold;
  border-radius: 45px;
}
@media screen and (max-width: 849px) {
  #header .line_box a {
    line-height: 35px;
    padding: 0 30px;
    font-size: 14px;
  }
}
#header .menu_item {
  display: flex;
  align-items: center;
  justify-content: end;
  text-align: right;
  margin: auto;
  margin-right: 0;
}
@media screen and (max-width: 849px) {
  #header .menu_item {
    width: auto;
  }
}
#header .menu_item .pc_submenu {
  display: flex;
  margin-bottom: 10px;
}
@media screen and (max-width: 1080px) {
  #header .menu_item .pc_submenu {
    margin-bottom: 5px;
  }
}
@media screen and (max-width: 849px) {
  #header .menu_item .pc_submenu {
    display: none;
  }
}
#header .menu_item .navli {
  display: block;
}
@media screen and (max-width: 849px) {
  #header .menu_item .navli {
    display: none !important;
  }
}
#header .menu_item .navli .sub_menu a::before {
  display: block;
}
@media screen and (max-width: 849px) {
  #header .menu_item .navli {
    height: auto !important;
  }
  #header .menu_item .navli .menu_te span {
    display: none !important;
  }
}
#header .menu_item #menu_list {
  display: none;
  height: 100vh;
  width: 600px;
  position: fixed;
  top: 0;
  right: -600px;
  z-index: 99999;
  text-align: center;
  background: #222222;
  transition: 0.3s ease-in-out;
  color: #ffffff;
}
@media screen and (max-width: 849px) {
  #header .menu_item #menu_list {
    width: 100%;
    right: -100%;
    overflow-y: scroll;
  }
}
#header .menu_item #menu_list .menu_list_box {
  width: 100%;
  padding: 160px 45px 45px 45px;
}
@media screen and (max-width: 849px) {
  #header .menu_item #menu_list .menu_list_box {
    padding: 100px 25px 25px 25px;
  }
}
#header .menu_item #menu_list .menu_list_box .menu_list_box_after {
  width: 100%;
  height: 100%;
  right: 0;
  top: 0;
  position: absolute;
}
#header .menu_item #menu_list .menu_list_box .header_copy {
  text-align: center;
  font-family: "Barlow Condensed", sans-serif;
  padding-top: 15px;
  border-top: 1px solid #363636;
  font-size: 12px;
  font-weight: 400;
  line-height: 1.61;
  letter-spacing: 0.07em;
}
#header .menu_item #menu_list .main_menu {
  display: block;
  position: relative;
  z-index: 50;
  max-width: 300px;
  padding-left: 30px;
  min-height: 75vh;
}
@media screen and (max-width: 849px) {
  #header .menu_item #menu_list .main_menu {
    display: block;
  }
}
#header .menu_item #menu_list .main_menu li {
  position: relative;
  align-items: center;
  display: flex;
}
@media screen and (max-width: 849px) {
  #header .menu_item #menu_list .main_menu li {
    display: block;
  }
}
#header .menu_item #menu_list .main_menu li a {
  display: block;
  color: #ffffff;
  font-weight: 500;
  line-height: 1.285;
  transition: 0.3s ease-in-out;
  font-size: 14px;
  text-align: center;
  padding-bottom: 20px;
  padding-top: 20px;
  position: relative;
  width: 100%;
  text-align: left;
}
#header .menu_item #menu_list .main_menu li a::after {
  position: absolute;
  content: "";
  width: 20px;
  height: 20px;
  right: 0;
  top: 50%;
  z-index: 60;
  -webkit-transform: translateY(-50%);
  -ms-transform: translateY(-50%);
  transform: translateY(-50%);
  background: url(../img/main_menu_a_after.png) no-repeat center / contain;
  transition: 0.3s ease-in-out;
  background-size: 100% 100%;
}
#header .menu_item #menu_list .main_menu li a:hover {
  opacity: 1;
  color: #F18900;
}
#header .menu_item #menu_list .main_menu li a:hover:after {
  background: url(../img/main_menu_a_after_on.png) no-repeat center / contain;
  transition: 0.3s ease-in-out;
  background-size: 100% 100%;
}
#header .menu_item #menu_list .main_menu li + li {
  border-top: 1px solid #494949;
}
#header .menu_item #menu_list .main_menu .last {
  border-bottom: 1px solid #494949;
}
#header .menu_item #menu_list .main_menu .sp_btn {
  display: none;
}
@media screen and (max-width: 849px) {
  #header .menu_item #menu_list .main_menu .sp_btn {
    padding-top: 20px;
    display: block;
  }
  #header .menu_item #menu_list .main_menu .sp_btn .line_box {
    width: 100%;
    display: flex;
  }
  #header .menu_item #menu_list .main_menu .sp_btn .line_box a {
    padding: 0;
    width: calc(50% - 10px);
    text-align: center;
    line-height: 35px;
  }
  #header .menu_item #menu_list .main_menu .sp_btn .line_box a::after {
    display: none;
  }
}
#header .menu_item .menu_list_open {
  transition: 0.3s ease-in-out;
  right: -450px;
  display: flex !important;
  -webkit-animation-name: fadeopen;
  animation-name: fadeopen;
  -webkit-animation-duration: 0.6s;
  animation-duration: 0.6s;
  -webkit-animation-fill-mode: forwards;
  animation-fill-mode: forwards;
}
@-webkit-keyframes fadeopen {
  0% {
    opacity: 1;
    right: -450px;
  }
  100% {
    opacity: 1;
    right: 0;
    -webkit-transform: translate(0);
    transform: translate(0);
  }
}
#header .menu_item .menu_list_close {
  transition: 0.3s ease-in-out;
  right: -850px;
  display: block !important;
  -webkit-animation-name: fadeclose;
  animation-name: fadeclose;
  -webkit-animation-duration: 0.6s;
  animation-duration: 0.6s;
  -webkit-animation-fill-mode: forwards;
  animation-fill-mode: forwards;
}
@-webkit-keyframes fadeclose {
  0% {
    opacity: 1;
    right: 0;
  }
  100% {
    opacity: 1;
    right: -850px;
    -webkit-transform: translate(0);
    transform: translate(0);
  }
}
#header .menu_item .show {
  display: block !important;
  transition: 0.3s ease-in-out;
}
#header .menu_item .hide {
  display: none !important;
  transition: 0.3s ease-in-out;
}
#header #menuBtn {
  cursor: pointer;
  width: 40px;
  height: 40px;
  position: absolute;
  right: 0;
  top: 20px;
  z-index: 99999999999999999999;
  border-radius: 5px;
  background: rgba(0, 0, 0, 0.5);
}
@media screen and (max-width: 849px) {
  #header #menuBtn {
    width: 35px;
    height: 35px;
    border-radius: 3px;
    top: 10px;
  }
}
@media screen and (max-width: 849px) {
  #header #menuBtn::after {
    content: "";
    position: absolute;
    top: 50%;
    left: 50%;
    width: 48px;
    height: 48px;
    transform: translate(-50%, -50%);
  }
}
#header #menuBtn span {
  display: block;
  background: #ffffff;
  width: 18px;
  height: 1px;
  position: absolute;
  left: 0;
  right: 0;
  margin: auto;
}
@media screen and (max-width: 849px) {
  #header #menuBtn span {
    width: 15px;
  }
}
#header #menuBtn span:nth-child(1) {
  bottom: 15px;
  transition: 0.3s ease-in-out;
}
@media screen and (max-width: 849px) {
  #header #menuBtn span:nth-child(1) {
    bottom: 14.5px;
  }
}
#header #menuBtn span:nth-child(2) {
  bottom: 20px;
  transition: 0.3s ease-in-out;
}
@media screen and (max-width: 849px) {
  #header #menuBtn span:nth-child(2) {
    bottom: 17.5px;
  }
}
#header #menuBtn span:nth-child(3) {
  bottom: 25px;
  transition: 0.3s ease-in-out;
}
@media screen and (max-width: 849px) {
  #header #menuBtn span:nth-child(3) {
    bottom: 20.5px;
  }
}
#header #menuBtn.isOpen span:not(.txt):nth-child(1) {
  width: 18px;
  left: -1px;
  transform: translateY(-5px) rotate(-45deg);
}
@media screen and (max-width: 849px) {
  #header #menuBtn.isOpen span:not(.txt):nth-child(1) {
    width: 15px;
    left: 0;          /* PC側の left:-1px を打ち消す */
    bottom: 17.5px;   /* ボタンの縦中央（35px ÷ 2） */
    transform: rotate(-45deg);
  }
}
#header #menuBtn.isOpen span:not(.txt):nth-child(2) {
  display: none;
  transition: 0.3s ease-in-out;
}
#header #menuBtn.isOpen span:not(.txt):nth-child(3) {
  width: 18px;
  left: -1px;
  transform: translateY(5px) rotate(45deg);
  transition: 0.3s ease-in-out;
}
@media screen and (max-width: 849px) {
  #header #menuBtn.isOpen span:not(.txt):nth-child(3) {
    width: 15px;
    left: 0;
    right: 0;
    bottom: 17.5px;   /* nth-child(1) と同じ中央に重ねる */
    transform: rotate(45deg);
  }
}
.mv {
  background-color: rgba(0, 0, 0, 0.7);
  min-height: 760px;
  padding-bottom: 40px;
  padding-top: 100px;
  position: relative;
  z-index: 20;
}
@media screen and (max-width: 849px) {
  .mv {
    padding-bottom: 20px;
    padding-top: 62px;
    min-height: 465px;
  }
}
/* ★ 追加：背景動画 */
.mv .mv_bg_video {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  object-fit: cover;
  z-index: -2;
  pointer-events: none;
}
.mv::after {
  content: "";
  width: 100%;
  height: 100%;
  background-color: rgba(0, 0, 0, 0.2);
  position: absolute;
  top: 0;
  left: 0;
  object-fit: cover;
  pointer-events: none;
  z-index: -1;
}
.mv .mv_slide_dod {
  display: flex;
  align-items: center;
  justify-content: center;
  column-gap: 10px;
  width: fit-content;
  margin: auto;
  margin-top: -70px;
}
@media screen and (max-width: 849px) {
  .mv .mv_slide_dod {
    column-gap: 6px;
    margin-top: -8px;
  }
}
.mv .mv_slide_dod span {
  display: block;
  border-radius: 100%;
  width: 8px;
  height: 8px;
  background: #ffffff;
  opacity: 0.25;
}
@media screen and (max-width: 849px) {
  .mv .mv_slide_dod span {
    width: 5px;
    height: 5px;
  }
}
.mv .mv_slide_dod .on {
  background: #F18900;
  opacity: 1;
}
.mv .mv_logo {
  max-width: 450px;
  margin: auto;
  margin-top: 90px;
}
@media screen and (max-width: 849px) {
  .mv .mv_logo {
    max-width: 275px;
    margin-top: 13px;
  }
}
.mv .mv_after_t {
  position: absolute;
  width: 13.54166667vw;
  top: 2.22222222vw;
  height: 8.40277778vw;
  right: 0;
  z-index: 4;
}
@media screen and (max-width: 849px) {
  .mv .mv_after_t {
    width: 99px;
    height: 62px;
    top: 24px;
  }
}
.mv .mv_after_b {
  position: absolute;
  width: 17.98611111vw;
  bottom: -1.18055556vw;
  height: 8.95833333vw;
  left: 0;
  z-index: 4;
}
@media screen and (max-width: 849px) {
  .mv .mv_after_b {
    width: 74px;
    height: 44px;
    bottom: -18px;
  }
}
.mv .mv_box {
  column-gap: 30px;
  display: flex;
  justify-content: center;
  position: relative;
  z-index: 50;
}
@media screen and (max-width: 849px) {
  .mv .mv_box {
    column-gap: 20px;
  }
}
.mv .mv_box .mv_slide {
  color: #2D2D2D;
  margin: auto;
  width: 366px;
  padding: 18px 20px 6px 20px;
  border-radius: 15px;
}
@media screen and (max-width: 849px) {
  .mv .mv_box .mv_slide {
    width: 223px;
    padding: 11px 12px 5px 12px;
  }
}
.mv .mv_box .mv_slide .ttl_sogo {
  display: flex;
  column-gap: 40px;
  align-items: end;
}
@media screen and (max-width: 1080px) {
  .mv .mv_box .mv_slide .ttl_sogo {
    column-gap: 20px;
  }
}
@media screen and (max-width: 849px) {
  .mv .mv_box .mv_slide .ttl_sogo {
    column-gap: 25px;
  }
}
.mv .mv_box .mv_slide .ttl_sogo .ttl_sogo_txt {
  width: fit-content;
  font-family: "Barlow Condensed", sans-serif;
  font-size: 20px;
  font-weight: 500;
  line-height: 1.7;
  padding-bottom: 5px;
}
@media screen and (max-width: 1080px) {
  .mv .mv_box .mv_slide .ttl_sogo .ttl_sogo_txt {
    font-size: 18px;
  }
}
@media screen and (max-width: 849px) {
  .mv .mv_box .mv_slide .ttl_sogo .ttl_sogo_txt {
    font-size: 12px;
  }
}
.mv .mv_box .mv_slide .ttl_sogo .num_box {
  column-gap: 11px;
  width: fit-content;
  position: relative;
  z-index: 20;
  display: flex;
  align-items: end;
  margin-left: -10px;
  margin-top: -63px;
}
@media screen and (max-width: 849px) {
  .mv .mv_box .mv_slide .ttl_sogo .num_box {
    column-gap: 6px;
    margin-left: -5px;
  }
}
.mv .mv_box .mv_slide .ttl_sogo .num_box::after {
  position: absolute;
  content: "";
  width: 23px;
  height: 40px;
  right: 16px;
  bottom: 12px;
  z-index: 60;
  background: url(../img/mv_num_g.png) no-repeat center / contain;
  transition: 0.3s ease-in-out;
  background-size: 100% 100%;
}
@media screen and (max-width: 849px) {
  .mv .mv_box .mv_slide .ttl_sogo .num_box::after {
    width: 14px;
    height: 24px;
    right: 10px;
    bottom: 6px;
  }
}
.mv .mv_box .mv_slide .ttl_sogo .num_box .num01 {
  text-align: left;
  width: fit-content;
  font-family: "Barlow Condensed", sans-serif;
  font-size: 65px;
  font-style: italic;
  font-weight: 500;
  line-height: 170%;
}
@media screen and (max-width: 849px) {
  .mv .mv_box .mv_slide .ttl_sogo .num_box .num01 {
    font-size: 40px;
  }
}
.mv .mv_box .mv_slide .ttl_sogo .num_box .num02 {
  text-align: left;
  font-family: "Barlow Condensed", sans-serif;
  width: fit-content;
  font-size: 30px;
  font-style: italic;
  font-weight: 500;
  line-height: 170%;
}
@media screen and (max-width: 849px) {
  .mv .mv_box .mv_slide .ttl_sogo .num_box .num02 {
    font-size: 18px;
  }
}
.mv .mv_box .mv_slide .img {
  width: 100%;
  border-radius: 5px 5px 0 0;
  background: linear-gradient(134deg, #F18A00 32.66%, #4B2B00 124.19%);
  position: relative;
}
.mv .mv_box .mv_slide .img::after {
  content: "";
  position: absolute;
  left: 0;
  top: 0;
  width: 100%;
  height: 100%;
  border-radius: 5px 5px 0 0;
  background: rgba(0, 0, 0, 0.65);
}
.mv .mv_box .main {
  margin-top: 0;
  border: 8px solid #ffffff;
  color: #ffffff;
  position: relative;
}
@media screen and (max-width: 849px) {
  .mv .mv_box .main {
    border: 5px solid #ffffff;
  }
}
.mv .mv_box .main .slide_pev {
  width: 40px;
  height: 40px;
  position: absolute;
  top: 40%;
  left: -68px;
  z-index: 99;
}
@media screen and (max-width: 849px) {
  .mv .mv_box .main .slide_pev {
    width: 25px;
    height: 25px;
    left: -40px;
  }
}
.mv .mv_box .main .slide_next {
  width: 40px;
  height: 40px;
  position: absolute;
  top: 40%;
  right: -68px;
  z-index: 99;
}
@media screen and (max-width: 849px) {
  .mv .mv_box .main .slide_next {
    width: 25px;
    height: 25px;
    right: -40px;
  }
}
.mv .mv_box .main .ttl_sogo .num_box::after {
  background: url(../img/mv_num.png) no-repeat center / contain;
  background-size: 100% 100%;
}
.mv .mv_box .main .img::after {
  display: none;
}
.mv .mv_box .mv_slide_r01 {
  transform: rotate(5deg);
  margin-top: 50px;
}
@media screen and (max-width: 849px) {
  .mv .mv_box .mv_slide_r01 {
    margin-right: -40%;
    margin-top: 30px;
  }
}
.mv .mv_box .mv_slide_l01 {
  transform: rotate(-5deg);
  margin-top: 50px;
}
@media screen and (max-width: 849px) {
  .mv .mv_box .mv_slide_l01 {
    margin-left: -40%;
    margin-top: 30px;
  }
}
.mv .mv_box .mv_slide_r02 {
  margin-right: -15%;
  transform: rotate(11deg);
  margin-top: 105px;
}
@media screen and (max-width: 849px) {
  .mv .mv_box .mv_slide_r02 {
    display: none;
  }
}
.mv .mv_box .mv_slide_l02 {
  margin-left: -15%;
  transform: rotate(-11deg);
  margin-top: 105px;
}
@media screen and (max-width: 849px) {
  .mv .mv_box .mv_slide_l02 {
    display: none;
  }
}
.mv .cta_box {
  position: absolute;
  bottom: -4%;
  width: 350px;
  right: 0;
  z-index: 200;
}
@media screen and (max-width: 1200px) {
  .mv .cta_box {
    width: 270px;
  }
}
@media screen and (max-width: 1200px) {
  .mv .cta_box {
    width: 270px;
    position: relative;
    top: auto;
    margin: auto;
    margin-right: 0;
    right: auto;
  }
}
.mv .cta_box .cta {
  width: 100%;
  position: absolute;
  top: -150px;
  display: block;
}
.mv .cta_box .cta .box {
  border-radius: 10px 0 0 10px;
  display: block;
  padding: 20px 83px 20px 30px;
  color: #ffffff;
  background: linear-gradient(121deg, #EDAE06 0.18%, #EC6F56 93.24%);
  box-shadow: 0 0 5.5px -30px rgba(0, 0, 0, 0.25);
  position: relative;
  z-index: 2;
}
@media screen and (max-width: 1200px) {
  .mv .cta_box .cta .box {
    border-radius: 8px 0 0 8px;
    padding: 15px 62px 15px 22px;
  }
}
.mv .cta_box .cta::before {
  position: absolute;
  content: "";
  width: 32px;
  height: 32px;
  right: 24px;
  top: 50%;
  z-index: 60;
  -webkit-transform: translateY(-50%);
  -ms-transform: translateY(-50%);
  transform: translateY(-50%);
  background: url(../img/cta_after.png) no-repeat center / contain;
  transition: 0.3s ease-in-out;
  background-size: 100% 100%;
}
@media screen and (max-width: 1200px) {
  .mv .cta_box .cta::before {
    width: 25px;
    height: 25px;
    right: 16px;
  }
}
.mv .cta_box .cta::after {
  position: absolute;
  content: "";
  width: calc(100% + 10px);
  height: 100%;
  right: 0;
  top: 10px;
  z-index: 1;
  border-radius: 10px 0 0 10px;
  background: rgba(145, 131, 131, 0.35);
}
@media screen and (max-width: 1200px) {
  .mv .cta_box .cta::after {
    border-radius: 8px 0 0 8px;
  }
}
.mv .cta_box .cta .ttl01 {
  text-align: left;
  font-size: 18px;
  font-weight: bold;
  line-height: 1.31;
  margin-bottom: 10px;
}
@media screen and (max-width: 1200px) {
  .mv .cta_box .cta .ttl01 {
    font-size: 14px;
    margin-bottom: 9px;
  }
}
.mv .cta_box .cta .ttl02 {
  width: 100%;
  border-top: 1px solid #ffffff;
  font-family: "Barlow Condensed", sans-serif;
  font-size: 40px;
  line-height: 1.31;
  letter-spacing: 0.04em;
  text-align: left;
}
@media screen and (max-width: 1200px) {
  .mv .cta_box .cta .ttl02 {
    font-size: 30px;
  }
}
.mv .cta_box .cta .ttl03 {
  font-size: 14px;
  font-weight: 500;
  margin-top: -5px;
}
@media screen and (max-width: 1200px) {
  .mv .cta_box .cta .ttl03 {
    font-size: 10px;
    margin-top: -3px;
  }
}
.main_txt {
  text-align: center;
  color: #ffffff;
  background: #000000;
  font-size: 16px;
  font-weight: bold;
  line-height: 1.5;
  letter-spacing: 0.1em;
  margin-top: -1px;
  margin-bottom: -1px;
}
@media screen and (max-width: 849px) {
  .main_txt {
    font-size: 10px;
  }
}
.main_txt .inner {
  padding: 17px 0;
  width: 80%;
}
@media screen and (max-width: 849px) {
  .main_txt .inner {
    padding: 9px 0;
    width: 100%;
  }
}
.main_txt span {
  color: #F18900;
}
.about {
  background: #222222;
  position: relative;
  min-height: 900px;
  overflow: hidden;
}
@media screen and (max-width: 849px) {
  .about {
    padding-top: 20px;
  }
}
.about .inner {
  padding-top: 50px;
}
@media screen and (max-width: 849px) {
  .about .inner {
    padding-top: 40px;
  }
}

/* SP実機での見え方を修正 */
@media screen and (max-width: 849px) {
  .about .cta_box {
    width: 260px;
    position: relative;
    z-index: 200;
    margin-left: auto;
  }
  .about .cta_box .cta {
    width: 100%;
    position: relative;
    display: block;
  }
  .about .cta_box .cta .box {
    border-radius: 10px 0 0 10px;
    display: block;
    padding: 20px 83px 20px 30px;
    color: #ffffff;
    background: linear-gradient(121deg, #EDAE06 0.18%, #EC6F56 93.24%);
    box-shadow: 0 0 5.5px -30px rgba(0, 0, 0, 0.25);
    position: relative;
    z-index: 20;
  }
  .about .cta_box .cta::before {
    position: absolute;
    content: "";
    width: 25px;
    height: 25px;
    right: 16px;
    top: 50%;
    z-index: 60;
    -webkit-transform: translateY(-50%);
    -ms-transform: translateY(-50%);
    transform: translateY(-50%);
    background: url(../img/cta_after.png) no-repeat center / contain;
    transition: 0.3s ease-in-out;
    background-size: 100% 100%;
  }
  .about .cta_box .cta::after {
    position: absolute;
    content: "";
    width: calc(100% + 10px);
    height: 100%;
    right: 0;
    top: 10px;
    z-index: 0;
    border-radius: 10px 0 0 10px;
    background: rgba(145, 131, 131, 0.35);
  }
  .about .cta_box .cta .ttl01 {
    text-align: left;
    font-size: 14px;
    font-weight: bold;
    line-height: 1.31;
    margin-bottom: 10px;
  }
  .about .cta_box .cta .ttl02 {
    width: 100%;
    border-top: 1px solid #ffffff;
    font-family: "Barlow Condensed", sans-serif;
    font-size: 24px;
    line-height: 1.31;
    letter-spacing: 0.04em;
    text-align: left;
  }
  .about .cta_box .cta .ttl03 {
    font-size: 10px;
    font-weight: 500;
    margin-top: 0;
  }
}

.about .menu_b {
  /* padding-bottom: 80px; */
  padding-top: 80px;
  position: relative;
  z-index: 50;
}
@media screen and (max-width: 849px) {
  .about .menu_b {
    /* padding-bottom: 55px; */
    padding-top: 65px;
  }
}
.about .menu_b .menu_b_ttl {
  max-width: 1220px;
  padding-left: 20px;
  padding-right: 20px;
  text-align: left;
  padding-left: 45px;
  font-size: 25px;
  font-weight: bold;
  line-height: 1.2;
  color: #ffffff;
  margin: auto;
  position: relative;
  margin-bottom: 28px;
}
@media screen and (max-width: 849px) {
  .about .menu_b .menu_b_ttl {
    font-size: 13px;
    padding-left: 20px;
    margin-left: 20px;
    margin-bottom: 17px;
  }
}
.about .menu_b .menu_b_ttl::after {
  position: absolute;
  content: "";
  width: 116px;
  height: 94px;
  left: 0;
  top: 50%;
  -webkit-transform: translateY(-50%);
  -ms-transform: translateY(-50%);
  transform: translateY(-50%);
  background: url(../img/menu_b_ttl_afer.webp) no-repeat center / contain;
  transition: 0.3s ease-in-out;
  background-size: 100% 100%;
}
@media screen and (max-width: 849px) {
  .about .menu_b .menu_b_ttl::after {
    width: 49px;
    height: 40px;
  }
}
.about .menu_b .menu_b_ttl span {
  position: relative;
  z-index: 50;
}
.about .menu_b .menu_b_box {
  padding-left: 20px;
  padding-right: 20px;
  max-width: 97.22222222vw;
  position: relative;
  margin: 34px auto 0;
}
@media screen and (max-width: 849px) {
  .about .menu_b .menu_b_box {
    max-width: 100%;
    margin: 22px auto 0;
  }
}
@media screen and (max-width: 600px) {
  .about .menu_b .menu_b_box {
    padding-left: 10px;
    padding-right: 10px;
  }
}
/* .about .menu_b .menu_b_box .menu_b_gra {
  position: absolute;
  bottom: 5.55555556vw;
  right: 12.5vw;
  max-width: 3.05555556vw;
  z-index: 99999;
}
@media screen and (max-width: 849px) {
  .about .menu_b .menu_b_box .menu_b_gra {
    max-width: 20px;
    bottom: 20px;
    right: 43px;
  }
} */
/* .about .menu_b .menu_b_box .menu_b_list {
  height: 11.31944444vw;
  mask-image: url(../img/menu_b_mask.svg);
  mask-repeat: no-repeat;
  mask-position: 0;
  mask-size: 100% 100%;
  -webkit-mask-image: url(../img/menu_b_mask.svg);
  -webkit-mask-repeat: no-repeat;
  -webkit-mask-position: 0;
  -webkit-mask-size: 100% 100%;
  position: relative;
}
@media screen and (max-width: 849px) {
  .about .menu_b .menu_b_box .menu_b_list {
    height: 40px;
    mask-image: url(../img/menu_b_mask_sp.svg);
    mask-repeat: no-repeat;
    mask-position: 0;
    mask-size: 100% 100%;
    -webkit-mask-image: url(../img/menu_b_mask_sp.svg);
    -webkit-mask-repeat: no-repeat;
    -webkit-mask-position: 0;
    -webkit-mask-size: 100% 100%;
  }
} */
.about .menu_b .menu_b_box .menu_b_list .menu_txt_item {
  max-width: 749px;
  margin: auto;
  position: relative;
  height: 100%;
  display: block;
  max-width: 53.40277778vw;
}
.about .menu_b .menu_b_box .menu_b_list .menu_txt_item::after {
  position: absolute;
  content: "";
  right: 0;
  background: url(../img/menu_b_btn.png) no-repeat center / contain;
  transition: 0.3s ease-in-out;
  background-size: 100% 100%;
  width: 2.22222222vw;
  height: 2.22222222vw;
  bottom: 2.08333333vw;
}
@media screen and (max-width: 849px) {
  .about .menu_b .menu_b_box .menu_b_list .menu_txt_item::after {
    bottom: 6px;
  }
}
.about .menu_b .menu_b_box .menu_b_list .menu_txt_item .en_ttl {
  font-family: "Barlow Condensed", sans-serif;
  font-weight: 200;
  line-height: 1.01;
  color: #082287;
  display: flex;
  align-items: flex-start;
  width: fit-content;
  margin-left: 0;
  padding-top: 0.69444444vw;
  font-size: 5.55555556vw;
  padding-left: 4.16666667vw;
}
@media screen and (max-width: 849px) {
  .about .menu_b .menu_b_box .menu_b_list .menu_txt_item .en_ttl {
    font-size: 20px;
  }
}
.about .menu_b .menu_b_box .menu_b_list .menu_txt_item .en_ttl .big {
  font-weight: 600;
  font-size: 8.33333333vw;
  margin-right: 1.04166667vw;
}
@media screen and (max-width: 849px) {
  .about .menu_b .menu_b_box .menu_b_list .menu_txt_item .en_ttl .big {
    font-size: 30px;
  }
}
.about .menu_b .menu_b_box .menu_b_list .menu_txt_item .en_ttl .small {
  padding-top: 0.69444444vw;
}
.about .menu_b .menu_b_box .menu_b_list .menu_txt_item .ttl {
  text-align: center;
  color: #ffffff;
  font-weight: bold;
  line-height: 1.01;
  font-size: 2.43055556vw;
  margin-top: -2.43055556vw;
}
@media screen and (max-width: 849px) {
  .about .menu_b .menu_b_box .menu_b_list .menu_txt_item .ttl {
    font-size: 10px;
  }
}
.about .menu_b .menu_b_box .menu_b_list .m_blue {
  width: 100%;
  height: 100%;
  background: #112E9F;
  z-index: 5;
  position: absolute;
  left: 0;
  top: 0;
}
.about .menu_b .menu_b_box .menu_b_list .m_green {
  cursor: pointer;
  height: 100%;
  background: #2A972C;
  z-index: 10;
  position: absolute;
  transform: skewX(-42.29deg);
  top: 0;
  right: -0.34722222vw;
  width: 12.70833333vw;
}
@media screen and (max-width: 849px) {
  .about .menu_b .menu_b_box .menu_b_list .m_green {
    width: 45px;
  }
}
.about .menu_b .menu_b_box .menu_b_list .m_yellow {
  cursor: pointer;
  height: 100%;
  background: #C3B40A;
  z-index: 15;
  position: absolute;
  transform: skewX(-42.29deg);
  top: 0;
  right: -0.34722222vw;
  width: 8.47222222vw;
}
@media screen and (max-width: 849px) {
  .about .menu_b .menu_b_box .menu_b_list .m_yellow {
    width: 30px;
  }
}
.about .menu_b .menu_b_box .menu_b_list .m_red {
  cursor: pointer;
  height: 100%;
  background: #A51B0B;
  z-index: 20;
  position: absolute;
  transform: skewX(-42.29deg);
  top: 0;
  right: -0.34722222vw;
  width: 4.23611111vw;
}
@media screen and (max-width: 849px) {
  .about .menu_b .menu_b_box .menu_b_list .m_red {
    width: 15px;
  }
}
.about .about_top {
  z-index: 60;
  position: relative;
}
.about .about_top .about_top_img {
  width: 48.125vw;
  max-width: 693px;
  position: relative;
}
@media screen and (max-width: 849px) {
  .about .about_top .about_top_img {
    width: 100%;
    max-width: 100%;
  }
}
/* ベース画像は通常通り表示 */
.about_top_img__base {
  position: relative;        /* 高さの基準になる */
  z-index: 1;
  width: 100%;
  display: block;
}
/* リング画像をベースに重ねる */
.about_top_img__ring {
  position: absolute;
  top: 13.66%;
  left: 5.45%;
  width: 85%;
  height: 80%;
  z-index: 0;
  pointer-events: none;
  /* 回転アニメーション */
  animation: rotate-right 60s linear infinite;
  transform-origin: center center;
}
@media screen and (max-width: 849px) {
  .about_top_img__ring {
    top: 13%;
    left: 8.5%;
    width: 82%;
    height: 75%;
  }
}
.about .about_top .about_top_txt_box {
  position: absolute;
  bottom: 120px;
  right: 0;
  width: fit-content;
  right: -40px;
  color: #ffffff;
  text-align: left;
  z-index: 50;
}
@media screen and (max-width: 1080px) {
  .about .about_top .about_top_txt_box {
    padding-right: 40px;
  }
}
@media screen and (max-width: 849px) {
  .about .about_top .about_top_txt_box {
    position: relative;
    bottom: auto;
    right: auto;
    margin-top: 44px;
    padding-right: 0;
  }
}
.about .about_top .about_top_txt_box .en {
  padding-left: 32px;
  font-family: "Barlow Condensed", sans-serif;
  font-weight: 600;
  font-size: 20px;
  line-height: 1.5;
  letter-spacing: 0.25em;
}
@media screen and (max-width: 1080px) {
  .about .about_top .about_top_txt_box .en {
    font-size: 18px;
  }
}
@media screen and (max-width: 849px) {
  .about .about_top .about_top_txt_box .en {
    font-size: 12px;
    padding-left: 0;
  }
}
.about .about_top .about_top_txt_box .jp {
  margin-top: 36px;
  font-size: 40px;
  font-weight: 900;
  line-height: 1.98;
}
@media screen and (max-width: 1080px) {
  .about .about_top .about_top_txt_box .jp {
    font-size: 32px;
  }
}
@media screen and (max-width: 849px) {
  .about .about_top .about_top_txt_box .jp {
    margin-left: -15px;
    font-size: 22px;
    margin-top: 17px;
  }
}
.about .about_top .about_top_txt_box .jp span {
  font-size: 50px;
}
@media screen and (max-width: 1080px) {
  .about .about_top .about_top_txt_box .jp span {
    font-size: 46px;
  }
}
@media screen and (max-width: 849px) {
  .about .about_top .about_top_txt_box .jp span {
    font-size: 30px;
  }
}
.about .about_top .about_top_txt_box .txt {
  padding-left: 32px;
  font-weight: bold;
  font-size: 14px;
  line-height: 2.4;
  margin-top: 12px;
}
@media screen and (max-width: 849px) {
  .about .about_top .about_top_txt_box .txt {
    font-size: 12px;
    padding-left: 0;
    margin-top: 18px;
  }
}
.about .about_after_r {
  width: 54.65277778vw;
  height: 39.375vw;
  position: absolute;
  right: 0;
  top: 0;
}
@media screen and (max-width: 849px) {
  .about .about_after_r {
    width: 100%;
    height: 100%;
  }
}
.about .about_after_b_l {
  width: 93.33333333vw;
  height: 87.98611111vw;
  position: absolute;
  left: 0;
  bottom: 0;
  display: flex;
  align-items: flex-end;
}
@media screen and (max-width: 849px) {
  .about .about_after_b_l {
    width: 100%;
    height: 100%;
    bottom: 10px;
  }
}
.about .about_after_t_l {
  width: 28.26388889vw;
  height: 24.375vw;
  position: absolute;
  left: 0;
  top: 3.47222222vw;
}
@media screen and (max-width: 849px) {
  .about .about_after_t_l {
    width: 180px;
    height: 54px;
    top: 445px;
  }
}
.about .about_m_txt {
  position: absolute;
  right: -38.05555556vw;
  top: 9.23611111vw;
  width: 65.27777778vw;
}
@media screen and (max-width: 849px) {
  .about .about_m_txt {
    width: 335px;
    top: 592px;
    right: -162px;
  }
}
/* 回転のアニメーション定義 */
@keyframes rotate-left {
  from {
    transform: rotate(0deg);
  }
  to {
    transform: rotate(-360deg); /* マイナスにすることで左回りになります */
  }
}
@keyframes rotate-right {
  from {
    transform: rotate(0deg);
  }
  to {
    transform: rotate(360deg);
  }
}

/* PCとSP両方のSVGを囲うクラスに対して設定 */
.about_m_txt .pc svg,
.about_m_txt .sp svg {
  display: block;
  margin: auto;
  animation: rotate-left 60s linear infinite;
  transform-origin: center;
}
.about .a_m_flex {
  max-width: 781px;
  position: relative;
  z-index: 50;
  margin: auto;
  display: flex;
  justify-content: center;
  margin-top: 5.90277778vw;
  column-gap: 3.54166667vw;
}
@media screen and (max-width: 849px) {
  .about .a_m_flex {
    margin-top: 67px;
    column-gap: 23px;
  }
}
@media screen and (max-width: 600px) {
  .about .a_m_flex {
    column-gap: 8px;
  }
}
.about .a_m_flex .a_m_f_box {
  position: relative;
  max-width: 15.69444444vw;
  width: 15.69444444vw;        /* ← 幅を明示 */
  aspect-ratio: 1 / 1;          /* ← 正方形なら（円なので高さ=幅） */
}
@media screen and (max-width: 849px) {
  .about .a_m_flex .a_m_f_box {
    max-width: 120px;
    width: 108px;
  }
}
@media screen and (max-width: 600px) {
  .about .a_m_flex .a_m_f_box {
    column-gap: 8px;
  }
}
.about .a_m_flex .a_m_f_box .a_m_f_box_txt {
  width: 100%;
  height: 100%;
  display: flex;
  align-items: center;
  justify-content: center;
  color: #ffffff;
  position: absolute;
  top: 0;                       /* ← 念のため位置基準を明示 */
  left: 0;
  text-align: center;
  font-weight: bold;
  font-size: 18px;
  line-height: 1.7;
}
@media screen and (max-width: 850px) {
  .about .a_m_flex .a_m_f_box .a_m_f_box_txt {
    font-size: 10px;
  }
}
@media screen and (max-width: 600px) {
  .about .a_m_flex .a_m_f_box .a_m_f_box_txt {
    width: 95%;
    height: 95%;
    top: 50%;
    left: 50%;
    transform: translate(-50%, -50%);
    line-height: 1.3;
  }
}
/* aboutセクションの円形画像 - GSAPで回転制御 */
.about .a_m_flex .a_m_f_box .a_m_f_box_bg {
  position: absolute;           /* ← 追加：レイアウトフローから外す */
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  transform-origin: center center;
  pointer-events: none;
}
@media screen and (max-width: 600px) {
  .about .a_m_flex .a_m_f_box .a_m_f_box_bg {
    top: 50%;
    left: 50%;
    width: 95%;
    height: 95%;
    transform: translate(-50%, -50%);
  }
}

.teca {
  background: #1B1B1B;
  margin-top: -1px;
}
@media screen and (max-width: 849px) {
  .teca {
    min-height: 500px;
    display: flex;
    align-items: center;
    justify-content: center;
  }
}
.teca .inner {
  padding-top: 92px;
  padding-bottom: 83px;
}
@media screen and (max-width: 849px) {
  .teca .inner {
    padding-top: 35px;
    padding-bottom: 35px;
  }
}
.teca .ttl {
  max-width: 858px;
  margin: auto;
  margin-bottom: 49px;
}
@media screen and (max-width: 849px) {
  .teca .ttl {
    max-width: 270px;
  }
}
.teca .txt {
  text-align: center;
  font-size: 18px;
  font-weight: bold;
  line-height: 2.48;
  color: #ffffff;
}
@media screen and (max-width: 849px) {
  .teca .txt {
    font-size: 14px;
  }
}
.bodymake {
  background: url(../img/bodymake_bg.webp) no-repeat bottom / contain;
  background-size: cover;
  min-height: 700px;
  display: flex;
  align-items: center;
  justify-content: center;
  color: #ffffff;
  margin-top: -1px;
  overflow: hidden;
}
@media screen and (max-width: 849px) {
  .bodymake {
    background: url(../img/bodymake_bg_sp.webp) no-repeat bottom / contain;
    background-size: cover;
    min-height: 600px;
  }
}
.bodymake .inner {
  height: 100%;
}
.bodymake .ttl {
  max-width: 760px;
  margin: auto;
  margin-bottom: 60px;
}
@media screen and (max-width: 849px) {
  .bodymake .ttl {
    margin-bottom: 24px;
    max-width: 286px;
  }
}
.bodymake .txt {
  text-align: center;
  font-size: 20px;
  line-height: 1.8;
  letter-spacing: 0.05em;
  font-weight: 500;
}
@media screen and (max-width: 849px) {
  .bodymake .txt {
    line-height: 1.6;
    font-size: 16px;
  }
}
.addr .inner {
  padding-top: 76px;
  padding-bottom: 100px;
}
@media screen and (max-width: 849px) {
  .addr .inner {
    padding-top: 46px;
    padding-bottom: 50px;
  }
}
.addr .ttl {
  max-width: 385px;
}
@media screen and (max-width: 849px) {
  .addr .ttl {
    max-width: 200px;
  }
}
.addr .sub {
  text-align: left;
  font-size: 25px;
  font-weight: bold;
  line-height: 2;
}
@media screen and (max-width: 849px) {
  .addr .sub {
    font-size: 20px;
  }
}
.addr .addr_box {
  max-width: 1026px;
  margin: auto;
  margin-top: 77px;
  display: flex;
}
@media screen and (max-width: 849px) {
  .addr .addr_box {
    display: block;
    margin-top: 30px;
  }
}
.addr .addr_box dt {
  width: 32.75%;
}
@media screen and (max-width: 849px) {
  .addr .addr_box dt {
    width: 100%;
  }
}
.addr .addr_box dt .dt_ttl {
  text-align: left;
  font-size: 35px;
  font-weight: bold;
  line-height: 2;
}
@media screen and (max-width: 849px) {
  .addr .addr_box dt .dt_ttl {
    font-size: 24px;
  }
}
.addr .addr_box dt ul li {
  margin-top: 20px;
  text-align: left;
  font-size: 14px;
  font-weight: 500;
  line-height: 1.61;
}
@media screen and (max-width: 849px) {
  .addr .addr_box dt ul li {
    margin-top: 15px;
    font-size: 12px;
  }
}
.addr .addr_box dt ul li span {
  display: block;
  color: #F18900;
}
.addr .addr_box dd {
  width: 67.25%;
}
@media screen and (max-width: 849px) {
  .addr .addr_box dd {
    width: 100%;
    margin-top: 20px;
  }
}
.addr .addr_box dd iframe {
  width: 100%;
  border: none;
  height: 400px;
}
@media screen and (max-width: 849px) {
  .addr .addr_box dd iframe {
    height: 200px;
  }
}
.addr .addr_btn {
  margin: auto;
  display: block;
  margin-top: 74px;
  border-radius: 100px;
  background: linear-gradient(121deg, #EDAE06 0.18%, #EC6F56 93.24%);
  box-shadow: 0 0 5.5px -30px rgba(0, 0, 0, 0.25);
  text-align: center;
  padding: 14px 0 23px 0;
  color: #ffffff;
  font-size: 14px;
  line-height: 2;
  font-weight: 500;
  position: relative;
  max-width: 800px;
}
@media screen and (max-width: 849px) {
  .addr .addr_btn {
    font-size: 12px;
    line-height: 1.5;
    margin-top: 30px;
  }
}
.addr .addr_btn span {
  display: block;
  font-weight: 900;
  font-size: 25px;
  line-height: 2;
}
@media screen and (max-width: 849px) {
  .addr .addr_btn span {
    line-height: 1.5;
    font-size: 20px;
  }
}
.addr .addr_btn::after {
  position: absolute;
  content: "";
  width: 15px;
  height: 15px;
  right: 38px;
  top: 50%;
  -webkit-transform: translateY(-50%);
  -ms-transform: translateY(-50%);
  transform: translateY(-50%);
  background: url(../img/addr_btn_after.png) no-repeat center / contain;
  transition: 0.3s ease-in-out;
  background-size: 100% 100%;
}
@media screen and (max-width: 849px) {
  .addr .addr_btn::after {
    right: 20px;
  }
}
.footer {
  background: #000000;
}
.footer .inner {
  padding-bottom: 46px;
  padding-top: 70px;
}
@media screen and (max-width: 849px) {
  .footer .inner {
    padding-bottom: 23px;
    padding-top: 40px;
  }
}
.footer dl {
  display: flex;
  justify-content: space-between;
}
@media screen and (max-width: 849px) {
  .footer dl {
    display: block;
  }
}
.footer dl dt .footer_logo {
  max-width: 250px;
  margin-bottom: 31px;
}
@media screen and (max-width: 849px) {
  .footer dl dt .footer_logo {
    margin-bottom: 20px;
    max-width: 180px;
  }
}
.footer dl dt ul {
  display: flex;
}
.footer dl dt ul li + li {
  margin-left: 20px;
  padding-left: 20px;
  border-left: 1px solid #ffffff;
}
.footer dl dt ul li a {
  display: block;
  font-size: 12px;
  font-weight: 400;
  letter-spacing: 0.07em;
  line-height: 1.1;
  color: #ffffff;
}
.footer dl dd {
  display: flex;
  column-gap: 17px;
  justify-content: right;
  align-items: flex-start;
}
@media screen and (max-width: 849px) {
  .footer dl dd {
    margin-top: 30px;
    justify-content: center;
  }
}
.footer dl dd a {
  display: block;
  padding: 0 45px;
  line-height: 40px;
  background: #5CB74F;
  color: #ffffff;
  font-size: 16px;
  font-weight: bold;
  border-radius: 45px;
}
@media screen and (max-width: 849px) {
  .footer dl dd a {
    line-height: 35px;
    padding: 0 30px;
    font-size: 14px;
  }
}
.footer .copy {
  text-align: center;
  border-top: 1px solid #363636;
  padding-top: 15px;
  font-family: "Barlow Condensed", sans-serif;
  color: #ffffff;
  font-size: 12px;
  letter-spacing: 0.07em;
  font-weight: 400;
  line-height: 1.6;
  margin-top: 92px;
}
@media screen and (max-width: 849px) {
  .footer .copy {
    padding-top: 10px;
    font-size: 10px;
    margin-top: 40px;
  }
}
.page_top {
  position: fixed;
  top: initial !important;
  right: 38px;
  bottom: 20px;
  text-align: center;
  width: fit-content;
  color: #ffffff !important;
  font-family: "Barlow Condensed", sans-serif;
  font-size: 10px;
  font-weight: 400;
  letter-spacing: 0.07em;
  line-height: 1.6;
  z-index: 100;
  opacity: 0;
  visibility: hidden;
  transition: opacity 0.3s ease, visibility 0.3s ease;
}
/* ★ 追加：is-show が付いたら表示 */
.page_top.is-show {
  opacity: 1;
  visibility: visible;
}
@media screen and (max-width: 849px) {
  .page_top {
    right: 10px;
    bottom: 10px;
    font-size: 8px;
  }
}
.page_top span {
  display: block;
  margin-bottom: 3px;
  max-width: 40px;
}
@media screen and (max-width: 849px) {
  .page_top span {
    margin-bottom: 2px;
    max-width: 35px;
  }
}
.campaign {
  background: #222222;
  position: relative;
  margin-top: -1px;
}
.campaign .ca_after_b {
  position: absolute;
  width: 100%;
  height: auto;
  bottom: 0;
  left: 0;
}
.campaign .ca_after_t {
  position: absolute;
  width: 21.52777778vw;
  height: auto;
  top: 10.625vw;
  right: 0;
}
@media screen and (max-width: 849px) {
  .campaign .ca_after_t {
    top: 100px;
    width: 90px;
  }
}
.campaign .inner {
  padding-top: 120px;
  padding-bottom: 90px;
  position: relative;
  z-index: 20;
}
@media screen and (max-width: 849px) {
  .campaign .inner {
    padding-top: 80px;
    padding-bottom: 45px;
  }
}
.campaign .inner .ca_box {
  border: 1px solid #D9D9D9;
  border-radius: 20px;
  padding: 152px 20px 88px 20px;
  text-align: center;
  position: relative;
  color: #ffffff;
}
@media screen and (max-width: 849px) {
  .campaign .inner .ca_box {
    border-radius: 10px;
    padding: 82px 15px 40px 15px;
  }
}
.campaign .inner .ca_box .ca_ttl {
  position: absolute;
  top: -55px;
  width: 100%;
  display: flex;
  left: 0;
  justify-content: center;
}
@media screen and (max-width: 849px) {
  .campaign .inner .ca_box .ca_ttl {
    top: -33px;
  }
}
.campaign .inner .ca_box .ca_ttl .ca_ttl_box {
  background: #222222;
  padding: 0 46px;
  width: fit-content;
  margin: auto;
  font-size: 18px;
  font-weight: bold;
  line-height: 2;
  color: #ffffff;
}
@media screen and (max-width: 849px) {
  .campaign .inner .ca_box .ca_ttl .ca_ttl_box {
    padding: 0 20px;
    font-size: 16px;
  }
}
.campaign .inner .ca_box .ca_ttl .ca_ttl_box span {
  color: #F18900;
  font-family: "Barlow Condensed", sans-serif;
  line-height: 1.01;
  font-size: 80px;
  font-weight: 600;
  margin-top: 15px;
  display: block;
}
@media screen and (max-width: 849px) {
  .campaign .inner .ca_box .ca_ttl .ca_ttl_box span {
    font-size: 40px;
    margin-top: 10px;
  }
}
.campaign .inner .ca_box .data {
  font-size: 16px;
  letter-spacing: 0.05em;
  line-height: 1.5;
  font-weight: bold;
}
@media screen and (max-width: 849px) {
  .campaign .inner .ca_box .data {
    font-size: 14px;
  }
}
.campaign .inner .ca_box .da_ttl {
  font-size: 24px;
  font-weight: bold;
  letter-spacing: 0.05em;
  color: #141414;
  padding: 0 40px 0 40px;
  line-height: 32px;
  width: fit-content;
  margin: auto;
  margin-top: 27px;
  background: url(../img/da_ttl_bg.png) no-repeat center / contain;
  background-size: 100% 100%;
}
@media screen and (max-width: 849px) {
  .campaign .inner .ca_box .da_ttl {
    font-size: 18px;
    margin-top: 15px;
    padding: 0 20px 0 20px;
    line-height: 28px;
  }
}
.campaign .inner .ca_box .ca01 {
  max-width: 560px;
  margin: auto;
  margin-top: 25px;
}
@media screen and (max-width: 849px) {
  .campaign .inner .ca_box .ca01 {
    margin-top: 15px;
  }
}
.campaign .inner .ca_box .ca02 {
  max-width: 560px;
  margin: auto;
  margin-top: 50px;
}
@media screen and (max-width: 849px) {
  .campaign .inner .ca_box .ca02 {
    margin-top: 30px;
  }
}
.campaign .inner .ca_box .txt {
  text-align: left;
  max-width: 920px;
  margin: auto;
  margin-top: 45px;
  color: #ffffff;
  font-weight: 500;
  font-size: 14px;
  line-height: 1.5;
}
@media screen and (max-width: 849px) {
  .campaign .inner .ca_box .txt {
    font-size: 11px;
    margin-top: 25px;
    line-height: 1.6;
  }
}
.ko {
  background: url(../img/ko_bg.jpg) no-repeat center / contain;
  background-size: cover;
  position: relative;
}
.ko .inner {
  padding-top: 180px;
  padding-bottom: 180px;
}
@media screen and (max-width: 849px) {
  .ko .inner {
    padding-top: 80px;
    padding-bottom: 80px;
  }
}
.ko .ko_logo {
  max-width: 450px;
  margin: auto;
}
@media screen and (max-width: 849px) {
  .ko .ko_logo {
    max-width: 80%;
  }
}
.step_sogo {
  position: relative;
  height: 100vh !important;
}
@media screen and (max-width: 849px) {
  .step_sogo {
    height: auto !important;
  }
}
.step_sogo .step_sogo_after {
  position: absolute;
  z-index: 50;
  top: 42.15277778vw;
  width: 49.93055556vw;
  height: 40.34722222vw;
  right: 0;
}
@media screen and (max-width: 849px) {
  .step_sogo .step_sogo_after {
    display: none;
  }
}
.majin {
  background: #ffffff;
  position: relative;
  overflow: hidden;
  height: 100%;
}
@media screen and (max-width: 849px) {
  .majin {
    background: #E7E7E7;
  }
}
.majin .inner {
  /* padding-top: 180px; */
  /* padding-bottom: 140px; */
  height: 100%;
}
@media screen and (max-width: 849px) {
  .majin .inner {
    padding-top: 43px;
    padding-right: 0;
    padding-bottom: 35px;
    padding-left: 0;
  }
}
.majin .majin_bg {
  position: absolute;
  width: 100%;
  height: 100%;
  right: 0;
  bottom: 0;
  background: #E7E7E7;
}
@media screen and (max-width: 849px) {
  .majin .majin_bg {
    display: none;
  }
}
.majin .majin_after {
  position: absolute;
  width: 65.27777778vw;
  height: 64.86111111vw;
  left: -2vw;
  top: 3.05555556vw;
  z-index: 10;
  /* アニメーションの設定：60秒で1回転 / 線形（等速） / 無限ループ */
  animation: rotate-left 60s linear infinite;
  /* 重要：回転の中心をSVGの真ん中に設定 */
  transform-origin: center;
}
@media screen and (max-width: 849px) {
  .majin .majin_after {
    width: 464px;
    height: 461px;
    left: auto;
    right: -260px;
    top: 20px;
  }
}
.majin .majin_b_after {
  position: absolute;
  width: 10.97222222vw;
  height: 6.38888889vw;
  bottom: 0;
  left: 0;
  z-index: 20;
}
@media screen and (max-width: 849px) {
  .majin .majin_b_after {
    display: none;
  }
}
.majin .majin_r_txt {
  position: absolute;
  top: 50%;
  right: 35px;
  font-weight: 600;
  line-height: 1.5;
  font-family: "Barlow Condensed", sans-serif;
  letter-spacing: 0.25em;
  color: #000000;
  writing-mode: vertical-rl;
  line-height: 1.01;
  white-space: nowrap;
  font-size: 15px;
  transform: translate(0, -50%);
}
@media screen and (max-width: 849px) {
  .majin .majin_r_txt {
    top: 105px;
    font-size: 10px;
    right: 30px;
    z-index: 50;
  }
}
.majin .majin_box {
  display: flex;
  position: relative;
  z-index: 50;
  top: 50%;
  left: 50%;
  transform: translate(-50%, -50%);
}
@media screen and (max-width: 849px) {
  .majin .majin_box {
    display: block;
    top: initial;
    left: initial;
    transform: initial;
  }
}
.majin .majin_box .majin_txt_box {
  padding-top: 52px;
  width: 300px;
  text-align: left;
}
@media screen and (max-width: 1080px) {
  .majin .majin_box .majin_txt_box {
    width: 280px;
  }
}
@media screen and (max-width: 849px) {
  .majin .majin_box .majin_txt_box {
    padding-left: 20px;
    display: block;
    padding-top: 0;
  }
}
.majin .majin_box .majin_txt_box .majin_ttl {
  text-align: left;
  font-size: 50px;
  font-weight: 900;
  line-height: 1.98;
}
@media screen and (max-width: 1080px) {
  .majin .majin_box .majin_txt_box .majin_ttl {
    font-size: 46px;
  }
}
@media screen and (max-width: 849px) {
  .majin .majin_box .majin_txt_box .majin_ttl {
    font-size: 30px;
  }
}
.majin .majin_box .majin_txt_box .majin_txt {
  text-align: left;
  margin-top: 12px;
  font-size: 14px;
  font-weight: bold;
  line-height: 2;
}
@media screen and (max-width: 1080px) {
  .majin .majin_box .majin_txt_box .majin_txt {
    font-size: 13px;
  }
}
@media screen and (max-width: 849px) {
  .majin .majin_box .majin_txt_box .majin_txt {
    font-size: 12px;
  }
}
.majin .majin_box .majin_txt_box .majin_btn {
  display: block;
  max-width: 116px;
  height: 116px;
  margin-left: 65px;
  margin-top: 74px;
  position: relative;
}
@media screen and (max-width: 849px) {
  .majin .majin_box .majin_txt_box .majin_btn {
    display: none;
  }
}
/* ★ 外側の点線の輪：右回りに回転 */
.majin .majin_box .majin_txt_box .majin_btn .majin_btn_ring {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  animation: rotate-right 20s linear infinite;
}

/* ★ 中央のSKIP円：固定 */
.majin .majin_box .majin_txt_box .majin_btn .majin_btn_skip {
  position: absolute;
  top: 50%;
  left: 50%;
  width: 79%;                /* 196/248 ≒ 0.79 */
  height: 79%;
  transform: translate(-50%, -50%);
}
.majin .majin_box .majin_sp_slide {
  display: none;
}
@media screen and (max-width: 849px) {
  .majin .majin_box .majin_sp_slide {
    margin-top: 30px;
    display: block;
  }
}
.majin .majin_box .majin_sp_slide .majin_sp_slide_box {
  border-radius: 5px;
  background: #ffffff;
  padding: 10px 20px 20px 20px;
  box-shadow: 0 0 9.6px 9px rgba(0, 0, 0, 0.05);
  height: 550px;
}
.majin .majin_box .majin_sp_slide .majin_sp_slide_box .img {
  max-width: 218px;
  margin: auto;
}
.majin .majin_box .majin_sp_slide {
  position: relative;
}
.majin .majin_box .majin_sp_slide .swiper_cot {
  top: -30px;
  right: 27px;
  width: fit-content;
  position: absolute;
  display: flex;
  column-gap: 10px;
}
/* ボタンの見た目は25pxのまま（レイアウトを動かさない） */
.majin .majin_box .majin_sp_slide .swiper-button-prev-majinswiper,
.majin .majin_box .majin_sp_slide .swiper-button-next-majinswiper {
  width: 25px;
  cursor: pointer;
  position: relative;   /* ← 擬似要素の基準にする */
}

/* アイコン画像はこれまでどおり25px */
.majin .majin_box .majin_sp_slide .swiper-button-prev-majinswiper img,
.majin .majin_box .majin_sp_slide .swiper-button-next-majinswiper img {
  width: 25px;
}

/* 透明なタップ領域を48×48pxで上に重ねる（見た目には出ない） */
.majin .majin_box .majin_sp_slide .swiper-button-prev-majinswiper::after,
.majin .majin_box .majin_sp_slide .swiper-button-next-majinswiper::after {
  content: "";
  position: absolute;
  top: 50%;
  left: 50%;
  width: 48px;
  height: 48px;
  transform: translate(-50%, -50%);
}
.majin .majin_box .majin_sp_slide .swiper-horizontal > .swiper-pagination-bullets,
.majin .majin_box .majin_sp_slide .swiper-pagination-bullets.swiper-pagination-horizontal,
.majin .majin_box .majin_sp_slide .swiper-pagination-custom,
.majin .majin_box .majin_sp_slide .swiper-pagination-fraction {
  margin-top: 17px;
  display: flex;
  align-items: center;
  justify-content: center;
}
.majin .majin_box .majin_sp_slide .swiper-pagination-bullet {
  background: #D4D4D4;
  width: 5px;
  height: 5px;
  opacity: 1 !important;
  margin: 0 3px;
}
.majin .majin_box .majin_sp_slide .swiper-pagination-bullet-active {
  opacity: 1 !important;
  background: #F18900;
}
.majin .majin_box .majin_sp_slide .swiper-wrapper {
  padding: 20px 10px 20px 20px ;
}
.majin .majin_box .majin_sp_slide .swiper-slide {
  box-shadow: 0 0 9.6px 9px rgba(0, 0, 0, 0.05);
}
.majin .majin_box .majin_slide .num,
.majin .majin_box .majin_sp_slide .num {
  color: #F18900;
  font-family: "Barlow Condensed", sans-serif;
  font-size: 50px;
  font-style: italic;
  text-align: left;
  font-weight: 500;
  line-height: 1.01;
}
@media screen and (max-width: 849px) {
  .majin .majin_box .majin_slide .num,
  .majin .majin_box .majin_sp_slide .num {
    font-size: 40px;
    text-align: left;
  }
}
.majin .majin_box .majin_slide .en_ttl,
.majin .majin_box .majin_sp_slide .en_ttl {
  text-align: left;
  font-family: "Barlow Condensed", sans-serif;
  font-size: 80px;
  line-height: 1.01;
  font-weight: 600;
  margin-top: 15px;
}
@media screen and (max-width: 1025px) {
  .majin .majin_box .majin_slide .en_ttl,
  .majin .majin_box .majin_sp_slide .en_ttl {
    font-size: 60px;
  }
}
@media screen and (max-width: 849px) {
  .majin .majin_box .majin_slide .en_ttl,
  .majin .majin_box .majin_sp_slide .en_ttl {
    margin-top: 5px;
    font-size: 40px;
  }
}
.majin .majin_box .majin_slide .jp_ttl,
.majin .majin_box .majin_sp_slide .jp_ttl {
  text-align: left;
  font-weight: bold;
  font-size: 18px;
  line-height: 1.7;
}
@media screen and (max-width: 849px) {
  .majin .majin_box .majin_slide .jp_ttl,
  .majin .majin_box .majin_sp_slide .jp_ttl {
    font-size: 15px;
    line-height: 2;
  }
}
.majin .majin_box .majin_slide .sub_list,
.majin .majin_box .majin_sp_slide .sub_list {
  display: flex;
  flex-wrap: wrap;
  gap: 11px;
  column-gap: 10px;
  max-width: 320px;
  margin-top: 30px;
}
@media screen and (max-width: 849px) {
  .majin .majin_box .majin_slide .sub_list,
  .majin .majin_box .majin_sp_slide .sub_list {
    gap: 8px;
    column-gap: 8px;
    max-width: 100%;
    margin-top: 15px;
  }
}
.majin .majin_box .majin_slide .sub,
.majin .majin_box .majin_sp_slide .sub {
  width: fit-content;
  border: 1px solid #000000;
  font-size: 14px;
  font-weight: 500;
  padding: 0 10px;
  border-radius: 2px;
  line-height: 23px;
}
@media screen and (max-width: 849px) {
  .majin .majin_box .majin_slide .sub,
  .majin .majin_box .majin_sp_slide .sub {
    font-size: 12px;
    line-height: 20px;
    padding: 0 8px;
  }
}
.majin .majin_box .majin_slide .more,
.majin .majin_box .majin_sp_slide .more {
  display: block;
  width: fit-content;
  cursor: pointer;
  position: relative;
  font-size: 14px;
  font-weight: 400;
  line-height: 2;
  padding-right: 30px;
  margin-top: 80px;
}
@media screen and (max-width: 1080px) {
  .majin .majin_box .majin_slide .more,
  .majin .majin_box .majin_sp_slide .more {
    margin-top: 40px;
  }
}
@media screen and (max-width: 849px) {
  .majin .majin_box .majin_slide .more,
  .majin .majin_box .majin_sp_slide .more {
    font-size: 12px;
    line-height: 1.6;
    padding-right: 21px;
    margin: auto;
    margin-top: 33px;
  }
}
.majin .majin_box .majin_slide .more::after,
.majin .majin_box .majin_sp_slide .more::after {
  position: absolute;
  content: "";
  width: 20px;
  height: 20px;
  right: 0;
  top: 50%;
  -webkit-transform: translateY(-50%);
  -ms-transform: translateY(-50%);
  transform: translateY(-50%);
  background: url(../img/more.png) no-repeat center / contain;
  transition: 0.3s ease-in-out;
  background-size: 100% 100%;
}
@media screen and (max-width: 849px) {
  .majin .majin_box .majin_slide .more::after,
  .majin .majin_box .majin_sp_slide .more::after {
    right: 0;
    width: 15px;
    height: 15px;
  }
}
/* ターゲットサイズ上げ */
@media screen and (max-width: 849px) {
  .majin .majin_box .majin_slide .more::before,
  .majin .majin_box .majin_sp_slide .more::before {
    content: "";
    position: absolute;
    top: 50%;
    left: 50%;
    transform: translate(-50%, -50%);
    width: calc(100% + 40px);
    height: 48px;
  }
}
.majin .majin_box .majin_slide {
  width: calc(100% - 300px);
  max-width: 822px;
  position: relative;
}
@media screen and (max-width: 1080px) {
  .majin .majin_box .majin_slide {
    width: calc(100% - 280px);
    max-width: 620px;
  }
}
@media screen and (max-width: 849px) {
  .majin .majin_box .majin_slide {
    display: none;
  }
}
.majin .majin_box .majin_slide .slide_box {
  position: absolute;
  bottom: 0;
  left: 0;
  width: 100%;
  border-radius: 5px;
  background: #FFF;
  box-shadow: 0 0 9.6px 9px rgba(0, 0, 0, 0.05);
  display: flex;
  align-items: center;
  height: 470px;
}
.majin .majin_box .majin_slide .slide_box .slide_box_l {
  width: 59.86%;
  padding-left: 60px;
  text-align: left;
  padding-top: 40px;
}
@media screen and (max-width: 1080px) {
  .majin .majin_box .majin_slide .slide_box .slide_box_l {
    padding-top: 10px;
    padding-left: 40px;
  }
}
.majin .majin_box .majin_slide .slide_box .slide_box_r {
  width: 40.14%;
}
.majin .majin_box .majin_slide .slide_box07 .slide_box_l .more {
  margin-top: 45px;
}
.majin .majin_box .majin_slide .slide_box10 .slide_box_l {
  padding-top: 10px;
}
.majin .majin_box .majin_slide .slide_box10 .en_ttl {
  line-height: 0.95 !important;
  margin-bottom: 5px;
}
.majin .majin_box .majin_slide .slide_box10 .slide_box_l .more {
  margin-top: 40px;
}

/* ===== マシン紹介スライドのページャー ===== */
.majin_slide__pagination {
  position: absolute;
  bottom: -28px;       /* カードの下に少し離して配置 */
  right: 16px;          /* カードの右下に揃える */
  display: flex;
  gap: 10px;
  z-index: 50;
}

.majin_slide__dot {
  width: 8px;
  height: 8px;
  padding: 0;
  border: none;
  border-radius: 50%;
  background: #D4D4D4;
  cursor: pointer;
  transition: background 0.3s ease;
}

.majin_slide__dot.is-active {
  background: #F18900;
}

.majin_slide__dot:hover {
  opacity: 0.8;
}

/* SPでは非表示（.majin_slide 自体が SPでは display: none なので念のため） */
@media screen and (max-width: 849px) {
  .majin_slide__pagination {
    display: none;
  }
}


.step {
  position: relative;
  background: linear-gradient(138deg, #F18A00 58.42%, #4B2B00 143.03%);
}
.step .inner {
  padding-top: 102px;
  padding-bottom: 108px;
  position: relative;
  z-index: 100;
}
@media screen and (max-width: 849px) {
  .step .inner {
    padding-top: 52px;
    padding-bottom: 30px;
  }
}
.step dl {
  display: flex;
}
@media screen and (max-width: 849px) {
  .step dl {
    display: block;
  }
}
.step dl dt {
  width: 50%;
}
@media screen and (max-width: 849px) {
  .step dl dt {
    width: 100%;
  }
}
.step dl dt .video {
  aspect-ratio: 16 / 9;
}
.step dl dt .video iframe {
  width: 100%;
  height: 100%;
  max-width: 100%;
  object-fit: cover;
  aspect-ratio: 16 / 9;
}
.step dl dd {
  width: 50%;
  padding-left: 58px;
}
@media screen and (max-width: 849px) {
  .step dl dd {
    width: 100%;
    padding-left: 0;
    margin-top: 10px;
  }
}
@media screen and (max-width: 849px) {
  .step dl dd .flex {
    display: flex;
    align-items: center;
    gap: 24px;
  }
}
.step dl dd .num {
  text-align: left;
  color: #ffffff;
  font-family: "Barlow Condensed", sans-serif;
  line-height: 1.01;
  font-size: 80px;
  font-style: italic;
  font-weight: 500;
}
@media screen and (max-width: 849px) {
  .step dl dd .num {
    font-size: 60px;
  }
}
.step dl dd .en_ttl {
  text-align: left;
  color: #ffffff;
  font-family: "Barlow Condensed", sans-serif;
  font-size: 80px;
  line-height: 1.01;
  font-weight: 600;
  margin-top: 20px;
}
@media screen and (max-width: 1025px) {
  .step dl dd .en_ttl {
    font-size: 60px;
  }
}
@media screen and (max-width: 849px) {
  .step dl dd .en_ttl {
    margin-top: 10px;
    font-size: 40px;
  }
}
.step dl dd .jp_ttl {
  text-align: left;
  font-weight: bold;
  font-size: 18px;
  line-height: 1.7;
  margin-top: 5px;
  color: #ffffff;
}
@media screen and (max-width: 849px) {
  .step dl dd .jp_ttl {
    font-size: 14px;
  }
}
.step dl dd .sub {
  width: fit-content;
  border: 1px solid #ffffff;
  font-size: 14px;
  font-weight: 500;
  padding: 0 10px;
  border-radius: 2px;
  color: #ffffff;
  line-height: 24px;
  margin-top: 20px;
}
@media screen and (max-width: 849px) {
  .step dl dd .sub {
    font-size: 12px;
    margin-top: 10px;
    padding: 0 8px;
    line-height: 20px;
  }
}
.step dl dd .txt {
  text-align: left;
  font-weight: 500;
  font-size: 14px;
  line-height: 2;
  color: #ffffff;
  margin-top: 20px;
}
@media screen and (max-width: 849px) {
  .step dl dd .txt {
    font-size: 12px;
    margin-top: 10px;
    line-height: 1.6;
  }
}
.step dl dd .pdf {
  display: block;
  width: fit-content;
  margin: auto;
  margin-right: 0;
  position: relative;
  font-size: 14px;
  font-weight: 400;
  line-height: 2;
  color: #ffffff;
  padding-right: 51px;
  margin-top: 42px;
}
@media screen and (max-width: 849px) {
  .step dl dd .pdf {
    font-size: 11px;
    margin-top: 20px;
    line-height: 1.5;
    padding-right: 30px;
    border: 1px solid #fff;
    padding: 10px 30px 10px 10px;
    border-radius: 9999px;
    text-align: center;
    width: 146px;
    height: 40px;
  }
}
.step dl dd .pdf::after {
  position: absolute;
  content: "";
  width: 30px;
  height: 34px;
  right: 4px;
  top: 50%;
  -webkit-transform: translateY(-50%);
  -ms-transform: translateY(-50%);
  transform: translateY(-50%);
  background: url(../img/pdf.png) no-repeat center / contain;
  transition: 0.3s ease-in-out;
  background-size: 100% 100%;
}
@media screen and (max-width: 849px) {
  .step dl dd .pdf::after {
    right: 20px;
    width: 20px;
    height: 22px;
    right: 20px;
  }
}
.case {
  background: linear-gradient(180deg, #000 30.43%, #222 62.51%);
  position: relative;
  padding-top: 128px;
  padding-bottom: 121px;
  margin-top: -1px;
}
@media screen and (max-width: 849px) {
  .case {
    padding-top: 42px;
    padding-bottom: 52px;
  }
}
.case .teca_top {
  position: relative;
  z-index: 20;
}
.case .teca_top .teca_img {
  width: 61.80555556vw;
  margin: auto;
  margin-right: 0;
  text-align: right;
  aspect-ratio: 16 / 9;
}
@media screen and (max-width: 849px) {
  .case .teca_top .teca_img {
    width: 100%;
    padding-left: 20px;
    padding-right: 20px;
    margin-top: 28px;
  }
}
.case .teca_top .teca_img iframe {
  width: 100%;
  max-width: 100%;
  height: 100%;
  object-fit: cover;
  aspect-ratio: 16 / 9;
}
.case .teca_top .teca_t_box {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  display: flex;
  align-items: center;
  color: #ffffff;
}
@media screen and (max-width: 849px) {
  .case .teca_top .teca_t_box {
    position: relative;
  }
}
.case .teca_top .teca_t_box .sub {
  text-align: left;
  font-size: 20px;
  font-family: "Barlow Condensed", sans-serif;
  font-weight: 600;
  line-height: 1.5;
  letter-spacing: 0.25em;
}
@media screen and (max-width: 849px) {
  .case .teca_top .teca_t_box .sub {
    font-size: 12px;
  }
}
.case .teca_top .teca_t_box .t_ttl {
  font-size: 50px;
  font-family: "Inter", sans-serif;
  text-align: left;
  font-weight: bold;
  letter-spacing: 0.05em;
  margin-top: 45px;
}
@media screen and (max-width: 849px) {
  .case .teca_top .teca_t_box .t_ttl {
    font-size: 30px;
    margin-top: 16px;
  }
}
.case .teca_c span {
  color: #F18900;
}
.case .teca_c .inner {
  padding-top: 90px;
}
.case .teca_c .cc_txt {
  color: #ffffff;
  font-family: "Inter", sans-serif;
  font-size: 35px;
  line-height: 1.5;
  font-weight: bold;
  text-align: left;
}
@media screen and (max-width: 849px) {
  .case .teca_c .cc_txt {
    font-size: 14px;
  }
}
.case .teca_c ul {
  margin-top: 74px;
  gap: 35px;
  column-gap: 156px;
  display: flex;
  flex-wrap: wrap;
}
@media screen and (max-width: 1080px) {
  .case .teca_c ul {
    column-gap: 80px;
  }
}
@media screen and (max-width: 849px) {
  .case .teca_c ul {
    margin-top: 29px;
    display: block;
  }
}
.case .teca_c ul li {
  width: calc(50% - 78px);
  position: relative;
}
@media screen and (max-width: 1080px) {
  .case .teca_c ul li {
    width: calc(50% - 40px);
  }
}
@media screen and (max-width: 849px) {
  .case .teca_c ul li {
    width: 100%;
  }
}
.case .teca_c ul li:nth-child(even) {
  padding-top: 69px;
}
@media screen and (max-width: 849px) {
  .case .teca_c ul li:nth-child(even) {
    margin-top: 0;
  }
}
@media screen and (max-width: 849px) {
  .case .teca_c ul li + li {
    margin-top: 45px;
  }
}
.case .teca_c ul li .small_txt {
  color: #ffffff;
  text-align: left;
  font-weight: 400;
  font-size: 14px;
  line-height: 1.8;
  margin-top: 20px;
}
@media screen and (max-width: 849px) {
  .case .teca_c ul li .small_txt {
    margin-top: 12px;
    font-size: 12px;
  }
}
.case .teca_c ul li .img_box {
  position: relative;
  border-bottom: 1px solid #ffffff;
}
.case .teca_c ul li .img_box::after {
  position: absolute;
  content: "";
  width: 1px;
  height: calc(100% - 70px);
  right: 0;
  bottom: 0;
  background: #ffffff;
}
@media screen and (max-width: 849px) {
  .case .teca_c ul li .img_box::after {
    height: calc(100% - 38px);
  }
}
.case .teca_c ul li .img_box .img_r_txt {
  position: absolute;
  top: 70px;
  right: 14px;
  font-weight: 600;
  line-height: 1.5;
  font-family: "Barlow Condensed", sans-serif;
  letter-spacing: 0.4em;
  color: #ffffff;
  writing-mode: vertical-rl;
  line-height: 1.01;
  white-space: nowrap;
  font-size: 15px;
}
@media screen and (max-width: 849px) {
  .case .teca_c ul li .img_box .img_r_txt {
    top: 38px;
    font-size: 10px;
  }
}
.case .teca_c ul li .img_box .img {
  margin-left: 0;
  text-align: left;
}
.case .teca_c ul li .img_box .img img {
  width: 82%;
}
@media screen and (max-width: 849px) {
  .case .teca_c ul li .img_box .img img {
    width: 80.59%;
  }
}
.case .teca_c ul li .img_box .img_txt {
  padding-top: 44px;
  padding-bottom: 20px;
  text-align: left;
  color: #ffffff;
  font-size: 22px;
  font-weight: bold;
  line-height: 1.03;
}
@media screen and (max-width: 849px) {
  .case .teca_c ul li .img_box .img_txt {
    font-size: 15px;
    padding-top: 26px;
    padding-bottom: 15px;
  }
}
.case .case_after_t {
  width: 48.88888889vw;
  height: 39.375vw;
  position: absolute;
  right: 0;
  top: 0;
}
@media screen and (max-width: 849px) {
  .case .case_after_t {
    width: 100%;
    height: 225px;
  }
}
.case .case_after_c {
  width: 21.11111111vw;
  height: 12.70833333vw;
  top: 45.69444444vw;
  position: absolute;
  right: 0;
  z-index: 5;
}
@media screen and (max-width: 849px) {
  .case .case_after_c {
    width: 123px;
    height: 76px;
    top: 365px;
  }
}
.case .case_after_b {
  width: 51.94444444vw;
  height: 39.375vw;
  position: absolute;
  left: 0;
  bottom: 0;
}
@media screen and (max-width: 849px) {
  .case .case_after_b {
    width: 100%;
    height: 440px;
  }
}


.arc-slider {
	-webkit-box-align: center;
	-ms-flex-align: center;
	align-items: center;
	display: -webkit-box;
	display: -ms-flexbox;
	display: flex;
	height: 400px;
	-webkit-box-pack: center;
	-ms-flex-pack: center;
	justify-content: center;
	position: relative;
	width: 100%;
}
@media screen and (max-width: 849px) {
  .arc-slider {
    height: 338px;
  }
}

.arc-slider__container {
	height: 100%;
	position: relative;
	width: 100%;
}

.arc-slider__item {
	-webkit-user-select: none;
	-moz-user-select: none;
	border: 8px solid transparent;
	border-radius: 15px;
	-webkit-box-sizing: border-box;
	box-sizing: border-box;
	filter: url('data:image/svg+xml;charset=utf-8,<svg xmlns="http://www.w3.org/2000/svg"><filter id="filter"><feComponentTransfer color-interpolation-filters="sRGB"><feFuncR type="linear" slope="0.5" /><feFuncG type="linear" slope="0.5" /><feFuncB type="linear" slope="0.5" /></feComponentTransfer></filter></svg>#filter');
	-webkit-filter: brightness(0.3);
	filter: brightness(0.3);
	height: 444px; /* カードの縦幅 */
	left: 50%; /* 通常時は暗く、透明度を下げる */
	opacity: 0.8;
	overflow: visible;
	position: absolute;
	top: 50%;
	-webkit-transform: translate(-50%, -50%);
	transform: translate(-50%, -50%);
	-webkit-transition: opacity 0.2s, border 0.2s, -webkit-filter 0.2s;
	transition: opacity 0.2s, border 0.2s, -webkit-filter 0.2s;
	transition: opacity 0.2s, filter 0.2s, border 0.2s;
	transition: opacity 0.2s, filter 0.2s, border 0.2s, -webkit-filter 0.2s;
	-webkit-transition: opacity 0.2s, border 0.2s, z-index 0s, -webkit-filter 0.2s;
	transition: opacity 0.2s, border 0.2s, z-index 0s, -webkit-filter 0.2s;
	transition: opacity 0.2s, filter 0.2s, border 0.2s, z-index 0s;
	transition: opacity 0.2s, filter 0.2s, border 0.2s, z-index 0s, -webkit-filter 0.2s; /* z-indexは一瞬で切り替える */
	-ms-user-select: none;
	user-select: none;
	width: 366px; /* カードの横幅 */
}
@media screen and (max-width: 849px) {
  .arc-slider__item {
    width: 224px;
    height: 272px;
  }
}

/* センター（アクティブ）のカード */
.arc-slider__item.is-active {
	/* background-color: rgba(4, 4, 4, .6); #040404 の 60% 角丸の調整（枠も丸める場合） */
	border-radius: 15px;
	filter: url('data:image/svg+xml;charset=utf-8,<svg xmlns="http://www.w3.org/2000/svg"><filter id="filter"><feComponentTransfer color-interpolation-filters="sRGB"><feFuncR type="linear" slope="1" /><feFuncG type="linear" slope="1" /><feFuncB type="linear" slope="1" /></feComponentTransfer></filter></svg>#filter');
	-webkit-filter: brightness(1);
	filter: brightness(1);
	opacity: 1; /* outline は要素のサイズのさらに外側に引かれる線です */
	/* outline: 8px solid #fff; */
	/* outline-offset: -8px; ポイント2：内側に余白を作り、背景色を入れる */
	padding: 15px 15px 15px 5px; /* ここで白枠と画像の間の距離を調整します */
	z-index: 100;
}
@media screen and (max-width: 849px) {
  .arc-slider__item.is-active {
    /* outline: 5px solid #fff; */
	  /* outline-offset: -5px; */
    padding: 6px 6px 6px 0px;
  }
}

/* 中の画像が背景色を隠さないように調整 */
.arc-slider__item.is-active img {
	border-radius: 8px;
	display: block;
	height: 100%;
	width: 100%;
}

/* ===== 中央固定の白枠 ===== */
.arc-slider__frame {
  position: absolute;
  top: 50%;
  left: 50%;
  transform: translate(-50%, -50%);
  width: 366px;   /* カードと同じ横幅 */
  height: 444px;  /* カードと同じ縦幅 */
  border: 8px solid #fff;
  border-radius: 15px;
  box-sizing: border-box;
  pointer-events: none; /* クリックを邪魔しない */
  z-index: 1;
}
@media screen and (max-width: 849px) {
  .arc-slider__frame {
    width: 224px;
    height: 272px;
    border-width: 5px;
  }
}
/* 白枠の中に敷く背景レイヤー（カードより奥に置く） */
.arc-slider__frame::before {
  content: "";
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  background-color: rgba(4, 4, 4, .6);
  border-radius: 7px; /* 白枠の内側に合わせる（15 - 8 = 7） */
  z-index: -1; /* ← ポイント：カードより奥 */
}

/* ナビゲーションの親要素を画面中央に固定 */
.arc-slider__controls {
	-webkit-box-align: center;
	-ms-flex-align: center;
	align-items: center;
	display: -webkit-box;
	display: -ms-flexbox;
	display: flex;
	-webkit-box-pack: justify;
	-ms-flex-pack: justify;
	justify-content: space-between; /* 両端に配置 */
	left: 50%; /* 水平中央 */
	max-width: 500px;
	pointer-events: none; /* 親要素がカードのクリックを邪魔しないように */
	position: absolute;
	top: 50%; /* 垂直中央 */
	-webkit-transform: translate(-50%, -50%);
	transform: translate(-50%, -50%); /* 自身のサイズ分戻して完全に真ん中へ */ /* カードの横幅 + ボタンの間隔を考慮した幅に設定 */ /* カードが 280px なら、両脇にボタンを置くために 400px〜450px 程度に広げる */
	width: 100%;
	z-index: 100; /* カード(z-index: 10)より手前に */
}
@media screen and (max-width: 849px) {
  .arc-slider__controls {
    max-width: 300px;
  }
}

/* ボタン自体のスタイル */
.arc-slider__button {
	background: none;
	border: none;
	cursor: pointer !important;
	height: 40px;
	outline: none;
	padding: 0;
	pointer-events: auto; /* ボタンだけはクリック可能にする */
	-webkit-transition: opacity 0.3s, -webkit-transform 0.3s;
	transition: opacity 0.3s, -webkit-transform 0.3s;
	transition: opacity 0.3s, transform 0.3s;
	transition: opacity 0.3s, transform 0.3s, -webkit-transform 0.3s;
	width: 40px;
}
@media screen and (max-width: 849px) {
  .arc-slider__button {
    width: 25px;
    height: 25px;
  }
}

.arc-slider__button {
	opacity: 0.7;
	-webkit-transform: scale(1.1);
	transform: scale(1.1);
}

.arc-slider__button img {
	display: block;
	height: auto;
	width: 100%;
}

.arc-slider__pagination {
  position: absolute;
  bottom: -70px; /* 下からの位置はお好みで調整 */
  left: 50%;
  transform: translateX(-50%);
  display: flex;
  gap: 8px;
  z-index: 101; /* カード（z-index:100）より手前 */
  pointer-events: auto;
}
@media screen and (max-width: 849px) {
  .arc-slider__pagination {
    bottom: 0;
    gap: 6px;
  }
}

.arc-slider__pagination-dot {
  width: 8px;
  height: 8px;
  border-radius: 50%;
  background-color: rgba(255, 255, 255, 0.25); /* #fff 透明度25% */
  border: none;
  padding: 0;
  cursor: pointer;
  transition: background-color 0.3s ease;
}
@media screen and (max-width: 849px) {
  .arc-slider__pagination-dot {
    width: 5px;
    height: 5px;
  }
}

.arc-slider__pagination-dot.is-active {
  background-color: #F18A00;
}


/* アニメーション前は隠しておく */
.js-stabIn {
  opacity: 0;
  will-change: transform, opacity; /* 滑らかにするおまじない */
}

/* 親要素（.case など）で、はみ出した分を隠す設定が必要 */
.case {
  overflow: hidden; /* ★右上から入ってくる時に画面が横に伸びるのを防ぐ */
}

.campaign {
  overflow: hidden;
}

/* ===== ランプ点灯サイクル =====
   合計15秒で1サイクル
   各ランプ3秒ずつ均等に点灯（点滅なし）
   緑1: 0-3s / 黄: 3-6s / 緑2: 6-9s / 赤: 9-12s / 青: 12-15s
*/

/* 親要素を相対配置にする */
.menu_b_list {
  position: relative;
  width: 100%;
  aspect-ratio: 1360 / 234;
  max-width: 1360px;
  margin-left: auto;
  margin-right: auto;
}
@media screen and (max-width: 849px) {
  .menu_b_list {
    max-width: 100%;
    aspect-ratio: 1020 / 314;
  }
}

/* 全ランプを同じ位置に重ねて、デフォルトは非表示 */
.menu_b_list .lamp {
  position: absolute;
  top: 0;
  left: 0;
  opacity: 0;
  visibility: hidden;
}
@media screen and (max-width: 849px) {
  .menu_b_list .lamp {
    width: 100%;
    cursor: pointer;
  }
}

.menu_b_list .lamp .lamp_button {
  position: absolute;
  width: 3%;
  height: 3%;
  right: 21%;
  bottom: 40%;
  cursor: pointer;
}
@media screen and (max-width: 849px) {
  .menu_b_list .lamp .lamp_button {
    width: 4%;
    height: 4%;
    bottom: 30%;
    right: 22%;
  }
}

/* 楕円画像 */
.menu_b_list .lamp .lamp_ellipse {
  display: block;
  width: 100%;
}

/* 楕円にくっつく棒 */
.menu_b_list .lamp .lamp_pole_attached {
  position: absolute;
  bottom: 30%;
  right: 5%;
  width: 3.5%;
  height: auto;
  z-index: -1;
}
@media screen and (max-width: 849px) {
  .menu_b_list .lamp .lamp_pole_attached {
    bottom: 60%;
  }
}

/* === 緑1（0〜3秒）=== */
.lamp-green-1 {
  animation: lamp-green-1 15s infinite;
}
@keyframes lamp-green-1 {
  0%, 20%      { opacity: 1; visibility: visible; }
  20.01%, 100% { opacity: 0; visibility: hidden; }
}

/* === 黄（3〜6秒）=== */
.lamp-yellow {
  animation: lamp-yellow 15s infinite;
}
@keyframes lamp-yellow {
  0%, 20%      { opacity: 0; visibility: hidden; }
  20.01%, 40%  { opacity: 1; visibility: visible; }
  40.01%, 100% { opacity: 0; visibility: hidden; }
}

/* === 緑2（6〜9秒）=== */
.lamp-green-2 {
  animation: lamp-green-2 15s infinite;
}
@keyframes lamp-green-2 {
  0%, 40%      { opacity: 0; visibility: hidden; }
  40.01%, 60%  { opacity: 1; visibility: visible; }
  60.01%, 100% { opacity: 0; visibility: hidden; }
}

/* === 赤（9〜12秒）=== */
.lamp-red {
  animation: lamp-red 15s infinite;
}
@keyframes lamp-red {
  0%, 60%      { opacity: 0; visibility: hidden; }
  60.01%, 80%  { opacity: 1; visibility: visible; }
  80.01%, 100% { opacity: 0; visibility: hidden; }
}

/* === 青（12〜15秒）点滅なし === */
.lamp-blue {
  animation: lamp-blue 15s infinite;
}
@keyframes lamp-blue {
  0%, 80%      { opacity: 0; visibility: hidden; }
  80.01%, 100% { opacity: 1; visibility: visible; }
}

/* 手動モードに入ったら自動アニメーションを止める */
.menu_b_list.is-manual .lamp {
  animation: none;
}

/* 手動モードで表示するランプ */
.menu_b_list.is-manual .lamp.is-current {
  opacity: 1;
  visibility: visible;
}

/* ===== 棒だけ固定 ===== */
.lamp_pole_sticky {
  position: fixed;
  z-index: 99;
  opacity: 0;
  visibility: hidden;
  pointer-events: none;
  transition: opacity 0.3s ease, visibility 0.3s ease;
  pointer-events: auto;
  cursor: pointer;
}

.lamp_pole_sticky.is-pole-show {
  visibility: visible;
  opacity: 1;
}

.lamp_pole_sticky .lamp_pole {
  position: relative;
  width: 100%;
  opacity: 0;
  visibility: hidden;
}

/* 複数のランプを重ねる */
.lamp_pole_sticky .lamp_pole:not(:first-child) {
  position: absolute;
  top: 0;
  left: 0;
}

/* 既存の @keyframes を流用して、棒も同じタイミングで切り替える */
.lamp-pole-green-1  { animation: lamp-green-1  15s infinite; }
.lamp-pole-yellow   { animation: lamp-yellow   15s infinite; }
.lamp-pole-green-2  { animation: lamp-green-2  15s infinite; }
.lamp-pole-red      { animation: lamp-red      15s infinite; }
.lamp-pole-blue     { animation: lamp-blue     15s infinite; }



/* 文字色・枠線をなめらかに変化させる */
#header .header_item .logo_item .logo .logo_txt {
  transition: 0.3s ease;
}
#header .logo_img img {
  transition: 0.3s ease;
}
/* ヘッダーが明るい背景に重なったとき用 */
#header.is-dark .header_item .logo_item .logo .logo_txt {
  color: #000000;
  border-color: #000000;
}
/* ロゴ画像が白主体なら、暗いロゴ画像に差し替えるか filter で黒くする */
#header.is-dark .logo_img img {
  filter: brightness(0) invert(0); /* 必要に応じて調整、または別画像に */
}


/* アニメーション */
/* アニメーション対象の要素にGPU加速を効かせる */
.js-fadeUp,
.js-fadeUp02,
.js-clipLeft,
.js-clipLeft02,
.js-stabIn,
.js-slide_box,
.a_m_f_box_bg,
.lamp_pole_sticky {
  will-change: transform, opacity;
  transform: translateZ(0);     /* GPU レイヤー化を強制 */
  backface-visibility: hidden;     /* iOS Safari対策 */
  -webkit-backface-visibility: hidden;
}

/* キャンペーン書き換え */
/* ====== キャンペーン中身（画像化されていた部分） ====== */

/* 期間バナー */
.campaign .inner .ca_box .ca_period {
  display: inline-block;
  background-color: #F18A00;
  color: #141414;
  font-weight: bold;
  padding: 6px 30px;
  font-size: 26px;
  line-height: 1;
  letter-spacing: 0.05em;
  clip-path: polygon(
    15px 0,           /* 左上 */
    100% 0,           /* 右上 */
    calc(100% - 15px) 100%,  /* 右下 */
    0 100%            /* 左下 */
  );
  /* 斜めカット分、内側余白を増やしておくと文字が切れない */
  padding-left: 45px;
  padding-right: 45px;
}
@media screen and (max-width: 849px) {
  .campaign .inner .ca_box .ca_period {
    line-height: 1.5;
    font-size: 16px;
    padding: 1px 25px;
  }
}

/* ブロック共通 */
.campaign .inner .ca_box .ca_block {
  margin-top: 43px;
}
@media screen and (max-width: 849px) {
  .campaign .inner .ca_box .ca_block {
    margin-top: 23px;
  }
}

/* メインの月会費表示 */
.campaign .inner .ca_box .ca_main_ttl {
  text-align: center;
  font-size: 50px;
  font-weight: bold;
  color: #F18A00;
  line-height: 1.3;
}
@media screen and (max-width: 849px) {
  .campaign .inner .ca_box .ca_main_ttl {
    font-size: 15px;
    letter-spacing: 0.02em;
    line-height: 1.5;
  }
}
.campaign .inner .ca_box .ca_main {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 50px;
  flex-wrap: wrap;
  margin-top: 20px;
}
@media screen and (max-width: 849px) {
  .campaign .inner .ca_box .ca_main {
    gap: 5px;
    flex-direction: column;
  }
}
.campaign .inner .ca_box .ca_main_l {
  text-align: center;
  color: #ffffff;
}
.campaign .inner .ca_box .ca_main_label {
  font-size: 20px;
  font-weight: bold;
  text-align: left;
}
@media screen and (max-width: 849px) {
  .campaign .inner .ca_box .ca_main_label {
    text-align: center;
    font-size: 12px;
    line-height: 1.2;
    letter-spacing: 0.05em;
  }
}
.campaign .inner .ca_box .ca_main_price {
  font-family: "Oswald", sans-serif;
  font-size: 51px;
  font-weight: 500;
  line-height: 1;
  margin-top: 7px;
}
@media screen and (max-width: 849px) {
  .campaign .inner .ca_box .ca_main_price {
    display: inline-block;
    font-size: 30px;
  }
}
.campaign .inner .ca_box .ca_main_price span {
  font-size: 37px;
  display: inline-block;
  margin-right: 10px;
}
@media screen and (max-width: 849px) {
  .campaign .inner .ca_box .ca_main_price span {
    font-size: 25px;
    margin-right: 3px;
  }
}
.campaign .inner .ca_box .ca_main_tax {
  font-family: "Oswald", sans-serif;
  font-size: 26px;
  font-weight: 500;
}
@media screen and (max-width: 849px) {
  .campaign .inner .ca_box .ca_main_tax {
    font-size: 16px;
    font-weight: 600;
    letter-spacing: 0.05em;
    display: inline-block;
  }
}
.campaign .inner .ca_box .ca_main_arrow {
  color: #ffffff;
  font-size: 28px;
}
@media screen and (max-width: 849px) {
  .campaign .inner .ca_box .ca_main_arrow {
    font-size: 20px;
  }
}
.campaign .inner .ca_box .ca_main_r {
  text-align: center;
  color: #ffffff;
}
@media screen and (max-width: 849px) {
  .campaign .inner .ca_box .ca_main_r {
    margin-top: 10px;
  }
}
.campaign .inner .ca_box .ca_main_r_price {
  display: flex;
  align-items: baseline;
  gap: 13px;
}
@media screen and (max-width: 849px) {
  .campaign .inner .ca_box .ca_main_r_price {
    margin-top: -10px;
  }
}
.campaign .inner .ca_box .ca_main_r_price .big {
  letter-spacing: -0.1em;
  font-size: 62px;
  font-weight: 700;
  line-height: 1.3;
  margin-top: -30px;
}
@media screen and (max-width: 849px) {
  .campaign .inner .ca_box .ca_main_r_price .big {
    font-size: 46px;
  }
}
.campaign .inner .ca_box .ca_main_r_price .big .num {
  font-size: 105px;
}
@media screen and (max-width: 849px) {
  .campaign .inner .ca_box .ca_main_r_price .big .num {
    font-size: 70px;
  }
}
.campaign .inner .ca_box .ca_main_r_price .yellow {
  color: #F18A00;
  font-size: 120px;
  letter-spacing: 0.01em;
  font-family: "Barlow Condensed", sans-serif;
  font-weight: 600;
}
@media screen and (max-width: 849px) {
  .campaign .inner .ca_box .ca_main_r_price .yellow {
    font-size: 45px;
  }
}
.campaign .inner .ca_box .ca_main_r_price .yellow .num {
  font-size: 140px;
}
@media screen and (max-width: 849px) {
  .campaign .inner .ca_box .ca_main_r_price .yellow .num {
    font-size: 85px;
  }
}

/* 事務手数料 */
.campaign .inner .ca_box .ca_fee {
  border: 1px solid #fff;
  color: #fff;
  padding: 0px 20px 10px 20px;
  margin: 14px auto 0;
  font-weight: bold;
  max-width: 745px;
  width: 100%;
  text-align: center;
}
@media screen and (max-width: 849px) {
  .campaign .inner .ca_box .ca_fee {
    max-width: 240px;
    padding: 8px 12px;
    margin: -10px auto 14px;
  }
}
.campaign .inner .ca_box .ca_fee_row {
  display: inline-flex;
  align-items: baseline;
  justify-content: center;
  gap: 10px;
  flex-wrap: wrap;
}
.campaign .inner .ca_box .ca_fee_label {
  display: inline-block;
  background: #fff;
  color: #141414;
  font-size: 13px;
  padding: 3px 12px;
  border-radius: 3px;
  line-height: 1.2;
  white-space: nowrap;
}
.campaign .inner .ca_box .ca_fee_main {
  font-size: 18px;
  color: #fff;
  line-height: 1.4;
}
@media screen and (max-width: 849px) {
  .campaign .inner .ca_box .ca_fee_main {
    font-size: 13px;
    width: 100%;
    line-height: 1;
    margin-top: -6px;
  }
}
.campaign .inner .ca_box .ca_fee_main .ca_fee_main-top.pc {
  display: inline-block !important;
}
@media screen and (max-width: 849px) {
  .campaign .inner .ca_box .ca_fee_main .ca_fee_main-top.pc {
    display: none !important;
  }
}
.campaign .inner .ca_box .ca_fee_main .strike {
  font-family: "Oswald", sans-serif;
  margin-right: 4px;
  font-weight: 500;
  font-size: 32px;
}
@media screen and (max-width: 849px) {
  .campaign .inner .ca_box .ca_fee_main .strike {
    font-size: 20px;
  }
}
.campaign .inner .ca_box .ca_fee_main .strike .num {
  font-size: 40px;
}
@media screen and (max-width: 849px) {
  .campaign .inner .ca_box .ca_fee_main .strike .num {
    font-size: 24px;
  }
}
.campaign .inner .ca_box .ca_fee_main .ca_fee_price {
  font-family: "Oswald", sans-serif;
  font-size: 12px;
  line-height: 1.5;
  letter-spacing: 0.15em;
}
@media screen and (max-width: 849px) {
  .campaign .inner .ca_box .ca_fee_main .ca_fee_price {
    font-size: 14px;
  }
}
.campaign .inner .ca_box .ca_fee_main .ca_fee_price .num {
  font-size: 24px;
  font-weight: 600;
}
@media screen and (max-width: 849px) {
  .campaign .inner .ca_box .ca_fee_main .ca_fee_price .num {
    letter-spacing: 0.05em;
    font-size: 18px;
  }
}
.campaign .inner .ca_box .ca_fee_main .ca_fee_price .num .small {
  font-size: 15px;
}

@media screen and (max-width: 849px) {
  .campaign .inner .ca_box .ca_fee_row {
    gap: 6px;
  }
  .campaign .inner .ca_box .ca_fee_label {
    font-size: 10px;
    padding: 2px 8px;
  }
}
/* 小さい注釈 */
.campaign .inner .ca_box .ca_note_small {
  font-size: 14px;
  color: #fff;
  margin-top: 5px;
  line-height: 1.5;
  font-weight: 500;
}
@media screen and (max-width: 849px) {
  .campaign .inner .ca_box .ca_note_small {
    font-size: 10px;
  }
}

/* 区切り線 */
.campaign .inner .ca_box .ca_divider {
  border-top: 1px solid #ffffff;
  margin: 48px auto;
  max-width: 90%;
}
@media screen and (max-width: 849px) {
  .campaign .inner .ca_box .ca_divider {
    margin: 30px auto 22px;
    max-width: 30px;
  }
}

/* オプション部分 */
.campaign .inner .ca_box .ca_option_ttl {
  text-align: center;
  font-size: 50px;
  font-weight: bold;
  color: #F18A00;
  line-height: 1.3;
}
@media screen and (max-width: 849px) {
  .campaign .inner .ca_box .ca_option_ttl {
    font-size: 15px;
    letter-spacing: 0.02em;
    line-height: 1.5;
  }
}
.campaign .inner .ca_box .ca_option_main {
  display: flex;
  align-items: baseline;
  justify-content: center;
  gap: 8px;
  margin-top: 12px;
  color: #ffffff;
}
@media screen and (max-width: 849px) {
  .campaign .inner .ca_box .ca_option_main {
    margin-top: -10px;
  }
}
.campaign .inner .ca_box .ca_option_max {
  font-size: 40px;
  font-weight: bold;
  letter-spacing: -0.01em;
  line-height: 1.3;
}
@media screen and (max-width: 849px) {
  .campaign .inner .ca_box .ca_option_max {
    font-size: 22px;
  }
}
.campaign .inner .ca_box .ca_option_num {
  font-size: 50px;
  font-weight: bold;
  letter-spacing: -0.01em;
  line-height: 1.3;
}
@media screen and (max-width: 849px) {
  .campaign .inner .ca_box .ca_option_num {
    font-size: 27px;
  }
}
.campaign .inner .ca_box .ca_option_num .num {
  font-size: 90px;
}
@media screen and (max-width: 849px) {
  .campaign .inner .ca_box .ca_option_num .num {
    font-size: 50px;
  }
}
.campaign .inner .ca_box .ca_option_zero {
  font-family: "Barlow Condensed", sans-serif;
  font-size: 90px;
  font-weight: 600;
  color: #F18A00;
  line-height: 1;
}
@media screen and (max-width: 849px) {
  .campaign .inner .ca_box .ca_option_zero {
    font-size: 45px;
  }
}
.campaign .inner .ca_box .ca_option_zero .num {
  font-size: 120px;
}
@media screen and (max-width: 849px) {
  .campaign .inner .ca_box .ca_option_zero .num {
    font-size: 85px;
  }
}
.campaign .inner .ca_box .ca_option_list {
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
  gap: 8px 25px;
  margin-top: 0;
  color: #ffffff;
  font-size: 18px;
  font-weight: bold;
  list-style: none;
  padding: 0;
}
@media screen and (max-width: 849px) {
  .campaign .inner .ca_box .ca_option_list {
    font-size: 12px;
    gap: 5px 12px;
    flex-direction: column;
    letter-spacing: 0.02em;
    line-height: 1.5;
    width: fit-content;
    margin-top: 6px;
    margin-left: auto;
    margin-right: auto;
  }
}
.campaign .inner .ca_box .ca_option_list li {
  display: flex;
  align-items: center;
  justify-content: center;
}
@media screen and (max-width: 849px) {
  .campaign .inner .ca_box .ca_option_list li {
    justify-content: flex-start;
  }
}

.campaign .inner .ca_box .ca_option_list span {
  width: 10px;
  margin-right: 5px;
}
@media screen and (max-width: 849px) {
  .campaign .inner .ca_box .ca_option_list span {
    width: 7px;
    margin-right: 5px;
  }
}
.campaign .inner .ca_box .ca_option_list span img {
  width: 100%;
  vertical-align: middle;
}
.campaign .inner .ca_box .ca_note_small.mt {
  margin-top: 14px;
}

/* プレゼント部分 */
.campaign .inner .ca_box .ca_present {
  text-align: center;
  color: #ffffff;
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 18px;
}
@media screen and (max-width: 849px) {
  .campaign .inner .ca_box .ca_present {
    gap: 2px;
  }
}
.campaign .inner .ca_box .ca_present_label {
  font-size: 25px;
  font-weight: bold;
  line-height: 1.3;
  font-weight: 700;
}
@media screen and (max-width: 849px) {
  .campaign .inner .ca_box .ca_present_label {
    font-size: 14px;
    text-align: left;
  }
}
.campaign .inner .ca_box .ca_present_main {
  font-size: 50px;
  font-weight: bold;
  line-height: 1.3;
  font-weight: 700;
  margin-top: 5px;
  color: #F18A00;
}
@media screen and (max-width: 849px) {
  .campaign .inner .ca_box .ca_present_main {
    font-size: 22px;
    text-align: left;
  }
}
.ca_present_img {
  width: 86px;
}
@media screen and (max-width: 849px) {
  .ca_present_img {
    width: 63px;
  }
}

/* ボタン（画像） */
.campaign .inner .ca_box .ca_btn {
  margin-top: 30px;
  width: 90%;
  margin-left: auto;
  margin-right: auto;
}
@media screen and (max-width: 849px) {
  .campaign .inner .ca_box .ca_btn {
    max-width: 500px;
    width: 100%;
  }
}
.campaign .inner .ca_box .ca_btn img {
  width: 100%;
}

/* 注意書き（センター） */
.campaign .inner .ca_box .txt_center {
  line-height: 1.5;
  font-size: 14px;
  text-align: center;
  margin-top: 16px;
  font-weight: 500;
}
@media screen and (max-width: 849px) {
  .campaign .inner .ca_box .txt_center {
    font-size: 10px;
  }
}