/* ========================================================================== */
/* 全サイズ共通ここから */
/* ========================================================================== */

/* -------------------------------------------------------------------------- */
/* リセットここから */
/* -------------------------------------------------------------------------- */
body:not(.top_index) {
	background-image: initial;
	background-repeat: initial;
	background-size: initial;
}
#page-theme-guide {
	display: none;
}


/* -------------------------------------------------------------------------- */
/* リセットここまで */
/* -------------------------------------------------------------------------- */


/* -------------------------------------------------------------------------- */
/* 印刷用ここから */
/* -------------------------------------------------------------------------- */
/* ボタン押下でbodyに .view_print_mode が付いたときの画面上の見た目 */
body.view_print_mode > header,
body.view_print_mode > footer,
body.view_print_mode nav.breadcrumb,
body.view_print_mode .header-actions,
body.view_print_mode #main_sidebar,
body.view_print_mode .btn-pagetop {
	display: none !important;
}

body.view_print_mode #main_content {
	max-width: 100% !important;
	padding: 10px !important;
}
@media print {
	/* 印刷時に消すパーツ */
	body > header,
	body > footer,
	nav.breadcrumb,
	.header-actions,
	.btn-pagetop,
	.section-loop,
	.video-carousel,
	#print_mode_link {
		display: none !important;
	}

	/* 印刷時の本文を余白なし・100%幅にする */
	body, #main_content, #main_body {
		width: 100% !important;
		min-width: 1200px;
		max-width: none !important;
		margin: 0 !important;
		padding: 0 !important;
		background: #fff !important;
		color: #000 !important;
	}
}
/* -------------------------------------------------------------------------- */
/* 印刷用ここまで */
/* -------------------------------------------------------------------------- */


/* -------------------------------------------------------------------------- */
/* 共通ここから */
/* -------------------------------------------------------------------------- */
* {
	box-sizing: border-box;
}
body {
	overflow-x: hidden;
	font-family: "游ゴシック体", "Yu Gothic", YuGothic, "メイリオ", "Meiryo", sans-serif !important;
	min-width: 0;
	position: relative;
}
section {
	padding: 0 0.5em;
}
img {
	max-width: 100%;
	height: auto;
}
body a, body a:link, body a:visited {
	color: #0D59B7;
	text-decoration: none;
}
body a:hover {
	color: #333;
	text-decoration: underline;
}
body a img {
	transition: 0.3s;
}
body a:hover img {
	opacity: 0.8;
}
body a[id]:not([href]) {
    color: inherit;              /* 親の見出しテキスト色をそのまま継承 */
    text-decoration: none;       /* 下線を消す */
    cursor: default;             /* リンクのポインター指マークを通常の矢印に戻す */
    pointer-events: none;        /* クリック判定・フォーカスを無効化 */
}
p, li, .no_data {
	font-size: 1em;
}
/* スクリーンリーダー専用非表示クラス（JIS / WCAG準拠） */
.sr-only {
	position: absolute !important;
	width: 1px !important;
	height: 1px !important;
	padding: 0 !important;
	margin: -1px !important;
	overflow: hidden !important;
	clip: rect(0, 0, 0, 0) !important;
	white-space: nowrap !important;
	border: 0 !important;
}

.container {
	max-width: 1200px;
	width: 100%;
	margin: 0 auto;
}

/* 固定ヘッダーの高さ分、スクロール停止位置を下にずらす */
:target,
[id] {
  scroll-margin-top: 80px; /* ヘッダーの高さ（実寸に合わせて調整） */
}

/* スムーススクロールをCSSに任せる場合 */
html {
  scroll-behavior: smooth;
}
/* -------------------------------------------------------------------------- */
/* 共通ここまで */
/* -------------------------------------------------------------------------- */



/* -------------------------------------------------------------------------- */
/* チェッカー画面用ここから */
/* -------------------------------------------------------------------------- */
body.site.site_index .errrange ~ .site-header, body.site.site_detail .errrange ~ .site-header {
	position: absolute;
}
body:not(.site_index):has(> .errrange) {
    display: block;
}
/* -------------------------------------------------------------------------- */
/* チェッカー画面用ここまで */
/* -------------------------------------------------------------------------- */



/* -------------------------------------------------------------------------- */
/* ヘッダーここから */
/* -------------------------------------------------------------------------- */
.site-header {
	background-color: #2e62a8;
	position: fixed;
	z-index: 100;
	width: 100%;
	max-width: 100dvw;
}

.header-inner {
	max-width: none;
	margin: 0 auto;
	padding: 0 0 0 1.5em;
	display: flex;
	align-items: center;
	justify-content: space-between;
	height: 77px; /* 青帯の高さを固定 */
	position: relative;
}



/* --- ロゴエリア（仮領域 兼 はみ出しの起点） --- */
.site-logo {
	margin: 0;
	flex: 0 1 236px;
	max-width: 10%;
	height: 77px;
	position: relative;
}

/* ロゴリンク（絶対配置で下にはみ出させる） */
.site-logo a {
	position: absolute;
	top: 0;
	left: 0;
	display: block;
	width: 100%;
}

/* ロゴ画像 */
.site-logo img {
	display: block;
	width: 100%;
	height: auto;
}

/* --- ナビゲーションエリア --- */
.global-nav {
	height: 100%;
}

.global-nav ul {
	display: flex;
	align-items: stretch;
	height: 100%;
	list-style: none;
	margin: 0;
	padding: 0;
}

.global-nav li {
	display: flex;
	height: 100%;
}

/* 通常のメニュースタイル（ボタン化） */
body .global-nav a {
	display: flex;
	align-items: center;     /* 垂直方向の中央揃え（上下の余白がすべてクリック領域になる） */
	justify-content: center;  /* 水平方向の中央揃え */
	height: 100%;            /* 70pxいっぱいに広げる */
	padding: 0 1em;         /* 左右のクリック領域 */
	background-color: #2e62a8;
	
	color: #fff;
	text-decoration: none;
	font-size: 1.25em;
	font-weight: 600;
	text-align: center;
	line-height: 1.2;        /* 2行になったときの行間を詰める */
	white-space: nowrap;     /* 意図しない改行を防ぐ */

	transition: background-color 0.2s ease;
}

body .global-nav a:hover {
    background-color: #f0f0f0;
    color: #333;
}

/* spanタグで改行させたい場合の指定（小学校 / ブログ など） */
.global-nav a span {
	display: block; /* spanごとに改行して2行にする場合 */
}


/* --- 右端の「いじめ防止対策基本方針」白ボタン --- */
.global-nav .nav-end-link {
	display: flex;
	align-items: center;
}

.global-nav .nav-end-link a {
	padding: 0 1.5em;
	background-color: #EBF8EF;
	color: #333;
	font-weight: bold;
}

.global-nav .nav-end-link a:hover {
	background-color: #f0f0f0;
	color: #000;
}
.btn-hamburger,
.global-nav .sub-menu,
.sub-menu-toggle,
.global-nav .nav-download-sp {
	display: none;
}
/* -------------------------------------------------------------------------- */
/* ヘッダーここまで */
/* -------------------------------------------------------------------------- */




/* -------------------------------------------------------------------------- */
/* スライドショーここから */
/* -------------------------------------------------------------------------- */
.hero-slider {
	position: relative;
	width: 100%;
	overflow: hidden;
	background-color: #000;
	margin-top: 77px;
}
.slider-wrapper .detail_free p {
	margin: 0;
	padding: 0;
	line-height: 0;
}

.hero-slider .pdf_download {
	display: none;
}

/* CMS出力の画像スタイル上書き & レスポンシブ対応 */
.slider-wrapper .detail_free p {
	margin: 0;
	padding: 0;
	line-height: 0;
}

.slider-wrapper .detail_free img {
	width: 100% !important;
	height: auto !important;
	aspect-ratio: 2000 / 800; /* ★2000px × 800px（比率 5:2）を厳格に維持 */
	max-height: 800px;        /* ★最大高さを800pxに制限 */
	/* min-height: 260px; ★スマホで極端に帯状に細くなるのを防止 */
	object-fit: cover;        /* ★比率が違う画像を枠いっぱいにトリミング */
	object-position: center;  /* ★画像の中心を基準に切り抜き */
	display: block;
}

/* --- コントローラー全体の配置 --- */
.slider-controls {
	position: absolute;
	bottom: 24px;
	left: 50%;
	transform: translateX(-50%);
	display: flex;
	align-items: center;
	gap: 12px;
	z-index: 10;
}

/* 丸ボタン共通（前へ・次へ・停止/再生） */
.slider-controls .ctrl-btn {
	width: 42px;
	height: 42px;
	border-radius: 50%;
	background-color: #fff;
	border: 3px solid #3c71b6; /* 枠線の青色 */
	cursor: pointer;
	display: flex;
	align-items: center;
	justify-content: center;
	padding: 0;
	transition: transform 0.2s ease, opacity 0.2s ease;
}

.slider-controls .ctrl-btn:hover {
	opacity: 0.85;
	transform: scale(1.06);
}

/* --- 1. 前へ矢印（＜） --- */
.slider-controls .btn-prev::before {
	content: "";
	display: block;
	width: 10px;
	height: 10px;
	border-left: 3px solid #3c71b6;
	border-bottom: 3px solid #3c71b6;
	transform: rotate(45deg);
	margin-left: 4px;
}

/* --- 2. スライドカウンター（1/5 ピル型） --- */
.slider-controls .slide-counter {
	background-color: #3c71b6;
	color: #fff;
	font-size: 1.15rem;
	font-weight: bold;
	letter-spacing: 0.05em;
	padding: 6px 24px;
	border-radius: 9999px; /* 完全な角丸カプセル型 */
	display: flex;
	align-items: center;
	justify-content: center;
	min-width: 90px;
	height: 42px;
	box-shadow: 0 2px 6px rgba(0, 0, 0, 0.15);
	user-select: none;
}

/* --- 3. 一時停止ボタン（||） --- */
.slider-controls .btn-play-pause::before,
.slider-controls .btn-play-pause::after {
	content: "";
	display: block;
	width: 3px;
	height: 14px;
	background-color: #3c71b6;
}
.slider-controls .btn-play-pause::before {
	margin-right: 4px;
}

/* 停止中に切り替わったときの再生アイコン（▶） */
.slider-controls .btn-play-pause.is-paused::before {
	display: none;
}
.slider-controls .btn-play-pause.is-paused::after {
	width: 0;
	height: 0;
	background-color: transparent;
	border-style: solid;
	border-width: 7px 0 7px 12px;
	border-color: transparent transparent transparent #3c71b6;
	margin-left: 3px;
}

/* --- 4. 次へ矢印（＞） --- */
.slider-controls .btn-next::before {
	content: "";
	display: block;
	width: 10px;
	height: 10px;
	border-right: 3px solid #3c71b6;
	border-top: 3px solid #3c71b6;
	transform: rotate(45deg);
	margin-right: 4px;
}
/* -------------------------------------------------------------------------- */
/* スライドショーここまで */
/* -------------------------------------------------------------------------- */



/* -------------------------------------------------------------------------- */
/* メッセージここから */
/* -------------------------------------------------------------------------- */
section.section-message {
	padding: 5em 0.5em 8em;
}
.section-message h2 {
	font-size: 2em;
	color: #333333;
	position: relative;
}
.section-message h2::before {
	content: 'MESSAGE';
	position: absolute;
	top: 0;
	left: 0;
	right: 0;
	transform: translate(0, -125%);
	color: #4A77BA;
	font-size: 0.5625em;
}
.message-body {
	margin: -3.5em 0 0;
	padding: 3.5em 0;
	background-image: url(/img/namiesosei/template/img-seagull.png);
	background-size: contain;
	background-position: center;
	background-repeat: no-repeat;
}
.message-body p {
	font-size: 1.25em;
	font-weight: 500;
	line-height: 2;
}
.message-body span {
	white-space: nowrap;
}

/* --- スクロール誘導（SCROLLインジケーター） --- */
.scroll-down {
	text-align: center;
	margin-top: 1.5em;
	position: relative;
	z-index: 2;
}

.scroll-down a {
	display: inline-flex;
	flex-direction: column;
	align-items: center;
	text-decoration: none;
	transition: opacity 0.3s ease;
	pointer-events: none;
}

.scroll-down a:hover {
	opacity: 0.7;
}

/* 1. 二重山型矢印 */
.scroll-arrows {
	position: relative;
	display: block;
	width: 20px;
	height: 18px;
	margin-bottom: 6px;
}

.scroll-arrows::before,
.scroll-arrows::after {
	content: '';
	position: absolute;
	left: 50%;
	width: 10px;
	height: 10px;
	border-right: 2px solid #4A77BA;
	border-bottom: 2px solid #4A77BA;
	transform: translateX(-50%) rotate(45deg);
}

.scroll-arrows::before {
	top: 0;
}

.scroll-arrows::after {
	top: 6px;
}

/* 2. SCROLL テキスト */
.scroll-text {
	display: block; /* transformを確実に反映させるために指定 */
	font-size: 0.9em;
	font-weight: 700;
	color: #4A77BA;
	letter-spacing: 0.12em;
	line-height: 1;
	text-transform: uppercase;
}

/* ★矢印とSCROLL文字を一緒に上下に揺らす */
.scroll-arrows,
.scroll-text {
	animation: scrollBounce 1.8s ease-in-out infinite;
}

@keyframes scrollBounce {
	0%, 100% {
		transform: translateY(0);
	}
	50% {
		transform: translateY(6px); /* 矢印と文字が揃って6px下へ沈み込む */
	}
}

/* 3. 下に伸びる長い縦線（流れるアニメーション併用時） */
.scroll-line {
	display: block;
	position: absolute;
	width: 1px;
	height: 150px;
	background-color: rgba(51, 51, 51, 0.2);
	margin-top: 14px;
	overflow: hidden;
	transform: translate(0, 50%);
}

.scroll-line::before {
	content: '';
	position: absolute;
	top: 0;
	left: 0;
	width: 100%;
	height: 100%;
	background-color: #333333;
	animation: lineFlow 2s cubic-bezier(0.65, 0, 0.35, 1) infinite;
}

@keyframes lineFlow {
	0% { transform: translateY(-100%); }
	60%, 100% { transform: translateY(100%); }
}

/* -------------------------------------------------------------------------- */
/* メッセージここまで */
/* -------------------------------------------------------------------------- */



/* -------------------------------------------------------------------------- */
/* 新着情報ここから */
/* -------------------------------------------------------------------------- */
/* ･･････････････････････････････････････････････････････････････････････････ */
/* レイアウト */
/* ･･････････････････････････････････････････････････････････････････････････ */
.section-info {
	background-color: #F6F8FC;
	padding: 7em 0.5em 5em;
	border-radius: 80px 80px 0 0;
}

