/**
Theme Name: Astra Child
Author: Brainstorm Force
Author URI: http://wpastra.com/about/
Description: Astra is the fastest, fully customizable & beautiful theme suitable for blogs, personal portfolios and business websites. It is very lightweight (less than 50KB on frontend) and offers unparalleled speed. Built with SEO in mind, Astra comes with schema.org code integrated so search engines will love your site. Astra offers plenty of sidebar options and widget areas giving you a full control for customizations. Furthermore, we have included special features and templates so feel free to choose any of your favorite page builder plugin to create pages flexibly. Some of the other features: # WooCommerce Ready # Responsive # Compatible with major plugins # Translation Ready # Extendible with premium addons # Regularly updated # Designed, Developed, Maintained & Supported by Brainstorm Force. Looking for a perfect base theme? Look no further. Astra is fast, fully customizable and beautiful theme!
Version: 1.0.0
License: GNU General Public License v2 or later
License URI: http://www.gnu.org/licenses/gpl-2.0.html
Text Domain: astra-child
Template: astra
*/

/**********
全体 
***********/
.m-bottom-0 {
	margin-bottom: 0 !important;
}
.full-none {
	display: none;
}
/* ※1つだけ ※は本文に入れる*/
.note {
	text-indent: -1em;
	padding-left: 1em;
}
/* ※が複数行続く。※は本文に入れない */
.note-list {
	list-style: none;
	padding-left: 0 !important;
  	margin: 0;
}
.note-list li {
  position: relative;
  padding-left: 1em;
}
.note-list li::before {
  content: "※";
  position: absolute;
  left: 0;
}
.bg-blue {
	background-color: #ecf7fd;
	padding: 20px;
}
.u-text-blue {
	font-weight: bold;
	color: var(--ast-global-color-0);
}
@media (max-width: 767px){
	.full-none {
		display: block;
	}
	.ast-scroll-to-top-right {
		bottom: 80px;
	}
}

/* パンくずリスト */
.ast-breadcrumbs-wrapper {
	position: absolute;
    top: 20px;
}
.trail-items li::after {
	content: "＞";
}

/* fixedmenu */
.fixedmenu .uagb-ifb-title-wrap {
	font-feature-settings: "palt";
}
.fixedmenu.pc .uagb-ifb-title {
	font-weight: 500;
	margin-bottom: 0 !important;
}
.fixedmenu.pc {
	font-size: 11px;
	position: fixed;
    z-index: 1000;
	top: 300px;
    right: 0;
}
.fixedmenu.pc .wp-block-uagb-info-box {
	border-bottom: 1px solid #fff;
}
.fixedmenu.pc .wp-block-uagb-info-box:last-of-type {
	border-bottom : none;
}
.fixedmenu.sp {
	position: fixed !important;
    bottom: 0 !important;
    left: 0 !important;
    width: 100% !important;
    z-index: 9999 !important;
	align-items: stretch !important;
	font-size: 10px;
}
.fixedmenu.sp > .wp-block-uagb-container {
	border-right: 1px solid #fff;
}
.fixedmenu.sp > .wp-block-uagb-container:last-of-type {
	border-right: none;
}
.fixedmenu.sp p {
	font-weight: 500;
	margin-bottom: 0;
}
/* --- 1. ページコンテンツ内のメニューを一括で隠す（CSS供給用） --- */
.entry-content .fixedmenu {
	display: none !important;
}
/* --- 2. footer側のメニューの出し分け --- */
/* PC版の制御 */
.fixed-menu-container .menu-pc-only {
	display: block !important;
}
.fixed-menu-container .menu-mobile-only {
	display: none !important;
}
/* スマホ版の制御 (767px以下) */
@media (max-width: 767px) {
	.fixed-menu-container .menu-pc-only {
		display: none !important;
	}
	.fixed-menu-container .menu-mobile-only {
		display: block !important;
		position: fixed;
		bottom: 0;
		left: 0;
		width: 100%;
		z-index: 99999;
	}
}

