@charset "UTF-8";
@import url('https://fonts.googleapis.com/icon?family=Material+Icons');
@import url('https://fonts.googleapis.com/css2?family=Noto+Sans+JP:wght@700&display=swap');
@import url('https://fonts.googleapis.com/css2?family=Noto+Serif+JP:wght@600&display=swap');
@import url('https://fonts.googleapis.com/css2?family=Roboto+Condensed:wght@700&display=swap');

body{
    text-rendering: optimizeLegibility;
    font-kerning: normal;               
    font-variant-ligatures: common-ligatures contextual;
    font-feature-settings: "kern", "liga", "clig", "calt";	
	font-family:'Meiryo','Hiragino Kaku Gothic Pro','Osaka',Arial,sans-serif;
	color: #000; margin: 0;}

a img {border: 0;}
a:hover { opacity: .7;}
ul,p { margin: 0; padding: 0;}
li { list-style: none;}
h1, h2, h3 { margin: 0;}
.clearfix::after {content: "";display: block; clear: both;}

/* header 
---------------------------------------------------*/
header {margin: 0 auto; width:100%;position:relative;}
header .inner {margin: 11px auto; width: 980px; overflow: hidden;}
header .inner .logo {float: left; margin:5px auto;}
header .inner .logo img{width:50px; margin-right:10px; vertical-align: middle;}
header .inner .logo span{vertical-align: middle; color: red; font-weight: bold;}
header .inner .mynavi img{
	position: relative; float: right; top:15px; right:0; 
	vertical-align: middle; 
	width:150px; padding-top:0.5%;}
header .inner a .info{
	position: relative; float: right; top:18px; right:10px;
	width:100px; vertical-align: middle; 
	font-size: 10px; text-align: center; 
	border: 1px solid red; padding: 3px;}	
header .inner a .info{color:red;text-decoration:none;cursor: pointer;}
header .inner a .info:hover{background-color: #ffd0d0;}
header .inner a .info:before {
	content:'sticky_note_2'; margin-right: 2px; margin-top:-2px;
	display: inline-flex; vertical-align: middle;
	font-family: "Material Icons";font-size:1.2em;}

	
/* introduce 
---------------------------------------------------*/
main {background:#fff;}
#introduce {
	height: 700px; color: #fff;
	background-image: url('../img/topimage.png?1244');
	background-size: cover; background-position: center center;
	background-color:red;}
#introduce > .title {
	width: 100%;text-align: center;margin-top:340px;}	
#introduce > .title > h1{
	font-family: 'Noto Serif JP', serif;
	font-size:3.5em; line-height:1.05em;
	font-weight: 100; margin: 0px auto 10px auto;}
#introduce > .title > p{
	font-family: 'Noto Serif JP', serif;
	font-size:1.0em; line-height:1.7em;
	font-weight: 100; margin: 0 auto;}	

.company {
  background: #fff;
  height: auto;
  padding: 10px;
}

.company .group-link-list {
  max-width: 850px;
  margin: 5px auto 0;
  display: flex;
  flex-wrap: wrap;           /* 折り返し許可 */
  justify-content: center;   /* 中央揃え */
  gap: 20px;                 /* ロゴ間の余白（調整可） */
  list-style: none;
  padding: 0;
}

.company .group-link-list li {
  text-align: center;
  flex: 0 0 auto;            /* 幅は画像に合わせる */
}

.company .group-link-list li img {
  width: auto;
  height: 40px;
  display: block;
  margin: 0 auto;
}

/* Evemts 
---------------------------------------------------*/
#event {margin-bottom:30px;}
#event > .title{
	height:80px; color: #000; 
	vertical-align: middle; margin-bottom:15px;
	background-image: url('../img/bg_event.jpg?1244');
	background-size: cover; background-position: center center;
	padding:50px; align-items: center;
    display: flex; justify-content: center;}