/* ･･････････････････････････････････････････････････････････････････････････ */
/* 見出し */
/* ･･････････････････････････････････････････････････････････････････････････ */
.section-info h2 {
	font-size: 2em;
	color: #333333;
	position: relative;
}
.section-info h2::before {
	content: 'NEWS';
	position: absolute;
	top: 0;
	left: 0;
	right: 0;
	transform: translate(0, -125%);
	color: #4A77BA;
	font-size: 0.5625em;
}

/* 新着情報リストのスタイル例 */
#news-list li {
	margin-bottom: 0.8em;
	display: flex;        /* 日付とタイトルを横並びに配置 */
	align-items: baseline;
	gap: 1em;             /* 日付とリンクの間の余白 */
}

#news-list time {
	flex-shrink: 0;       /* 日付部分が縮まないように固定 */
	color: #666;          /* 日付を少し落ち着いた色味に */
	font-size: 0.9em;
	font-variant-numeric: tabular-nums; /* 数字の横幅を均等に */
}

#news-list a {
	text-decoration: none;
	color: #333;
}

#news-list a:hover {
	text-decoration: underline;
}

/* ･･････････････････････････････････････････････････････････････････････････ */
/* 新着ボックス */
/* ･･････････････････････････････････････････････････････････････････････････ */
.section_information.container {
	padding: 0;
	background-image: none;
	border-radius: 0;
}
.section_information_list_wrap {
	width: 100%;
	margin: 0 auto;
	border-radius: 0;
}
.section_information_list ul {
	padding: 1em 2em;
	text-align: left;
}
.section_information_list ul li {
    position: relative;
    margin: 0.4em 0 0;
    padding: 0.8em 0 0.8em 1.5em;
    border-bottom: 1px solid #DBDBDB;
    font-size: 1.25em;
}
.section_information_list ul li:first-child {
	margin-top: 0;
}
.section_information_list ul li::before {
	content: '';
	position: absolute;
	top: 1.55em;
	left: 0;
	transform: translate(0, -50%);
	display: inline-block;
	width: 7px;
	height: 9px;
	background-color: #3c71b6;
	clip-path: polygon(0 0, 100% 50%, 0 100%);
	vertical-align: middle;
}
.section_information_list ul li>time {
	display: table-cell;
	width: 8.5em;
}

/* ･･････････････････････････････････････････････････････････････････････････ */
/* 一覧ボタン */
/* ･･････････････････････････････････････････････････････････････････････････ */
.section_information_list div.link_box {
    padding: 0.25em 1.25em 1.5em;
}
.section_information_list div.link_box span:first-child {
    margin: 0.5em 0;
    padding: 0;
}
.section_information_list div.link_box span:first-child:before {
    content: '';
	display: none;
}
.section_information_list div.link_box span a {
    display: block;
    width: 250px;
    border-radius: 200px;
    background-color: #4A77BA;
    padding: 0.8em;
    color: #fff;
    font-size: 1.25em;
    font-weight: 500;
    text-decoration: none;
}

/* ･･････････････････････････････････････････････････････････････････････････ */
/* 小中学校ブログ */
/* ･･････････････････････････････････････････････････････････････････････････ */
/* -------------------------------------------------------------------------- */
/* ブログここから */
/* -------------------------------------------------------------------------- */
.section-blog-news {
    padding: 6em 0.5em;
    background-color: #DFF6FF; /* 画像読み込み前・未設定時の下地色 */
    background-image: 
        /* #DFF6FF (rgb: 223, 246, 255) の半透明レイヤーを重ねて写真を透かす */
        linear-gradient(rgba(223, 246, 255, 0.85), rgba(223, 246, 255, 0.85)),
        url(/img/namiesosei/template/bg-news.jpg);
    background-position: center 30%;
    background-size: cover;
    background-repeat: no-repeat;
}

/* ★親コンテナをGridで均等2分割 */
.blog-news-container {
    display: grid;
    grid-template-columns: repeat(2, 1fr); /* 均等な2カラム */
    gap: 2em;                             /* 左右カードの間隔 */
    align-items: stretch;                  /* 左右の高さを揃える */
}

/* 各カード（白いメモ用紙風スタイル） */
.news-card {
    background-color: #ffffff;
    border-radius: 12px;
    box-shadow: 0 10px 25px rgba(0, 0, 0, 0.08);
    padding: 2.5em 2em 2em;
    position: relative; /* クリップアイコン等の起点 */
    display: flex;
    flex-direction: column;
}

/* --- カードの見出し（h3） --- */
.news-card h3 {
    text-align: center;
    font-size: 1.75em;
    color: #333333;
    margin: 0 0.5em 1.5em 0;
    padding: 0 0 0 0.5em;
    position: relative;
    display: inline-block;
    align-self: center;
}
article.news-card.card-primary::before {
    content: '';
    background-image: url(/img/namiesosei/template/img-pinch-blue.png);
    display: block;
    width: 55px;
    height: 65px;
    position: absolute;
    top: 0;
    transform: translate(0, -65%);
}
article.news-card.card-junior::before {
    content: '';
    background-image: url(/img/namiesosei/template/img-pinch-green.png);
    display: block;
    width: 55px;
    height: 65px;
    position: absolute;
    top: 0;
    transform: translate(0, -65%);
}


/* 小学校：青系の下線 */
.card-primary h3 {
    border-bottom: 5px solid #5B9BFB;
}
.card-primary h3::after {
    content: '';
    background-image: url(/img/namiesosei/template/img-highlighter-blue.svg);
    width: 38px;
    height: 44px;
    display: block;
    position: absolute;
    top: 0;
    right: 0;
    transform: translate(30px, 3px);
}

/* 中学校：緑系の下線 */
.card-junior h3 {
    border-bottom: 5px solid #7CD092;
}
.card-junior h3::after {
    content: '';
    background-image: url(/img/namiesosei/template/img-highlighter-green.svg);
    width: 38px;
    height: 44px;
    display: block;
    position: absolute;
    top: 0;
    right: 0;
    transform: translate(30px, 3px);
}

/* --- 記事リスト枠（縦スクロール領域） --- */
.news-card .news-list {
    list-style: none;
    margin: 0;
    padding: 0 10px 0 0;
    max-height: 420px;      /* 高さを制限してスクロール可能に */
    overflow-y: auto;       /* はみ出た分をスクロール */
    flex-grow: 1;
}

/* 各記事アイテム（点線区切り） */
.news-card .news-list li {
    position: relative;
    padding: 1em 0 1em 1.2em;
    border-bottom: 1px dotted #ccc;
	text-align: left;
    font-size: 1.25em;
    line-height: 1.5;
}

.news-card .news-list li:last-child {
    border-bottom: none;
}

/* 日付とタイトルの配置 */
.news-card .news-list time {
    display: block;
    color: #333;
    margin-bottom: 0.2em;
}

.news-card .news-list a {
    text-decoration: none;
    font-weight: 500;
}

.news-card .news-list a:hover {
    text-decoration: underline;
}

/* 先頭の小さな三角形アイコン（先ほど作成したもの） */
.news-card .news-list li::before {
    content: "";
    position: absolute;
    top: 1.55em;
    left: 0;
    width: 6px;
    height: 8px;
    background-color: #666;
    clip-path: polygon(0 0, 100% 50%, 0 100%);
}

/* --- スクロールバーのデザイン（カンプに合わせた細い黒バー） --- */
.news-card .news-list::-webkit-scrollbar {
    width: 5px;
}
.news-card .news-list::-webkit-scrollbar-track {
    background: transparent;
}
.news-card .news-list::-webkit-scrollbar-thumb {
    background: #333;
    border-radius: 10px;
}
/* -------------------------------------------------------------------------- */
/* ブログここまで */
/* -------------------------------------------------------------------------- */

/* -------------------------------------------------------------------------- */
/* 新着情報ここまで */
/* -------------------------------------------------------------------------- */






/* -------------------------------------------------------------------------- */
/* 年間行事ここから */
/* -------------------------------------------------------------------------- */

/* ･･････････････････････････････････････････････････････････････････････････ */
/* 見出し */
/* ･･････････････････････････････････････････････････････････････････････････ */
.section-schedule h2 {
	font-size: 2em;
	color: #333333;
	position: relative;
}
.section-schedule h2::before {
	content: 'SCHEDULE';
	position: absolute;
	top: 0;
	left: 0;
	right: 0;
	transform: translate(0, -125%);
	color: #4A77BA;
	font-size: 0.5625em;
}

