@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;
}

.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; }

/* 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
?????????????????????????????????????????????????? */
.button,
button,
input[type="submit"],
input[type="reset"],
input[type="button"] {
	background-color: #bbb;
	color: #fff;
}
.button-primary {
	border: 1px solid #999;
	border-radius: 11px;
	cursor: pointer;
	font-size: 16px;
	padding: 3px 10px;
	height:38px;
}
.button-secondary {
	border: 1px solid #999;
	border-radius: 11px;
	cursor: pointer;
	font-size: 16px;
	padding: 3px 10px;
/*	width:80px; */
	height:38px;
}
.button-primary:hover, .button-secondary:hover {
	opacity: 0.5 ;
}

.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;
}


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

.site-header{
	display: flex;
	padding: 10px 0px;
	position: absolute;
	width: 100%;
	z-index: 99;
	border-bottom: 2px solid #ff8400;
	position: fixed;
	top: 0;
	background: #fff;
}
.site-header.fixed{
	position: fixed;
	top: 0;
}
.site-header .inner {
	width: 1200px;
	margin: 0 auto;
	display: flex;
	justify-content: space-between;
	align-items: center;
}
h1.site-logo { font-size: 1rem; margin: 0;}
span.h1-msg {
	font-size: 15px;
}
.site-logo img{
	width: auto;
}
.gnav__menu{
	display: flex;
}
.gnav__menu__item{
	margin-left: 20px;
	padding: 2px 20px;
}
.gnav__menu__item a{
	color: #fff;
	text-decoration: none;
}


/*スマホ用メニュー*/
.btn {
	background:transparent url(images/sp_btn.png) no-repeat 0 0;
	display: block;
	width:44px;
	height: 44px;
	position: absolute;
	right:0px;
	cursor: pointer;
	z-index: 200;
}
.peke {
	background-position: -44px 0;
}
.drawr {
	display: none;
	background-color:#fff;
	position: absolute;
	top: 0px;
	right:0;
	width:300px;
	padding:60px 0 20px 20px;
	z-index: 100;
	text-align: left;
}
.drawr a {
	color:#888;
	display: block;
	padding: 10px;
	font-size: 16px;
	font-weight: bold;
}
#menu li {
	width:300px;
	list-style:none;
}
/*
#menu li a {
	color:#888;
	display: block;
	padding: 10px;
	font-size: 16px;
	font-weight: bold;
}
*/
#menu li li {
	padding-left: 1em;
}


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


/* Content
?????????????????????????????????????????????????? */
.content{
	line-height: 1.6;
	margin: 100px  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;
    padding-top: 1em;
}
.content h1 span.uline {
	display: inline-block;
	border-bottom: 4px solid #ff8400;	
	position: relative;
	bottom: -4px;		
	padding: 0 2em 0 0.5em;
}

.content h2 {
	border-bottom: 4px solid #eee;	
}

.content h2 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;
}
.info-area {
	float: left;
	width: 30%;
	margin-left: 5%;
}
.company-name {
	font-size: 130%;
}
.map-area {
	float: right;
	width: 40%;
	margin-right: 5%;
	border: #aaa solid 1px;
}
.gmap {
	height: 0;
	overflow: hidden;
	padding-bottom: 56.25%;
	position: relative;
}
.gmap iframe {
	position: absolute;
	left: 0;
	top: 0;
	height: 100%;
	width: 100%;
}


/* 
 * テーブル枠あり
 */
table.table-border  {
	border-collapse: collapse;
	border-top: 1px solid #cccccc;
}
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;
}
.flex-box dl dt {
  width: 25%;
  font-weight: bold;
}
.flex-box dl dd {
  width: 75%;
  line-height: 1.3em;
  margin-bottom: 0.8em;
}




p.link-area {
	text-align: right;
	margin-top: 0.5em;
}
.link-area:before {
	font-family: "Font Awesome 5 Free";
 	font-weight: 900;
	content: "\f0a9 ";
	color: #000e78;
}
.link-area a { padding-left: 0.3em;}