/* ボタン */
.cta-button a {
	position: relative;
	padding-right: 3em !important; /* 三角分の余白 */
}
.cta-button.pink a {
	background-color: #ff7bac;
}
.cta-button.pink a:hover {
	background-color: #e95599;
}
.cta-button a::after {
	content: "";
	position: absolute;
	top: 50%;
	right: 1.2em;
	transform: translateY(-50%);
	width: 0;
	height: 0;
	border-top: 6px solid transparent;
	border-bottom: 6px solid transparent;
	border-left: 8px solid #fff; /* 三角の色 */
}

/* カード */
.class-card {
	padding: 30px 20px;
	background-color: #fff;
	box-shadow: 0 7px 12px rgba(0, 0, 0, 0.1);
}
@media (max-width: 767px){
	.class-card {
		padding: 20px;
	}
}

/* カードバナー */
.card-banner {
	position: relative;
	overflow: hidden !important;
}
.card-banner::before {
	content: "";
	position: absolute;
	inset: 0;
	background-color: rgba(0, 135, 206, 0.3); /* #0087ce の30% */
	mix-blend-mode: multiply;
	z-index: 1;
}
.card-banner::after {
	content: "";
	position: absolute;
	bottom: 1.2em;
	right: 1.2em;
	width: 0;
	height: 0;
	border-top: 6px solid transparent;
	border-bottom: 6px solid transparent;
	border-left: 8px solid #fff; /* 三角の色 */
	z-index: 2;
}
.card-banner > * {
	position: relative;
	z-index: 2;
}
.card-banner-bg {
	position: absolute;
	inset: 0;
	background-size: cover;
	background-position: center;
	transform: scale(1);
	transition: transform 0.6s ease;
	z-index: 0;
}
.card-banner:hover .card-banner-bg {
	transform: scale(1.1);
}
.card-banner p {
	font-size: 1.875rem;
	font-weight: bold;
	text-align: center;
	margin-bottom: 0;
	color: #fff;
}

/* 個別ページタイトルにページ内リンクナビがあるパターン */
.page-anchor-nav {
  position: relative;
  z-index: 50;          /* タイトルエリアより前に出す */
  margin-top: -160px;    /* タイトルエリアに被せる量 */
}
.page-anchor-nav.sub {
	margin-top: 0;
	text-align: center;
}
.page-anchor-nav.sub > div {
	border: 1px solid var(--ast-global-color-0);
    width: auto;
}
.page-anchor-nav a {
	width: 250px;
	padding: 30px 20px !important; 
}
.page-anchor-nav a .uagb-button__link {
	margin-right: 0.5em;
}
.page-anchor-nav a::after {
	content: "";
	display: inline-block;
	width: 2em;
	height: 2em;
	background-image: url("img/arrow-down-circle.svg");
	background-repeat: no-repeat;
	background-size: contain;
}
.page-anchor-nav.sub a::after {
	background-image: url("img/arrow-down-circle-blue.svg");
}
.page-anchor-nav .wp-block-uagb-buttons-child:not(:last-child) {
	position: relative;
}
.page-anchor-nav .wp-block-uagb-buttons-child:not(:last-child)::after {
	content: "";
	position: absolute;
	top: 15%;
	right: 0;
	width: 1px;
	height: 70%;
	background-color: #fff !important;
}
.page-anchor-nav.sub .wp-block-uagb-buttons-child:not(:last-child)::after {
	background-color: var(--ast-global-color-0) !important;
}
@media (max-width: 1199px){
	.page-anchor-nav {
		margin-top: -60px; 
	}
}
@media (max-width: 767px){
	.page-anchor-nav {
		margin-top: 20px; 
	}
	.page-anchor-nav a {
		padding: 10px 20px !important; 
	}
	.page-anchor-nav .wp-block-uagb-buttons-child:not(:last-child)::after {
		top: auto;          /* 縦線用を解除 */
		right: auto;
		bottom: 0;          /* 下に配置 */
		left: 0;          /* 左右に余白 */
		width: 100%;         /* 横線の長さ */
		height: 1px;        /* 横線に変更 */
	}
}

/* ナビ */
@media (max-width: 767px){
	.ast-header-break-point .main-navigation .stack-on-mobile {
		max-width: 400px;
    	margin-inline: auto;
	}
	.ast-header-break-point .main-navigation .stack-on-mobile li {
		text-align: left;
	}
}

/* フッター */
footer .site-primary-footer-wrap {
	border-top: none !important;
}
footer aside {
	display: flex !important;
    flex-direction: column;
}