/* ･･････････････････････････････････････････････････････････････････････････ */
/* 枠 */
/* ･･････････････････････････････････････････････････････････････････････････ */
.section-schedule {
    padding: 5em 1em 10em;
    text-align: center;
	position: relative;

	/* 方眼紙背景 */
    background-color: #ffffff;
    background-image: 
        linear-gradient(to right, #F3F3F3 1px, transparent 1px),
        linear-gradient(to bottom, #F3F3F3 1px, transparent 1px);
    background-size: 40px 40px;

	overflow: hidden;
}

.schedule-links {
    display: flex;
    flex-wrap: wrap;
    gap: 24px;
    justify-content: center;
    max-width: 1040px;
    margin: 40px auto 0;

	position: relative;
}
.schedule-links.container a {
    position: relative;
    z-index: 9;
}

/* カード共通 */
.schedule-banner {
    position: relative;
    flex: 1 1 310px;
    max-width: 550px;
    min-height: 220px;

    /* 外枠（16px固定・角丸10px）[cite: 2, 3] */
    border-width: 16px;
    border-style: solid;
    border-radius: 10px;
    background-color: #ffffff;
    box-sizing: border-box;

    /* 中身の配置 */
    display: flex;
    flex-direction: column;
    justify-content: center;
    align-items: center;
    text-decoration: none;
    color: #2b1f1d;
    padding: 44px 20px 20px; /* 金具の下から文字が始まるよう余白確保 */
    transition: transform 0.2s ease, opacity 0.2s ease;
}

.schedule-banner:hover {
    transform: translateY(-2px);
    opacity: 0.85;
}

/* 枠線のカラー[cite: 1] */
.banner-primary {
    border-color: #5396ff;
}

.banner-junior {
    border-color: #77c88b;
}

/* 左側の線 */
.schedule-banner::before {
    content: '';
    position: absolute;
    top: 0;               /* 外枠の内側の位置 */
    left: 10px;              /* 左端[cite: 9] */
    width: calc(50% - 80px); /* 金具の足手前までの長さ[cite: 4] */
    height: 3px;             /* 線の太さ3px */
    background-color: #2b1f1d;
    border-radius: 9999px;   /* 丸形線端[cite: 9] */
    z-index: 1;
}

/* 右側の線[cite: 4] */
.schedule-banner::after {
    content: '';
    position: absolute;
    top: 0;
    right: 10px;             /* 右端 */
    width: calc(50% - 80px); /* 金具の足手前までの長さ[cite: 4] */
    height: 3px;
    background-color: #2b1f1d;
    border-radius: 9999px;   /* 丸形線端[cite: 9] */
    z-index: 1;
}

/* クリップパーツ（画像） */
.banner-clip {
    position: absolute;
    top: -27px;              /* 枠線の上に金具が乗る上下位置[cite: 2, 3] */
    left: 50%;
    transform: translateX(-50%);
    width: 140px;            /* 書き出したSVGの横幅に合わせて調整[cite: 8] */
    height: 55px;            /* 書き出したSVGの高さに合わせて調整[cite: 8] */
    background: url('/img/namiesosei/template/img-clip-parts.svg') no-repeat center center;
    background-size: contain;
    z-index: 2;
    pointer-events: none;
}

/* 中央の短い線（クリップの内側）[cite: 4] */
.banner-clip::after {
    content: '';
    position: absolute;
    top: calc(24px + 3px);
    left: 50%;
    transform: translateX(-50%);
    width: 100px;            /* 中央の線の横幅[cite: 4] */
    height: 3px;             /* 線の太さ3px */
    background-color: #2b1f1d;
    border-radius: 9999px;   /* 丸形線端[cite: 9] */
    z-index: 1;
}

.banner-title {
    font-size: clamp(1em, 2.2vw, 2em);
    font-weight: bold;
    letter-spacing: 0.05em;
    line-height: 1.4;
    text-align: center;
	color: #000;
}
.banner-title br {
	display: none;
}

.banner-file {
    margin-top: 8px;
    font-size: clamp(1em, 1.6vw, 1em);
    color: #000;
    letter-spacing: 0.03em;
}

/* ･･････････････････････････････････････････････････････････････････････････ */
/* 年間行事：うけどん登場＆揺れアニメーション */
/* ･･････････････････････････････････････････････････････････････････････････ */
/* 初期状態：画面に入る前は透明＆少し下・縮小位置に待機 */
.section-schedule::before {
    content: '';
    background-image: url(/img/namiesosei/template/img-schedule-ukedon.svg);
    display: block;
    width: 300px;
    height: 349px;
    position: absolute;
    /* 位置（お好みに合わせて調整してください） */
    top: 15%;
    left: 5%;
    z-index: 3;
    pointer-events: none;

    /* 初期非表示 */
    opacity: 0;
    transform: translateY(60px) scale(0.7) rotate(-14deg);
    transform-origin: bottom center;
}

/* 画面内に入ったとき（.is-inview が付与されたとき） */
.section-schedule.is-inview::before {
    /* 
      1. jumpIn: 画面に入った瞬間に跳ねて登場（0.7秒）
      2. swingLoop: 登場後、3秒ごとに周期的に左右にゆらゆら揺れる（無限ループ）
    */
    animation: 
        ukedonJumpIn 0.7s cubic-bezier(0.34, 1.56, 0.64, 1) forwards,
        ukedonSwingLoop 3.5s ease-in-out 0.8s infinite;
}

/* 1. ジャンプして飛び出してくるアニメーション */
@keyframes ukedonJumpIn {
    0% {
        opacity: 0;
        transform: translateY(80px) scale(0.5) rotate(-20deg);
    }
    60% {
        opacity: 1;
        transform: translateY(-25px) scale(1.08) rotate(-10deg); /* 一度高く飛び跳ねる */
    }
    80% {
        transform: translateY(8px) scale(0.96) rotate(-16deg); /* 着地で少し潰れる */
    }
    100% {
        opacity: 1;
        transform: translateY(0) scale(1) rotate(-14deg); /* 定位置（-14度） */
    }
}

/* 2. 定期的に左右に揺れるアニメーション（アイドリング演出） */
@keyframes ukedonSwingLoop {
    0%, 60%, 100% {
        /* 何もしない待機時間 */
        transform: translateY(0) rotate(-14deg);
    }
    68% {
        /* 左にクイッと傾く */
        transform: translateY(-8px) rotate(-22deg);
    }
    76% {
        /* 右に少し揺れ戻る */
        transform: translateY(-2px) rotate(-8deg);
    }
    84% {
        /* もう一度小さく左へ */
        transform: translateY(-4px) rotate(-17deg);
    }
    92% {
        /* 定位置に戻る */
        transform: translateY(0) rotate(-14deg);
    }
}

/* ･･････････････････････････････････････････････････････････････････････････ */
/* 年間行事：地球儀 */
/* ･･････････････････････････････････････････････････････････････････････････ */
.section-schedule::after {
    content: '';
    background-image: url(/img/namiesosei/template/img-schedule-web.svg);
    display: block;
    width: 350px;
    height: 350px;
    position: absolute;
    /* 位置（お好みに合わせて調整してください） */
    top: 15%;
    right: 5%;
    z-index: 3;
    pointer-events: none;

    /* 初期非表示 */
    opacity: 0;
    transform: rotate(23.4deg);
}


/* 元の背景アイコンは表示しない */
.section-schedule::after {
    content: none;
}

/* 配置・傾き・全体の色 */
.schedule-globe {
    --globe-size: 350px;
    --globe-line: 10px;
    --globe-speed: 24s;

    position: absolute;
    top: -5%;
    right: -2%;
    z-index: 3;

    width: var(--globe-size);
    height: var(--globe-size);
    color: #4a77ba;

    pointer-events: none;

    /* 元SVGの淡さを全体に適用 */
    opacity: 0.1;

    /* 地軸の傾きを固定 */
    transform: rotate(23.4deg);
    transform-origin: center;

	border-radius: 50%;
    overflow: hidden;
}

.schedule-globe,
.schedule-globe * {
    box-sizing: border-box;
}

/* 外周・緯線・経線を同じ位置に重ねる */
.schedule-globe__outline,
.schedule-globe__latitudes,
.schedule-globe__rotation {
    position: absolute;
    inset: 0;
}

/* 外周は円形のまま固定 */
.schedule-globe__outline {
    border: var(--globe-line) solid currentColor;
    border-radius: 50%;
}

/* 緯線 */
.schedule-globe__latitudes > span {
    position: absolute;
    top: var(--top);
    left: 50%;

    width: var(--width);
    height: var(--globe-line);
    background: currentColor;

    transform: translate(-50%, -50%);
}
/* 向きの異なる円を立体的に配置 */
.schedule-globe__rotation > span {
    position: absolute;
    inset: 0;

    border: var(--globe-line) solid currentColor;
    border-radius: 50%;

    transform: rotateY(var(--angle));
    backface-visibility: visible;
}

/* 経線描画用SVG */
.schedule-globe__rotation > svg {
    display: block;
    width: 100%;
    height: 100%;
    overflow: visible;
}

/* 手前側の経線5本 */
.schedule-globe__rotation path {
    fill: none;
    stroke: currentColor;
    stroke-width: 10;
    stroke-linecap: round;
    vector-effect: non-scaling-stroke;

    transform-box: view-box;
    transform-origin: 50% 50%;

    animation-name: schedule-meridian-flow;
    animation-duration: var(--globe-speed); /* ★変数を適用 */
    animation-timing-function: linear;
    animation-iteration-count: infinite;
    animation-delay: var(--delay);
}

.schedule-globe__rotation path:nth-child(1) { --delay: calc(var(--globe-speed) * -0.0); }
.schedule-globe__rotation path:nth-child(2) { --delay: calc(var(--globe-speed) * -0.2); }
.schedule-globe__rotation path:nth-child(3) { --delay: calc(var(--globe-speed) * -0.4); }
.schedule-globe__rotation path:nth-child(4) { --delay: calc(var(--globe-speed) * -0.6); }
.schedule-globe__rotation path:nth-child(5) { --delay: calc(var(--globe-speed) * -0.8); }

/*
 * 左端 → 中央 → 右端へ。
 * 端ではゆっくり、中央では速く移動し、
 * 球面上の自転に近い見え方にする。
 */
@keyframes schedule-meridian-flow {
    0% {
        transform: scaleX(-1);
    }
    12.5% {
        transform: scaleX(-0.9239);
    }
    25% {
        transform: scaleX(-0.7071);
    }
    37.5% {
        transform: scaleX(-0.3827);
    }
    50% {
        transform: scaleX(0);
    }
    62.5% {
        transform: scaleX(0.3827);
    }
    75% {
        transform: scaleX(0.7071);
    }
    87.5% {
        transform: scaleX(0.9239);
    }
    100% {
        transform: scaleX(1);
    }
}



/* 動きを減らす設定の端末では停止 */
@media (prefers-reduced-motion: reduce) {
    .schedule-globe__rotation {
        animation: none;
    }
}

/* ･･････････････････････････････････････････････････････････････････････････ */
/* 年間行事：その他飾り */
/* ･･････････････････････････････････････････････････････････････････････････ */
.schedule-links::before {
	content: '';
	position: absolute;
	top: -25%;
	right: -10%;
	display: block;
	width: 45px;
	height: 78px;
	background-image: url(/img/namiesosei/template/img-schedule-eraser.svg);
	transform: rotate(-22deg);
}
.schedule-links::after {
	content: '';
	position: absolute;
	top: 45%;
	right: -20%;
	display: block;
	width: 165px;
	height: 165px;
	background-image: url(/img/namiesosei/template/img-schedule-pencil.svg);
	transform: rotate(-10deg);
}


/* -------------------------------------------------------------------------- */
/* 年間行事ここまで */
/* -------------------------------------------------------------------------- */



/* -------------------------------------------------------------------------- */
/* 教育方針ここから */
/* -------------------------------------------------------------------------- */
section.section-policy {
    padding: 0 2.5em 5em;
    position: relative;
    background-color: #FDEEF1;
    background-image: linear-gradient(rgba(253, 238, 241, 1), rgba(253, 238, 241, 0.85)), url(/img/namiesosei/template/bg_policy.png);
    background-position: center;
    background-size: cover;
    background-repeat: no-repeat;
}
section.section-policy::before {
	content: '';
	position: absolute;
	top: 0;
	left: 0;
	width: 100%;
	height: 80px;
	background-color: #FDEEF1;
	border-radius: 80px 80px 0 0;
	transform: translate(0, -100%);
}
.policy-card.container {
    background-color: #fff;
    padding: 2.5em;
}

/* ･･････････････････････････････････････････････････････････････････････････ */
/* 見出し */
/* ･･････････････････････････････････････････････････････････････････････････ */
.section-policy h2 {
	font-size: 2em;
	color: #333333;
	position: relative;
}
.section-policy h2::before {
	content: 'POLICY';
	position: absolute;
	top: 0;
	left: 0;
	right: 0;
	transform: translate(0, -125%);
	color: #4A77BA;
	font-size: 0.5625em;
}

/* ･･････････････････････････････････････････････････････････････････････････ */
/* キャッチコピー */
/* ･･････････････････････････････････････････････････････････････････････････ */
p.policy-catch {
    font-size: 2.25em;
    font-weight: 600;
    color: #4A77BA;
}
.policy-lead p {
    font-size: 1.25em;
	font-weight: 500;
}
.policy-lead p span {
    font-size: calc(1.625em / 1.25);
    font-weight: 700;
}
.policy-lead br {
	display: none;
}

/* ･･････････････････････････････････････････････････････････････････････････ */
/* 教育方針：3色ボックス ＆ ピンク点線アーチ */
/* ･･････････････････････････････････････････････････････････････････････････ */
.policy-features {
    position: relative;
    max-width: 780px;
    margin: 1.5em auto 2em;
    padding: 1.25em 0.5em 0.5em;
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 30px;
}

/* ★重要：ピンクの点線アーチ（CSSのみで描画） */
.policy-features::before {
    content: '';
    position: absolute;
    /* 上段ボックスの中央から下段ボックスの中央を結ぶ円弧 */
    top: 55px;
    left: 50%;
    transform: translateX(-50%);
    width: 68%;
    height: 120px;

    /* ピンク色の丸い点線 */
    border: 5px dotted #F39AC1 !important;
    /* 上部と左右を丸くしてアーチ状にする */
    border-radius: 120px;
    /* 底面は開ける */
    border-bottom: none;

    z-index: 1; /* ボックスの背面に配置 */
    pointer-events: none;
}

/* ボックス共通スタイル */
.feature-badge {
    position: relative;
    z-index: 2; /* 点線の上に重ねる */
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    border-radius: 16px;
    text-align: center;
    box-sizing: border-box;
    transition: transform 0.2s ease;
}

/* 上段の黄色ボックス（横幅広め） */
.badge-yellow {
    background-color: #FEF3B4;
    padding: 1.25em 1.75em;
    width: 100%;
    max-width: 480px;
}

/* 下段（左右並び）コンテナ */
.badge-bottom-row {
    position: relative;
    z-index: 2;
    display: flex;
    justify-content: center;
    align-items: stretch;
    gap: 36px;
    width: 100%;
}

/* 下段の左右ボックス */
.badge-blue {
    background-color: #DEF5FE;
    flex: 1 1 240px;
    max-width: 320px;
    padding: 18px 20px;
}

.badge-green {
    background-color: #EAF8EC;
    flex: 1 1 280px;
    max-width: 400px;
    padding: 18px 20px;
}

/* テキストのタイポグラフィ */
.feature-badge .badge-sub {
    font-size: clamp(1em, 1.6vw, 1em);
    color: #444444;
    line-height: 1.4;
    margin-bottom: 4px;
}

.feature-badge .badge-main {
    font-size: clamp(1em, 1.6vw, 1.125em);
    font-weight: bold;
    color: #222222;
    line-height: 1.4;
    letter-spacing: 0.03em;
}

/* 太字と語尾を1行にまとめ、文字の基準線（下揃え）で揃える */
.badge-main-line {
    display: flex;
    align-items: baseline;
    justify-content: center;
    white-space: nowrap; /* 意図しない改行を防止 */
}

/* 語尾（の涵養、の習得など）の文字余白をリセット */
.badge-main-line .badge-sub {
    margin-bottom: 0;
    margin-left: 2px;
}

/* ･･････････････････････････････････････････････････････････････････････････ */
/* 教育方針について詳しくはこちら */
/* ･･････････････････････････････････････････････････････････････････････････ */
body .section-btn a {
    display: block;
    width: 100%;
    max-width: 500px;
    margin: 0.5em auto 2em;
    padding: 0.75em 2.5em;
    background-color: #4A77BA;
	border: 1px solid #4A77BA;
    border-radius: 5em;
    color: #fff;
    font-size: 1.25em;
    font-weight: 500;
	transition: 0.3s;
	position: relative;
	z-index: 2;
}
body .section-btn a::after {
    content: '';
    position: absolute;
    top: 50%;
    right: 2em;
    display: block;
    width: 8px;
    height: 8px;
    border-right: 2px solid #fff;
    border-bottom: 2px solid #fff;
    transform: translate(0, -50%) rotate(-45deg);
	transition: 0.3s;
}
body .section-btn a:hover {
    background-color: #fff;
    text-decoration: none;
    color: #4A77BA;
}
body .section-btn a:hover::after {
	border-color: #4A77BA;
}

/* -------------------------------------------------------------------------- */
/* 教育方針ここまで */
/* -------------------------------------------------------------------------- */



/* -------------------------------------------------------------------------- */
/* 教育理念ここから */
/* -------------------------------------------------------------------------- */

.section-philosophy {
    padding: 6em 1em 8em;
    text-align: center;
    background-color: #EBF8EF;
    background-image: linear-gradient(to bottom, #ffffff 50%, transparent 50%),
        url('/img/namiesosei/template/bg-school-philosophy.svg');
    background-repeat: no-repeat,
        repeat;
    background-size: 100% 100%,
        210px 124px;
    background-position: left top,
        left center;
}

/* 見出し */
.section-philosophy h2 {
    font-size: 2em;
    color: #333333;
    position: relative;
}

.section-philosophy h2::before {
    content: 'PHILOSOPHY';
    position: absolute;
    top: 0;
    left: 0;
    right: 0;
    transform: translate(0, -125%);
    color: #4A77BA;
    font-size: 0.5625em;
    letter-spacing: 0.1em;
}

.section-philosophy .heading-lead {
    font-size: 2.5em;
    font-weight: bold;
    color: #333333;
    line-height: 1.5;
    margin: 0.5em auto 2.5em;
}

.section-philosophy .heading-lead span {
    display: inline-block;
}
.section-philosophy .heading-lead span + br + span {
    position: relative;
}
.section-philosophy .heading-lead  span + br + span::after {
    content: '';
    position: absolute;
    top: -100%;
    right: 0;
    background-image: url(/img/namiesosei/template/img-school-philosophy_ukedon.png);
    display: block;
    width: 115px;
    height: 115px;
	transform: translate(180%, 0);
}

/* ･･････････････････････････････････････････････････････････････････････････ */
/* 3カラムカードレイアウト */
/* ･･････････････････････････････････････････････････････････････････････････ */
.features-grid {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 2em;
    max-width: 1100px;
    margin: 0 auto;
    align-items: stretch;
}

/* 各カード（緑の枠線・白背景・角丸） */
.feature-item {
    position: relative;
    background-color: #ffffff;
    border: 2px solid #4A824C;
    border-radius: 12px;
    padding: 2.5em 1.5em 1.5em;
    display: flex;
    flex-direction: column;
    box-sizing: border-box;
    counter-increment: feature-count;
}

.feature-item::before {
    content: counter(feature-count);
    position: absolute;
    top: 0;
    left: -10px;
    width: 70px;
    height: 92px;
    background-color: #4A824C;
    color: #ffffff;
    font-size: 1.4em;
    font-weight: bold;
    display: flex;
    align-items: center;
    justify-content: center;
    border-radius: 100px 100px 0px 100px;
	transform: translate(0, -70%);
}

/* カード見出し（h3）[cite: 15] */
.feature-item h3 {
    margin: 0;
    min-height: 2.8em; /* 2行分の高さを揃える */
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 1.5em;
    color: #4A824C;
    text-align: center;
    line-height: 1.4;
}

/* カード本文・写真 */
.feature-item-body {
    display: flex;
    flex-direction: column;
    flex-grow: 1;
	justify-content: space-between;
	text-align: left;
}

.feature-item-body p {
    text-align: left;
    font-size: 1em;
    line-height: 1.7;
    color: #333;
    margin: 0 0 1.5em;
    flex-grow: 1;
}

.feature-item-body ul {
	list-style: none;
	padding: 0 0.5em;
}
/* 各リスト項目（ぶら下げインデントを設定） */
.feature-item-body ul li {
    position: relative;
    padding-left: 1.2em; /* 三角形の幅＋余白分を空ける */
    font-size: 1em;
    line-height: 1.6;
    color: #444444;
    margin: 0.25em 0;
}

.feature-item-body ul li:last-child {
    margin-bottom: 0;
}

/* ★右向き三角形アイコン（高さ9px・色#4A824C） */
.feature-item-body ul li::before {
    content: "";
    position: absolute;
    /* 1行目の文字の高さ中央に合わせる */
    top: 0.8em;
    left: 0;
    transform: translateY(-50%);

    /* 三角形のサイズ（高さ9px、バランスの良い幅約7px） */
    width: 7px;
    height: 9px;
    background-color: #4A824C;

    /* 右向きの直角・二等辺三角形に切り抜く */
    clip-path: polygon(0 0, 100% 50%, 0 100%);
}

.feature-item-body figure {
    margin: 0;
    width: 100%;
    aspect-ratio: 33 / 20;
    overflow: hidden;
}

.feature-item-body figure img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    display: block;
}

/* ･･････････････････････････････････････････････････････････････････････････ */
/* 詳しくはこちらボタン */
/* ･･････････････････････････････････････････････････････････････････････････ */
.section-philosophy .section-btn {
    margin-top: 3.5em;
}

.section-philosophy .btn-secondary {
    display: inline-block;
    padding: 0.9em 2.5em;
    border-radius: 9999px;
    background-color: #4A824C;
    color: #ffffff;
    font-size: 1.15em;
    font-weight: bold;
    text-decoration: none;
    transition: 0.3s;
	border-color: #4A824C;
}

.section-philosophy .btn-secondary:hover {
    text-decoration: none;
    color: #4A824C;
}
body .section-philosophy .btn-secondary:hover::after {
	border-color: #4A824C;
}

/* -------------------------------------------------------------------------- */
/* 教育理念ここまで */
/* -------------------------------------------------------------------------- */



/* -------------------------------------------------------------------------- */
/* 無限スライダーここから */
/* -------------------------------------------------------------------------- */
.section-gallery {
    padding: 0;
    overflow: hidden; /* 画面外へのはみ出しを隠す */
    background-color: #ffffff;
	width: 100%;
}

.gallery-ticker {
    width: 100%;
    overflow: hidden;
}

.gallery-ticker .gallery-track {
    display: flex;
	flex-wrap: nowrap;
    gap: 0;
    width: max-content; /* 中身の画像幅に合わせて自動伸長 */
    list-style: none;
    margin: 0;
    padding: 0;
    animation: infiniteSlide 60s linear infinite;
    will-change: transform;
}

.gallery-ticker:hover .gallery-track {
    animation-play-state: paused;
}

/* 1周分（-50%）移動したら0%へシームレスに戻す */
@keyframes infiniteSlide {
    0% {
        transform: translateX(0);
    }
    100% {
        transform: translateX(-50%);
    }
}

/* 各スナップ写真アイテム */
.gallery-item {
    flex-shrink: 0;
    width: 560px; /* カードの幅 */
}

.gallery-item figure {
    margin: 0;
    width: 100%;
    aspect-ratio: 2 / 1;
    overflow: hidden;
}

.gallery-item img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    display: block;
    pointer-events: none;
}

/* 視覚障害や車酔いしやすいユーザーのOS設定（アニメーション無効化）への配慮 */
@media (prefers-reduced-motion: reduce) {
    .gallery-track {
        animation: none;
        overflow-x: auto;
    }
}
/* -------------------------------------------------------------------------- */
/* 無限スライダーここまで */
/* -------------------------------------------------------------------------- */



/* -------------------------------------------------------------------------- */
/* 地図ここから */
/* -------------------------------------------------------------------------- */
section.section-access {
	padding: 0;
}
/* -------------------------------------------------------------------------- */
/* 地図ここまで */
/* -------------------------------------------------------------------------- */



/* -------------------------------------------------------------------------- */
/* フッターここから */
/* -------------------------------------------------------------------------- */
footer.site-footer {
    background-color: #fff;
}
.footer-inner.container {
    display: flex;
	margin: 0 auto 1.5em;
}
.footer-info {
    flex: 1 1 auto;
	color: #333;
}
.footer-logo {
    display: flex;
	align-items: center;
}
.footer-logo > img {
    flex: 0 1 100px;
    max-width: 100px;
}
.footer-logo p {
    font-size: 2em;
    font-weight: 700;
    padding: 0 0.25em;
}
.footer-logo p a {
	color: #333;
}

.footer-address {
	text-transform: uppercase;
	font-style: normal;
	text-align: left;
    padding: 0 0 0 110px;
}
.footer-address span {
	display: inline-block;
}

.footer-links {
    flex: 0 1 250px;
    display: flex;
    flex-direction: column;
    gap: 0.5em;
    justify-content: center;
	padding: 1em 0;
}
body .footer-links a {
    display: block;
    padding: 0.5em;
    background-color: #4A77BA;
	border: 1px solid #4A77BA;
    border-radius: 100vw;
	color: #fff;
	font-size: 1.125em;
	font-weight: 700;
	transition: 0.3s;
}
body .footer-links a.btn-footer.download {
	background-color: #4A824C;
	border: 1px solid #4A824C;
	display: none;
}

body .footer-links a:hover {
	text-decoration: none;
	background-color: #fff;
	color: #4A77BA;
}
body .footer-links a.btn-footer.download:hover {
	background-color: #fff;
	color: #4A824C;
}

/* ･･････････････････････････････････････････････････････････････････････････ */
/* トップへ戻るボタン */
/* ･･････････････････････････････････････････････････････････････････････････ */
.page-top {
    position: fixed;
    right: 20px;
    bottom: 40px;
    width: 80px;
    height: 80px;
	z-index: 99;
}
.page-top a {
    display: block;
    background-color: #4a77ba;
	border: 1px solid #4a77ba;
    width: 100%;
    height: 100%;
    border-radius: 100vw;
	position: relative;
	transition: 0.3s;
}
.page-top a::before {
    content: '';
    display: block;
    width: 40px;
    height: 10px;
    background-color: #fff;
    border-radius: 10px;
    position: absolute;
    top: 25%;
    left: 0;
    right: 0;
    margin: 0 auto;
    transform-origin: right center;
    transform: translate(-17px, 0) rotate(-45deg);
}
.page-top a::after {
    content: '';
    display: block;
    width: 40px;
    height: 10px;
    background-color: #fff;
    border-radius: 10px;
    position: absolute;
    top: 25%;
    left: 0;
    right: 0;
    margin: 0 auto;
    transform-origin: left center;
    transform: translate(17px, 0) rotate(45deg);
}
.page-top a:hover {
	opacity: 0.8;
}

/* ･･････････････････････････････････････････････････････････････････････････ */
/* コピーライト */
/* ･･････････････････････････････････････････････････････････････････････････ */
p.copyright {
    margin: 0;
    padding: 0.125em;
    background-color: #4a77ba;
    color: #fff;
}
/* -------------------------------------------------------------------------- */
/* フッターここまで */
/* -------------------------------------------------------------------------- */



/* -------------------------------------------------------------------------- */
/* 下層共通ここから */
/* -------------------------------------------------------------------------- */
body:not(.site_index) {
	display: flex;
	flex-direction: column;
	min-height: 100dvh;
	margin: 0;
	background-color: #F8F8F4;
	--main-inline-padding: 1.5em;
}
body:not(.site_index) main {
	flex: 1 1 auto;
	display: flex;
	gap: 2em;
	align-items: stretch;

    margin: 0 auto;
	padding: 2em var(--main-inline-padding);
    max-width: calc(1200px + (var(--main-inline-padding)*2));
    width: 100%;
}

body:not(.site_index) main > article {
	flex: 1 1 auto;
	display: flex;
	flex-direction: column;
	width: 100%;
	min-width: 0;
	order: 2;
}
/*
メインカラムをサイドバーに合わせて伸ばす場合は以下を有効
body:not(.site_index) main > article #main_content,
body:not(.site_index) main > article #main_body {
	flex: 1 1 auto;
	display: flex;
	flex-direction: column;
	width: 100%;
	height: 100%;
}
*/
body:not(.site_index) main > article #main_body {
	padding: 3em;
}

