html { scroll-behavior: smooth; }
#globalMain, #globalContents{ overflow: visible; }
#globalWrapper { box-sizing: border-box; }


/* 定義==================== */
/* :root {
  scroll-padding: 100px;
} */

.ni-container-wrapper {
  container-type: inline-size;
  container-name: ni-container-wrapper;
}

/* PC用 */
#globalContents .ni-container-wrapper{
  margin-bottom: -40px;
}

.ni-container * { box-sizing: border-box; }

:root .ni-container {
  --color-black: #222;
  --color-darkgray: #444;
  --color-gray: #666;
  --color-middlegray: #aaa;
  --color-lightgray: #eaeaea;
  --color-white: #fff;
  --color-amberorange: #cc7000;
  --color-electricblue: #0066CC;
  --color-deepblue: #005F9E;
  --color-deeppurple: #6A0DAD;

  /* shadow&グラデ関係 */
  --color-shadow: #A6ABBDcc;
  --white-40: rgba(255, 255, 255, 0.4);
  --white-90: rgba(255, 255, 255, 0.9);
  --black-40: rgba(0, 0, 0, 0.1);
  --neo-shadow-dark: 3px 3px 1rem var(--color-shadow);
  --neo-shadow-dark-hover: 8px 8px 1.25rem var(--color-shadow);
  --neo-shadow-light: -5px -5px 1rem var(--color-white);
  --neo-shadow-light-hover: -10px -10px 1.5rem var(--white-90);

  /* shadow：変数 */
  --neo-shadow-both:  var(--neo-shadow-dark), var(--neo-shadow-light);
  --neo-shadow-both-hover:  var(--neo-shadow-dark-hover), var(--neo-shadow-light-hover);
  
  /* グラデ：変数 */
  --diagonal-grad: linear-gradient(to top left, var(--white-40), var(--black-40));

  /* その他 */
  --font-size-base: 16px;
  --line-height-base: 1.4;
  --line-height-readability: 1.7;
  --hover-opacity: 0.6;
  --transition-all: all 0.3s ease; 
}

@container ni-container-wrapper (max-width: 1120px) {
  :root .ni-container {
    --font-size-base: 14px;
  }
}

@container ni-container-wrapper (max-width: 350px) {
  :root .ni-container {
    --font-size-base: 12px;
  }
}

/* gLightbox関係 */
:root {
  --plyr-color-main: #ff0000;
}

.goverlay {
	background: rgba(0, 0, 0, .7);
}

/* swiper関係（全体） */
:root .ni-container{
  --swiper-pagination-color: var(--color-black);
  --swiper-navigation-color: var(--color-black);
  --swiper-navigation-size: 30px;
}

.ni-container .swiper-pagination-bullet{
  width: 13px;
  height: 13px;
}

.ni-container .swiper-button-next,
.ni-container .swiper-button-prev{
  top: auto;
  bottom: 15px;
  transform: translateY(9px);
}

.ni-container .swiper-button-next{ right: 30%; }
.ni-container .swiper-button-prev{ left: 30%; }

@container ni-container-wrapper (max-width: 1120px) {
  :root .ni-container{
    --swiper-navigation-size: 25px;
  }

  .ni-container .swiper-pagination-bullet{
    width: 8px;
    height: 8px;
  }
}

/* 共通系 ======================== */ 
.ni-container {
  max-width: 1420px;
  margin-inline: auto;
  padding-bottom: 2rem;
  font-size: var(--font-size-base);
  line-height: var(--line-height-base);
  background-color: var(--color-lightgray);
  color: var(--color-black);
}

.ni-container section{
  padding-block: 3rem;
}

  #wrapper .ni-container section{
    padding-block: 2rem;
  }

.ni-container section + section{
  margin-top: 3rem;
}

.ni-container .inner{
  padding-inline: 3rem;
}

  #wrapper .ni-container .inner{
    padding-inline: 2rem;
  }

.ni-container .inner-narrow{
  max-width: 1200px;
  margin-inline: auto;
}

.ni-container figure{ 
  text-align: center;
}

.ni-container img{
  max-width: 100%;
  height: auto;
  transition: all .5s;
  vertical-align: bottom;
}

.ni-container a{
  color: inherit;
  text-decoration: none;
}

.ni-container span{
	color: inherit;
	font-weight: inherit;
}