/**********
トップページ body.home
***********/
/* トップページのみヘッダーを動画の上に重ねる */
body.home header.site-header {
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    background: transparent;
    z-index: 100;
}
/* ヘッダー内要素を前面に */
body.home header.site-header * {
    z-index: 101;
}
/* ヘッダーの背景にグラデ */
body.home header.site-header .ast-primary-header-bar {
	background: linear-gradient(
    to bottom,
    rgba(80, 80, 80, 0.6) 0%,
    rgba(80, 80, 80, 0.3) 40%,
    rgba(80, 80, 80, 0.0) 100%
  );
}
/* ヘッダーのメニューとiconを白に */
body.home .main-header-menu > .menu-item > .menu-link {
	color: #fff;
}
body.home .site-header-primary-section-right .ast-header-social-1-wrap .ast-builder-social-element svg {
	fill: #fff;
}
/* FV動画を画面いっぱいに */
.fv-video-wrap {
    position: relative;
    width: 100%;
    height: 100vh;
    overflow: hidden;
}
/* 動画を全面表示 */
.fv-video {
    position: absolute;
    top: 50%;
    left: 50%;
    width: 100%;
    height: 100%;
    object-fit: cover;
    transform: translate(-50%, -50%);
    z-index: 1;
}
/* FVロゴ（動画の上・ヘッダーの下） */
.fv-logo {
    position: absolute;
    z-index: 2;
    bottom: 0;
    left: 0;
    max-width: 60%;
}
body.home h2 {
	font-size: 1.875rem;
	text-align: center;
}
@media (max-width: 767px){
	.fv-logo {
		max-width: 100%;
		bottom: 50px;
	}
	body.home h2 {
		font-size: 1.5rem;
	}
}

/* PICK UP */
.wp-block-uagb-slider.uagb-block-01e1a48b {
	width: 100% !important;
    max-width: 100% !important;
    margin-left: auto !important;
    margin-right: auto !important;
}
.wp-block-uagb-slider.uagb-block-01e1a48b .uagb-slides.uagb-swiper {
    width: 100%;
    overflow: visible; /* 前後のスライドを見せるために必須 */
}
.wp-block-uagb-slider.uagb-block-01e1a48b .uagb-slides.uagb-swiper{
    overflow: hidden !important;
}
.wp-block-uagb-slider.uagb-block-01e1a48b .uagb-slider-child-wrap.swiper-slide{
  width: 85% !important; /* 80〜90%で調整 */
  transition: transform 200ms ease;
}
.uagb-slider-container.uagb-block-01e1a48b .swiper-pagination {
	bottom: -20px !important;
}
/* PC・タブレット向けにスライドの最大幅を制限する */
@media (min-width: 768px) {
    .wp-block-uagb-slider.uagb-block-01e1a48b .uagb-slider-child-wrap.swiper-slide {
        /* 画面が広すぎるときは%ではなくpxで幅を止める */
        max-width: 800px; 
        width: 85% !important;
    }
}
@media (max-width: 767px){
	.wp-block-uagb-slider.uagb-block-01e1a48b .uagb-slider-child-wrap.swiper-slide{
		width: 90% !important;       /* 90〜95%で調整 */
		transform: none !important;  /* 拡大は誤タップ要因ならOFF推奨 */
	  }
	.uagb-slider-container.uagb-block-01e1a48b .swiper-wrapper {
		min-height: 0 !important;
	}
}

/* お知らせ＆TOPICS このコードは他の一覧ページなどでも使用している*/
/* ============================================================
   1. タブ（Spectra Tabs）の制御
   ============================================================ */
.topics .uagb-tabs__item-wrap:not(.uagb-tabs__active) {
    display: block !important;
    height: 0 !important;
    overflow: hidden !important;
    visibility: hidden !important;
    position: absolute !important;
}
.topics .uagb-tabs__body-wrap {
    border-style: none !important;
    padding: 20px 0;
} 
.topics .uagb-tabs__wrap .uagb-tabs__body-container {
    padding: 0;
}
.topics .uagb-tabs__panel li.uagb-tab {
    color: var(--ast-global-color-0);
    border-color: var(--ast-global-color-0) !important;
    border-radius: 20px;
    transition: 0.2s;
}
.topics .uagb-tabs__panel .uagb-tab.uagb-tabs__active,
.topics .uagb-tabs__panel li.uagb-tab:hover {
    color: var(--ast-global-color-4);
    background-color: var(--ast-global-color-0);
}
.topics .uagb-tabs__wrap ul.uagb-tabs__panel li.uagb-tab a {
    padding: 6px 20px;
}

