@charset "UTF-8";
/*
    Template: swell
    Theme Name: SWELL CHILD
    Theme URI: https://swell-theme.com/
    Description: SWELLの子テーマ
    Version: 1.0.0
    Author: LOOS WEB STUDIO
    Author URI: https://loos-web-studio.com/

    License: GNU General Public License
    License URI: http://www.gnu.org/licenses/gpl.html
*/

/* hedaer */
.l-header__bar { display: none; }
.l-header {
	box-shadow: 0 2px 8px rgba(0, 0, 0, 0.2);
}
.l-content {
	padding-top:0;
}
.single .l-content,
.archive .l-content {
	padding-top:4em;
}
.c-gnav > li.menu-item-has-children {
	padding-right:12px;
}
.c-gnav > li.menu-item-has-children > a span.en {
	color:#777;
}

.c-gnav li.menu-item-has-children::after {
	content: "▼";
    font-size: 0.6em;
    color: #000;
    position: absolute;
    top: 40%;
    right: 6px;
}

/* home */
.post_content .top_news {
	border:none;
	box-shadow: 2px 2px 6px rgba(0, 0, 0, 0.3);
	margin-top:-100px !important;
}
.news_list .p-postList__body {
	display: flex;
}
.news_list .p-postList.-type-simple {
	border-top:none;
}
.news_list ul.-type-simple .p-postList__link {
	padding: 0.8em .25em 0.3em;
	border-bottom: 1px dashed #999;
}
.news_list .p-postList__body time {
	font-size:15px;
	margin-right:15px;
}
.post_content .top_contents {
	margin-bottom:70px !important;
}

/* page */
.post_content h3:where(:not([class^="swell-block-"]):not(.faq_q):not(.p-postList__title))::before {
	height:4px;
	background: repeating-linear-gradient(
		90deg, 
		#07a793 0%, 
		#07a793 29.3%, 
		rgba(84,220,200,.8) 29.3%, 
		rgba(84,220,200,.8) 100%
		)
	}
.post_content h3:where(:not([class^="swell-block-"]):not(.faq_q):not(.p-postList__title)) {
	padding: 0 .5em .7em;
}
.post_content h4:where(:not([class^="swell-block-"]):not(.faq_q):not(.p-postList__title)) {
	padding: 7px 0 6px 16px;
}

.page .l-content {
	padding:0;
	margin-bottom:0;
}
.page_title {
	width: 100vw;
	margin-left: calc(50% - 50vw);
	margin-right: calc(50% - 50vw);
	background: url(images/bg_page_title.jpg);
	padding: 80px 0;
}
.page_title .parent-message {
	text-align: center;
	font-size: 18px;
}
.page_title .parent-message-en {
	text-align: center;
	font-size: 24px;
	font-weight: bold;
	color: #059692;
	margin-top:-5px;
}
.page_title h1.c-pageTitle {
	text-align: center;
	font-size: 38px;
	font-weight: bold;
}
.c-pageTitle[data-style=b_bottom] {
	border-bottom:none;
}
.c-pageTitle[data-style=b_bottom] .c-pageTitle__inner {
	border:none;
	float:none;
	margin:0;
	padding:0;
}
.pankuzu {
	width: 100vw;
	margin-left: calc(50% - 50vw);
	margin-right: calc(50% - 50vw);
}
.page_wrap {
	width: 100vw;
	margin-left: calc(50% - 50vw);
	margin-right: calc(50% - 50vw);
	background-color: #fff;
	box-shadow: 0 -10px 8px rgba(0, 0, 0, 0.08);
	box-sizing: border-box;
}
.post_content {
	max-width:980px;
	margin:0 auto;
	padding:50px 0 70px;
}
.home .post_content {
	max-width:880px;
}
.w-beforeFooter .post_content {
	padding:0;
}

/* footer */
.w-beforeFooter {
	margin:0 auto;
}
.w-beforeFooter .wp-block-button a:hover {
	background-color:#eee !important;
}

/* 機関誌 『教育学研究ジャーナル』一覧 */
.custom-cat-posts-wrapper {
    margin: 2em 0;
}

/* グリッドレイアウト設定 */
.custom-cat-posts-grid {
    display: grid;
    grid-template-columns: repeat(2, 1fr); /* スマホ版: 2カラム */
    gap: 20px 15px;
    list-style: none;
    margin: 0;
    padding: 0;
}

/* PC版設定（768px以上） */
@media (min-width: 768px) {
    .custom-cat-posts-grid {
        grid-template-columns: repeat(4, 1fr); /* PC版: 4カラム */
        gap: 30px 20px;
    }
}

