/* #gHeader
================================================ */
#gHeader { border-bottom: 1px solid  #0f7cbb; }

/* #mainImg
================================================ */
#mainImg { position: relative; background: none; margin-top: 0; margin-bottom: 45px; padding-top: 50px; height: auto; z-index: 1; }
#mainImg:before { content: ''; position: absolute; top: 0; left: 0; width: 100%; height: 100%; background: url("../../img/opc/bg_main_sp.jpg") no-repeat center center/cover; }
#mainImg .inner { position: relative; padding-left: 15px; padding-right: 15px; padding-bottom: 50px; }
#mainImg .inner:before { display: none; }
#mainImg .main-header { display: flex; flex-direction: column; }
#mainImg .main-header .sub { color: #fff; font-size: 2.8rem; font-weight: 900; text-shadow: 2px 2px 2px #333; line-height: 1.5; margin-top: 10px; letter-spacing: 0.03em; }
#mainImg .main-header .sub_txt { color: #fff; font-size: 1.5rem; font-weight: 900; text-shadow: 2px 2px 2px #333; line-height: 1.5; margin-top: 10px; margin-bottom: 30px; letter-spacing: 0.03em; }
#mainImg .main-header .sub-small { padding-top: 50px; color: #ffe156; font-size: 1.5rem; font-style: normal; font-weight: 900; text-shadow: 2px 2px 2px #333; letter-spacing: 0.01em;}
#mainImg .list { display: flex; flex-wrap: wrap; justify-content: space-between; margin-bottom: 20px; max-width: 550px; width: 100%;}
#mainImg .list .item { flex: 0 1 31%; width: 31%; max-width: 31%; font-size: 1.4rem; color: #fff; font-weight: 900; text-align: center; background-color: #0171b8; border-radius: 50%; box-sizing: border-box; padding: 33px 0; line-height: 1.5; letter-spacing: 0.01em; display: flex; align-items: center; justify-content: center;}
#mainImg .mainImg_point-wrap{
	margin-bottom: 15px;
}
#mainImg .mainImg_point-wrap:last-child{
	margin-bottom: 0px;
}
#mainImg .mainImgbtn .mod_btn01{
	margin: 10px auto 0;
	max-width: 385px;
}
#mainImg .mainImg_point-inner{
	position: relative;
}
#mainImg .mainImg_point-inner .mainImg_point-txt {
    display: block;
    width: 70%;
    padding: 4px 0;
    font-weight: bold;
    font-size: 12px;
    border-radius: 100px;
    box-shadow: 0 3px 6px rgba(62,58,57,0.21);
    transition: 0.25s;
    position: absolute;
    z-index: 1;
    top: -15px;
    left: 50%;
    transform: translateX(-50%)
}
#mainImg .mainImg_point-inner .mainImg_point-txt::after {
    content: "";
    display: block;
    width: 0;
    height: 0;
    border-style: solid;
    border-width: 9px 9px 0 9px;
    transition: 0.25s;
    position: absolute;
    bottom: -5px;
    left: 50%;
    transform: translateX(-50%)
}
#mainImg .mainImg_point-inner a {
    display: block;
	 margin-top: 40px;
    padding: 20px 0;
    border-radius: 10px;
    border: 3px solid #FFFFFF;
    text-align: center;
    font-weight: bold;
    font-size: 1.5rem;
    box-shadow: 0 4px 8px rgba(62,58,57,0.18);
    position: relative;
    z-index: 0;
	line-height: 1.4;
}
#mainImg .mainImg_point-inner a::after {
    content: "";
    display: block;
    width: 10px;
    height: 10px;
    border-top: 2px solid;
    border-right: 2px solid;
    position: absolute;
    top: 50%;
    right: 20px;
    transform: translateY(-50%) rotate(45deg)
}
#mainImg .mainImg_point-inner.black_btn .mainImg_point-txt {
    color: #3E3A39;
    background-color: #f9db00;
	text-align: center;
}
#mainImg .mainImg_point-inner.black_btn .mainImg_point-txt::after {
    border-color: #f9db00 transparent transparent transparent;
}
#mainImg .mainImg_point-inner.black_btn a {
    color: #FFFFFF;
    background-color: #424242;
}
#mainImg .mainImg_point-inner.black_btn .mod_btn01_link-or{
	background-color: #ffa027;
}
#mainImg .mainImg_point-inner.black_btn .mod_btn01_link-bl{
	background-color: #00a8de;
}
#mainImg .mod_btn01_link:hover:before { background-color: #016cb1; z-index: -1; }