/* ============================================================
   2. 記事カード（Post Grid）レイアウト
   ============================================================ */
.topics .uagb-post__inner-wrap {
    display: flex !important;
    flex-direction: column !important;
}
.topics .uagb-post__inner-wrap .uagb-post__image {
    order: 1 !important;
    margin-bottom: 0 !important;
    padding-bottom: 0 !important;
}
.topics .uagb-post__inner-wrap .uagb-post__image img {
	aspect-ratio: 16 / 9;
    object-fit: cover;
}
.topics .uagb-post__inner-wrap .uagb-post-grid-byline {
    order: 2 !important;
    display: flex !important;
    align-items: center;
    gap: 10px;
    padding: 10px 0 !important;
}
.topics .uagb-post__inner-wrap .uagb-post-grid-byline time {
    flex-shrink: 0 !important;
    white-space: nowrap !important;
    margin-right: 0 !important;
}
.topics .uagb-post__inner-wrap .uagb-post__title {
    font-size: 1rem !important;
    font-weight: normal;
	color: var(--ast-global-color-3) !important;
    order: 3 !important;
    margin-top: 0 !important;
    padding-bottom: 0 !important;
}
.topics .uagb-post-grid .uagb-post__author::after, 
.topics .uagb-post-grid .uagb-post__date::after, 
.topics .uagb-post-grid .uagb-post__comment::after {
    display: none;
}
.topics .uagb-post-pagination-wrap {
    justify-content: center !important;
}

/* ============================================================
   3. カテゴリーラベル（表示制御）
   ============================================================ */
.topics .uagb-post__taxonomy {
    font-size: 0 !important;
    pointer-events: none !important;
}
.topics .uagb-post__taxonomy a {
    display: none !important;
    background-color: #a1d7f4;
    color: #333;
    padding: 2px 8px;
    font-size: 0.8rem;
    text-decoration: none;
    border-radius: 2px;
}

/* A. すべてタブ（クラスなし）：alumni-letter以外を1つ表示 */
.topics .uagb-post-grid:not(.tab-scenes):not(.tab-events):not(.tab-news):not(.tab-international) .uagb-post__taxonomy a:not([href*="alumni-letter"]) {
    display: inline-block !important;
}
.topics .uagb-post-grid:not(.tab-scenes):not(.tab-events):not(.tab-news):not(.tab-international) .uagb-post__taxonomy a:not([href*="alumni-letter"]) ~ a {
    display: none !important;
}

/* B. 各専用タブ：スラッグ一致のみ表示 */
.tab-scenes .uagb-post__taxonomy a[href*="scenes"],
.tab-events .uagb-post__taxonomy a[href*="events"],
.tab-news .uagb-post__taxonomy a[href*="news"],
.tab-international .uagb-post__taxonomy a[href*="international"] {
    display: inline-block !important;
}

/* ============================================================
   4. レスポンシブ
   ============================================================ */
@media (max-width: 767px) {
    .topics .wp-block-uagb-post-grid.is-grid {
        grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
    }
    .topics .uagb-tabs__wrap.uagb-tabs__stack1-mobile ul.uagb-tabs__panel {
        flex-direction: row;
        gap: 10px;
    }
    .topics .uagb-tabs__wrap.uagb-tabs__stack1-mobile ul.uagb-tabs__panel li.uagb-tab {
        width: 45%;
    }
    .topics .uagb-post__inner-wrap .uagb-post-grid-byline {
        display: flex !important;
		flex-wrap: wrap;
		gap: 5px;
    }
}