.ni-container strong{
  font-weight: bold;
}

/*共通系：エレメント ========================
  ・PC/SP出し分け
	・見出し
  ・小見出し
  ・キャッチ
  ・バナー
  ・img：祖先要素ホバーで拡大
  ・点々のリスト
  ・製品コンテナ
  ・スペックリスト
  ・詳細を見る
  ・モーダルのボタン
  ・モーダルの中身
*/

/* PC/SP出し分け */
#globalContents .ni-container .el-pc-only{ display: block; }
#wrapper .ni-container .el-pc-only{ display: none; }
#globalContents .ni-container .el-sp-only{ display: none; }
#wrapper .ni-container .el-sp-only{ display: block; }

/* 見出し */
.ni-container .el-heading-g{
	text-align: center;
  margin-bottom: 3rem;
}

.ni-container .el-heading-g h2{
	font-size: 300%;
  font-weight: bold;
  text-transform: uppercase;
}

.ni-container .el-heading-g p{
	font-size: 200%;
}

@container ni-container-wrapper (max-width: 768px) {
  .ni-container .el-heading-g{
    margin-bottom: 2rem;
  }

  .ni-container .el-heading-g h2{
    font-size: 175%;
  }

  .ni-container .el-heading-g p{
    font-size: 120%;
  }
}

/* 小見出し */
.ni-container .el-sub-heading{
  padding: 0 0 0 .25em;
  margin-bottom: 1rem;
  border: 0 solid var(--color-black);
  border-bottom-width: 1px;
  border-left-width: 8px;
  font-size: 150%;
  font-weight: bold;
}

/* キャッチ */
.ni-container .el-catch{
  margin-bottom: .5rem;
  font-size: 150%;
  font-weight: bold;
}

.ni-container .el-modal-contents .el-catch{
  font-size: 112%;
}

/* バナー */
.ni-container .el-banner{
  display: block;
  background-color: var(--color-white);
}

.ni-container .el-banner figure {
  aspect-ratio: 1420 / 160;
  position: relative;
}

.ni-container .el-banner img {
  max-width: none;
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: left;
}

@container ni-container-wrapper (max-width: 768px) {
  .ni-container .el-banner figure {
    aspect-ratio: 5 / 1;
  }
}

/* img：祖先要素ホバーで拡大 */
.ni-container .el-expansion figure{
  overflow: hidden;
}
.ni-container .el-expansion img{
  transition: transform 0.3s ease;
}

.ni-container .el-expansion:hover img{
  transform: scale(1.015); 
}

/* ・のリスト */
.ni-container .el-disc-list{
  list-style-type: disc;
  padding-left: 1.5em;
}

.ni-container .el-disc-list > li{
  margin-top: .25em;
}

/* 製品コンテナ */
/* .ni-container .product-container{
  margin-top: 2rem;
}

.ni-container .inner + .product-container,
.ni-container .product-container + .product-container{
  margin-top: 4rem;
} */

/* スペックリスト */
.ni-container .spec-list dt{
  display: block;
  width: fit-content;
  margin-bottom: .25rem;
  padding: .2rem .5rem 0;
  border-radius: .5em;
  background: var(--diagonal-grad), var(--color-black); 
  color: var(--color-white);
  font-size: 85%;
}

.ni-container .spec-list dt.naiyou::before{ content: "内容"; }
.ni-container .spec-list dt.youtryou::before{ content: "容量"; }
.ni-container .spec-list dt.keishiki::before{ content: "形式"; }
.ni-container .spec-list dt.taiou::before{ content: "対応"; }
.ni-container .spec-list dt.kenban::before{ content: "鍵盤数"; }
.ni-container .spec-list dt.taipu::before{ content: "タイプ"; }
.ni-container .spec-list dt.youto::before{ content: "用途"; }
.ni-container .spec-list dt.format::before{ content: "フォーマット"; }
.ni-container .spec-list dt.setsuzoku::before{ content: "接続"; }
.ni-container .spec-list dt.tokucho::before{ content: "特徴"; }
.ni-container .spec-list dt.osusume::before{ content: "こんな方におすすめ!"; }
.ni-container .spec-list dt.saiteki::before{ content: "こんな方に最適!"; }

.ni-container .spec-list > div + div{
  margin-top: 1rem;
}


