/*
Theme Name: GeneratePress Child
Description: Child theme for GeneratePress
Template: generatepress
Version: 1.0
*/

/* 親テーマのスタイルを読み込み */
@import url("../generatepress/style.css");

/* ここにカスタムCSSを追加 */

html { background-color: #222;}

/* ==========================================
	 font
	 基本：100% = 1em = 1rem = 16px = 12pt
=========================================== */
html { font-size: 62.5%; } /* sets the base font to 10px */
p,li,dt,dd {
	margin-bottom:0.4em;
	font-size: 1.6rem;
	line-height: 1.5;
/*
	font-feature-settings: "pkna";
	font-feature-settings: "pwid"; 
	font-feature-settings: "palt";
	text-align: justify;
	letter-spacing: .06em;*/
}
h2,h3 { margin: 1.62em auto .65em;}
h4,h5,h6 { margin: 1em auto .35em;}

h1 { font-size: 3.5rem;}
h2 { font-size: 2.5rem;}
h3 { font-size: 2rem;}
h4 { font-size: 1.9rem;}
h5 { font-size: 1.7rem;}


h2:first-letter,
h3:first-letter,
h4:first-letter,
h5:first-letter,
p:first-letter {
	font-feature-settings: "palt";
}

.has-small-font-size {
	font-size: .85em !important;
	line-height: 1.5;
}
.has-medium-font-size {font-size: 1em !important;}


/* Google Fontsの読み込み */
@import url('https://fonts.googleapis.com/css2?family=Asul:wght@400;700&family=Oswald:wght@200..700&display=swap');

/* ヘッドライン用 */
h1, h2, h3, h4, h5, h6 {
    font-family: "Outfit", sans-serif;
    font-weight: 500; /* Medium */
}



/* ==========================================
	 リンク
=========================================== */
a {text-decoration: none !important;}
a:link {color: #000;}
a:visited {color: #000;}
a:hover {color: #ae7428;}
a:active {color: #000; filter: brightness( 104% ) contrast( 106% ) ;	}

a,a:hover,
a img,a:hover img { transition: 0.25s;}
a img { vertical-align: middle;}
a:hover img {
	filter: alpha(opacity=75);
	opacity:0.75;
}

/* ==========================================
	 画像
=========================================== */
.wp-block-image img {
  box-sizing: border-box;
  width: 100%;
  height: auto;
  max-width: 100%;
  vertical-align: middle;
}
.wp-block-image figcaption {
  margin: 0;
}

/* ==========================================
	 汎用クラス
=========================================== */
.left { text-align: left !important;}
.right { text-align: right !important;}
.center { text-align: center !important;}
.noborder { border: 0 !important;}
.nomar { margin: 0 !important;}

.mt10 {margin-top: 10px !important;}
.mt20 {margin-top: 20px !important;}
.mt30 {margin-top: 30px !important;}
.mt40 {margin-top: 40px !important;}
.mt50 {margin-top: 50px !important;}
.mt60 {margin-top: 60px !important;}
.mt70 {margin-top: 70px !important;}
.mt80 {margin-top: 80px !important;}
.mt90 {margin-top: 90px !important;}

.mb10 {margin-bottom: 10px !important;}
.mb20 {margin-bottom: 20px !important;}
.mb30 {margin-bottom: 30px !important;}
.mb40 {margin-bottom: 40px !important;}
.mb50 {margin-bottom: 50px !important;}
.mb60 {margin-bottom: 60px !important;}
.mb70 {margin-bottom: 70px !important;}
.mb80 {margin-bottom: 80px !important;}
.mb90 {margin-bottom: 90px !important;}


/* ==========================================
	 ボタン設定
=========================================== */
.btn-footerarea { margin: 3em auto 2em;}
.btn { text-align: center;}
.btn a {
	display: inline-block;
	padding: .45em 1.15em;
	color: #fff;
/* 	font-weight: 600; */
	background-color: #71532d;	
}
.btn a:hover { background-color: #ae7428;}


.wp-block-buttons { margin: 3em auto 2em;}
.wp-block-buttons .wp-block-button .wp-block-button__link {
	padding: .45em 1.15em;
/* 	font-weight: 600; */
	background-color: #71532d;	
}

.page-contact .wpcf7-submit {
	display: inline-block;
	margin: auto;
	padding: .45em 2.15em;
	background-color: #71532d;	
}
.page-contact form p:nth-last-child(2) {
	margin-top: 1.2em;
	text-align: center;
}
.page-contact .wpcf7-submit:hover {
	background-color: #ae7428;
}


/* ==========================================
	 管理者権限ログイン時
=========================================== */
.logged_in.fixed {
	position: fixed;
	bottom: 2vmin;
	right:  2vmin;
}
.logged_in.fixed a {
	color: #ae7428;
}


/* ==========================================
	 トップページ
=========================================== */

/* 構造
------------------------------------------- */
.grid-container {
	padding-top: 1em;
	max-width: 1320px;
}
#content.site-content {
	margin: 0 auto !important;
	width: 92%;
}
.site-content {	display: block;}

.main-content,
.separate-containers .site-main {
	margin: 0;
	background-color: #fff;
}
.home .main-content { background: none;}

.site-content .content-area { width: 100%;}
.main-content article {
	margin: 0 auto;
	padding: 4vmin;
	width: 92%;
	background-color: #fff;
}
section .section-title {
	margin: 0 auto .95em;
	padding: .2em;
	font-size: 2.5rem;
	line-height: 1;
	text-align: center;
}

/* footer
------------------------------------------- */
footer.site-info {
	margin-top: 10vh;
	padding: 5vmin 2em 1vh;
	color: #aaa;
}
footer.site-info h5 {
		
	font-weight: 600;
}
footer.site-info address {
	margin: 0 auto .2em;
	font-style: normal;
}
footer.site-info .copyright {
	letter-spacing: 0.1em;
}

/* メニュー
------------------------------------------- */
.main-navigation .main-nav ul li a {
	font-family: "Outfit", sans-serif;
	font-weight: 400;
}

/* スライダーエリア
------------------------------------------- */
.home-slider {
    margin-top: 0px;
    margin-bottom: 0px;
}
.ms-theme-cubic { padding-bottom: 0px !important;}

/* メンバー一覧
------------------------------------------- */
section.members {
	margin: 3em auto 4em;
	width: 100%;
}
.members-grid {
	display: flex;
	flex-wrap: wrap;
	gap: 2em;
	justify-content: center;
}

.member-item {
	flex: 0 1 67%;
	text-align: center;
	transition: transform 0.3s ease;
}
.member-link {
	display: block;
	text-decoration: none;
	color: inherit;
}
.member-image {
	margin-bottom: 1em;
	overflow: hidden;
	border-radius: 8px;
	box-shadow: 0 2px 12px rgba(0,0,0,0.1);
}

.member-image img {
	width: 100%;
	height: auto;
	display: block;
	transition: transform 0.3s ease;
}
.member-item:hover .member-image img { transform: scale(1.05);}
.member-info { padding: 0 1em;}

.member-name {
	margin: 0 0 0.15em;
	color: #333;
	font-size: 1.8rem;
/* 	font-weight: bold; */
}

.member-name-en {
	margin: 0;
	color: #777;
	font-size: 1.4rem;
}

/* ニュースエリア
------------------------------------------- */
section.home-news {
  margin-top: 0px;
  padding: .55em .55em 50px;
  background-color: #fff;
}
section.home-news .section-title {
	margin: 0 auto .7em;
	padding: .2em;
	font-size: 2.25rem;
	line-height: 1;
	text-align: center;
}
section.home-news .news-archive { margin-bottom: 40px;}
.main-content article.news-item {
	flex-grow: 1;
	padding: 0;
	width: 100%;
	background: none;
	border: none;
	transition: box-shadow 0.3s ease;
}

article.news-item:hover { box-shadow: 0 4px 16px rgba(0,0,0,0.15);}
article.news-item:last-child { border-bottom: none;}

/* リンク設定 */
article.news-item a.news_url {
	position: relative;
	display: block;
	padding:1em .75em;
	background-color: #fff;
	border-bottom: 1px solid #ddd;
	z-index: 1;
}
article.news-item:last-child a.news_url { border: none;}
article.news-item a.news_url:hover {
  color: #71532d;
	background-color: #ddd;
}

/* 記事画像 */
.news-item .entry-image { display: none;}
.news-item .entry-image img {
    width: 100px !important;
    height: 100px !important;
    max-width: 100px !important;
    max-height: 100px !important;
    object-fit: cover;
    transition: transform 0.3s ease;
}
.news-item:hover .entry-image img { transform: scale(1.05);}

/* 記事コンテンツ */
.news-item .entry-content {
    display: block;
    margin:0 !important;
}

/* 記事メタ情報（投稿日時・カテゴリー） */
.news-item .entry-meta { 
	margin:0.35em auto;
	display: flex;
	align-items: center;
	gap: 1em;
}

.news-item .posted-on {/* 投稿日時 */
	color: #666;
	font-size: 1.2rem;
	font-weight: bold;
}
.news-item .category-tags {/* カテゴリー */
	display: flex;
	flex-wrap: wrap;
	gap: .4em;
}
.news-item .category-tags span {/* カテゴリータグ */
	padding: 0.23em 0.48em;
	color: #fff;
	font-size: 1.15rem;
	font-weight: bold;
	background: #71532d;
}
.news-item .entry-title {/* 記事タイトル */
	margin: 0 auto .3em;
	font-size: 1.75rem;
	line-height: 1.4;
}

/* ページタイトルのサブカテゴリー */
.entry-header .entry-title .sub-category {
    font-size: 0.5em;
    color: #333;
    margin-left: 0.5em;
    font-weight: normal;
}

/* 記事サマリー */
.news-item .entry-summary { margin: 0 !important;}
.news-item .entry-summary p {
  margin: 0;
	color: #333;
	font-size: 1.4rem;
	line-height: 1.45;
}





/* サイドバー
------------------------------------------- */
.is-right-sidebar { 
	margin-top: 5vh;
	width: 100% !important;
	text-align: center;
}
.widget-area .widget {
  margin: 0 auto 1em !important;
  padding: 0 ;
  max-width: 500px;
  background: none !important;
}


/* ==========================================
	 ニュースカテゴリー一覧
=========================================== */

.category .main-content .inner-content .entry-header h1.entry-title {
	margin: auto;
	width: 93.5%;
}
.category-description {
    margin-top: 1em;
    color: #666;
    font-size: 1.4rem;
}

/* カテゴリーサブメニュー
------------------------------------------- */
nav.category-submenu {
	margin: 1.5em 0 .5em;
	padding: 1em 0;
}
ul.submenu-list {
    display: flex;
    flex-wrap: wrap;
    gap: 0.5em;
    list-style: none;
    margin: 0;
    padding: 0;
		justify-content: center;
}
li.submenu-item a {
    display: inline-block;
    padding: 0.2em .8em;
    color: #111;
    font-size: 1.45rem;
    background: #f8f8f8;
    text-decoration: none;
    transition: all 0.3s ease;
}
.submenu-item a:hover {
    background: #e7e5e1;
    box-shadow: 0 4px 8px rgba(0,0,0,0.1);
}
.submenu-item.current a {
    background: #71532d;
    color: #fff;
}
.submenu-item .post-count {
    font-size: 0.9em;
    opacity: 0.8;
    margin-left: 0.3em;
}

/* ニュース記事アイテム
	----------------------------- */
.main-content .news-archive {
  width: 100%;
  display: flex;
  flex-direction: column;
}


/* ページネーション */
.pagination {text-align: center;}
.nav-links {
    display: inline-flex !important;
    gap: 0.3em !important;
    margin: 3em auto 0;
    padding: 0.8em !important;
/*     box-shadow: 0 2px 10px rgba(0,0,0,0.1) !important; */
    text-align: center;
/*
    background: #f8f8f8 !important;
    border-radius: 50px !important;
*/
}

.page-numbers {
    padding: 0.8em 1.2em !important;
    border: none !important;
    text-decoration: none !important;
    color: #666 !important;
    transition: all 0.3s ease !important;
    border-radius: 25px !important;
    font-weight: bold !important;
    font-size: 1.1rem !important;
    min-width: 2.5em !important;
    text-align: center !important;
    position: relative !important;
    overflow: hidden !important;
}

.page-numbers::before {
    content: '';
    position: absolute;
    top: 0;
    left: -100%;
    width: 100%;
    height: 100%;
    background: linear-gradient(90deg, transparent, rgba(255,255,255,0.3), transparent);
    transition: left 0.5s ease;
}

.page-numbers:hover::before {
    left: 100%;
}

.page-numbers:hover {
    background: #71532d !important;
    color: #fff !important;
    transform: translateY(-2px) !important;
    box-shadow: 0 4px 12px rgba(113, 83, 45, 0.3) !important;
}

.page-numbers.current {
    background: #71532d !important;
    color: #fff !important;
    box-shadow: 0 2px 8px rgba(113, 83, 45, 0.4) !important;
}

.page-numbers.next,
.page-numbers.prev {
    font-weight: bold !important;
    padding: 0.8em 1.5em !important;
}

/* 記事が見つからない場合 */
.no-posts {
    text-align: center;
    padding: 3em 0;
    color: #666;
}

.main-content .spacer {
	width: 1000px;
	height: 1px;
	visibility: hidden;
}


/* ==========================================
	シングルページ
=========================================== */

/* NEWSページ
	----------------------------------------- */
.single .inner-content { padding-bottom: 60px;}
.single .inner-content .entry-header { /* 記事ヘッダー */
	
}
.single .inner-content .entry-header .entry-meta {
	margin: 0.35em auto;
	display: flex;
	align-items: center;
	flex-wrap: wrap;
	gap: 1em;
}
.single .inner-content .entry-header .posted-on {
	color: #666;
	font-size: 1.35rem;
	font-weight: bold;
}
.single .inner-content .entry-header .category-tags {
	display: flex;
	flex-wrap: wrap;
	gap: .4em;
}
.single .inner-content .entry-header .category-tags span {
	padding: 0.23em 0.48em;
	color: #fff;
	font-size: 1.15rem;
	font-weight: bold;
	background: #71532d;
}

.single .inner-content .entry-header .parent-cat {
	color: var(--contrast);
	font-size: 3.5rem;
	line-height: 1.2em;
	font-weight: 400;
}
.single .inner-content .entry-header .entry-title {
	padding-bottom: .2em;
	border-bottom: 1px dashed #777;
}
.single .inner-content .entry-content { /* 記事コンテンツ */
	padding-bottom: 2.3em;
}
.single .inner-content .entry-footer { /* 記事フッター */
	
}
.single .inner-content .post-navigation {
	display: flex;
	justify-content: space-between;
}
.single .inner-content .post-navigation a {
	font-size: 1.45rem;
	color: #222;

}
.single .inner-content .post-navigation a:hover { color: #ae7428;}
.single .inner-content .post-navigation .nav-previous a:after { content: "≫";	vertical-align: 2px;}
.single .inner-content .post-navigation .nav-next a:before { content: "≪"; vertical-align: 2px;}


/* ==========================================
	 固定ページ
=========================================== */

/* WORKSページ
	----------------------------------------- */
.page-works h2 {
	padding-left: .2em;
	border-left: 5px solid #222;
	line-height: 1;
}

.page-works .wp-block-columns h3 { margin: .1em auto .2em;}
.page-works .wp-block-columns figure.wp-block-image { margin-top: 40px;}
.page-works .wp-block-columns figure.wp-block-image.portrait {
	aspect-ratio: 1 / 1;
	width: 100%;
	height: auto;
}
.page-works .wp-block-columns figure.wp-block-image img {
	width: 100%;
	height: 100%;
	object-fit: contain;
}
.page-works .wp-block-columns figure.wp-block-image.landscape img { object-fit: contain;}/* 横長画像用 */
.page-works .wp-block-columns figure.wp-block-image.portrait img { object-fit: contain;}/* 縦長画像用 */





/* スライダーエリア
------------------------------------------- */
.home-slider {
    margin-top: 0px !important;
    margin-bottom: 0px;
    overflow: hidden;
}

/* YouTube埋め込み動画の表示 */
.widget-area .widget iframe {
	width: 100% !important;
	max-width: 100%;
}

@media (min-width: 782px) {
	
/* 構造
------------------------------------------- */
.separate-containers .site-main,
.main-content { margin-top: 20px !important;}
.main-content article { padding: 4vmin 25px 60px;}	


/* メンバー一覧
------------------------------------------- */
section.home-members {
	margin: auto;
	padding: 2em 25px;
}

.members-grid {
	gap: 1.5em;
}

.member-item {
	flex: 0 1 calc((100% - 1.5em) / 2);
}

/* ニュースエリア
------------------------------------------- */
section.home-news {
	margin: auto;
	padding: 25px 25px 60px;
}
/* 横並びレイアウト */
	.main-content .news-archive article.news-item {flex-grow: 1;}
	.main-content .news-archive article.news-item a.news_url {
		display: flex;
		flex-grow: 1;
		gap:1em;
		width: 100%;
	}

	/* 記事画像 */
	.news-item .entry-image {
		display: block;
	  width: 100px !important;
	  height: 100px !important;
		min-width: 100px;
	  overflow: hidden;
	}
	.news-item .entry-image img {
	    object-fit: cover;
	    transition: transform 0.3s ease;
	}
	.news-item:hover .entry-image img { transform: scale(1.05);}
	.news-item .entry-content {
		flex-grow: 1;
		width: 100%;
	}
	.news-item .entry-content .entry-title {
		margin-top: .4em;
		font-size: 1.9rem;
	}
	.news-item .entry-content .entry-summary {
		flex-grow: 1;
		width: 100%;
	}
  .news-item .entry-content .entry-summary p { font-size: 1.5rem;}


/* ==========================================
	 ニュースカテゴリー一覧
=========================================== */
	.category .main-content .inner-content {
	  padding: 4vmin 1.9em 60px;
	}

/* ==========================================
	 固定ページ
=========================================== */

/* WORKSページ
	----------------------------------------- */
.page-works .wp-block-columns figure.wp-block-image {	margin-top: 10px;}
.page-works .wp-block-columns figure.wp-block-image.portrait {
	aspect-ratio: 1 / 1;
	width: 100%;
	height: auto;
}


}@media (min-width: 960px) {/* タブレット (960px以上) */
#content.site-content {
	margin: auto;
	width: 92%;
}
.site-content {
	display: flex;
	gap:2em;
}

/* 構造 (2カラムに)
------------------------------------------- */
.main-content,
.site-content .content-area {
	width: 78% ;
}
.is-right-sidebar {
	margin-top: 0;
	width: 22% !important;
}


/* スライダーエリア
------------------------------------------- */
.home-slider { margin-bottom: 20px;}


/* ニュースエリア
------------------------------------------- */
section.home-news {
	margin-top: 20px;
	padding: 1.7em 1.9em 60px;
}


/* サイドバー
------------------------------------------- */

}@media (min-width: 1200px) {/* デスクトップ (1200px以上) */
	.member-item {
		flex: 0 1 calc((100% - 4.5em) / 4);
	}

	.home-slider {
		margin-top: 20px;
		margin-bottom: 20px;
	}
	
	/* ニュースエリア
	------------------------------------------- */
	.home-news {
		margin-top: 20px;
	}
	.news-item .entry-title {font-size: 2.1rem;}
	.news-item .entry-summary p { font-size: 1.6rem;}
}

