/*
Theme Name: blankslate-child
Version: 2025
Template: blankslate
*/
@import url(https://fonts.googleapis.com/icon?family=Material+Icons);

/* ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
[目次]
	1.  共通項目
	2.  header ヘッダー
	3.  ハンバーガーメニュー
	4.  メインビジュアル　スライダー
	5.  お知らせ
	6.  イベント
	7.  投稿ページ
	8.  カテゴリーページ category-project.php
	9.  プロジェクトカテゴリーページ　category-project.php
	10. 大学施設情報カテゴリーページ　category-facilities.php
	11. 編集者用ページ　目次　ショートコード
	12. 検索結果ページ
	13. footer フッター
	14. レスポンシブ
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ */



/* ======================================
1. 共通項目
====================================== */
:root {
	--font-en-family: "din-2014", sans-serif;
  	--font-en-weight: 400; /*topの h2.top-h2 のみ300指定中*/
  	--font-en-style: normal;
	--font-color: #3C3C3C;
	--main-color: #FAF9F6;
	--link-color: #808080;
	--gray: #525252;
	--shadow-dark: #E1E0DB;
  	--shadow-light: #FFFFFF;
	--shadow: 3px 3px 7px 0 var(--shadow-dark), -3px -3px 7px 0 var(--shadow-light);
	--inset-shadow-a: inset 2px 2px 2px 0 var(--shadow-dark), inset -2px -2px 2px 0 var(--shadow-light);
	--inset-shadow-b: inset 3px 3px 7px 0 var(--shadow-dark), inset -3px -3px 7px 0 var(--shadow-light);
}
#wrapper {
	position: relative;
    top: -50px;
}
body {
    color: var(--font-color);
	background-color: var(--main-color);
	padding-top: 140px; /* ヘッダーの高さに基づいて調整、必要に応じて調整 */
	font-family: 'Noto Sans JP', sans-serif;
	letter-spacing: 0.12em;
	line-height: 1.5em;
	max-width: 2560px;
}
html, body {  
	height: 100%; 
}
footer {
   position: sticky;
   top: 100vh;
   top: 100dvh;
}
a {
	text-decoration: none;
	color: var(--link-color);
}
p {
	font-size: 1em;
	margin: 7px 5vw;
    padding: 7px 5vw;
	line-height: 1.7em;
}
h1 {
	font-size: 2em;
}
h2 {
	font-size: 1.5em;
}
h3 {
	font-size: 1.17em;
}
h4 {
	font-size: 1em;
}
h5 {
	font-size: 0.83em;
}
h6 {
	font-size: 0.67em;
}
.top-h2 a {
    color: var(--font-color);
}
h2.top-h2 {
	font-size: 2rem;
	font-family: var(--font-en-family);
	font-weight: 300;
	font-style: var(--font-en-style);
}
h5.top-h5 {
	font-size: 0.7rem;
	margin-top: 14px;
}
.entry-content strong {
  font-weight: bold;
}
.highlight-marker {
	background-color: rgba(211, 211, 211, 0.5);
	padding: 0.1em 0.2em;
	border-radius: 5px;
}
/* --------------------------------------
投稿記事（post）のみ適用
-------------------------------------- */
.single-post h1.wp-block-heading  {
	margin: 0.67em 5vw;
	padding: 0 5vw;
	font-weight: bold;
	line-height: 1.5em;
}
.single-post h2.wp-block-heading {
	margin: 0.83em 5vw;
	padding: 0 5vw;
	font-weight: bold;
}
.single-post h3.wp-block-heading {
	margin: 1em 5vw;
	padding: 0 5vw;
	font-weight: bold;
}
.single-post h4.wp-block-heading {
	margin: 1.33em 5vw;
	padding: 0 5vw;
	font-weight: bold;
}
.single-post h5.wp-block-heading {
	margin: 1.67em 5vw;
	padding: 0 5vw;
	font-weight: bold;
}
.single-post h6.wp-block-heading {
	margin: 2.33em 5vw;
	padding: 0 5vw;
	font-weight: bold;
}
.single-post a {
	text-decoration-line: underline;
	text-decoration-color: #bbbbbb;
	text-decoration-thickness: 0.5px;
	text-underline-offset: 4px;
}	
/* --------------------------------------
ページタイトル
-------------------------------------- */
.is-page .entry-title,
.is-category .entry-title {
    display: none;
}
h3.entry-title{
	padding: 10px 5vw;
    margin: 10px 5vw;
}
.entry-title a{
	color: var(--font-color);
	text-decoration: none;
	line-height: 1.7em;
}
/* --------------------------------------
リンク
-------------------------------------- */
.link-button {
	background-color: var(--main-color);
	text-align: center;
    margin: 10px auto !important;
    border-radius: 5px;
    box-shadow: var(--shadow);
}
.link-group {
    background: var(--main-color);
    margin: 7%;
    padding: 10px;
    border-radius: 5px;
    box-shadow: var(--shadow);
}
.link-group ul {
	list-style-type: disc;
	margin: 0 5vw;
}
.link-group li {
	font-size: 16px;
    margin: 5px 5vw;
}



