@charset "UTF-8";

/*======================================================================
  Reset CSS for HTML5
======================================================================*/
html, body, div, span, object, iframe,
h1, h2, h3, h4, h5, h6, p, blockquote, pre,
abbr, address, cite, code,
del, dfn, em, img, ins, kbd, q, samp,
small, strong, sub, sup, var,
b, i,
dl, dt, dd, ol, ul, li,
fieldset, form, label, legend,
table, caption, tbody, tfoot, thead, tr, th, td,
article, aside, canvas, details, figcaption, figure,
footer, header, main, menu, nav, section, summary,
time, mark, audio, video {
	margin:0;
	padding:0;
	border:0;
	outline:0;
	font-size:100%;
	vertical-align:baseline;
	background:transparent;
}
ul {
	list-style:none;
}
blockquote, q {
	quotes:none;
}
blockquote:before, blockquote:after,
q:before, q:after {
	content:'';
	content:none;
}
a {
	margin:0;
	padding:0;
	font-size:100%;
	vertical-align:baseline;
	background:transparent;
}
img {
	vertical-align: bottom;
	max-width: 100%;
	height: auto;
}

/*change colours to suit your needs*/
ins {
	background-color:#ff9;
	color:#000;
	text-decoration:none;
}
mark {
	background-color:#ff9;
	color:#000;
	font-style:italic;
	font-weight:bold;
}
del {
	text-decoration: line-through;
}
abbr[title], dfn[title] {
	border-bottom:1px dotted;
	cursor:help;
}
table {
	border-collapse:collapse;
	border-spacing:0;
}
hr {
	display:block;
	height:1px;
	border:0;
	border-top:1px solid #cccccc;
	margin:1em 0;
	padding:0;
}
input, select {
	vertical-align:middle;
}


/*======================================================================
  BASIC
======================================================================*/
html,body {
	height: 100%;
}
body {
	background: url(./images/bg_ptn.jpg);
	line-height: 1.5;
	font-family:Avenir , "Open Sans" , "Helvetica Neue" , Helvetica , Arial , Verdana , Roboto , "游ゴシック" , "Yu Gothic" , "游ゴシック体" , "YuGothic" , "ヒラギノ角ゴ Pro W3" , "Hiragino Kaku Gothic Pro" , "Meiryo UI" , "メイリオ" , Meiryo , "ＭＳ Ｐゴシック" , "MS PGothic" , sans-serif;	font-size: 14px;
	color: #000;
	-webkit-font-smoothing: antialiased;
}
*,
*:before,
*:after {
  -webkit-box-sizing: border-box;
  box-sizing: border-box;
}

h2, h2 a, h2 span { font-weight: bold; font-size: 20px;}
h3, h3 a, h4, h4 a, h4 span, h5, h5 a, h5 span { font-weight: bold;}

p { line-height: 1.8;}