@media all and (max-width: 350px) { 
	#mainImg .list .item { padding: 23px 0; } 
}

@media all and (min-width: 600px) {
	#mainImg { margin-top: 95px; padding: 90px 0; margin-bottom: 0; }
	#mainImg::before { top: 0; height: 100%; background-image: url("../../img/opc/bg_main_pc.jpg");}
	#mainImg .inner{padding-bottom: 0; box-sizing: border-box;}
	#mainImg .mainWrap { position: relative; }
	#mainImg .main-header .sub { font-size: 5.6rem; margin-top: 0; }
	#mainImg .main-header .sub_txt { font-size: 3.6rem; margin-bottom: 40px; }
	#mainImg .main-header .sub-small {font-size: 2.6rem; padding-top: 0px; }
	#mainImg .list { margin-bottom: 20px; }
	#mainImg .list .item {font-size: 1.8rem; padding: 45px 0;}
	#mainImg .mainImg_point{
		display: flex;
		flex-wrap: wrap;
		justify-content: space-between;
		align-items: center;
	}
	#mainImg .list {
		flex: 0 1 44%;
		width: 44%;
		max-width: 44%;
		margin-bottom: 0;
	}
	#mainImg .mainImg_point-img:last-child {
		margin-bottom: 0;
	}
	#mainImg .mainImg_point-logo {
		flex: 0 1 18%;
		width: 18%;
		max-width: 18%;
	}
	#mainImg .mainImg_point-wrap {
		flex: 0 1 26%;
		width: 26%;
		max-width: 26%;
		margin-bottom: 0;
	}
	#mainImg .mainImg_point-img{
		flex: 0 1 100%;
		width: 100%;
		max-width: 100%;
	}
	#mainImg .mainImg_point-txt{
		font-size: 1.6rem;
	}
	#mainImg .mainImg_point-wrap .mod_btn01 {
		margin: 15px auto 0;
		max-width: 240px;
	}
	#mainImg .mod_btn01_link{
		font-size: 1.4rem;
	}
	#mainImg .mainImg_point-inner a {
		 margin-top: 0px;
	}
}

/* 共通
------------------------------------- */
.mod_tit05 {
    font-size: 1.8rem;
}

.mod_img_box02_img {
    width: calc(65% - 15px);
}

@media all and (min-width: 600px) {
	.inner_left{
		padding-left: 2%;
	}
	.mod_tit05 {
        margin-bottom: 30px;
        font-size: 3.3rem;
    }
	.mod_img_box02_img {
        width: calc(20% - 10px);
    }
}

/* info
------------------------------------- */
#info .mod_btn01{
	margin: 20px auto 0;
	max-width: 600px;
}

/* problem
------------------------------------- */
#problem .problem_box{
	margin-bottom: 15px;
	border: 1px solid #e2e2e2;
    padding: 20px;
    box-sizing: border-box;
}
.sankakucenter_s2{
	width: 100%;
	margin: 0 auto;
}
.sankaku_s2{
	width: 0;
	height: 0;
	border: 100px solid transparent;
	border-top: 40px solid #21c9fd;
}

/* links
------------------------------------- */
#problem .problem_maintxt{
	margin-bottom: 10px;
	color: #016cb1;
    text-align: center;
    font-weight: bold;
    font-size: 1.6rem;
}
#problem .problem_subtxt{
	text-align: center;
}
@media all and (min-width: 600px) {
	#problem .problem_maintxt{
		font-size: 2.5rem;
	}
	#problem .problem_wrap{
		display: flex;
		flex-wrap: wrap;
		justify-content: space-between;
		align-content: flex-start;
		 align-items: stretch;
	}
	#problem .problem_box{
		margin-bottom: 30px;
		flex:0 1 49%;
		width: 49%;
		max-width: 49%;
	}
	#problem .mod_tit03 {
        margin-bottom: 10px;
    }
}


