@charset "UTF-8";
/* CSS Document */

/*  ----------------------------------------------------------------
			reset
----------------------------------------------------------------*/
.sr-only{
  position:absolute;
  width:1px;
  height:1px;
  padding:0;
  margin:-1px;
  overflow:hidden;
  clip:rect(0, 0, 0, 0);
  white-space:nowrap;
  border:0;
}
html,
body,
div,
span,
applet,
object,
iframe,
h1,
h2,
h3,
h4,
h5,
h6,
p,
blockquote,
pre,
a,
abbr,
acronym,
address,
big,
cite,
code,
del,
dfn,
em,
img,
ins,
kbd,
q,
s,
samp,
small,
strike,
strong,
sub,
sup,
tt,
var,
b,
u,
i,
center,
dl,
dt,
dd,
ol,
ul,
li,
fieldset,
form,
label,
legend,
table,
caption,
tbody,
tfoot,
thead,
tr,
th,
td,
article,
aside,
canvas,
details,
embed,
figure,
figcaption,
footer,
header,
hgroup,
menu,
nav,
output,
ruby,
section,
summary,
time,
mark,
audio,
video {
  margin: 0;
  padding: 0;
  border: 0;
  font-size: 100%;
  font: inherit;
  vertical-align: baseline;
}

/* HTML5 display-role reset for older browsers */
article,
aside,
details,
figcaption,
figure,
footer,
header,
hgroup,
menu,
nav,
section {
  display: block;
}

body {
  line-height: 1;
}

ol,
ul {
  list-style: none;
}

blockquote,
q {
  quotes: none;
}

blockquote:before,
blockquote:after,
q:before,
q:after {
  content: '';
  content: none;
}

table {
  border-collapse: collapse;
  border-spacing: 0;
}

.bold {
  font-weight: bold;
}

* {
  box-sizing: border-box;
}

/*  ----------------------------------------------------------------
			base
----------------------------------------------------------------*/
body {
  font-family: "Helvetica Neue",
    Arial,
    "Hiragino Kaku Gothic ProN",
    "Hiragino Sans",
    Meiryo,
    sans-serif;
}

/* 最低限必要なリセット */
ul,
li {
  list-style: none;
  margin: 0;
  padding: 0;
}

img {
  vertical-align: bottom;
  line-height: 0px;
}

.red {
  color: #f00;
}

.red2 {
  color: #C00;
}

@media screen and (max-width: 640px) {
  a img {
    transition: 0s;
  }
}

.cn {
  text-align: center;
}

.le {
  text-align: left;
}

.ri {
  text-align: right;
}

strong {
  font-weight: 500;
}

img {
  width: 100%;
}

a {
  color: #101010;
  cursor: pointer;
  font-weight: 400;
  text-decoration: none;
}

.pc {
  display: inline-block;
}

.sp {
  display: none;
}

@media screen and (max-width: 640px) {
  .pc {
    display: none;
  }

  .sp {
    display: inline-block;
  }
}

.mab20 {
  margin-bottom: 20px;
}

.mab50 {
  margin-bottom: 50px !important;
}

.wrap {
  width: 90%;
  max-width: 1100px;
  margin: 65px auto 0 auto;
  font-size: 87.5%;
}

.wrap:after {
  content: " ";
  display: block;
  clear: both;
}

/*clearfix*/
.exp125 {
  font-size: 125%;
}

td.gr {
  background: rgba(34, 172, 56, 0.35);
}

.flex_sb {
  display: -webkit-flex;
  display: -moz-flex;
  display: -ms-flex;
  display: -o-flex;
  display: box;
  -js-display: flex;
  display: flex;
  -webkit-justify-content: space-between;
  justify-content: space-between;
  flex-wrap: wrap;
}

.reverse {
  -webkit-flex-direction: row-reverse;
  flex-direction: row-reverse;
}

/*flex逆並び用*/
.fR {
  float: right;
}

.limit {
  color: red;
  font-size: 120%;
  font-weight: bold;
}

@media screen and (max-width: 640px) {
  .wrap {
    margin: 30px auto 0 auto;
  }

  .flex_sb {
    display: block;
  }
}

/* ----------------------------------------------------------------------------------
          loading
----------------------------------------------------------------------------------- */
.load_logo {
  position: absolute;
  left: 50%;
  top: 50%;
  width: 256px;
  height: 60px;
  margin-top: -50px;
  margin-left: -128px;
  text-align: center;
}

.load_logo img {
  width: 40px;
  text-align: center;
}

.loading {
  padding: 10px 0px 0 0;
}

/*.loading{ visibility: hidden;}*/
#loader-bg {
  display: block;
  position: fixed;
  width: 100%;
  height: 100%;
  top: 0px;
  left: 0px;
  background: #000;
  z-index: 10;
}

.load_txt {
  color: #fff;
  font-family: Arial, Helvetica, "sans-serif";
  font-weight: 700;
  letter-spacing: 2px;
  font-size: 10px;
  margin-top: 10px;
}

@media screen and (max-width: 750px) {
  .load_logo {
    position: absolute;
    left: 50%;
    top: 50%;
    width: 46%;
    margin-top: -7%;
    margin-left: -23%;
  }

  .loading {
    padding: 10px 0px 0 0;
    width: 35px;
    display: block;
    margin: 0 auto;
  }
}

/* ----------------------------------------------------------------
		header
----------------------------------------------------------------*/
header {
  width: 100%;
  height: 90px;
  background-color: rgba(30, 30, 30, 0.90);
  position: fixed;
  top: 0;
  z-index: 6;
  text-align: center;
  transition: 0.5s;
}

header .header_inner {
  width: 100%;
  margin: 0 auto;
}

header .header_inner:after {
  content: " ";
  display: block;
  clear: both;
}

/*clearfix*/
header .header_inner .logo {
  float: left;
  width: 205px;
  margin: 10px 0 0 10px;
  transition: 0.5s;
}

header .header_inner .logo:hover {
  filter: alpha(opacity=70);
  -moz-opacity: 0.7;
  opacity: 0.7;
  transform: translateZ(0);
}

header .header_inner .logo img {
  width: 100%;
}

header .header_inner nav {
  margin-right: 0%;
}

header .header_inner nav ul {
  max-width: 1000px;
  width: 60%;
  height: 60px;
  margin: 0 auto;
}

header .header_inner nav ul li a {
  float: left;
  margin: 0;
  font-size: 13px;
  line-height: 90px;
  letter-spacing: 2px;
  color: #fff;
  text-align: center;
  text-decoration: none;
  font-weight: 500;
  background: url(../img/nav_r_on.png) no-repeat center 100px;
  background-size: 3px;
  transition: 0.3s;
  padding: 0 2%;
}

header .header_inner nav .nav_pc_en ul li a {
  float: left;
  margin: 0;
  font-size: 13px;
  line-height: 90px;
  letter-spacing: 0.5px;
  color: #fff;
  text-align: center;
  text-decoration: none;
  font-weight: 500;
  background: url(../img/nav_r_on.png) no-repeat center 100px;
  background-size: 3px;
  transition: 0.3s;
  padding: 0 2%;
}

header .header_inner nav ul li a:hover {
  color: #D12D26;
  background: rgba(255, 255, 255, 0.0) url(../img/nav_r_on.png) no-repeat center bottom;
  background-size: 3px;
}

header .header_inner nav ul li a.active {
  color: #D12D26;
  background: rgba(255, 255, 255, 0.0) url(../img/nav_r_on.png) no-repeat center bottom;
  background-size: 3px;
}

header .header_inner .header_btn_buy a {
  position: absolute;
  right: 0px;
  top: 0px;
  width: 160px;
  height: 90px;
  margin-top: 0px;
  transition: 0.5s;
  background: url(../img/head_btn.png) center center #D12D26 no-repeat;
  text-indent: -9999px;
  background-size: 100%;
  /* background-image: url(../img/head_btn.png); */
}

header .header_inner .header_btn_buy a:hover {
  position: absolute;
  right: 0px;
  top: 0px;
  width: 160px;
  height: 90px;
  margin-top: 0px;
  transition: 0.5s;
  background: url(../img/head_btn.png) center center rgba(146, 8, 8, .7) no-repeat;
  text-indent: -9999px;
  background-size: 100%;
  /* background-image: url(../img/head_btn.png); */
}

header .header_inner .header_btn_catalog a {
  position: absolute;
  right: 160px;
  top: 0px;
  width: 160px;
  height: 90px;
  margin-top: 0px;
  transition: 0.5s;
  background: url(../img/head_btn_catalog_lg.png) center center #C1564D no-repeat;
  text-indent: -9999px;
  background-size: 100%;
  /* background-image: url(../img/head_btn.png); */
}

header .header_inner .header_btn_catalog a:hover {
  position: absolute;
  right: 160px;
  top: 0px;
  width: 160px;
  height: 90px;
  margin-top: 0px;
  transition: 0.5s;
  background: url(../img/head_btn_catalog_lg.png) center center rgba(193, 86, 77, .7) no-repeat;
  text-indent: -9999px;
  background-size: 100%;
}

@media screen and (max-width: 1400px) {
  header .header_inner nav {
    margin-right: -5%;
  }
}

@media screen and (max-width: 1250px) {
  header .header_inner nav ul li a {
    float: left;
    margin: 0;
    font-size: 12px;
    line-height: 90px;
    letter-spacing: 0px;
    color: #fff;
    text-align: center;
    text-decoration: none;
    font-weight: 500;
    background: url(../img/nav_r_on.png) no-repeat center 100px;
    background-size: 3px;
    transition: 0.3s;
  }
}

@media screen and (max-width: 1050px) {
  header .header_inner nav.nav_pc {
    display: none;
  }
}

@media screen and (max-width: 640px) {
  header {
    width: 100%;
    height: 60px;
    background-color: rgba(30, 30, 30, 0.90);
    position: fixed;
    top: 0;
    z-index: 6;
    text-align: center;
    transition: 0.5s;
  }

  header .header_inner {
    width: 100%;
    margin: 0 auto;
  }

  header .header_inner .logo {
    float: left;
    margin: 5px 0 0 5px;
    width: 148px;
  }

  header .header_inner .header_btn_buy a {
    position: absolute;
    right: 0px;
    top: 0px;
    width: 70px;
    height: 60px;
    margin-top: 0px;
    background: url(../img/head_btn.png) center center #D12D26 no-repeat;
    text-indent: -9999px;
    background-size: 100%;
  }

  header .header_inner .header_btn_buy a:hover {
    position: absolute;
    right: 0px;
    top: 0px;
    width: 70px;
    height: 60px;
    margin-top: 0px;
    transition: 0.5s;
    background: url(../img/head_btn.png) center center rgba(146, 8, 8, .7) no-repeat;
    background-size: 100%;
    text-indent: -9999px;
  }

  header .header_inner .header_btn_catalog a {
    position: absolute;
    right: 70px;
    top: 0px;
    width: 70px;
    height: 60px;
    margin-top: 0px;
    background: url(../img/head_btn_catalog_lg.png) center center #C1564D no-repeat;
    text-indent: -9999px;
    background-size: 100%;
  }

  header .header_inner .header_btn_catalog a:hover {
    position: absolute;
    right: 70px;
    top: 0px;
    width: 70px;
    height: 60px;
    margin-top: 0px;
    transition: 0.5s;
    background: url(../img/head_btn_catalog_lg.png) center center rgba(193, 86, 77, .7) no-repeat;
    background-size: 100%;
    text-indent: -9999px;
  }
}

/* -----------------スクロール縮小時----------------*/
header.smaller {
  height: 60px;
}

header.smaller .header_inner .logo {
  float: left;
  margin: 5px 0 0 5px;
  width: 148px;
}

header.smaller .header_inner nav ul li a {
  float: left;
  margin: 0;
  font-size: 12px;
  line-height: 60px;
  font-weight: 500;
}

header.smaller .header_inner nav ul li a:hover {
  color: #D12D26;
  background: rgba(255, 255, 255, 0.0) url(../img/nav_r_on.png) no-repeat center bottom;
  background-size: 3px;
}

header.smaller .header_inner nav ul li a.active {
  color: #D12D26;
  background: rgba(255, 255, 255, 0.0) url(../img/nav_r_on.png) no-repeat center bottom;
  background-size: 3px;
}

header.smaller .header_inner .header_btn_buy a {
  position: absolute;
  right: 0px;
  top: 0px;
  width: 140px;
  height: 60px;
  margin-top: 0px;
  background: url(../img/head_btn.png) center center #D12D26 no-repeat;
  text-indent: -9999px;
  background-size: 100%;
}

header.smaller .header_inner .header_btn_catalog a {
  position: absolute;
  right: 140px;
  top: 0px;
  width: 140px;
  height: 60px;
  margin-top: 0px;
  background: url(../img/head_btn_catalog_lg.png) center center #C1564D no-repeat;
  text-indent: -9999px;
  background-size: 100%;
}

@media screen and (max-width: 640px) {
  header.smaller .header_inner .header_btn_buy a {
    position: absolute;
    right: 0px;
    top: 0px;
    width: 70px;
    height: 60px;
    margin-top: 0px;
    background: url(../img/head_btn.png) center center #D12D26 no-repeat;
    text-indent: -9999px;
    background-size: 100%;
  }
  
  header.smaller .header_inner .header_btn_catalog a {
    position: absolute;
    right: 70px;
    top: 0px;
    width: 70px;
    height: 60px;
    margin-top: 0px;
    background: url(../img/head_btn_catalog_lg.png) center center #C1564D no-repeat;
    text-indent: -9999px;
    background-size: 100%;
  }
}

@media screen and (max-width: 1250px) {
  header.smaller .header_inner nav ul li a {
    float: left;
    margin: 0;
    font-size: 12px;
    line-height: 60px;
    letter-spacing: 0px;
    color: #fff;
    text-align: center;
    text-decoration: none;
    font-weight: 500;
    background: url(../img/nav_r_on.png) no-repeat center 100px;
    background-size: 3px;
    transition: 0.3s;
  }
}

/* ----------------------------------------------------------------
    main (LCP/CLS 対策版)
----------------------------------------------------------------*/
#main {
  position: relative;
  width: 100%;
  height: 100vh;         /* 画面全体の高さを予約してガタつきを防止 */
  min-height: 500px;      /* スマホ等で潰れすぎないように */
  background-color: #000; /* 画像読み込み前の「枠」を黒で埋める */
  overflow: hidden;
}

/* 背景スライドの骨組み（追加） */
#mainvisual, 
#mainvisual .-item {
  width: 100%;
  height: 100%;
  position: absolute;
  top: 0;
  left: 0;
  background-size: cover;
  background-position: center;
}