/* 各投稿カードの設定 */
.custom-cat-post-item {
    margin: 0;
    padding: 0;
}

.custom-cat-post-link {
    display: flex;
    flex-direction: column; /* 縦並び指定（画像 -> タイトル -> 日付） */
    height: 100%;
    color: inherit;
    text-decoration: none;
    transition: opacity 0.3s ease;
}

.custom-cat-post-link:hover {
    opacity: 0.8;
}

/* アイキャッチ画像の設定 */
.custom-cat-post-thumbnail {
    width: 100%;
    aspect-ratio: 8 / 12; /* アスペクト比を固定 */
    overflow: hidden;
    background-color: #f0f0f0;
    margin-bottom: 8px;
}

.custom-cat-post-thumbnail img {
    width: 100%;
    height: 100%;
    object-fit: cover; /* 画像の上下左右を整えてトリミング */
    display: block;
	border: 1px solid #ccc;
}

/* タイトルの設定 */
.custom-cat-post-title {
    font-size: 0.95rem;
    font-weight: bold;
    line-height: 1.4;
    margin: 0 0 6px 0;
    /* 長いタイトルを3行で省略表示（対応ブラウザのみ） */
    display: -webkit-box;
    -webkit-line-clamp: 3;
    -webkit-box-orient: vertical;
    overflow: hidden;
	margin:5px 0 !important;
	padding:5px !important;
	text-align: center;
}
.custom-cat-post-title::before {
	background: none !important;
}

/* 公開日の設定 */
.custom-cat-post-date {
    font-size: 0.8rem;
    color: #666;
    margin-top: auto; /* カード最下部に固定 */
	text-align: center;
}

/* ページネーションの設定 */
.custom-cat-posts-pagination {
    margin-top: 40px;
    text-align: center;
}

.custom-cat-posts-pagination ul {
    display: inline-flex;
    gap: 8px;
    list-style: none;
    padding: 0;
    margin: 0;
}
.custom-cat-posts-pagination ul.page-numbers {
	box-shadow:none;
	background-color:#fff;
}

.custom-cat-posts-pagination li a,
.custom-cat-posts-pagination li .current {
    display: block;
    padding: 8px 12px;
    border: 1px solid #ddd;
    color: #333;
    text-decoration: none;
    border-radius: 4px;
    font-size: 0.9rem;
}

.custom-cat-posts-pagination li .current {
    background-color: #07a793;
    color: #fff;
    border-color: #07a793;
}

/* single */
.cat-journal .post_content {
	max-width:1000px !important;
}
.cat-journal .post_content table {
	border:none;
}
.cat-journal .post_content table th {
	border:none;
	font-size:16px !important;
}
.cat-journal .post_content table td {
	border:none;
	font-size:15px;
}


@media screen and (max-width: 960px) {
	/* header */
	.l-header__customBtn {
		display: none;
	}
	.l-header__menuBtn {
		order:3;
	}
	.post_content {
		padding: 50px 20px 50px;	
	}

}
@media screen and (max-width: 768px) {
	.wp-block-table td, .wp-block-table th {
		font-size:15px;
		padding: .4em .5em;
	}
	.page_title {
		background-size: 60%;
	}
}
@media screen and (max-width: 600px) {
	/* header */
	.page_title {
		background-size: 60%;
	}
	.p-spMenu li.menu-item a br { display:none; }
	.p-spMenu li.menu-item a span.en { color:#999; margin-left:20px; }
	.p-spMenu li.menu-item a { font-weight:bold; }
	.p-spMenu li.menu-item .sub-menu a { font-weight:normal; }

	/* home */
	.home .p-mainVisual__inner { height: 32vh; }
	.home .p-mainVisual__slideTitle { font-size:4.2vw; padding: 0 70px; }
	.news_list .p-postList__body {
		display: block;
	}
	.news_list .p-postList__body time {
		font-size:13px;
	}
	.-type-simple .p-postList__title {
		font-size:0.9em;
	}
	.home .post_content {
		padding: 50px 20px 0 !important;	
	}
	.home .top_contents .wp-block-column {
		flex-basis: 40% !important;
	}
	.home .wp-block-buttons>.wp-block-button[class*=wp-block-button__width] {
		width:60%;
	}
	.home .post_content .top_contents {
		margin-bottom:30px;
	}
	
	/* page */
	
	.page_title {
		padding: 35px 15px;
	}
	.page_title .parent-message {
		font-size:16px;
	}
	.page_title h1.c-pageTitle {
		font-size:30px;
	}
	.page_title .parent-message-en {
		font-size:21px;
	}
	.post_content {
		padding: 50px 20px 50px;	
	}
}