/* 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;
}
.sub ul, .sideMenu li {
	margin: 0;
	padding: 0;
	border: none;
	font-style: normal;
	font-weight: normal;
	font-size: 100%;
	list-style-type: none;
	text-align: left;
}
.sub ul li {
	width: 90%;
	border-bottom: #CCCCCC 1px solid;
}

.sub ul li a {
	display: block;
	background: #fff;
	line-height: 120%;
	padding: 8px 0 8px 20px;
	color: #333333;
	text-decoration: none;
}

.sub ul li a:link,
.sub ul li a:visited,
.sub ul li a:active {
	color: #333333;
	text-decoration: none;
}

/* トップページ */
.topImg {
    position: relative;
    margin-top: 80px;
    margin-bottom: min(10vw, 50px);
}
.topImg img {
    -o-object-fit: cover;
    object-fit: cover;
    -o-object-position: 30% center;
    object-position: 30% center;
    width: 100%;
    height: min(50vw, 900px);
}
.topImg h1 {
    width: 1120px;
    margin: 0 auto;
    max-width: calc(100% - 20px);
}
.topImg h1 span {
    display: block;
    position: absolute;
    text-indent: 100%;
    overflow: hidden;
    white-space: nowrap;
}

#concept { margin: 20px;}
#concept h2 {
	border: none;
	text-align: center;
}
#photos { margin-top: 30px; }
.photo { 
	text-align: center; 
	margin-top: 20px;
}

.banners { display: flex; justify-content: space-around;}
.banner img { width: 100%;}

[class^="matsuno"]{ 
	display: inline-block; 
	width: 6em; 
	text-align:center; 
	color: #fff; 
	margin-right: 5px;
	font-size: 80%;
	font-weight: bold;
	padding: 2px;
}
.matsuno1 {  background: red; }
.matsuno2 {  background: #0174E8; }

.topics-link { 
	display: flex; 
	justify-content: space-between;
}
/*--------------------------------------------------*/
/*media Queries
----------------------------------------------------*/
@media only screen and (max-width : 425px) {		/* スマホ */
	.sp_br::after {
	 content:"\A";
	 white-space:pre;
	}
	h1 { font-size: 1.5rem; }
	.content { margin-top: 70px; }
	img { width: 100%; }
	ul.gnav { display:none; }
	span.mob-br:after {
		content: "\A" ;
		white-space: pre ;
	}
	.pc-contents { display: none; }
	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;
	}

	.site-logo img { width: 80%; }

	.topImg { margin-top: 67px;}

	.banners { display: block; }
	.banner { margin-bottom: 20px;}

	.contact_box {
		display: flex;
		justify-content: space-around;
		padding-bottom : 20px;
	}
	.photo {pointer-events: none;}
	.topics-link { 
		display: block; 
	}
	.next-link { text-align: right; }
}
@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%;
	}

	/*========= ナビゲーションドロップダウンのためのCSS ===============*/

	.gnav {
		display: flex;
		height: 2rem;
		margin: 0 auto;
	}
	.gnav > li {/*親階層のみ幅を25%にする*/
		margin: 0 0 0 1em;
	}
	/*全てのリスト・リンク共通*/
	.gnav li {
		list-style: none;
		position: relative;
/*		width: 25%; */
		height: 2rem;
		line-height: 2rem;
		text-align: center;
	}
	.gnav li a {
		display: block;
/*
		height: 2rem;
		line-height: 2rem;
		text-align: center;
*/
		text-decoration: none;
		width: 100%;
	}
	/*子階層以降共通*/
	.gnav li li {
		height: 0;
		overflow: hidden;
		transition: .5s;
		background: #fff;
		padding: 0 1em;
		position: relative;
		top: 100%;
		width: 300%;

	}
	.gnav li li a {
		border-top: 1px solid #eee;
		text-align: left;
	}
	.gnav li:hover > ul > li {
		height: 2rem;
		overflow: visible;
	}
	footer {
		margin-top: 60px;
/*		min-height: 110px;*/
	}

	.large_slide .slick-slide img { width: 100%; }

	.sub { width: 30%; float: left; }
	.main { width: 70%; float: right; margin-bottom: 50px; }
	.main img { width: 100%; }
	.main p { margin-top: 0.5em;}

	#top_desc {
		width: 80%;
		margin: 0 auto;
		font-size: 120%;
	}

	#topics { clear: both; padding-top: 50px; }
	.photo { width: 32%; float: left; margin-right: 2%; }
	.photo:nth-child(3n) { margin-right: 0;}
	.photo img { width: 100%; }

	/* 活動内容 */
	.katsudo_photos { margin-top: 30px; display: flex; justify-content: space-between;}
	.thum2 { width: 49.5%;}
	.thum3 { width: 32.5%;}

}

@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 (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;
	}
}