body:not(.site_index) main > aside {
	flex: 0 0 240px;
	order: 1;
}

body:not(.site_index) .info_list ul li a {
    background-image: none;
}


/* ･･････････････････････････････････････････････････････････････････････････ */
/* 見出し1 */
/* ･･････････････････････････････････････････････････････････････････････････ */
header.content-header {
    margin-top: 77px;
}
div#main_header {
	margin-bottom: 0;
}
div#main_header h1 {
    min-height: 200px;
    display: flex;
    justify-content: center;
    align-items: center;
	padding: 0.8em calc(15% + 1.5em/2.625);
    background-color: #F6F8FC !important;
    background-image: linear-gradient(to right, #F3F3F3 1px, transparent 1px), linear-gradient(to bottom, #F3F3F3 1px, transparent 1px);
    background-size: 40px 40px;
    background-position: 0;
    background-repeat: repeat;
    color: #333;
	font-size: 2.625em;
	overflow: hidden;
	position: relative;
}

/* 初期状態：画面に入る前は透明＆少し下・縮小位置に待機 */
body:not(.site_index) div#main_header h1::before {
    content: '';
    background-image: url(/img/namiesosei/template/img-schedule-ukedon.svg);
    background-size: cover;
    display: block;
    width: calc(300px * 0.5);
    height: calc(349px * 0.5);
    position: absolute;
    top: 2.5%;
    right: 5%;
    z-index: 3;
    pointer-events: none;
    opacity: 0;
    transform: translateY(60px) scale(0.7) rotate(-14deg);
    transform-origin: bottom center;
}

/* 画面内に入ったとき（.is-inview が付与されたとき） */
body:not(.site_index) div#main_header h1.is-inview::before {
    /* 
      1. jumpIn: 画面に入った瞬間に跳ねて登場（0.7秒）
      2. swingLoop: 登場後、3秒ごとに周期的に左右にゆらゆら揺れる（無限ループ）
    */
    animation: 
        ukedonJumpIn 0.7s cubic-bezier(0.34, 1.56, 0.64, 1) forwards,
        ukedonSwingLoop 3.5s ease-in-out 0.8s infinite;
}

/* ･･････････････････････････････････････････････････････････････････････････ */
/* パンくず */
/* ･･････････････････････････････････････････････････････････････････････････ */
ol.pankuzu.container {
    max-width: calc(1200px + (var(--main-inline-padding)*2));
    padding: 1em var(--main-inline-padding);
}
nav.breadcrumb {
    background-color: #fff;
}
.pankuzu {
	list-style: none;
	margin: 0 auto;
	padding: 0 ;
	display: block;
	text-align: left;
}
.pankuzu li {
    display: inline;
    word-break: break-all;
}
.pankuzu li a {
    margin-right: 0.25em;
}

.pankuzu li:first-child::before {
    content: '現在地';
    margin-right: 0.5em;
    padding: 0.25em 0.5em;
    border-radius: 5px;
    background-color: #4A77BA;
    color: #fff;
}

/* ･･････････････････････････････････････････････････････････････････････････ */
/* サイドバー */
/* ･･････････････････････････････････････････････････････････････････････････ */
.subsite_menu.plus {
    background-color: #7CD092 !important;
	border: 2px solid #7CD092;
    border-radius: 5px;
}

.subsite_menu_ttl label {
	color: #333;
    border-radius: 0;
	text-align: left;
	padding: 1em 2.5em 1em 1em;
}
body .subsite_menu_ttl label a {
	color: #333;
	text-decoration: underline;
}
body .subsite_menu_ttl label a:hover {
	text-decoration: none;
}

.subsite_menu.plus label[for*="acc_ttl_label"] {
    background-image: none;
    background-color: transparent !important;
    position: relative;
}
.subsite_menu.plus label[for*="acc_ttl_label"]::after {
    content: '';
    display: block;
    width: 8px;
    height: 8px;
    border-right: 3px solid #333333;
    border-bottom: 3px solid #333333;
    transform: translate(0, -7px) rotate(45deg);
    transition: transform 0.3s ease;
    position: absolute;
    top: 50%;
    right: 0.8em;
    z-index: 2;
	border-radius: 2px;
}
.subsite_menu.plus label[for*="acc_ttl_label"]::before {
    content: '';
    display: block;
    width: 24px;
    height: 24px;
    position: absolute;
    top: 50%;
    right: 0.55em;
    background-color: #fff;
    border-radius: 24px;
    transform: translate(0, -50%);
}

.subsite_menu.plus .acc_open label[for*="acc_ttl_label"] {
    background-image: none !important;
}
.subsite_menu.plus .acc_open label[for*="acc_ttl_label"]::after {
    transform: translate(0px, -3px) rotate(-135deg);
}

.subsite_menu_list {
    border-radius: 0 0 5px 5px;
    text-align: left;
}
.subsite_menu_list ul li {
    padding: 0;
	border-bottom: 1px solid #B4B4B4;
}
.subsite_menu_list ul li:last-child {
	border: none;
}
.subsite_menu_list ul li a {
	background-image: none;
}
body .subsite_menu_list a {
    display: block;
    padding: 0.5em 0.5em 0.5em 1.2em;
	position: relative;
	color: #333;
}
.subsite_menu_list a::before {
	content: '';
	position: absolute;
	top: 50%;
	left: 0.5em;
	display: block;
	width: 4px;
	height: 16px;
	background-color: #7CD092;
	transform: translate(0, -50%);
}
.subsite_menu_list ul li:after {
	display: none;
}

body .subsite_menu_list strong {
    padding: 0.5em 0.5em 0.5em 1.2em;
    display: block;
}
.bnr_area ul {
    margin: 0;
    padding: 0;
    list-style-type: none;
}
/* -------------------------------------------------------------------------- */
/* 下層共通ここまで */
/* -------------------------------------------------------------------------- */



/* -------------------------------------------------------------------------- */
/* 大メニューここから */
/* -------------------------------------------------------------------------- */
.site_list_2 .info_list ul li {
    margin: 2.5em 0;
    padding: 0;
	position: relative;
}
.site_list_2 .info_list ul li:first-child {
	margin-top: 0;
}
.site_list_2 .info_list ul li:last-child {
	margin-bottom: 0;
}

.site_list_2 .info_list ul li::before {
    content: '';
    position: absolute;
    top: -0.6em;
    left: 0;
    display: block;
    width: 41px;
    height: 42px;
    background-size: contain;
    background-image: url(/img/namiesosei/template/img-clip2.svg);
	z-index: 1;
}

.site_list_2 .info_list ul li a {
	display: block;
    padding: 0.3em 2.7em 0.3em 1.8em;
	background-color: #F6F8FC;
	border: 1px solid #F6F8FC;
	box-shadow: 3px 3px 6px #ccc;
    position: relative;
    color: #333;
    font-size: 2em;
    font-weight: 500;
	transition: 0.3s;
}
.site_list_2 .info_list ul li a::before {
    content: '';
    position: absolute;
    top: 50%;
    right: 1.15em;
    display: block;
    width: 32px;
    height: 32px;
    border-radius: 32px;
    background-color: #4A77BA;
    border: 1px solid #4A77BA;
    z-index: 1;
    transform: translate(0, -50%);
    pointer-events: none;
	transition: 0.3s;
}
.site_list_2 .info_list ul li a::after {
    content: '';
    position: absolute;
    top: 50%;
    right: 1.55em;
    display: block;
    width: 10px;
    height: 10px;
    border-radius: 2px;
    border-right: 3px solid #fff;
    border-bottom: 3px solid #fff;
    z-index: 2;
    transform: translate(0, -50%) rotate(-45deg);
    pointer-events: none;
	transition: 0.3s;
}

