/*
Theme Name: okahaku
Theme URI: https://example.com/okahaku
Author: okahaku
Author URI: https://example.com
Description: okahaku custom WordPress theme.
Version: 1.0.0
License: GNU General Public License v2 or later
License URI: https://www.gnu.org/licenses/gpl-2.0.html
Text Domain: okahaku
Tags: custom-theme, blog, one-column
*/

@import url('https://fonts.googleapis.com/css2?family=Playfair+Display:wght@400;600&family=Libre+Baskerville:wght@400;700&display=swap');
@import url('https://fonts.googleapis.com/css2?family=GFS+Didot&display=swap');

/* ========================================
   Reset / Base
======================================== */

*, *::before, *::after {
  box-sizing: border-box!important;
}

:focus {
  outline: none;
}

html {
  -webkit-text-size-adjust: 100%;
  text-size-adjust: 100%;
  scroll-behavior: smooth;
	font-size:15px;
	box-sizing:border-box;
}

body {
  margin: 0;
  font-family: system-ui, -apple-system, "Segoe UI", Roboto, "Noto Sans JP",
    "Hiragino Kaku Gothic ProN", "Yu Gothic", Meiryo, Arial, sans-serif;
  line-height: 1.7;
  color: #4A4642;
  background: #fff;
}

img, video, svg {
  max-width: 100%;
  height: auto;
  vertical-align: middle;
}

a {
  color: #4A4642;
  text-decoration: none;
	cursor:pointer;
}

a:hover,
a:focus-visible {
  text-decoration: none;
}

br.pc{
	display: inline;
}

br.sp{
	display: none;
}

@media screen and (max-width: 900px){
	br.pc{
		display: none;
	}

	br.sp{
		display: inline;
	}
}

/*
:focus-visible {
  outline: 2px solid currentColor;
  outline-offset: 3px;
}
*/

.text--alert {
  color: #d93025; /* 赤：警告・注意 */
}

.section__block{
	margin:0 0 3.5rem;
}

/* ========================================
   Layout Helpers
======================================== */

.container {
  width: min(1120px, 100%);
	margin-inline: auto;
}

@media screen and (max-width:1200px){
	.container {
		padding-right:1rem;
		padding-left:1rem;
	}
}

.site-header,
.site-footer {

}


/* ========================================
   Typography
======================================== */

h1, h2, h3, h4, h5, h6 {
  line-height: 1.25;
  margin: 0 0 0.6em;
}

p {
  margin: 0 0 1em;
}

ul, ol {
  margin: 0 0 1em;
  padding-left: 1.2em;
}

/* ========================================
   WordPress Core (最低限)
======================================== */

/* 画像の配置（エディタ互換） */
.alignnone { margin: 0.5em 1em 1em 0; }
.aligncenter { display: block; margin: 1em auto; }
.alignright { float: right; margin: 0.5em 0 1em 1em; }
.alignleft  { float: left;  margin: 0.5em 1em 1em 0; }

/* キャプション */
.wp-caption {
  max-width: 100%;
  margin: 1em 0;
}
.wp-caption-text {
  font-size: 0.9rem;
  opacity: 0.8;
  margin-top: 0.4em;
}

/* ギャラリー */
.gallery {
  display: grid;
  gap: 12px;
}
.gallery-columns-2 { grid-template-columns: repeat(2, 1fr); }
.gallery-columns-3 { grid-template-columns: repeat(3, 1fr); }
.gallery-columns-4 { grid-template-columns: repeat(4, 1fr); }
.gallery-item { margin: 0; }

/* スクリーンリーダー用 */
.screen-reader-text {
  border: 0;
  clip: rect(1px, 1px, 1px, 1px);
  clip-path: inset(50%);
  height: 1px;
  margin: -1px;
  overflow: hidden;
  padding: 0;
  position: absolute !important;
  width: 1px;
  white-space: nowrap;
}

/* クリアフィックス */
.clearfix::after {
  content: "";
  display: block;
  clear: both;
}


/* ------------------------------------------------------------
 * Loading
 * ------------------------------------------------------------ */


#loading-wrapper {
  position: fixed;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  background-color: #e6e1d9;
	color:#111;
  display: flex;
  flex-direction: column;
  justify-content: center;
  align-items: center;
  transition: all 0.3s;
  z-index: 9999;
	pointer-events:none;
	font-weight:bold;
}

#loading-wrapper img{
	width:200px;
	max-width:80vw;
	display:block;
	opacity:0;
animation-name: loading;
animation-fill-mode:forwards;
animation-duration:0.5s;
animation-iteration-count:1;
animation-timing-function:ease;
animation-delay: 0.2s;
animation-direction:normal;
}

@keyframes loading{
  0% {
	  opacity:0;
  }


100% {
  	  opacity:1;
	}

}


#loading-wrapper.completed {
pointer-events:none!important;
animation-name: loadingComplete;
animation-fill-mode:forwards;
animation-duration:0.9s;
animation-iteration-count:1;
animation-timing-function:ease;
animation-delay: 0.45s;
animation-direction:normal;
}

#loading-wrapper.completed .loader {
animation-name: loadingComplete;
animation-fill-mode:forwards;
animation-duration:0.4s;
animation-iteration-count:1;
animation-timing-function:ease;
animation-delay: 0.2s;
animation-direction:normal;
}

@keyframes loadingComplete{
  0% {
	  opacity:1;
  }

  80% {


  }
  100% {
	  opacity:0;
		pointer-events:none;
  }

}


/* ========================================
   Header
======================================== */

header.site-header{
	position:fixed;
	z-index:99;
	width:100%;
	height:90px;
	transition:all 0.3s ease;

}

body.scrolled header.site-header{
	height:60px;
}

header.site-header .header__inner{
	display:flex;
	align-items:center;
	justify-content:space-between;
	width:100%;
	height:100%;
	transform:translatey(-100%);

}
body.completed header.site-header .header__inner{
	transform:translatey(0);
}

body:not(.scrolled) header.site-header .header__inner{
	background-color:rgba(255,255,255,0.55);
	transition:all 0.5s ease 0s;
}


body.scrolled header.site-header .header__inner{
	background-color:rgba(255,255,255,1);
	transition:all 0.5s ease 0s;
}



header .site-title{
	margin:0;
	padding:0 1rem;
}

header .site-title img{
	width:360px;
	height:auto;
	position:relative;
	z-index:10001;
	transition:all 0.3s ease;
}


body.scrolled .site-title img{
	width:300px;
}

@media screen and (max-width:900px){	
	header .site-title img{
		width:240px;
	}
	body.scrolled .site-title img{
	width:240px;
}
}


body.is-menu-open header .site-title img{
	filter: brightness(0) invert(0.5);
}

body.is-menu-open header .site-title:hover img{
	filter: brightness(1) invert(0);
}

header .header__nav{
	margin:0 0 0 auto;
	padding:0 1.5rem 0 0 ;
}

header .header__nav ul{
	display:flex;
	margin:0;
	padding:0;
	list-style-type:none;
}

header .header__nav ul li{
	margin:0 1.5rem 0 0;
}

header .side__nav{
	position:absolute;
	z-index:-1;
	right:0;
	width:90px;
	transition:width 0.3s ease , height 0.3s ease;

}
.side__nav--inner{
	transform:translatex(100%);
	transition:all 0.3s ease;
}

body.completed .side__nav--inner{
	position:absolute;
	right:0;
	width:100%;
	transform:translatex(0);
	transition:transform 0.5s ease 0s;
	background-color:rgba(245,245,245,0.55);
	height:calc(100vh - 90px);
	z-index:-1;
	display:flex;
	flex-direction:column;
	align-items:center;
}


header .side__nav.side__nav--inner{
	height:100%;
}

body.scrolled header .side__nav{
	width:60px;
	height:calc(100vh - 120px);
	transition:width 0.3s ease , height 0.3s ease;

}

body.scrolled header .side__nav--inner{
	height:calc(100vh - 120px);
	background-color:rgba(245,245,245,0.45);
}


header .side__nav ul{
	list-style-type:none;
	display:flex;
	flex-direction:row;
	writing-mode: vertical-rl;
	text-orientation: upright;
	width:100%;
	height:100%;
	margin:0;
	padding:1rem 0 1.5rem 0;
	transition:all 0.3s ease;
	flex:1;
}

body.scrolled header .side__nav ul{
	padding:1rem 0 0rem 0;
}

header .side__nav ul li{
	width:100%;	
	writing-mode: vertical-rl;
	text-orientation: upright;
}

header .side__nav ul li a{
	display:flex;
	width:100%;
	height:auto;
	align-items:center;
	justify-content:center;
	padding:1rem 0;
	writing-mode: vertical-rl;
	text-orientation: upright;
	letter-spacing: 0.08em;
	transition:all 0.3s ease;
}

header .side__nav ul li:not(.icon) a:hover{
	background: rgba(230, 225, 217, 0.6); /* #e6e1d9系 */
	color: #4A4642; /* 本文色で高視認性 */
}

header .side__nav ul li.icon#access{
	margin-top:auto;
}

header .side__nav ul li.icon a:hover{
	opacity:0.7;

}

header .side__nav ul li.icon{
	height:40px;
	margin:0 0 1rem;
	transition:all 0.3s ease;
}

header .side__nav ul li.icon a{
	padding:.5rem 0;
	writing-mode: horizontal-tb;
	text-orientation: mixed;
	display:flex;
	flex-direction:column;
	align-items:center;
	font-size:0.7rem
}

header .side__nav ul li.icon span{
	display:block;
	line-height:1.3;
	transition:opacity 0.3s ease, transform 0.3s ease 0.5s, height 0.3s ease 0.8s;
	height:1.3em;
}

body.scrolled header .side__nav ul li.icon{
	height:28px;
}

body.scrolled header .side__nav ul li.icon span{
	opacity:0;
	height:0em;
}

header .side__nav ul li img{
	width:24px;
	display:block;
	margin:0 0 0.25rem;
}


@media screen and (max-width:900px){
	header .side__nav{
		display:none;
	}
}

/* ===== Hamburger button ===== */
.hamburger {
/*  position: fixed;*/
	position:relative;
  top: 0px;
  right: 0px;
  z-index: 10010;
  width: 90px;
  height: 90px;
  border: none;
  background: #e6e1d9;
  cursor: pointer;
  padding: 0;
display:flex;
	justify-content:center;
	align-items:center;
	transition:all 0.3s ease;
}

body.scrolled .hamburger {
  width: 60px;
  height: 60px;
}



.hamburger__bar {
  position: absolute;
  left: 50%;
  width: 28px;
  height: 2px;
  background: #4A4642;
  transform: translateX(-50%);
  transition: transform 0.35s ease, opacity 0.25s ease, top 0.35s ease;
}

/* 3本配置 */
.hamburger__bar:nth-child(1) { top: calc(40% - 1px); }
.hamburger__bar:nth-child(2) { top: calc(50% - 1px); }
.hamburger__bar:nth-child(3) { top: calc(60% - 1px); }

/* ===== Active: 3本 -> 2本クロス ===== */
.is-menu-open .hamburger__bar:nth-child(1) {
  top: calc(50% - 1px);
  transform: translateX(-50%) rotate(45deg);
}
.is-menu-open .hamburger__bar:nth-child(2) {
  opacity: 0;
}
.is-menu-open .hamburger__bar:nth-child(3) {
  top: calc(50% - 1px);
  transform: translateX(-50%) rotate(-45deg);
}