#main .main_BOX {
  position: absolute;
  left: 50%;
  top: 78%;
  width: 800px;
  height: auto;
  margin: -230px 0 0 -400px;
  z-index: 1;
}

/* main top-cach copy---------------------------------------------*/
#main .main_BOX .main_copy {
  margin: 0 auto;
  width: 100%;
  max-width: 800px;
  position: relative;
  min-height: 150px; /* 文字が出る場所をあらかじめ確保 */
}

#main .main_BOX .main_copy img {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  opacity: 0;
  transition: opacity 0.8s ease-in-out;
  z-index: 2; /* 背景グリッドより上に配置 */
}

/* 1枚目だけを「初期状態」で見せる（JSの邪魔をしない書き方） */
/* #main .main_BOX .main_copy img:first-child {
  opacity: 1;
} */
/* グリッド背景（copy_bg.png）の設定 */
#main .main_BOX > img {
  position: relative; /* absoluteにしないことで、コピー画像の下に敷く */
  display: block;
  width: 100%;
  height: auto;
  z-index: 1; /* コピー画像（z-index:2）の下に配置 */
  opacity: 1 !important; /* これは消えてはいけないので常に表示 */
}

#main .main_reborn {
  position: absolute;
  left: 0;
  top: 86px;
  width: 100px;
  height: calc(100% - 86px); /* 高さを計算で固定 */
  z-index: 2; /* 他の背景より上に */
  display: block; /* 確実に表示 */
}

#main .main_reborn img {
  width: auto;
  height: 100%;
  display: block;
  /* 画像が届く前から領域を確保するため */
  aspect-ratio: 100 / 900; /* ロゴのおおよその縦横比（適宜調整してください） */
}

#main .main_bg {
  position: absolute;
  left: 0;
  bottom: 0px;
  width: 100%;
  height: 100%;
  z-index: 1;
  background: url(../img/dev_bg_cell2.png);
  opacity: 0.1;
}

#main .main_scroll {
  position: absolute;
  left: 50%;
  bottom: 0px;
  width: 100px;
  margin-left: -50px;
  z-index: 1;
}

/*>>*/
#main .main_scroll a {
  -webkit-transition: all .3s;
  transition: all .3s;
}

/*>>*/
#main .main_scroll a:hover {
  filter: alpha(opacity=60);
  -moz-opacity: 0.6;
  opacity: 0.6;
  transform: translateZ(0);
}


@media screen and (max-width: 1400px) {
  #main .main_BOX {
    position: absolute;
    left: 50%;
    top: 87%;
    width: 660px;
    height: auto;
    margin: -180px 0 0 -330px;
    z-index: 1;
  }

  #main .main_BOX .main_copy {
    margin: 0 auto;
    width: 100%;
    max-width: 478px;
    position: relative;
  }

  #main .main_BOX .main_btn a {
    position: absolute;
    left: 50%;
    bottom: -45%;
    width: 60%;
    margin: 0 0 0 -30%;
    z-index: 1;
    overflow: hidden;
    background: linear-gradient(to bottom right, #3cc652 20%, #D12D26 80%);
  }
}

@media screen and (max-width: 770px) {
  #main .main_BOX {
    position: absolute;
    left: 50%;
    top: 80%;
    width: 85%;
    height: auto;
    margin: -20% 0 0 -42.5%;
    z-index: 1;
  }

  #main .main_BOX .main_copy {
    margin: 0 auto;
    width: 100%;
    max-width: 660px;
    position: relative;
  }
}

@media screen and (max-width: 640px) {

  /*main_btn*/
  #main .main_BOX {
    top: 76%;
  }

  #main .main_BOX .main_btn a {
    position: absolute;
    left: 50%;
    bottom: -90%;
    width: 70%;
    margin: 0 0 0 -35%;
    z-index: 1;
    overflow: hidden;
    background: linear-gradient(to bottom right, #3cc652 20%, #D12D26 80%);
    /*グラデ*/
  }

  #main .main_scroll {
    position: absolute;
    left: 50%;
    bottom: 0px;
    width: 80px;
    margin-left: -40px;
    z-index: 1;
  }

  #main .main_reborn {
    top: 56px;
    height: calc(100% - 56px);
    width: 60px; /* スマホでは少し細く */
  }
}

@media screen and (max-width: 504px) {
  #main .main_reborn img {
    max-width: 83px;
  }
}

/*----- jamp -----*/
.jamp {
  animation-name: translate;
  animation-duration: 0.3s;
  animation-iteration-count: infinite;
  /*回数を指定するか、infinite を指定して無限に繰り返す*/
  animation-direction: alternate;
  /*normal;（ノーマル） reverse(逆再生)  alternate(交互に切り替える) などの再生方法を選択*/
  animation-timing-function: ease-out;
}

@keyframes translate {
  from {
    transform: translateY(0px);
  }

  to {
    transform: translateY(-10px);
  }
}

/* ----------------------------------------------------------------
	トップ・スライド　フェードイン・フェードアウト
----------------------------------------------------------------*/
/*スライドレスポンシブ*/
.infiniteslide1 {
  width: 100%;
  height: 100%;
  position: relative;
}

.infiniteslide1 li {
  width: auto;
  height: 100%;
}

.infiniteslide1 li img {
  width: auto;
  height: 100%;
}


/* ----------------------------------------------------------------
	#contents
----------------------------------------------------------------*/
#contents {
  overflow: hidden;
  background: #fff;
}


/* ----------------------------------------------------------------
	top page video 外骨格の力
----------------------------------------------------------------*/
.product_video {
  padding: 64px 0 65px 0;
}

.bg_green {
  padding: 4% 5% 8%;
}

#first {
  padding-bottom: 0;
}

@media screen and (max-width: 750px) {
  .top_logo {
    width: 80%;
    margin: 0 auto 50px auto;
  }
}


.product_video-text,
.product_video-text-en {
  font-size: 19px;
  letter-spacing: 2px;
  line-height: 40px;
}


@media screen and (max-width: 640px) {
 .product_video-text {
    font-size: 14px;
    letter-spacing: 2px;
    line-height: 2;
  }
.product_video-text-en {
  font-size: 14px;
  letter-spacing: 1px;
  line-height: 2;
}
}

/* ----------------------------------------------------------------
	concept
	コンセプト
----------------------------------------------------------------*/
#concept {
  width: 100%;
  text-align: center;
  padding: 0 0 40px 0;
  background: url(../img/dev_bg_cell.png);
}

#concept h2 {
  font-size: 26px;
  line-height: 2.5;
  font-weight: 400;
  letter-spacing: 3px;
  margin: 60px auto 50px auto;
  padding: 0 60px;
  position: relative;
  text-align: center;
  display: inline-block;
}

#concept p {
  width: 92%;
  margin: 0px auto;
  font-size: 18px;
  line-height: 34px;
  font-weight: 300;
  letter-spacing: 1px;
  text-align: center;
}

#concept ul {
  width: 90%;
  max-width: 1050px;
  margin: 30px auto 0 auto;
}

#concept ul:after {
  content: " ";
  display: block;
  clear: both;
}

/*clearfix*/
#concept ul li {
  width: 30.7%;
  margin-right: 3.95%;
  float: left;
}

#concept ul li:last-child {
  margin-right: 0%;
}

#concept ul li p {
  font-size: 18px;
  line-height: 30px;
  font-weight: 500;
  margin-top: 10px;
}

@media screen and (max-width: 950px) {
  #concept p br {
    display: none;
  }

  #concept p span {
    display: inline-block;
  }
}

@media screen and (max-width: 640px) {
  #concept {
    width: 100%;
    text-align: center;
    padding: 1px 0 8% 0;
  }

  #concept h2 {
    font-size: 24px;
    font-weight: 400;
    letter-spacing: 3px;
    margin: 50px auto 40px auto;
    padding: 0 15%;
    position: relative;
    text-align: center;
    max-width: 90%;
  }
  
  #concept .section-title {
  line-height: 2.5;
}

#concept .section-title-en {
  line-height: 1.5;
}

  #concept p {
    width: 90%;
    margin: 0px auto;
    font-size: 15px;
    line-height: 30px;
    font-weight: 300;
    letter-spacing: 2px;
    text-align: center;
  }

  #concept ul {
    width: 90%;
    max-width: 950px;
    margin: 30px auto 0 auto;
  }

  #concept ul li {
    width: 33.33%;
    margin-right: 0%;
    float: left;
  }

  #concept ul li:last-child {
    margin-right: 0%;
  }

  #concept ul li p {
    font-size: 13px;
    line-height: 1.2;
    letter-spacing: 0.3px;
    font-weight: 500;
    margin: 10px 0 20px;
  }
  
}

.concept-ui li img {
  max-width: 180px;
}

/* ----------------------------------------------------------------
	introduction
	導入企業
----------------------------------------------------------------*/
#introduction {
  width: 100%;
  text-align: center;
  background: #252525 url(../img/dev_bg_cell2.png);
  color: #fff;
  padding: 50px 0 70px 0;
}

#introduction h2 {
  font-size: 26px;
  line-height: 2.5;
  font-weight: 400;
  letter-spacing: 3px;
  margin: 20px auto 20px auto;
  padding: 0 70px;
  position: relative;
  text-align: center;
  display: inline-block;
}

/* スライド　フェードイン・フェードアウト  導入企業 
----------------------------------------------*/
/*co_slider*/
#introduction #co_slider_BOX {
  width: 100%;
  margin: 35px auto 0 auto;
}

#introduction #co_slider_BOX:after {
  content: " ";
  display: block;
  clear: both;
}

/*clearfix*/
#introduction #co_slider_BOX .co_slider {
  position: relative;
  width: 16.66%;
  float: left;
}

@media screen and (max-width: 640px) {
  #introduction #co_slider_BOX .co_slider {
    position: relative;
    width: 50%;
    float: left;
  }
}

#introduction #co_slider_BOX .co_slider p {
  width: 100%;
  position: absolute;
  left: 0;
  top: 0;
  z-index: 4;
}

#introduction #co_slider_BOX .co_slider ul li:after {
  content: " ";
  display: block;
  clear: both;
}

/*clearfix*/
#introduction #co_slider_BOX .co_slider ul li {
  position: relative;
  display: none;
  z-index: 1;
}

#introduction #co_slider_BOX .co_slider ul li img {
  width: 100%;
  height: auto;
}

@media screen and (max-width: 900px) {
  #introduction #co_slider_BOX .co_slider p {
    width: 100%;
    position: absolute;
    left: 0;
    top: 0;
  }
}

@media screen and (max-width: 640px) {
  #introduction {
    width: 100%;
    text-align: center;
    color: #fff;
    padding: 60px 0;
  }

  #introduction h2 {
    font-size: 24px;
    line-height: 40px;
    font-weight: 400;
    letter-spacing: 5px;
    margin: 0px auto;
    position: relative;
    text-align: center;
    max-width: 90%;
  }

  #introduction h2 span {
    display: block;
  }

  #introduction #co_slider_BOX {
    width: 100%;
    margin: 10% auto 0 auto;
  }

  #introduction #co_slider_BOX .co_slider {
    width: 50%;
    float: left;
  }

  #introduction #co_slider_BOX .co_slider p {
    width: 100%;
    position: absolute;
    left: 0;
    top: 0;
  }
}

@media screen and (max-width: 450px) {
  #introduction h2 {
    font-size: 24px;
    line-height: 33px;
    letter-spacing: 2px;
    margin: 0px 5%;
    padding: 1px 30px;
    display: block;
  }
}

/*  ----------------------------------------------------------------
	btn_BOX red　お問い合わせ 赤ボタン
----------------------------------------------------------------*/

.btn_BOX .campaign_btn_BOX p a:hover {
  color: #444;
  /*ff7200*/
}

.btn_BOX_red {
  width: 100%;
  background: linear-gradient(to bottom, #f0f0f0 60%, #eaeaea 100%);
  /*グラデ*/
}

.btn_BOX_red .campaign_btn_BOX {
  margin: 0 auto;
  padding: 68px 5% 54px;
  position: relative;
  text-align: center;
}

/*main_btn*/
.btn_BOX_red .campaign_btn_BOX .campaign_btn {
  width: 263px;
  position: relative;
  margin: 0 auto;
  z-index: 1;
  overflow: hidden;
  background: #F70000;
  display: block;
}

.btn_BOX_red .campaign_btn_BOX .campaign_btn::before,
.btn_BOX_red .campaign_btn_BOX .campaign_btn::after {
  position: absolute;
  z-index: -1;
  display: block;
  content: '';
}

.btn_BOX_red .campaign_btn_BOX .campaign_btn,
.btn_BOX_red .campaign_btn_BOX .campaign_btn::before,
.btn_BOX_red .campaign_btn_BOX .campaign_btn::after {
  -webkit-box-sizing: border-box;
  -moz-box-sizing: border-box;
  box-sizing: border-box;
  -webkit-transition: all .3s;
  transition: all .3s;
}

.btn_BOX_red .campaign_btn_BOX .campaign_btn::after {
  top: -100%;
  width: 100%;
  height: 100%;
}

.btn_BOX_red .campaign_btn_BOX .campaign_btn:hover::after {
  top: 0;
  background: #860000;
}

.btn_BOX_red .campaign_btn_BOX .campaign_nav {
  width: 240px;
  position: absolute;
  bottom: 0px;
  right: -200px;
  z-index: 2;
}

.btn_BOX_red .campaign_btn_BOX p .campaign_btn {
  margin-top: 20px !important;
  font-size: 14px;
  line-height: 20px;
  letter-spacing: 1px;
  display: inline-block;
  color: #000;
  background: none;
}

.btn_BOX_red .campaign_btn_BOX p .campaign_btn:hover {
  color: #444;
  /*ff7200*/
}

.btn_BOX_red .en-text {
  font-size: 14px;
  letter-spacing: 1.2px;
  padding-top: 1.5em;
}

.btn_BOX_red .ja-text {
  font-size: 13px;
  padding-top: 4px;
}

/*201809追加：カート用ボタン*/
.addCart {
  display: block;
  width: 100%;
  margin: 16px 0;
  font-size: 200%;
  font-weight: 700;
  padding: 5px 30px !important;
  background: #e20012;
  outline: none;
  appearance: none;
  -webkit-appearance: none;
  -moz-appearance: none;
  border-radius: 0;
  -webkit-border-radius: 0;
  -moz-border-radius: 0;
  border: none;
  color: #fff;
  line-height: 2;
  cursor: pointer;
  transition: all 0.5s ease;
  -webkit-transition: all 0.5s ease;
  -moz-transition: all 0.5s ease;
  -o-transition: all 0.5s ease;
}

.addCart:hover {
  background: black;
}

/*201809追加end*/
@media screen and (max-width: 980px) {
  .btn_BOX .campaign_btn_BOX {
    width: 68%;
    max-width: 640px;
    margin: 0 auto;
    padding: 5% 0 4% 0;
    position: relative;
    text-align: center;
  }

  .btn_BOX .campaign_btn_BOX a .campaign_nav {
    width: 35%;
    max-width: 240px;
    position: absolute;
    bottom: 0px;
    right: -28%;
    z-index: 2;
  }
}

@media screen and (max-width: 640px) {
  .btn_BOX .campaign_btn_BOX {
    width: 62%;
    max-width: 640px;
    margin: 0 auto;
    padding: 5% 0 5% 0;
    position: relative;
    text-align: center;
  }

  .btn_BOX .campaign_btn_BOX a .campaign_nav {
    width: 48%;
    max-width: 240px;
    position: absolute;
    bottom: 0px;
    z-index: 2;
  }

  .btn_BOX .campaign_btn_BOX p a {
    margin-top: 20px !important;
    font-size: 14px;
    line-height: 20px;
    letter-spacing: 0px;
    display: inline-block;
    color: #000;
    background: none;
  }
}

.campaign_btn_pc {
  display: inline-block;
}

.campaign_btn_sp {
  display: none;
}

@media screen and (max-width: 640px) {
  .campaign_btn_pc {
    display: none;
  }

  .campaign_btn_sp {
    display: inline-block;
  }
}

/* ----------------------------------------------------------------
	development
	製品開発
----------------------------------------------------------------*/
#development {
  width: 100%;
  text-align: center;
  padding: 0 0 60px 0;
  background: url(../img/dev_bg_cell.png);
  display: flow-root;
}