a { text-decoration: none; color: #040000;}
a:hover { text-decoration: underline;}

/* mouseover - opacity */
body a:hover,
body a img:hover {
	-ms-filter: "progid:DXImageTransform.Microsoft.Alpha(Opacity=70)";
	filter: alpha(opacity=70);
	opacity: 0.7;
}


/*======================================================================
  FORMAT
======================================================================*/
/* block class */
.contents {
	width: 94%;
	max-width: 960px;
	padding-top:20px;
	margin: 0 auto;
}
.main { width: 690px;}
.side { width: 240px;}

.boxWrap {
	width: 94%;
	max-width: 960px;
	margin: 0 auto;
}
.textshadow {
	text-shadow: 0 0 5px #333;
	filter: glow(color=#333333,strength=5px);
}
.boxshadow {
	box-shadow: 0px 1px 3px #333;
	filter: progid:DXImageTransform.Microsoft.Shadow(color=#333, Direction=180, Strength=1);
}

/* clearFix */
.contents:after,
.clearfix:after { content: ""; clear: both; display: block;}

/* float */
.fl { float: left;}
.fr { float: right;}


/*======================================================================
  HEADER
======================================================================*/
.ghead {
	background: #fff;
}
/* inner */
.breadcrumb {
	width: 94%;
	max-width: 960px;
	margin: 0 auto;
}
.ghead_box{
	width:94%;
	max-width: 960px;
	margin-inline: auto;
	background:#FFF;
}

/* h1 */
.ghead .h1 {padding:15px 0 40px;}

.ghead h1 {
	text-align:center;
	font-weight:normal;
	color:#8898a1;
}

p.ghead_logo {
	text-align: center;
}

.gheadRecommend{ padding-bottom:10px;}

/* header - global navi */
.ghead .gnav{ padding:20px 0 30px;}

.ghead .gnav ul {
	display: flex;
	align-items: center;
}
.ghead .gnav li {
	text-align: center;
	border-left:1px solid #CCC;
	padding:5px 15px;
}
.ghead .gnav li:first-child {
	border-left:0;
	padding-left: 0;
}
.ghead .gnav li:last-child {
	padding-right: 0;
}


.ghead .gnav a {
	font-weight:bold;
	display: block;
	line-height:15px;
	padding-left:28px;
	letter-spacing: -1.7px;
	background:url(./images/gnav_icon2.png) no-repeat left center;
}
.ghead .gnav a:hover {
	background:url(./images/gnav_icon1.png) no-repeat left center;
}
#sp-gnav {
    display: none; /* ハンバーガーメニュー用のグロナビを非表示にする */
}
.mv {
	width: 100%;
	height: 270px;
}
.mv img {
	width: 100%;
	height: 100%;
	object-fit: cover;
	object-position: 50% 24%;
}


/* breadcrumb */
.breadcrumb ul {
	padding: 1em 0;
}
.breadcrumb ul li {
	display: inline;
	margin-left: 5px;
}
.breadcrumb ul li:first-child {
	margin-left: 0;
}
.breadcrumb ul li a {
}
.breadcrumb ul li a span {
	font-weight: bold;
}



/*======================================================================
  MAIN
======================================================================*/
.recommend {margin-top:40px;}
/* recommend */
.recommend h4{
	text-align:center;
	font-size:22px;
	margin-bottom:20px;
}
.recommendPost div {
	height:155px;
}
.recommendPost div img {
	width: 100%;
    height: 100%;
    object-fit: cover;
}
.recommendPost li{
	background:#FFF;
	margin-bottom:20px;
	padding:30px 30px 20px 20px;
	position: relative;
}
.recommendPost li::after {
  position: absolute;
  left: 12px;
  top: 4px;
  font-size: 14px;
  font-weight: bold;
  color: #fff;
  z-index: 2;
}
.recommendPost li:first-child::after {
  content: "1";
}
.recommendPost li:nth-child(2)::after {
  content: "2";
}
.recommendPost li:nth-child(3)::after {
  content: "3";
}

.recommendPost li::before {
  content: "";
  position: absolute;
  left: 0;
  top: 0;
  width: 0;
  height: 0;
  border-style: solid;
  border-width: 25px; /* 三角形のサイズ */
  border-color: #333 transparent transparent #333; /* 三角形の色 */
  z-index: 1;
}

.recommendPost li h4{
	text-align:left;
	font-size:16px;
	margin-bottom:0;
	padding-left: 10px;
}
.recommendPost li a{
	color: #333;
}

.recommendPost li p{margin-top:20px;}
/*======================================================================
  SIDE
======================================================================*/
.sideCategory{ margin-bottom:20px;}

.sideCategory h2{
	background:#FFF;
	font-size:20px;
	font-weight:normal;
	text-align:center;
	margin-bottom: 1px;
	padding: 10px;
}
.sideCategory ul {
	display: block grid;
	grid-template-columns: repeat(auto-fill, minmax(min(119px, 100%), 1fr));
    flex-wrap: wrap;
	gap: 0 1px;
}
@media (max-width: 510px){
	.sideCategory ul {
		grid-template-columns: 1fr;
	}
}
.sideCategory li{
	background:url(./images/bg_ptn.png) #CCC;
	border-bottom:1px solid #CCC;
	padding:15px 8px;
	margin-bottom:1px;
	text-align:center;
	letter-spacing: -2px;
}

.sideRecommend {
	margin-bottom: 20px;
}
.sideRecommend h3{
	background:#000;
	color:#FFF;
	padding: 10px;
	font-size:20px;
	font-weight:normal;
	text-align:center;
	margin-bottom: 1px;
}

.recommend_box li{background:#FFF; margin-bottom:1px;}

.recommend_box li div{
	height:75px;
	margin-bottom:10px;
}
.recommend_box li div img {
	width: 100%;
    height: 100%;
    object-fit: cover;
}
.recommend_box li p{padding:0 10px 10px;}
.recommend_box li a {
	font-weight: bold;
	font-size: 16px;
}

/* side-link */
#sideBook {
	margin-bottom: 20px;
}
#sideBook h3 {
	border-bottom: 1px solid #fff;
}
#sideBook dl {
	background: #fff;
}
#sideBook dt {
	padding: 10px;
}
#sideBook p {
	padding: 0 10px;
}
#sideBook a {
	color: #0000ff;
	font-weight: bold;
}
#sideBook dl dd a:has(img) {
	display: block;
    text-align: center;
    padding: 10px;
}