.hamburger::before {
  content: "";
  position: absolute;
  inset: 0;
background: linear-gradient(165deg, #c1a98f 0%, #d3c2b0 30%, #eadfce 60%, #d0bda9 85%, #b09a86 100%);
  opacity: 0;
  transition: opacity 0.4s ease;
}

.hamburger:hover::before,
.is-menu-open .hamburger::before {
  opacity: 1;
}

.hamburger:hover .hamburger__bar,
.is-menu-open .hamburger .hamburger__bar {

background: #4A4642;
}

/* ===== Drawer (full-screen) ===== */
.drawer {
  position: fixed!important;
	width:100vw;
	height:100vh;
	
  inset: 0;
  z-index: 0;
  display: flex;
  align-items: center;
  justify-content: center;
  pointer-events: none;
  opacity: 0;
  transition: opacity 0.35s ease;
}

.drawer__inner {
  transform: translateY(10px);
  opacity: 0;
  transition: transform 0.35s ease, opacity 0.35s ease;
	padding:2.5rem 1.5rem 1.5rem 1.5rem;
}

.is-menu-open .drawer {
  pointer-events: auto;
  opacity: 1;
}

.is-menu-open .drawer__inner {
  transform: translateY(0);
  opacity: 1;
}

/* 背景（オーバーレイ） */
.drawer::before {
  content: "";
  position: absolute;
  inset: 0;
  background: rgba(230, 225, 217, 0.75); /* 少し透過 */
  
  /* 背景をぼかす（ガラス風） */
  backdrop-filter: blur(8px);
  -webkit-backdrop-filter: blur(8px); /* Safari対策 */
}
/* メニュー */
.drawer__menu {
  position: relative; /* ::beforeの上に出す */
  list-style: none;
  margin: 0;
  padding: 0;
  text-align: center;
}

.drawer__menu li + li {
  margin-top: 18px;
}

.drawer__menu a {
  display: inline-block;
  font-size: 22px;
  line-height: 1.4;
  text-decoration: none;
  color: #fff;
  padding: 10px 16px;
}

/* backdrop（クリック領域） */
.drawer-backdrop {
  position: fixed;
  inset: 0;
  z-index: 9999; /* drawerより下、でもページより上 */
  opacity: 0;
  pointer-events: none;
}

.is-menu-open .drawer-backdrop {
  pointer-events: auto;
}

/* スクロール禁止 */
/*
.is-menu-open {
  overflow: hidden;
}
*/


/* ドロワー内メニュー */

.drawer .menu__container{
	display:flex;
	flex-wrap:wrap;
	display:flex;
	flex-wrap:wrap;
	gap:2rem;
	margin:0;
	padding:0;
	list-style:none;
}



.drawer .menu__container .menu__item{
	width:calc(25% - 1.5rem);
}

@media screen and (max-width:900px){
	.drawer__inner{
		max-height:100vh;
		overflow-y:scroll;
	}
	.drawer__inner{
		padding:6rem 1rem 1rem 1rem;
	}
		.drawer .menu__container{
		gap:0.5rem;
	}
	.drawer .menu__container .menu__item{
		width:calc(50% - 0.25rem);
	}
}


.drawer .menu__container .menu__item,
.drawer .menu__container .menu__item a{
	color:#4A4642;
}


.drawer .menu__container .menu__item .menu__item--title{
	font-weight:bold;
	border-bottom:1px solid rgba(74, 70, 66, 0.2);
	padding:0 0 0.25rem;
	margin:0 0 0.75rem;
	font-size:1.1rem;
}

.drawer .menu__container .menu__item ul{
	list-style-type:none;
}

.drawer .menu__container .menu__item ul li{
	font-size:0.9rem;
}



/* ================================
   Header Dropdown Menu
================================ */

/* ナビ基本 */
.header__nav ul {
  list-style: none;
  margin: 0;
  padding: 0;
}

.header__nav > ul {
  display: flex;
  gap: 1.5rem;
}

/* 親li */
.header__nav > ul > li {
  position: relative;
}

/* リンク */
.header__nav a {
  display: block;
  text-decoration: none;
  padding: 14px 0;
  color: #4A4642;
  font-weight: 500;
  transition: color 0.3s ease;
}

.header__nav > ul > li > a:hover {
  color: #7a7064;;
}


@media screen and (max-width:1100px){
	.header__nav{
		display:none;
	}
}

/* ================================
   プルダウン本体（初期非表示）
================================ */
.header__nav ul ul {
  position: absolute;
  top: 100%;
  left: 0;
  min-width: 220px;
	margin:0;

  background: #ffffff;
  border-radius: 4px;
  box-shadow: 0 10px 30px rgba(0,0,0,0.08);

  padding: 12px;

  /* 初期状態（非表示） */
  opacity: 0;
  visibility: hidden;
  transform: translateY(10px);

  transition:
    opacity 0.35s ease,
    transform 0.35s ease,
    visibility 0.35s ease;
	display:flex;
flex-direction:row;
  z-index: 999;
}

/* 子メニューのli */
.header__nav ul ul li {
  width: 100%;
	margin:0;
}

/* 子メニューのリンク */
.header__nav ul ul a {
  padding: 10px 18px;
  font-size: 14px;
  color: #333;
  white-space: nowrap;
transition:all 0.3s ease;
}

.header__nav ul ul a:hover {
  background: #f0ece6;
  color: #4A4642;
}

/* ================================
   表示状態（jQueryで付与）
================================ */
.header__nav li.is-open > ul {
  opacity: 1;
  visibility: visible;
  transform: translateY(0);
}

/* ================================
   矢印アイコン（自動付与用）
================================ */
.header__nav li > a.has-child::after {
  content: "";
  display: inline-block;
  margin-left: 8px;
  width: 6px;
  height: 6px;
  border-right: 2px solid #4A4642;
  border-bottom: 2px solid #4A4642;
  transform: rotate(45deg) translateY(-2px);
  transition: transform 0.3s ease;
}

.header__nav li.is-open > a.has-child::after {
  transform: rotate(225deg) translateY(2px);
}

/* ================================
   スマホ対応（クリック開閉）
================================ */
@media (max-width: 1024px) {

  .header__nav > ul {
    flex-direction: column;
    gap: 0;
  }

  .header__nav ul ul {
    position: static;
    box-shadow: none;
    border-radius: 0;
    padding: 0;
    transform: none;
    opacity: 1;
    visibility: visible;
    display: none; /* ← スマホはslideで制御 */
  }

  .header__nav li.is-open > ul {
    display: block;
  }

  .header__nav ul ul a {
    padding: 12px 20px 12px 30px;
    background: #f9f9f9;
  }
}


/* ========================================
   Footer
======================================== */

footer .footer__inner--top{
	background-color: #e6e1d9;
	padding:1.5rem 0;
}

footer .footer__inner--top ul{
	display:flex;
	flex-wrap:wrap;
	gap:2rem;
	margin:0;
	padding:0;
	list-style:none;
}

footer .footer__inner--top ul li{
	width:calc(33.33333% - 1.333333rem);
}

@media screen and (max-width:900px){
	footer .footer__inner--top ul{
		gap:0.25rem;
	}
	footer .footer__inner--top ul li{
	width:100%;
	}
}

/*
footer .footer__inner--top ul li a{
	display:block;
	text-align:center;
	padding:0.75rem;
	border:1px solid #e6e1d9;
	color:#e6e1d9;
	width:100%;
}*/


footer .footer__inner--bottom{
	background-color:#f0ece6;
	padding:2.5rem 0;
}

footer .menu__container{
	display:flex;
	flex-wrap:wrap;
	gap:2rem;
}

footer .menu__container .menu__item{
	width:calc(25% - 1.5rem);
}

@media screen and (max-width:900px){
	footer .menu__container{
		gap:1rem;
	}
	footer .menu__container .menu__item{
	width:calc(50% - 0.5rem);
	}
}

footer .menu__container .menu__item .menu__item--title{
	font-weight:bold;
	border-bottom:1px solid rgba(0,0,0,0.45);
	padding:0 0 0.25rem;
	margin:0 0 0.75rem;
}

footer .menu__container .menu__item ul{
	list-style-type:none;
}

footer .menu__container .menu__item ul li{
	font-size:0.8rem;
}


footer .site-info{
	text-align:center;
	font-size:0.9rem;
	padding:0.75rem 0;
	background-color:#e6e1d9;
	background: linear-gradient(165deg, #c1a98f 0%, #d3c2b0 30%, #eadfce 60%, #d0bda9 85%, #b09a86 100%);

}



/* Scroll to top */

body .scroll-to-top{
	background-color:rgba(74, 70, 66, 1);
	color:#fff;
	width:60px;
	height:60px;
	position:fixed;
	bottom:-70px;
	right:0;
	transition:all 0.2s ease ;
	display:flex;
	justify-content:center;
	align-items:center;
	z-index:1;
	cursor:pointer;
}


body .scroll-to-top:hover{
	background-color:rgba(74, 70, 66, 0.6);
}

body .scroll-to-top img{
	display:block;
	width:24px;
}

body.scrolled .scroll-to-top{
	bottom:0;
	transition:all 0.3s ease 0.3s;
}


.footer__inner--top ul{
  display: flex;
  flex-wrap: wrap;
  gap: 16px 28px;
  padding: 0;
  margin: 0;
  list-style: none;
}

.footer__inner--top li{
  margin: 0;
}

.footer__inner--top a{
  position: relative;
  display: block;
  padding: 12px 22px;
  font-size: 15px;
	text-align:center;
  letter-spacing: 0.06em;
  text-decoration: none;
  color: #2c2c2c;
  background: rgba(255,255,255,0.3);
  border: 1px solid rgba(0,0,0,0.12);
  border-radius: 4px;
  transition: 
    color .35s ease,
    border-color .35s ease,
    transform .35s ease,
    box-shadow .35s ease,
    background .35s ease;
  overflow: hidden;
	text-decoration:none!important;
}


/* ホバー時（ブラウン / グレージュ系・上品） */
.footer__inner--top a:hover{
  color: #5c5146; /* ダークグレージュ */
  border-color: rgba(176, 154, 134, 0.6); /* #b09a86系 */
  background: rgba(230, 225, 217, 0.55); /* #e6e1d9ベース */
  transform: translateY(-3px);
  box-shadow: 0 10px 26px rgba(176, 154, 134, 0.18);
}


/* クリック時の質感 */
.footer__inner--top a:active{
  transform: translateY(-1px);
  box-shadow: 0 4px 10px rgba(0,0,0,0.08);
}

/* フォーカス（アクセシビリティ + 上品） */
.footer__inner--top a:focus{
  outline: none;
  border-color: #3D78C2;
  box-shadow: 0 0 0 3px rgba(61,120,194,0.15);
}



/* ========================================
   Front Page - Common
======================================== */

.section-title{
  margin: 0 0 18px;
  display: flex;
  align-items: baseline; /* 英字と和文のベースライン揃え */
  gap: 14px;
  line-height: 1.1;
}

/* 英字：洗練された印象 */
.section-title__en{
  font-family: "Playfair Display", Georgia, serif;
  font-weight: 400;
font-size:2.25rem;
  letter-spacing: .04em;
  text-transform: none;
background: linear-gradient(165deg, #c1a98f 0%, #d3c2b0 30%, #eadfce 60%, #d0bda9 85%, #b09a86 100%); -webkit-background-clip: text; background-clip: text; color: transparent;
}


/* 和文：読みやすく、主張しすぎない */
.section-title__jp{
  font-family: "Noto Sans JP", system-ui, -apple-system, "Segoe UI", sans-serif;
  font-weight: 500;
  font-size:0.9rem;
  letter-spacing: .04em;
  opacity: 1;
  position: relative;
	color:#4A4642;
	
}

h3.section-title .section-title__en{
	color:#e6e1d9;
	font-size:1rem;
	opacity:0.5;
}

h3.section-title .section-title__jp{
	font-size:1.5rem;
}

/* スマホ：縦積みも自然に */
@media (max-width: 520px){
  .section-title{
    flex-direction: column;
    align-items: flex-start;
    gap: 6px;
  }
  .section-title__jp{ top: 0; }
}


/* ========================================
   Front Page - Hero
======================================== */

section.home#hero{
	min-height:100vh;
	position:relative;
	overflow:clip;
/*	background-image:url(images/home/hero.webp);
	background-size:cover;
	background-position:50% 50%;
	background-repeat:no-repeat;*/
}

section.home#hero .hero__slogan{
	list-style-type:none;
	position:absolute;
	top:35vh;
	left:calc(60vw + 2rem);
	writing-mode: vertical-rl;
	text-orientation: upright;
	font-size:2.75rem;
	font-family:serif;
	letter-spacing:0.075em;
	margin:0;
	padding:0;
}

/* デフォルト：非表示＋下にずらす */
.hero__slogan li{
  opacity: 0;
  transform: translateY(24px);
  transition: 
    opacity 1.2s ease ,
    transform 1.2s ease ;
  will-change: opacity, transform;
}

/* bodyにcompleteが付いたら表示 */
body.slogan .hero__slogan li{
  opacity: 1;
  transform: translateY(0);
}

/* 0.5s刻みで順番に表示 */
body.slogan .hero__slogan li:nth-child(1){
  transition-delay: 1.0s;
}

body.slogan .hero__slogan li:nth-child(2){
  transition-delay: 2.0s;
}
body.slogan .hero__slogan li:nth-child(3){
  transition-delay: 3.0s;
}



.parallax-bg {
  position: absolute;
	pointer-events:none;
z-index:-1;
  top: -30%;
  left: 0;
  width: 100%;
  height: 140%;
  background-image: url('images/home/hero.webp');
  background-size: cover;
  background-position: center;
  will-change: transform; /* 高速化 */
}


a.scroll-down{
  display: block;
  position: absolute;
	z-index:0;
  right: 100px;
  bottom: 0;
  padding: 10px 10px 110px;
  overflow: hidden;
color:rgba(230, 225, 217, 0.75);
  font-size: 0.75rem;
  font-family: 'Inter', sans-serif;
  line-height: 1;
  letter-spacing: .2em;
  text-transform: auto;
  text-decoration: none;
  writing-mode: vertical-lr;
	opacity:0;
	transition:all 0.5s ease 0s;
transform:translate(0 , 0);
}

body:not(.completed) a.scroll-down{
transform:translate(0 , 0);
	transition:all 0.5s ease 0.1s;
}

body.completed a.scroll-down{
		opacity:1;
		transition:all 0.5s ease 0.1s;
}

body.completed:not(.scrolled) a.scroll-down{
	transition:opacity 0.5s ease .5s, transform 0.5s ease 0.1s;
}

body.completed.scrolled a.scroll-down{
		transform:translate(30px, 0);
		transition:all 0.5s ease 0.2s;
}

a.scroll-down:hover{
	color:rgba(230, 225, 217, 0.3);
}

a.scroll-down::after {
  content: '';
  position: absolute;
  bottom: 0;
  left: 50%;
  width: 1px;
  height: 100px;
	background:rgba(230, 225, 217, 0.25);
  animation: sdl 1.5s cubic-bezier(1, 0, 0, 1) infinite;
}
@keyframes sdl {
  0% {
    transform: scale(1, 0);
    transform-origin: 0 0;
  }
  50% {
    transform: scale(1, 1);
    transform-origin: 0 0;
  }
  50.1% {
    transform: scale(1, 1);
    transform-origin: 0 100%;
  }
  100% {
    transform: scale(1, 0);
    transform-origin: 0 100%;
  }
}

/* ========================================
   Front Page - Infotmation
======================================== */


section.home#information{
	padding:3.75rem 0;
}

section.home#information .information__container{
	display:flex;
	flex-wrap:wrap;
	gap:3rem;
}

section.home#information .information__container .information__item{
	width:calc(50% - 1.5rem);

}

@media screen and (max-width:900px){
	
	section.home#information .information__container{
		gap:1.5rem;
	}

	section.home#information .information__container .information__item{
		width:100%;

	}
}

.sc-category-posts__list {
  list-style: none;
  margin: 0;
  padding: 0;
}

.sc-category-posts__item {
  border-bottom: 1px solid #e5e5e5;
}

.sc-category-posts__link {
  display: flex;
  gap: 20px;
  padding: 14px 0;
  text-decoration: none;
  color: #4A4642;
  transition: opacity 0.3s ease;
}

.sc-category-posts__link:hover {
  opacity: 0.7;
}

.sc-category-posts__date {
  font-size: 14px;
  color: #666;
  min-width: 90px;
}

.sc-category-posts__title {
  font-size: 16px;
  line-height: 1.6;
}

.sc-category-posts__btn-wrap {
  margin-top: 20px;
  text-align: right;
}

.sc-category-posts__btn {
  display: inline-block;
  padding: 10px 18px;
  background: #a68a64;
  color: #fff;
  text-decoration: none;
  border-radius: 4px;
  transition: background 0.3s ease;
}

.sc-category-posts__btn:hover {
  background: #e6e1d9;
}

.sc-category-posts__new {
  display: inline-block;
  margin-left: 0.5em;
  padding: 0.15rem 0.45rem;
  font-size: 0.75rem;
  font-weight: 400;
  line-height: 1;
  letter-spacing: 0.04em;
  color: #fff;
  background: #c65a5a;
  border-radius: 2px;
  vertical-align: middle;
}

/* ========================================
   Front Page - Admission
======================================== */


section.home#admission{
	padding:3.75rem 0;
	background-color:#f5f5f5;
}

.admission__container{
	display:flex;
	gap:3rem;
	
}

.admission__container .admission__item{
	width:calc(50% - 1.5rem);

}
/* ========================================
   Front Page - Topics
======================================== */

section.home#news{
	padding:3.75rem 0;
}


/*
    .post-tabs { margin: 24px 0; }
    .post-tabs__nav{ display:flex; flex-wrap:wrap; gap:8px; border-bottom:1px solid rgba(0,0,0,.08); padding-bottom:12px; }
    .post-tabs__btn{ appearance:none; border:0; background:transparent; padding:10px 14px; border-radius:999px; cursor:pointer; font:inherit;
      transition: background .2s ease, transform .2s ease, color .2s ease; }
    .post-tabs__btn:hover{ transform: translateY(-1px); background: rgba(0,0,0,.04); }
    .post-tabs__btn.is-active{ background: rgba(0,0,0,.08); }

    .post-tabs__panels{ position:relative; margin-top:16px; }
    .post-tabs__panel{ display:none; }
    .post-tabs__panel.is-active{ display:block; }

    .post-tabs__panel.is-entering{ opacity:0; transform: translateY(10px); filter: blur(3px); }
    .post-tabs__panel.is-entered{ opacity:1; transform: translateY(0); filter: blur(0);
      transition: opacity .35s ease, transform .35s ease, filter .35s ease; }

    .post-grid{ display:grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap:16px; }
    @media (max-width: 900px){ .post-grid{ grid-template-columns: repeat(2, minmax(0, 1fr)); } }
    @media (max-width: 520px){ .post-grid{ grid-template-columns: 1fr; } }

    .post-card{ border:1px solid rgba(0,0,0,.08); border-radius:6px; overflow:hidden; }
    .post-card__link{ display:block; color:inherit; text-decoration:none; }
    .post-card__thumb{ aspect-ratio: 16 / 10; background:#f5f5f5; overflow:hidden; }
    .post-card__thumb img{ width:100%; height:100%; object-fit:cover; display:block; transition: transform .35s ease; }
    .post-card__link:hover .post-card__thumb img{ transform: scale(1.03); }

    .post-card__body{ padding:12px 14px 14px; }
    .post-card__meta{ display:flex; gap:10px; align-items:center; font-size:.88rem; opacity:.75; margin:0 0 6px; }
    .post-card__cat{ padding:2px 8px; border-radius:0; background: rgba(0,0,0,.06);color:#fff; }
    .post-card__title{ margin:0; font-size:1rem; line-height:1.4; }
    .post-tabs__empty{ opacity:.7; padding:12px 0; }
*/














.post-tabs {
  margin: 40px 0;
}

.post-tabs__nav {
  display: flex;
  flex-wrap: wrap;
  gap: 0.1rem;
  border-bottom: 1px solid rgba(0,0,0,.1);
  padding-bottom: 14px;
}


.post-tabs__btn {
	flex:1;
  border: none;
  background: #f4f6f8;
  padding: 0.75rem 0.5rem;
  border-top-right-radius: 4px;
  border-top-left-radius: 4px;
  cursor: pointer;
  font: inherit;
  transition: all .3s ease;
	line-height:1.35;
}

@media screen and (max-width:900px){
	.post-tabs__btn {
		width:calc(50% - 5px);
	}
	.post-tabs__btn:nth-of-type(1) {
		width:100%;
	}
}


.post-tabs__btn:hover {
  transform: translateY(-2px);
  background: #e9eef2;
}

.post-tabs__btn.is-active {
  background: #111;
  color: #fff;
}

.post-tabs__panels {
  margin-top: 24px;
  position: relative;
}

.post-tabs__panel {
  display: none;
  opacity: 0;
  transform: translateY(12px);
}

.post-tabs__panel.is-active {
  display: block;
  animation: tabFade .45s ease forwards;
}

@keyframes tabFade {
  to {
    opacity: 1;
    transform: translateY(0);
  }
}

.post-grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 18px;
}

@media (max-width: 900px) {
  .post-grid {
    grid-template-columns: repeat(2, 1fr);
  }
}

@media (max-width: 520px) {
  .post-grid {
    grid-template-columns: 1fr;
  }
}

.post-card {
  border-radius: 6px;
  overflow: hidden;
  border: 1px solid rgba(0,0,0,.08);
  background: #fff;
}

.post-card__thumb {
  aspect-ratio: 16 / 10;
  overflow: hidden;
  background: #f3f3f3;
	position: relative;
}

.post-card__thumb img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  transition: transform .4s ease;
}

.post-card:hover img {
  transform: scale(1.05);
}

.post-card__new-badge {
  position: absolute;
  top: 10px;
  left: 10px;
  z-index: 2;

  width: 48px;
  height: 48px;
  border-radius: 50%;

  display: flex;
  align-items: center;
  justify-content: center;

  font-size: 0.7rem;
  font-weight: 700;
  line-height: 1;
  letter-spacing: 0.04em;

  color: #fff;
  background: #c65a5a;

  box-shadow: 0 6px 16px rgba(0, 0, 0, 0.18);
}

.post-card__body {
  padding: 14px;
}

.post-card__meta {
  font-size: 0.85rem;
  opacity: .7;
  margin-bottom: 6px;
  display: flex;
  gap: 10px;
}

.post-card__cat {
  background: #f0f2f5;
  padding: 2px 8px;
  border-radius: 0px;
	color:#fff;
}


.post-tabs__more{
  margin-top: 32px;
  text-align: center;
}

.post-tabs__more-btn{
  display: inline-block;
  padding: 0.45rem 1rem;
  border-radius: 0.25rem;
  font-size: 0.85rem;
	font-weight:bold;
  text-decoration: none;
  border: 1px solid #4A4642;
  color: #4A4642;
  transition: all .25s ease;
}

.post-tabs__more-btn:hover{
  background: #4A4642;
  color: #fff;
}

/* カテゴリ別カスタム（例） */
.post-tabs__more-btn.cat-news{
  border-color: #1556ad;
  color: #1556ad;
}

.post-tabs__more-btn.cat-news:hover{
  background: #1556ad;
  color: #fff;
}

/* ===== NEWS ===== */
.post-tabs__nav .cat-news{
  border-bottom:2px solid #C65A5A;
}

.post-tabs__nav .cat-information.is-active{
  background-color: rgba(198, 90, 90, 0.24);
  color:#7A2F2F;
  border-bottom:3px solid #C65A5A;
}

.cat-information .post-card__cat{
  background-color: rgba(198, 90, 90, 0.22);
  color:#7A2F2F;
}


/* ===== ADMISSIONS ===== */
.post-tabs__nav .cat-admissions{
  border-bottom:2px solid #C47E2C;
}

.post-tabs__nav .cat-admissions.is-active{
  background-color: rgba(196, 126, 44, 0.24);
  color:#6E4516;
  border-bottom:3px solid #C47E2C;
}

.cat-admissions .post-card__cat{
  background-color: rgba(196, 126, 44, 0.22);
  color:#6E4516;
}


/* ===== STUDENTS ===== */
.post-tabs__nav .cat-students{
  border-bottom:2px solid #C7A63A;
}

.post-tabs__nav .cat-students.is-active{
  background-color: rgba(199, 166, 58, 0.26);
  color:#6F5B16;
  border-bottom:3px solid #C7A63A;
}

.cat-students .post-card__cat{
  background-color: rgba(199, 166, 58, 0.22);
  color:#6F5B16;
}


/* ===== TRIPS ===== */
.post-tabs__nav .cat-trips{
  border-bottom:2px solid #4FA66A;
}

.post-tabs__nav .cat-trips.is-active{
  background-color: rgba(79, 166, 106, 0.24);
  color:#1F5A39;
  border-bottom:3px solid #4FA66A;
}

.cat-trips .post-card__cat{
  background-color: rgba(79, 166, 106, 0.22);
  color:#1F5A39;
}

/* ===== EVENTS ===== */
.post-tabs__nav .cat-events{
  border-bottom:2px solid #4FA66A;
}

.post-tabs__nav .cat-events.is-active{
  background-color: rgba(79, 166, 106, 0.24);
  color:#1F5A39;
  border-bottom:3px solid #4FA66A;
}

.cat-events .post-card__cat{
  background-color: rgba(79, 166, 106, 0.22);
  color:#1F5A39;
}