#event > .title > h2{
	font-family: 'Noto Serif JP', serif;
	font-size:1.5em; line-height:1.05em;
	border-radius: 10px;
	font-weight: 100; background:#fff;padding:10px;
	box-shadow: 0px 2px 10px #bfbfbf;}
#event .schedule{
	width:980px;  margin: 0 auto; column-count: 2; column-gap: 0;}
#event > .schedule .grid {
	width: 476px; -webkit-column-break-inside: avoid;
	page-break-inside: avoid;
	break-inside: avoid;}
#event > .schedule table{
	width: 100%; font-size:0.8em; line-height:1.4em; text-align:left;}
#event > .schedule td{
	padding:8px;background-color:#f2eedc; height:50px;}
#event > .schedule th:nth-of-type(1){
	width: 60px; text-align:center; background:red;color:#fff;}
#event > .schedule tr:nth-child(odd) td{background: #eee;}
#event > .schedule td:nth-of-type(1){text-align:right; width:115px;}
#event > .schedule th{font-size:18px; line-height:18px;}

.tb_t{
	font-size:1.2em;border-bottom: 2px solid red;
	font-family: 'Noto Serif JP', serif;
	font-weight: 100; line-height:1.05em;
	margin-bottom:5px;}
.red{color:red;display:inline;}
.date{
	font-size:3em; font-family: 'Roboto Condensed', sans-serif;
	display:inline-block;margin-top:5px;}
.plan{
	font-size:2.2em; font-family: 'Noto Sans JP', sans-serif;
	display:inline-block;margin-top:5px;}
.small{font-size:9px;}
.area{margin-top: 10px;}


.sun {
	color: #fff; background:#ff6c6c; margin-top:5px;
	height:18px; width:18px; vertical-align:15%;
	font-size:11px; text-align:center; line-height:18px;
	margin-left:5px; float:right;}
.sat {
	color: #fff; background:#59a4ff; margin-top:5px;
	height:18px; width:18px; vertical-align:15%;
	font-size:11px; text-align:center; line-height:18px;
	margin-left:5px; float:right;}
.day {
	color: #fff; background:#a0a0a0; margin-top:5px;
	height:18px; width:18px; vertical-align:15%;
	font-size:11px; text-align:center; line-height:18px;
	margin-left:5px; float:right;}
.space{margin-bottom:10px;}	

/* Service 
---------------------------------------------------*/
#service > .title{
	height:80px; color: #000;
	vertical-align: middle; margin-bottom:15px;
	background-image: url('../img/bg_group.jpg?1244');
	background-size: cover; background-position: center center;
	padding:50px; align-items: center;
    display: flex; justify-content: center;}
#service > .title > h2{
    border-radius: 10px;
	font-family: 'Noto Serif JP', serif;
	font-size:1.5em; line-height:1.05em;
	font-weight:bold; background:#fff;padding:10px;
	box-shadow: 0px 2px 10px #bfbfbf;}
	
#service .box-wrap {
	width: 980px;
	display: flex;
	flex-direction: row;
  	gap: 10px;
  	margin: 0 auto;
	}	
#service .box {
	flex: 1;
	width: 100%; height: 460px; zoom: 1;
	background:#fff; border: 2px solid red; 
	position: relative;
	text-align: center;
	box-sizing: border-box;}
#service .box > div.co_title .tag{
	font-size: 0.7em;
	background:red;color:#fff; padding:3px 8px;}
#service .box > div.co_title .tag:before {
	content:'work'; margin-right: 4px; margin-top:-2px;
	display: inline-flex;vertical-align: middle;
	font-family: "Material Icons"; font-size:1.2em;} 
#service .box > div.co_title{
	height:80px; color: red;
	flex-direction: column;
	background:#fff; padding:10px; align-items: center;
    display: flex; justify-content: center;}
#service .box > div.co_title h3{
	font-family: 'Noto Serif JP', serif; font-size: 1.1em;}   
#service .box .line {border-bottom: 1px dashed red;}    
#service .box > div.co_cap {
	font-size: 0.8em; text-align:left; padding: 15px;}