/*======================================================================
  FOOTER
======================================================================*/
.gfoot {
	padding:5px 0 20px;
	margin-top:20px;
	background:url(./images/footer_bg.jpg);
	color:#FFF;
}
.gfoot .fnav{
	width: 94%;
	max-width:960px;
	margin:0 auto;
	margin-bottom:30px;
}
.gfoot li{ width:100%; clear:both; padding-top:20px;}
.gfoot li a{
	display: flex;
	align-items: center;
	gap: 2px;
	color:#FFF;
	font-weight:bold;
}
.gfoot li a:before {
	font-family: 'Material Symbols Outlined';
	content: "label";
	font-weight: normal;
    font-size: 16px;
	
}

/* footer - signature */
.signature {
	width: 94%;
	max-width:960px;
	margin:0 auto;
}

/*======================================================================
  INDEX
======================================================================*/
/* index - summary */
.indexSummary{
	background:#ffff00;
	padding:30px 25px 40px;
	margin-bottom:30px;
}

.indexSummary h2 {
	text-align:center;
	font-size:24px;
	color:#20baee;
	margin-bottom: 20px;
}

/* index - post */
.main .indexContents .clearfix {
	display: flex;
	flex-wrap: wrap;
	gap: 30px;
}
.main .indexContents .clearfix:after {
	content: none;
}
.indexPost_l{
	background:url(./images/index_bg.jpg) no-repeat center;
	background-size:cover;
	width:310px;
	flex-grow: 1;
	padding:20px 10px 15px;
	color:#FFF;
}
.indexPost_l h3{ font-size:20px; text-align:center; margin-bottom:10px; }