/* ===== DORMITORY ===== */
.post-tabs__nav .cat-dormitory{
  border-bottom:2px solid #3D78C2;
}

.post-tabs__nav .cat-dormitory.is-active{
  background-color: rgba(61, 120, 194, 0.24);
  color:#1E3F73;
  border-bottom:3px solid #3D78C2;
}

.cat-dormitory .post-card__cat{
  background-color: rgba(61, 120, 194, 0.22);
  color:#1E3F73;
}


/* ===== others ===== */
.post-tabs__nav .cat-others{
  border-bottom:2px solid #6B58A8;
}

.post-tabs__nav .cat-others.is-active{
  background-color: rgba(107, 88, 168, 0.24);
  color:#3A2B70;
  border-bottom:3px solid #6B58A8;
}

.cat-others .post-card__cat{
  background-color: rgba(107, 88, 168, 0.22);
  color:#3A2B70;
}


/* ===== ALL ===== */
.post-tabs__nav .cat-all{
  border-bottom:2px solid #B65A78;
}

.post-tabs__nav .cat-all.is-active{
  background-color: rgba(182, 90, 120, 0.24);
  color:#6B2E45;
  border-bottom:3px solid #B65A78;
}

.cat-all .post-card__cat{
}

.sc-category-posts.cat-admissions .sc-category-posts__btn{
background-color:#B8732A;
}

.sc-category-posts.cat-admissions .sc-category-posts__date{
	color:#B8732A;
}


.sc-category-posts.cat-information .sc-category-posts__btn{
background-color:#C65A5A;
}

.sc-category-posts.cat-information .sc-category-posts__date{
	color:#C65A5A;
}



.admission-detail__container{
	display:flex;
	flex-wrap:wrap;
	margin:0 0 2.5rem;
	gap:0.5rem
}

.admission-detail__container a:nth-child(1){
	width:100%;
}

.admission-detail__container a:nth-child(2),
.admission-detail__container a:nth-child(3){
	width:calc(50% - 0.25rem);
}

.admission-detail__container a{
	display:flex;
	justify-content:center;
	align-items:center;
	text-align:center;
	flex-direction:column;
}

.admission-detail__container a span:nth-child(1){
	font-size:0.9rem;
}

.admission-detail__container a span:nth-child(2){
	font-size:1.25rem;
}



.admission__container--bottom{
	display:flex;
	justify-content:center;
	gap:1rem;
	margin:1.5rem 0 0 0;
}

.admission__container--bottom a{
display:block;
	text-align:center;
	position:relative;
	padding:0.75rem 2rem;
	z-index:1;
}
.admission__container--bottom a{
  position: relative;
  display: block;
  padding: 12px 22px;
  font-size: 15px;
	text-align:center;
  letter-spacing: 0.06em;
  text-decoration: none;
  color: #2c2c2c;
  background: rgba(255,255,255,0.3);
  border: 1px solid rgba(0,0,0,0.12);
  border-radius: 4px;
  transition: 
    color .35s ease,
    border-color .35s ease,
    transform .35s ease,
    box-shadow .35s ease,
    background .35s ease;
  overflow: hidden;
	width:25rem;
}


/* ホバー時（かっこいい浮き上がり） */
.admission__container--bottom a:hover{
  color: #1E3F73;
  border-color: rgba(61,120,194,0.5);
  background: rgba(61,120,194,0.06);
  transform: translateY(-3px);
  box-shadow: 0 8px 20px rgba(0,0,0,0.08);
}


.btn-elegant {
  display: inline-block;
  padding: 12px 28px;
  background: #e6e1d9;
  color: #fff;
  text-decoration: none;
	border-radius:4px;
  font-weight: 500;
  letter-spacing: 0.05em;
  
  transition: 
    transform 0.35s cubic-bezier(0.22, 1, 0.36, 1),
    box-shadow 0.35s cubic-bezier(0.22, 1, 0.36, 1),
    background 0.3s ease;
}

.btn-elegant:hover {

  box-shadow: 0 12px 30px rgba(0,0,0,0.15);
  background: #1f3478;
}



.admission-detail__container a {
  position: relative;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 260px;
  min-height: 100px;
  padding: 20px 24px;
  text-align: center;
  text-decoration: none;
  font-weight: 600;
  line-height: 1.6;
  letter-spacing: 0.05em;
	transition:all 0.3s ease;

  /* カラー（校風に合うネイビー＋ゴールド） */
  color: #e6e1d9;
  background: #ffffff;
  border: 1px solid rgba(230, 225, 217, 0.15);
border-radius: 4px;
  /* 洗練された影 */
  box-shadow: 0 10px 30px rgba(0, 0, 0, 0.05);

  /* なめらかなアニメーション */
  transition: 
    transform 0.4s cubic-bezier(.22,1,.36,1),
    box-shadow 0.4s cubic-bezier(.22,1,.36,1),
    border-color 0.4s ease,
    color 0.4s ease;
  overflow: hidden;
}

/* ゴールドの上品なグラデーションライン */
/*
.admission-detail__container a::before {
  content: "";
  position: absolute;
  inset: 0;
  background: linear-gradient(
    120deg,
    rgba(212,175,55,0) 0%,
    rgba(212,175,55,0.15) 50%,
    rgba(212,175,55,0) 100%
  );
  opacity: 0;
  transition: opacity 0.5s ease;
}
*/

/* ホバー時（洗練された浮き上がり） */
.admission-detail__container a:hover {
  box-shadow: 0 20px 50px rgba(230, 225, 217, 0.25);
  border-color: rgba(212, 175, 55, 0.6);
}

.admission-detail__container a:hover::before {
  opacity: 1;
}

/* クリック時の上品な押し込み */
.admission-detail__container a:active {
  transform: scale(0.98);
  box-shadow: 0 10px 20px rgba(0,0,0,0.08);
}


.admission__item--junior  .admission-detail__container a{
	background-color:rgba(47, 93, 80, 0.8);
	color:#fff;
	transition:all 0.3s ease;

}

.admission__item--junior  .admission-detail__container a:hover{
	background-color:rgba(47, 93, 80, 1);
}

.admission__item--junior  .admission-detail__container a:nth-child(1){
	background-image:url(images/home/admission__logo--junior.svg);
	background-repeat:no-repeat;
	background-position:-5% 50%;
	background-size:auto 110%;
	transition:background-size 0.3s ease, background-color 0.3s ease;
}

.admission__item--high  .admission-detail__container a{
	transition:all 0.3s ease;
	background-color:rgba(31, 58, 109, 0.8);
	color:#fff;
}

.admission__item--high  .admission-detail__container a:hover{
	background-color:rgba(31, 58, 109, 1);
	transition:background-size 0.9s ease, background-color 0.3s ease;
}

.admission__item--high .admission-detail__container a:nth-child(1){
	background-image:url(images/home/admission__logo--high.svg);
	background-repeat:no-repeat;
	background-position:-5% 50%;
	background-size:auto 110%;
	transition:background-size 0.3s ease, background-color 0.3s ease;
}

.admission__item .admission-detail__container a:nth-child(1):hover{
	background-size:auto 120%!important;
	transition:background-size 0.9s ease, background-color 0.3s ease;
}



/* =========================================
   Hero Swiper（Fullscreen 100vw/100vh）
   - Crossfade
   - Caption: CSS delay + fade
   - Zoom: CSS animation on active slide only
========================================= */

/* フルスクリーン時の横スクロール防止 */
body {
  overflow-x: hidden;
}

/* 画面端から完全表示（container制限を無視） */
.hero {
  position: relative;
  width: 100vw;
  height: 100vh;
  overflow: hidden;
  margin-left: calc(50% - 50vw);
  margin-right: calc(50% - 50vw);
}

/* Swiper本体をフルスクリーン */
.hero-swiper {
  position: relative;
  width: 100vw;
  height: 100vh;
}

/* 念のため：内部要素の高さ100% */
.hero-swiper .swiper-wrapper,
.hero-swiper .swiper-slide {
  height: 100%;
}

/* スライド */
.hero-slide {
  position: relative;
  width: 100vw;
  height: 100vh;
}

/* 画像レイヤー */
.hero-slide__media {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  overflow: hidden;
}

/* 読みやすさのための薄いオーバーレイ（不要なら消してOK） */
.hero-slide__media::after {

  content: "";
  position: absolute;
  inset: 0;
/*  background: linear-gradient(180deg, rgba(0,0,0,0.12), rgba(0,0,0,0.36));*/
/*	background-image:url(images/home/hero__pattern.webp);*/
  pointer-events: none;
  z-index: 1;
}

/* 画像 */
.hero-slide__media img {
  position: absolute;
  inset: 0;
  z-index: 0;
  width: 100%;
  height: 100%;
  object-fit: cover;
  transform: scale(1);
  will-change: transform;
  backface-visibility: hidden;
}

/* Swiper fade を綺麗に */
.hero-swiper .swiper-slide {
  backface-visibility: hidden;
}

/* =========================================
   Zoom（CSSのみ）
   - activeになった画像だけズーム
========================================= */

@keyframes zoomUp {
  0% {
    transform: scale(1);
  }
  100% {
    transform: scale(1.08);
  }
}
.hero-swiper .swiper-slide-active img,
.hero-swiper .swiper-slide-duplicate-active img,
.hero-swiper .swiper-slide-prev img {
  animation: zoomUp 9s linear 0s normal both;
}



.hero,
.hero-swiper,
.hero-swiper .swiper-wrapper,
.hero-swiper .swiper-slide,
.hero-slide {
  width: 100vw;
  height: 100svh;
}

@supports (height: 100dvh) {
  .hero,
  .hero-swiper,
  .hero-swiper .swiper-wrapper,
  .hero-swiper .swiper-slide,
  .hero-slide {
    height: 100dvh;
  }
}

/* 画像は必ず全面カバー（autoはNG） */
.hero-slide__media img,
.hero-swiper .swiper-slide img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}

/* 念のため：横スクロール抑止（すでに入ってるならOK） */
html, body {
  overflow-x: hidden;
}

/* ループ時のチラつき軽減（環境により有効） */
.hero-swiper .swiper-slide-duplicate-active .hero-slide__media img {
  animation:zoomUp var(--hero-zoom-duration, 9000ms) linear both;
}

/* =========================================
   Caption（CSSのみ）
   - activeになってから delay してフェードイン
========================================= */
.hero-slide__caption {
  position: absolute;
  z-index: 2;
  max-width: min(680px, 86vw);
  color: #fff;
	
  text-shadow: 0 12px 40px rgba(0, 0, 0, 0.35);

  /* 初期状態 */
  opacity: 0;
  transform: translateY(10px);

  transition:
    opacity 700ms ease 3.5s,
    transform 700ms ease 3.5s;

  writing-mode: vertical-rl;
  text-orientation: upright; /* 日本語を正立表示 */
  letter-spacing: 0.1em;
  line-height: 1.8;

}

/* activeのときだけ表示 */
.hero-swiper .swiper-slide-active .hero-slide__caption {
  opacity: 1;
  transform: translateY(0);
	display:none;
}

/* ループ時の保険 */
.hero-swiper .swiper-slide-duplicate-active .hero-slide__caption {
  opacity: 1;
  transform: translateY(0);
}

/* 文言 */
.hero-slide__catch {
  margin: 0;
  font-size: clamp(28px, 3vw, 54px);
  font-weight: 500;
  letter-spacing: 0.02em;
  line-height: 1.2;
  font-family:
    "Noto Serif",
    "Hiragino Mincho ProN",
    "Yu Mincho",
    "YuMincho",
    serif;
}

.hero-slide__sub {
	display:none;
  margin: 10px 0 0;
  font-size: clamp(14px, 1.2vw, 18px);
  letter-spacing: 0.04em;
  opacity: 0.95;
}

/* =========================================
   スライドごとのコピー位置（HTMLのclassで切替）
========================================= */

/* 左下 */
.hero-slide--pos-left .hero-slide__caption {
  left:20%;
/*  bottom: clamp(22px, 6vh, 72px);*/
	top:40%;
  text-align: left;
}

/* ど真ん中 */
.hero-slide--pos-center .hero-slide__caption {
  left: 50%;
  top: 50%;
  text-align: center;

  /* centerは transform を使うのでYオフセットは別で足す */
  transform: translate(-50%, calc(-50% + 10px));
}
.hero-swiper .swiper-slide-active.hero-slide--pos-center .hero-slide__caption,
.hero-swiper .swiper-slide-duplicate-active.hero-slide--pos-center .hero-slide__caption {
  transform: translate(-50%, -50%);
}

/* 右下 */
.hero-slide--pos-right .hero-slide__caption {
  right: 20%;
/*  bottom: clamp(22px, 6vh, 72px);*/
	top:40%;
  text-align: right;
}

/* =========================================
   iOS Safari等の 100vh ズレ対策
========================================= */
@supports (height: 100dvh) {
  .hero,
  .hero-swiper,
  .hero-slide {
    height: 100dvh;
  }
}


/* =========================================
   Hero Swiper SP：画像全体を見せる
========================================= */
@media screen and (max-width: 900px) {

  section.home#hero {
    min-height: auto;
  }

  .hero,
  .hero-swiper,
  .hero-swiper .swiper-wrapper,
  .hero-swiper .swiper-slide,
  .hero-slide {
    width: 100vw;
    height: auto;
    min-height: auto;
  }

  .hero {
    overflow: hidden;
  }

  .hero-slide {
    aspect-ratio: 16 / 9;
    background: #e6e1d9;
  }

  .hero-slide__media {
    position: relative;
    inset: auto;
    width: 100%;
    height: 100%;
  }

  .hero-slide__media img,
  .hero-swiper .swiper-slide img {
    position: static;
    width: 120%;
    height: 120%;
    object-fit: contain;
  }

  .hero-slide__media::after {
    display: none;
  }

  .hero-slide__caption {
    display: none;
  }

  a.scroll-down {
    display: none;
  }
}










/* =========================================
   Parallax Sections（3 stacked sections）
   - full-width background
   - overlay for readability（GREIGE ver）
   - text position variation (left / center / right)
========================================= */

body{
  overflow-x: hidden;
}

/* 共通：フル幅セクション */
.section-parallax{
  position: relative;
  width: 100vw;
  overflow: hidden;
  margin-left: calc(50% - 50vw);
  margin-right: calc(50% - 50vw);

  /* セクション高さ：3つ並べるので高すぎないバランス */
  min-height: min(68vh, 620px);

  display: grid;
  align-items: center;
}

/* パララックス背景（JSで transform を当てる想定） */
.section-parallax__bg{
  position: absolute;
  top: -10%;
  left: 0;
  width: 100%;
  height: 120%;
  background-size: cover;
  background-position: center;
  transform: translate3d(0,0,0) scale(1.05);
  will-change: transform;
  z-index: 0;
}

/* =========================================
   ★ グレージュオーバーレイ（上品・高級）
   旧：ネイビー → 新：#E6E1D9ベース
========================================= */
.section-parallax::before{
  content:"";
  position:absolute;
  inset:0;
  z-index:1;
  pointer-events:none;

  /* 左がやや濃いグレージュ、右が薄い */
  background: linear-gradient(
    90deg,
    rgba(230, 225, 217, 0.82) 0%,
    rgba(230, 225, 217, 0.55) 55%,
    rgba(230, 225, 217, 0.28) 100%
  );
}

/* うっすら質感（グレージュに調整） */
.section-parallax::after{
  content:"";
  position:absolute;
  inset:0;
  z-index:1;
  pointer-events:none;
  background-image: radial-gradient(rgba(255,255,255,0.04) 1px, transparent 1px);
  background-size: 3px 3px;
  opacity: 0.18;
}

/* 中身の幅制御 */
.section-parallax__inner{
  position: relative;
  z-index: 2;
  width: min(1120px, 92vw);
  margin: 0 auto;
  padding: clamp(56px, 7vw, 96px) 0;
}

/* テキストコンテンツ */
.section-parallax__content{
  max-width: 46em;
  color: #4A4642; /* グレージュ背景に合わせて上品ネイビー文字 */
}

/* キャッチ */
.section-parallax__catch{
  margin: 0;
  font-size: clamp(32px, 4.1vw, 42px);
  line-height: 1.12;
  letter-spacing: 0.04em;
  font-weight: 500;
  text-shadow: 0 10px 30px rgba(0,0,0,0.08); /* 強すぎない影に調整 */
  font-family:
    "Noto Serif",
    "Hiragino Mincho ProN",
    "Yu Mincho",
    "YuMincho",
    serif;
}

/* 説明 */
.section-parallax__desc{
  margin-top: clamp(14px, 2.2vw, 20px);
  font-size: clamp(15px, 1.25vw, 18px);
  line-height: 2;
  letter-spacing: 0.02em;
  opacity: 0.9;
}

/* CTA */
.section-parallax__actions{
  margin-top: clamp(18px, 2.8vw, 26px);
}

.section-parallax__btn{
  display: inline-flex;
  align-items: center;
  justify-content: center;
  height: 46px;
  padding: 0 18px;
  border-radius: 999px;
  background: rgba(24, 41, 92, 0.95); /* 反転：ネイビーボタン */
  color: #E6E1D9;
  text-decoration: none;
  font-weight: 700;
  letter-spacing: 0.03em;
  box-shadow: 0 18px 50px rgba(0,0,0,0.15);
  transition: transform 180ms ease, background 180ms ease;
}
.section-parallax__btn:hover{
  transform: translateY(-1px);
  background: rgba(24, 41, 92, 1);
}

/* 左寄せ（デフォルト） */
.section-parallax--left .section-parallax__inner{
  display: grid;
  justify-items: start;
  text-align: left;
}

/* 2つ目：右半分から開始（既存仕様維持） */
.section-parallax--half-right .section-parallax__inner{
  display: grid;
  justify-items: start;
  text-align: left;

  width: 100vw;
  margin: 0;
  padding-left: 50vw;
  padding-right: clamp(16px, 4vw, 56px);
  padding-top: clamp(56px, 7vw, 96px);
  padding-bottom: clamp(56px, 7vw, 96px);
}

.section-parallax--half-right .section-parallax__content{
  max-width: min(46em, 42vw);
}

/* Responsive */
@media (max-width: 900px){
  .section-parallax--half-right .section-parallax__inner{
    width: min(1120px, 92vw);
    margin: 0 auto;
    padding: clamp(56px, 7vw, 96px) 0;
    padding-left: 0;
    padding-right: 0;
  }

  .section-parallax--half-right .section-parallax__content{
    max-width: 46em;
  }
}