.site_list_2 .info_list ul li a:hover {
	background-color: #fff;
	text-decoration: none;
}

.site_list_2 .info_list ul li a:hover::before {
	transform: translate(10px, -50%);
}
.site_list_2 .info_list ul li a:hover::after {
	transform: translate(10px, -50%) rotate(-45deg);
}



/* -------------------------------------------------------------------------- */
/* 大メニューここまで */
/* -------------------------------------------------------------------------- */



/* -------------------------------------------------------------------------- */
/* 小メニューここから */
/* -------------------------------------------------------------------------- */
.site_list1 .info_list ul li {
    border-bottom: 1px solid #B4B4B4;
    padding: 1.5em 0;
	flex-direction: column;
}
body.blog.site_list1 .info_list ul li {
	padding: 0.5em;
}
.site_list1 .info_list ul li:first-child, body.blog.site_list1 .info_list ul li:first-child {
    padding-top: 0;
}
.info_list.info_list_date ul li>span.article_date {
    width: 13em;
	max-width: 13em;
    background-color: #DFF6FF;
    padding: 0.25em 2.5em 0.25em 1.5em;
    position: relative;
    border-left: 13px solid #4A77BA;
}
.site_list1 .info_list ul li a {
    display: block;
	flex-direction: column;
	padding: 0.5em 1em 0.5em 2em;
	font-size: 1.125em;
	color: #333;
	position: relative;
}
body.blog.site_list1 .info_list ul li a {
	padding: 0.5em 3.5em 0.5em 1em;
}

.site_list1 .info_list ul li a::before {
    content: '';
    position: absolute;
    top: 50%;
    right: 1.15em;
    display: block;
    width: 32px;
    height: 32px;
    border-radius: 32px;
    background-color: #fff;
    border: 1px solid #4A77BA;
    z-index: 1;
    transform: translate(0, -50%);
    pointer-events: none;
	transition: 0.3s;
}
.site_list1 .info_list ul li a::after {
    content: '';
    position: absolute;
    top: 50%;
    right: 1.85em;
    display: block;
    width: 10px;
    height: 10px;
    border-radius: 2px;
    border-right: 3px solid #4A77BA;
    border-bottom: 3px solid #4A77BA;
    z-index: 2;
    transform: translate(0, -50%) rotate(-45deg);
    pointer-events: none;
	transition: 0.3s;
}

body.blog.site_list1 .info_list ul li a::before {
    transform: translate(0, -50%) scale(0.8);
}
body.blog.site_list1 .info_list ul li a::after {
    transform: translate(0, -50%) rotate(-45deg) scale(0.8);
}

body.blog .article_date {
	display: none !important;
}
/* -------------------------------------------------------------------------- */
/* 小メニューここまで */
/* -------------------------------------------------------------------------- */



/* -------------------------------------------------------------------------- */
/* 最終ページここから */
/* -------------------------------------------------------------------------- */
.site_detail div#content_header {
    margin: 0 0 1.5em;
    padding: 0;
}
.site_detail #main_body #content_header + div h2:first-of-type {
    margin-top: 0;
}

.site_detail #main_body h2 {
    background-color: #4A77BA;
    border-radius: 10px;
    border: 3px solid #fff;
    outline: 3px solid #4A77BA;
    padding: 0.75em 1.5em;
    color: #fff;
    font-size: 1.625em;
}
.site_detail #main_body h2::before, .site_detail #main_body h2::after {
	display: none;
}

.site_detail #main_body h3 {
    background-color: #EBF8EF;
    border-bottom: 3px solid #7CD092;
    padding: 0.75em 1em 0.75em 2em;
    font-size: 1.25em;
    position: relative;
}
.site_detail #main_body h3::before {
    content: '';
	position: absolute;	
    top: auto;
    left: -2px;
    bottom: -2px;
    width: 26px;
    height: 50px;
    background-color: transparent;
    background-image: url(/img/namiesosei/template/icon-h3.svg);
    background-size: contain;
    background-position: left bottom;
}

.site_detail #main_body h4 {
    background-color: #FDEEF1;
    border-bottom: none;
    padding: 0.5em 1em 0.5em 2em;
	font-size: 1.125em;
    position: relative;
}
.site_detail #main_body h4::before {
    content: '';
    background-color: transparent;
    background-image: url(/img/namiesosei/template/icon-h4.svg);
    width: 16px;
    height: 26px;
    position: absolute;
    top: 0;
    left: 8px;
    transform: translate(0, -30%);
}

.site_detail #main_body h5 {
	position: relative;
	padding-bottom: 0.5em 0.5em 0.5em 1.5em;
	background: linear-gradient(to bottom, #ffffff 50%, #F8F9FC 50%);
	font-size: 1.0625em;
}

/* 疑似要素で下部に目盛りを描画 */
.site_detail #main_body h5::after {
	content: '';
	position: absolute;
	left: 0;
	bottom: 0;
	width: 100%;
	height: 8px; /* 最大の高さ */

	/* 
	2層に分け、それぞれ透明部分(transparent)と線の色(#D1D6E1)を19pxの中で配置
	上層: 2本目の短い線 (高さ4px、左から9px〜10pxの1px分)
	下層: 1本目の長い線 (高さ8px、左から0px〜1pxの1px分)
	*/
	background-image: 
	linear-gradient(to right, transparent 9px, #D1D6E1 9px, #D1D6E1 10px, transparent 10px),
	linear-gradient(to right, #D1D6E1 0px, #D1D6E1 1px, transparent 1px);

	/* タイル幅を1周期分の「19px」に固定 */
	background-size: 
	19px 4px,  /* 短い線: 幅19px × 高さ4px */
	19px 8px;  /* 長い線: 幅19px × 高さ8px */

	/* どちらも下揃え */
	background-position: left bottom;
	background-repeat: repeat-x;
}

.site_detail #main_body h6 {
    border-left: 4px solid #4A77BA;
    border-bottom: none;
    padding: 0 1em;
	font-size: 1em;
}

.site_detail #main_body table {
    border-color: #666666;
    border-width: 1px;
}
.site_detail #main_body table th, .site_detail #main_body table td {
    border-color: #666;
}

.site_detail #main_body ul, .site_detail #main_body ol {
    padding-left: 1.35em;
}
.site_detail #main_body ul li::marker {
    color: #4A77BA;
}
.site_detail #main_body ol li::marker {
	color: #333;
}

/* -------------------------------------------------------------------------- */
/* 最終ページここまで */
/* -------------------------------------------------------------------------- */






/* ========================================================================== */
/* 1600px以下ここから */
/* ========================================================================== */
@media all and (max-width:1600px){

	/* -------------------------------------------------------------------------- */
	/* ヘッダーここから */
	/* -------------------------------------------------------------------------- */
	.header-inner {
		padding: 0 0 0 0.5em;
	}
	
	body .global-nav a {
		font-size: 1.125em;
	}
	/* -------------------------------------------------------------------------- */
	/* ヘッダーここまで */
	/* -------------------------------------------------------------------------- */


	div#main_header h1 {
		padding: 0.8em calc(15% + 0.5em/2.625);
	}

}
/* ========================================================================== */
/* 1600px以下ここまで */
/* ========================================================================== */


/* ========================================================================== */
/* 1450px以下ここから */
/* ========================================================================== */
@media all and (max-width:1450px){

	/* -------------------------------------------------------------------------- */
	/* ヘッダーここから */
	/* -------------------------------------------------------------------------- */
	body .global-nav a {
		font-size: 1.0625em;
		padding: 0 0.75em;
	}
	.site-logo {
		max-width: 175px;
		flex: 0 1 175px;
	}
	.global-nav .nav-end-link a {
		padding: 0 0.75em;
	}
	/* -------------------------------------------------------------------------- */
	/* ヘッダーここまで */
	/* -------------------------------------------------------------------------- */


	/* -------------------------------------------------------------------------- */
	/* フッターここから */
	/* -------------------------------------------------------------------------- */
	.footer-links {
  		flex: 0 1 calc(220px + 60px + 20px + 10px);
		padding: 1em calc(60px + 20px + 10px) 1em 0;
	}
	body .footer-links a {
		font-size: 1em;
	}

	.page-top {
		width: 60px;
		height: 60px;
	}
	.page-top a::before {
		width: 30px;
		height: 8px;
		transform: translate(-12px, 0) rotate(-45deg);
	}
	.page-top a::after {
		width: 30px;
		height: 8px;
		transform: translate(12px, 0) rotate(45deg);
	}
	/* -------------------------------------------------------------------------- */
	/* フッターここから */
	/* -------------------------------------------------------------------------- */


	/* -------------------------------------------------------------------------- */
	/* 年間行事ここから */
	/* -------------------------------------------------------------------------- */
	.section-schedule::before {
		width: calc(300px * 0.7);
		height: calc(349px * 0.7);
		background-size: cover;
		top: 0;
	}
	/* -------------------------------------------------------------------------- */
	/* 年間行事ここまで */
	/* -------------------------------------------------------------------------- */
}
/* ========================================================================== */
/* 1450px以下ここまで */
/* ========================================================================== */




/* ========================================================================== */
/* 1300px以下ここから */
/* ========================================================================== */
@media all and (max-width:1300px){

	/* -------------------------------------------------------------------------- */
	/* ヘッダーここから */
	/* -------------------------------------------------------------------------- */
	.site-logo {
		max-width: 150px;
		flex: 0 1 150px;
	}
	body .global-nav a {
		font-size: 1em;
		padding: 0 0.65em;
	}
	.global-nav .nav-end-link a {
		padding: 0 0.65em;
	}
	/* -------------------------------------------------------------------------- */
	/* ヘッダーここまで */
	/* -------------------------------------------------------------------------- */

	div#main_header h1 {
		padding: 0.8em calc(150px + 0.5em/2.625);
	}
}
/* ========================================================================== */
/* 1300px以下ここまで */
/* ========================================================================== */