.indexPost_l div{
	height: 200px;
	margin-bottom:15px;
}
.indexPost_l div a {
	display: block;
	width: 100%;
    height: 100%;
}
.indexPost_l div img {
	width: 100%;
    height: 100%;
    object-fit: cover;
}
.indexPost_l p { margin-bottom:10px;}
.indexPost_l p.title_area {text-align:center;}
.indexPost_l p.title_area a{ color:#FFF; font-size:16px; font-weight:bold;}

.indexPost_r {width:330px;flex-grow: 1;}
.indexPost_r h3{ color:#f39800; font-size:24px; text-align:center; margin-bottom:20px;}
.indexPost_r li{
	background:#FFF;
	padding:15px;
	margin-top:10px;
}
.indexPost_r li {font-weight: bold;}
.indexPost_r li:first-child{margin-top:0;}

/*======================================================================
  CATEGORY
======================================================================*/

/* category - post head */

.categoryPostHead {margin-bottom:35px;}

.categoryPostHead h2{text-align:center;margin-bottom: 20px;}

.categoryPostHead h2 span{
	display: flex;
	align-items: center;
	gap: 5px;
	font-size:24px;
}
.categoryPostHead h2 span:before {
	content: "\f193";
    font-family: "Font Awesome 6 Free";
    font: var(--fa-font-solid);
}
.flex_wrapper {
	display: flex;
	flex-wrap: wrap;
	gap: 20px;
}
.flex_wrapper p{
	width:400px;
	flex-grow: 1;
}
.flex_wrapper div{
	width: 250px;
	height: 155px;
	flex-grow: 1;
}
.flex_wrapper img {
	width: 100%;
    height: 100%;
    object-fit: cover;
}

/* category - post */
.categoryPost li {margin-top:20px;}
.categoryPost li:first-child {margin-top:0;}

.categoryPost .title_area{
	background:#FFF;
	display: flex;
	justify-content: space-between;
	flex-wrap: wrap;
}
.categoryPost .title_area.clearfix::after {
	content: none;
}
.categoryPost .title_area h3{
	font-size:16px;
	width:524px;
	flex-grow: 1;
	padding:15px 10px;
}

.categoryPost .title_area p {
	text-align:center;
	width:100px;
	flex-grow: 1;
	padding:15px 10px;
	background:#ffff00;
	font-weight:bold;
	height: 100%;
	display: grid;
    place-content: center;
	max-width: 100px;
	margin-left: auto;
}

.categoryPost .title_area h3 a,
.categoryPost .title_area p a{ color:#000; }

.categoryPost li .categoryPost_img{
	position: relative;
	overflow: hidden;
	margin:0 auto;
}

.categoryPost li .categoryPost_img img {
	width: 100%;
    height: 100%;
    object-fit: cover;
	position: absolute;
}
.categoryPost li .categoryPost_img:after{
	position: absolute;
	top:0;
	left: 0;
	display: block;
	inset: 0;
	content: "";
	background: url(images/category_cover.png);
	z-index:10;
}
.categoryPost li .categoryPost_img p{
	padding:15px;
	z-index:100;
	position:relative;
	font-weight: bold;
}

/*======================================================================
  DETAIL
======================================================================*/
/* detail - post head */
.detailPostHead h2{
	font-size:26px;
	margin-bottom:20px;
	color:#333;
}
.detailPostHead p{ width:330px; float:left; }
.detailPostHead p.time{ width:100%; float:none; text-align:right; color:#666; font-weight:bold; margin-bottom:10px;}

.detailPost a {
	color: #f39800;
	font-weight: bold;
}
.detailPost dl dt a {
	color: #0000ff;
	font-weight: bold;
}
.wsbl_twitter {
  width: 80px !important;
}
/* detail - post */

.detailPost h3{
	background:url(./images/detail_line.png) no-repeat bottom center;
	font-size:18px;
	margin:30px 0 15px;
	padding-bottom:18px;
}

/* blockquote */
.detailPost blockquote {
	padding: 20px 30px;
	margin-bottom: 24px;
	background: #EEE;
	border:1px solid #CCC;
	position: relative;
}
.detailPost blockquote:after,
.detailPost blockquote:before {
	color: #a2a4b4;
	font-size: 40px;
	position: absolute;
}
.detailPost blockquote:before {
	top: 0;
	left: 10px;
	content: '\201C';
}
.detailPost blockquote:after {
	bottom: 0;
	right: 10px;
	content: '\201D';
}
/* タブレット */
@media screen and (max-width: 999px) {
	.main {
    	width: 67%;
	}
	.side {
		width: 30%;
	}
	.categoryPost .title_area h3 {
		max-inline-size: fit-content;
        margin-inline: auto;
	}
	
	/* ハンバーガーメニュー*/
	.gnav {
		display: none; /* PC用のグロナビを非表示にする */
		}

	#sp-gnav {
		display: block; /* ハンバーガーメニュー用のグロナビを表示する */
		padding-block: 15px; /* ハンバーガーの三本線が端っこに寄りすぎているので余白入れる */
		position: relative;
	}

	/*チェックボックス等は非表示に*/
	.nav-unshown {
		display:none;
	}

	/*アイコンのスペース*/
	#nav-open {
		display: inline-block;
		width: 30px;
		height: 22px;
		vertical-align: middle;
	}

	/*ハンバーガーアイコンをCSSだけで表現*/
	#nav-open span, #nav-open span:before, #nav-open span:after {
		position: absolute;
		height: 3px;/*線の太さ*/
		width: 25px;/*長さ*/
		border-radius: 3px;
		background: #000;
		display: block;
		content: '';
		cursor: pointer;
	}
	#nav-open span:before {
		bottom: -8px;
	}
	#nav-open span:after {
		bottom: -16px;
	}

	/*閉じる用の薄黒カバー*/
	#nav-close {
		display: none;/*はじめは隠しておく*/
		position: fixed;
		z-index: 99;
		top: 0;/*全体に広がるように*/
		left: 0;
		width: 100%;
		height: 100%;
		background: black;
		opacity: 0;
		transition: .3s ease-in-out;
	}

	/*中身*/
	#nav-content {
		overflow: auto;
		position: fixed;
		top: 0;
		left: 0;
		z-index: 9999;/*最前面に*/
		width: 90%;/*右側に隙間を作る（閉じるカバーを表示）*/
		max-width: 400px;/*最大幅（調整してください）*/
		height: 100%;
		background: #fff;/*背景色*/
		transition: .3s ease-in-out;/*滑らかに表示*/
		-webkit-transform: translateX(-105%);
		transform: translateX(-105%);/*左に隠しておく*/
	}

	#nav-content ul {
		margin-top: 30px;
	}
	#nav-content li {
		padding: 10px 3%;
	}
	#nav-content li a{
		font-weight: bold;
        display: block;
		padding-left: 28px;
		background: url(./images/gnav_icon2.png) no-repeat left center;
	}
	#nav-content li a:hover {
	  background: url(./images/gnav_icon1.png) no-repeat left center;
	}

	/*チェックが入ったらもろもろ表示*/
	#nav-input:checked ~ #nav-close {
		display: block;/*カバーを表示*/
		opacity: .5;
	}

	#nav-input:checked ~ #nav-content {
		-webkit-transform: translateX(0%);
		transform: translateX(0%);/*中身を表示（右へスライド）*/
		box-shadow: 6px 0 25px rgba(0,0,0,.15);
	}
	
}
/* スマートフォン */
@media screen and (max-width: 559px) {
	.main { 
		width: 100%;
	}
	.side {
		width: 100%;
		margin-top: 50px;
	}
	.fl { 
		float: none;
	}
	.fr {
		float: none;
	}
	.ghead .h1 {
		padding: 10px 0 20px;
	}
	.indexSummary {
		padding: 15px 10px;
	}
	.indexSummary h2 {
		font-size: 20px;
		margin-bottom: 10px;
	}
	.recommendPost li {
		padding: 15px 10px;
	}
	.recommend_box li div {
		height: 90px;
	}
	.recommendPost li p {
	  margin-top: 12px;
	}
	.categoryPostHead h2,.detailPostHead h2,.recommend h4 {
		margin-bottom: 10px;
		max-inline-size: fit-content;
        margin-inline: auto;
	}
	.categoryPostHead h2 span,.detailPostHead h2,.recommend h4 {
		font-size: 20px;
	}
	.categoryPost li .categoryPost_img p {
		padding: 15px 10px;
		text-align: justify;
	}
	.detailPost h3 {
		padding-bottom: 10px;
		text-align: center;
	}
	.detailPostHead p.time {
		text-align: center;
		margin-bottom: 0;
	}
	.gfoot ul {
		max-inline-size: fit-content;
        margin-inline: auto;
	}
	.signature {
		text-align: center;
	}

}
@media (max-width:400px) {
	.categoryPost .title_area p {
		padding: 8px 10px;
	}
	.categoryPost .title_area p {
		max-width: unset;
		width: 100%;
	}
}


/*コンタクトフォーム*/
/*一行テキスト&氏名の最大幅の解除*/
div.wpforms-container-full .wpforms-form .wpforms-field-row.wpforms-field-medium,
 div.wpforms-container-full .wpforms-form input.wpforms-field-medium {
	max-width: inherit !important;
}


/*テキストエリアの高さを変更*/
div.wpforms-container-full .wpforms-form textarea.wpforms-field-medium {
	height: 200px !important;
}
/*フォーム上にマージンが必要であれば追加*/
div.wpforms-container-full {
	margin-top: 24px !important;
}

/*送信ボタン装飾*/
div.wpforms-container-full .wpforms-form button[type="submit"] {
	background: #000! important;
	color: #fff! important;
	font-weight: bold;
}
/*送信ボタン装飾オンマウス*/
div.wpforms-container-full .wpforms-form button[type="submit"]:hover {
	background: #000 !important;
	color: #fff !important;
	text-decoration: underline;
	opacity: 0.7;
}
div.wpforms-container-full .wpforms-form .wpforms-submit-container {
  text-align: center;
}