#service .box > div.co_cap img{
	float: left; width:100%; margin-bottom: 10px;} 
#service .box > div.co_cap a .btn{
	right:5px; bottom: 10px;
	position:absolute; cursor: pointer; text-align: center;
	white-space: nowrap; width:80px;
	font-size: 0.9em; margin-right:5px; margin-top:50px;
	background:#fff;color:red;padding:3px 8px;
	border: 1px solid red;}
#service .box > div.co_cap a .btn:hover{background-color: #ffd0d0;}	
#service .box > div.co_cap a .btn:active{transform: translateY(4px);}
#service .box > div.co_cap a .btn:before {
	content:'east'; margin-right: 4px; margin-top:-2px;
	display: inline-flex;vertical-align: middle;
	font-family: "Material Icons";font-size:1.2em;}

/* Entry
---------------------------------------------------*/
.entry{text-align:center;margin: 20px 0px;}
.entry a .btn {
    font-weight: 700;
	margin:0px auto 20px auto; cursor: pointer;  text-decoration: none;
	width:300px; border: 1px solid red; color: red; background:#fff; 
	box-shadow: 0px 3px 0px red; padding:15px 20px;}
.entry a .btn:hover{background-color: #ffd0d0;}	
.entry a .btn:active{transform: translateY(4px); box-shadow: 0px 2px 0px red;}
.entry a .btn:before {
	content:'sticky_note_2'; margin-right: 2px; margin-top:-2px;
	display: inline-flex;vertical-align: middle;
	font-family: "Material Icons";font-size:1.2em;}
.entry a{color:red;text-decoration:none;cursor: pointer;}

/* Footer 
---------------------------------------------------*/
footer {text-align: center; font-size:11px;}
footer p {padding: 10px 0px 20px 0px;}

/* Responsive 
---------------------------------------------------*/
@media screen and (min-width: 980px){
	
	/* header */
	#introduce > .title {position:absolute;top:110px;}	
			
	/* pre entry */
	#introduce p .btn{font-size: 12px; padding:10px 15px;}
	.company {margin-left: -15px;}
	.space_sp{margin-bottom:0px;}
	.br-pc {display:block;}
	.br-sp {display:none;}
	
}
@media screen and (max-width: 980px) {
	body{ margin: 0;}
	.space_sp{margin-bottom:10px;}
	.br-pc {display:none;}
	.br-sp {display:block;}
	
	/* header */
	header .inner {margin: 11px auto; width: 95%; overflow: hidden;}
	header .inner .logo {margin:5px auto;}
	header .inner .logo img{width:35px; margin-right:10px; vertical-align: middle;}
	header .inner .logo span{font-size:0.7em; vertical-align: middle; color: red;}
	header .inner .mynavi img{width:120px;}
	
	/* pre entry */
	#introduce {
		height:560px;
		background-image: url('../img/topimage_sp.png?1244');
		background-size: cover; background-position: center center;}	
	#introduce > .title {position:absolute;top:20px;}	
	#introduce > .title > h1{
		font-size:2.2em; line-height:1.1em;
		font-weight: 100; margin: 0px auto 10px auto;}
	#introduce > .title > p{	
		font-size:0.6em; line-height:1.8em;
		margin: 0 auto;}	

	.company .group-link-list {
		max-width: 850px;
		margin: 5px auto 0;
		display: flex;              /* flexboxで横並び */
		justify-content: center;    /* 中央揃え */
		list-style: none;           /* 必要なら */
		padding: 0;
	}
	.company .group-link-list li {
		text-align: center;
		flex: 0 0 auto;             /* 幅はコンテンツに合わせる */
		margin: 0 15px;             /* ロゴ同士の間隔（好みで調整） */
	}
	.company .group-link-list li img {
		width: auto;
		height: 30px;
		display: block;             /* 中央寄せしやすく */
		margin: 0 auto;
	}
	
	/* Event */
	#event > .title{height:20px;font-size:0.8em;}
	#event .schedule {width: auto; column-count: 1;}
	#event .schedule > table{width:auto;}
	#event > .schedule .grid {
		float: none !important; zoom: 1;
		margin: 0 auto; 
		min-height: inherit; width: 92%;}
			
	/* Service */
	#service .box-wrap {width: 93%;}	
	#service > .title{height:20px;font-size:0.8em;}
	#service .box {
		float: none !important; zoom: 1; margin: 0 auto 10px;
		width: 95%; height: 460px; min-height: inherit;}	
	#service .box > div.co_title{
		height:80px; color: red;
		flex-direction: column;
		background:#fff; padding:10px; align-items: center;
	    display: flex; justify-content: center;}
	#service .box > div.co_cap img{
		float: left; width:100%; margin-right:10px;} 
	
	
	/* Entry */
	.entry .btn {
	font-size:95%; width:60%; padding:15px 20px;}
		
	/* Footer */
	footer p {
		font-size: 75%;
		margin: 0 auto;
		padding: 10px 0px 30px 0px;
		width: 88%;
	}
}
@media screen and (max-width: 620px) {
	body{ margin: 0;}
	.space_sp{margin-bottom:10px;}
	.br-pc {display:none;}
	.br-sp {display:block;}
	
	/* header */
	header .inner {margin: 11px auto; width: 95%; overflow: hidden;}
	header .inner .logo {margin:5px auto;}
	header .inner .logo img{width:35px; margin-right:10px; vertical-align: middle;}
	header .inner .logo span{font-size:0.7em; vertical-align: middle; color: red;}
	header .inner .mynavi img{width:120px;}
	
	/* pre entry */
	#introduce {
		height:560px;
		background-image: url('../img/topimage_sp.png?1244');
		background-size: cover; background-position: center center;}	
	#introduce > .title {position:absolute;top:20px;}	
	#introduce > .title > h1{
		font-size:2.2em; line-height:1.1em;
		font-weight: 100; margin: 0px auto 10px auto;}
	#introduce > .title > p{	
		font-size:0.6em; line-height:1.8em;
		margin: 0 auto;}	

	.company .group-link-list {
		justify-content: center;
		gap: 15px;               /* スマホでは少し狭めに（好みで調整） */
	}
	.company .group-link-list li {
		flex: 0 0 45%;           /* 上段2つを横並び（45%で隙間確保） */
	}
	.company .group-link-list li:nth-child(3) {
		flex: 0 0 100%;          /* 3つ目はフル幅 → 中央に1つだけ */
		margin-top: 10px;        /* 上段との間隔（任意） */
	}
	/* Event */
	#event > .title{height:20px;font-size:0.8em;}
	#event .schedule {width: auto; column-count: 1;}
	#event .schedule > table{width:auto;}
	#event > .schedule .grid {
		float: none !important; zoom: 1;
		margin: 0 auto; 
		min-height: inherit; width: 92%;}
			
	/* Service */
	#service .box-wrap {flex-direction: column; gap: 5px;}	
	#service > .title{height:20px;font-size:0.8em;}
	#service .box {width: auto; flex: 1;}
	#service .box > li {
		margin: 0 auto 10px;
		width: 91%; height: 260px; min-height: inherit;}	
	#service .box > div.co_title{
		height:50px; display: flex;
		flex-direction: column; align-items: center;}
	#service .box > div.co_cap {
		font-size: 0.8em; text-align:left; padding: 15px; margin-bottom:20px;}
	#service .box > div.co_cap img{
		float: left; width:145px; margin-right:10px; margin-bottom:20px;} 
	#service .box > div.co_cap a .btn{
		display: inline-block;　clear: both;
		overflow: auto;}
	
	/* Entry */
	.entry .btn {
	font-size:95%; width:60%; padding:15px 20px;}
		
	/* Footer */
	footer p {
		font-size: 75%;
		margin: 0 auto;
		padding: 10px 0px 30px 0px;
		width: 88%;
	}
}