/* ========================================================================== */
/* 1200px以下ここから */
/* ========================================================================== */
@media all and (max-width:1200px){

	/* -------------------------------------------------------------------------- */
	/* 共通ここから */
	/* -------------------------------------------------------------------------- */

	/* -------------------------------------------------------------------------- */
	/* 共通ここまで */
	/* -------------------------------------------------------------------------- */



	/* -------------------------------------------------------------------------- */
	/* ヘッダーここから */
	/* -------------------------------------------------------------------------- */
	.header-inner {
		height: 60px;
	}
	.site-logo {
		flex: 0 1 100px;
		max-width: 100px;
	}


	/* --- 1. ハンバーガーボタン --- */
	.btn-hamburger {
		display: flex !important;
		flex-direction: column;
		justify-content: space-between;
		width: 44px;
		height: 44px;
		padding: 10px 6px;
		background: transparent;
		border: none;
		cursor: pointer;
		position: relative;
		z-index: 1000;
		margin-left: auto;
		margin-right: 1em;
		box-sizing: border-box;
		border: 2px solid #2e62a8;
		border-radius: 5px;
		background-color: #fff;
	}

	.btn-hamburger span {
		display: block;
		width: 100%;
		height: 3px;
		background-color: #2B3036;
		border-radius: 9999px;
		transition: transform 0.3s ease, opacity 0.3s ease, top 0.3s ease;
		position: relative;
		pointer-events: none;
	}

	.btn-hamburger.is-active span:nth-child(2) {
		opacity: 0;
		display: none;
	}
	.btn-hamburger.is-active span:nth-child(1),
	.btn-hamburger.is-active span:nth-child(3) {
		position: absolute;
		top: 50%;
		left: 6px;                  /* 左右のpadding (6px) に合わせる */
		width: calc(100% - 12px);   /* 44px - 12px = 32px */
		margin-top: -1.5px;         /* 線の太さ(3px)の半分引き上げて垂直完全中心化 */
	}
	.btn-hamburger.is-active span:nth-child(1) {
		transform: rotate(45deg);
	}
	.btn-hamburger.is-active span:nth-child(3) {
		transform: rotate(-45deg);
	}

	/* --- 2. メニュー本体（リロード時のチラつき対策） --- */
	.global-nav {
		display: block; /* parts.cssの打消し対策 */

		position: fixed;
		top: 0;
		left: 0;
		width: 100vw;
		height: 100vh;
		height: 100dvh;
		background-color: #F6F8FC;
    	background-image: linear-gradient(to right, #F3F3F3 1px, transparent 1px), linear-gradient(to bottom, #F3F3F3 1px, transparent 1px);
    	background-size: 40px 40px;
		z-index: 999;

		/* ★重要：初期状態は visibility: hidden で隠す（これで読み込み時の移動が見えなくなる） */
		visibility: hidden;
		transform: translateY(-100%);
		transition: transform 0.35s ease-in-out, visibility 0.35s;

		overflow-y: auto;
		padding: 90px 20px 40px;
		box-sizing: border-box;
	}

	/* 開いたとき */
	.global-nav.is-open {
		visibility: visible;
		transform: translateY(0);
	}
	.global-nav.is-open::before {
		content: '';
		position: absolute;
		left: 10%;
		bottom: 5%;
		transform: rotate(-283deg);
		display: block;
		width: 109px;
		height: 94px;
		background-image: url(/img/namiesosei/template/img-ruler.svg);
		z-index: -1;
	}
	.global-nav.is-open::after {
		content: '';
		position: absolute;
		right: 5%;
		bottom: 5%;
		transform: rotate(0);
		display: block;
		width: 116px;
		height: 120px;
		background-image: url(/img/namiesosei/template/img-pen-clip.svg);
		z-index: -1;
	}

	.global-nav.is-open > ul::before {
		content: '';
		position: absolute;
		top: 7%;
		left: 20%;
		transform: translate(0, -50%) rotate(26deg);
		display: block;
		width: 16px;
		height: 124px;
		background-image: url(/img/namiesosei/template/img-highlighter.svg);
		z-index: -1;
	}
	.global-nav.is-open > ul::after {
		content: '';
		position: absolute;
		top: 7%;
		right: 35%;
		transform: translate(0, -100%) rotate(12deg);
		display: block;
		width: 124px;
		height: 67px;
		background-image: url(/img/namiesosei/template/img-stickynote.svg);
		z-index: -1;
	}

	/* --- 3. メニューリスト --- */
	.global-nav ul {
		display: flex;
		flex-direction: column;
		align-items: center;
		height: auto;
		gap: 12px;
	}

	.global-nav li {
		width: 100%;
		max-width: 480px;
		height: auto;
		display: block;
	}
	.global-nav li:not(.nav-end-link, .nav-download-sp) {
		background-color: #2e62a8;
		border-radius: 5px;
	}

	body .global-nav a {
		height: auto;
		padding: 0.85em 1em;
		font-size: 1.125em;
		border-bottom: 1px solid rgba(255, 255, 255, 0.15);
		justify-content: left;
	}

	.global-nav a span {
		display: inline;
	}

	.global-nav .nav-end-link {
		justify-content: center;
	}
	.global-nav .nav-end-link a {
		border-radius: 5px;
		padding: 0.75em 1.5em;
		border: 2px solid #4A824C;
		width: 100%;
		justify-content: center;
	}
	
	.global-nav .nav-download-sp {
		display: block;
	}
	.global-nav .nav-download-sp a {
		border-radius: 5px;
		border: 2px solid #4A77BA;
		justify-content: center;
		background-color: #fff;
		color: #333;
		position: relative;
		padding-left: 2.5em;
	}
	.global-nav .nav-download-sp a::before {
		content: '';
		position: absolute;
		top: 50%;
		left: 0;
		right: 0;
		transform: translate(-5em, -50%);
		display: block;
		width: 18px;
		height: 23px;
		margin: 0 auto;
		background-image: url(
			/img/namiesosei/template/img-paper.svg);
	}


	body.nav-open {
		overflow: hidden;
	}

	/* ･･････････････････････････････････････････････････････････････････････････ */
	/* サブメニュー */
	/* ･･････････････････････････････････････････････････････････････････････････ */
	/* 親項目を横並び（リンク＋開閉ボタン）に */
    .global-nav li.has-child {
        display: flex;
        flex-wrap: wrap;
        align-items: center;
        position: relative;
    }

    /* 親リンク幅を開閉ボタン分だけ確保 */
    .global-nav li.has-child > a {
        flex: 1 1 auto;
        border-bottom: none !important;
    }

    /* アコーディオン開閉ボタン（＋ / − または矢印） */
    .sub-menu-toggle {
        display: flex;
        align-items: center;
        justify-content: center;
        width: 30px;
		height: 30px;
		margin-right: 0.5em;
		border-radius: 100vw;
        background: transparent;
        border: none;
        cursor: pointer;
        position: absolute;
		top: 10px;
		right: 0;
        flex-shrink: 0;
		background-color: #fff;
    }

    /* 矢印（下向き）アイコン */
    .sub-menu-toggle::after {
		content: '';
		display: block;
		width: 8px;
		height: 8px;
		border-right: 4px solid #333333;
		border-bottom: 4px solid #333333;
		transform: translate(0, -1px) rotate(45deg);
		transition: transform 0.3s ease;
		transform-origin: 50% 50%;
	}

    /* 開いたとき：矢印が上向きに反転 */
    .has-child.is-sub-open .sub-menu-toggle::after {
        transform: translate(0px, 3px) rotate(-135deg);
    }

    /* スマホ用サブメニュー（アコーディオン） */
    .global-nav .sub-menu {
        display: none;
        position: static; /* 浮かせず縦積みに押し出す */
        width: 100%;
        background-color: rgba(0, 0, 0, 0.12); /* 少し暗い背景で階層感を出す */
        box-shadow: none;
        border-radius: 6px;
        padding: 0;
        margin: 0;
    }

    /* 開いた状態 */
    .global-nav li.has-child.is-sub-open .sub-menu {
        display: block;
    }

    /* サブメニュー各項目の見た目 */
    body .global-nav .sub-menu a {
        padding: 1em 1em 1em 2em;
        border-bottom: 1px solid #4A77BA;
        color: #333;
        font-size: 1.125em;
		font-weight: 400;
        text-align: left;
		background-color: #fff;
		position: relative;
    }
	body .global-nav .sub-menu a::before {
		content: '';
		position: absolute;
		top: 50%;
		left: 1em;
		width: 3px;
		height: 1em;
		background-color: #4a77ba;
		transform: translate(0, -50%);
	}
	/* -------------------------------------------------------------------------- */
	/* ヘッダーここまで */
	/* -------------------------------------------------------------------------- */



	/* -------------------------------------------------------------------------- */
	/* スライドショーここから */
	/* -------------------------------------------------------------------------- */
	.hero-slider {
		margin-top: 60px;
	}
	/* -------------------------------------------------------------------------- */
	/* スライドショーここまで */
	/* -------------------------------------------------------------------------- */



	/* -------------------------------------------------------------------------- */
	/* メッセージここから */
	/* -------------------------------------------------------------------------- */
	p.message-catch img {
		max-width: 700px;
		width: 100%;
	}
	.message-body p {
		font-size: 1em;
	}
	/* -------------------------------------------------------------------------- */
	/* メッセージここまで */
	/* -------------------------------------------------------------------------- */



	/* -------------------------------------------------------------------------- */
	/* 新着情報ここから */
	/* -------------------------------------------------------------------------- */

	/* -------------------------------------------------------------------------- */
	/* 新着情報ここまで */
	/* -------------------------------------------------------------------------- */



	/* -------------------------------------------------------------------------- */
	/* 年間行事ここから */
	/* -------------------------------------------------------------------------- */
	.schedule-links::before {
		top: -45%;
		right: 25%;
	}
	.schedule-links::after {
		top: -30%;
		right: 15%;
	}
	/* -------------------------------------------------------------------------- */
	/* 年間行事ここまで */
	/* -------------------------------------------------------------------------- */



	/* -------------------------------------------------------------------------- */
	/* 教育方針ここから */
	/* -------------------------------------------------------------------------- */

	/* -------------------------------------------------------------------------- */
	/* 教育方針ここまで */
	/* -------------------------------------------------------------------------- */



	/* -------------------------------------------------------------------------- */
	/* 教育理念ここから */
	/* -------------------------------------------------------------------------- */
	.section-philosophy {
		padding: 6em 1em 4em;
	}
	.section-philosophy .heading-lead span + br + span::after {
		transform: translate(0, -110%);
	}
	.features-grid {
		gap: 1em;
	}
	/* -------------------------------------------------------------------------- */
	/* 教育理念ここまで */
	/* -------------------------------------------------------------------------- */



	/* -------------------------------------------------------------------------- */
	/* 無限スライダーここから */
	/* -------------------------------------------------------------------------- */

	/* -------------------------------------------------------------------------- */
	/* 無限スライダーここまで */
	/* -------------------------------------------------------------------------- */



	/* -------------------------------------------------------------------------- */
	/* 地図ここから */
	/* -------------------------------------------------------------------------- */

	/* -------------------------------------------------------------------------- */
	/* 地図ここまで */
	/* -------------------------------------------------------------------------- */



	/* -------------------------------------------------------------------------- */
	/* フッターここから */
	/* -------------------------------------------------------------------------- */

	/* -------------------------------------------------------------------------- */
	/* フッターここまで */
	/* -------------------------------------------------------------------------- */



	/* -------------------------------------------------------------------------- */
	/* 下層共通ここから */
	/* -------------------------------------------------------------------------- */
	header.content-header {
		margin-top: 60px;
	}
	div#main_header h1 {
		min-height: 120px;
		font-size: 1.75em;
		padding: 0.8em calc(100px + 0.5em/2.625);
	}
	body:not(.site_index) div#main_header h1::before {
		width: calc(300px * 0.3);
		height: calc(349px * 0.3);
	}
	/* -------------------------------------------------------------------------- */
	/* 下層共通ここまで */
	/* -------------------------------------------------------------------------- */



	/* -------------------------------------------------------------------------- */
	/* 大メニューここから */
	/* -------------------------------------------------------------------------- */
	.site_list_2 .info_list ul li a {
		font-size: 1.5em;
	}
	.site_list_2 .info_list ul li a::after {
		right: 1.65em;
	}
	/* -------------------------------------------------------------------------- */
	/* 大メニューここまで */
	/* -------------------------------------------------------------------------- */



	/* -------------------------------------------------------------------------- */
	/* 小メニューここから */
	/* -------------------------------------------------------------------------- */

	/* -------------------------------------------------------------------------- */
	/* 小メニューここまで */
	/* -------------------------------------------------------------------------- */



	/* -------------------------------------------------------------------------- */
	/* 最終ページここから */
	/* -------------------------------------------------------------------------- */
	.site_detail #main_body h2 {
		padding: 0.75em 1em;
	}
	/* -------------------------------------------------------------------------- */
	/* 最終ページここまで */
	/* -------------------------------------------------------------------------- */

}
/* ========================================================================== */
/* 1200px以下ここまで */
/* ========================================================================== */




/* ========================================================================== */
/* 1099px以下ここから */
/* ========================================================================== */
@media all and (max-width:1099px){

	/* -------------------------------------------------------------------------- */
	/* 共通ここから */
	/* -------------------------------------------------------------------------- */
	html {
		font-size: 62.5%;
	}
	/* -------------------------------------------------------------------------- */
	/* 共通ここまで */
	/* -------------------------------------------------------------------------- */



	/* -------------------------------------------------------------------------- */
	/* ヘッダーここから */
	/* -------------------------------------------------------------------------- */

	/* -------------------------------------------------------------------------- */
	/* ヘッダーここまで */
	/* -------------------------------------------------------------------------- */



	/* -------------------------------------------------------------------------- */
	/* スライドショーここから */
	/* -------------------------------------------------------------------------- */

	/* -------------------------------------------------------------------------- */
	/* スライドショーここまで */
	/* -------------------------------------------------------------------------- */



	/* -------------------------------------------------------------------------- */
	/* メッセージここから */
	/* -------------------------------------------------------------------------- */
	section.section-message {
		padding: 3em 0.5em 4em;
	}
	.section-message h2 {
		font-size: 1.75em;
	}
	span.scroll-line {
		height: 60px;
		transform: translate(0, 90%);
	}
	/* -------------------------------------------------------------------------- */
	/* メッセージここまで */
	/* -------------------------------------------------------------------------- */



	/* -------------------------------------------------------------------------- */
	/* 新着情報ここから */
	/* -------------------------------------------------------------------------- */
	/* ･･････････････････････････････････････････････････････････････････････････ */
	/* 全体新着 */
	/* ･･････････････････････････････････････････････････････････････････････････ */
	section.section-info {
		padding: 3em 1.5em 3em;
		border-radius: 50px 50px 0 0;
	}
	.section-info h2 {
		font-size: 1.75em;
	}
	.section_information_list ul li {
		font-size: 1.125em;
	}

	.section_information_list div.link_box span a {
		font-size: 1.125em;
	}

	/* ･･････････････････････････････････････････････････････････････････････････ */
	/* ブログ新着 */
	/* ･･････････････････････････････････････････････････････････････････････････ */
	.blog-news-container {
		gap: 0.5em;
	}
	.news-card {
		padding: 2em 1.5em;
	}
	.news-card h3 {
		font-size: 1.5em;
		margin: 0 0.5em 0.75em 0;
	}
	.card-primary h3::after, .card-junior h3::after {
		transform: translate(30px, -3px);
	}
	.news-card .news-list li {
		font-size: 1.125em;
	}
	/* -------------------------------------------------------------------------- */
	/* 新着情報ここまで */
	/* -------------------------------------------------------------------------- */



	/* -------------------------------------------------------------------------- */
	/* 年間行事ここから */
	/* -------------------------------------------------------------------------- */
	.section-schedule {
		padding: 4em 1em 8em;
	}
	.section-schedule::before {
		width: calc(300px * 0.7);
		height: calc(349px * 0.7);
		background-size: cover;
		top: 0;
	}
	.schedule-globe {
		--globe-size: 200px;
		--globe-line: 8px;
		top: -2%;
	}
	.section-schedule h2 {
		font-size: 1.75em;
	}
	
	.banner-title {
		font-size: clamp(1em, 2.2vw, 1.5em);
	}

	.banner-file {
		font-size: clamp(1em, 1.6vw, 1em);
	}
	/* -------------------------------------------------------------------------- */
	/* 年間行事ここまで */
	/* -------------------------------------------------------------------------- */



	/* -------------------------------------------------------------------------- */
	/* 教育方針ここから */
	/* -------------------------------------------------------------------------- */
	section.section-policy::before {
		height: 40px;
		border-radius: 40px 40px 0 0;
	}
	.policy-card.container {
		padding: 2em;
	}
	.section-policy h2 {
		font-size: 1.75em;
	}
	p.policy-catch {
		font-size: 1.5em;
	}
	.policy-lead p {
		font-size: 1.125em;
	}
	body .section-btn a {
		font-size: 1.125em;
	}
	/* -------------------------------------------------------------------------- */
	/* 教育方針ここまで */
	/* -------------------------------------------------------------------------- */



	/* -------------------------------------------------------------------------- */
	/* 教育理念ここから */
	/* -------------------------------------------------------------------------- */
	.section-philosophy {
		padding: 3em 1em 1em;
	}
	.section-philosophy h2 {
		font-size: 1.75em;
	}
	.section-philosophy .heading-lead {
		font-size: 1.5em;
		margin: 0.5em auto 3em;
	}
	.section-philosophy .heading-lead span + br + span::after {
		transform: translate(150%, -20%);
		width: calc(115px * 0.8);
		height: calc(115px * 0.8);
		background-size: cover;
	}
	.features-grid {	
		gap: 1em;
	}
	.feature-item {
		padding: 1.5em 1em 1em;
	}
	.feature-item::before {
		width: 50px;
		height: 62px;
	}
	.feature-item h3 {
		font-size: 1.25em;
	}

	.section-philosophy .section-btn {
		margin-top: 2em;
	}
	.section-philosophy .btn-secondary {
		padding: 0.75em 1.5em;
		font-size: 1.125em;
	}
	/* -------------------------------------------------------------------------- */
	/* 教育理念ここまで */
	/* -------------------------------------------------------------------------- */



	/* -------------------------------------------------------------------------- */
	/* 無限スライダーここから */
	/* -------------------------------------------------------------------------- */
	.gallery-item {
		width: 280px;
	}
	/* -------------------------------------------------------------------------- */
	/* 無限スライダーここまで */
	/* -------------------------------------------------------------------------- */



	/* -------------------------------------------------------------------------- */
	/* 地図ここから */
	/* -------------------------------------------------------------------------- */

	/* -------------------------------------------------------------------------- */
	/* 地図ここまで */
	/* -------------------------------------------------------------------------- */



	/* -------------------------------------------------------------------------- */
	/* フッターここから */
	/* -------------------------------------------------------------------------- */

	/* -------------------------------------------------------------------------- */
	/* フッターここまで */
	/* -------------------------------------------------------------------------- */



	/* -------------------------------------------------------------------------- */
	/* 下層サイドバーここから */
	/* -------------------------------------------------------------------------- */

	/* -------------------------------------------------------------------------- */
	/* 下層サイドバーここまで */
	/* -------------------------------------------------------------------------- */



	/* -------------------------------------------------------------------------- */
	/* 大メニューここから */
	/* -------------------------------------------------------------------------- */

	/* -------------------------------------------------------------------------- */
	/* 大メニューここまで */
	/* -------------------------------------------------------------------------- */



	/* -------------------------------------------------------------------------- */
	/* 小メニューここから */
	/* -------------------------------------------------------------------------- */

	/* -------------------------------------------------------------------------- */
	/* 小メニューここまで */
	/* -------------------------------------------------------------------------- */



	/* -------------------------------------------------------------------------- */
	/* 最終ページここから */
	/* -------------------------------------------------------------------------- */

	/* -------------------------------------------------------------------------- */
	/* 最終ページここまで */
	/* -------------------------------------------------------------------------- */

}
/* ========================================================================== */
/* 1099px以下ここまで */
/* ========================================================================== */