/* ======================================
2. header ヘッダー
====================================== */
#header {
	position: fixed;
	top: 0;
	padding: 5px;
	width: 100%;
	z-index: 1000;
}
#site-title {
	z-index: 1000;
}
.site-name {
	font-size: 1.8rem;
    position: relative;
    top: 20px;
}
#branding {
    display: flex;
    align-items: center;
}
#site-title img{
	width: 250px;
	height: auto;
	padding: 20px;
}



/* ======================================
3. ハンバーガーメニュー
====================================== */
/* メニューアイコン */
#menu-toggle {
    background: none;
    border: none;
    cursor: pointer;
    display: flex;
    flex-direction: column;
    justify-content: space-around;
    width: 50px;
    height: 50px;
    padding: 10px;
    position: fixed; /* 画面に固定 */
    top: 20px;
    right: 30px;
    z-index: 1000;
	background-color: var(--main-color);
    border-radius: 8px;
	box-shadow: var(--shadow);
}
/* --------------------------------------
メニューの3本の棒
-------------------------------------- */
#menu-toggle .bar {
    width: 100%;
    height: 2.5px;
	background-color: var(--gray);
    transition: all 0.3s ease;
	border-radius: 5px;
}
/* デフォルトの状態（close） */
#menu-toggle .bar:nth-child(1) {
    transform: rotate(0) translateY(0);
}
#menu-toggle .bar:nth-child(2) {
    opacity: 1;
}
#menu-toggle .bar:nth-child(3) {
    transform: rotate(0) translateY(0);
}
/* 開いている状態（open） */
#menu-toggle.open .bar:nth-child(1) {
    transform: rotate(45deg) translateY(8px) translateX(9px);
}
#menu-toggle.open .bar:nth-child(2) {
    opacity: 0;
}
#menu-toggle.open .bar:nth-child(3) {
    transform: rotate(-45deg) translateY(-6px) translateX(6px);
}
/* --------------------------------------
メニュー画面の設定
-------------------------------------- */
#primary-menu {
    display: none; /* 初期状態で非表示 */
    position: fixed; /* 画面に固定 */
    top: 0;
    right: 0;
    width: 100%; /* メニューの幅 */
    height: 100%; /* メニューの高さ */
    background: #FFF; /* メニューの背景色 */
    z-index: 999; /* ボタンより後ろに表示 */
    box-shadow: 0 0 10px rgba(0, 0, 0, 0.2); /* メニューに影を追加 */
    overflow-y: auto; /* メニュー内でスクロール可能 */
    transition: transform 0.3s ease; /* メニューの開閉にアニメーションを追加 */
    transform: translateX(100%); /* 初期状態では画面外に隠す */
}
/* メニューが開いている状態 */
#primary-menu.open {
    display: block; /* メニューを表示 */
	background: var(--main-color);
    transform: translateX(0); /* メニューを画面内に表示 */
}
.menu-container {
    display: none; 
    flex-direction: column;
    align-items: flex-end; /* メニューアイテムを右寄せ */
    position: fixed; /* 画面全体に固定 */
    top: 0; 
    left: 0; 
    width: 100%; 
    height: 100%;
    background-color: rgba(255, 255, 255, 0.95);
    z-index: 10; 
    overflow-y: auto; /* メニューが画面外にスクロール可能にする */
    padding: 20px;
}
.menu-container.open {
    display: flex;
    flex-direction: column;
    align-items: flex-end;
}
/* --------------------------------------
メニューの検索部分
-------------------------------------- */
/*フォーム全体を中央へ*/
#searchform{
	display: flex;
	justify-content: center; 	
	width: 100%;
	margin-top:100px;
}
/*検索入力フォーム*/
input.searchfield {
	border-radius:1vh;/*左側の角を少し丸める*/
	height: 40px;
}
.searchfield{
	z-index: 2;/*前後の優先順位*/
	width: 60vw;/*横幅*/
	padding:0 15px;/*プレースホルダーの位置調整*/	
	background: var(--main-color);
	box-shadow: var(--inset-shadow-a);
	border: none;
	outline:0;/*クリック時の青い枠線消す*/
	transform: translateX(2vw)
}
/*検索ボタン*/
.searchsubmit{
	z-index: 1;/*前後の優先順位*/
	width:15vw;/*横幅*/ 
	height:40px;
	border-radius:0 1vh 1vh 0;/*右側の角を少し丸める*/ 
	background: var(--main-color);
	box-shadow: var(--inset-shadow-a);
	border: none;
	color: var(--font-color);
	font-size: 1em;/*フォントサイズ指定*/ 
	cursor: pointer;/*マウスを乗せると指差しポインターになる*/
}
.material-symbols-outlined{
	font-size: 1.25em;
}
/* --------------------------------------
メニューの項目
-------------------------------------- */
#menu-main a {
	text-decoration: none;
}
.menu-main-container{
	margin: 20px 10vw;
}
.menu-main-container ul {
	margin: 20px 10px;
}
.menu-item {
	padding: 10px 0;
}
/* メインメニュー内のすべてのリンクのフォントサイズを設定 */
#menu-main > li {
	margin: 10px 0;
}
#menu-main > li > a {
    font-size: 1.2em; /* メイン項目のフォントサイズ */
	color: var(--font-color);
}
/*外部サイトのマーク*/
#menu-main a[target="_blank"] span::after ,#menu-footer a[target="_blank"] span::after{
    content: '\e89e';
	font-family: 'Material Icons';
    display: inline-block;
    width: 1rem;
    height: 1rem;
    padding-left: 0.25rem;
}
#menu-main a[target="_blank"] span::after{
	font-size: 1em;
}
/* --------------------------------------
サブメニュー（使用できるが現在使用していない）
-------------------------------------- */
/* サブメニューを初期で非表示 */
	/* サブメニューを初期状態で非表示に設定 */