@media (max-width: 768px){
  .section-parallax{
    min-height: min(72vh, 640px);
  }

  /* スマホは縦グラデの方が読みやすい */
  .section-parallax::before{
    background: linear-gradient(
      180deg,
      rgba(230, 225, 217, 0.78) 0%,
      rgba(230, 225, 217, 0.62) 60%,
      rgba(230, 225, 217, 0.45) 100%
    );
  }
}

/* iOS Safari等のvhズレ対策 */
@supports (height: 100dvh){
  .section-parallax{
    min-height: min(68dvh, 620px);
  }
}

/* =========================================
   Parallax Section Buttons（有彩色・白文字・高視認性）
   - 1：赤系（スモーキーレッド）
   - 2：セージグリーン（中央）
   - 3：くすみブルー（知的トーン）
========================================= */

/* 共通ベース（既存上書き推奨） */
.section-parallax__btn{
  display: inline-flex;
  align-items: center;
  justify-content: center;
  height: 38px;
  padding: 0 22px;
  border-radius: 4px;
  text-decoration: none;
  font-weight: 700;
  letter-spacing: 0.06em;
  color: #ffffff; /* 白文字 */
  border: none;

  /* 視認性＆高級感 */
  box-shadow: 0 8px 12px rgba(0,0,0,0.1);
  transition:
    transform 0.25s ease,
    box-shadow 0.25s ease,
    background 0.25s ease,
    filter 0.25s ease;
}

/* hover共通（少し浮かせる） */
.section-parallax__btn:hover{
  transform: translateY(-2px);
  box-shadow: 0 10px 12px rgba(0,0,0,0.16);
  filter: brightness(1.05);
}


/* =========================================
   セクション1：赤系（上品スモーキーレッド）
   ※ グレージュサイトに合う低彩度レッド
========================================= */
.section-parallax--1 .section-parallax__btn{
  background: #b86a6a; /* くすみ赤（高級寄り） */
}

.section-parallax--1 .section-parallax__btn:hover{
  background: #a85c5c;
}


/* =========================================
   セクション2：セージグリーン（中央）
   ※ 指定要件
========================================= */
.section-parallax--2 .section-parallax__btn{
  background: #7fa696; /* ディープセージ */
}

.section-parallax--2 .section-parallax__btn:hover{
  background: #6f9485;
}


/* =========================================
   セクション3：ダスティブルー（統一感＋知的）
   ※ 学校/企業サイトと相性◎
========================================= */
.section-parallax--3 .section-parallax__btn{
  background: #7f97b6; /* くすみブルー */
}

.section-parallax--3 .section-parallax__btn:hover{
  background: #6e87a7;
}


/* =========================================
 Page - Common
========================================= */

.page__nav ul{
	display:flex;
	flex-wrap:wrap;
	align-items:center;
	margin:0 0 1.5rem;
	padding:0;
	list-style:none;
	gap:1.5rem;
}

.page__nav ul li{
	width:calc(33.333333% - 1rem);
	height:100%;
}

@media screen and (max-width:900px){
	.page__nav ul{
		gap:0.5rem
	}
	.page__nav ul li{
	width:calc(50% - 0.25rem);
	}
}

.page__nav ul li a{
	display: flex;
	flex:1;
	align-items: center;
	justify-content: center;
	text-align:center;
	padding: 0.75rem 2.25rem;
	border-radius: 999px;
text-decoration:none!important;
	height:100%;

	font-size: 1rem;
	line-height:1.25;
	letter-spacing: 0.06em;
	font-weight: 500;
position:relative;
	text-decoration: none;

	color: #a68a64;
	background: #fff;
	border: 1px solid #a68a64;

	transition:
		background-color .25s ease,
		color .25s ease,
		border-color .25s ease,
		transform .15s ease;
}


.page__nav ul li a:hover{
	background: #a68a64;
	border-color: #a68a64;
	transform: translateY(-1px);
	color:#fff;

}

.page__nav ul li a::before,
.page__nav ul li a::after {
  content: "";
  position: absolute;
  top: 55%;
  right: 1.5rem;
  width: 8px;
  height: 2px;
  background: #a68a64;
}

.page__nav ul li a::before {
  transform: translateY(-50%) rotate(135deg);
  transform-origin: right center;
}

.page__nav ul li a::after {
  transform: translateY(-50%) rotate(45deg);
  transform-origin: right center;
}

.page__nav ul li:hover a::before,
.page__nav ul li:hover a::after {
	background: #fff!important;
}

.page-hero {
  position: relative;
  background-size: cover;
  background-position: center;
  background-repeat: no-repeat;

  display:flex;
align-items:flex-end;
	justify-content:center;
  color: #fff;
	width:100%;
	height:25vh;
	min-height:420px;
}


.page-hero__breadcrumb {
	background: linear-gradient(90deg, #c1a98f 0%, #d3c2b0 30%, #eadfce 60%, #d0bda9 85%, #b09a86 100%);
	padding:0.75rem 0;

}



.page-hero__breadcrumb .container {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
}

/* 各要素 */
.page-hero__breadcrumb span[property="itemListElement"] {
  display: inline-flex;
  align-items: center;
}

/* リンク */
.page-hero__breadcrumb a {
  color: #374151;
  text-decoration: none;
  transition: color 0.3s ease;
  position: relative;
}

/* ホバー */
.page-hero__breadcrumb a:hover {
  color: #18295c;
}

/* 区切り（> を置き換え） */
.page-hero__breadcrumb span[property="itemListElement"] + span[property="itemListElement"]::before {
  content: "";
  display: inline-block;
  width: 6px;
  height: 6px;
  margin: 0 10px;
  border-top: 1px solid #fff;
  border-right: 1px solid #fff;
  transform: rotate(45deg);
}

/* current */
.page-hero__breadcrumb .current-item {
  color: #111827;
  font-weight: 600;
}

/* レスポンシブ */
@media (max-width: 768px) {
  .page-hero__breadcrumb {
    font-size: 0.75rem;
  }

  .page-hero__breadcrumb span[property="itemListElement"] + span[property="itemListElement"]::before {
    margin: 0 6px;
  }
}


/* オーバーレイ（重厚感） */
/*
.page-hero::before {
  content: "";
  position: absolute;
  inset: 0;
  background: linear-gradient(
    to bottom,
    rgba(2, 6, 23, 0.6),
    rgba(2, 6, 23, 0.9)
  );
  z-index: 1;
}
*/

/* 中身を前面に */
.page-hero__inner {
  position: relative;
  z-index: 2;
}

/* タイトル */
.page-hero__title {
	margin:0;
	color:#4A4642;
	position:relative;
height:4rem;
}

.page-hero__title span{
	position:relative;
  display: inline-block;
  padding: 1.5rem 9.5rem 0rem 0;
  background: #fff;
  color: #000;
	font-family: "Noto Serif JP", serif;
  font-weight: 400;
font-size:2.5rem;
	line-height:1;
  /* ここが本体 */
  clip-path: polygon(0 0, calc(100% - 4rem) 0, 100% 100%, 0 100%);
}

@media screen and (max-width:900px){
	.page-hero__title span{
		padding-right:4rem;
	}
}

.page-hero__title:before{
	position:absolute;
	content:'';
	display:block;
	height:4rem;
	width:100vw;
	left:0;
	top:0;
	transform:translate(-100%,0);
	background-color:#fff;
}


.page-content-wrap{
	padding:4.5rem 0;
}

body:not(.home).page section{
	padding:1.5rem 0 3.5rem;
}


h3.section__title {
	position: relative;
	font-family: "Noto Serif JP", serif;
	font-size: 2.0rem;
	padding: 1.2rem 0rem;
	margin: 0 0 2.5rem;
	display: block;
	color: #4A4642;
	font-weight: 400;
	letter-spacing: 0.075em;
	z-index: 1;
}

/*
h3.section__title::before {
	content: "";
	position: absolute;
	inset: 0;
	background: linear-gradient(
		to right,
		rgba(255,255,255,0.6) 0%,
		rgba(255,255,255,0.6) 2.5%,
		rgba(255,255,255,0) 10em
	);
	z-index: -1;
}
*/

h3.section__title::after {
  content: "";
  position: absolute;
  left: 0;
  bottom: 0;
  width: 10em;
  height: 2px;
  background: linear-gradient(90deg, #a68a64, transparent);
	z-index:0;
}

h4.section__title {
	font-family: "Noto Serif JP", serif;
	font-size: 1.5rem;
	padding: 0.6rem 0 0.8rem 0.75rem;
	margin: 0 0 1.75rem;
	display: block;
	color: #4A4642;
	font-weight: 400;
	letter-spacing: 0.06em;

	border-left: 3px solid #a68a64;

	/* 下にグラデーションライン（長め） */
	background: linear-gradient(
		to right,
		rgba(74,70,66,0.25),
		rgba(74,70,66,0)
	) no-repeat left bottom / 12rem 1px;
}

h5.section__title {
	position: relative;
	font-family: "Noto Serif JP", serif;
	font-size: 1.15rem;
	margin: 0 0 1rem;
	padding-left: 1.2rem;
	display: block;
	color: #4A4642;
	font-weight: 400;
	letter-spacing: 0.05em;
}

h5.section__title::before {
	content: "";
	position: absolute;
	left: 0;
	top: 0.6em;
	width: 6px;
	height: 6px;
	background: #a68a64;
	border-radius: 50%;
}

.table--basic{
	width: 100%;
	border-collapse: collapse;
	border: 1px solid rgba(74,70,66,0.15);
	font-size: 0.95rem;
	color: #4A4642;
	background: #fff;
	margin:0 0 1.5rem;
}

.table--basic th,
.table--basic td{
	padding: 0.75rem 1rem;
	border-bottom: 1px solid rgba(74,70,66,0.12);
	vertical-align: middle;
}

/* ヘッダー */
.table--basic th{
	font-weight: 600;
	text-align: left;
	background: #f8f7f4;
	border-bottom: 1px solid rgba(166,138,100,0.4);
	border-right: 1px solid rgba(166,138,100,0.3);
}

/* 行の区切りを柔らかく */
.table--basic tr:last-child td{
/*	border-bottom: none;*/
}

/* ホバー（PCだけ効いてもOK） */
.table--basic tbody tr:hover{
	background: rgba(166,138,100,0.06);
}

/* grid時のみ td に縦線 */
.table--basic.grid td{
	border-right: 1px solid rgba(74,70,66,0.12);
	border-bottom:1px solid rgba(74,70,66,0.12);
}

/* 最後の列は消す（はみ出し防止） */
.table--basic.grid tr td:last-child{
	border-right: none;

}

.table--basic a{
	text-decoration:none!important;
}

.table--scroll {
  width: 100%;
	margin:0 0 1.5rem;
	padding:0 0 1rem;
}

.table--scroll table {
  width: 100%;
  border-collapse: collapse;
}

.table--sm th,
.table--sm td{
	padding: 0.25rem 0.5rem;
}

@media screen and (max-width: 900px) {
  .table--scroll {
    overflow-x: auto;
    -webkit-overflow-scrolling: touch;
  }

  .table--scroll table {
    min-width: 640px;
    white-space: nowrap;
  }
}

.table--basic.th--center th{
	text-align:center;
}

.table--basic.td--center td{
	text-align:center;
}


ul.ul--basic {
  margin: 0;
  padding: 0;
  list-style: none;
}

ul.ul--basic li {
  position: relative;
  padding-left: 1.2em;
  line-height: 1.9;
  color: #4A4642;
}

ul.ul--basic li + li {
  margin-top: 0.4em;
}

ul.ul--basic li::before {
  content: "";
  position: absolute;
  top: 0.85em;
  left: 0;
  width: 6px;
  height: 6px;
  border-radius: 50%;
  background: #a8885c;
  transform: translateY(-50%);
}


ul.ul--arrow {
  margin: 0;
  padding: 0;
  list-style: none;
}

ul.ul--arrow li {
  position: relative;
  padding-left: 1.4em;
  line-height: 1.9;
  color: #4A4642;
}

ul.ul--arrow li + li {
  margin-top: 0.4em;
}

/* 矢印 */
ul.ul--arrow li::before {
  content: "";
  position: absolute;
  top: 0.9em;
  left: 0;
  width: 6px;
  height: 6px;
  border-top: 2px solid #a8885c;
  border-right: 2px solid #a8885c;
  transform: translateY(-50%) rotate(45deg);
}

.ol--basic{
	list-style:none;
	margin:0;
	padding:0;
}

.ol--basic li{
	counter-increment: num;
	position: relative;
	padding-left: 2.2rem;
	margin-bottom: 1rem;
	line-height: 1.9;
	color: #4A4642;
}

/* 番号 */
.ol--basic li::before{
	content: counter(num, decimal-leading-zero);
	position: absolute;
	left: 0;
	top: 0;
	font-size: 1rem;
	font-weight: 600;
	color: #a68a64;
	letter-spacing: 0.05em;
}

.button--basic{
	display: inline-flex;
	align-items: center;
	justify-content: center;
	text-align:center;
	padding: 0.75rem 3.5rem;
	border-radius: 999px;
text-decoration:none!important;

	font-size: 1.1rem;
	line-height:1.35;
	letter-spacing: 0.06em;
	font-weight: 500;
white-space:nowrap;
	text-decoration: none;

	color: #fff;
	background: #a68a64;
	border: 1px solid #a68a64;

	transition:
		background-color .25s ease,
		color .25s ease,
		border-color .25s ease,
		transform .15s ease;
}

/* hover */
.button--basic:hover{
	background: #947856;
	border-color: #947856;
	transform: translateY(-1px);
}

/* active */
.button--basic:active{
	transform: translateY(0);
}

.button--basic.is-white{
	background: #fff;
	color: #4A4642;
	border: 1px solid rgba(166,138,100,0.6);
}

/* hover */
.button--basic.is-white:hover{
	background: rgba(166,138,100,0.12);
	border-color: #a68a64;
	color: #4A4642;
}
.button--basic.is-sm{
	padding: 0.5rem 1rem;
	font-size: 0.8rem;
}

.is-disabled{
	pointer-events:none;
	opacity:0.4;
}

.button__container--center{
	text-align:center;
	margin:1.5rem 0;
}

a[href$=".pdf"],
a[href*=".pdf?"]{

}

a[href$=".pdf"]:not(:has(img))::after,
a[href*=".pdf?"]:not(:has(img))::after {
  content: "";
  display: inline-block;
  width: 1em;
  height: 1em;
  margin-left: 0.4em;
  vertical-align: -0.1em;
  background: url("images/common/icon--pdf.svg") no-repeat center / contain;
}

body.home section#information a[href$=".pdf"]:not(:has(img))::after,
body.home section#information a[href*=".pdf?"]:not(:has(img))::after{
	display:none;
}

body.home section#information a .sc-category-posts__title{
	position:relative;
	display:inline-block;
}
body.home section#information a[href$=".pdf"] .sc-category-posts__title::before,
body.home section#information a[href*=".pdf?"] .sc-category-posts__title::before{
  content: "";
  display: inline-block;
  width: 1em;
  height: 1em;
  margin-right: 0.1em;
  vertical-align: -0.1em;
  background: url("images/common/icon--pdf.svg") no-repeat center / contain;
	
}

body.home .site-main{
	background-color:rgba(166,138,100,0.1);
}

@media screen and (max-width:900px){
	body.home .site-main{
		padding-top:90px!important;
	}
}

body:not(.home) .page-main section{
	background:linear-gradient(180deg, rgba(166,138,100,0.1) 0%, rgba(166,138,100,0.1) 25%, rgba(166,138,100,0.05) 75%);
	margin:0 0 3.5rem;
	padding:2.5rem;
	border-radius:0.5rem;
	margin: 0 0 3.5rem;
	padding: 2.5rem;
	border-radius: 1rem;
	box-shadow: 0 12px 30px rgba(0,0,0,0.06);
	border: 1px solid rgba(0,0,0,0.04);
}


body:not(.home) .page-main section#nav,
body:not(.home) .page-main section#intro{
	background:transparent!important;
	padding:0;
	margin:0;
	box-shadow:none;
	border:0px;
}

@media screen and (max-width:900px){
	body:not(.home) .page-main section{
	padding:1.75rem;
	}
}

/* =========================================
   共通（構造）
========================================= */
.button--emphasis {
  position: relative;
  display: inline-block;
text-decoration:none!important;
  padding: 22px 36px;
  font-size: 16px;
  font-weight: 700;
  line-height: 1.6;
  text-align: center;

  border-radius: 6px;
  border: none;
  color: #fff;

  /* 存在感 */
  box-shadow: 0 18px 45px rgba(0,0,0,0.2);

  transform: scale(1.04);

  transition:
    transform 0.25s ease,
    box-shadow 0.25s ease,
    background 0.25s ease,
    filter 0.25s ease;
}

.button--emphasis:hover {
  transform: translateY(-4px) scale(1.06);
  box-shadow: 0 26px 60px rgba(0,0,0,0.28);
  filter: brightness(1.05);
}

.button--emphasis:active {
  transform: translateY(-1px) scale(1.02);
}

/* 外側リング（重要） */
.button--emphasis::before {
  content: "";
  position: absolute;
  inset: -10px;
  border-radius: 10px;
  border: 2px solid rgba(0,0,0,0.08);
  opacity: 0.8;
  transition: all 0.3s ease;
}

.button--emphasis:hover::before {
  inset: -12px;
  opacity: 1;
}

/* 矢印 */
.button--emphasis::after {
  content: "›";
  margin-left: 10px;
  font-size: 18px;
  transition: transform 0.3s ease;
}

.button--emphasis:hover::after {
  transform: translateX(4px);
}

/* =========================================
   緑（中学）
========================================= */
.button--emphasis--green {
  background: #2f5d50;
}

.button--emphasis--green:hover {
  background: #254c41;
}

.button--emphasis--green::before {
  border-color: rgba(47, 93, 80, 0.35);
}

/* =========================================
   青（高校）
========================================= */
.button--emphasis--blue {
  background: #1f3a6d;
}

.button--emphasis--blue:hover {
  background: #182f59;
}

.button--emphasis--blue::before {
  border-color: rgba(31, 58, 109, 0.35);
}


/* 目次 */

#ez-toc-container{
	padding:1.5rem;
	margin-bottom:2.5rem!important;
	border:1px solid #ccc;
}

#ez-toc-container .ez-toc-js-icon-con{
	border:1px solid #aaa;
}