/* ========================================================================== */
/* 991px以下ここから */
/* ========================================================================== */
@media all and (max-width:991px){

	/* -------------------------------------------------------------------------- */
	/* 共通ここから */
	/* -------------------------------------------------------------------------- */

	/* -------------------------------------------------------------------------- */
	/* 共通ここまで */
	/* -------------------------------------------------------------------------- */



	/* -------------------------------------------------------------------------- */
	/* ヘッダーここから */
	/* -------------------------------------------------------------------------- */

	/* -------------------------------------------------------------------------- */
	/* ヘッダーここまで */
	/* -------------------------------------------------------------------------- */



	/* -------------------------------------------------------------------------- */
	/* スライドショーここから */
	/* -------------------------------------------------------------------------- */

	/* -------------------------------------------------------------------------- */
	/* スライドショーここまで */
	/* -------------------------------------------------------------------------- */



	/* -------------------------------------------------------------------------- */
	/* メッセージここから */
	/* -------------------------------------------------------------------------- */

	/* -------------------------------------------------------------------------- */
	/* メッセージここまで */
	/* -------------------------------------------------------------------------- */



	/* -------------------------------------------------------------------------- */
	/* 新着情報ここから */
	/* -------------------------------------------------------------------------- */

	/* -------------------------------------------------------------------------- */
	/* 新着情報ここまで */
	/* -------------------------------------------------------------------------- */



	/* -------------------------------------------------------------------------- */
	/* 年間行事ここから */
	/* -------------------------------------------------------------------------- */

	/* -------------------------------------------------------------------------- */
	/* 年間行事ここまで */
	/* -------------------------------------------------------------------------- */



	/* -------------------------------------------------------------------------- */
	/* 教育方針ここから */
	/* -------------------------------------------------------------------------- */

	/* -------------------------------------------------------------------------- */
	/* 教育方針ここまで */
	/* -------------------------------------------------------------------------- */



	/* -------------------------------------------------------------------------- */
	/* 教育理念ここから */
	/* -------------------------------------------------------------------------- */

	/* -------------------------------------------------------------------------- */
	/* 教育理念ここまで */
	/* -------------------------------------------------------------------------- */



	/* -------------------------------------------------------------------------- */
	/* 無限スライダーここから */
	/* -------------------------------------------------------------------------- */

	/* -------------------------------------------------------------------------- */
	/* 無限スライダーここまで */
	/* -------------------------------------------------------------------------- */



	/* -------------------------------------------------------------------------- */
	/* 地図ここから */
	/* -------------------------------------------------------------------------- */

	/* -------------------------------------------------------------------------- */
	/* 地図ここまで */
	/* -------------------------------------------------------------------------- */



	/* -------------------------------------------------------------------------- */
	/* フッターここから */
	/* -------------------------------------------------------------------------- */
	.footer-logo p {
		font-size: 1.5em;
	}

	.footer-links {
  		flex: 0 1 calc(220px + 45px + 10px + 100px);
 		padding: 1em calc(45px - 10px) 1em 0;
	}

	.page-top {
		width: 45px;
		height: 45px;
		right: 10px;
		bottom: 40px;
	}
	.page-top a::before {
		width: 25px;
		height: 6px;
		transform: translate(-11px, -2px) rotate(-45deg);
	}
	.page-top a::after {
		width: 25px;
		height: 6px;
		transform: translate(11px, -2px) rotate(45deg);
	}
	/* -------------------------------------------------------------------------- */
	/* フッターここまで */
	/* -------------------------------------------------------------------------- */



	/* -------------------------------------------------------------------------- */
	/* 下層共通ここから */
	/* -------------------------------------------------------------------------- */
	body:not(.site_index) {
		--main-inline-padding: 1.5em;
	}
	body:not(.site_index) main {
		flex-wrap: wrap;
	}
	body:not(.site_index) main > article {
		flex: 1 1 100%;
		order: 1;
	}
	body:not(.site_index) main > aside {
		flex: 0 0 100%;
		order: 2;
		padding: 0 1.5em;
	}

	.subsite_menu_ttl.acc_title label {
		padding: 0.75em 2.5em 0.75em 1em;
		font-size: 1.6rem;
	}
	/* -------------------------------------------------------------------------- */
	/* 下層共通ここまで */
	/* -------------------------------------------------------------------------- */



	/* -------------------------------------------------------------------------- */
	/* 大メニューここから */
	/* -------------------------------------------------------------------------- */
	body:not(.site_index) main > article #main_body {
		padding: 1.5em;
	}
	.site_list_2 .info_list ul li {
		margin: 1.5em 0;
	}
	.site_list_2 .info_list ul li:first-child {
    	margin-top: 0;
	}
	.site_list_2 .info_list ul li:last-child {
		margin-bottom: 0;
	}
	/* -------------------------------------------------------------------------- */
	/* 大メニューここまで */
	/* -------------------------------------------------------------------------- */



	/* -------------------------------------------------------------------------- */
	/* 小メニューここから */
	/* -------------------------------------------------------------------------- */

	/* -------------------------------------------------------------------------- */
	/* 小メニューここまで */
	/* -------------------------------------------------------------------------- */



	/* -------------------------------------------------------------------------- */
	/* 最終ページここから */
	/* -------------------------------------------------------------------------- */
	.site_detail #main_body h2 {
		padding: 0.75em 1em;
	}
	/* -------------------------------------------------------------------------- */
	/* 最終ページここまで */
	/* -------------------------------------------------------------------------- */

}
/* ========================================================================== */
/* 991px以下ここまで */
/* ========================================================================== */






/* ========================================================================== */
/* 767px以下ここから */
/* ========================================================================== */
@media all and (max-width:767px){

	/* -------------------------------------------------------------------------- */
	/* 共通ここから */
	/* -------------------------------------------------------------------------- */

	/* -------------------------------------------------------------------------- */
	/* 共通ここまで */
	/* -------------------------------------------------------------------------- */



	/* -------------------------------------------------------------------------- */
	/* ヘッダーここから */
	/* -------------------------------------------------------------------------- */

	/* -------------------------------------------------------------------------- */
	/* ヘッダーここまで */
	/* -------------------------------------------------------------------------- */



	/* -------------------------------------------------------------------------- */
	/* スライドショーここから */
	/* -------------------------------------------------------------------------- */

	/* -------------------------------------------------------------------------- */
	/* スライドショーここまで */
	/* -------------------------------------------------------------------------- */



	/* -------------------------------------------------------------------------- */
	/* メッセージここから */
	/* -------------------------------------------------------------------------- */
	
	/* -------------------------------------------------------------------------- */
	/* メッセージここまで */
	/* -------------------------------------------------------------------------- */



	/* -------------------------------------------------------------------------- */
	/* 新着情報ここから */
	/* -------------------------------------------------------------------------- */

	/* -------------------------------------------------------------------------- */
	/* 新着情報ここまで */
	/* -------------------------------------------------------------------------- */



	/* -------------------------------------------------------------------------- */
	/* 年間行事ここから */
	/* -------------------------------------------------------------------------- */
	.schedule-links.container {
		gap: 0.5em;
	}
	.schedule-links.container a {
		flex: 1 1 calc(50% - 0.5em);
		padding: 1.25em 0.25em 0.25em;
	}
	/* -------------------------------------------------------------------------- */
	/* 年間行事ここまで */
	/* -------------------------------------------------------------------------- */



	/* -------------------------------------------------------------------------- */
	/* 教育方針ここから */
	/* -------------------------------------------------------------------------- */
	.policy-card.container {
		padding: 2em 1em;
	}
	.policy-lead p {
		font-size: 1em;
	}
	/* ････････････････････････････････････････････････････････････････････････ */
	/* 教育方針：3色ボックス ＆ ピンク点線アーチ */
	/* ･･････････････････････････････････････････････････････････････････････････ */
    .badge-bottom-row {
        align-items: center;
        gap: 1.25em;
		flex-direction: column;
    }

    /* スマホで縦積みになった際は、下段の横点線を非表示に */
    .badge-bottom-row::before {
        display: none;
    }

    /* 点線アーチの横幅を調整 */
    .policy-features::before {
        width: 85%;
        height: 220px;
    }

    .feature-badge.badge-yellow {
		max-width: 320px;
	}
	.feature-badge.badge-blue {
		flex: 1 1 auto;
		max-width: 320px;
		margin-right: auto;
	}
	.badge-green {
		flex: 1 1 auto;
		max-width: 400px;
		padding: 18px 20px;
		margin-left: auto;
	}
	/* -------------------------------------------------------------------------- */
	/* 教育方針ここまで */
	/* -------------------------------------------------------------------------- */



	/* -------------------------------------------------------------------------- */
	/* 教育理念ここから */
	/* -------------------------------------------------------------------------- */
	.section-philosophy .heading-lead span + br + span::after {
		transform: translate(25%, -100%);
	}
	.features-grid.container {
		grid-template-columns: repeat(1, 1fr);
		gap: 4em 1.5em;
	}
	article.feature-item {
		max-width: 400px;
		margin: 0 auto;
	}
	article.feature-item:nth-child(1) {
		margin-left: 10%;
	}
	article.feature-item:nth-child(3) {
		margin-right: 10%;
	}
	/* -------------------------------------------------------------------------- */
	/* 教育理念ここまで */
	/* -------------------------------------------------------------------------- */



	/* -------------------------------------------------------------------------- */
	/* 無限スライダーここから */
	/* -------------------------------------------------------------------------- */

	/* -------------------------------------------------------------------------- */
	/* 無限スライダーここまで */
	/* -------------------------------------------------------------------------- */



	/* -------------------------------------------------------------------------- */
	/* 地図ここから */
	/* -------------------------------------------------------------------------- */

	/* -------------------------------------------------------------------------- */
	/* 地図ここまで */
	/* -------------------------------------------------------------------------- */



	/* -------------------------------------------------------------------------- */
	/* フッターここから */
	/* -------------------------------------------------------------------------- */
	.footer-inner.container {
		justify-content: center;
		flex-wrap: wrap;
		padding: 0.5em 1em;
	}
	.footer-info {
		width: 100%;
		max-width: 550px;
		margin: 0 auto;
	}
	.footer-links {
		padding: 1em;
	}
	/* -------------------------------------------------------------------------- */
	/* フッターここまで */
	/* -------------------------------------------------------------------------- */



	/* -------------------------------------------------------------------------- */
	/* 下層共通ここから */
	/* -------------------------------------------------------------------------- */

	/* -------------------------------------------------------------------------- */
	/* 下層共通ここまで */
	/* -------------------------------------------------------------------------- */



	/* -------------------------------------------------------------------------- */
	/* 大メニューここから */
	/* -------------------------------------------------------------------------- */

	/* -------------------------------------------------------------------------- */
	/* 大メニューここまで */
	/* -------------------------------------------------------------------------- */



	/* -------------------------------------------------------------------------- */
	/* 小メニューここから */
	/* -------------------------------------------------------------------------- */

	/* -------------------------------------------------------------------------- */
	/* 小メニューここまで */
	/* -------------------------------------------------------------------------- */



	/* -------------------------------------------------------------------------- */
	/* 最終ページここから */
	/* -------------------------------------------------------------------------- */

	/* -------------------------------------------------------------------------- */
	/* 最終ページここまで */
	/* -------------------------------------------------------------------------- */

}
/* ========================================================================== */
/* 767px以下ここまで */
/* ========================================================================== */




/* ========================================================================== */
/* 599px以下ここから */
/* ========================================================================== */
@media all and (max-width:599px){

	/* -------------------------------------------------------------------------- */
	/* 共通ここから */
	/* -------------------------------------------------------------------------- */

	/* -------------------------------------------------------------------------- */
	/* 共通ここまで */
	/* -------------------------------------------------------------------------- */



	/* -------------------------------------------------------------------------- */
	/* ヘッダーここから */
	/* -------------------------------------------------------------------------- */

	/* -------------------------------------------------------------------------- */
	/* ヘッダーここまで */
	/* -------------------------------------------------------------------------- */



	/* -------------------------------------------------------------------------- */
	/* スライドショーここから */
	/* -------------------------------------------------------------------------- */
	.hero-slider {
		overflow: visible;
	}
	.slider-controls {
		bottom: -35px;
	}
	.slider-controls button.ctrl-btn.btn-prev, .slider-controls button.ctrl-btn.ctrl-btn, .slider-controls button.ctrl-btn.btn-next {
		width: 25px;
		height: 25px;
	}
	.slider-controls .slide-counter {
		height: 25px;
	}
	/* -------------------------------------------------------------------------- */
	/* スライドショーここまで */
	/* -------------------------------------------------------------------------- */



	/* -------------------------------------------------------------------------- */
	/* メッセージここから */
	/* -------------------------------------------------------------------------- */

	/* -------------------------------------------------------------------------- */
	/* メッセージここまで */
	/* -------------------------------------------------------------------------- */



	/* -------------------------------------------------------------------------- */
	/* 新着情報ここから */
	/* -------------------------------------------------------------------------- */
	.blog-news-container.container {
		grid-template-columns: repeat(1, 1fr);
		gap: 3.5em;
	}
	/* -------------------------------------------------------------------------- */
	/* 新着情報ここまで */
	/* -------------------------------------------------------------------------- */



	/* -------------------------------------------------------------------------- */
	/* 年間行事ここから */
	/* -------------------------------------------------------------------------- */

	/* -------------------------------------------------------------------------- */
	/* 年間行事ここまで */
	/* -------------------------------------------------------------------------- */



	/* -------------------------------------------------------------------------- */
	/* 教育方針ここから */
	/* -------------------------------------------------------------------------- */
	.policy-lead br {
		display: block;
	}
	/* -------------------------------------------------------------------------- */
	/* 教育方針ここまで */
	/* -------------------------------------------------------------------------- */



	/* -------------------------------------------------------------------------- */
	/* 教育理念ここから */
	/* -------------------------------------------------------------------------- */

	/* -------------------------------------------------------------------------- */
	/* 教育理念ここまで */
	/* -------------------------------------------------------------------------- */



	/* -------------------------------------------------------------------------- */
	/* 無限スライダーここから */
	/* -------------------------------------------------------------------------- */

	/* -------------------------------------------------------------------------- */
	/* 無限スライダーここまで */
	/* -------------------------------------------------------------------------- */



	/* -------------------------------------------------------------------------- */
	/* 地図ここから */
	/* -------------------------------------------------------------------------- */

	/* -------------------------------------------------------------------------- */
	/* 地図ここまで */
	/* -------------------------------------------------------------------------- */



	/* -------------------------------------------------------------------------- */
	/* フッターここから */
	/* -------------------------------------------------------------------------- */

	/* -------------------------------------------------------------------------- */
	/* フッターここまで */
	/* -------------------------------------------------------------------------- */



	/* -------------------------------------------------------------------------- */
	/* 下層共通ここから */
	/* -------------------------------------------------------------------------- */
	div#main_header h1 {
		font-size: 1.5em;
		line-height: 1.25;
		padding: 2em 0.5em;
	}
	/* -------------------------------------------------------------------------- */
	/* 下層共通ここまで */
	/* -------------------------------------------------------------------------- */



	/* -------------------------------------------------------------------------- */
	/* 大メニューここから */
	/* -------------------------------------------------------------------------- */
	.site_list_2 .info_list ul li a {
		font-size: 1.25em;
		padding: 0.3em 2.7em 0.3em 2em;
	}
	.site_list_2 .info_list ul li a::before {
		transform: translate(15px, -50%);
		width: 24px;
		height: 24px;
	}
	.site_list_2 .info_list ul li a::after {
		transform: translate(15px, -50%) rotate(-45deg);
		width: 8px;
		height: 8px;
		right: 1.55em;
	}
	/* -------------------------------------------------------------------------- */
	/* 大メニューここまで */
	/* -------------------------------------------------------------------------- */



	/* -------------------------------------------------------------------------- */
	/* 小メニューここから */
	/* -------------------------------------------------------------------------- */

	/* -------------------------------------------------------------------------- */
	/* 小メニューここまで */
	/* -------------------------------------------------------------------------- */



	/* -------------------------------------------------------------------------- */
	/* 最終ページここから */
	/* -------------------------------------------------------------------------- */
	.site_detail #main_body h2 {
		font-size: 1.2em;
		padding: 0.65em;
	}
	.site_detail #main_body h3 {
		font-size: 1.15em;
		padding: 0.5em 1em 0.5em 1.5em;
	}
	.site_detail #main_body h3::before {
		transform: scale(0.9) translate(0, 5px);
	}
	.site_detail #main_body h4 {
		padding: 0.5em 1em 0.5em 1.5em;
		font-size: 1.1em;
	}
	/* -------------------------------------------------------------------------- */
	/* 最終ページここまで */
	/* -------------------------------------------------------------------------- */

}
/* ========================================================================== */
/* 599px以下ここまで */
/* ========================================================================== */