#menu-main .menu-item-has-children ul {
    display: none;
    position: relative; 
    background-color: #fff;
    list-style: none;
    margin: 10px;
}
/* サブメニュー内のすべてのリンクのフォントサイズを設定 */
#menu-main .sub-menu li a {
    font-size: 1em; /* サブ項目のフォントサイズ */
}
#menu-main .sub-menu li  {
    margin: 5px 0;
}



/* ======================================
4. メインビジュアル　スライダー
====================================== */
.metaslider-wrapper {
    display: flex;
    justify-content: center;
    align-items: center;
}
#metaslider_635 {
    width: 80vw;
    margin: 10px auto; 
    overflow: hidden;
    background-color: var(--main-color);
    box-shadow: var(--inset-shadow-b);
    position: relative;
    padding: 20px; 
    border-radius: 10px; 
	max-width: 800px;
}
#metaslider_635 img {
    border-radius: 10px;
    display: block;
    width: 100%; 
    height: auto;
}



/* ======================================
5. お知らせ
====================================== */
.has-text-align-center.shift {
    position: relative;
	top: 30px;
}
.news_list {
	padding: 50px 0;
	margin: 0 5vw;
}
.news_list.no-background {
    background: none; 
	margin: 3vw;
    padding: 1vw;
}
li.news_item {
    background: var(--main-color);
    margin: 7% 0.5%;
	padding: 10px;
    border-radius: 5px;
    box-shadow: var(--shadow);
}
.news-title{
    line-height: 1.7em;
	padding: 0 0.5vw;
    margin: 1.5vw;
}
/* --------------------------------------
カテゴリー　パレット風表示設定
-------------------------------------- */
.tag-wrapper, .category-wrapper {
    display: inline-block;
	padding: 0 2px 2px;
    margin: 1px 1px;
    border-radius: 5px;
    background-color: var(--main-color);
    box-shadow: var(--inset-shadow-a);
    line-height: 1.4;
    vertical-align: middle;
}
.category_palette.tag, .category_palette.category {
	color: var(--main-color);
	padding: 2px 4px;
    margin: 0;
    border-radius: 4px;
	font-size: 0.5em;
    vertical-align: middle;
}
.category_palette.category.recruiting, .category_palette.category.held, .category_palette.category.award {
    background: var(--gray);
}
.status-row a.category {
	background: var(--gray);
}
.category_palette.category.aa {
	background: #EC1234;
	font-family: var(--font-en-family);
	font-weight: var(--font-en-weight);
	font-style: var(--font-en-style);
}
.category_palette.category.ap {
	background: #5726B7;
	font-family: var(--font-en-family);
	font-weight: var(--font-en-weight);
	font-style: var(--font-en-style);
}
.category_palette.category.ad {
	background: #0094C1;
	font-family: var(--font-en-family);
	font-weight: var(--font-en-weight);
	font-style: var(--font-en-style);
}
.category_palette.category.ae {
	background: #00B17B;
	font-family: var(--font-en-family);
	font-weight: var(--font-en-weight);
	font-style: var(--font-en-style);
}
.category_palette.category.as {
	background: #FFA400;
	font-family: var(--font-en-family);
	font-weight: var(--font-en-weight);
	font-style: var(--font-en-style);
}
.news_date{
	font-size: 0.7em;
	font-family: var(--font-en-family);
	font-weight: var(--font-en-weight);
	font-style: var(--font-en-style);
}
a.category.year-filter.category_palette {
  	color: var(--gray);
	font-family: var(--font-en-family);
	font-weight: var(--font-en-weight);
	font-style: var(--font-en-style);
}
.filter-row.special-status-row .tag-wrapper.special-item a {
    color: var(--gray);
	font-family: var(--font-en-family);
	font-weight: var(--font-en-weight);
	font-style: var(--font-en-style);
}
.category_palette_container {
    display: flex;
    justify-content: flex-start; /* 左寄せ */
    align-items: end;
    margin: 0 1.5vw;
}
.category_palette_container .news_date {
    margin-left: auto; /* 日付を右側に移動 */
}
.wp-block-buttons-shift.is-content-justification-right.is-layout-flex.wp-container-core-buttons-is-layout-1.wp-block-buttons-is-layout-flex {
	position: relative;
    top: -50px;
}
.single-post .category_palette_container {
    margin: 10px 5vw;
    padding: 10px 5vw;
}
/* --------------------------------------
topページ　一覧を見るbutton
-------------------------------------- */
.wp-block-button .wp-block-button__link:where(.is-style-outline):not(.has-background), .wp-block-button:where(.is-style-outline)>.wp-block-button__link:not(.has-background){
	border: none;
	font-size: 1em;
	color: var(--font-color);
    background: none;
}
.wp-block-buttons>.wp-block-button.wp-block-button__width-75{
	width:calc(90% - var(--wp--style--block-gap, .5em)*.25)
}
.wp-block-button.is-style-outline{
	position: relative;
}
.wp-block-button.is-style-outline::after {
	content: '';
	position: absolute;
	top: 0;
	bottom: 0;
	right: 6px;
	width: 0;
	height: 0;
	margin: auto;
	border-top: 6px solid transparent;
	border-right: 0 solid transparent;
	border-left: 6px solid #595755;
	border-bottom: 6px solid transparent;
	box-sizing: border-box;
}