/* 詳細を見る */
.ni-container .to-product{
  position: absolute;
  bottom: 1rem;
  left: 50%;
  transform: translateX(-50%);
  display: flex;
  justify-content: center;
  align-items: center;
  width: fit-content;
  padding-block: .25em;
  padding-inline: 1rem;
  border-radius: 100vmax;
  background: var(--diagonal-grad), var(--color-deepblue); 
  color: var(--color-white);
  transition: var(--transition-all);
  white-space: nowrap;
}

.ni-container .win-modal .to-product{
  position: static;
  margin-block: 1rem;
  margin-inline: auto;
  transform: translateX(0);
}

.ni-container a:hover .to-product,
.ni-container .win-modal .to-product:hover{
  background-color: var(--color-electricblue);
} 

.ni-container .to-product::before{
  content: "詳細を見る";
  display: block;
}

  .ni-container .to-product.page{
    padding-left: 1.5em;
  }

  .ni-container .to-product.page::before{
    content: "商品ページへ";
  }

  .ni-container .to-product.page::after{
    display: block;
    content: "→";
    width: 1.5rem;
    height: 1.3rem;
    margin-left: .5em;
    transition: var(--transition-all);
  }

  .ni-container li > a:hover .to-product.page::after{
    transform: translateX(.2rem);
  }

/* モーダル遷移するためのボタン（テキストブロック） */
.ni-container .modal-btn-text{
  padding: 1rem;
  background-color: var(--white-40);
}

.ni-container .modal-btn-text::before{
  display: flex;
  justify-content: center;
  align-items: center;
  content: "+";
  width: 1.7rem;
  height: 1.7rem;
  float: right;
  margin-left: 5px;
  background-color: var(--color-black);
  color: var(--color-white);
}


/* モーダル：中身 */
.ni-container .win-modal{
  padding-top: 0;
  max-width: 800px;
  width: 90%;
}

.ni-container .win-modal .el-modal-contents{
  padding-top: 20px;
  margin-bottom: 1.5rem;
}

@container ni-container-wrapper (max-width: 800px) {
  .ni-container .win-modal{
    max-width: 600px;
  }
}

/* モーダル：閉じるボタン */
.ni-container .win-modal .close-modal{
  position: fixed;
  display: inline-block;
  width: 40px;
  height: 40px;
  top: 25px;
  right: 35px;
  padding: 0;
  border: 0;
  background: transparent;
}

    #wrapper .ni-container .win-modal .close-modal{
      top: 15px;
      right: 15px;
      width: 30px;
      height: 30px;
    }

.ni-container .win-modal .close-modal::before,
.ni-container .win-modal .close-modal::after{
  display: block;
  content: "";
  position: absolute;
  top: 0;
  left: 50%;
  width: 3px;
  height: 40px;
  margin-left: -1px;
  background: var(--color-white);
}

    #wrapper .ni-container .win-modal .close-modal::before,
    #wrapper .ni-container .win-modal .close-modal::after{
      height: 30px;
    }

.ni-container .win-modal .close-modal::before{
  transform: rotate(45deg);
}

.ni-container .win-modal .close-modal::after{
  transform: rotate(-45deg);
}

/* 視覚的に非表示 */
.ni-container .el-visually-hidden{
  position: absolute;
  width: 1px;
  height: 1px;
  margin: -1px;
  padding: 0;
  overflow: hidden;
  clip: rect(0 0 0 0);
  white-space: nowrap;
  border: 0;
}

/* クラス名でスタイル ============== */
.ni-container .paragraph{
  line-height: var(--line-height-readability);
}

.ni-container .paragraph + .paragraph{
  margin-top: .5rem;
}

.ni-container .nowrap{
  display: inline-block;
}

.ni-container .textellipsis-2{
	display: -webkit-box;
	-webkit-box-orient: vertical;
	overflow: hidden;
	text-overflow: ellipsis;
  line-clamp: 2;
	-webkit-line-clamp: 2;
}

/* 動画のabsoアイコン（aにクラス名つける）*/
.ni-container .icon-movie{
	display: block;
	width: 100%;
	position: relative;
}