#ez-toc-container,
#ez-toc-container a{
	line-height:1.4;
}
#ez-toc-container .ez-toc-title{
	font-size:1.25rem;
	letter-spacing:0.05em;
}

/* ------------------------------------------------------------
 * 学校紹介 > 校長室
 * ------------------------------------------------------------ */

/* 校長挨拶 */
section.environment#message .section__container--flex{
	display:flex;
	flex-wrap:wrap;
	gap:3rem;
}

section.environment#message .flex__item:nth-child(1){
	width:25%;
}


section.environment#message .flex__item:nth-child(2){
	width:calc(75% - 3rem);
}

section.environment#message figure figcaption{
	text-align:center;
	margin:0.5rem;
	font-family: "Noto Serif", serif;
}

section.environment#message .message__copy--en{
	  font-family: "Noto Serif", serif;
	font-size:1.25rem;
}

section.environment#message .message__date{
	text-align:right;
}

@media screen and (max-width:900px){
	section.environment#message .section__container--flex{
		flex-direction:column;
		gap:1rem;
	}
	section.environment#message .flex__item:nth-child(1),
	section.environment#message .flex__item:nth-child(2){
		width:100%!important;
	}
	section.environment#message .flex__item:nth-child(1) figure{
		width:50%;
		margin:0 auto;
	}
}

/* 校章の由来 */

section.environment#emblem .section__container--flex{
	display:flex;
	flex-wrap:wrap;
	gap:3rem;
}


section.environment#emblem .flex__item:nth-child(1){
	width:calc(75% - 3rem);
}


section.environment#emblem .flex__item:nth-child(2){
	width:25%;
}

@media screen and (max-width:900px){
	
	section.environment#emblem .section__container--flex{
		flex-direction:column-reverse;
		gap:1rem;
	}
	section.environment#emblem .flex__item:nth-child(1),
	section.environment#emblem .flex__item:nth-child(2){
	width:100%;
	}
}


/* 校歌 */
section.environment#song .section__container--flex{
	display:flex;
	flex-wrap:wrap;
	gap:3rem;
}

section.environment#song .flex__item:nth-child(1){
	width:60%;
}


section.environment#song .flex__item:nth-child(2){
	width:calc(40% - 3rem);
}

section.environment#song .song__credit{
	margin:0 0 1rem;
}


section.environment#song ol.song__lyrics li{
	margin:0 0 1.5rem;
}

@media screen and (max-width:900px){
	section.environment#song .section__container--flex{
		flex-direction:column-reverse;
	}
	section.environment#song .section__container--flex .flex__item{
		width:100%;
	}

}

/* ------------------------------------------------------------
 * 学校紹介
 * ------------------------------------------------------------ */


section.about#intro .section__container--flex{
	display:flex;
	flex-wrap:wrap;
	gap:3rem;
}

section.about#intro .flex__item{
	width:calc(50% - 1.5rem);
}


@media screen and (max-width:900px){
	section.about#intro .section__container--flex{
		gap:1rem;
		flex-direction:column;
	}
	section.about#intro .flex__item{
		width:100%!important;
	}
	section.about#intro .flex__item figure{
		width:100%;
	}
}


section.about#intro .intro__heading{
	margin-bottom: 0.75rem;
	font-size:1.25rem;
}

section.about#intro .intro__heading a{
	color: #4A4642;
	text-decoration: none;
	display: inline-block;
	padding-bottom: 0.25rem;
	border-bottom: 1px solid rgba(166,138,100,0.4);
	font-size:1.5rem;
}

section.about#intro .intro__sub{
	list-style: none;
	margin: 0;
	padding:0;
}

section.about#intro .intro__sub li{
	margin: 0.4rem 0;
}

section.about#intro .intro__sub a{
	color: rgba(74,70,66,0.85);
	text-decoration: none;
	position: relative;
	padding-left: 0.75rem;
}


section.about#intro .intro__sub a:hover{
	color: #4A4642;
}

/* =========================================
   About Intro（上品カード化）
========================================= */

section.about#intro {
  padding: 3rem 0;
}

section.about#intro .section__container--flex {
  display: flex;
  gap: 2rem;
}

section.about#intro .section__container--flex .flex__item {
  width: calc(50% - 1rem);
  position: relative;

  background: #fff;
  border: 1px solid rgba(0,0,0,0.08);
  border-radius: 6px;
  overflow: hidden;

  transition: transform .35s ease, box-shadow .35s ease;
}

/* ホバー */
section.about#intro .section__container--flex .flex__item:hover {
  transform: translateY(-4px);
  box-shadow: 0 16px 40px rgba(0,0,0,0.08);
}

/* 画像 */
section.about#intro figure {
  margin: 0;
  overflow: hidden;
}

section.about#intro img {
  width: 100%;
  display: block;
  transition: transform .5s ease;
}

/* 画像ホバー */
section.about#intro .flex__item:hover img {
  transform: scale(1.05);
}

/* 見出し */
section.about#intro .intro__heading {
  padding: 1rem 1.25rem 0.5rem;
  font-weight: 600;
  letter-spacing: 0.06em;
  font-size: 1.05rem;
}

section.about#intro .intro__heading a {
  position: relative;
}

/* 下線アニメ */
section.about#intro .intro__heading a::after {
  content: "";
  position: absolute;
  left: 0;
  bottom: -2px;
  width: 0;
  height: 1px;
  background: #a68a64;
  transition: width .3s ease;
}

section.about#intro .flex__item:hover .intro__heading a::after {
  width: 100%;
}

/* サブリスト */
section.about#intro .intro__sub {
  list-style: none;
  margin: 0;
  padding: 0.5rem 1.25rem 1.25rem;
}

section.about#intro .intro__sub li {
  margin: 0.4rem 0;
}

/* リンク */
section.about#intro .intro__sub a {
  display: flex;
  align-items: center;
  gap: 10px;
  padding: 6px 0;

  position: relative;
  padding-right: 14px;
  font-size: 1.1rem;
  opacity: 0.85;
  transition: opacity .3s ease;
}

section.about#intro .intro__sub a:hover {
  opacity: 1;
}

/* サムネ */
section.about#intro .intro__thumb {
  width: 48px;
  height: 48px;
  flex-shrink: 0;
  border-radius: 50%;
  overflow: hidden;
  border: 1px solid rgba(0,0,0,0.08);
}

/* 画像 */
section.about#intro .intro__thumb img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}

/* サムネhover */
section.about#intro .intro__sub a:hover .intro__thumb {
  transform: scale(1.08);
  transition: transform 0.3s ease;
}

/* =========================================
   SP対応
========================================= */
@media screen and (max-width:900px){

  section.about#intro .section__container--flex {
    flex-direction: column;
    gap: 1.5rem;
  }

  section.about#intro .section__container--flex .flex__item {
    width: 100%;
  }

}
/* ------------------------------------------------------------
 * 学校紹介 > 当校の教育方針について
 * ------------------------------------------------------------ */

/* 教育方針 */

section.education#policy .policy__lead{
	font-family: "Noto Serif JP", serif;
	font-size:1.5rem;
	margin:0 0 2.5rem;
	text-align:center;
}

section.education#policy .policy__heading{
	font-family:'Noto Serif', serif;
	font-size:1.25rem;
}
section.education#policy .section__container--flex{
	display:flex;
	flex-wrap:wrap;
	gap:3rem;
}

section.education#policy .flex__item:nth-child(1){
	width:40%;
}


section.education#policy .flex__item:nth-child(2){
	width:calc(60% - 3rem);
}

@media screen and (max-width:900px){
	section.education#policy .section__container--flex{
		gap:1rem;
	}
	section.education#policy .flex__item:nth-child(1),
	section.education#policy .flex__item:nth-child(2){
		width:100%!important;
	}
	section.education#policy .flex__item:nth-child(1) figure{
		width:100%;
		margin:0 auto;
	}
}


/* 教育目的・教育課程 */



section.education#program .program__copy{
	font-family: "Noto Serif JP", serif;
	font-size:1.5rem;
	margin:0 0 2.5rem;
	text-align:center;
}
section.education#program .section__container--flex{
	display:flex;
	flex-wrap:wrap;
	gap:3rem;
}

section.education#program .flex__item:nth-child(1){
	width:calc(60% - 3rem);
}

section.education#program .flex__item:nth-child(2){
	width:40%;
}


@media screen and (max-width:900px){
	section.education#program .section__container--flex{
		flex-direction:column-reverse;
		gap:1rem;
	}
	section.education#program .flex__item:nth-child(1),
	section.education#program .flex__item:nth-child(2){
		width:100%!important;
	}
	section.education#program .flex__item:nth-child(2) figure{
		width:100%;
		margin:0 auto;
	}
}

/* 校風 */


section.education#culture .culture__copy{
	font-family: "Noto Serif JP", serif;
	font-size:1.5rem;
	margin:0 0 2.5rem;
	text-align:center;
}


/* 授業時間割 */


section.education#time-table .section__container--flex{
	display:flex;
	flex-wrap:wrap;
	gap:3rem;
}

section.education#time-table .flex__item:nth-child(1){
	width:calc(60% - 3rem);
}

section.education#time-table .flex__item:nth-child(2){
	width:40%;
}


@media screen and (max-width:900px){
	section.education#time-table .section__container--flex{
		flex-direction:column-reverse;
		gap:1rem;
	}
	section.education#time-table .flex__item:nth-child(1),
	section.education#time-table .flex__item:nth-child(2){
		width:100%!important;
	}
	section.education#time-table .flex__item:nth-child(2) figure{
		width:100%;
		margin:0 auto;
	}
}


/* 教育環境 */
section.education#environment .environment__lead{
	font-family: "Noto Serif JP", serif;
	font-size:1.25rem;
	margin:0 0 2.5rem;
	text-align:center;
}


section.education#environment .section__container--flex{
	display:flex;
	flex-wrap:wrap;
	gap:3rem;
}

section.education#environment .flex__item:nth-child(1){
	width:40%;
}


section.education#environment .flex__item:nth-child(2){
	width:calc(60% - 3rem);
	display:flex;
	align-items:center;
}

@media screen and (max-width:900px){
	section.education#environment .section__container--flex{
		gap:1rem;
	}
	section.education#environment .flex__item:nth-child(1),
	section.education#environment .flex__item:nth-child(2){
		width:100%!important;
	}
	section.education#environment .flex__item:nth-child(1) figure{
		width:100%;
		margin:0 auto;
	}
}

/* 施設 */



section.education#facilities .section__container--flex{
	display:flex;
	flex-wrap:wrap;
	gap:3rem;
}

section.education#facilities .flex__item:nth-child(1){
	width:calc(60% - 3rem);
}

section.education#facilities .flex__item:nth-child(2){
	width:40%;
}

section.education#facilities .facilities__gallery ul{
	display:flex;
	flex-wrap:wrap;
	gap:1rem;
	list-style:none;
	margin:0;
	padding:0;
}


section.education#facilities .facilities__gallery ul li{
	width:calc(20% - (4rem / 5));
}

@media screen and (max-width:900px){
	section.education#facilities .facilities__gallery ul li{
	width:calc(50% - (1rem / 2));
	}
}

.glightbox-clean .gslide-title{
	color:#fff!important;
}

.gslide-description.description-bottom{
	background-color:transparent!important;
}

@media screen and (max-width:900px){
	section.education#facilities .section__container--flex.spec{
		flex-direction:column-reverse;
		gap:1rem;
	}
	section.education#facilities .flex__item:nth-child(1),
	section.education#facilities .flex__item:nth-child(2){
		width:100%!important;
	}
	section.education#facilities .flex__item:nth-child(2) figure{
		width:100%;
		margin:0 auto;
	}
}


/* 職員数 */

.staff__data{
	width:600px;
	max-width:100%;
	margin:0 auto;
}

.staff__data dl{
	display: flex;
	align-items: center;
	margin: 0 0 0.6rem;
}

.staff__data dt{
	display: flex;
	align-items: center;
	flex: 1;
	white-space: nowrap;
	color: #4A4642;
	margin: 0;
}

.staff__data dt::after{
	content: "";
	flex: 1;
	border-bottom: 1px dotted rgba(74,70,66,0.3);
	margin: 0 0.75rem;
	transform: translateY(-0.1em);
}

.staff__data dd{
	white-space: nowrap;
	margin: 0;
	font-weight: 600;
	color: #4A4642;
	padding-left: 0.25rem;
}

/* 教育環境 */

section.education#system .system__lead{
	margin:0 0 1.5rem;
}

section.education#system .section__container--flex{
	display:flex;
	flex-wrap:wrap;
	gap:0.75rem;
}

section.education#system .flex__item{
	width:calc(33.3333% - 0.5rem);
}


section.education#system figure figcaption{
	text-align:center;
	margin:0.5rem;
	font-family: "Noto Serif", serif;
}

@media screen and (max-width:900px){
	section.education#system .section__container--flex{
		flex-direction:column;
		gap:1rem;
	}
	section.education#system .flex__item{
		width:100%;
	}
	section.education#system .flex__item figure{
		width:50%;
		margin:0 auto;
	}
}

/* ------------------------------------------------------------
 * 入学案内
 * ------------------------------------------------------------ */


section.admission#intro .intro__lead{
margin:0 0 1.5rem;
}

section.admission#intro .section__container--flex{
	display:flex;
	flex-wrap:wrap;
	gap:3rem;
}

section.admission#intro .flex__item{
	width:calc(33.3333% - 2rem);
}


@media screen and (max-width:900px){
	section.admission#intro .section__container--flex{
		gap:1rem;
	}
	section.admission#intro .flex__item{
		width:100%;
	}
	section.admission#intro .flex__item figure{
		width:100%;
	}
}


section.admission#intro .intro__heading{
	margin-bottom: 0.75rem;
	font-size:1.25rem;
}

section.admission#intro .intro__heading a{
	color: #4A4642;
	text-decoration: none;
	display: inline-block;
	padding-bottom: 0.25rem;
	border-bottom: 1px solid rgba(166,138,100,0.4);
	font-size:1.5rem;
}

section.admission#intro .intro__sub{
	list-style: none;
	margin: 0;
	padding:0;
}

section.admission#intro .intro__sub li{
	margin: 0.4rem 0;
}

section.admission#intro .intro__sub a{
	color: rgba(74,70,66,0.85);
	text-decoration: none;
	position: relative;
	padding-left: 0.75rem;
}
/*
section.admission#intro .intro__sub a::before{
	content: "";
	position: absolute;
	left: 0;
	top: 0.6em;
	width: 4px;
	height: 4px;
	background: #a68a64;
	border-radius: 50%;
}*/

section.admission#intro .intro__sub a:hover{
	color: #4A4642;
}


/* =========================================
   Admission Intro（上品カード化）
   - section.admission#intro 限定
   - サブ項目に画像は使わない
========================================= */

section.admission#intro {
  padding: 3rem 0;
}

section.admission#intro .intro__lead {
  max-width: 52em;
  margin: 0 auto 2rem;
  text-align: center;
  font-size: 1.05rem;
  line-height: 2;
  letter-spacing: 0.04em;
  color: #4A4642;
}

section.admission#intro .section__container--flex {
  display: flex;
  flex-wrap: wrap;
  gap: 2rem;
}

section.admission#intro .section__container--flex .flex__item {
  width: calc(33.333333% - 1.333333rem);
  position: relative;
  background: #fff;
  border: 1px solid rgba(0,0,0,0.08);
  border-radius: 6px;
  overflow: hidden;
  transition: transform .35s ease, box-shadow .35s ease;
}

section.admission#intro .section__container--flex .flex__item:hover {
  transform: translateY(-4px);
  box-shadow: 0 16px 40px rgba(0,0,0,0.08);
}

/* 画像 */
section.admission#intro figure {
  margin: 0;
  overflow: hidden;
}

section.admission#intro figure a {
  display: block;
}

section.admission#intro figure img {
  width: 100%;
  display: block;
  transition: transform .5s ease;
}

section.admission#intro .flex__item:hover figure img {
  transform: scale(1.05);
}

/* 見出し */
section.admission#intro .intro__heading {
  padding: 1rem 1.25rem 0.5rem;
  font-weight: 600;
  letter-spacing: 0.06em;
  font-size: 1.05rem;
}

section.admission#intro .intro__heading a {
  position: relative;
  display: inline-block;
}

/* 下線アニメ */
section.admission#intro .intro__heading a::after {
  content: "";
  position: absolute;
  left: 0;
  bottom: -2px;
  width: 0;
  height: 1px;
  background: #a68a64;
  transition: width .3s ease;
}

section.admission#intro .flex__item:hover .intro__heading a::after {
  width: 100%;
}

/* サブリスト */
section.admission#intro .intro__sub {
  list-style: none;
  margin: 0;
  padding: 0.5rem 1.25rem 1.25rem;
}

section.admission#intro .intro__sub li {
  margin: 0;
  border-top: 1px solid rgba(0,0,0,0.06);
}

section.admission#intro .intro__sub li:first-child {
  border-top: none;
}

/* リンク（画像なし） */
section.admission#intro .intro__sub a {
  position: relative;
  display: block;
  padding: 0.85rem 1.25rem 0.85rem 0;
  font-size: 0.95rem;
  line-height: 1.6;
  color: #4A4642;
  opacity: 0.88;
  transition: opacity .3s ease, color .3s ease, transform .3s ease;
}

section.admission#intro .intro__sub a:hover {
  opacity: 1;
  color: #a68a64;
  transform: translateX(2px);
}

/* 矢印 */
section.admission#intro .intro__sub a::before,
section.admission#intro .intro__sub a::after {
  content: "";
  position: absolute;
  top: 50%;
  right: 0;
  width: 8px;
  height: 1px;
  background: currentColor;
  transition: background .3s ease;
}

section.admission#intro .intro__sub a::before {
  transform: translateY(-50%) rotate(45deg);
  transform-origin: right center;
}

section.admission#intro .intro__sub a::after {
  transform: translateY(-50%) rotate(-45deg);
  transform-origin: right center;
}

/* 学校説明会のようにサブリストがないカードも整える */
section.admission#intro .flex__item:not(:has(.intro__sub)) .intro__heading {
  padding-bottom: 1.25rem;
}

/* SP */
@media screen and (max-width: 900px) {
  section.admission#intro .section__container--flex {
    gap: 1.5rem;
  }

  section.admission#intro .section__container--flex .flex__item {
    width: 100%;
  }

  section.admission#intro .intro__lead {
    margin-bottom: 1.5rem;
    font-size: 1rem;
    line-height: 1.9;
  }
}