/* ======================================
6. イベント
====================================== */
/* --------------------------------------
topページ
-------------------------------------- */
.current-event-grid {
    display: grid;
    grid-gap: 5vw;
    margin: 5vw;
    padding: 1vw;
}
.current-event-thumbnail {
    position: relative;
    overflow: hidden;
	padding: 20px;
    border-radius: 5px;
    box-shadow: var(--shadow);
}
.current-event-thumbnail img {
    padding: 10px;
    margin: 10px auto;
    box-shadow: var(--inset-shadow-b);
    border-radius: 8px;
    background-color: var(--main-color);
    display: block;
    width: 100%;
    height: auto;
}
.current-event-thumbnail a {
	color: var(--font-color);
}
.current-event-thumbnail .stretched-link::after {
    position: absolute;
    top: 0;
    right: 0;
    bottom: 0;
    left: 0;
    z-index: 1;
    content: "";
}
.current-event-thumbnail .category_palette_container {
    position: relative;
    z-index: 2;
	margin: 0;
}
p.no-events{
	text-align: center;
}
.event-title,
.event-info-table th,
.event-info-table td {
    padding: 7px;
	line-height: 1.6em;
}
.event-info-table {
	text-align: left;
}
.event-info-table th {
	width: 70px;
}
/* --------------------------------------
category-event.php
-------------------------------------- */
.top-heading{
	text-align: center;
    font-size: clamp(24px, calc(22px + 0.625vw), 32px);
	padding: 2vh;
}
.event-archive-grid {
    display: grid;
    grid-template-columns: repeat(2, 1fr);
    grid-gap: 2vw;
    margin: 3vw;
    padding: 1vw;
}
.event-archive-thumbnail {
    position: relative;
    overflow: hidden;
	padding: 5px;
    border-radius: 5px;
}
.event-archive-thumbnail img {
    width: 100%;
    height: auto;
    display: block;
	border-radius: 5px;
	padding: 10px;
    box-shadow: var(--shadow);
}