#development h2 {
  font-size: 26px;
  line-height:  2.5;
  font-weight: 400;
  letter-spacing: 3px;
  margin: 60px auto 50px auto;
  padding: 0 80px;
  position: relative;
  text-align: center;
  display: inline-block;
}

#development .development-text {
  margin-bottom: 50px;
  width: 92%;
  margin: 0px auto 50px;
  font-size: 18px;
  line-height: 34px;
  font-weight: 300;
  letter-spacing: 1px;
  text-align: center;
}

#development .youtube {
  width: 90%;
  max-width: 853px;
  margin: 0 auto;
  background: #424242;
}

#development .youtube .youtube_inner {
  width: 100%;
  position: relative;
  z-index: 5;
  padding-bottom: 56.25%;
  height: 0;
  overflow: hidden;
}

#development .youtube .youtube_inner iframe {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
}

#development .youtube p {
  font-size: 16px;
  line-height: 16px;
  padding: 20px 0;
  text-align: center;
  color: #fff;
}

#development .dev_LR {
  width: 90%;
  max-width: 1100px;
  margin: 0 auto 0 auto;
}

#development .dev_LR:after {
  content: " ";
  display: block;
  clear: both;
}

/*clearfix*/
#development .dev_L {
  width: 47.5%;
  max-width: 520px;
  float: left;
}

#development .dev_R {
  width: 47.5%;
  max-width: 520px;
  float: right;
}

#development .dev_LR h3 {
  font-size: 20px;
  line-height: 30px;
  padding-bottom: 15px;
  letter-spacing: 1px;
}

#development .dev_LR p {
  font-size: 14px;
  line-height: 28px;
  text-align: left;
  font-weight: 300;
  padding-bottom: 35px;
}

@media screen and (max-width: 750px) {
  #development .dev_LR {
    width: 90%;
    max-width: 1100px;
    margin: 7% auto 0 auto;
  }

  #development .dev_L {
    width: 100%;
    max-width: 520px;
    margin: 0 auto;
    float: none;
  }

  #development .dev_R {
    width: 100%;
    max-width: 520px;
    margin: 7% auto 0 auto;
    float: none;
  }
}

@media screen and (min-width: 641px) {
  #development .dev_img {
    max-width: 514px;
  }
}

@media screen and (max-width: 640px) {
  #development {
    width: 100%;
    text-align: center;
    padding: 0;
  }

  #development h2 {
    font-size: 24px;
    line-height: 35px;
    font-weight: 400;
    letter-spacing: 5px;
    margin: 50px 5% 40px;
    padding: 0 10%;
    position: relative;
    text-align: center;
    display: inline-block;
    max-width: 90%;
  }

  #development h2  {
    display: block;
  }

  #development .youtube p {
    font-size: 15px;
    line-height: 22px;
    padding: 12px 0;
    text-align: center;
    color: #fff;
  }

  #development .youtube p span {
    display: block;
  }

  #development .development-text {
    width: 90%;
    margin: 0px auto;
    font-size: 15px;
    line-height: 30px;
    letter-spacing: 2px;
  }
}

/* ----------------------------------------------------------------
	data
	データ
----------------------------------------------------------------*/
/* --- #data セクション全体 --- */
#data {
  background: url(../img/dev_bg_cell.png);
  display: flow-root; /* 食い込み防止 */
  padding-top: 20px;  /* 上の余白（背景付き） */
  padding-bottom: 20px;
}

/* --- 横並びの親要素 --- */
#data .data_LR {
  width: 90%;
  max-width: 1100px;
  margin: 0 auto;
  padding-top: 0;     /* padding-top は親の #data に任せるので 0 に */
  display: flex;      /* float をやめて flex に */
  justify-content: space-between;
  align-items: flex-start;
  gap: 4%;            /* 左右の間隔 */
}

/* --- 左右のボックス --- */
#data .data_L,
#data .data_R {
  width: 48%;         /* 英語でも入りやすいよう少し余裕を持たせる */
  max-width: 520px;
  float: none;        /* float 解除 */
}

#data .data_LR h3 {
  font-size: 20px;
  line-height: 1.4;
  padding-bottom: 14px;
  font-weight: 400;
  text-align: center;
}

#data .data_LR p {
  font-size: 14px;
  line-height: 28px;
  text-align: left;
  font-weight: 300;
}

#data .data_LR table {
  width: 100%;
  margin: 15px 0 15px 0;
  border-right: solid 1px #999;
  border-bottom: solid 1px #999;
}

#data .data_LR table th,
#data .data_LR table td {
  background: #FFF;
  border-left: solid 1px #999;
  border-top: solid 1px #999;
  padding: 10px;
  font-size: 12px;
}

#data .data_LR table th {
  background: #FFF;
}

#data .data_LR table th.le {
  max-width: 10em;
}

#data .data_LR table th.bg-gw {
  background: #E0E0E0;
}

#data .data_LR table th.bg-gr {
  background: #C0DCBB;
}

#data .data_LR table th.bg-red {
  background: #E7CAC5;
}

#data .data_LR table td.bg-gw {
  background: #E0E0E0;
}

#data .data_LR table td.bg-oren {
  background: #FBC8B4;
  width: 30%;
}

/* #data .data_LR table td.data-small {
  font-size: 11px;
} */

.txt_l {
  font-size: 14px !important;
  line-height: 22px !important;
  padding: 0 0 0 0px;
  margin: 0px 0 0 0;
  word-break: break-all;
}

.txt_m {
  font-size: 13px !important;
  line-height: 22px !important;
  padding: 0 0 0 0px;
  margin: 0px 0 0 0;
  word-break: break-all;
}

.txt_m2 {
  font-size: 13px !important;
  line-height: 22px !important;
  padding: 0 0 0 0px;
  margin: 8px 0 0 0;
  word-break: break-all;
}

.txt_s {
  font-size: 12px !important;
  line-height: 20px !important;
  padding: 0 0 0 0px;
  margin: 8px 0 0 0;
  word-break: break-all;
}

.ind_txt_m {
  font-size: 13px !important;
  line-height: 22px !important;
  text-indent: -14px;
  padding: 0 0 0 14px;
  margin: 8px 0 0 0;
  word-break: break-all;
}

.ind_txt_s {
  font-size: 12px !important;
  line-height: 20px !important;
  text-indent: -12px;
  padding: 0 0 0 12px;
  margin: 8px 0 0 0;
  word-break: break-all;
}

.mt15 {
  margin-top: 15px;
}

.txts_box {
  font-size: 12px !important;
  line-height: 20px !important;
  padding: 17px 20px;
  border: solid 1px #ccc;
  margin: 20px 0 0 0;
  word-break: break-all;
}

/*201809追加*/
#data .wrap {
  margin-top: 20px !important;
}

/*201809追加end*/

/*20240321追加*/
#data .data_graph {
  width: 90%;
  max-width: 1100px;
  margin: 0 auto;
  padding-top: 65px;
  padding-bottom: 10px;
  font-size: 14px;
  line-height: 24px;
  font-weight: 300;
}

#data .data_graph h3 {
  font-size: 23px;
  line-height: 40px;
  padding-bottom: 14px;
  font-weight: 400;
  text-align: left;
}

#data .data_graph p {
  font-size: 15px;
  line-height: 28px;
  text-align: left;
  font-weight: 300;
}

#data .data_graph_img {
  width: 100%;
  max-width: 1100px;
  margin: 0 auto;
  padding-top: 40px;
  padding-bottom: 14px;
  font-size: 14px;
  line-height: 24px;
  font-weight: 300;
}
/*20240321追加end*/

@media screen and (max-width: 750px) {
  #data {
    padding-top: 40px;
    padding-bottom: 45px;
  }

  #data .data_LR h3 {
    font-size: 22px;
    line-height: 1.5;
    padding-bottom: 30px;
    font-weight: 400;
    letter-spacing: 1px;
  }

  #data .data_LR {
    width: 90%;
    display: flex;
    flex-direction: column; /* 縦に並べる */
    align-items: center;
  }

  #data .data_L {
    width: 100%;
    max-width: none;
    margin: 0 auto;
  }

  #data .data_R {
    width: 100%;
    max-width: none;
    margin-top: 12%; /* 上下の間隔 */
  }
}

#data .data_LR .datatable th,
#data .data_LR .datatable td {
  font-size: 12px;
  line-height: 1.6;
  padding-top: 10px;
  padding-bottom: 10px;
}

#data .data_LR .datatable th {
  width: 241px;
}

/* ----------------------------------------------------------------
	products
	商品概要
----------------------------------------------------------------*/
#products, 
.product-display-set {
  width: 100%;
  text-align: center;
  padding: 0 0 30px;
  background: url(../img/dev_bg_cell.png)
}

.product-display-set .section-title {
  font-size: 26px;
  line-height: 2.5;
  font-weight: 400;
  letter-spacing: 3px;
  margin: 60px 0 20px; 
  /* padding: 0 60px; */
  position: relative;
  text-align: center;
  display: inline-block;
}
.product-display-set .section-title.view_other-title {
  font-size: 20px;
  line-height: 2.5;
  font-weight: 400;
  letter-spacing: 2px;
}

/* サブページのモデル名ロゴ ----------------------------------------------------------------*/
 .product_title_name {
  width: 90%;
  max-width: 350px;
  margin: 0px auto 65px auto;
}



/* products モデルをクリックして詳細ページへ ----------------------------------------------------------------*/
 .products_view-list {
  font-size: 13px;
  line-height: 30px;
  border: none;
  padding:  0 0 30px;
  letter-spacing: 2px;
}
 .industry-guide {
  display: block;
  text-align: center;
  font-size: 14px;
  color: #afaeae;
  line-height: 30px;
  border: none;
  margin: -10px auto 25px;
  letter-spacing: 2px;
}

@media screen and (max-width: 640px) {
  .industry-guide {
    font-size: 11px;
    margin: 10px auto 20px;
  }
}
/* ==========================================================
   サブページの紹介動画・機能
   ========================================================== */

/* サブページの紹介動画・機能　黒グリッド背景 */
.product_sl {
  background: #252525 url(../img/dev_bg_cell2.png);
  display: block;
  padding: 60px 0;;
  border: none;
  box-sizing: border-box;
}

@media screen and (max-width: 640px) {
  .product_sl {
    display: block;
    padding-top: 50px;
    padding-bottom: 10px;
    border: none;
  }
}

/* ==========================================================
   サブページ　各モデル紹介動画　独自機能
   ========================================================== */
 /* --- 1. 背景エリア（共通） --- */
#product_function,
#product_function02 {
  width: 100%;
  text-align: center;
  padding: 45px 0 16px 0;
  background: #252525 url(../img/dev_bg_cell2.png);
  margin: 0 auto;
}

h2.product_function_title {
  width: 90%;
  max-width: 800px;
  margin: 0 auto;
  color: #fff;
  font-size: 26px;
  letter-spacing: 2px;
  line-height: 1.5;
  padding: 0 5 0 40px;
  vertical-align: text-bottom;
}

.nav_pc_en h2.product_function_title {
  max-width: 900px;
  font-size: 24px;
  line-height: 1.5;
}

.wrap .data_L {
  width: 47.5%;
  max-width: 520px;
  float: left;
}

.wrap .data_R {
  width: 47.5%;
  max-width: 520px;
  float: right;
}

@media screen and (max-width: 640px) {
  #products, 
  .product-display-set {
    width: 100%;
    text-align: center;
    padding: 0 0 40px;
  }

  h2.product_function_title{
    font-size: 18px;
    line-height: 1.5;
    font-weight: 400;
    letter-spacing: 5px;
    margin: 40px auto 20px auto;
    padding: 0;
    position: relative;
    text-align: center;
    display: inline-block;
  }

 .product_title_name {
    width: 70%;
    margin: 0px auto 30px
  }
}

/* ==========================================================
   サブページ最上部：キャッチコピー (subpage-catch)
   ========================================================== */

.subpage-catch {
    text-align: center;      /* 中央寄せ */
    font-size: 16px;          /* ロゴを邪魔しない上品なサイズ */
    color: #333;              /* 真っ黒より少しグレーで高級感を */
    font-weight: normal;      /* 太字（bold）にはしない */
    line-height: 1.5;         /* 改行時の行間 */
    letter-spacing: 0.1em;    /* 文字間を少し広げて読みやすく */
    margin-top: 15px;         /* ロゴとの間の隙間 */
    margin-bottom: 30px;      /* YouTube動画との間の隙間 */
}

/* スマホ表示の調整 */
@media screen and (max-width: 750px) {
    .subpage-catch {
        font-size: 14px;      /* スマホでは少し小さく */
        margin-top: 10px;
        padding: 0 15px;      /* 画面端に張り付かないように余白を */
    }
}
   /* サブページ（.subPage_contents）の中にある #products だけに適用 */
   .subPage_contents #products {
    padding-top: 80px; 
  }
  
/* ==========================================================
   サブページの各モデル紹介動画
   ========================================================== */
   
.product_function3 {
  width: 90%;
  max-width: 1100px;
  margin: 50px auto 0 auto;
}