/* SPIRIT */
body.home .spirit {
	position: relative;
}
body.home .spirit figure {
	position: absolute;
	top: -80px;
    left: -20px;
	width: 243px !important;
	height: 61px !important;
}
body.home .spirit h3 {
	font-size: 2.5rem;
	text-align: center;
	width: fit-content;
    margin-inline: auto;
	position: relative;
}
body.home .spirit h3::after {
	position: absolute;
	content: "";
	width: 2em;
	height: 2em;
	background-image: url("img/pink-clover.svg");
	background-repeat: no-repeat;
	background-size: contain;
	flex-shrink: 0;
	top: -1.5em;
	right: -1.5em;
}
body.home .spirit p {
	text-align: center;
}
@media (max-width: 767px){
	body.home .spirit figure {
		top: -50px;
		left: -20px;
		width: 120px !important;
		height: 30px !important;
	}
	body.home .spirit h3 {
		font-size: 1.25rem;
	}
	body.home .spirit h3::after {
		right: -2em;
	}
	body.home .spirit p {
		text-align: left;
	}
}

/* 4つの柱 */
body.home .global h2 {
	font-size: 1.25rem;
	text-align: left;
}
body.home .global h3 {
	position: relative;
	font-size: 1.875rem;
	line-height: 1.75;
	z-index: 1;
	isolation: isolate;
}
body.home .global h3::before {
	position: absolute;
	content: "";
	width: 1em;
	height: 1em;
	background-image: url("img/heading-clover.svg");
	background-repeat: no-repeat;
	background-size: contain;
	top: 0;
    left: -0.5em;
	z-index: -1;
}
body.home .global h3 span {
	color: var(--ast-global-color-0);
}
body.home .global .wp-block-uagb-container p {
	margin-bottom: 0;
}
@media (max-width: 767px){
	body.home .global .flex1 {
		flex: 1;
	}
	.uagb-block-c8a1a2fc {
		display: none;
	}
}

/* marquee */
/* 1. 外側のコンテナ：ここ自体は100%幅を維持 */
.gallery-marquee {
    overflow: hidden !important;
    width: 100% !important;
    display: block !important; /* flexからblockに変更して安定させます */
}
/* 2. トラック：ここを強制的に横一列・最小幅100%にします */
.gallery-marquee__track {
    display: flex !important;
    flex-direction: row !important;
    flex-wrap: nowrap !important; /* 折り返しを絶対させない */
    width: max-content !important; 
    min-width: 100%; /* コンテナより中身が少ない時でも100%を確保 */
    animation: marquee-scroll 30s linear infinite;
}
/* 3. グループ：ここが縮まないように設定 */
.gallery-marquee__group {
    display: flex !important;
    flex-direction: row !important;
    flex-wrap: nowrap !important;
    flex-shrink: 0 !important; /* 縮小を禁止 */
    /* 画像間の隙間が必要な場合はここで調整 */
    gap: 10px; 
    padding-right: 10px; /* ループの繋ぎ目のための余白 */
}
/* 4. 中の画像 */
.gallery-marquee__group img {
    width: auto !important;
    height: 200px !important;
    object-fit: cover;
    flex-shrink: 0 !important;
}
/* 5. 無限ループ（3つの場合） */
@keyframes marquee-scroll {
    0% {
        transform: translateX(0);
    }
    100% {
        transform: translateX(-33.3333%);
    }
}

/* 問い合わせ関連 */
body.home .contact .contact-wrap {
	position: relative;
}
body.home .contact .contact-wrap::after {
	content: "";
	position: absolute;
	bottom: 1.2em;
	right: 1.2em;
	width: 0;
	height: 0;
	border-top: 6px solid transparent;
	border-bottom: 6px solid transparent;
	border-left: 8px solid var(--ast-global-color-0);
	z-index: 2;
}
body.home .contact .contact-wrap p {
	margin-bottom: 0;
}
body.home .contact .contact-wrap .contact-title {
	font-weight: bold;
	font-size: 1.25rem;
	color: var(--ast-global-color-0);
	padding-bottom: 10px;
	border-bottom: 1px solid;
}

/* アクセス */
body.home .access .uagb-desc-text {
	font-size: 1.25rem;
	font-weight: bold;
	text-align: center;
	color: var(--ast-global-color-4);
	margin-bottom: 10px;
}
body.home .access h2 {
	color: var(--ast-global-color-4);
}
body.home .access p {
	color: var(--ast-global-color-4);
}