/*アーカイブ年表示
.archive-years {
    display: flex;
    gap: 1rem;
    justify-content: right;
    margin: 0 5vw;
}
.archive-years .archive-year a {
    text-decoration: none;
}
*/  



/* ======================================
7. 投稿ページ
====================================== */
.entry-meta{
	display: none;
}
.post-thumbnail-page {
    width: 100%;
    overflow: hidden;
    padding: 0 5vw;
	margin: auto;
	max-width: 500px;
}
.post-thumbnail-page img {
    width: 100%;
    height: auto; 
	padding: 15px;
    margin: 10px auto;
    box-shadow: var(--inset-shadow-b);
    border-radius: 8px;
    background-color: var(--main-color);
}
.post-meta {
	margin: 30px 10vw;
}
.post-meta li {
	padding: 10px;
}
ul.custom-meta-list {
    margin: 10px 5vw;
    padding: 10px 5vw;
    line-height: 1.7em;
}
.wp-block-image {
	padding: 10px 10vw;
}
figure.wp-block-image,.aligncenter {
	margin: auto;
}
.wp-block-gallery {
  margin: 0 10vw !important;
}
.wp-block-gallery .wp-block-image {
  padding: 10px 0 !important;
}
.wp-block-embed {
	margin: 10px 10vw;
}
.wp-block-list {
	list-style-type: disc;
	margin: 7px 7vw;
    padding: 0 7vw;
}
.wp-block-list li {
    margin: 7px 0 0;
    padding: 7px 0 3px;
}
.wp-block-list .wp-block-list {
    margin: 0;
    padding: 0 0 0 1.8em;
	list-style-type: circle;
}
.wp-block-list .wp-block-list .wp-block-list {
  	list-style-type: square;
}
.wp-block-list .wp-block-list .wp-block-list .wp-block-list li{
	list-style: none;
	position: relative;
	padding-left: 1em;
}
.wp-block-list .wp-block-list .wp-block-list .wp-block-list li::before {
	content: "";
	position: absolute;
	left: 0;
    top: 1em;
    width: 0.4em;
    height: 0.4em;
	border: 1px solid var(--font-color);
	background: transparent;
	box-sizing: border-box;
}
button.return-button {
    font-size: clamp(10px, calc(7px + 1vw), 16px);
    width: 15%;
    display: block;
    margin: 5vh 8vw 5vh auto;
	padding: 5px;
    border-radius: 20px !important;
    background-color: var(--main-color)!important;
	color: var(--font-color);
    border: none;
	box-shadow: var(--shadow);
}
.custom-fields-table {
	border-collapse: collapse;
	margin: 1.5em 10vw;
	font-size: 1rem;
	width: calc(100% - 20vw);
}
.custom-fields-table th,
.custom-fields-table td {
	border: 1px solid #ccc;
	padding: 10px 14px;
	text-align: left;
	vertical-align: middle;
	line-height: 1.7em;
}