.product_function3 ul {
  display: flex;
  flex-wrap: wrap;
  justify-content: space-between;
}

.product_function3 ul li {
  float: left;
  width: 31%;
  margin-right: 3.5%;
}

.product_function3 ul li img {
  width: 100%;
  height: auto;
}

.product_function3 ul li:last-child {
  float: left;
  width: 31%;
  margin-right: 0%
}

.product_function3 ul li h3 {
  margin-top: 23px;
  font-size: 20px;
  line-height: 32px;
  letter-spacing: 2px;
  font-weight: 400;
  text-align: center;
  color: #FFF;
}

.product_function3 ul li p {
  margin-top: 17px;
  font-size: 14px;
  line-height: 29px;
  letter-spacing: 2px;
  font-weight: 400;
  color: #fff;
  text-align: left;
}


@media screen and (max-width: 820px) {
  .product_function3 ul li h3 {
    margin-top: 23px;
    font-size: 18px;
    line-height: 32px;
    letter-spacing: 2px;
    font-weight: 400;
    color: #FFF;
    text-align: center;
  }

  .product_function3 ul li p {
    margin-top: 17px;
    font-size: 14px;
    line-height: 29px;
    letter-spacing: 1.5px;
    font-weight: 400;
    color: #fff;
    text-align: left;
  }
}

@media screen and (max-width: 750px) {

  #product_function {
    width: 100%;
    text-align: center;
    padding: 4% 0 7% 0;
    /* background: #333; */
    margin: -1px auto 0;
  }

  .product_function3 {
    width: 90%;
    max-width: 1100px;
    margin: 0px auto 0 auto;
  }

  .product_function3 ul li {
    float: none;
    width: 100%;
    max-width: 500px;
    margin: 0 auto;
    padding-bottom: 5%;
  }

  .product_function3 ul li:last-child {
    float: none;
    width: 100%;
    max-width: 500px;
    margin: 0 auto;
    padding-bottom: 5%;
  }

  .product_function3 ul li img {
    margin: 10% auto 0 auto;
  }

  .product_function3 ul li h3 {
    margin-top: 4%;
    font-size: 20px;
    line-height: 32px;
    letter-spacing: 2px;
    font-weight: 400;
    color: #FFF;
    text-align: center;
  }

  .product_function3 ul li p {
    margin-top: 2%;
    font-size: 14px;
    line-height: 26px;
    letter-spacing: 1.5px;
    font-weight: 400;
    color: #fff;
    text-align: left;
  }
}

/* ==========================================================
   ボディ着用画像　Slick
   ========================================================== */

/* 製品ボディ着用画像　Slick本体 */
.slick-slider {
  display: block !important;
  position: relative;
  overflow: hidden;
  margin-top: 35px;
  background: #333;
  box-sizing: border-box;
}

/* スライドアイテムの横並び対策 */
.slick-slider .slick-slide {
  display: inline-block;
  float: none;
  vertical-align: top;
  box-sizing: border-box;
  opacity: 1 !important;
  visibility: visible !important;
}

/* Slickが初期化前に縦に並ぶ場合の対策 */
.slick-track {
  display: flex !important;
  align-items: center;
  justify-content: center;
}

/* PC（横幅641px以上）*/
@media screen and (min-width: 641px) {
  .slick-slider .-item {
    max-width: 433px;
  }
}

@media screen and (max-width: 640px) {
  .slick-slider {
    margin-top: 3%;
    background: #333;
  }

  .slick-slider .-item {
    max-width: 100vw;
  }
}


/* 改良 */
#improvement {
  width: 100%;
  text-align: center;
  padding: 63px 0 70px 0;
  margin: 0 auto;
}

.improvement_function_title {
  width: 90%;
  max-width: 900px;
  margin: 20px auto 60px;
  font-size: 25px;
  letter-spacing: 2.0px;
  line-height: 1.6;
}

.improvement_function {
  width: 90%;
  max-width: 1100px;
  margin: 10px auto 0 auto;
}

.improvement_function ul {
  display: flex;
  flex-wrap: wrap;
  justify-content: space-between;
}

.improvement_function ul li {
  flex-basis: 31%;
  padding-bottom: 3em;
}

.improvement_function ul li img {
  width: 100%;
  height: auto;
}

.improvement_function ul li h3 span{
  font-size: 20px;
  line-height: 24px;
  font-weight: 400;
  text-align: center;
  display: block;
  margin: 20px 0 10px;
  letter-spacing: 2px;
}

.improvement_function ul li p {
  margin-top: 10px;
  font-size: 14px;
  line-height: 29px;
  letter-spacing: 0.5px;
  font-weight: 400;
  text-align: left;
}

@media screen and (max-width: 820px) {
  .improvement_function ul li {
    flex-basis: 49%;
  }

  .improvement_function ul li h3 {
    margin-top: 23px;
    font-size: 13px;
    line-height: 20px;
    letter-spacing: 2px;
    font-weight: 600;
    text-align: center;
  }

  .i h3 span {
    font-size: 18px;
    line-height: 32px;
    letter-spacing: 1.5px;
    font-weight: 400;
    text-align: center;
    display: block;
  }

  .improvement_function ul li p {
    margin-top: 17px;
    font-size: 14px;
    line-height: 29px;
    letter-spacing: 1.5px;
    font-weight: 400;
    text-align: left;
  }
}

@media screen and (max-width: 750px) {
  #improvement {
    padding: 40px 0 1px 0;
  }

  #improvement h2.product_function_title {
    font-size: 25px;
    padding-bottom: 40px;
  }

  .improvement_function ul li {
    flex-basis: 100%;
  }

  .improvement_function {
    width: 90%;
    max-width: 1100px;
    margin: 0px auto 0 auto;
  }

  .improvement_function ul li {
    width: 100%;
    max-width: 500px;
    margin: 0 auto;
    padding-bottom: 5%;
  }

  .improvement_function ul li:last-child {
    float: none;
    width: 100%;
    max-width: 500px;
    margin: 0 auto;
    padding-bottom: 5%;
  }

  .improvement_function ul li img {
    margin: 10% auto 0;
  }

  .improvement_function ul li h3 {
    margin-top: 4%;
    font-size: 13px;
    line-height: 20px;
    letter-spacing: 2px;
    font-weight: 600;
    text-align: center;
  }

  .improvement_function ul li h3 span {
    font-size: 20px;
    line-height: 32px;
    letter-spacing: 1.5px;
    font-weight: 400;
    background: url(../img/dev_bg_cell.png) center top;
    text-align: center;
    display: block;
  }

  .improvement_function ul li p {
    margin-top: 2%;
    font-size: 14px;
    line-height: 26px;
    letter-spacing: 1.5px;
    font-weight: 400;
    background: url(../img/dev_bg_cell.png) center top;
    text-align: left;
  }
}

/*  #product_video
-----------------------------------*/
.product_video {
  width: 100%;
  text-align: center;
  padding: 80px 0 65px 0;
  background: #252525 url(../img/dev_bg_cell2.png);
  color: #fff;
  margin: 0 auto;
  position: relative;
}
#second.product_video {
  padding: 30px 0;
}

.product_video .youtube {
  width: 100%;
  position: relative;
  z-index: 5;
  padding-bottom: 56.25%;
  height: 0;
  overflow: hidden;
}

.product_video .youtube iframe {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
}

@media screen and (max-width: 750px) {
  .product_video {
    width: 100%;
    padding: 30px 5%;
    margin: 0 auto;
  }
}

.product_video .wrap {
  margin: 0 auto;
}

.first_movie {
  max-width: 800px;
  margin: 0 auto;
}

.product_video ul li {
  width: 48%;
}

@media screen and (max-width: 750px) {
  .first_movie {
    max-width: 100%;
  }

  .product_video ul li {
    width: 100%;
  }

  .product_video ul li:first-child {
    margin-bottom: 40px;
  }
}

#second h2 {
  font-size: 24px;
  letter-spacing: 2px;
  padding: 10px 50px 0;
}

/* s */

@media screen and (max-width: 750px) {
  #second.product_video {
      width: 100%;
      padding: 10px 2% 30px;
      margin: 0 auto;
  }
}

#spec {
  width: 100%;
  text-align: center;
  padding: 30px 0 70px 0;
  background: #C3C4C4;
  color: #333;
  margin: 0 auto;
}


.catch {
  font-size: 18px;
  font-weight: bold;
  margin: 30px 0;
  line-height: 1.5;
}

.catch-en {
  font-size: 22px;
  font-weight: bold;
  margin: 30px 0;
  line-height: 1.5;
}

@media screen and (max-width: 750px) {
.catch-en {
  font-size: 18px;
  font-weight: bold;
  margin: 5vw 0;
  line-height: 1.3;
}
}

/* 仕様 */
/* #spec h2 */
#spec .spec-ti{
  border-bottom: 1px solid #333;
  text-align: left;
  font-size: 20px;
  line-height: 50px;
  letter-spacing: 5px;
  margin-bottom: 16px;
}
/* サイズ表 */
/* #spec h3 */
#spec .size-ti {
  font-size: 16px;
  line-height: 20px;
  letter-spacing: 2px;
  padding-bottom: 10px;
}

@media screen and (max-width: 750px) {
  #spec {
    width: 100%;
    text-align: center;
    padding: 10% 0 15% 0;
    margin: 0 auto;
  }
/* ----------------------------------------------------------------
	#spec 各モデル仕様
----------------------------------------------------------------*/
  /* #spec h2 */
  /* 仕様 */
  #spec .spec-ti {
    width: 100%;
    max-width: 520px;
    /* margin: 30px auto; */
    text-align: center;
    font-size: 20px;
    line-height: 30px;
    letter-spacing: 5px;
    padding-bottom: 20px;
  }
}

/*table*/
#spec table {
  width: 100%;
  margin: 0px 0 7px 0;
  border-right: solid 1px #4b4b4b;
  border-bottom: solid 1px #4b4b4b;
}

#spec table th,
#spec table td {
  font-size: 14px;
  line-height: 19px;
  border-left: solid 1px #4b4b4b;
  border-top: solid 1px #4b4b4b;
  padding: 2%;
  background: #fff;
}

#spec table th {
  background: #393939;
  color: #fff;
}

#spec table td.keppin {
  width: 4em;
}

.spec_table_attention {
  font-size: 14px;
  line-height: 22px;
  margin: 20px 0 25px;
}

#spec .spec_table2 table {
  width: 100%;
  margin: 10px 0 20px;
  border: none;
}

#spec .spec_table2 table th {
  font-size: 14px;
  line-height: 1.5;
  letter-spacing: 1px;
  border: none;
  padding: 0px 0px;
  white-space: nowrap;
  background: none;
  color: #333;
}

#spec .spec_table2 table td {
  font-size: 14px;
  line-height: 1.5;
  letter-spacing: 1px;
  border: none;
  padding: 0px 0px;
  background: none !important;
}

#spec .price {
  font-size: 12px;
  line-height: 25px;
  letter-spacing: 3px;
  padding: 0 0 5px 0;
  border-bottom: solid 2px #919191;
  margin: 10px 0 15px 0;
}

#spec .price span.yen {
  font-size: 25px;
  line-height: 25px;
  letter-spacing: 3px;
  font-weight: bold;
}

#spec .price span.zei {
  font-size: 12px;
  line-height: 25px;
  letter-spacing: 1px;
  margin-left: 5px;
}
/*20251027追加*/
#spec::after {
  content: "";
  display: block;
  clear: both;
  height: 1px; /* 高さを確保して範囲を正確化 */
}

/* 各仕様 model logo- product_title_name */
.item_ti {
  text-align: center;
  max-width: 320px;
  margin: 0 auto;
}

.function_list {
  display: -webkit-flex;
  display: -moz-flex;
  display: -ms-flex;
  display: -o-flex;
  display: box;
  -js-display: flex;
  display: flex;
  -webkit-justify-content: space-between;
  justify-content: space-between;
  flex-wrap: wrap;
  border-bottom: 1px solid #000;
  padding-bottom: 3em;
}

.function_list li.item-icon {
  text-align: left;
  padding-top: 20px;
}

.function_list li.item-icon:first-child {
  width: 40%;
}

.function_list li.item-icon:last-child {
  width: 55%;
}


#fl01,
#fl02,
#fl03,
#fl01 li ul,
#fl02 li ul,
#fl03 li ul {
  margin: 0 0 70px 0;
}

.function_list li.item-icon ul li {
  width: 50px !important;
  font-size: 8px;
  line-height: 150%;
  margin-right: 8px;
  list-style-type: none;
}

.function_list li.item-icon ul li:last-child {
  margin-right: 0;
}

.function_list li.item-icon:last-child {
  margin: 0 auto;
}

.function_list li.item-icon .size-head {
  width: 12em;
  padding: 2% 0 2% 2%;
}

.function_list li.item_image .slick-slider .-item img {
  max-width: 415px;
}

@media screen and (min-width: 1042px) {
  .function_list li.item-icon:last-child {
    margin-right: 0 !important;
  }
}


/* 購入ボタン */
.function_list .red_submit {
  cursor: pointer;
}

.function_list .red_submit input {
  display: none;
}

.function_list .red_submit .red_submit_innr {
  display: block;
  background: #F70000;
  width: 100%;
  max-width: 263px;
  position: relative;
  margin: 0 auto 1em;
  z-index: 1;
  overflow: hidden;
  background: #F70000;
  display: block;
}

.function_list .red_submit .red_submit_innr::before,
.function_list .red_submit .red_submit_innr::after {
  position: absolute;
  z-index: -1;
  display: block;
  content: '';
}

.function_list .red_submit .red_submit_innr,
.function_list .red_submit .red_submit_innr::before,
.function_list .red_submit .red_submit_innr::after {
  -webkit-box-sizing: border-box;
  -moz-box-sizing: border-box;
  box-sizing: border-box;
  -webkit-transition: all .3s;
  transition: all .3s;
}

.function_list .red_submit .red_submit_innr::after {
  top: -100%;
  width: 100%;
  height: 100%;
}

.function_list .red_submit .red_submit_innr:hover::after {
  top: 0;
  background: #860000;
}

.function_list .red_submit .red_submit_innr .campaign_nav {
  width: 240px;
  position: absolute;
  bottom: 0px;
  right: -200px;
  z-index: 2;
}

.function_list .red_submit .red_submit_innr .campaign_btn {
  margin-top: 20px !important;
  font-size: 14px;
  line-height: 20px;
  letter-spacing: 1px;
  display: inline-block;
  color: #000;
  background: none;
}

.function_list .red_submit .red_submit_innr .campaign_btn:hover {
  color: #444;
  /*ff7200*/
}