/* solution
------------------------------------- */
.solution {
  --issue-icon-size: 48px;
  --menu-icon-size: 50px;
  padding: 50px 0;
}

.solution .solution_wrap {
  border: 1px solid #b8c9dc;
  border-radius: 10px;
  overflow: hidden;
  background: #fff;
}

.solution_tabs {
  display: grid;
  grid-template-columns: 1fr;
}

.solution_tab {
  position: relative;
  padding: 20px 10px;
  border: none;
  border-bottom: 1px solid #b8c9dc;
  background: #f8fbff;
  color: #0052a4;
  font-size: 16px;
  font-weight: bold;
  cursor: pointer;
}

.solution_tab span {
  display: block;
  margin-top: 4px;
  font-size: 1.3rem;
}

.solution_tab_active {
  background: #016cb1;
  color: #fff;
}

.solution_tab_active::after {
  content: "";
  position: absolute;
  left: 50%;
  bottom: -8px;
  transform: translateX(-50%);
  border-top: 9px solid #016cb1;
  border-left: 9px solid transparent;
  border-right: 9px solid transparent;
}

.solution_panel {
  display: none;
}

.solution_panel_active {
  display: block;
}

.solution_contents {
  display: grid;
  grid-template-columns: 1fr;
  gap: 20px;
  padding: 20px 14px;
}

.solution_issue_list {
  display: grid;
  gap: 10px;
}

.solution_issue_item {
  position: relative;
  display: grid;
  grid-template-columns: 48px 1fr 16px;
  align-items: center;
  gap: 12px;
  min-height: 84px;
  padding: 10px 12px;
  border: 1px solid #e1e6ee;
  border-radius: 8px;
  background: #fff;
  text-decoration: none;
  box-shadow: 0 2px 8px rgba(0, 0, 0, 0.04);
}

.solution_issue_item_new {
  border: 2px solid #ff2b2b;
}

.solution_issue_badge {
  position: absolute;
  top: -14px;
  left: -8px;
  padding: 4px 10px;
  border-radius: 999px;
  background: #ff2b2b;
  color: #fff;
  font-size: 12px;
  font-weight: bold;
}

.solution_issue_icon {
  display: flex;
  align-items: center;
  justify-content: center;
}

.solution_issue_icon img {
  width: var(--issue-icon-size);
  height: auto;
  display: block;
}

.solution_issue_title {
  margin: 0 0 5px;
  color: #0052a4;
  font-size: 15px;
  line-height: 1.4;
	font-weight: bold;
}

.solution_issue_item_new .solution_issue_title {
  color: #ff2b2b;
}

.solution_issue_text {
  margin: 0;
  font-size: 1.3rem;
  line-height: 1.6;
}

.solution_issue_arrow {
  color: #0052a4;
  font-size: 24px;
}

.solution_issue_more_area {
  display: none;
}

.solution_issue_more_area.is_open {
  display: grid;
  gap: 10px;
}

.solution_more {
  position: relative;
  width: fit-content;
  margin: 12px auto 0;
  padding: 0 28px 0 0;
  border: none;
  background: transparent;
  color: #0052a4;
  font: inherit;
  font-weight: bold;
  cursor: pointer;
}

.solution_more::before,
.solution_more::after {
  content: "";
  position: absolute;
  top: 50%;
  right: 4px;
  width: 14px;
  height: 2px;
  background: #0052a4;
  transform: translateY(-50%);
}

.solution_more::after {
  transform: translateY(-50%) rotate(90deg);
}

.solution_more.is_open::after {
  opacity: 0;
}

.solution_menu_list {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: 10px;
}

.solution_menu_item {
  min-height: 96px;
  display: grid;
  place-items: center;
  gap: 8px;
  padding: 14px 8px;
  border: 1px solid #d8e0ea;
  border-radius: 8px;
  background: #fff;
  color: #0052a4;
  text-decoration: none;
  font-weight: bold;
  box-shadow: 0 2px 8px rgba(0, 0, 0, 0.04);
}