/* ------------------------------------------------------------
 * 入学案内　共通
 * ------------------------------------------------------------ */

.admission__block{
	margin:0 0 2.5rem;
}

.admission__lead{
	margin:0 0 1.5rem;
}

section.junior-high-school#document figure,
section.high-school#document figure{
	margin:0 0 2.5rem;
}
section.junior-high-school#document figure img,
section.high-school#document figure img{
	display:block;
	margin:0 auto 0.5rem;
}

section.junior-high-school#document figcaption a,
section.high-school#document figcaption a{
	text-decoration:underline;
}

/* ------------------------------------------------------------
 * 入学案内　学校説明会
 * ------------------------------------------------------------ */

section.admission#schedule .section__container--flex{
	display:flex;
	flex-wrap:wrap;
	gap:1.5rem;
}

section.admission#schedule .section__container--flex.reservation .flex__item{
	width:calc(50% - 0.75rem);
}

section.admission#schedule .section__container--flex.image .flex__item{
	width:calc(33.333333% - 1rem);
}

section.admission#schedule .section__heading{
	font-family:'Noto Serif JP', serif;
	text-align:center;
	font-size:1.25rem;
	margin:0 0 1.5rem;
}


@media screen and (max-width:900px){
	section.admission#schedule .section__container--flex{
		gap:0.5rem;
	}
	section.admission#schedule .section__container--flex.reservation .flex__item{
		width:100%;
	}
	section.admission#schedule .section__container--flex.image .flex__item{
		width:calc(100%);
	}

}


/* ------------------------------------------------------------
 * 進路情報
 * ------------------------------------------------------------ */

section.course .course__copy{
	font-size:1.5rem;
	font-family:'Noto Serif JP', serif;
	margin:0 0 1.5rem;
}

section.course .course__lead{
	margin:0 0 1.5rem;
}

section.course .section__container--flex{
	display:flex;
	flex-wrap:wrap;
	gap:1.5rem;
}

section.course .section__container--flex .flex__item{
	width:calc(50% - 0.75rem);
}


@media screen and (max-width:900px){
	section.course .section__container--flex{
		gap:0.15rem;
	}
	section.course .section__container--flex .flex__item{
		width:100%;
	}

}

/* 合格体験記 */


.report__image{
	margin:0 0 1.5rem;
	border-radius:1.5rem;
	overflow:hidden;
}

/* リスト */
section.course#report ol {
  counter-reset: number;
  margin: 0 auto;
  padding: 0;
  list-style: none;
}

/* 各アイテム */
section.course#report ol li {
  position: relative;
  background: #fff;
  padding: 2rem 2rem 2rem 4rem;
  margin-bottom: 1.75rem;
  border-radius: 0x;
  line-height: 1.9;
  color: #333;
  box-shadow: 0 6px 20px rgba(0,0,0,0.05);
  transition: transform .2s ease, box-shadow .2s ease;
}


/* 番号 */
section.course#report ol li::before {
  counter-increment: number;
  content: counter(number, decimal-leading-zero);
  position: absolute;
  left: 20px;
  top: 2rem;
  font-size: 1.5rem;
  font-weight: 500;
  color: #a8885c;
	line-height:1.2;
}

/* 左ライン */
section.course#report ol li::after {
  content: "";
  position: absolute;
  left: 0;
  top: 0px;
  bottom: 0px;
  width: 3px;
  background: #a8885c;
  border-radius: 0px;
}

/* スマホ */
@media (max-width: 768px) {
  section.course#report {
    padding: 60px 16px;
  }

  section.course#report .section__title {
    font-size: 1.6rem;
  }

  section.course#report ol li {
    padding: 24px 20px 24px 60px;
  }

  section.course#report ol li::before {
    left: 16px;
  }
}

/* 進路説明会 */
section.course .schedule-list {
  list-style: none;
  margin: 1.5em 0;
  padding: 0;
}

section.course .schedule-list li {
  padding: 16px 18px;
  margin-bottom: 12px;
  background: #f5f5f5;
  border-left: 1px solid #a68a64;
  line-height: 1.8;
}

/* 月 */
section.course .schedule-month {
  display: block;
  font-weight: 700;
  font-size: 16px;
  margin-bottom: 6px;
  color: #4A4642;
}

/* 改行の間隔ちょい調整 */
section.course .schedule-list br {
  line-height: 1.6;
}


/* ------------------------------------------------------------
 * 学校生活
 * ------------------------------------------------------------ */


/* dlを3カラムレイアウトに */
section.life#event .section__container--flex {
	display:flex;
	flex-wrap:wrap;
	gap:1.5rem;
}

section.life#event .section__container--flex dl{
	width:calc(33.3333% - 1rem);
}

section.life#event dl {
  display: inline-block;
  vertical-align: top;

  background: #fff;
  border-radius: 0px;
  overflow: hidden;
  box-shadow: 0 6px 20px rgba(0,0,0,0.05);
  transition: 0.2s ease;
	margin:0;
}


/* 月 */
section.life#event dl dt {
	font-family:'Noto Serif JP', serif;
	color:#a68a64;
  background: #f8f7f4;
  text-align: center;
  font-weight: 500;
  font-size: 1.5rem;
  padding: 14px 10px;
  letter-spacing: 0.05em;
	border-bottom:1px solid #a68a64;
}

/* 内容 */
section.life#event dl dd {
  margin: 0;
  padding: 18px 20px;
}

/* ul */
section.life#event dl dd ul {
  margin: 0;
  padding: 0;
  list-style: none;
}

/* li */
section.life#event dl dd li {
  position: relative;
  padding-left: 18px;
  margin-bottom: 8px;
  line-height: 1.8;
  color: #333;
}

/* ドット */
section.life#event dl dd li::before {
  content: "";
  position: absolute;
  left: 0;
  top: 0.8em;
  width: 6px;
  height: 6px;
  background: #a8885c;
  border-radius: 50%;
}

/* タブレット */
@media (max-width: 900px) {
	section.life#event .section__container--flex{
		gap:0.5rem;
	}
 section.life#event .section__container--flex dl {
    width: calc(50% - 0.25rem);
  }
	 section.life#event .section__container--flex dl dd{
		 padding:1rem;
	}
}


section.life.club .club__nav--heading  {
	display: inline-block;
  position: relative;
  height: 36px;
  line-height: 36px;
  padding: 0 18px;
  background: #a68a64;
  color: #fff;
	font-family:'Noto Serif JP', serif;
	font-size:1.25rem;
	margin:0 0 0.75rem;
}

section.life.club .club__nav--heading::after {
  content: "";
  position: absolute;
  top: 0;
  right: -18px;
  width: 0;
  height: 0;
  border-top: 18px solid transparent;
  border-bottom: 18px solid transparent;
  border-left: 18px solid #a68a64;
}

section.life.club .club__nav ul{
	display:flex;
	flex-wrap:wrap;
	margin:0 0 1.5rem;
	padding:0;
	list-style:none;
}

section.life.club .club__nav ul li{
	width:20%;
	padding:0.1rem;
}

@media screen and (max-width:900px){	
	section.life.club .club__nav ul li{
		width:50%;
	}
}

section.life.club .club__nav ul li a{
	display: flex;
	flex:1;
	align-items: center;
	justify-content: center;
	text-align:center;
	padding: 0.5rem 0.5rem;
	border-radius: 999px;
text-decoration:none!important;

	font-size: 1rem;
	line-height:1.35;
	letter-spacing: 0.06em;
	font-weight: 500;

	text-decoration: none;

	color: #a68a64;
	background: #fff;
	border: 1px solid #a68a64;

	transition:
		background-color .25s ease,
		color .25s ease,
		border-color .25s ease,
		transform .15s ease;
}


section.life.club .club__nav ul li a:hover{
	background: #947856;
	border-color: #947856;
	transform: translateY(-1px);
	color:#fff;

}
section.life.club .section__container--flex{ 
	display:flex;
	flex-wrap:wrap;
	gap:3rem;
	margin:0 0 2.5rem;
}


section.life.club .section__container--flex.inverse{
	flex-direction:row-reverse;
} 

section.life.club .section__container--flex .flex__image{
	width:calc(35% - 1.5rem);
}

section.life.club .section__container--flex .flex__content{
	width:calc(65% - 1.5rem);
}

section.life.club .section__container--flex .flex__image img + img{
	display:block;
	margin-top:1rem;
}

@media screen and (max-width:900px){
	section.life.club .section__container--flex{
		gap:1rem;
	}
	section.life.club .section__container--flex .flex__image,
	section.life.club .section__container--flex .flex__content{
	width:100%;
	}

}

/* ----------------------
 * 国際交流
 * ---------------------- */

section.life#exchange .section__container--flex{
	display:flex;
	flex-wrap:wrap;
	gap:1rem;
	margin:0 0 3rem;
}


section.life#exchange .section__container--flex .flex__item{
	width:calc(25% - 0.75rem);
}

section.life#exchange .section__container--flex .flex__item:nth-child(1) img{
	display:block;
	margin:0 0 0rem;
}

@media screen and (max-width:900px){
	section.life#exchange .section__container--flex{
		gap:1rem;
	}
	section.life#exchange .section__container--flex .flex__item:nth-child(1),
	section.life#exchange .section__container--flex .flex__item:nth-child(2){
		width:100%;
		
	}

}


section.life#tour .section__container--flex{
	display:flex;
	flex-wrap:wrap;
	gap:2.25rem;
	margin:0 0 3rem;
}


section.life#tour .section__container--flex .flex__item{
	width:calc(33.333333% - 1.5rem);
}

/* ------------------------------------------------------------
 * 寮
 * ------------------------------------------------------------ */

/* 勉学の雰囲気と環境に恵まれた明るい生徒寮 */
section.dormitery.intro .section__container--flex{
	display:flex;
	flex-wrap:wrap;
	gap:3rem;
}

/* 独立へのアプローチ */
section.dormitery.intro#intro02 .section__container--flex{
	flex-direction:row-reverse;
}

/* 碧翠寮・茜寮について */
section.dormitery.intro#intro04 .section__container--flex{
	flex-direction:row-reverse;
}


section.dormitery.intro .flex__item:nth-child(1){
	width:40%;
}


section.dormitery.intro .flex__item:nth-child(2){
	width:calc(60% - 3rem);
}

@media screen and (max-width:900px){
	section.dormitery.intro .section__container--flex{
		gap:1rem;
	}
	section.dormitery.intro .section__container--flex .flex__item{
		width:100%;
	}
	section.dormitery.intro  .section__container--flex.image .flex__item{
	width:calc(33.33333% - 0.1rem);
	}

}

/* 献立表 */

section.dormitery#menu .menu__lead{
	margin:0 0 1.5rem;
}

section.dormitery#menu .section__container--flex{
	display:flex;
	flex-wrap:wrap;
	gap:1.5rem;
}

.dl--menu {
  width: calc(33.333% - 1rem);
  margin: 0;
  display: inline-block;
  vertical-align: top;

  border-radius: 0.25rem;
  overflow: hidden;
  background: #fff;
  box-shadow: 0 8px 24px rgba(0,0,0,0.05);
  transition: .25s ease;
}

.dl--menu:hover {
  transform: translateY(-4px);
  box-shadow: 0 14px 36px rgba(0,0,0,0.08);
}

.dl--menu dt {
  font-size: 1.2rem;
  font-weight: 700;
  padding: 16px;
  text-align: center;
  letter-spacing: 0.05em;
  color: #fff;
}

.dl--menu:nth-of-type(1) dt {
  background: #7ba88d; /* 春っぽい */
}

.dl--menu:nth-of-type(2) dt {
  background: #6f8fb8; /* 夏〜秋 */
}

.dl--menu:nth-of-type(3) dt {
  background: #a8885c; /* 冬（既存カラー） */
}

/* 内容 */
.dl--menu dd {
  margin: 0;
  padding: 20px;
}

/* リスト */
.dl--menu ul {
  margin: 0;
  padding: 0;
  list-style: none;
}

/* li */
.dl--menu li {
  margin-bottom: 10px;
}

/* リンク（ボタン風） */
.dl--menu a {
  display: block;
  padding: 10px 14px;
  border-radius: 0.25rem;
  text-decoration: none;
  color: #333;
  background: #f5f5f5;
  transition: .2s ease;
  font-size: 0.95rem;
}

/* hover */
.dl--menu a:hover {
  background: #e6e1d9;
  transform: translateX(4px);
}

/* タブレット */
@media (max-width: 1024px) {
  .dl--menu {
    width: calc(50% - 20px);
  }
}

/* スマホ */
@media (max-width: 768px) {
  .dl--menu {
    width: 100%;
    margin: 0 0 16px;
  }
}


/* よくある質問 */
section.dormitery.faq .section__container--flex{
	display:flex;
	gap:3rem;
	flex-wrap:wrap;
	margin:0 0 1rem;
}


section.dormitery.faq .flex__item:nth-child(1){
	width:calc(60% - 1.5rem);
}


section.dormitery.faq .flex__item:nth-child(2){
	width:calc(40% - 1.5rem);
}

@media screen and  (max-width:900px){
	section.dormitery.faq .section__container--flex{
	gap:1rem;
	}
	section.dormitery.faq .section__container--flex .flex__item{
		width:100%;
	}
}

.dl--faq {
  margin: 0 auto;
}


.dl--faq dt {
  position: relative;
  font-weight: 700;
  padding: 16px 16px 16px 40px;
  margin-top: 16px;
  background: #f5f5f5;
  border-radius: 8px;
  cursor: pointer;
}


.dl--faq dt::before {
  content: "Q";
  position: absolute;
  left: 14px;
  top: 50%;
  transform: translateY(-50%);
  font-weight: 700;
  color: #a8885c;
}


.dl--faq dd {
  margin: 0;
  padding: 16px 16px 20px 40px;
  line-height: 1.9;
  color: #333;
  position: relative;
}


.dl--faq dd::before {
  content: "A";
  position: absolute;
  left: 14px;
  top: 16px;
  font-weight: 700;
  color: #a8885c;
}


.dl--faq dt:first-child {
  margin-top: 0;
}


@media screen and (max-width:900px){
	.dl--faq dt::before{
		top:14px;
	    transform: translateY(-50%);
	}
	.dl--faq dt{
		padding-top:28px;
		padding-left:14px;
	}
	.dl--faq dd{
		padding-top:42px;
		padding-left:14px;
	}
}




/* 日課 */

.schedule-tabs__nav {
	display: flex;
	gap: 8px;
	margin: 0 0 24px;
	padding: 0;
	list-style: none;
}

.schedule-tabs__nav li {
	flex: 1;
}

.schedule-tabs__nav button {
	width: 100%;
	padding: 14px 10px;
	border: 1px solid #ddd;
	background: #fff;
	cursor: pointer;
	font-weight: 700;
	transition: .3s;
	color:#a8885c;
}

.schedule-tabs__nav button.is-active {
	background: #a8885c;
	border-color: #a8885c;
	color: #fff;
}

.schedule-tabs__content {
	display: none;
}

.schedule-tabs__content.is-active {
	display: block;
}

.schedule-tabs td:first-child {
	width: 140px;
	white-space: nowrap;
}

.schedule-tabs td p {
	margin-top: 8px;
	font-size: 12px;
	line-height: 1.6;
}

@media screen and (max-width: 900px) {

	.schedule-tabs__nav {
		gap: 0.25rem;
		margin-bottom: 0.25rem;
	}

	.schedule-tabs__nav button {
		padding: 10px 4px;
		font-size: 12px;
	}

	.schedule-tabs td:first-child {
		width: 110px;
	}

}



/* 寮生の声 */

section.dormitery.voice .voice__lead{
	font-family:'Noto Serif JP', serif;
	text-align:center;
	font-size:1.5rem;
	margin:0 0 2.5rem;
}


section.dormitery.voice .section__container--flex{
	display:flex;
	gap:3rem;
	flex-wrap:wrap;
}

section.dormitery.voice .section__container--flex.inverse{
	flex-direction:row-reverse;
}


section.dormitery.voice .flex__item:nth-child(1){
	width:calc(40% - 1.5rem);
}

section.dormitery.voice .flex__item:nth-child(1) img + img{
	display:block;
	margin-top:1rem;
}

section.dormitery.voice .flex__item:nth-child(2){
	width:calc(60% - 1.5rem);
}

@media screen and  (max-width:900px){
	section.dormitery.voice .section__container--flex{
	gap:1rem;
	}
	section.dormitery.voice .section__container--flex .flex__item{
		width:100%;
	}
}



/* ------------------------------------------------------------
 * 卒業生の方へ
 * ------------------------------------------------------------ */



section.contact {

}


/* 本文 */
section.contact .contact__inner {
  width: 600px;
	max-width:100%;
	margin: 0 auto;
  background: #fff;
  padding:2.25rem;
  border-radius: 0;
  line-height: 1.9;
  color: #333;
  box-shadow: 0 6px 20px rgba(0,0,0,0.05);
}

/* 強調 */
.contact__tel {
  font-size: 1.75rem;
  font-weight: 600;
  margin: 10px 0;
}

.contact__time {
  margin-top: 16px;
  padding-top: 16px;
  border-top: 1px solid #eee;
  font-size: 1.35rem;
}

/* 注意 */
.contact__note {
  margin-top: 16px;
  font-size: 0.85rem;
  color: #666;
}


/* ------------------------------------------------------------
 * 保護者の方へ
 * ------------------------------------------------------------ */
/* --------------------------------
   保護者ページ：スクールカウンセラーだより
   参考ページ寄せのシンプル版
--------------------------------- */

section.parents {
  margin-top: 40px;
}

/* リセット */
section.parents dl,
section.parents dt,
section.parents dd {
  margin: 0;
  padding: 0;
}

section.parents .section__title {
  margin-bottom: 28px;
}

/* 各学期ブロック
   → カードではなく、区切り線ベース */
section.parents .dl--letter {
  padding: 18px 0 20px;
  border-top: 1px solid #d8d3cc;
}

section.parents .dl--letter:last-of-type {
  border-bottom: 1px solid #d8d3cc;
}

/* 学期見出し
   → 装飾を強くしすぎない */
section.parents .dl--letter dt {
  margin-bottom: 10px;
  color: #3f3a36;
  font-size: 1rem;
  font-weight: 700;
  line-height: 1.6;
  letter-spacing: 0.04em;
}

/* dd の余計なズレ防止 */
section.parents .dl--letter dd {
  margin: 0;
}

/* 月リンク群
   → 参考ページのように素直に横並び */
section.parents .inner {
  display: flex;
  flex-wrap: wrap;
  gap: 8px 18px;
  align-items: center;
}