/**********
トップページ以外の固定ページ 
***********/
body.page:not(.home) h2 {
	display: flex;
	align-items: center;
	justify-content: center; /* PC */
	gap: 0.4em;
	line-height: 1.2;
	margin-block: 50px;
}
body.page:not(.home) h2::before {
	content: "";
	width: 2em;
	height: 2em;
	background-image: url("img/heading-clover.svg");
	background-repeat: no-repeat;
	background-size: contain;
	flex-shrink: 0;
}
body.page:not(.home) h3 {
	position: relative;
	padding-left: 16px;
	border-left: 6px solid var(--ast-global-color-0);
}
/* トップページ、お知らせ一覧、同窓会だより一覧を除外 */
body.page:not(.home):not(.page-slug-news):not(.page-slug-reunion):not(.page-slug-alumni) h4 {
	font-size: clamp(1.1rem, 2.5vw, 1.5rem);
	color: var(--ast-global-color-0);
	margin-top: 20px;
}
@media (max-width: 767px){
	body.page:not(.home) h2 {
		justify-content: flex-start;
		text-align: left;
		margin-block: 20px;
	}
}

/**********
学校紹介 body.page-slug-about
***********/
body.page-slug-about .message {
	margin-bottom: 20px;
}
body.page-slug-about .message p {
	margin-bottom: 20px;
}
body.page-slug-about .message p:first-of-type {
	font-size: 2rem;
	font-family: "Noto Serif JP", serif;
	font-weight: 700;
	margin-right: 20px;
	margin-bottom: 10px;
}
body.page-slug-about .message p:first-of-type span {
	display: inline-block;
}
body.page-slug-about .spirit h3 {
	border-left: 0;
	padding-left: 0;
	font-size: 1.5rem;
	color: var(--ast-global-color-0);
	margin-top: 20px;
}
body.page-slug-about .song h2 {
	color: var(--ast-global-color-4);
}
body.page-slug-about .song .meta {
	width: fit-content !important;
    margin-left: auto;
}
body.page-slug-about .bus p {
	margin-bottom: 0;
}
body.page-slug-about .route {
	background-color: var(--ast-global-color-0);
	color: var(--ast-global-color-4);
	width: 15em !important;
	padding: 10px;
	font-weight: bold;
	text-align: center;
}
body.page-slug-about .facility figcaption {
	font-weight: bold;
}
@media (max-width: 976px){
	.wp-block-uagb-container.uagb-is-root-container .uagb-block-28b315f5 {
		flex-wrap: wrap;
		gap: 0;
	}
}
@media (max-width: 767px){
	body.page-slug-about .message p:first-of-type {
		font-size: 1.5rem;
	}
	body.page-slug-about .spirit .order1 {
		order: 1;
	}
	body.page-slug-about .spirit .order2 {
		order: 2;
	}
	body.page-slug-about .spirit h3 {
		font-size: 1.25rem;
	}
	body.page-slug-about .route {
		width: 100% !important;
	}
}

/**********
教育の特色 body.page-slug-feature
***********/
body.page-slug-feature p {
	margin-bottom: 0;
}
body.page-slug-feature .page-anchor-nav.non-tab .wp-block-uagb-buttons-child:last-of-type .uagb-buttons-repeater {
	padding: 22px 20px !important;
}
body.page-slug-feature .page-anchor-nav.non-tab .wp-block-uagb-buttons-child .uagb-buttons-repeater .uagb-button__link {
	line-height: 1.5;
	text-align: left;
}
body.page-slug-feature .uagb-block-c7485973 {
	display: block;
}
body.page-slug-feature .uagb-block-c7485973 .page-anchor-nav:first-of-type {
	border-bottom: 1px solid var(--ast-global-color-4);
}
body.page-slug-feature .uagb-block-c7485973 .page-anchor-nav .wp-block-uagb-buttons-child .uagb-buttons-repeater .uagb-button__link {
	text-align: left;
}
body.page-slug-feature .uagb-block-c7485973 .page-anchor-nav:last-of-type {
	margin-top: 0;
}
body.page-slug-feature h2 {
	margin-top: 20px !important;
	margin-bottom: 10px !important;
}
body.page-slug-feature h2::before {
	display: none;
}
body.page-slug-feature h3 {
	padding-left: 0 !important;
	border-left: none !important;
	font-size: 1.25rem;
	font-weight: bold;
	color: var(--ast-global-color-0);
}
body.page-slug-feature .uagb-desc-text {
	font-size: 1.1rem;
	font-weight: bold;
}
body.page-slug-feature .black h3 {
	color: var(--ast-global-color-3);
}
body.page-slug-feature .class-card {
	box-shadow: 0 7px 12px rgba(0, 0, 0, 0.1);
}
body.page-slug-feature .class-card p {
	margin-bottom: 0;
}
body.page-slug-feature figcaption {
	font-weight: bold;
}
body.page-slug-feature .stages {
	align-items: stretch;
}
body.page-slug-feature .stage {
	border: 1px solid var(--ast-global-color-0);
	border-radius: 10px;
}
body.page-slug-feature .stage h3 {
	text-align: center;
}
body.page-slug-feature .stage h4 {
	font-size: 1rem !important;
	text-align: center;
	margin-top: 0 !important;
}
@media (max-width: 767px){
	body.page-slug-feature .page-anchor-nav.non-tab .wp-block-uagb-buttons-child:last-of-type .uagb-buttons-repeater {
		padding: 10px 20px !important;
	}
	body.page-slug-feature .uagb-block-ed65583c {
		flex: 1;
	}
}