.solution_menu_icon {
  display: flex;
  align-items: center;
  justify-content: center;
}

.solution_menu_icon img {
  width: var(--menu-icon-size);
  height: auto;
  display: block;
}

.solution_menu_title {
  font-size: 1.4rem;
  line-height: 1.4;
  text-align: center;
}

.solution_dummy {
  padding: 50px 20px;
  text-align: center;
  color: #0052a4;
  font-weight: bold;
}

@media all and (min-width: 600px) {
  .solution {
    padding: 50px 0;
  }
	.solution_wrap{
		max-width: 900px;
		margin: auto;
	}
.solution_contents {
    align-items: start;
  }

  .solution_menu_list {
    align-self: start;
  }

  .solution_menu_item {
    min-height: auto;
    height: 126px;
  }

  .solution_tabs {
    grid-template-columns: repeat(3, 1fr);
  }

  .solution_tab {
    border-right: 1px solid #b8c9dc;
  }

  .solution_tab:last-child {
    border-right: none;
  }

  .solution_contents {
    grid-template-columns: 1fr;
    padding: 40px 30px;
  }

  .solution_issue_item {
    grid-template-columns: 64px 1fr 20px;
  }

  .solution_issue_title {
    font-size: 1.6rem;
  }

  .solution_issue_arrow {
    font-size: 2.8rem;
  }

  .solution_menu_list {
    grid-template-columns: repeat(3, 1fr);
  }

  .solution_menu_title {
    font-size: 1.5rem;
  }
}

/*----------------------------------------------------
contact
----------------------------------------------------*/

#contact{
	padding: 0 0 50px;
}

#contact .contact_box{
	padding:20px;
	border-radius:5px;
}

#contact .contact_ttl{
	margin-bottom:10px;
	color:#0054ad;
	font-size:2.4rem;
	font-weight:700;
	line-height:1.4;
}

#contact .contact_txt{
	line-height:1.7;
}

#contact .contact_btn{
	margin-top:20px;
}

#contact .contact_btn .mod_btn01{
	margin:0;
	max-width:none;
}

@media all and (min-width:600px){

#contact .contact_box{
	display:flex;
	align-items:center;
	justify-content:space-between;
	gap:40px;
	padding:20px 30px;
}

#contact .contact_cont{
	flex:1;
}

#contact .contact_btn{
	flex-shrink:0;
	margin-top:0;
	width:320px;
}

#contact .contact_btn .mod_btn01{
	max-width:100%;
}
#contact .mod_btn01_link{
	padding: 20px 0;
}

}

/* example
------------------------------------- */

#example .example_box{
	margin-bottom: 30px;
	
}
#example .example_box .img{
		max-width: 140px;
		margin: auto;
		margin-bottom: 20px;
}
#example .example_box-point{
	margin-bottom: 20px;
    font-size: 1.5rem;
    color: #016cb1;
    font-weight: bold;
    line-height: 1.5;
}
.example_box-q{
	margin-bottom: 15px;
}
#example .example_box-q{
	display: flex;
	align-items: center;
    justify-content: space-between;
	flex-direction: column;
}
#example .example_box-q .b{
	flex: 0 1 100%;
	width:100%;
	max-width: 100%;
	margin-bottom: 10px;
    padding: 3px 10px;
    background: #016cb1;
    color: #fff;
    border-radius: 20px;
	text-align: center;
	font-weight: bold;
}
#example .example_box-q .txt{
	flex: 0 1 100%;
	width:100%;
	max-width: 100%;
}

#example .example_box-sol{
	display: flex;
	align-items: center;
    justify-content: space-between;
	flex-direction: column;
}
#example .example_box-sol .r{
	flex: 0 1 100%;
	width:100%;
	max-width: 100%;
	margin-bottom: 10px;
    padding: 3px 10px;
    background: #d82525;
    color: #fff;
    border-radius: 20px;
	text-align: center;
	font-weight: bold;
}
#example .example_box-sol .txt{
	flex: 0 1 100%;
	width:100%;
	max-width: 100%;
}