/* 月リンク
   → ボタン化しすぎず、文字リンク寄り */
section.parents .item {
  display: inline-block;
  color: #3f3a36;
  font-size: 0.95rem;
  font-weight: 500;
  line-height: 1.8;
  text-decoration: none;
  text-decoration-thickness: 1px;
  text-underline-offset: 0.14em;
  transition: color 0.2s ease, opacity 0.2s ease;
	border:1px solid #c1a98f;
	border-radius:100vh;
	padding:0.25rem 1rem;
}

section.parents .item:hover,
section.parents .item:focus-visible {
  color: #8f6a3a;
  opacity: 0.85;
}

/* 学期ごとのクラスは今回はほぼ使わない
   → 参考ページは見せ分けが強くないため */

/* SP */
@media (max-width: 768px) {
  section.parents {
    margin-top: 28px;
  }

  section.parents .section__title {
    margin-bottom: 20px;
  }

  section.parents .dl--letter {
    padding: 14px 0 16px;
  }

  section.parents .dl--letter dt {
    margin-bottom: 8px;
    font-size: 0.95rem;
  }

  section.parents .inner {
    gap: 6px 14px;
  }

  section.parents .item {
    font-size: 0.92rem;
  }
}

/* ------------------------------------------------------------
 * 交通アクセス
 * ------------------------------------------------------------ */
section.access#address {

}


section.access#address .access__box {
  display: block;
  width: min(720px, 100%);
  margin-right: auto;
  margin-left: auto;
  padding: 3.5rem 2.5rem;
  background: #f8f6f2;
  border-radius: 6px;
  position: relative;
}

section.access#address .access__box::before {
  content: "";
  position: absolute;
  top: 0rem;
  left: 50%;
  width: 60px;
  height: 2px;
  background: #a68a64;
  transform: translateX(-50%);
}

section.access#address .address__lead {

}

@media screen and (max-width: 900px) {
  section.access#address .access__box {
    padding: 1.5rem 1.25rem;
  }

  section.access#address .address__lead {
    font-size: 1rem;
  }
	
}

section.access#address .address__lead{
  line-height: 1.9;
  letter-spacing: 0.08em;
  color: #4A4642;
		font-family:'Noto Serif JP', serif;
	font-size:1.25rem;
	margin:0 0 1.5rem;
}

section.access#train .train__lead{
	font-family:'Noto Serif JP', serif;
	text-align:center;
	font-size:1.5rem;
	margin:0 0 1.5rem;
}

section.access#train .train__heading{
font-family:'Noto Serif JP', serif;
	text-align:center;
	font-size:1.15rem;
	margin:0 0 0.5rem;
}

section.access#train .section__container--flex{
	display:flex;
	flex-wrap:wrap;
	gap:3rem;
}

section.access#train .section__container--flex .flex__item{
	width:calc(50% - 1.5rem);
}

@media screen and (max-width:900px){
	section.access#train .section__container--flex{
	gap:1rem;
}

section.access#train .section__container--flex .flex__item{
	width:100%;
}
}


section.access#car .section__container--flex{
	display:flex;
	flex-wrap:wrap;
	gap:3rem;
}

section.access#car .section__container--flex .flex__item{
	width:calc(50% - 1.5rem);
	position:relative;
}


@media screen and (max-width:900px){
	section.access#car .section__container--flex{
	gap:1rem;
	}

	section.access#car .section__container--flex .flex__item{
		width:100%;
	}
}

section.access#car .car__heading{
font-family:'Noto Serif JP', serif;
	font-size:1.75rem;
	margin:0 0 0.75rem;
	color:#a68a64;
}

section.access#car .car__sub{
	font-size:1.1rem;
	margin:0 0 1rem;
	border:1px solid #ccc;
	background:#f5f5f5;
	padding:0.25rem 1.5rem;
	display:block;
	border-radius:0.25rem;
}

@media screen and (max-width:900px){
	section.access#map iframe{
		height:240px;
	}
}


section.access#contact .section__container--flex{
	display:flex;
	flex-wrap:wrap;
	gap:3rem;
}
 
section.access#contact .section__container--flex .flex__item{
	width:calc(50% - 1.5rem);
	position:relative;
	padding:3.5rem 3.5rem;
}


@media screen and (max-width:900px){
	section.access#contact .section__container--flex{
	gap:1rem;
	}
 
	section.access#contact .section__container--flex .flex__item{
		width:100%;
		padding:2rem;
	}
}

section.access#contact .contact__address{
	font-family:'Noto Serif JP', serif;
	font-size:1.25rem;
	margin:0 0 1.5rem;
}

section.access#contact .contact__tel{
	font-family:'Noto Serif JP', serif;
	font-size:1.25rem;
	margin:0 0 1.5rem;
	font-weight:400;
	letter-spacing:0.05em;
}

section.access#contact .contact__hour{
	border:1px solid #ccc;
	background:#f5f5f5;
	padding:1rem;
	border-radius:0.5rem;
	margin:0 0 0.5rem;
}

section.access#contact .access__hours--heading{
	font-family:'Noto Serif JP', serif;
	text-align:center;
	padding:0 0 0.5rem;
	border-bottom:1px solid #ccc;
	margin:0 0 0.5rem;
	font-size:1.25rem
}

section.access#contact .access__hours--list {
  display: grid;
  grid-template-columns: 5rem auto 5rem auto;
  gap: 0 1rem;
  align-items: center;
  font-size: 1.1rem;
}

/* dt固定幅 */
section.access#contact .access__hours--list dt {
  width: 5rem;
  font-weight: 500;
}

/* dd */
section.access#contact .access__hours--list dd {
  margin: 0;
}


/* =========================================
   Access / Train
========================================= */

section.access#train {

}

/* リード文 */
section.access#train .train__lead {
  margin-bottom: 2rem;
  font-size: 1.05rem;
  line-height: 1.9;
  letter-spacing: 0.05em;
  color: #4A4642;
}

/* レイアウト */
section.access#train .section__container--flex {
  display: flex;
  gap: 2rem;
  justify-content: center;
}

/* カード */
section.access#train .flex__item {
  width: min(360px, 100%);
  padding: 1.75rem 1.5rem;

  background: #f8f6f2;
  border-radius: 6px;
  position: relative;

  transition: transform .3s ease, box-shadow .3s ease;
}

/* ホバー */
section.access#train .flex__item:hover {
  transform: translateY(-4px);
  box-shadow: 0 12px 30px rgba(0,0,0,0.08);
}

/* 上ライン（統一デザイン） */
section.access#train .flex__item::before {
  content: "";
  position: absolute;
  top: 0;
  left: 50%;
  width: 50px;
  height: 2px;
  background: #a68a64;
  transform: translateX(-50%);
}

/* 見出し */
section.access#train .train__heading {
  margin-bottom: 1rem;
  font-weight: 600;
  letter-spacing: 0.06em;
  font-size: 1rem;
  color: #4A4642;
}

/* ボタン中央 */
section.access#train .button__container--center {
  text-align: center;
}

/* ボタン少しだけ調整 */
section.access#train .button--basic {
  display: inline-block;
  padding: 0.7rem 1.4rem;
  font-size: 0.9rem;
  letter-spacing: 0.05em;
}

@media screen and (max-width:900px){
	.button--basic  + .button--basic{
		margin:0.5rem 0;
	}
}

/* =========================================
   SP対応
========================================= */
@media screen and (max-width: 900px) {

  section.access#train .section__container--flex {
    flex-direction: column;
    gap: 1.5rem;
  }

  section.access#train .flex__item {
    width: 100%;
  }

  section.access#train .train__lead {
    margin-bottom: 1.5rem;
    font-size: 1rem;
  }

}




/* =========================================
   Access / Car
========================================= */

section.access#car {


}

section.access#car .section__container--flex {
  display: flex;
  gap: 2rem;
  justify-content: center;
  align-items: stretch;
}

section.access#car .flex__item {
  width: calc(50% - 1rem);
  padding: 1.75rem 1.5rem;
  background: #f8f6f2;
  border-radius: 6px;
  position: relative;
  text-align: left;
  transition: transform .3s ease, box-shadow .3s ease;
}

section.access#car .flex__item:hover {
  transform: translateY(-4px);
  box-shadow: 0 12px 30px rgba(0,0,0,0.08);
}

section.access#car .flex__item::before {
  content: "";
  position: absolute;
  top: 0;
  left: 50%;
  width: 50px;
  height: 2px;
  background: #a68a64;
  transform: translateX(-50%);
}

section.access#car .car__heading {
  margin-bottom: 0.35rem;
  font-weight: 600;
  letter-spacing: 0.06em;
  font-size: 1.5rem;
  color: #4A4642;
  text-align: center;
}

section.access#car .car__sub {
  margin-bottom: 1.25rem;
  font-size: 0.9rem;
  line-height: 1.7;
  color: rgba(74, 70, 66, 0.8);
  text-align: center;
}

section.access#car .ul--car{
  list-style: none;
  margin: 0;
  padding: 0;
}

section.access#car .ul--car li {
  position: relative;
  margin: 0;
  padding: 0.7rem 0 0.7rem 1.4rem;
  border-top: 1px solid rgba(0,0,0,0.06);
  line-height: 1.8;
  color: #4A4642;
}

section.access#car .ul--car li:first-child {
  border-top: none;
}

section.access#car .ul--car li::before {
  content: "";
  position: absolute;
  top: 1.2rem;
  left: 0;
  width: 7px;
  height: 7px;
  border-right: 1px solid #a68a64;
  border-bottom: 1px solid #a68a64;
  transform: rotate(-45deg);
}

section.access#car .ul--car li:last-child {
  font-weight: 600;
  color: #a68a64;
}

@media screen and (max-width: 900px) {
  section.access#car .section__container--flex {
    flex-direction: column;
    gap: 1.5rem;
  }

  section.access#car .flex__item {
    width: 100%;
  }
}



/* =========================================
   Access / Contact
========================================= */

section.access#contact {

}

section.access#contact .section__container--flex {
  display: flex;
  gap: 2rem;
  justify-content: center;
  align-items: stretch;
}

/* カード */
section.access#contact .flex__item {
  width: calc(50% - 1rem);
  padding: 2rem 2rem;
  background: #f8f6f2;
  border-radius: 6px;
  position: relative;
  text-align: left;

  transition: transform .3s ease, box-shadow .3s ease;
}

section.access#contact .flex__item:hover {
  transform: translateY(-4px);
  box-shadow: 0 12px 30px rgba(0,0,0,0.08);
}

/* 上ライン（統一） */
section.access#contact .flex__item::before {
  content: "";
  position: absolute;
  top: 0;
  left: 50%;
  width: 50px;
  height: 2px;
  background: #a68a64;
  transform: translateX(-50%);
}

/* 住所 */
section.access#contact .contact__address {
  margin-bottom: 1.2rem;
  font-size: 1.35rem;
  line-height: 1.5;
  letter-spacing: 0.05em;
  color: #4A4642;
}

/* TEL */
section.access#contact .contact__tel {
  font-size: 1rem;
  line-height: 1.8;
}

section.access#contact .contact__tel a,
section.access#contact .contact__tel span{
  font-weight: 600;
  font-size: 1.35rem;
  letter-spacing: 0.05em;
  color: #4A4642;
}

/* TEL強調 */
section.access#contact .contact__tel a:hover {
  color: #a68a64;
}

/* 受付時間 */
section.access#contact .access__hours--heading {
  margin-bottom: 0.75rem;
  font-weight: 600;
  letter-spacing: 0.06em;
  text-align: center;
}

/* dl */
section.access#contact .access__hours--list {
  display: grid;
  grid-template-columns: auto 1fr;
  gap: 0.4rem 1rem;
  margin: 0;
  padding: 0;
}

section.access#contact .access__hours--list dt {
  font-weight: 600;
  color: #4A4642;
}

section.access#contact .access__hours--list dd {
  margin: 0;
}

/* 注釈 */
section.access#contact .access__note {
  margin-top: 1rem;
  font-size: 0.85rem;
  color: rgba(74, 70, 66, 0.7);
}

/* =========================================
   SP
========================================= */
@media screen and (max-width: 900px) {

  section.access#contact .section__container--flex {
    flex-direction: column;
    gap: 1.5rem;
  }

  section.access#contact .flex__item {
    width: 100%;
  }

}



/* ------------------------------------------------------------
 * 資料請求
 * ------------------------------------------------------------ */

.document__lead{
	color:#c00;
	margin:0 0 1rem;
}

/* =========================
   テーブル全体
========================= */
.docu-form-table {
  width: 100%;
  border-collapse: collapse;
  border-top: 1px solid #d9d9d9;
  margin: 0 0 32px;
  background: #fff;
}

.docu-form-table th,
.docu-form-table td {
  border-bottom: 1px solid #d9d9d9;
  padding: 20px;
  vertical-align: top;
  font-size: 15px;
  line-height: 1.8;
  box-sizing: border-box;
}

.docu-form-table th {
  width: 28%;
  background: #f7f7f7;
  font-weight: 700;
  color: #222;
}

.docu-form-table td {
  width: 72%;
}

/* =========================
   入力系
========================= */
.docu-form-table input,
.docu-form-table select,
.docu-form-table textarea {
	width: 100%;
	padding: 12px 14px;
  border: 1px solid #cfcfcf;
  border-radius: 4px;
  font-size: 15px;
  transition: .25s;
}

.docu-form-table input[type="radio"]{
	width:auto!important;
}

.docu-form-table input:focus,
.docu-form-table select:focus,
.docu-form-table textarea:focus {
  outline: none;
  border-color: #1f5fa7;
  box-shadow: 0 0 0 3px rgba(31, 95, 167, 0.12);
}

/* =========================
   ▼ここが今回の主役
   資料欄 横並び
========================= */
.docu-form-table .docu-wrap {
  display: flex;
  gap: 16px;
  flex-wrap: wrap;
}

.docu-form-table .docu-item {
  flex: 1 1 260px;
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: 16px 18px;
  border: 1px solid #e3e3e3;
  background: #fafafa;
  border-radius: 8px;
  transition: .2s;
}

.docu-form-table .docu-item:hover {
  border-color: #d0d0d0;
  background: #f5f5f5;
}

/* 左側（タイトル） */
.docu-form-table .docu-left {
  display: flex;
  flex-direction: column;
  gap: 4px;
}

.docu-form-table .docu-left strong {
  font-size: 15px;
  color: #222;
}

.docu-form-table .docu-left .price {
  font-size: 13px;
  color: #777;
}

/* 右側（数量） */
.docu-form-table .docu-right {
  display: flex;
  align-items: center;
  gap: 8px;
}

.docu-form-table .docu-right select {
  width: 80px;
  padding: 8px 10px;
}

.docu-material-table {
  width: 100%;
  border-collapse: collapse;
}

.docu-material-table th,
.docu-material-table td {
  padding: 0.75rem;
  border: 1px solid #ddd;
  text-align: left;
  vertical-align: middle;
	white-space:nowrap;
}

.docu-material-table th {
  background: #f5f2ed;
  font-weight: 600;
}

.docu-material-table select {
  width: auto;
  min-width: 70px;
}

@media screen and (max-width: 768px) {
  .docu-material-table th,
  .docu-material-table td {
    padding: 0.5rem;
    font-size: 0.9rem;
  }
}

/* =========================
   その他
========================= */
.required {
  color: #c0392b;
  font-size: 0.9em;
  margin-left: 0.3em;
}

.form-note {
  margin-top: 10px;
  font-size: 13px;
  color: #666;
	text-align:center;
}
.wpcf7-spinner{
	display:block;
}

/* 送信ボタン */
.form-submit {
  text-align: center;
}

.form-submit input {
  min-width: 240px;
  padding: 16px 32px;
  border-radius: 999px;
  border: none;
  background: #1f5fa7;
  color: #fff;
  font-weight: 700;
  cursor: pointer;
  transition: .2s;
}

.form-submit input:hover {
  opacity: 0.9;
  transform: translateY(-1px);
}

/* =========================
   レスポンシブ
========================= */
@media (max-width: 767px) {

  .docu-form-table,
  .docu-form-table tr,
  .docu-form-table th,
  .docu-form-table td {
    display: block;
    width: 100%;
  }

  .docu-form-table th {
    border-bottom: none;
    padding-bottom: 8px;
  }

  .docu-form-table td {
    padding-top: 0;
  }

  /* SPは縦並び */
  .docu-form-table .docu-wrap {
    flex-direction: column;
  }

  .form-submit input {
    width: 100%;
  }
}

/* ------------------------------------------------------
   サイトマップ
------------------------------------------------------ */

section.sitemap .menu__container{
	display:flex;
	flex-wrap:wrap;
	display:flex;
	flex-wrap:wrap;
	gap:2rem;
	margin:0;
	padding:0;
	list-style:none;
}



section.sitemap .menu__container .menu__item{
	width:calc(50% - 1rem);
}

@media screen and (max-width:900px){
	section.sitemap .menu__container{
		gap:0.5rem;
	}
	section.sitemap .menu__container .menu__item{
		width:calc(50% - 0.25rem);
	}
}


section.sitemap .menu__container .menu__item,
section.sitemap .menu__container .menu__item a{
	color:#4A4642;
	line-height:1.5;
	font-size:0.85rem;
}


section.sitemap .menu__container .menu__item .menu__item--title{
	font-weight:bold;
	border-bottom:1px solid rgba(74, 70, 66, 0.2);
	padding:0 0 0.25rem;
	margin:0 0 0.75rem;
	font-size:1.5rem;
}

section.sitemap .menu__container .menu__item ul{
	list-style-type:none;
	margin:0 0 2.5rem;
	padding:0;
}


section.sitemap .menu__container .menu__item ul li ul{
	padding:0.5rem 0 0 1rem!important;
}
section.sitemap .menu__container .menu__item ul li{
	font-size:1.1rem;
	margin:0 0 0.5rem
}




/* --------------------------------------------------
 * お知らせ
 * -------------------------------------------------- */
main.archive-post{
	padding:7.5rem 0 4.5rem;
}

.archive-post__header {
  margin: 0 0 2rem;
}

.archive-post__title {
  margin: 0;
  font-size: 2.25rem;
  font-weight: 400;
  line-height: 1.4;
  letter-spacing: 0.08em;
  color: #111;
	font-family:'Noto Serif JP', serif;
}

.post-card__title{
	font-weight:600;
	font-size:1.15rem;
}

.archive-post__categories {
  margin: 0 0 2.5rem;
}