/**********
入学案内 body.page-slug-admission
***********/
body.page-slug-admission h4 {
	color: #333 !important;
}
body.page-slug-admission table {
	border: none;
	border-top: 1px solid #ccc;
}
body.page-slug-admission table thead {
	background-color: #ecf7fd;
	border: none;
}
body.page-slug-admission table th,
body.page-slug-admission table td {
	padding: 0.5em 1em;
	border: none;
	border-bottom: 1px solid #ccc;
}
body.page-slug-admission table span {
	font-weight: bold;
}
body.page-slug-admission .exam-schedule ul {
	list-style: none;
	padding: 0;
	margin: 0;
}
body.page-slug-admission .exam-schedule ul li {
	font-size: 1.25rem;
	font-weight: bold;
	text-align: center;
	color: var(--ast-global-color-0);
	border: 1px solid var(--ast-global-color-0);
	padding: 16px 40px;
	margin-bottom: 12px;
}
@media (max-width: 767px){
	body.page-slug-admission .wp-block-table {
		overflow-x: scroll;
	}
	body.page-slug-admission table {
		width: 600px;
	}
	body.page-slug-admission .exam-schedule ul li {
		padding: 10px;
	}
}

/**********
保護者の皆様へ body.page-slug-parents
***********/
/* mamas-enjoy */
body.page-slug-parents .site-content .mamas-enjoy h3 {
	font-size: 1.4rem;
	font-weight: bold;
	line-height: 1.5;
	text-align: center;
	color: var(--ast-global-color-0);
	padding-left: 0;
	margin-bottom: 10px;
	border-left: 0;
}
body.page-slug-parents .site-content .mamas-enjoy .class-time {
	font-weight: bold;
	text-align: center;
}
body.page-slug-parents .site-content .mamas-enjoy .class-meta {
	margin-bottom: 0;
}
body.page-slug-parents .site-content .mamas-enjoy .class-meta span {
	font-weight: bold;
}
body.page-slug-parents .site-content .mamas-enjoy .class-card-cta p {
	margin-bottom: 0;
}
/* 緊急時 */
body.page-slug-parents .site-content .emergency span {
	font-weight: bold;
}
body.page-slug-parents .site-content .emergency ol {
	margin-left: 0 !important;
}
/* 各種リンク */
body.page-slug-parents .site-content .links h2 {
	justify-content: left;
	margin-bottom: 0;
}
body.page-slug-parents .site-content .links p {
	line-height: 2;
	margin-bottom: 0;
}

/**********
同窓生の扉 body.page-slug-reunion
***********/
body.page-slug-reunion form input {
	margin: 10px;
}
@media screen and (max-width: 767px) {
	body.page-slug-reunion form > p {
		text-align: left;
	}
}