.ni-container .icon-movie::after { position: absolute; display: block;	content: ""; width: 100%; height: 0; padding-top: 56.25%;top: 0;	left: 0;	background: url('data:image/svg+xml;utf8,<svg xmlns="http://www.w3.org/2000/svg" height="100%" version="1.1" viewBox="0 0 68 48" width="100%" fill="%23ffffff"><path d="M66.52,7.74c-0.78-2.93-2.49-5.41-5.42-6.19C55.79,.13,34,0,34,0S12.21,.13,6.9,1.55 C3.97,2.33,2.27,4.81,1.48,7.74C0.06,13.05,0,24,0,24s0.06,10.95,1.48,16.26c0.78,2.93,2.49,5.41,5.42,6.19 C12.21,47.87,34,48,34,48s21.79-0.13,27.1-1.55c2.93-0.78,4.64-3.26,5.42-6.19C67.94,34.95,68,24,68,24S67.94,13.05,66.52,7.74z" fill="%23f00"></path><path d="M 45,24 27,14 27,34" fill="%23fff"></path></svg>') no-repeat center center;	background-size: 15%; }

/* タイルタイプのリスト */
.ni-container .panel-list-wrapper{
  overflow-x: auto;
  padding-block: 1.5rem;
  padding-inline: 1.5rem;
}

#wrapper .ni-container .el-sp-only + .panel-list-wrapper{
  margin-top: 1.5rem;
}

.ni-container .panel-list{
  display: flex;
  gap: 1rem; /* アキはセクション毎に調整 */
  flex-wrap: wrap;
}

.ni-container .panel-list > li{
  box-shadow: var(--neo-shadow-both);
  transition: var(--transition-all);
}

.ni-container .panel-list > li:hover{
  box-shadow: var(--neo-shadow-both-hover);
}

.ni-container .panel-list > li > a{
  position: relative;
  display: block;
  width: 100%;
  height: 100%;
  padding-bottom: 3.5rem;
  background: var(--diagonal-grad),var(--color-white); 
}

.ni-container .panel-list .text-block{
  padding: 1rem;
}

.ni-container .panel-list .ttl{
  font-weight: bold;
  font-size: 120%;
}

.ni-container .panel-list .catch{
  margin-top: .5rem;
  /* font-size: 125%; */
  color: var(--color-gray);
}

.ni-container .panel-list .image-block{
  position: relative;
}

.ni-container .panel-list .win-modal .image-block{
  margin-inline: auto;
  margin-bottom: 1rem;
  aspect-ratio: 0;
}

.ni-container .panel-list .image-block img {
  display: block;
  width: 100%;
  height: 100%;
  object-fit: contain; 
  object-position: center;
}

.ni-container .panel-list .win-modal .image-block img{
  display: inline;
  width: auto;
  height: auto;
  object-fit: unset;
  object-position: unset;
}

.ni-container .panel-list .win-modal .ttl{
  margin-bottom: 1rem;
  font-size: 125%;
}

@container ni-container-wrapper (max-width: 800px) {
  .ni-container .panel-list-wrapper{
    padding-bottom: 2.5rem;
  }
}

/* セクション毎の記述==================== */
/* 【FV】==================== */
.sec-fv .logo-block{
  position: relative;
  aspect-ratio: 2/1;
  padding: 3rem;
  opacity: 0;
  animation: fvFadeIn 5s ease forwards;
}

.sec-fv .logo-block img {
  max-width: none;
  width: 100%;
  height: 100%;
  object-fit: contain;
}

@keyframes fvFadeIn {
  from {
      opacity: 0;
  }
  to {
      opacity: 1;
  }
}

/* 【目次】==================== */
.ni-container .sec-toc{
  margin-top: 0;
}

.sec-toc .inner-narrow{
  max-width: 800px;
}

.sec-toc nav + nav{
  margin-top: 3rem;
}

.sec-toc .toc-heading{
  font-size: 125%;
  font-weight: bold;
}

.sec-toc .toc-list{
  display: flex;
  flex-wrap: wrap;
  gap: 2rem;
  margin-top: .5rem;
}

.sec-toc .toc-list > li{
  border-radius: .5rem;
  overflow: hidden;
}

.sec-toc .toc-list.product-toc > li{
  width: calc((100% - 2rem * 3)/4);
}

.sec-toc .toc-list.movie-toc > li{
  width: 100%;
}

.sec-toc .toc-list > li > a{
  display: flex;
  justify-content: space-between;
  align-items: center;
  width: 100%;
  height: 100%;
  padding: .5rem;
  background-color: var(--color-white);
  transition: var(--transition-all);
}