.archive-post__category-list {
  display: flex;
  flex-wrap: wrap;
  gap: 10px;
  margin: 0;
  padding: 0;
  list-style: none;
}

.archive-post__category-item {
  margin: 0;
}

.archive-post__category-item a {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-height: 42px;
  padding: 0.75rem 1.2rem;
  border: 1px solid rgba(0, 0, 0, 0.1);
  border-radius: 999px;
  background: #fff;
  color: #4A4642;
  font-size: 0.95rem;
  line-height: 1.2;
  letter-spacing: 0.04em;
  transition:
    background-color 0.3s ease,
    border-color 0.3s ease,
    color 0.3s ease,
    transform 0.3s ease;
}

.archive-post__category-item a:hover {
  background: #f0ece6;
  border-color: rgba(176, 154, 134, 0.55);
  color: #4A4642;
  transform: translateY(-1px);
}

.archive-post__category-item.is-current a {
  background: #111;
  border-color: #111;
  color: #fff;
}

.archive-post__pagination {
  margin-top: 3rem;
}

.archive-post__pagination .page-numbers {
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
  gap: 10px;
  margin: 0;
  padding: 0;
  list-style: none;
}

.archive-post__pagination .page-numbers li {
  margin: 0;
  list-style: none;
}

.archive-post__pagination .page-numbers a,
.archive-post__pagination .page-numbers span {
  display: flex;
  align-items: center;
  justify-content: center;
  min-width: 44px;
  height: 44px;
  padding: 0 0.9rem;
  border: 1px solid rgba(0, 0, 0, 0.1);
  border-radius: 999px;
  background: #fff;
  color: #4A4642;
  font-size: 0.95rem;
  line-height: 1;
  text-decoration: none;
  transition:
    background-color 0.3s ease,
    border-color 0.3s ease,
    color 0.3s ease,
    transform 0.3s ease;
}

.archive-post__pagination .page-numbers a:hover {
  background: #f0ece6;
  border-color: rgba(176, 154, 134, 0.55);
  color: #4A4642;
  transform: translateY(-1px);
}

.archive-post__pagination .page-numbers .current {
  background: #111;
  border-color: #111;
  color: #fff;
}

.archive-post__pagination .page-numbers .dots {
  border: none;
  background: transparent;
  min-width: auto;
  height: 44px;
  padding: 0 0.2rem;
}

@media (max-width: 767px) {
  .archive-post__header {
    margin-bottom: 1.5rem;
  }

  .archive-post__title {
    font-size: 2rem;
    letter-spacing: 0.05em;
  }

  .archive-post__categories {
    margin-bottom: 2rem;
  }

  .archive-post__category-list {
    gap: 8px;
  }

  .archive-post__category-item a {
    min-height: 38px;
    padding: 0.65rem 1rem;
    font-size: 0.88rem;
  }

  .archive-post__pagination {
    margin-top: 2.4rem;
  }

  .archive-post__pagination .page-numbers {
    gap: 8px;
  }

  .archive-post__pagination .page-numbers a,
  .archive-post__pagination .page-numbers span {
    min-width: 40px;
    height: 40px;
    font-size: 0.88rem;
  }
}

.archive-post__category-item a {
  transition: all 0.3s ease;
}

/* news */
.post-card.cat-information .post-card__cat,
.archive-post__category-item.cat-information a {
  background: #C65A5A;
  border-color: #C65A5A;
  color: #fff;
}

/* blog */
.post-card.cat-blog .post-card__cat,
.archive-post__category-item.cat-blog a {
  background: #3D78C2;
  border-color: #3D78C2;
  color: #fff;
}

/* event */
.post-card.cat-event .post-card__cat,
.archive-post__category-item.cat-events a {
  background: #7A8B5A;
  border-color: #7A8B5A;
  color: #fff;
}

/* column */
.post-card.cat-column .post-card__cat,
.archive-post__category-item.cat-column a {
  background: #a68a64;
  border-color: #a68a64;
  color: #fff;
}

/* students */
.post-card.cat-column .post-card__cat,
.archive-post__category-item.cat-students a {
  background: #C7A63A;
  border-color: #C7A63A;
  color: #fff;
}


/* dormitory */
.post-card.cat-column .post-card__cat,
.archive-post__category-item.cat-dormitory a {
  background: #3D78C2;
  border-color: #3D78C2;
  color: #fff;
}


/* other */
.post-card.cat-column .post-card__cat,
.archive-post__category-item.cat-others a {
  background: #6B58A8;
  border-color: #6B58A8;
  color: #fff;
}


.archive-post__list {
  list-style: none;
  margin: 0;
  padding: 0;
}

.archive-post__item {
  border-bottom: 1px solid rgba(0,0,0,0.08);
}

.archive-post__link {
  display: flex;
  align-items: center;
  gap: 16px;
  padding: 14px 0;
  color: #4A4642;
  text-decoration: none;
  transition: opacity 0.3s ease;
}

.archive-post__link:hover {
  opacity: 0.7;
}

.archive-post__date {
  min-width: 90px;
  font-size: 0.9rem;
  color: #777;
}

.archive-post__cat {
  font-size: 0.8rem;
  padding: 2px 8px;
  background: #111;
  color: #fff;
}

.archive-post__title {
  flex: 1;
  line-height: 1.6;
}


/* 年度別 プルダウン */

.archive-post__filter {
  margin: 24px 0 32px;
}

.archive-post__filter-form {
  display: flex;
  align-items: center;
	justify-content:flex-end;
  gap: 12px;
  flex-wrap: wrap;
}

.archive-post__filter-label {
  font-weight: 700;
}

.archive-post__filter-select {
  min-width: 220px;
  height: 44px;
  padding: 0 14px;
  border: 1px solid #ccc;
  background: #fff;
  border-radius: 6px;
}

/* --------------------------------------------------
 * 投稿ページ
 * -------------------------------------------------- */
main.single-post{
	padding:7.5rem 0 4.5rem;
}



.single-post__article {
  max-width: 860px;
  margin: 0 auto;
  padding: 4rem 0;
}

.single-post__header {
  margin-bottom: 2rem;
}

.single-post__meta {
  display: flex;
  align-items: center;
  gap: 12px;
  margin: 0 0 1rem;
  color: #777;
  font-size: 0.95rem;
}

.single-post__cat {
  display: inline-block;
  padding: 2px 8px;
  background: #111;
  color: #fff;
  font-size: 0.8rem;
  line-height: 1.4;
}

.single-post__title {
  margin: 0;
  font-size: 2.25rem;
  line-height: 1.4;
  color: #111;
	font-family:'Noto Serif JP', serif;
	font-weight:500;
}

.single-post__thumbnail {
  margin: 0 0 2rem;
}

.single-post__thumbnail img {
  display: block;
  width: 100%;
  height: auto;
}

.single-post__content {
  line-height: 2;
}

.single-post__content > *:first-child {
  margin-top: 0;
}

.single-post__nav {
  display: grid;
  grid-template-columns: 1fr auto 1fr;
  gap: 16px;
  align-items: center;
  max-width: 860px;
  margin: 3rem auto 0;
  padding-top: 2rem;
  border-top: 1px solid rgba(0,0,0,0.08);
}

.single-post__nav-prev {
  text-align: left;
}

.single-post__nav-back {
  text-align: center;
}

.single-post__nav-next {
  text-align: right;
}

.single-post__nav a {
  color: #4A4642;
  text-decoration: none;
}

@media (max-width: 767px) {
  .single-post__article {
    padding: 2.5rem 0;
  }

  .single-post__nav {
    grid-template-columns: 1fr;
    text-align: center;
  }

  .single-post__nav-prev,
  .single-post__nav-back,
  .single-post__nav-next {
    text-align: center;
  }
}














/* =========================================
   Dormitory Intro
   家庭的 / やさしい / あたたかい
   対象：body.page-id-1130
========================================= */

body.page-id-1130 section.dormitery {
  position: relative;
  padding: 7.5rem 3.5rem;
}

body.page-id-1130 section.dormitery.intro + section.dormitery.intro {

}

body.page-id-1130 section.dormitery.intro::before {
  content: "";
  position: absolute;
  inset: 1.5rem 0 0 0;
  background: linear-gradient(180deg, #fbfaf7 0%, #f6f1ea 100%);
  border-radius: 24px;
  z-index: 0;
}

body.page-id-1130 section.dormitery.intro > * {
  position: relative;
  z-index: 1;
}

/* -----------------------------------------
   Title
----------------------------------------- */

body.page-id-1130 section.dormitery.intro > .section__title {

}

body.page-id-1130 section.dormitery#intro01 > h3.section__title {
  margin-bottom: 3.5rem;
}


body.page-id-1130 section.dormitery.intro > h4.section__title {
  margin: 0 auto 2.2rem;
  font-size: 1.75rem;
  font-weight: 500;
  line-height: 1.8;
  letter-spacing: 0.04em;
  color: #6b655f;
}

body.page-id-1130 section.dormitery#intro04 > h5.section__title {
  margin: 0 auto 1.5rem;
  font-size: 1.35rem;
  font-weight: 600;
  letter-spacing: 0.08em;
  color: #8b7660;
}

/* -----------------------------------------
   Flex Layout
----------------------------------------- */

body.page-id-1130 section.dormitery.intro .section__container--flex {
  display: flex;
  align-items: center;
  gap: 3rem;
}

body.page-id-1130 section.dormitery.intro .section__container--flex > .flex__item:first-child {
  width: 42%;
  position: relative;
}

body.page-id-1130 section.dormitery.intro .section__container--flex > .flex__item:last-child {
  width: 58%;
}

/* -----------------------------------------
   Image area
----------------------------------------- */

body.page-id-1130 section.dormitery.intro .section__container--flex > .flex__item:first-child::before {
  content: "";
  position: absolute;
  top: 18px;
  left: 18px;
  width: 100%;
  height: 100%;
  border-radius: 20px;
  background: rgba(230, 225, 217, 0.9);
  z-index: 0;
}

body.page-id-1130 section.dormitery.intro .section__container--flex > .flex__item:first-child img {
  position: relative;
  z-index: 1;
  width: 100%;
  display: block;
  border-radius: 20px;
  box-shadow: 0 16px 36px rgba(74, 70, 66, 0.12);
}

/* -----------------------------------------
   Text card
----------------------------------------- */

body.page-id-1130 section.dormitery#intro01 .section__container--flex > .flex__item:last-child,
body.page-id-1130 section.dormitery#intro02 .section__container--flex > .flex__item:last-child,
body.page-id-1130 section.dormitery#intro04 .section__container--flex > .flex__item:last-child {
  position: relative;
  padding: 2.2rem 2.4rem;
  background: rgba(255, 255, 255, 0.86);
  border: 1px solid rgba(166, 138, 100, 0.16);
  border-radius: 20px;
  box-shadow: 0 14px 34px rgba(74, 70, 66, 0.08);
}



body.page-id-1130 section.dormitery#intro01 .section__container--flex > .flex__item:last-child::after,
body.page-id-1130 section.dormitery#intro02 .section__container--flex > .flex__item:last-child::after {
  content: "Dormitory";
  position: absolute;
  top: -12px;
  right: 20px;
  padding: 0.22rem 0.7rem;
  border-radius: 999px;
  background: #f3ece3;
  border: 1px solid rgba(166, 138, 100, 0.14);
  color: #8b7660;
  font-size: 0.72rem;
  letter-spacing: 0.14em;
}

/* -----------------------------------------
   Paragraphs
----------------------------------------- */

body.page-id-1130 section.dormitery.intro p {
  margin: 0 0 1.2rem;
  font-size: 0.97rem;
  line-height: 2.1;
  letter-spacing: 0.04em;
  color: #4A4642;
}

body.page-id-1130 section.dormitery.intro p:last-child {
  margin-bottom: 0;
}

body.page-id-1130 section.dormitery#intro01 p:first-of-type::first-letter,
body.page-id-1130 section.dormitery#intro02 p:first-of-type::first-letter,
body.page-id-1130 section.dormitery#intro03 > div::first-letter {
  font-size: 1.35em;
  font-weight: 600;
  color: #8f7552;
}

/* -----------------------------------------
   intro03
----------------------------------------- */

body.page-id-1130 section.dormitery#intro03 > div {
  position: relative;
  max-width: 920px;
  margin: 0 auto;
  padding: 2.2rem 2.4rem;
  background: rgba(255, 255, 255, 0.86);
  border: 1px solid rgba(166, 138, 100, 0.16);
  border-radius: 20px;
  box-shadow: 0 14px 34px rgba(74, 70, 66, 0.08);
  font-size: 0.97rem;
  line-height: 2.1;
  letter-spacing: 0.04em;
  color: #4A4642;
}

body.page-id-1130 section.dormitery#intro03 > div::before {
  content: "";
  position: absolute;
  top: 0;
  left: 28px;
  width: 58px;
  height: 3px;
  border-radius: 999px;
  background: linear-gradient(90deg, #ceb899 0%, #a68a64 100%);
}

body.page-id-1130 section.dormitery#intro03 > div::after {
  content: "";
  position: absolute;
  right: 24px;
  bottom: 18px;
  width: 92px;
  height: 92px;
  border-radius: 50%;
  background: radial-gradient(circle, rgba(230,225,217,0.75) 0%, rgba(230,225,217,0) 72%);
  pointer-events: none;
}

/* -----------------------------------------
   intro04 table
----------------------------------------- */

body.page-id-1130 section.dormitery#intro04 .table--basic {
  width: 100%;
  border-collapse: separate;
  border-spacing: 0;
  background: transparent;
	border-width:0px;
	margin:0;
}
body.page-id-1130 section.dormitery#intro04 .table--basic td,
body.page-id-1130 section.dormitery#intro04 .table--basic  th{
	border-width:0px;
}

body.page-id-1130 section.dormitery#intro04 .table--basic tbody {
  display: block;
}

body.page-id-1130 section.dormitery#intro04 .table--basic tr {
  display: flex;
  align-items: center;
  margin: 0 0 0.8rem;
  background: #fff;
  border: 1px solid rgba(166, 138, 100, 0.14);
  border-radius: 14px;
  overflow: hidden;
  box-shadow: 0 8px 20px rgba(74, 70, 66, 0.05);
}

body.page-id-1130 section.dormitery#intro04 .table--basic tr:last-child {
  margin-bottom: 0;
}

body.page-id-1130 section.dormitery#intro04 .table--basic th,
body.page-id-1130 section.dormitery#intro04 .table--basic td {
  padding: 1rem 1.2rem;
  border: none;
  font-size: 0.96rem;
  color: #4A4642;
}

body.page-id-1130 section.dormitery#intro04 .table--basic th {
  width: 48%;
  background: #f3ece3;
  font-weight: 600;
  color: #6b655f;
}

body.page-id-1130 section.dormitery#intro04 .table--basic td {
  width: 52%;
  background: #fff;
}

body.page-id-1130 section.dormitery#intro04 .table--basic th.large {
  font-size: 1rem;
}

/* -----------------------------------------
   gentle decorative accents
----------------------------------------- */

body.page-id-1130 section.dormitery#intro01::after,
body.page-id-1130 section.dormitery#intro02::after,
body.page-id-1130 section.dormitery#intro04::after {
  content: "";
  position: absolute;
  top: 1.2rem;
  right: -70px;
  width: 240px;
  height: 240px;
  border-radius: 50%;
  background: radial-gradient(circle, rgba(230,225,217,0.75) 0%, rgba(230,225,217,0) 70%);
  pointer-events: none;
  z-index: 0;
}

body.page-id-1130 section.dormitery#intro02::before {
  background: linear-gradient(180deg, #faf8f4 0%, #f2ece4 100%);
}

body.page-id-1130 section.dormitery#intro03::before {
  background: linear-gradient(180deg, #fbfaf7 0%, #f5efe7 100%);
}

body.page-id-1130 section.dormitery#intro04::before {
  background: linear-gradient(180deg, #faf8f4 0%, #f3eee7 100%);
}

/* -----------------------------------------
   responsive
----------------------------------------- */

@media screen and (max-width: 900px) {
  body.page-id-1130 section.dormitery.intro {
    padding: 3rem 0;
  }

  body.page-id-1130 section.dormitery.intro::before {
    inset: 1rem 0 0 0;
    border-radius: 18px;
  }


  body.page-id-1130 section.dormitery.intro .section__container--flex {
    flex-direction: column;
    gap: 1.5rem;
  }

  body.page-id-1130 section.dormitery.intro .section__container--flex > .flex__item:first-child,
  body.page-id-1130 section.dormitery.intro .section__container--flex > .flex__item:last-child {
    width: 100%;
  }

  body.page-id-1130 section.dormitery.intro .section__container--flex > .flex__item:first-child::before {
    top: 12px;
    left: 12px;
    border-radius: 14px;
  }

  body.page-id-1130 section.dormitery.intro .section__container--flex > .flex__item:first-child img,
  body.page-id-1130 section.dormitery#intro01 .section__container--flex > .flex__item:last-child,
  body.page-id-1130 section.dormitery#intro02 .section__container--flex > .flex__item:last-child,
  body.page-id-1130 section.dormitery#intro04 .section__container--flex > .flex__item:last-child,
  body.page-id-1130 section.dormitery#intro03 > div {
    border-radius: 14px;
  }

  body.page-id-1130 section.dormitery#intro01 .section__container--flex > .flex__item:last-child,
  body.page-id-1130 section.dormitery#intro02 .section__container--flex > .flex__item:last-child,
  body.page-id-1130 section.dormitery#intro04 .section__container--flex > .flex__item:last-child,
  body.page-id-1130 section.dormitery#intro03 > div {
    padding: 1.5rem 1.2rem;
  }

  body.page-id-1130 section.dormitery#intro01 .section__container--flex > .flex__item:last-child::after,
  body.page-id-1130 section.dormitery#intro02 .section__container--flex > .flex__item:last-child::after {
    top: -10px;
    right: 14px;
    font-size: 0.68rem;
  }

  body.page-id-1130 section.dormitery#intro04 .table--basic tr {
    flex-direction: column;
    align-items: stretch;
  }

  body.page-id-1130 section.dormitery#intro04 .table--basic th,
  body.page-id-1130 section.dormitery#intro04 .table--basic td {
    width: 100%;
  }

  body.page-id-1130 section.dormitery#intro04 .table--basic th {
    border-bottom: 1px solid rgba(166, 138, 100, 0.1);
  }
}



body.page-id-1130 section.dormitery.intro .section__container--flex{
	flex-wrap:nowrap;
}