.function_list .red_submit+p {
  padding-left: 6px;
  margin: auto;
  line-height: 24px;
}

@media screen and (max-width: 825px) {
  .function_list .red_submit+p {
    padding-left: 6px;
    line-height: 20px;
}
  }
}

#spec .wrap {
  margin: 0 auto !important;
}

.price dl dt,
.price dl dd {
  display: inline-block;
  vertical-align: top;
}

.icon {
  margin-bottom: 20px !important;
}

.icon li {
  display: inline-block;
  vertical-align: top;
}

/*201809追加END*/
/*youtube*/
#spec .youtube {
  width: 100%;
  position: relative;
  z-index: 5;
  padding-bottom: 56.25%;
  height: 0;
  overflow: hidden;
}

#spec .youtube iframe {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
}

/*ご使用上の注意事項*/
.spec_attention {
  width: 90%;
  max-width: 1100px;
  margin: 0 auto;
  text-align: left;
}

/* ご使用上の注意事項 */
/* .spec_attention h3 */
.spec_attention .attention-ti {
  font-size: 16px;
  line-height: 24px;
  letter-spacing: 3px;
}

.spec_attention p {
  font-size: 14px;
  line-height: 1.5;
  letter-spacing: 1.4px;
  margin-top: 8px;
}

@media screen and (max-width: 750px) {
  .spec_attention {
    width: 100%;
    margin: 10% auto 0 auto;
  }

.spec_attention p {
  font-size: 13px;
  line-height: 1.5;
  letter-spacing: 1px;
  margin-top: 8px;
}

  /*201809追加*/
  .function_list {
    display: block;
  }

  .function_list li.item-icon {
    width: 100% !important;
    float: none;
  }

  #fl01 {
    margin-bottom: 60px !important;
  }

  .price dl dt,
  .price dl dd {
    display: block;
  }

  .price dl dt {
    width: 100%;
  }

  .item_ti {
    max-width: 70%;
  }

  .catch {
    text-align: center;
  }

  .function_list li.item_image {
    width: 60% !important;
    margin: 0 auto;
  }

  .function_list li.item-icon ul li {
    width: 40px !important;
    margin-right: 10px;
  }

  .pro_bt {
    margin-top: 20px;
  }

  .icon {
    margin: 0 auto 20px auto !important;
    width: 100%;
  }

  #spec .data_L,
  #spec .data_R {
    width: 100%;
  }
}

/* ----------------------------------------------------------------
	よくあるご質問（統合・修正版）
----------------------------------------------------------------*/
#faq {
  width: 100%;
  text-align: center;
  padding: 0 0 70px 0;
  background: url(../img/dev_bg_cell.png) center top;
}

#faq h2 {
  font-size: 26px;
  line-height: 2.5;
  font-weight: 400;
  letter-spacing: 3px;
  margin: 60px auto 20px auto;
  padding: 0 80px;
  position: relative;
  text-align: center;
  display: inline-block;
}

#faq dl.wrap {
  width: 90%;
  max-width: 900px;
  margin: 0 auto;
  text-align: left;
}

/* 質問（dt）の設定 */
#faq dl dt {
  color: #000; /* テキストは黒 */
  font-size: 16px;
  font-weight: bold;
  border-bottom: 1px solid #9c9b9b; /* 下線 */
  padding: 20px 50px 20px 55px; 
  position: relative;
  cursor: pointer;
}

#faq dl dt:hover {
  background-color: rgba(209, 45, 38, 0.05);
}

/* Q.マーク 青 */
#faq dl dt::before {
  content: "Q.";
  position: absolute;
  left: 10px;
  top: 50%;
  transform: translateY(-50%) rotate(0deg) !important; /* 回転を強制リセット */
  font-size: 160%; /* 160%に拡大 */
  font-weight: bold;
  color: #0044CC; /* 誠実な青 */
}

/* ＋マークの作成 */
#faq dl dt::after,
#faq dl dt .icon-plus {
  content: "";
  position: absolute;
  right: 20px;
  top: 50%;
  width: 16px;
  height: 2px;
  background-color: #D12D26;
  transition: transform 0.3s, opacity 0.3s;
}

/* 縦棒（プラスにする） */
#faq dl dt .icon-plus {
  transform: translate(0, -50%) rotate(90deg);
}

/* 開いている時（is-open）は縦棒を消してマイナスにする */
#faq dl dt.is-open .icon-plus {
  transform: translate(0, -50%) rotate(0deg);
  opacity: 0;
}

/* 回答（dd）の設定 */
#faq dl dd {
  display: none; /* 初期は隠す */
  background-color: #f9f9f9;
  padding: 20px 20px 20px 45px;
  position: relative;
  font-size: 105%;
  line-height: 1.6;
  margin: 0;
  border-bottom: 1px dashed #ccc;
  font-size: 16px;
}

/* A.マーク */
#faq dl dd::before {
  content: "A.";
  position: absolute;
  left: 10px;
  top: 12px;
  font-size: 160%;
  font-weight: bold;
  color: #D12D26;
}

/* ＋ーマークの色も青に合わせて調整する場合（任意） */
#faq dl dt::after,
#faq dl dt .icon-plus {
  background-color: #0044CC; /* ＋マークもQと同じ青にすると統一感が出ます */
}

#faq dl dd a {
  color: inherit;               /* 周りの文字色（黒）に合わせる */
  text-decoration: none;
  border-bottom: 1px dotted #666; /* 控えめな点線の下線 */
  padding-bottom: 1px;
}

#faq dl dd a:hover {
  color: #D12D26;               /* ホバーした時だけブランドカラー（赤）に */
  border-bottom: 1px solid #D12D26;
}

@media screen and (max-width: 640px) {
  #faq h2 {
    font-size: 22px;
    padding: 0 40px;
    margin: 50px 10% 40px;
  }
  #faq dl dt, #faq dl dd {
    font-size: 100%;
    padding: 15px 50px 15px 45px;
    ine-height: 1.4;
  }
}

/* FAQ全体の可読性アップ */
#faq dl dt, 
#faq dl dd {
  letter-spacing: 0.03em; /* わずかに文字間を広げる */
  line-height: 1.6;      /* 行間をゆったりさせる */
}

/* 英語ページ限定の微調整 */
body[data-page="english"] #faq dl dd {
  letter-spacing: 0.01em; 
  line-height: 1.6;      
  word-spacing: 0.1em;   /* 単語と単語の間隔を少しだけ広げる */
  /* text-align: justify;   両端を揃えると、英文がブロック状に綺麗に見えます（お好みで） */
}

/* ----------------------------------------------------------------
  company_profile
  会社概要
----------------------------------------------------------------*/

#company_profile {
  width: 100%;
  text-align: center;
  padding: 0 0 90px;
}

#company_profile h2 {
  font-size: 26px;
  line-height: 2.5;
  font-weight: 400;
  letter-spacing: 5px;
  margin: 60px auto 50px auto;
  padding: 0 80px;
  position: relative;
  text-align: center;
  display: inline-block;
}

#_profile .cp_LR {
  width: 100%;
  margin: 10px auto 70px auto;
  text-align: center;
}

#company_profile .company-logo {
  text-align: center;
}

#company_profile .company-logo img {
  display: block;
  width: 468px;
  max-width: 90%;
  height: auto;
  margin: 0 auto;
}

#company_profile .company-link {
  text-align: center;
  margin-top: 30px;
}

#company_profile .company-link a {
  display: inline-block;
  padding: 8px 25px;
  color: #000;
  border: solid 1px #000;
  font-size: 13px;
  line-height: 13px;
  letter-spacing: 2px;
  text-decoration: none;
}

#company_profile .company-link a:hover {
  background: #000;
  color: #fff;
}

@media screen and (max-width: 750px) {
  #company_profile .cp_LR {
    width: 90%;
    margin: 0 auto 15% auto;
  }

  #company_profile .company-logo img {
    width: 400px;
    max-width: 90%;
  }

  #company_profile .company-link a {
    margin: 5px auto 0 auto;
    padding: 7px 25px;
    font-size: 13px;
    line-height: 13px;
    letter-spacing: 2px;
  }
}

@media screen and (max-width: 640px) {
  #company_profile {
    padding: 0;
  }

  #company_profile h2 {
    font-size: 24px;
    line-height: 2;
    font-weight: 400;
    letter-spacing: 3px;
    margin: 40px auto 20px auto;
    padding: 0 15%;
  }
}



/*  ----------------------------------------------------------------
	ページトップへ戻る
----------------------------------------------------------------*/
.gotop {
  position: fixed;
  right: 20px;
  bottom: 0;
  margin: 0 0 0 -80px;
  z-index: 5;
}

.gotop a {
  width: 60px;
  height: 80px;
  display: block;
}

@media screen and (max-width: 640px) {
  .gotop {
    position: fixed;
    right: 10px;
    bottom: 0;
    margin: 0 0 0 -80px;
    z-index: 5;
  }

  .gotop a {
    width: 45px;
    height: 60px;
    display: block;
  }
}

/*  ----------------------------------------------------------------
	footer
----------------------------------------------------------------*/
footer {
  width: 100%;
  background: #000;
  padding: 35px 0;
  position: relative;
  text-align: center;
}

footer .footer_logo {
  width: 70%;
  max-width: 1000px;
  margin: 0 auto 0 auto;
}

/*201809追加*/
footer .footer_logo ul {
  display: -webkit-flex;
  display: -moz-flex;
  display: -ms-flex;
  display: -o-flex;
  display: box;
  -js-display: flex;
  display: flex;
  -webkit-justify-content: center;
  justify-content: center;
  align-items: center;
}

footer .footer_logo ul li {
  width: 30%;
  margin: 0 2%;
}

footer .footer_co_logo {
  width: 76%;
  max-width: 350px;
  margin: 34px auto 0 auto;
}

footer p.copyright {
  font-size: 11px;
  line-height: 11px;
  margin: 7px auto 0 auto;
  letter-spacing: 2px;
  color: #fff;
}

.registered {
  font-size: 87.5%;
  color: #fff;
  border: 1px solid rgba(255, 255, 255, 0.5);
  margin: 20px auto;
  width: 80%;
  max-width: 635px;
  padding: 1%;
  line-height: 180%;
  letter-spacing: 1px;
}

@media screen and (max-width: 640px) {
  footer {
    width: 100%;
    background: #000;
    padding: 8% 0;
    position: relative;
    text-align: center;
  }

  footer .footer_logo {
    width: 55%;
    max-width: 368px;
    margin: 0 auto 0 auto;
  }

  footer .footer_co_logo {
    width: 60%;
    max-width: 219px;
    margin: 5% auto 0 auto;
  }

  footer p.copyright {
    font-size: 8px;
    line-height: 11px;
    margin: 1.5% auto 0 auto;
    letter-spacing: 1px;
    color: #fff;
  }

  /*201809追加*/
  footer .footer_logo ul {
    display: block;
  }

  footer .footer_logo ul li {
    width: 90%;
    margin: 0 auto;
  }

  .registered {
   font-size: 13px;
  color: #fff;
  border: 1px solid #fff;
  margin: 20px auto;
  width: 90%;
  max-width: 350px;
  padding: 1%;
  line-height: 1.4;
  letter-spacing: 1px;
  } 
}

/* spec slider*/
#spec .function_list .item_image {
  max-width: 415px;
  margin: 0 auto;
}

#spec .function_list .slick-dots {
  margin: 0;
}

@media screen and (max-width: 750px) {
  #spec .function_list .item_image {
    max-width: 520px;
  }

  #spec .function_list li.item_image {
    width: 100% !important;
  }
}

@media all and (-ms-high-contrast: none) {
  #spec .function_list .item_image {
    width: 415px
  }

  .function_list .red_submit .red_submit_innr img {
    pointer-events: none;
  }
}

.success-msg {
  padding: 1em;
  color: #060;
  max-width: 17em;
  margin: 0 auto;
  background: #EFE;
  border-radius: 8px;
  opacity: 1;
  transition-duration: 0.3s;
  animation: fadeIn 0.2s ease 0.3s 1 normal;
}

@keyframes fadeIn {
  0% {
    opacity: 0
  }

  100% {
    opacity: 1
  }
}

.infiniteslide1 {
  overflow: hidden;
  width: 100%;
  position: absolute;
  top: 0;
  left: 0;
  z-index: 0;
}

.infiniteslide1 .-item {
  width: 100%;
  height: 100%;
  z-index: 0;
  opacity: 0;
  background-position: center 60%;
  background-repeat: no-repeat;
  background-size: cover;
  position: absolute;
  left: 0;
  top: 0;
  animation: zooming 25s 0s infinite;
}

.infiniteslide1 .-item:nth-of-type(2) { animation-delay: 5s; }
.infiniteslide1 .-item:nth-of-type(3) { animation-delay: 10s; }
.infiniteslide1 .-item:nth-of-type(4) { animation-delay: 15s; }
.infiniteslide1 .-item:nth-of-type(5) { animation-delay: 20s; }

@keyframes zooming {
  0% { opacity: 0; transform: scale(1.0); }
  4% { opacity: 1; }  /* 25秒の4%（1秒）でふわっと表示 */
  20% { opacity: 1; } /* 25秒の20%（5秒）まで維持 */
  24% { opacity: 0; transform: scale(1.1); } /* 次へ */
  100% { opacity: 0; }
}

/* --- 英語版（上書き） --- */
body[data-page="english"] .infiniteslide1 .-item {
  /* 名前を専用の zooming-en に変更 */
  animation: zooming-en 10s 0s infinite; 
}

body[data-page="english"] .infiniteslide1 .-item:nth-of-type(2) {
  animation-delay: 5s;
}

body[data-page="english"] .infiniteslide1 .-item:nth-of-type(n+3) {
  display: none !important;
}

/* --- 英語版専用のキーフレーム（10秒サイクル用） --- */
@keyframes zooming-en {
  0% { opacity: 0; transform: scale(1.0); }
  10% { opacity: 1; }  /* 1秒かけて表示 (10秒の10%) */
  50% { opacity: 1; }  /* 5秒間維持 (10秒の50%) */
  60% { opacity: 0; transform: scale(1.1); } /* 1秒かけて消える */
  100% { opacity: 0; }
}

/* 特定商取引追加 */
.tokusho_link {
  border-top: 1px solid rgba(255, 255, 255, 0.5);
  max-width: 1100px;
  margin: 40px auto 0;
  padding: 40px 0;
  display: flex;
  justify-content: center;
  gap: 20px;
  flex-wrap: wrap;
}

.tokusho_link>a {
  flex-basis: 310px;
  font-size: 13px;
  line-height: 13px;
  letter-spacing: 2px;
  color: #FFF;
  padding: 8px 25px;
  border: solid 1px #FFF;
  text-decoration: none;
  display: block;
}