.sec-toc .toc-list > li > a:hover{
  background-color: var(--color-gray);
  color: var(--color-white);
}

.sec-toc .toc-list > li > a::after{
  content: "↓";
  display: grid;
  place-items: center;
  width: 1.7rem;
  height: 1.7rem;
  border-radius: 100vmax;
  background: var(--diagonal-grad), var(--color-deepblue); 
  color: var(--color-white);
  font-weight: bold;
}

.sec-toc .toc-list > li > a:hover::after{
  background-color: var(--color-white);
  color: var(--color-black);
}

@container ni-container-wrapper (max-width: 650px) {
  .sec-toc .toc-list{
    gap: 1.5rem;
  }

  .sec-toc .toc-list.product-toc > li{
    width: calc((100% - 1.5rem * 1)/2);
  }
}

/* 【ソフトウェア】==================== */
.sec-software .padding-wrapper{
  padding-inline: 1.5rem;
}

.sec-software .el-sub-heading{
  margin-top: 2rem;
}

.sec-software .panel-list{
  gap: 2.5rem;
}

.sec-software .panel-list > li{
  width: calc((100% - 2.5rem * 2)/3);
}

.sec-software .image-block{
  aspect-ratio: 1/1; /* モーダル内は無効 */
  background-color: var(--white-40);
}

.sec-software .el-banner{
  margin-top: 2rem;
  margin-bottom: 5rem;
}

@container ni-container-wrapper (max-width: 800px) {
  .sec-software .panel-list.bundle-list{
    width: calc(250px * 6 + 2.5rem * 5);
  }

  .sec-software .panel-list.single-list{
    width: calc(250px * 5 + 2.5rem * 4);
  }

  .sec-software .panel-list > li{
    width: 250px;
  } 
}

/* 【キーボード】==================== */
.sec-keyboard .panel-list{
  gap: 2rem;
}

.sec-keyboard .panel-list > li{
  width: calc((100% - 2rem * 3)/4);
}

.sec-keyboard .image-block{
  aspect-ratio: 3/2; /* モーダル内は無効 */
}

@container ni-container-wrapper (max-width: 800px) {
  .sec-keyboard .panel-list{
    gap: 2.5rem;
    width: calc(250px * 7 + 2.5rem * 6);
  }

  .sec-keyboard .panel-list > li{
    width: 250px;
  } 
}

/* 【マシーン】 ==================== */
.sec-maschine .panel-list{
  gap: 2rem;
}

.sec-maschine .panel-list > li{
  width: calc((100% - 2rem * 2)/3);
}

@container ni-container-wrapper (max-width: 800px) {
  .sec-maschine .panel-list{
    gap: 2.5rem;
    width: calc(250px * 3 + 2.5rem * 2);
  }

  .sec-maschine .panel-list > li{
    width: 250px;
  } 
}

/* 【デジタルDJ】==================== */
.sec-digitaldj .panel-list{
  gap: 3rem;
}

.sec-digitaldj .panel-list > li{
  width: calc((100% - 3rem * 2)/3);
}

.sec-digitaldj .image-block{
  aspect-ratio: 16/9;
}

@container ni-container-wrapper (max-width: 800px) {
  .sec-digitaldj .panel-list{
    gap: 2.5rem;
    width: calc(250px * 5 + 2.5rem * 4);
  }

  .sec-digitaldj .panel-list > li{
    width: 250px;
  } 
}

/* 【ムービー】==================== */
.sec-movie .movie-wrapper{
  display: flex;
  flex-direction: row-reverse;
  align-items: center;
  gap: 0 1rem;
}

.sec-movie .el-heading-g{
  width: 400px;
  margin-bottom: 7rem;
}

.sec-movie .movie-block{
  width: calc(100% - -1rem - 400px);
  padding-bottom: 3rem;
}

.sec-movie .swiper-slide{
  padding-inline: 1rem;
}

.sec-movie .ttl{
  margin-top: .5rem;
  font-size: 120%;
}

@container ni-container-wrapper (max-width: 1024px) {
  .ni-container .sec-movie{
    margin-top: 1rem;
  }

  .sec-movie .movie-wrapper{
    flex-direction: column;
  }

  .sec-movie .el-heading-g,
  .sec-movie .movie-block{
    width: 100%;
  }

  .sec-movie .el-heading-g{
    margin-bottom: 2rem;
  }
}