/* ======================================
8. カテゴリーページ category.php
====================================== */
.top-heading:hover {
  text-decoration: none !important;
}
.category-list {
    padding: 50px 10px;
}
.post-summary {
    background: var(--main-color);
    margin: 7% 0.5%;
    padding: 10px;
    border-radius: 5px;
    box-shadow: var(--shadow);
}
.post-meta-wrapper {
    margin-bottom: 0.5rem;
}
.post-content-inline {
    display: flex;
    align-items: center;
    gap: 1rem;
}
.post-thumbnail-small img {
    width: 80px;
    height: auto;
    border-radius: 4px;
    object-fit: cover;
	margin-left: 2vw;
}
.top-heading a {
    color: var(--font-color);
}
/*年・学科等のフィルター*/
.filter {
	margin: 3vw;
    padding: 1vw;
}
.filter-row {
	margin-top: 1vw;
}
/* --------------------------------------
ページネーション
-------------------------------------- */
.custom-pagination {
	display: grid;
	grid-template-areas: "prev current next";
	grid-template-columns: 1fr auto 1fr;
	align-items: center;
	justify-items: center;
	gap: 0.5rem;
	margin: 2rem 25vw;
}
.prev-page a,
.next-page a {
	display: block;
	width: 100%;
	height: 100%;
	text-align: center;
	text-decoration: none;
	color: inherit;
	cursor: pointer;
}
a.prev-page:visited,
a.next-page:visited {
	color: inherit;
}
.prev-page {
	grid-area: prev;
	justify-self: start;
}
.current-page {
	grid-area: current;
	justify-self: center;
}
.next-page {
	grid-area: next;
	justify-self: end;
}
.prev-page:not(:empty),
.next-page:not(:empty) {
	box-shadow: var(--shadow);
	padding: 10px;
	border-radius: 5px;
}



/* ======================================
9. プロジェクトカテゴリーページ　category-project.php
====================================== */
.project-grid {
	display: grid;
	grid-template-columns: repeat(2, 1fr);
	gap: 2vw;
	margin: 3vw;
    padding: 1vw;
}
.project-post {
	background: var(--main-color);
    margin: 7% 0.5%;
    padding: 10px;
    border-radius: 5px;
    box-shadow: var(--shadow);
	position: relative; /* 既存の見た目はそのままにオーバーレイを配置 */
	cursor: pointer;
}
.project-title {
	margin: 4vw 1.5vw;
}
.project-title a{
	text-decoration: none;
    color: var(--font-color);
	position: relative;
	z-index: 2;
}
body.category-project .category_palette_container {
	margin: 2vw 0;
}
body.category-project .category-left .tag-wrapper,
body.category-project .category-left .category-wrapper  {
	padding: 0 1px 3px;
	margin: 1px;
	border-radius: 2px;
	line-height: 1.1;
}
.category-right {
	margin-left: auto;
}
.category_palette.category.recruiting-project {
	background: var(--gray);
	color: var(--main-color);
}
.category_palette.category.ongoing {
	background: #FFFFFF;
	color: var(--gray);
}
.project-post-link {
	position: absolute;
	inset: 0; 
	display: block;
	z-index: 1;
	text-decoration: none;
	color: inherit;
	background: transparent;
	outline: none;
}
.category_palette_container .tag-wrapper,
.category_palette_container .tag-wrapper a,
.category-right .tag-wrapper,
.category-right .tag-wrapper a {
	position: relative;
	z-index: 2; /* オーバーレイより前に */
}