/* ========================================================================== */
/* 480px以下ここから */
/* ========================================================================== */
@media all and (max-width:480px){

	/* -------------------------------------------------------------------------- */
	/* 共通ここから */
	/* -------------------------------------------------------------------------- */

	/* -------------------------------------------------------------------------- */
	/* 共通ここまで */
	/* -------------------------------------------------------------------------- */



	/* -------------------------------------------------------------------------- */
	/* ヘッダーここから */
	/* -------------------------------------------------------------------------- */
	body .global-nav .sub-menu a {
		font-size: 1em;
	}
	/* -------------------------------------------------------------------------- */
	/* ヘッダーここまで */
	/* -------------------------------------------------------------------------- */



	/* -------------------------------------------------------------------------- */
	/* スライドショーここから */
	/* -------------------------------------------------------------------------- */
	
	/* -------------------------------------------------------------------------- */
	/* スライドショーここまで */
	/* -------------------------------------------------------------------------- */



	/* -------------------------------------------------------------------------- */
	/* メッセージここから */
	/* -------------------------------------------------------------------------- */
	section.section-message {
		padding: 5em 0.5em 4em;
	}
	.message-body {
		background-position: bottom;
		padding: 3.5em 0 10em;
	}
	.section-message h2 {
		font-size: 1.5em;
	}
	p.message-catch img {
		max-width: 280px;
		display: block;
		margin: 0 auto;
	}
	/* -------------------------------------------------------------------------- */
	/* メッセージここまで */
	/* -------------------------------------------------------------------------- */



	/* -------------------------------------------------------------------------- */
	/* 新着情報ここから */
	/* -------------------------------------------------------------------------- */
	.section-info h2 {
		font-size: 1.5em;
	}
	.section_information_list ul {
		margin: 0 0.25em;
		padding: 1em 0.5em;
	}
	.section_information_list ul li {
		font-size: 1em;
	}

	.section_information_list div.link_box span a {
		font-size: 1em;
	}
	.news-card h3 {
		font-size: 1.25em;
	}
	.news-card .news-list li {
		font-size: 1em;
	}

	.section_information_list div.link_box span:first-child {
		margin: 0;
	}
	/* -------------------------------------------------------------------------- */
	/* 新着情報ここまで */
	/* -------------------------------------------------------------------------- */



	/* -------------------------------------------------------------------------- */
	/* 年間行事ここから */
	/* -------------------------------------------------------------------------- */
	section.section-schedule {
		padding: 3em 0.25em 6em;
	}
	.schedule-links.container {
		gap: 0.25em;
		margin-top: 1.5em;
	}
	.section-schedule::before {
		width: calc(300px * 0.4);
		height: calc(349px * 0.4);
		background-size: cover;
	}
	.schedule-globe {
		top: -8%;
		right:-8%;
		transform: scale(0.6) rotate(23.4deg);
	}

	.schedule-links.container a {
		flex: 1 1 calc(50% - 0.5em);
		padding: 1.25em 0.25em 0.25em;
		border-width: 8px;
		min-height: 150px;
	}
	.schedule-banner::before, .schedule-banner::after {
		width: 20px;
	}
	span.banner-clip {
		top: -16px;
		width: calc(140px * 0.65);
		height: calc(55px * 0.65);
	}
	.banner-clip::after {
		top: calc(13px + 3px);
		width: 65px;
	}

	.banner-title br {
		display: block;
	}
	.schedule-links::before, .schedule-links::after  {
		display: none;
	}

	span.banner-file {
		font-size: 0.75em;
	}
	/* -------------------------------------------------------------------------- */
	/* 年間行事ここまで */
	/* -------------------------------------------------------------------------- */



	/* -------------------------------------------------------------------------- */
	/* 教育方針ここから */
	/* -------------------------------------------------------------------------- */
	.section-policy h2 {
		font-size: 1.5em;
	}

	p.policy-catch {
		font-size: 1.125em;
	}

	.policy-features {
		padding: 1.25em 0em 0.5em;
		gap: 0.75em;
	}
	.policy-features::before {
		width: 90%;
		height: 150px;
		border-radius: 20px;
	}
	section.section-policy {
		padding: 0 1em 5em;
	}
	.policy-card.container {
		padding: 2em 0.5em;
	}
	.badge-bottom-row {
		align-items: center;
		gap: 0.75em;
	}
	.feature-badge.badge-yellow, .feature-badge.badge-blue, .feature-badge.badge-green {
		padding: 0.5em;
	}
	.feature-badge.badge-yellow {
		max-width: 280px;
		margin-left: auto;
	}

	body .section-btn a {
		font-size: 1em;
		padding: 0.75em 1em;
	}
	body .section-btn a::after {
		right: 1em;
	}

	/* -------------------------------------------------------------------------- */
	/* 教育方針ここまで */
	/* -------------------------------------------------------------------------- */



	/* -------------------------------------------------------------------------- */
	/* 教育理念ここから */
	/* -------------------------------------------------------------------------- */
	.section-philosophy h2 {
		font-size: 1.5em;
	}

	.section-philosophy .heading-lead span + br + span::after {
		transform: translate(25%, -150%);
		width: calc(115px * 0.5);
		height: calc(115px * 0.5);
		background-size: cover;
	}
	.section-philosophy .heading-lead {
		font-size: 1.25em;
	}
	article.feature-item:nth-child(1) {
		margin-left: auto;
	}
	article.feature-item:nth-child(3) {
		margin-right: auto;
	}
	.section-philosophy .btn-secondary {
		font-size: 1em;
	}
	/* -------------------------------------------------------------------------- */
	/* 教育理念ここまで */
	/* -------------------------------------------------------------------------- */



	/* -------------------------------------------------------------------------- */
	/* 無限スライダーここから */
	/* -------------------------------------------------------------------------- */

	/* -------------------------------------------------------------------------- */
	/* 無限スライダーここまで */
	/* -------------------------------------------------------------------------- */



	/* -------------------------------------------------------------------------- */
	/* 地図ここから */
	/* -------------------------------------------------------------------------- */

	/* -------------------------------------------------------------------------- */
	/* 地図ここまで */
	/* -------------------------------------------------------------------------- */



	/* -------------------------------------------------------------------------- */
	/* フッターここから */
	/* -------------------------------------------------------------------------- */
	.footer-logo {
		flex-direction: column;
	}
	.footer-logo > img {
		flex: 0 1 auto;
	}
	address.footer-address {
		margin: 0 auto;
		padding: 0;
		max-width: 280px;
	}
	.footer-links {
		flex: 0 1 260px;
	}
	.page-top {
		bottom: 60px;
	}
	/* -------------------------------------------------------------------------- */
	/* フッターここまで */
	/* -------------------------------------------------------------------------- */



	/* -------------------------------------------------------------------------- */
	/* 下層共通ここから */
	/* -------------------------------------------------------------------------- */
	body:not(.site_index) {
		--main-inline-padding: 0.75em;
	}
	body:not(.site_index) main > article #main_body {
		padding: 1.5em 0.75em;
	}
	.site_list_2 .info_list ul li {
		margin: 1em 0;
	}

	
	/* -------------------------------------------------------------------------- */
	/* 下層共通ここまで */
	/* -------------------------------------------------------------------------- */



	/* -------------------------------------------------------------------------- */
	/* 大メニューここから */
	/* -------------------------------------------------------------------------- */
	.site_list_2 .info_list ul li::before {
		width: calc(41px * 0.8);
		height: calc(42px * 0.8);
	}
	/* -------------------------------------------------------------------------- */
	/* 大メニューここまで */
	/* -------------------------------------------------------------------------- */



	/* -------------------------------------------------------------------------- */
	/* 小メニューここから */
	/* -------------------------------------------------------------------------- */
	.site_list1 .info_list ul li {
		padding: 1.5em 0 0.75em;
	}
	.site_list1 .info_list ul li a {
		font-size: 1em;
		padding: 0.5em 2.5em 0.5em 1.2em;
	}
	.site_list1 .info_list ul li a::before {
		right: 0.15em;
		width: 24px;
		height: 24px;
	}
	.site_list1 .info_list ul li a::after {
		width: 8px;
		height: 8px;
		border-right: 3px solid #4A77BA;
		border-bottom: 3px solid #4A77BA;
		right: 0.7em;
	}
	.info_list.info_list_date ul li>span.article_date {
		max-width: 11.5em;
		padding: 0.05em 1em 0.05em 0.8em;
		font-size: 0.9em;
		border-left: 6px solid #4A77BA;
	}
	/* -------------------------------------------------------------------------- */
	/* 小メニューここまで */
	/* -------------------------------------------------------------------------- */



	/* -------------------------------------------------------------------------- */
	/* 最終ページここから */
	/* -------------------------------------------------------------------------- */

	/* -------------------------------------------------------------------------- */
	/* 最終ページここまで */
	/* -------------------------------------------------------------------------- */

}
/* ========================================================================== */
/* 480px以下ここまで */
/* ========================================================================== */





/* ========================================================================== */
/* 360px以下ここから */
/* ========================================================================== */
@media all and (max-width:360px){

	/* -------------------------------------------------------------------------- */
	/* 共通ここから */
	/* -------------------------------------------------------------------------- */

	/* -------------------------------------------------------------------------- */
	/* 共通ここまで */
	/* -------------------------------------------------------------------------- */



	/* -------------------------------------------------------------------------- */
	/* ヘッダーここから */
	/* -------------------------------------------------------------------------- */

	/* -------------------------------------------------------------------------- */
	/* ヘッダーここまで */
	/* -------------------------------------------------------------------------- */



	/* -------------------------------------------------------------------------- */
	/* スライドショーここから */
	/* -------------------------------------------------------------------------- */

	/* -------------------------------------------------------------------------- */
	/* スライドショーここまで */
	/* -------------------------------------------------------------------------- */



	/* -------------------------------------------------------------------------- */
	/* メッセージここから */
	/* -------------------------------------------------------------------------- */

	/* -------------------------------------------------------------------------- */
	/* メッセージここまで */
	/* -------------------------------------------------------------------------- */



	/* -------------------------------------------------------------------------- */
	/* 新着情報ここから */
	/* -------------------------------------------------------------------------- */

	/* -------------------------------------------------------------------------- */
	/* 新着情報ここまで */
	/* -------------------------------------------------------------------------- */



	/* -------------------------------------------------------------------------- */
	/* 年間行事ここから */
	/* -------------------------------------------------------------------------- */

	/* -------------------------------------------------------------------------- */
	/* 年間行事ここまで */
	/* -------------------------------------------------------------------------- */



	/* -------------------------------------------------------------------------- */
	/* 教育方針ここから */
	/* -------------------------------------------------------------------------- */

	/* -------------------------------------------------------------------------- */
	/* 教育方針ここまで */
	/* -------------------------------------------------------------------------- */



	/* -------------------------------------------------------------------------- */
	/* 教育理念ここから */
	/* -------------------------------------------------------------------------- */

	/* -------------------------------------------------------------------------- */
	/* 教育理念ここまで */
	/* -------------------------------------------------------------------------- */



	/* -------------------------------------------------------------------------- */
	/* 無限スライダーここから */
	/* -------------------------------------------------------------------------- */

	/* -------------------------------------------------------------------------- */
	/* 無限スライダーここまで */
	/* -------------------------------------------------------------------------- */



	/* -------------------------------------------------------------------------- */
	/* 地図ここから */
	/* -------------------------------------------------------------------------- */

	/* -------------------------------------------------------------------------- */
	/* 地図ここまで */
	/* -------------------------------------------------------------------------- */



	/* -------------------------------------------------------------------------- */
	/* フッターここから */
	/* -------------------------------------------------------------------------- */

	/* -------------------------------------------------------------------------- */
	/* フッターここまで */
	/* -------------------------------------------------------------------------- */



	/* -------------------------------------------------------------------------- */
	/* 下層共通ここから */
	/* -------------------------------------------------------------------------- */

	/* -------------------------------------------------------------------------- */
	/* 下層共通ここまで */
	/* -------------------------------------------------------------------------- */



	/* -------------------------------------------------------------------------- */
	/* 大メニューここから */
	/* -------------------------------------------------------------------------- */

	/* -------------------------------------------------------------------------- */
	/* 大メニューここまで */
	/* -------------------------------------------------------------------------- */



	/* -------------------------------------------------------------------------- */
	/* 小メニューここから */
	/* -------------------------------------------------------------------------- */

	/* -------------------------------------------------------------------------- */
	/* 小メニューここまで */
	/* -------------------------------------------------------------------------- */



	/* -------------------------------------------------------------------------- */
	/* 最終ページここから */
	/* -------------------------------------------------------------------------- */

	/* -------------------------------------------------------------------------- */
	/* 最終ページここまで */
	/* -------------------------------------------------------------------------- */

}
/* ========================================================================== */
/* 360px以下ここまで */
/* ========================================================================== */