@charset "utf-8";
@import url(http://dev-grus.tokyo/css/mplus_webfonts.css);

/* CSS Document */
/*product*/


/*****
*
*index page
*
*****/

/* new css begin */

.flex-container {
	display: flex;
	display: -webkit-flex;
	-webkit-flex-wrap: wrap; /* safari */

	flex-wrap: wrap;
}

.flex-items {
	border-radius: 10px;
  	margin-right: 2%;
  	margin-bottom:5%;
  	text-align: center;
 	box-shadow: 0 1px 3px 0 rgba(88, 88, 88, 0.3);
}
.flex-items img {
	max-width: 100%;
 	height: auto;
  	border-radius: 10px;
}

@media ( min-width : 769px ){

  .flex-items {
    width: 30%;
    height: auto;

    position: relative;
    margin:1%;
  }
}

h2.productsIndexTitle {
	font-size: 1rem;
	height:1em;
	position: relative;
	padding: 0.5em;
	color: #000;
}

.blackBase .productsIndexTitle {
	color:#FFF;
}


.productsIndexContent {
	margin-top:2em;
	/*width:400px;*/
	
}



/* new css end */

.listWrap {	/*ul*/
	display:flex;
	display:-webkit-flex;
	-webkit-flex-wrap: wrap; /* Safari */
 	flex-wrap:         wrap;
	-webkit-justify-content:center;
	justify-content:center;
  -webkit-align-content: flex-start; /* Safari */
  align-content:         flex-start;
}


.productCounter {
	width:120px;
	height:120px;
	font-family: 'Lobster', cursive;
}




article:last-child .productList {
	background:none;
}

/************
販売終了バッチ
************/
.productsIndexContent {
	position: relative;
}

.salesEndedBadge {
	position: absolute;
	right: 14px;
	bottom: 14px;
	z-index: 2;
	display: flex;
	align-items: center;
	justify-content: center;
	width: 65px;
	height: 65px;
	border-radius: 50%;
	background: rgba(0, 0, 0, 0.78);
	color: #fff;
	border: 1px solid rgba(250, 250, 250, 0.9);
	font-size: 0.8rem;
	line-height: 1.2;
	letter-spacing: 0.06em;
	text-align: center;
	text-indent: 0;
	pointer-events: none;
	box-sizing: border-box;
}

.flex-items.isSalesEnded .productsIndexContent img {
	opacity: 0.8;
}

/* 以下 商品詳細ページ用 */

.detailImageBox {
	position: relative;
}

.salesEndedBadgeDetail {
	position: absolute;
	right: 16px;
	bottom: 16px;
	z-index: 2;
	display: flex;
	align-items: center;
	justify-content: center;
	width: 65px;
	height: 65px;
	border-radius: 50%;
	background: rgba(0, 0, 0, 0.78);
	color: #fff;
	border: 1px solid rgba(250, 250, 250, 0.9);
	font-size: 0.9rem;
	line-height: 1.2;
	letter-spacing: 0.06em;
	text-align: center;
	text-indent: 0;
	box-sizing: border-box;
	pointer-events: none;
}

.listLeft.isSalesEnded .detailImageBox img {
	opacity: 0.82;
}
/**************************/

/*****
*
*detail page
*
*****/

.detail {
	
	width:auto;
	max-width:1000px;
	margin:0 auto;
	padding:0 15px;
	
}

.detailHead {
	margin:30px auto 50px auto;
	padding:0 15px 0 15px;
	width:auto;
	max-width:1500px;
	height:100%;
	/*flex*/
	display:grid;
	grid-template-columns: 1fr 1fr;
	grid-gap: 20px;		
	align-items: center;
}
@media screen and (max-width: 768px) {
  .detailHead {
    grid-template-columns: 1fr;
  }
}

article.detail .listLeft {
	width:100%;
	max-width:500px;
	height:auto;
}


.detail .listRight {
	width:100%;

}
.detailHead .listLeft {
  display: grid;
  place-items: center;
}
.detail .listLeft img {
	position: relative;
    max-width: 100%;
	height: auto;
	max-height: 500px;
	width /***/:auto;
	display: block;
	margin:0 auto;
    -webkit-transform: translate(0,0);
    -ms-transform: translate(0,0);
    transform: translate(0,0);
    object-fit :contain;
}


h1.productTitle {	
	margin-bottom:10px;
	line-height: 1.2em;
}
.modelNumber{
	margin-left: 0.5rem;
}
@media screen and (max-width: 768px) {
	.modelNumber{
	margin-left: 0;
	display:block;
	}
}

.productCategory {
	display: inline-flex;
	align-items: center;
	margin: 0 0 1rem;
	padding: 0.45rem 0.7rem;
	border-radius: 5px;
	background: #006fbc;
	color: #fff;
	text-indent: 0;
	line-height: 1.2;
	letter-spacing: 0.03em;
}

.productCategoryLabel {
	font-size: 0.8rem;
	font-weight: 400;
	color: #fff;
}

.productCategoryValue {
	position: relative;
	margin-left: 0.7rem;
	padding-left: 0.7rem;
	font-size: 0.8rem;
	font-weight: 400;
	color: #fff;
}

.productCategoryValue::before {
	content: "";
	position: absolute;
	left: 0;
	top: 50%;
	transform: translateY(-50%);
	width: 1px;
	height: 1em;
	border-left: 1px dotted rgba(255, 255, 255, 0.9);
}

/*** tags ***/
.productTags {
	display: flex;
	flex-wrap: wrap;
	gap: 0.55rem;
	margin: 0 0 1.2rem;
	padding: 0;
	list-style: none;
}

.productTag {
	display: inline-flex;
	align-items: center;
	padding: 0.42rem 0.78rem;
	border: 1px solid #cfc8bb;
	border-radius: 0.4rem;
	background: #f3efe7;
	color: #5d5549;
	font-size: 0.88rem;
	font-weight: 400;
	line-height: 1.2;
	letter-spacing: 0.02em;
	text-indent: 0;
	white-space: nowrap;
}

/* 新製品 */
.productTag.is-new {
	background: #f8e12b;
	border-color: #d8bb59;
	color: #000;
}

/* 給付・候補品系 */
.productTag.is-support {
	background: #f8e12b;
	border-color: #d8bb59;
	color: #000;
}

@media screen and (max-width: 768px) {
	.productTags {
		gap: 0.45rem;
		margin-bottom: 1rem;
	}

	.productTag {
		font-size: 0.82rem;
		padding: 0.38rem 0.7rem;
	}
}
/*** tags ***/

.skip {
	text-align:right;
	margin-bottom:100px;
}
.skip a {
	padding:5px;
	border:1px solid #000;

}

.skip:link {
	
}
.skip:visited {
	
}
.skip:hover {

}
.skip:active {
	
}

.appealSec {
	width:auto;
	max-width:1000px;
	margin-bottom:20%;
}

.appealHead {
	width:auto;
	max-width:1000px;
	margin-bottom:50px;
	padding:0 20px;
	font-size:1.8em;
	text-align:center;
	line-height: 1.2em;

}

.appealTxt {
	width:auto;
	max-width:1000px;	
	line-height:1.6em;
	letter-spacing:0.1em;
	font-size:1.1em;
	margin-bottom: 50px;
}

/* intro */

.intro {
	/*height:100%;*/
	margin-bottom:100px;
	
}

.introFlex {
    display: -webkit-flex;
    display: flex;
    flex-wrap:wrap;
    flex-direction:row;
    justify-content: space-around;/* 3 */
    /*align-items: center;*/    /* 4 */
}

.introFlex image {
	width:auto;
	height:100%;
}

.introFlex .spec {
	display: flex;
}
.introFlex .spec div {
	width: 48%;
}
@media screen and (max-width: 768px){
	.introFlex .spec {
		display: block;
	}
	.introFlex .spec div {
		width: 100%;
	}
}



.introFlex .spec div:first-child {
	margin-right: 2%;
}

@media screen and (max-width:480px) {
	.introFlex {
		flex-direction:column;
	}
}

.introFlex .image {
	padding-bottom:10px;
}



@media screen and (max-width:480px) {
	.spec {
		max-width:100%;
		margin-right:auto;
	
	}
}


.introHead {
	width:auto;
	max-width:1000px;
	margin-bottom:50px;
	padding:0 20px;
	font-size:1.8em;
	text-align:center;
	color:#db0225;
}

.introSummary {
	margin-bottom:30px;
	line-height:2em;
	letter-spacing:0.1em;
}

.specHead {
	margin-bottom:10px;	
}

.spec dl {
	font-size:90%;
	width:100%;
	margin:0 auto 50px auto;
}

div.spec dl dt {
	float:left;
	width:100px;
	clear:both;
	margin-bottom:5px;
}

div.spec dl dd {
	width:auto;
	display:block;
	margin-left:100px;
	margin-bottom:10px;
	padding-left:10px;
	border-left:1px dotted #999;
}

.image {
	width:50%;
	text-align: center;
}

@media screen and (max-width:768px){
	.image{
		width:100%;
	}	
}

.introSec {
}
.swiper-container {
	max-height: 80vh;

	
}
.swiper-slide{
    /*display: flex;          /* 2 */
    /*justify-content: center;/* 3 */
    /*align-items: center;    /* 4 */
    position: relative;
}

.swiper-wrapper {
    align-items: center;    /* 4 */
}

.image img {
	/*width:auto;
	max-height:70vh;*/
	vertical-align:bottom;
	object-fit: fill;
/*
object-fit: fill;
object-fit: contain;
object-fit: cover;
object-fit: none;
object-fit: scale-down;
*/
}

.imagePosition img{
	width: auto;
	height: auto;
	max-width: 100%;
	max-height: 50%;
}	

.introFlex figcaption {
	position: absolute;
	margin-top:20px;
	right: 20px;
	bottom: 20px;
	
}


.extension {
	text-align:center;
	border:1px solid #ccc;
	margin:100px auto;
	padding:30px 0;
}

.extension a {

/*	display:block;*/
	margin:30px;
}

.productImage {
	height: auto;
    width: auto;
    max-width: 100%;
    max-height: 100%;	
}

/** spec mobile**/
@media screen and (max-width: 750px){
/*
div#content section.regularContent {
    display:block !important;
}

section.regularContent div {
	margin-left:0;		
}


div#content section.specialContent ol li {
	list-style:inside;
	list-style-type:decimal;
}
*/
}




/*Extention PHP Voice Watch*/

table.type02 {
	margin-top:50px;
	font-size:0.8em;
	border-collapse: separate;
	border-spacing: 0;
	text-align: left;
	line-height: 1.5;
	border-top: 1px solid #ccc;
	border-left: 1px solid #ccc;
}

table.type02 caption{
	font-size:1.2em;
}


table.type02 th {
	width: 150px;
	padding: 5px;
	font-weight: bold;
	vertical-align: top;
	border-right: 1px solid #ccc;
	border-bottom: 3px solid #0000ff;
	border-top: 1px solid #fff;
	border-left: 1px solid #fff;
	background: #f5f5f5;
	color:#000 !important;
}
table.type02 td {
	width: 350px;
	padding: 5px;
	vertical-align: top;
	border-right: 1px solid #ccc;
	border-bottom: 1px solid #ccc;
}

table.type03 {
	font-size:0.8em;
	line-height: 1.5;
	/*border-collapse: collapse;*/
	border-collapse: collapse;
	border-spacing:0;
	border-top:1px solid #ccc;
	border-left:1px solid #ccc;
	margin-bottom:50px;
}

html:not([lang*=""]) table.type03 {	/* Firefox */
	border-collapse: separate;
}

table.type03 caption {
	font-size:1.5em;
	text-align:left;
	padding:10px;
	border:1px solid #ccc;
	border-bottom:none;
	background-color:#f5f5f5;
	color:#000 !important;
}

table.type03 caption:before {
	content:"";
	border-left:3px solid #000;
	margin-right:10px;
	
}

table.type03 th, table.type03 td {
	padding:5px;
	border-collapse:collapse;
	border-right:1px solid #ccc;
	border-bottom:1px solid #ccc;
}

table.type03 th {
	width: 150px;
	padding: 5px;
	font-weight: bold;
	vertical-align: top;
	border-right: 1px solid #ccc;
	border-bottom: 2px solid rgba(177, 19, 47, 1);
	background: #f5f5f5;
	color:#000 !important;
}


/*
table.type03 th:first-child {
	-moz-border-radius: 6px 0 0 0;
	-webkit-border-radius: 6px 0 0 0;
	qborder-radius: 6px 0 0 0;
}

table.type03 th:last-child {
	-moz-border-radius: 0 6px 0 0;
	-webkit-border-radius: 0 6px 0 0;
	border-radius:0 6px 0 0 ;
}

table.bordered tr:hover {
	background:#fbf8e9;
	-o-transition:all 0.1s ease-in-out;
	-webkit-transition: all 0.1s ease-in-out;
	-moz-transition: all 0.1s ease-in-out;
	-ms-transition: all 0.1s ease-in-out;
	transition: all 0.1s ease-in-out;
}

table.bordered .highlight {
	background:#fbf8e9;
	-o-transition:all 0.1s ease-in-out;
	-webkit-transition: all 0.1s ease-in-out;
	-moz-transition: all 0.1s ease-in-out;
	-ms-transition: all 0.1s ease-in-out;
	transition: all 0.1s ease-in-out;
}

.zebra tbody tr:nth-child(even){
	background:#f5f5f5;
	-webkit-box-shadow:0 1px 0 rgba(255,255,255,.8) inset;
	-moz-box-shadow:0 1px 0 rgba(255,255,255,.8) inset;
	box-shadow: 0 1px 0 rgba(255,255,255,.8) inset;
}

.alternate {
	background:#f5f5f5;
	-webkit-box-shadow:0 1px 0 rgba(255,255,255,.8) inset;
	-moz-box-shadow:0 1px 0 rgba(255,255,255,.8) inset;
	box-shadow: 0 1px 0 rgba(255,255,255,.8) inset;
}
*/

.isee {
	background-color:#fff100;
	width:100%;
	margin:50px auto;
	padding:50px 0 100px;
	text-align:center;
}

.isee img {
	width:100%;
	max-width:100%;
	height:auto;
}

.isee p {
	margin-bottom:30px;
	
}


.oglExt {
	border:1px solid #ccc;
	margin-bottom:50px;
	padding:50px 5%;
}

.oglExt section {
	margin-bottom:50px;	
}

.oglExt h2 {
	border-bottom:1px solid #ccc;
	padding-bottom:10px;
	margin-bottom:1em;
}

.oglExt h3 {
	margin:30px 0 20px 1em;
	color:#64A5DD;
}


.oglExt h3::before {
	content: "";
	position: absolute;
	background: #64A5DD;
	height: 1.1em;
	width: 5px;
	left:-0.8em;
	border-radius: 10%;
}

.oglExt p + h3 {
	color:#64A5DD;
}

.oglExt p + h3::before {
	background:none;
	border:1px solid #64A5DD;
	border-radius:0;
	width:100%;
	height:2em;
	top:-0.5em;
}


.scroll a:hover{
	color:#66aaff;
	cursor:pointer;	
}

.scrollTarget i.fa {
	margin-left:5px;
}

.oglExt h4 {
	margin:30px 0 15px 1em;
	font-weight:bold;
}

.oglExt > div {
	margin-bottom: 30px;
}

.oglExt p {
	margin-bottom:5%;
}

.oglExt ol {
	margin-left:2.5em;	
}

.oglExt li {
	margin-bottom:1em;
	
}

.oglExt dt {
	margin:0 0 1em 1em;	
}

.oglExt dd {
	margin:0 0 2em 2em;
}

.oglExt audio {
	margin-left:1em;
}

.oglExt iframe {
	width: 100%;
	height: 400px;
}

@media screen and (max-width:768) {
	.oglExt iframe {
		height: 300px;
	}
}

.oglExt {
	height: auto;
}

.leafletDownload {
	background:URL("../images/common/voice_leaflet_background.png") 95% 25%/35% no-repeat;	
}

.environment {
	color:#696969;
}

.environment p {
	margin-bottom:1em;
}

.environment dl {
	font-size:0.9em;
	padding-left:1.5em;
}

.environment dd {
	margin-bottom:0.5em;
}

.environmentNote {
	margin-left:2em;
	text-indent:0;
	font-size:0.9em;
}

.voice {
	margin:20px;
}

.voice audio {
	vertical-align:middle;
}


.heatstroke img {
	width: 50%;
	height: 50%;
}