@media all and (min-width: 600px) {
	#example .example_box {
		display: flex;
		flex-wrap: wrap;
		justify-content: space-between;
	}
	#example .example_box .img{
		flex: 0 1 20%;
		width:20%;
	}
	#example .example_box .example_box-txt{
		flex: 0 1 78%;
		width:78%;
		max-width: 78%;
	}
	#example .example_box-point{
		font-size: 1.8rem;
	}
	#example .example_box-q{
		flex-direction: row;
	}
	#example .example_box-q .b{
		flex: 0 1 10%;
		width:10%;
		max-width: 10%;
		margin-right: 10px;
	}
	#example .example_box-q .txt{
		flex: 0 1 88%;
		width:88%;
		max-width: 88%;
	}
	#example .example_box-sol{
		flex-direction: row;
	}
	#example .example_box-sol .r{
		flex: 0 1 10%;
		width:10%;
		max-width: 10%;
		margin-right: 10px;
	}
	#example .example_box-sol .txt{
		flex: 0 1 88%;
		width:88%;
		max-width: 88%;
	}
}

/* Bnr
------------------------------------- */
.Bnr{
  position: relative;
  margin: 0 auto;
  display: none;
}
.Bnr .Bnr__img{
  position: fixed;
  bottom: 140px;
  right: 0;
  z-index: 888;
}
.Bnr__img__inner{
  box-sizing:border-box;
  padding: 10px;
  padding-right: 14px;
}
.Bnr .Bnr__img__inner a{
  display: block;
  filter: drop-shadow(2px 2px 2px rgba(160, 160, 160, 0.8)); 
}
.Bnr .Bnr__img p.close{
  position: absolute;
  right: 10px;
  top:-20px;
}
.Bnr .Bnr__img p.close a{
  display: block;
  width: 20px;
  text-align: center;
}
.Bnr .Bnr__img p.close a span{
  display: block;
  width: 1px;
  height: 1px;
  overflow: hidden;
}
.Bnr .Bnr__img p.close a i{
  font-size: 20px;
  z-index: 999;
  color: #999;
  padding: 2px 4px;
  background-color: #fff;
}


/* lnav
------------------------------------- */
#lnav .list { min-width: 640px; }

@media all and (min-width: 600px) {  .img_box .logoimg { height: 40px; } }

.mod_img_box02_img{
	float: none;
}
@media all and (min-width: 600px) {  
	.mod_img_box02_img{
		float: left;
	}
	.img_box .logoimg {
        height: 170px;
    }
}

.point_ttl{
	margin: 5% 0 0;
    padding: 20px 0;
	color: #016cb1;
	background: #dcedf8;
	text-align: center;
}
.point_ttl-txt .point_ttl-bl{
	display: inline-block;
    font-size: 1.4rem;
    color: #0074bc;
    font-weight: bold;
    line-height: 1.5;
}
.point_ttl .point_ttl-wrap{
	max-width: 900px;
    margin: auto;
}
@media all and (min-width: 600px){
	.point_ttl .point_ttl-wrap{
		display: flex; 
		-webkit-box-pack: justify; 
		-ms-flex-pack: justify; 
		justify-content: space-between;
		align-items: center;
	}
	.point_ttl-wrap .img{
		flex: 0 1 32%;
		width: 32%;
		max-width: 32%;
	}
	.point_ttl-wrap .point_ttl-box{
		flex: 0 1 67%;
		width: 67%;
		max-width: 67%;
	}
	.point_ttl-txt .point_ttl-bl{
		font-size: 1.8rem;
	}
	.point_ttl-main{
		font-size: 1.4rem;
		color: #0074bc;
		font-weight: bold;

	}
}

@media all and (min-width: 600px) {  
	.point_ttl-main{
	font-size: 2rem;
} 
}
/*container
================================================== */

#container .mod_btn01_link{
	font-size: 1.1rem;
	text-align: center;
        line-height: 1.5;
}