/* ======================================
10. 大学施設情報カテゴリーページ　category-facilities.php
====================================== */
.facilities-map {
	text-align: center;
    margin: 40px auto 0;
    padding: 0 8vw;
	max-width: 800px;
}
.facilities-map img{
	width: 100%;
	height: auto;
}
.facilities-content {
	margin: 3vw;
    padding: 1vw;
}
.facilities-section-title {
	text-align: center;
	margin: 70px 0 40px;
}
.facilities-grid {
	display: grid;
	grid-template-columns: 1fr;
	gap: 2vw; 
    margin: 0 5vw; 
}
.article-link {
    display: block;
    color: inherit;
    text-decoration: none;
}
.facilities-post {
    margin: 0;
}
.facilities-card {
	width: 100%;
    height: auto;
    display: block;
    border-radius: 5px;
    padding: 5vw;
    box-shadow: var(--shadow);
	box-sizing: border-box;
}
.facilities-thumbnail {
    text-align: center;
    padding: 10px 10px 5px;
    margin: 10px auto;
    box-shadow:  var(--inset-shadow-b);
    border-radius: 8px;
    background-color: var(--main-color);
    display: block;
    width: 100%;
    height: auto;
}
.facilities-thumbnail img{
	width: 100%;
    height: auto;
	border-radius: 3px;
	max-width: 520px;
}
h4.facilities-title {
	margin: 7px 0;
}
.facilities-title a {
	color: var(--font-color);
}
.facilities-excerpt {
    display: -webkit-box;
    -webkit-box-orient: vertical;
    -webkit-line-clamp: 4; /* 最大4行 */
    overflow: hidden;
    text-overflow: ellipsis;
}
.classroom-section .facilities-excerpt {
    -webkit-line-clamp: 3; /* 教室情報だけ最大3行に上書き */
}
p.facilities-excerpt {
    margin: 7px 0;
	padding: 0;
	font-size: 0.625em;
}
#back-to-top {
	position: fixed;
	right: 30px;
	bottom: 0;
	width: 50px;
	height: 50px;
	border: none;
	border-radius: 8px 8px 0 0;
	background: var(--main-color);
	box-shadow: var(--shadow);
	color: var(--gray);
	font-size: 20px;
	line-height: 1;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	box-shadow: 0 6px 18px rgba(0,0,0,0.25);
	cursor: pointer;
	opacity: 0;
	transform: translateY(20px);
	transition: opacity 220ms ease, transform 220ms ease;
	z-index: 9999;
}
#back-to-top.show {
  opacity: 1;
  transform: translateY(0);
}



/* ======================================
11. 編集者用ページ　目次　ショートコード
====================================== */
.toc {
	margin: 10px 10vw 50px 10vw;
}
.toc h3 {
	margin: 1em 0;
}
.toc ul {
	margin-left: 1em;
}
.toc li {
	margin: 5px;
}



/* ======================================
12. 検索結果ページ
====================================== */
/*imageのカスタマイズ*/
.search-contents {
	display: flex;
	align-items: flex-start;
	margin: 20px 0px 60px 25px;
}
.search-thumbnail img {
	width: 30vw;
	height: auto;
	object-fit: cover;
	border-radius: 8px;
	margin-top: 20px;
}
.search-title{
	margin: 15px 40px;
	font-size: 18px;
}
.search-text {
  	flex: 1;
}
.search-text p {
	font-size: 0.9rem;
	color: #333;
	line-height: 1.6;
	margin: 7px 5vw 0 0;
    padding: 7px 5vw 0;
}
.no-search-result {
	margin: 5vw 5vw;
}
/* --------------------------------------
パンくずリスト
-------------------------------------- */
body.search ul.breadcrumb {
  list-style: none;
  font-size: 10px;
}
body.search ul.breadcrumb li {
  display: inline;
}
body.search ul.breadcrumb li a {
  color: inherit;
  text-decoration: none;
}
body.search ul.breadcrumb li + li:before {
  content: ">";
  margin: 0.5em;
}
/* タイトルとパンくずリスト */
.page-header {
  margin-bottom: 15px;
}
.page-title {
  font-size: 2rem;
  font-weight: bold;
  margin-bottom: 5px;
}
.search-wrap {
	　margin:5vw;
}
.breadcrumb{
	margin: 0px 40px;
}




/* ======================================
13. footer フッター
====================================== */
footer {
	line-height: 1em;
	line-height: 1.5;
}
.footer_box {
    position: relative;
    display: inline-block;
    width: 100vw;
    height: 500px;
	background: #050609;
	color: #ffffff;
}
.footer_title {
	padding: 0 5vw!important;
}
.footer_title-img{
	width: 250px;
	height: auto;
	margin: 70px 0 10px;
}
.footer_title_en {
	margin-bottom: 20px;
	padding: 0 5vw;
	font-family: var(--font-en-family);
	font-weight: var(--font-en-weight);
	font-style: var(--font-en-style);
	font-size: 10px;
	line-height: 2.5;
}
#menu-footer > li{
	padding: 5px 0;
}
#menu-footer > li > a {
    font-size: 0.8rem;
	color: #ffffff;
}
#menu-footer a {
	text-decoration: none;
}
.menu-footer-container {
    position: absolute;
    width: 100%;
	padding: 0 5vw;
}
#menu-footer a[target="_blank"] span::after{
	color: var(--main-color);
}
#copyright {
	position: absolute;
	width: 100%;
    text-align: center;
    bottom: 10px;
	color: #ffffff;
	font-size: 10px;
}