.tokusho_link>a:hover {
  background: #FFF;
  color: #000;
}

#tokusho {
  width: 100%;
  padding: 80px 0 80px 0;
  background: url(../img/dev_bg_cell.png) center top;
  text-align: center;
}

#tokusho h2 {
  font-size: 28px;
  line-height: 76px;
  font-weight: 400;
  letter-spacing: 5px;
  margin: 60px auto 50px auto;
  padding: 0 80px;
  position: relative;
  text-align: center;
  display: inline-block;
}

#tokusho .container {
  max-width: 1100px;
  margin: 0 auto;
  text-align: left;
  line-height: 1.25;
  font-size: 13px
}

@media screen and (max-width: 1150px) {
  #tokusho .container {
    padding: 0 20px;
  }
}

@media screen and (max-width: 760px) {
  #tokusho h2 {
    margin: 60px 20px 50px 20px;
  }

  #tokusho .tokusho-title {
    line-height: 1.2;
    padding: 8px 20px;
  }

  #tokusho .policy-title {
    line-height: 1.2;
    padding: 24px 20px;
    width: calc(100% - 40px);
  }
}

#tokusho .ml-1em {
  margin-left: 1em;
  line-height: 1.25;
}

#tokusho .ml-3em {
  line-height: 1.25;
  text-indent: -3em;
  padding-left: 3em;
}

/* ==========================================================
   会社概要　company-pr
   ========================================================== */

#company-pr {
  width: 100%;
  padding: 10px 0 100px ;
  background: url(../img/dev_bg_cell.png) center top;
  text-align: center;
}

#company-pr h2 {
  font-size: 26px;
  line-height: 60px;
  font-weight: 400;
  letter-spacing: 3px;
  margin: 60px auto 20px auto;
  padding: 0 80px;
  position: relative;
  text-align: center;
  display: inline-block;
}

#company-pr .section-sub {
  display: block;
  margin-top: 8px;
  font-size: 12px;
  letter-spacing: 3px;
  color: #0a3d74;
  font-weight: 500;
  line-height: 1.8;
}

#company-pr .company-info {
  width: 90%;
  max-width: 900px;
  margin: 60px auto 0 auto;
}

#company-pr .info-row {
  display: grid;
  grid-template-columns: 220px 1fr;
  column-gap: 40px;
  align-items: start;

  padding: 25px 0;

  border-bottom: 1px solid rgba(20,30,40,0.2);
}

#company-pr .info-ja {
  display: block;
  line-height: 1.8;
}

#company-pr .info-sub,
#company-pr .info-en {
  display: flex;
  align-items: center;
  min-height: 24px;
  margin-top: 4px;
  line-height: 1;
}

#company-pr .info-title {
  width: 220px;

  font-size: 14px;
  letter-spacing: 3px;
  line-height: 2;

  font-weight: 500;

  text-align: left;

  color: #666;
}

#company-pr .info-sub{
  display: block;
  margin-top: 10px;
  font-size: 12px;
  letter-spacing: 3px;
  color: #284d74;
  font-weight: 500;
  line-height: 1.6;
}


#company-pr .info-text {
  flex: 1;
  font-size: 16px;
  line-height: 2;
  letter-spacing: 1px;
  text-align: left;
  color: #111;
}

#company-pr .info-en{
  display: block;
  margin-top: 2px;
  font-size: 15px;
  letter-spacing: 1px;
  color:  #0a3d74;
  font-weight: 500;
  line-height: 1.6;
}

/* strong整理 */

#company-pr strong {
  font-weight: 500;
}

/* SP */

@media screen and (max-width: 750px) {

  #company-pr {
    padding: 0 0 70px;
  }

#company-pr h2 {
  font-size: 25px;
  line-height: 38px;
  font-weight: 400;
  letter-spacing: 5px;
  margin: 40px auto 20px auto;
}

  #company-pr .info-row {
    display: block;
    padding: 14px 0;
  }

  #company-pr .info-title {
    width: 100%;

    font-size: 12px;
    letter-spacing: 2px;
  }

  #company-pr .info-text {
    width: 100%;

    font-size: 15px;
    line-height: 1.8;
  }
  #company-pr .company-info {
    width: 90%;
    max-width: 958px;
    margin: 20px auto 0 auto;
  }

  #company-pr .info-sub {
    margin-top: 2px;
  }

  #company-pr .info-en {
    display: block;
    margin-top: 1px;
    font-size: 14px;
    letter-spacing: 1px;
    color: #0a3d74;
    font-weight: 400;
    line-height: 1.4;
}
}


/* 追加CSS */
#improvement {
  padding: 63px 0 0px 0;
}

#data .data_LR {
  padding-top: 0;
}

.youtube2 {
  width: 50%;
  margin: auto;
  padding-top: 50px;
  aspect-ratio: 16 / 9;
  position: relative;
}

.youtube2 iframe {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
}

.youtube3 {
  width: 100%;
  margin: auto;
  padding-top: 20px;
  aspect-ratio: 16 / 9;
  position: relative;
}

.youtube3 iframe {
  position: absolute;
  top: 50;
  left: 0;
  width: 100%;
  height: 100%;
}

.subPage_contents {
  margin-top: 90px;
}

header .header_inner .lang_cange {
  position: absolute;
  right: 320px;
  top: 58%;
  transform: translateY(-50%);
  color: #fff;
  font-size: 1em;
}

header .header_inner .lang_cange::before {
  content: "language";
  position: absolute;
  top: -50%;
  left: 50%;
  transform: translate(-50%, -50%);
  font-size: 0.7em;
}

header .header_inner .lang_cange a {
  color: #fff;
}

.product_video .youtube video {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
}

.product_function3 ul li img,
.improvement_function ul li img {
  width: 70%;
}

.improvement_function ul .fit-function,
.product_function3 ul .fit-function {
  flex-basis: 41%;
}

.improvement_function ul .fit-function img,
.product_function3 ul .fit-function img {
  width: 100%;
}

.bg_green {
  padding: 30px 0;
}

.product_video .development-text {
  margin: 20px 0;
}

.product_video .dev_LR {
  width: 90%;
  max-width: 1100px;
  margin: 0 auto 0 auto;
  height: 150px;
}

.product_video .dev_LR_en {
  height: 200px;
}

.product_video .dev_LR .dev_L {
  width: 47.5%;
  max-width: 520px;
  float: left;
}

.product_video .dev_LR .dev_R {
  width: 47.5%;
  max-width: 520px;
  float: right;
}

@media screen and (max-width: 760px) {
  .subPage_contents {
    margin-top: 60px;
  }

  header .header_inner .lang_cange {
    right: 110px;
    font-size: 2.8vw;
    position: absolute;
    transform: translateY(-50%);
    color: #fff;
    font-size: 1em;
  }

  header .header_inner .lang_cange a {
    font-size: 0.9em;
  }

  .product_video .dev_LR {
    height: 45vh;
  }

  .product_video .dev_LR_en {
    height: 80vh;
  }

  .product_video .dev_LR .dev_L {
    width: 80vw;
    max-width: 80vw;
    float: left;
  }

  .product_video .dev_LR .dev_R {
    width: 80vw;
    max-width: 80vw;
    float: right;
  }
}

header .header_inner nav ul .under-menu:hover .under-menu-content,
header .header_inner nav ul .en-under-menu:hover .under-menu-content {
  display: block
}

header .header_inner nav .under-menu .under-menu-content {
  position: absolute;
  top: 100%;
  left: 40%;
  width: auto;
  display: none;
}

header .header_inner nav .en-under-menu .under-menu-content {
  position: absolute;
  top: 100%;
  left: 41%;
  width: auto;
  display: none;
}

header .header_inner nav .under-menu-content li {
  display: block;
  width: 146%;
}

header .header_inner nav ul.under-menu-content li a {
  float: unset;
  line-height: 35px;
  background-color: rgba(30, 30, 30, 0.90);
  display: block;
  text-align: left;
  padding: 0 20px;
  width: auto;
}

header .header_inner nav .under-menu-content li a:hover {
  background: rgba(30, 30, 30, 0.90) !important;
}

/* top 外骨格　前後効果の背景　Bb＋ボーン -----------------------------*/
.product_video_left_img {
  position: absolute;
  top: 50%;
  left: 0;
  width: 35%;
  transform: translateY(-50%) rotate(90deg);
}

.product_video_left_img p {
  position: absolute;
  transform: rotate(270deg) translate(-50%, -50%);
  font-size: 80px;
  font-weight: 800;
  opacity: 0.4;
  top: 0%;
  left: 3%;
}

@media screen and (max-width: 760px) {
  .product_video_left_img {
    display: none;
  }
}


/* product LINE-UP  -------------------------------------------------*/
.products_imgs, #products_imgs {
  width: 90%;
  max-width: 1200px;
  margin: 0 auto 70px;
  overflow-x: auto;
}
/* product LINE-UP 画像img ----------------------------------------*/
.products_imgs-inner {
  display: flex;
  justify-content: center;
  gap: 20px;
  cursor: pointer;
  width: 100%;
  margin: 0 auto;
  transition: transform 0.3s ease;
}

.products_img {
  width: 160px;
  margin: auto;
  transition: transform 0.4s ease-out; /* ease-outにすると少し滑らかに */
    will-change: transform; 
    backface-visibility: hidden;
}
/* --- ホバー時のスタイル --- */
.products_img img:hover {
  transform: scale(1.15) translateZ(0); /* ★画像の大きさを1.15倍にする（ここをお好みで調整） */
}

.products_img_title {
  width: 200px;
  margin: 20px auto;
}

/* --- PC（基本設定）：スマホ案内は隠しておく --- */
.swipe-guide, .swipe-guide-en{
  display: none;
}

@media screen and (max-width: 760px) {  
    .section-title {
    margin: 40px auto 10px;
  }

   .products_view-list {
    font-size: 13px;
    line-height: 30px;
    border: none;
    padding: 0 0 10px;
    letter-spacing: 2px;
  }

  .swipe-guide {
    display: block; /* 表示する */
    font-size: 11px; /* 少し小さめに */
    color: #888;     /* 控えめな色にする */
    margin-top: -10px; /* 上のテキストとの距離を詰める（適宜調整） */
    margin-bottom: 30px;
    text-align: center;
  }

  body[data-page="english"] .swipe-guide-en {
    display: block;
    font-size: 11px;
    color: #454545;
    margin-top: -10px;
    margin-bottom: 40px;
    text-align: center;
    font-family: sans-serif; 
    letter-spacing: 2px;
  }

  .products_imgs {
    overflow-x: auto;
    width: 100%;
    -webkit-overflow-scrolling: touch;
    padding-bottom: 20px;
    margin: 0 auto 30px;
  }

  .products_imgs-inner {
    justify-content: flex-start;
    display: flex;
    width: 850px;
    gap: 15px;
  }
}

/* ----------------------------------------------------------------
	外骨格の力
----------------------------------------------------------------*/
.video-top-text {
  font-size: 6.4vw;
  letter-spacing: 51px;
  text-align: center;
  display: inline-block;
  padding-left: 3vw;
  padding-bottom: 3vw;
}

.video-top-text-en {
    letter-spacing: 6px;
    font-size: 3.7vw;
    padding-left: 0.3vw;
}

@media screen and (max-width: 760px) {
  .video-top-text {
    font-size: 10vw;
    letter-spacing: 5px;
    margin: 30px 0 20px;
}

  .video-top-text-en {
    font-size: 8.5vw;
    letter-spacing: 1px;
}
}
/* ----------------------------------------------------------------
	外骨格　前後　効果
----------------------------------------------------------------*/
.product_video .dev-title {
  /* font-size: 22px;
  line-height: 30px; */
  letter-spacing: 3px;
  padding-bottom: 20px;
  word-break: break-word;
  font-size: 1.2em;
  line-height: 1.6;
}

 .product_video .dev_LR .dev-tx {
  font-size: 16px;
  line-height: 30px;
  letter-spacing: 3px;
  padding-bottom: 20px;
}


.product_video .dev-title-en {
  font-size: 21px;
  line-height: 30px;
  letter-spacing: 0.8px;
  padding-bottom: 20px;
}

 .product_video .dev_LR .dev-tx-en {
  font-size: 14px;
  line-height: 24px;
  letter-spacing: 1px;
  padding-bottom: 50px;
}

  @media screen and (max-width: 760px) {
    .video-top-text {
      font-size: 10vw;
      letter-spacing: 5px;
  }
  
    .video-top-text-en {
      font-size: 8.5vw;
      letter-spacing: 1px;
  }

  .product_video .dev-title-en {
    font-size: 23px;
    line-height: 30px;
    letter-spacing: 0.8px;
    padding-bottom: 20px;
  }
  
   .product_video .dev_LR .dev-tx-en {
    font-size: 14px;
    line-height: 20px;
    letter-spacing: 1px;
    padding-bottom: 40px;
  }

  .product_video .dev_LR .dev-tx {
    font-size: 16px;
    line-height: 20px;
    letter-spacing: 3px;
    padding-bottom: 20px;
   }
  }

/* サブページの紹介動画　ウインド ------------------------------------*/
@media screen and (max-width: 760px) {
  .youtube2{
    width: 80%;
  }
}

/* 各shopへ20240605追加----------------------------------------------*/

.shop_link {
  display: flex;
  align-items: center;
  justify-content: center;
  margin-top: 25px;
  border-radius: 5px;
  width: 500px;
  transition: 0.3s;
  box-shadow: 0px 3px 5px 0px rgba(103, 102, 102, 0.4);
  background-image: linear-gradient(90deg, rgba(144, 245, 154, 1), rgba(4, 202, 255, 1));
}

.shop_link:hover {
  display: block;
  box-shadow: 0 0 rgba(0, 0, 0, 0.4);
  border-bottom-width: 2px;
  transform: translateY(2px);
}

.shop_link a {
  color:#000000;
  display: block;
  text-align: center;
  align-items: center;
  justify-content: center;
  letter-spacing: 0;
  padding: 16px;
  text-decoration: none;
  font-size: 16px;
}

.shop_link a:hover {
  color: rgb(253, 253, 253);
  display: flex;
  text-align: center;
  align-items: center;
  justify-content: center;
}
/*各shopへ20240527end*/

@media screen and (max-width: 825px) {
  .shop_link {
    width: 100%;
    margin: 3% auto 0 ;
    padding-left: 6px;
  }
@media screen and (max-width: 760px) {
  .shop_link{
    width: 90%;
    margin: 5% auto 0 auto;
  }
}
}

/* ----------------------------------------------------------------
	おしらせ
----------------------------------------------------------------*/