#container .mod_btn01_link .mod_btn02_txt{
	font-size: 1rem;
}
@media all and (min-width: 600px){
	.mod_info01 .relation .btn{
		width:400px;
	}
	#container .pd20{
		padding: 22px 0;
	}
	#container .mod_btn01_link{
		margin-bottom: 10px;
		font-size: 1.4rem;
	}
	
	#container .mod_btn01_link .mod_btn02_txt {
		font-size: 1.2rem;
	}
}





/*  右バナー栞版
================================================== */

/* ふわふわ効果 */
.fluffy{
	width: 100%;
	animation: fluffy 4s ease infinite;
}

@keyframes fluffy{
  0%, 40%, 60%, 80% {
    transform: scale(1.0);
  }
  50%, 70% {
    transform: scale(0.95);
  }
}

/* フローティングバナーのラップ要素 */
#fixed_right_banner
{
    /* 右端の下からの位置に固定表示 */
    z-index: 5;
    position: fixed;
    bottom: 160px;
    right: 0;
}
 
/* 画像の共通設定 */
#fixed_right_banner > *{
    clear: both;
    float: right;
    width: 170px;/* 横幅 */
    margin-right: -130px;/* 最初にあらかじめ右側を詰めて表示 */
}
/* 画像の共通設定 */
#fixed_right_banner > *{
    /* アニメーション設定を追加。 */
    -webkit-transition: margin .2s ease;
    transition: margin .2s ease;
} 


/* 2個目以降の画像の上部に余白を作る */
#fixed_right_banner > * ~ * { margin-top: 20px; }

/* リンク要素 */
#fixed_right_banner > a{
    display: block;/* ブロック要素に変更 */
}
 
/* マウスオーバーで、詰めた右側のマージンをリセット。 */
#fixed_right_banner > *:hover{
    margin-right: 0;
}

/* 600px以下――――――――――――― */
@media (max-width: 600px){
    #fixed_right_banner img{width: 94%; height: auto; }
/* フローティングバナーのラップ要素 */
    #fixed_right_banner{
/* 右端の下からの位置に固定表示 */
    z-index: 5;
    position: fixed;
    bottom: 60px;
    right: -2px;
}

/* 2個目以降の画像の上部に余白を作る */
    #fixed_right_banner > * ~ * { margin-top: 20px; }

/* リンク要素 */
    #fixed_right_banner > a{
    display: block;/* ブロック要素に変更 */}
 
/* マウスオーバーで、詰めた右側のマージンをリセット。 */
    #fixed_right_banner > *:hover{
    margin-right: 0;}
}

/* 
<!--フローティングバナー-->
<div id="fixed_right_banner">
    <a href="/technical-material/dl/tm-210720.html" target="_blank" rel="noopener noreferrer"><img class="" src="/img/wisun/img_bn_dl_210720.png"></a>
    <a href="/iot/wisun/wsf-products/#wsnf_usb" target="_blank" rel="noopener noreferrer"><img class="" src="/img/wisun/img_bn_wsfusb.png"></a>
</div>

 */





.btn_midasi {font-weight:normal;  color:#aaa;}
.btn_ue {margin-top:10px; margin-bottom:-30px; text-align: center;}
.btn_left {margin-left:0;}

@media all and (min-width: 600px) { 
.btn_ue {margin-top:10px; margin-bottom:0; text-align: left;}
.btn_left {margin-left:10px;}
}


.copy { margin-bottom: 5px; font-size: 1.5rem; font-weight: 700; }
@media all and (min-width: 600px) { 
.copy { margin-bottom: 5px; font-size: 1.8rem; }  }




#info_sub{
	background: #e5f0f7;
    margin: 8% 0 0;
    padding: 40px 0;
}
#info_sub .mod_btn01_link.mod_btn01_download:after{
	border:none;
	right: 5px;
}
#info_sub .info_sub-ttl{
	margin-bottom: 20px;
	font-size: 1.8rem;
	color: #016cb1;
	text-align: center;
	font-weight: bold;
}
@media all and (min-width: 600px) { 
	
#info_sub .mod_btn01_link.mod_btn01_download:after{
	right: 20px;
} 

#info_sub .info_sub-ttl{
	font-size: 2.3rem;
}
	
}
.relation{
	background: #fff;
}
.movie{
	background: #fff;
}