/**********
SEIDO基金のご案内 body.page-slug-fund
***********/
body.page-slug-fund figcaption {
	font-feature-settings: "palt";
}
body.page-slug-fund .project {
	align-items: stretch;
}
body.page-slug-fund .project .class-card {
	padding: 0;
}
body.page-slug-fund .project .class-card .class-title {
	font-size: 1.5rem;
	background-color: var(--ast-global-color-0);
	color: #fff;
	padding: 10px 20px;
}
body.page-slug-fund .project .class-card .class-copy {
	font-size: 1.25rem;
	font-weight: bold;
	color: var(--ast-global-color-0);
	padding-inline: 20px;
	margin-bottom: 0;
}
body.page-slug-fund .project .class-card ul {
	padding-left: 40px;
	padding-right: 20px;
	padding-bottom: 1em;
}

/**********
フォーム
***********/
.wpcf7-form dl dt {
	margin: 0 0 10px;
}
.wpcf7-form dl dd {
	margin: 0 0 30px;
}
.wpcf7-form dl dd p {
	font-size: 90%;
	margin-top: 5px;
}
.wpcf7-form dl dt p {
	font-size: 90%;
	font-weight: normal;
}
.wpcf7-form .request-group {
	padding: 20px;
	background-color: #ecf7fe;
}
.wpcf7-form .entry-group {
	padding: 20px;
	background-color: #f3f6ff;
}
.wpcf7-form .other-group {
	padding: 20px;
	background-color: #f5f5f5;
}
.wpcf7-form .short-wrap {
	display: flex;
	gap: 10px;
	align-items: center;
}
.wpcf7-form .short-wrap .wpcf7-form-control-wrap {
	width: max-content;
}
.wpcf7-form .short {
	width: 300px !important;
}

.wpcf7-form .terms {
    color: var(--ast-global-color-5);
    padding: 2px 10px;
    font-size: 0.7rem;
    font-weight: bold;
    text-align: center;
    margin-right: 15px;
	border-radius: 10px;
}
.wpcf7-form .terms.require {
    background-color: #f15a24;
}
.wpcf7-form .terms.optional {
    background-color: #999;
}
.wpcf7-form .bold {
    font-weight: 600;
}
.wpcf7-form [data-name="postal-code"] {
	display: inline-block;
    width: 200px;
    margin-bottom: 15px;
}
.wpcf7-form .confirmation .bold {
    margin-bottom: 10px;
}
.wpcf7-form .privacy {
    font-size: 80%;
    padding-left: 20px;
    margin-top: 20px;
}
.wpcf7-form .privacy a {
    color: var(--ast-global-color-1) !important;
}
.wpcf7-form .confirm {
    text-align: center;
    margin-top: 50px;
}
.wpcf7-form .confirm > .wpcf7-form-control-wrap {
    margin-bottom: 20px;
}
.wpcf7-form .confirm .wpcf7-submit {
	background-color: var(--ast-global-color-1);
	border-color: var(--ast-global-color-1);
    color: var(--ast-global-color-5);
}
.wpcf7-form .confirm .wpcf7-submit:hover {
	background-color: var(--ast-global-color-2);
	border-color: var(--ast-global-color-2);
}
.wpcf7-form .confirm .wpcf7-spinner {
    display: none;
}
@media (max-width: 768px) {
    .wpcf7-form dl dt {
        width: 100%;
        margin-bottom: 10px;
    }
    .wpcf7-form dl dd {
        width: 100%;
        margin: 0 0 30px 0;
    }
    .wpcf7-form .privacy {
        padding-left: 0;
    }
    .wpcf7-form .wpcf7-acceptance span {
        margin: 0;
    }
}

/**********
個別投稿
***********/
.single .entry-header {
	display: flex;
    flex-direction: column;
}
.single .entry-header h1 {
	order: 1;
}
.single .entry-header .post-thumb-img-content {
	order: 3;
}
.single .entry-header .entry-meta {
	order: 2;
	margin-bottom: 20px;
}
header.entry-header .post-thumb img, .ast-single-post-featured-section.post-thumb img {
	object-fit: cover;
}
.single .post-navigation {
	display: none;
}
.ast-article-single figure:not(.wp-block-image):not(.wp-block-gallery) {
	box-shadow: none;
}

/**********
過去のお知らせ一覧 個別投稿
***********/
.single-news_archive figure {
	box-shadow: none;
}

/**********
404
***********/
body.error404 .page-header {
	margin-bottom: 0;
}
body.error404 .page-content {
	display: none;
}