#news {
  width: 100%;
  text-align: center;
  background: #fff ;
  color: #0b0000;
  padding: 30px 0 10px;
}

#news h2 {
  font-size: 26px;
  line-height: 2.5;
  font-weight: 400;
  letter-spacing: 5px;
  margin: 20px auto;
  padding: 0 70px;
  position: relative;
  text-align: center;
  display: inline-block;
}

@media screen and (max-width: 640px) {
  #news h2  {
    display: block;
  }

  #news h2 {
    font-size: 24px;
    line-height: 35px;
    font-weight: 400;
    letter-spacing: 5px;
    margin: 50px auto 20px auto;
    padding: 0 15%;
    position: relative;
    text-align: center;
    display: inline-block;
  }
}

#news .news-list {
  text-align: left;
  font-size: 120%;
  line-height: 180%;
  padding-left: 30px;
}

#news .news_list{
  display: block;
  width: 100%;
  margin-bottom: 10px;
  padding: 0px 0 10px 0px;
}
 #news .flex {
  display: block;
  text-align: left;
  border-bottom: 1px solid #acaaaa;
  margin-bottom: 10px;
}


 #news .txt_area{
  display: block;
  margin-bottom:10px;
}

 .news-topix-date .news-topix-titlel {
  font-size: 120%;
  line-height: 180%;
  padding-left: 20px;
  text-decoration:none;
}

.news-topix-date {
  color: grey;
  margin-bottom: 10px;
  text-decoration:none;
}

.news-topix-titlel a {
  color: #0b0000;
  font-weight: 300;
  text-decoration:none;
}

.news-topix-titlel :hover {
	cursor: pointer;
	color: #0355a8;
}

/* 固定のお知らせエリアのコンテナ20260601----------------------------------------------*/
.news-fixed-notice {
  width: 90%;
  max-width: 800px; /* サイトの幅に合わせて調整 */
  margin: 0 auto 40px auto; /* 中央寄せし、下の投稿一覧との間に余白を作る */
  padding: 20px 20px;
  background-color: #ffffff; /* グリッド背景から浮かせるための白背景 */
  border: 1px solid #e0e0e0; /* 薄いグレーの枠線 */
  box-shadow: 0 2px 10px rgba(0, 0, 0, 0.03); /* 少しだけ影をつけて立体感 */
  text-align: center; /* 中央揃え */
  box-sizing: border-box;
}

/* 日付部分のスタイル */
.news-fixed-notice .notice-date {
  display: block;
  font-weight: bold;
  font-size: 14px;
  color: #666;
  margin-bottom: 12px;
  letter-spacing: 0.05em;
}

/* テキスト部分のスタイル */
.news-fixed-notice .notice-text {
  margin: 0;
  font-size: 14px;
  line-height: 1.8; /* 読みやすいように行間を広めに */
  color: #333;
}

.news-fixed-notice .notice-text-en {
  margin: 0;
  font-size: 15px;
  line-height: 1.8; /* 読みやすいように行間を広めに */
  color: #333;
}

/* スマホ表示用の調整 (画面幅が768px以下の場合) */
@media screen and (max-width: 768px) {
  .news-fixed-notice {
    padding: 20px 15px;
  }
  .news-fixed-notice .notice-text {
    font-size: 14px;
    line-height: 1.8;
  }

  .news-fixed-notice .notice-text-en {
    font-size: 14px;
    line-height: 1.7;
  }
}

/* 右サイド固定タブ */
.side-coupon-tab {
  position: fixed;
  right: 0;
  top: 77%; /* 画面中央付近 */
  transform: translateY(-50%);
  z-index: 9998;
  background: red; /* ブランドカラーに合わせて調整 */
  color: #fff;
  padding: 15px 8px;
  writing-mode: vertical-rl; /* 縦書きでタブらしく */
  text-orientation: mixed;
  cursor: pointer;
  border-radius: 5px 0 0 5px;
  box-shadow: -2px 0 10px rgba(0,0,0,0.2);
  font-weight: bold;
  font-size: 12px;
  letter-spacing: 1px;
}

/* スマホではShopifyカートと被らないよう少し位置を調整 */
@media screen and (max-width: 768px) {
  .side-coupon-tab {
    top: 77%; 
    padding: 10px 5px;
    font-size: 10px;
  }
}

/* =========================================
   モーダル（共通）
========================================= */
.modalArea {
  visibility: hidden;
  opacity: 0;
  position: fixed;
  z-index: 10000 !important;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  background: rgba(30,30,30,0.8);
  transition: opacity 0.4s ease;
}

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

.modalWrapper {
  position: absolute;
  bottom: 1%;
  right: 1%;
  transform: translate(-20%, -20%);
  background: #fff;
  width: 70%;
  max-width: 400px;
  padding: 50px 5px 20px;
  border-radius: 10px;
  text-align: center;
  box-shadow: 0 0 15px rgba(0,0,0,0.3);
}
.modalWrapper .modalContents .modalDiscounts {
  font-size: 20px;
  line-height: 2;
  font-weight: bold;
  top: 10px;
}

.modalWrapper .modalContents {
  font-size: 12px;
  line-height: 1.1;
  text-align: center;
}

.modalWrapper .modalcoupon {
  color: red; 
  text-align:center;
  font-size: 24px;
  font-weight: bold;
  line-height: 2.5;
}
.modal-subtext  {
font-size: 14px;
line-height: 1.5;
top: 10px;
}

.closeModal {
  position: absolute;
  top: 10px;
  right: 15px;
  font-weight: bold;
  cursor: pointer;
}

@media screen and (max-width: 768px) {

  .modalWrapper {
    padding: 30px 5px 10px;
  }

  .modalWrapper .modalContents .modalDiscounts {
    font-size: 16px;
    line-height: 3;
}

.modal-subtext  {
  font-size: 11px;
  line-height: 1.5;
  top: 10px;
  letter-spacing: 0.2px;
  text-align: left; 
  margin: 5% 5%;
  }

.closeModal {
  font-size: 16px;
  position: absolute;
  top: 10px;
  right: 10px;
  font-weight: bold;
  cursor: pointer;
}

.modalWrapper .modalcoupon {
  color: red; 
  text-align:center;
  font-size: 24px;
  font-weight: bold;
  line-height: 1;
  margin: 0 0 25px;
}

}


/* =========================================
   購入ボタン（共通・PC表示は現状維持）
========================================= */
.buy-floating,
.en-buy-floating {
  position: fixed;
  z-index: 9999;
  bottom: 20px;
  right: 120px;
  width: 100px;
  height: 100px;
  border-radius: 50%;
  display: flex;
  justify-content: center;
  align-items: center;
    background: linear-gradient(90deg, rgba(253,174,2,0.99) 0%, rgb(251,238,144) 50%, rgb(251,180,39) 100%);
  color: #0d0d0d;
  font-weight: bold;
  text-align: center;
  cursor: pointer;
  box-shadow: 0 0 10px rgba(0,0,0,0.2);
  transition: opacity 0.2s ease-in-out, transform 0.2s ease-in-out !important;
  opacity: 0;
  line-height: 1.2;
  font-size: 16px; /* PC時のベースサイズ */
}
  .buy-floating .copy2 {
    font-size: 13px;
    line-height: 1.1;
    font-weight: bold;
    letter-spacing: -0.02em; /* 文字間をわずかに詰めると収まりが良くなります */
    text-align: center;
  display: inline-block;
  vertical-align: middle;
  margin-top: 4px;
  }


/* 表示時 */
.buy-floating.is-show,
.en-buy-floating.is-show {
  opacity: 1;
}

/* 日本語版 */
.buy-floating {
  background: linear-gradient(90deg, rgba(253, 174, 2, 0.991) 0%, rgb(251, 238, 144) 50%, rgb(251, 180, 39) 100%);/* バナーの背景色 */
  background-size: 200% 100%;
  color: #0d0d0d;/* バナー内の文字色 */
}

/* 英語版 */
.en-buy-floating {
  background: linear-gradient(90deg, rgba(253, 174, 2, 0.991) 0%, rgb(251, 238, 144) 50%, rgb(251, 180, 39) 100%);/* バナーの背景色 */
  background-size: 200% 100%;
  color: #0d0d0d;/* バナー内の文字色 */
}
.en-buy-floating .copy2 {
  font-size: 14px;
  font-weight: bold;
  margin-top: 5px;
  line-height: 1.1;
}
/* hover時 */
.buy-floating:hover,
.en-buy-floating:hover {
  transform: scale(1.1);
}

/* =========================================
   スマホサイズ調整（768px以下）
========================================= */
@media screen and (max-width: 768px) {
  .buy-floating,
  .en-buy-floating {
    bottom: 1%;
    right: 70px;
    width: 80px;
    height: 80px;
    font-size: 13px; /* 共通の基準サイズ */
  }

  /* 日本語版（「購入はこちら」 → 少し小さく） */
  .buy-floating .copy2 {
    font-size: 11px;
    line-height: 1.1;
    font-weight: 600;
    margin-top: 0px;
  }

  /* 英語版（BUY NOW → やや大きめで中央強調） */
  .en-buy-floating .copy2 {
    font-size: 12px;
    letter-spacing: 0.5px;
    font-weight: 500;
    margin-top: 3px;
  }
}


----------------------------------------------------------------*/

header .header__inner {
  display: none;
}
header .header__inner .hamburger {
  display: none;
}


@media screen and (max-width: 1050px) {
  header .header_inner nav .nav_pc {
    display: none;
  }
  header .header_inner .header_btn_buy a {
    display: none;
  }
  header .header_inner .header_btn_catalog a {
    display: none;
  }
  header .header__inner  {
  position: fixed;
  z-index: 7;
  top: 0%;
  right: 1%;
  cursor: pointer;
  }
  header .header__inner .hamburger {
    display: block
  }
 }
/* ----------------------------------------------------------------
		hamburger
----------------------------------------------------------------*/
@media screen and (max-width: 1050px){
  .hamburger {
      display: block;
      height: 60px;
      margin-left: auto;
      position: relative;
      z-index: 900;
      width: 60px;
      border: none;
      background-color: transparent;
  }
  
  .hamburger.-active .hamburger__line {
      background-color: transparent;
  }
  .hamburger.-active .hamburger__line::before {
      top: 0;
      transform: rotate(45deg);
  }
  .hamburger.-active .hamburger__line::after {
      top: 0;
      transform: rotate(-45deg);
  }
  .hamburger.-active .hamburger__text::before {
    content: 'close';
  }
  .hamburger__line {
      display: block;
      height: 2px;
      position: absolute;
      top: 23px;
      left: 50%;
      transform: translateX(-50%);
      width: 24px;
      background-color: #fff;
      transition: 0.4s;
  }
  .hamburger__line:before,
  .hamburger__line:after {
      content: "";
      display: block;
      height: 100%;
      position: absolute;
      width: 100%;
      background-color: #fff;
      transition: inherit;
  }
  .hamburger__line:before {
      top: -6px;
  }
  .hamburger__line:after {
      top: 6px;
  }
  .hamburger__text {
      position: absolute;
      bottom: 8px;
      left: 50%;
      transform: translateX(-50%);
      width: 100%;
  }
  .hamburger__text::before {
      content: "MENU";
      text-align: center;
      color: #fff;
      font-size: 10px;
      font-weight: 900;
  }
  }
  .header {
    width: 300px;
  }
  .header__nav-area {
      position: fixed;
      top: 0;
      left: -100%;
      z-index: 9;
      height: 100vh;
      width: 300px;
      visibility: hidden;
      padding-top: 60px;
      background-color: #fff;
      transition: 0.4s;
  }
  .header__nav-area.-active {
      left: 0;
    visibility: visible;
  }
  .global-navigation {
      padding-top: 40px;
      padding-right: 25px;
      padding-bottom: 120px;
      padding-left: 25px;
  }
  .global-navigation__list > li {
      padding-bottom: 20px;
      border-bottom: 2px solid #e7e9ee;
  }
  .global-navigation__list > li + li {
    margin-top: 20px;
  }
  .global-navigation__link {
    display: flex;
      align-items: center;
      justify-content: space-between;
      color: #172e59;
      font-weight: 900;
      transition: color 0.4s;
      font-size: 0.875rem;
  }
  .global-navigation__link.-accordion {
      position: relative;
      background: none;
      border: none;
      -webkit-appearance: none;
      -moz-appearance: none;
      appearance: none;
      width: 100%;
      padding: 0;
  }
  .global-navigation__link.-accordion::after {
      content: '';
      display: block;
      height: 12px;
      position: absolute;
      top: 50%;
      right: 5px;
      width: 2px;
      background-color: #ed3242;
      transform: translateY(-50%);
      transition: transform 0.4s;
  }
  .global-navigation__link.-accordion::before {
      content: '';
      display: block;
      height: 2px;
      position: absolute;
      top: 50%;
      right: 0;
      width: 12px;
      background-color: #ed3242;
      transform: translateY(-50%);
      
  }
  .global-navigation__link.-active::after {
    transform: translateY(-50%) rotate(-90deg);
  }
  .accordion {
      height: 0;
      overflow: hidden;
      visibility: hidden;
      transition: 0.4s;
  }
  .accordion.-active {
      height: auto;
      padding-top: 30px;
      visibility: visible;
  }
  .accordion__list li {
      font-size: 0.9rem;
      text-align: left;
  }
  .accordion__list li + li {
       margin-top: 21px;
  }
  .accordion__link {
      color: #172e59;
  }

  .accordion {
  pointer-events: none; /* ← 初期は無効化 */
}
.accordion.-active {
  pointer-events: auto; /* ← 開いたらクリック可能 */
}

  /* ハンバーガーメニュー スライドイン */
.js-nav-area {
  position: fixed;
  top: 0; left: -300px;
  width: 300px;
  height: 100%;
  background: #fff;
  z-index: 1001;
  transition: left 0.3s ease;
}
.js-nav-area.-active { left: 0; }

/* オーバーレイ */
.nav-overlay {
  position: fixed; top:0; left:0; width:100%; height:100%;
  background: rgba(0,0,0,0.5);
  display:none;
  z-index:1000;
}
.nav-overlay.-active { display:block; }

/* アコーディオン */
.js-accordion { display:none; }
.js-accordion.-active { display:block; }



/* スライダー画像をコンパクトに */
.function_list .item_image img {
    max-width: 240px; /* さらに小さく */
    width: 100%;
    height: auto;
    border-radius: 0; /* 角丸を削除 */
    margin: 0 auto;
    display: block;
    box-shadow: none; /* 影も削除 */
}


#spec::after {
  content: "";
  display: block;
  clear: both;
  height: 1px;
}
/* ==========================================================
   購入ボタンエリア（全ページ共通＋option.html対応）
   ========================================================== */
