@charset "UTF-8";

*{
	box-sizing: border-box; 
	margin: 0;
	padding: 0;
}
body{
	font-family:"ヒラギノ角ゴ Pro W3", "Hiragino Kaku Gothic Pro", "メイリオ", Meiryo, Osaka, "ＭＳ Ｐゴシック", "MS PGothic", "sans-serif";
	font-size: 14px;
}

/* テスト環境 */
/*h1 { color: red; } */
/* テスト環境 */

.clear { clear: both; }
.clearfix::after {
	content:".";
	height:0;
	visibility:hidden;
	display:block;
	clear:both;
	line-height:0; 
}
.br::before {
	content: "\A" ;
	white-space: pre ;
}
.flex-box {
	display: flex;
	justify-content: space-evenly;
	align-content: flex-start;

}

.print_only { display: none; }

/*　AuthPageStyle
?????????????????????????????????????????????????? */
body#auth{
	margin-top:15px;
	margin-right: 10%;
	margin-left: 10%;
	font-size: 14px;	
}
body#auth form { width:100%;}
body#auth #login_form{
	width:500px;	
	margin:25px auto;
    border: 1px solid #ccc;
    border-radius: 10px;
    box-shadow: 0 0px 7px #aaa;
    font-weight: normal;
    padding: 16px 16px 20px;
	color:#666;
	line-height:1.3;
	font-size:90%;
}
body#auth form .input {
    font-size: 20px;
    margin:2px 6px 10px 0;
    padding: 3px;
    width: 97%;
}
body#auth input[type="text"], body#auth input[type="password"], body#auth input[type="file"], body#auth input[type="button"], body#auth input[type="submit"], body#auth input[type="reset"] {
/*    background-color: #FFFFFF;*/
    border: 1px solid #999;
}

body#auth input[type="submit"], body#auth input[type="button"] {
    color: #fff;
    border: none;
    margin-top: 1em;
    color: #fff;
    background-color: #aaa;
    border-radius: 11px;
    cursor: pointer;
    font-size: 16px;
    padding: 3px 10px;
    height:38px;
}

body#auth [class^="button-"]:hover {
    opacity: 0.5 ;
}

body#auth #login_form .long {
	width: 350px;
}


/* Typography
?????????????????????????????????????????????????? */
h1, h2, h3, h4, h5, h6 {
	margin-top: 1em;
	margin-bottom: 1em;
	font-weight: 300; 
}
h1 { font-size: 2.0rem; line-height: 1.2;  letter-spacing: -.1rem;}
h2 { font-size: 1.5rem; line-height: 1.25; letter-spacing: -.1rem; }
h3 { font-size: 1.2rem; line-height: 1.3;  letter-spacing: -.1rem; }
h4 { font-size: 1.0rem; line-height: 1.35; letter-spacing: -.08rem; }