/* ======================================
14. レスポンシブ
====================================== */
@media screen and (min-width: 500px) {
	.current-event-grid{
		grid-template-columns: repeat(2, 1fr);
	}
	.current-event-thumbnail{
		padding: 5px;
	}
}
@media screen and (min-width: 600px) {
	.current-event-thumbnail{
		padding: 20px;
	}
	body.category-project .category_palette {
		display: inline-block;
		min-width: 15px;
		height: 20px;
	}
	body.category-project .category_palette_container {
		margin: 2vw 1.5vw;
	}
	body.category-project .category-left .tag-wrapper,
	body.category-project .category-left .category-wrapper  {
		padding: 3px 2px 3px;
		margin: 0 4px 0 0;
		border-radius: 3px;
	}
	.wp-block-list {
		list-style-type: disc;
		margin: 7px 6vw;
		padding: 7px 6vw;
	}
	.facilities-grid {
		grid-template-columns: repeat(2, 1fr);
		gap: 2vw;
		margin: 0;
	}
	.facilities-grid.is-filtered {
        margin: 4vw;
    }
	.facilities-card {
		padding: 20px;
	}
	#back-to-top {
		right: 30px;
		bottom: 0;
		width: 50px;
		height: 50px;
		font-size: 22px;
	}
	li.news_item {
		padding: 10px;
	}
	.tag-wrapper, .category-wrapper {
		padding: 0 3px 3px;
	}
	.category_palette.tag, .category_palette.category {
    	padding: 2px 6px;
    	font-size: 0.7em;
	}
	
}
@media screen and (min-width: 960px) {
	#content {
		width: 70%;
		margin : none;
		margin: 0 auto;
	}
	#metaslider_635 {
    	width: 70vw;
	}
	p.name {
    	margin: 20px 0;
	}
	.current-event-grid{
		grid-template-columns: repeat(2, 1fr);
		margin: 2vw 0;
	}
	.event-archive-grid {
    	grid-template-columns: repeat(3, 1fr);
	}

	#searchform {
		display: flex;
		justify-content: center;
		width: 80%;
		margin-top: 100px;
		margin: 100px auto 50px auto;
	}
	.menu-main-container {
		width: 75%;
		margin: 0 auto;
	}
	.menu-button-container {
		width: 75%;
		margin: 0 auto;
	}
	li.news_item {
		margin: 5% 0.5%;
	}
	.wp-block-list {
		padding: 0 5vw;
	}
	/*検索結果*/
	.search-contents {
	  	display: flex;
		align-items: flex-start;
		margin: 20px 0 60px 0;
	}
	.search-thumbnail img {
		width: 140px;
		height: 190px;
		object-fit: cover;
		border-radius: 8px;
	}
	.search-title {
		margin-top:20px;
		margin-bottom: 20px; /* または 10px など */
	}
	.search-text {
		flex: 1;
		padding-left: 40px;
	}
	.search-text p {
		font-size: 1rem;
		color: var(--font-color);
		line-height: 1.6;
		padding: 7px 0 0 0;
	}
	/* パンくずリスト*/ 
	body.search ul.breadcrumb {
	  list-style: none;
	}
	body.search ul.breadcrumb li {
	  display: inline;
	}
	body.search ul.breadcrumb li a {
	  color: inherit;
	  text-decoration: none;
	}
	body.search ul.breadcrumb li + li:before {
	  content: ">";
	  margin: 0.5em;
	}
	/* タイトルとパンくずリスト */
	.page-header {
	  margin-bottom: 15px;
	}
	.page-title {
	  font-size: 2rem;
	  font-weight: bold;
	  margin-bottom: 5px;
	}
	.search-wrap {
		 margin:5vw;
	}
}

@media screen and (min-width: 1230px) {
	.current-event-grid{
		grid-template-columns: repeat(3, 1fr);
		grid-gap: 2vw;
	}
	.post-thumbnail-page {
		max-width: 700px;
    	margin: auto;
	}
}
@media screen and (min-width: 1600px) {
	.facilities-grid{
		grid-template-columns: repeat(3, 1fr);
	}
}
@media screen and (min-width: 1920px) {
	.event-archive-grid{
		grid-template-columns: repeat(4, 1fr);
	}
}