.buy-buttons {
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
  align-items: flex-start;
  gap: 8px;
  margin-top: 10px;
  width: 100%;
}

/* Shopifyボタン（プルダウン＋かごに追加） */
.shopify-wrapper {
  flex: 1 1 32%;
  min-width: 200px;
  max-width: 300px;
  display: flex;
  flex-direction: column;
  align-items: stretch;
  gap: 6px;
}

.shopify-wrapper select,
.shopify-wrapper .shopify-buy__option-select__select {
  width: 100%;
  height: 36px;
  font-size: 14px;
  border: 1px solid #ccc;
  border-radius: 6px;
  box-sizing: border-box;
  padding: 4px 8px;
}

.shopify-wrapper .shopify-buy__btn {
  height: 44px;
  font-size: 15px;
  border-radius: 9px;
  background-color: #f61414;
  color: #fff;
  font-weight: 600;
  text-align: center;
  display: flex;
  align-items: center;
  justify-content: center;
  transition: background 0.3s;
}
.shopify-wrapper .shopify-buy__btn:hover {
  background-color: #dd1212;
}

/* Amazon・楽天ボタン */
.btn {
  flex: 1 1 32%;
  min-width: 200px;
  max-width: 300px;
  height: 44px;
  border-radius: 9px;
  font-size: 15px;
  font-weight: 600;
  color: #fff;
  display: flex;
  align-items: center;
  justify-content: center;
  text-decoration: none;
  transition: opacity 0.3s ease;
}
.btn.amazon { background-color: #146eb4; }
.btn.rakuten { background-color: #00a050; }
.btn:hover { opacity: 0.9; }

/* スマホ対応：縦並び＋中央揃え */
@media (max-width: 768px) {
  .buy-buttons {
    flex-direction: column;
    align-items: center;
  }
  .shopify-wrapper, .btn {
    max-width: 260px;
    width: 100%;
  }
}

/* slickの上書き防止 */
.buy-buttons a,
.buy-buttons .btn {
  display: flex !important;
}
/* ==========================================================
   購入ボタンエリア 横並び修正（Shopifyボタン対策）
   ========================================================== */
.buy-buttons {
  display: flex !important;
  flex-wrap: nowrap !important;
  justify-content: center;
  align-items: stretch;
  gap: 8px;
  flex-direction: row !important;
}

.buy-buttons .shopify-wrapper,
.buy-buttons .btn {
  flex: 1 1 33%;
  min-width: 200px;
  max-width: 300px;
  display: flex !important;
  flex-direction: column;
  justify-content: center;
}

.buy-buttons .shopify-product {
  width: 100%;
}

.buy-buttons .shopify-buy__btn {
  width: 100% !important;
}

/* スマホ時：縦並び */
@media (max-width: 768px) {
  .buy-buttons {
    flex-direction: column !important;
    align-items: center;
  }
  .buy-buttons .shopify-wrapper,
  .buy-buttons .btn {
    max-width: 260px;
    width: 100%;
  }
}

/* ==========================================================
   スマホ時：Amazon・楽天ボタンの高さをShopifyボタンと揃える
   ========================================================== */
@media (max-width: 768px) {
  .buy-buttons .btn {
    display: flex;
    align-items: center;
    justify-content: center;
    height: 40px !important;        /* 高さを固定 */
    min-height: 44px !important;    /* Shopifyと近似 */
    font-size: 14px;
    line-height: 1.2;
    font-weight: 600;
    border-radius: 9px;
  }

  .buy-buttons .amazon {
    background-color: #146eb4;
  }

  .buy-buttons .rakuten {
    background-color: #00a050;
  }
}
/* 価格部分を非表示にする */
.price {
    display: none;
}
.spec_table2 {
    margin: 20px 0;
}

/* スマホ用メディアクエリ内で、特殊なクラスも100%にリセットする */
@media screen and (max-width: 750px) {
  
  /* 項目が2つのページ（fit-function）も縦並びにする */
  .improvement_function ul .fit-function,
  .product_function3 ul .fit-function {
    flex-basis: 100% !important; /* 横幅いっぱいに広げる */
    width: 100% !important;
    max-width: 500px; /* 他のli要素のスタイルと統一 */
    margin: 0 auto 5% auto; /* 中央寄せと下マージン */
  }

  /* 画像のサイズをスマホで見やすく調整（PCは70%のまま維持） */
  .product_function3 ul li img,
  .improvement_function ul li img {
    width: 100% !important; /* スマホでは窮屈にならないよう幅いっぱいに */
    max-width: 320px; /* 大きくなりすぎないよう制限 */
    display: block;
    margin: 0 auto;
  }
}

/* ==========================================================
/* PCサイズ：中の改行(br)を無視して、前後に半角スペースを作る 
   ========================================================== */

.pc-space br {
  display: none;
}
.pc-space::before {
  content: " "; /* 半角スペースを挿入 */
}

/* スマホサイズ (max-width: 750px 等) の中 */
@media screen and (max-width: 750px) {
  .pc-space br {
    display: inline; /* 改行を復活させる */
  }
  .pc-space::before {
    content: none;   /* スペースを消す */
  }
}


/* ==========================================================
   2026-03-16 全サブページ共通：スマホ表示の最終調整
   （タイトル下の余白確保 ＋ 2列・3列項目の縦並び統合）
   ========================================================== */
@media screen and (max-width: 750px) {

  /* 1. セクション全体の上下余白を再設定 */
  #product_function,
  #product_function02,
  #improvement {
    padding-top: 40px !important;
    padding-bottom: 40px !important;
  }

  /* 2. タイトル画像の直後のスペースを確保 */
 h2.product_function_title,
 h2.improvement_function_title {
    margin-bottom: 35px !important; /* タイトルと項目の間の余白 */
    display: block ;
    /* margin-left: auto !important;
    margin-right: auto !important; */
    line-height: 1.4;
    letter-spacing: 1px;
    margin: 4% auto 2% auto;
    font-size: 24px;
  }

  /* 3. 全ての項目（li / .fit-function）を確実に縦1列にする */
  .product_function3 ul,
  .improvement_function ul {
    display: block !important; /* flexを解除 */
  }

  .product_function3 ul li,
  .improvement_function ul li,
  .product_function3 ul .fit-function,
  .improvement_function ul .fit-function {
    width: 100% !important;
    max-width: 500px !important;
    margin: 0 auto 40px auto !important; /* 項目同士の縦の間隔 */
    padding-bottom: 0 !important;
    float: none !important;
    flex-basis: auto !important;
  }

  /* 最後の項目だけ下の余白を消す */
  .product_function3 ul li:last-child,
  .improvement_function ul li:last-child {
    margin-bottom: 0 !important;
  }

  /* 4. 画像のサイズをスマホに最適化 */
  .product_function3 ul li img,
  .improvement_function ul li img,
  .product_function3 ul .fit-function img,
  .improvement_function ul .fit-function img {
    width: 80% !important;
    max-width: 300px !important;
    margin: 0 auto 15px auto !important;
    display: block;
  }
}
/* ==========================================================
   2026-03-16 横並び要素の間隔調整 ＋ 背景自動調整（確定版）
   ========================================================== */

/* 1. PC〜中間サイズ：左右に余白（間隔）を作りつつ高さを自動化 */
.product_video .dev_LR,
.product_video .dev_LR_en {
  height: auto !important;
  min-height: 150px;
  display: flex !important;
  flex-direction: row;            /* 横並びを明示 */
  justify-content: space-between; /* ★これで左右の要素の間に間隔を作ります */
  align-items: flex-start;
  flex-wrap: wrap;                /* 幅が限界なら折り返す */
  overflow: visible !important;
  padding-bottom: 40px;
}

/* 左右の各要素の幅を微調整して、中央に確実に隙間を作る */
.product_video .dev_LR .dev_L,
.product_video .dev_LR_en .dev_L {
  width: 46% !important;  /* 47.5%から少し減らして間隔を広げました */
  float: none !important; /* flexを使用するためfloatは解除 */
}

.product_video .dev_LR .dev_R,
.product_video .dev_LR_en .dev_R {
  width: 46% !important;
  float: none !important;
}

/* 2. 1250px〜1193px付近の文字切れ・窮屈さ対策 */
@media screen and (max-width: 1250px) {
  .product_video .dev_LR,
  .product_video .dev_LR_en {
    padding-left: 3%;
    padding-right: 3%;
  }
  
  /* .product_video .dev_LR p */.dev-title, 
  .product_video .dev_LR_en .dev-title p {
    word-break: break-word;
    font-size: 0.95em;
    line-height: 1.6;
  }
  .product_video .dev_LR .dev-title p {
    word-break: break-word;
    font-size: 1.5em;
    line-height: 1.6;
  }
}

/* 3. スマホ用（760px以下） */
@media screen and (max-width: 760px) {
  .product_video .dev_LR,
  .product_video .dev_LR_en {
    display: block !important;   /* スマホでは縦並びに戻す */
    height: auto !important;
    padding: 20px 15px !important;
  }

  .product_video .dev_LR .dev_L,
  .product_video .dev_LR .dev_R,
  .product_video .dev_LR_en .dev_L,
  .product_video .dev_LR_en .dev_R {
    width: 100% !important;      /* スマホでは横幅いっぱい */
    margin-bottom: 25px;
  }
  
  .product_video .dev_LR .dev_R,
  .product_video .dev_LR_en .dev_R {
    margin-bottom: 0;
  }
}

/* 4. 重なり順の固定（背景が文字に被らない設定） */
.product_video, .product_video .dev_LR, .product_video .dev_LR_en {
  position: relative;
}
.product_video { z-index: 1; }
.product_video .dev_LR, .product_video .dev_LR_en { z-index: 2; }
.product_video .youtube, .product_video-text, .product_video .dev_LR p {
  position: relative;
  z-index: 3;
}

   @media screen and (max-width: 750px) {
    #spec h2 span,
    #spec .spec-ti span {
      display: block;
      font-size: 0.6em; /* 少し小さめに */
      line-height: 1.2;
      margin-top: 2px;
    }
  }

  /* ==========================================================
   2026-03-16 ワークベルトを1種に
   ========================================================== */
.product_function3.wb ul li p {
    margin-top: 15px;
    margin-bottom: 17px;
    font-size: 15px;
    line-height: 1.5;
    letter-spacing: 1px;
    font-weight: 400;
    color: #fff;
    text-align: center;
}

.product_function3.wb.en ul li p {
    font-size: 18px;
    line-height: 26px;
    letter-spacing: 2px;
}

@media screen and (max-width: 750px) {
    .product_function3.wb ul li p {
        margin-top: 2%;
        font-size: 14px;
        line-height: 24px;
        letter-spacing: 1px;
        font-weight: 400;
        color: #fff;
        text-align: center;
    }
        .product_function3.wb.en ul li p {
        font-size: 16px;
        line-height: 24px;
        letter-spacing: 1px;
        font-weight: 400;
        color: #fff;
        text-align: center;
    }
}
/* ==========================================================
   2026-04-17 すべてのセクション見出し共通
   ========================================================== */
   .section-title {
    position: relative;     /* 左右の棒を配置する基準 */
    display: inline-block;  /* 文字の長さに合わせて幅を自動調節 */
    line-height: 2.8;
    padding: 0 45px !important; 
    margin: 40px auto 20px;
    text-align: center;
}
   
   .section-title::before,
   .section-title::after {
       content: "" !important;
       position: absolute !important;
       top: 0 !important;
       width: 3px !important;
       height: 100% !important; 
       background-color: rgba(160, 160, 160, 0.5) !important;
       display: block !important;
       background-image: none !important;
       
   }
   
   .section-title::before { left: 0 !important; }
   .section-title::after  { right: 0 !important; }

    /* 黒背景セクション（Introduction）だけ線を白く調整 */
   body#top #introduction h2::before,
   body#top #introduction h2::after {
     background-color: rgba(255, 255, 255, 0.6) !important; 
   }
  
   
   @media screen and (max-width: 640px) {
       .section-title {
           font-size: 22px !important;
           padding: 0 35px !important;
       }

        #faq .section-title,
        #development .section-title,
        #introduction .section-title{
        line-height: 1.5;
      }

      #development .section-title {
        letter-spacing: 1px;
      }
   }

   @media screen and (max-width: 640px) {
    .concept-text.concept-text-en p { 
        width: 90%;
        margin: 0px auto;
        font-size: 15px;
        line-height: 30px;
        font-weight: 300;
        letter-spacing: 2px;
        text-align: center;
    }
}

/* ==========================================================
   オプションページ用
   ========================================================== */
 .option-name {
    width: 100%;
    text-align: center;
    padding: 11px 0 45px 0;
    background: #C3C4C4;
    color: #333;
    /* margin: 0px 0 5vw 0; */
    font-size: 22px;
    line-height: 1.4;
    font-weight: bold;
    letter-spacing: 3;
}

.option-ti {
  border-bottom: 1px solid #333;
  text-align: left;
  font-size: 18px;
  line-height: 1.5;
  letter-spacing: 3px;
  margin-bottom: 25px;
}
/* ==========================================================
   2026-03-18 スマホ表示：仕様（.spec-ti）の余白修正
   ========================================================== */
@media screen and (max-width: 760px) {

/* option.html：製品名と説明のバランス（タグ変更対応版） */
.option-page .option-name {
  font-size: 22px ; /* オプション製品名 */
  font-weight: bold ; 
  line-height: 180%; !important; 
}
/* 説明文 */
.option-page .spec-ti {
  font-size: 16px !important; 
 }*/
 }
 @media screen and (max-width: 640px) {
.option-name {
  font-size: 20px;
  left: 2;
  margin: 0 0 2vw 0;
  line-height: 1.5;
  font-weight: bold;
  letter-spacing: 3;
  padding: 0px 0 20px 0;
}
}

/* ==========================================================
   一律の p 指定を削除した後のフォロースタイル
   ========================================================== */

/* 今回作成した見出し用 p タグはタイトに固定 */
 .section-title, /*.spec-ti, */.huge-catch {
  line-height: 1.5;
 } 
 #second h2 {
  font-size: 24px;
  letter-spacing: 2px;
  line-height: 2.5;
}
 /* =================================================
   2026 TOP PAGE STRUCTURE PATCH
   SEO / accessibility / heading cleanup
   ================================================= */

/* hidden main title (SEO + accessibility) */
#top .main-title{
  position: absolute !important;
  width: 1px;
  height: 1px;
  padding: 0;
  margin: -1px;
  overflow: hidden;
  clip: rect(0, 0, 0, 0);
  clip-path: inset(50%);
  white-space: nowrap;
  border: 0;
}