/* Links
?????????????????????????????????????????????????? */
a { color: initial; }
.font-white, .font-white a { color: #fff; }

/* Buttons
?????????????????????????????????????????????????? */
.order_form .button-primary {
    color: #fff;
    background-color: #0069d9;
    border-color: #0062cc;
    border-radius: 11px;
    cursor: pointer;
    font-size: 16px;
    padding: 3px 10px;
	width:350px;
	height:38px;
}

.order_form .button-secondary {
    color: #fff;
    background-color: #5a6268;
    border-color: #545b62;
    border-radius: 11px;
    cursor: pointer;
    font-size: 16px;
    padding: 3px 10px;
	width:350px;
	height:38px;
}
.order_form .button-info {
    color: #fff;
    background-color: #138496;
    border-color: #117a8b;
    border-radius: 11px;
    cursor: pointer;
    font-size: 16px;
    padding: 3px 10px;
	width:350px;
	height:38px;
}
.order_form .button-danger {
    display: inline-block;
    color: #fff;
    background-color: #dc3545;
    border-color: #bd2130;
    border-radius: 11px;
    cursor: pointer;
    font-size: 16px;
    padding: 3px 10px;
	width:350px;
	height:38px;
    line-height: 38px;              /* 垂直方向の中央揃え */
    text-align: center;             /* 横方向の中央揃え */
    text-decoration: none;          /* 下線を消す */

}
/* ホバー時（マウスが乗ったとき） */
.order_form .button-danger:hover {
    opacity: 1 ;
}

body#auth .button-area { display: flex; justify-content: space-around; }
body#auth .button-half { width: 40%; }

.coupon_check input[type="submit"] {
    color: #000;
    background-color: #fff;
    border-color: #bbb;
    cursor: pointer;
    font-size: 16px;
    padding: 3px 10px;
	height:38px;
}

.search_container{
	box-sizing: border-box;
	position: relative;
	border: 1px solid #999;
	display: block;
/*	padding: 3px 10px; */
/*	border-radius: 20px; */
/*	height: 2.3em; */
	width: 260px;
	overflow: hidden;
}
.search_container input[type="text"]{
	border: none;
	height: 2.0em;
}
.search_container input[type="text"]:focus {
	outline: 0;
}
.search_container input[type="submit"]{
	cursor: pointer;
	font-family: FontAwesome;
	font-size: 1.3em;
	border: none;
	background: none;
	color: #3879D9;
	position: absolute;
	width: 2.5em;
	height: 2.5em;
	right: 0;
	top: -10px;
	outline : none;
}


/* Forms
?????????????????????????????????????????????????? */
input[type="email"],
input[type="number"],
input[type="search"],
input[type="text"],
input[type="tel"],
input[type="url"],
input[type="password"],
textarea,
select {
	background-color: #FFFFFF;
	border: 1px solid #999;
	font-size: 16px;
	padding: 3px 10px;
	margin-right: 5px;
	height: 2em;
}

.required { font-size: 80%; color: red; }

/* エラーチェック */
/* デフォルトでは非表示 */
.error {  display: none; }
/* 隣接セレクタで
 * input:invalidの隣の
 * エラーメッセージは表示する
 */
input:invalid + .error {
  font-size: 0.9em;
  display: block;
  color: red;
}

/* Header
?????????????????????????????????????????????????? */



/* Footer
?????????????????????????????????????????????????? */
footer {
	padding: 10px;
}
.copyright{
	background: #555;
	color: #fff;
	font-size: 12px;
	text-align: center;
}


/* Content
?????????????????????????????????????????????????? */
.content{
	line-height: 1.6;
	margin: 0px  auto 0;
	max-width: 100%;
	padding-left: 10px;
	padding-right: 10px;
}

.content p{
	margin-bottom: 1em;
}
.content .inner {
	max-width: 1200px;
	margin: 0 auto;
}
.content h1 {
	border-bottom: 4px solid #eee;	
}

.content h1 span.uline {
	display: inline-block;
	border-bottom: 4px solid #ff8400;	
	position: relative;
	bottom: -4px;		
	padding: 0 2em 0 0.5em;
}

.content-footer{
	max-width: 1200px;
	margin: 80px auto 10px;
}

.result-box {
	margin: 20px 0;
}

.order_form {
/*	width: 50%; 	20251208 */
	width: 60%;
	float: left;
}

.order_aside {
/*	width: 50%; 	20251208 */
	width: 40%;
	float: right;
}

.table-wrap { margin-bottom: 20px;}
.table-wrap td { padding: 0 5px 5px 5px; }

/* 
 * テーブル枠あり
 */
table.table-border  {
	border-collapse: collapse;
	border-top: 1px solid #cccccc;
	font-size: inherit;
}
table.table-border {
	width: 100%;
}
table.table-border tr {
	border-left: 1px solid #cccccc;
}
table.table-border th {
	background-color: #f3f3f3;
	border-bottom: 1px solid #cccccc;
	border-right: 1px solid #cccccc;
	padding: 8px 8px 8px 8px;
	text-align: center;
	white-space: nowrap;
}
table.table-border td {
	border-bottom: 1px solid #cccccc;
	border-right: 1px solid #cccccc;
	padding: 8px 8px 8px 8px;
	text-align: left;
}
table.table-border th.left1 {
	background-color: #fff;
	border-bottom: 1px solid #cccccc;
	border-right: 1px solid #cccccc;
	padding: 8px 8px 8px 8px;
	text-align: center;
/*	white-space: nowrap;*/
	font-weight: normal;
}
tr.blank-row {
	border-left: none;
	border-right: none;
	border-left-color: #fff;
}
tr.blank-row td {
	border: none;
}
/* 
 * dl 横並び
 */

.flex-box dl {
  display: flex;
  flex-wrap: wrap;
  width: 100%;
}
.flex-box dl dt {
  width: 25%;
  font-weight: bold;
}
.flex-box dl dd {
  width: 75%;
  line-height: 1.3em;
  margin-bottom: 0.8em;
}


/* pages */
h1.contentTitle {
	clear: both;
	margin-bottom: 20px;
	padding: 20px 20px;	/*上下、左右への余白*/
	font-size: 24px;	/*文字サイズ*/
	color: #fff;		/*文字色*/
	background: #000e78;	/*背景色*/
}
h1.contentTitle::first-letter {
	border-left: 5px solid #fff;	/*左の線の幅、線種、色*/
	padding-left: 15px;				/*線とテキストとの余白*/
}


.main h2 { margin-top: 0; }
/*
.main h2 {
padding: 20px 0;
	padding-left: 10px;
	font-size: 112.5%;
	font-weight: normal;
	background: #aaa;
	color: #fff;
	border-bottom: none;
	box-shadow: none;
}
.main h2::before {
	padding-left: 20px;
	border-left: 7px solid #fff;
	content: "";
}
.main h2:first-child {
	margin-top: 0px;
}
*/
.main h3 {
	margin-top: 40px;
	border-bottom: 2px solid #000e78;
	color: #000e78;
	padding-left: 0.5em;
}
.main h3:first-child {
	margin-top: 0px;
}


/*--------------------------------------------------*/
/*media Queries
----------------------------------------------------*/
@media only screen and (max-width : 425px) {		/* スマホ */
	.pc-contents { display: none; }
	img { width: 100%; }
	ul.gnav { display:none; }
	span.mob-br:after {
		content: "\A" ;
		white-space: pre ;
	}
	table { width: 100%; }
	/* スマホでのみtableをdl風にする（枠なし） */
	table.dl-style { width: 100%; border: none;}
	.dl-style tbody tr{
		display: block;
		margin-bottom: 1.5em;
	}
	table.dl-style tbody th{
		width: 100%;
		display: list-item;
		list-style-type: none;
		margin-bottom: 5px;
		padding: 0;
		font-weight: bold;
		border: none;
		text-align: left;
		white-space: nowrap;
	}
	table.dl-style tbody td{
		display: list-item;
		list-style-type: none;
		border: none;
		padding: 0;
	}

	/* テーブルの縦横を入れ替える */
	table.product-table {
		border : 1px solid;
		-ms-writing-mode : tb-lr;
		writing-mode : vertical-lr;
	}
	table.product-table th {
		border : 1px solid;
		line-height : 1;
		height : 1em;
	}
	table.product-table td {
		border : 1px solid;
		line-height : 1;
		height : 1em;
	}
	table.product-table td, table.product-table th{
		-ms-writing-mode : lr-tb;
		writing-mode : horizontal-tb;
		white-space : nowrap;
	}

	.contact_box {
		display: flex;
		justify-content: space-around;
		padding-bottom : 20px;
	}
	.order_form { width: 100%;}
}
@media only screen and (min-width : 425px) {		/*  */
	.mob-contents { display: none; }
	.btn { display:none; }
	.site-header{
		padding: 10px 20px;
	}
	a:hover { opacity: 0.5 ; }

	.content{
		padding-left: 5%;
		padding-right: 5%;
	}

	footer {
		margin-top: 60px;
/*		min-height: 110px;*/
	}


}

@media only screen and (min-width : 670px) {	/*670px*/
	.footer-name {
		width: 45%;
		float: left;
	}
	.area {
		display:none;
		width: 55%;
		float: right;
	}
	.footer-box { display: none; }
	.inner_footer {
		margin: 0 20px;
	}

}
@media only screen and (max-width: 900px) {	/*900px*/
/*	.pc-contents { display: none; } */
}

@media only screen and (min-width: 900px) {	/*900px*/
}
@media only screen and (min-width: 1210px) {	/*1210px*/
	.inner_footer {
		width: 1200px;
		margin: 0 auto;
/*		display: inline-block;*/
	}

}

@media print {
  *,
  *::before,
  *::after {
	text-shadow: none !important;
	box-shadow: none !important;
  }
  a:not(.btn) {
	text-decoration: underline;
  }
  abbr[title]::after {
	content: " (" attr(title) ")";
  }
  pre {
	white-space: pre-wrap !important;
  }
  pre,
  blockquote {
	border: 1px solid #adb5bd;
	page-break-inside: avoid;
  }
  thead {
	display: table-header-group;
  }
  tr,
  img {
	page-break-inside: avoid;
  }
  p,
  h2,
  h3 {
	orphans: 3;
	widows: 3;
  }
  h2,
  h3 {
	page-break-after: avoid;
  }
/*
  @page {
	size: a3;
  }
*/
  body {
	min-width: 992px !important;
  }
  .container {
	min-width: 992px !important;
  }
  .navbar {
	display: none;
  }
  .badge {
	border: 1px solid #000;
  }
  .table {
	border-collapse: collapse !important;
  }
  .table td,
  .table th {
	background-color: #fff !important;
  }
  .table-bordered th,
  .table-bordered td {
	border: 1px solid #dee2e6 !important;
  }
  .table-dark {
	color: inherit;
  }
  .table-dark th,
  .table-dark td,
  .table-dark thead th,
  .table-dark tbody + tbody {
	border-color: #dee2e6;
  }
  .table .thead-dark th {
	color: inherit;
	border-color: #dee2e6;
  }
	nav, .btn, .sub, .mob-contents, .link-area { display: none; }
	.site-header {
		position: inherit;
		border: none;
	}
	.content {
		 margin: 10px 0;
	}
	footer { background: none; color: #333; border-top: 1px dotted #333; }
	.no-print { display: none; }
	.print_only { display: block; margin:60px 0; }
	.print_only ul.slides { 
		display: flex;
		flex-wrap: wrap;
		justify-content: space-between;
		align-content: flex-start;
		gap: 20px;
	}
	.print_only ul.slides li { width: 49%; }
	.print_only ul.slides li img  { width: 100%; }
	.product {
	    display: flex;
	    justify-content: space-between;
	    align-content: flex-start;
	}
}

