@charset "utf-8";
/* CSS Document */

/* 追加css分　*/
* {
	max-width:100%;
	
}
html, body { 
	box-sizing: border-box;
	padding:0;
	margin:0;
  width: 100%; /* bodyに100%指定 */
  overflow-x: hidden; /* 横スクロールバーの表示を制御 */
  line-height: 1.8;
	font-family: "Noto Sans JP", "游ゴシック体", YuGothic, "Hiragino Kaku Gothic ProN", "メイリオ", Meiryo, sans-serif !important;
	text-align: justify;
	text-justify: inter-ideograph;
  font-size: clamp(14px, 2vw, 16px);
}

/* 見出しだけ明朝体（高級感を演出） */
h1, h2, h3, h4, h5, h6,
.section-title,
.hero-caption__title {
  font-weight: 700;
  letter-spacing: 0.01em;
}
h2 {
	font-size:clamp(24px, 2vw, 30px) !important;
}
.sec-title {
	color:#1c2e63;
}
.h3-article {
	font-size:clamp(19px, 2vw, 25px) !important;
	color:#1c2e63 !important;
	border-bottom:#d8cf5d 2px solid !important;
	padding-left: 55px; 
	padding-bottom:3px !important;
}
.h3-article::before {
  content: "";
  display: inline-block;
  width: 45px;
  height: 40px;
  margin-right: 8px; /* テキストとの間隔 */
  vertical-align: middle; /* テキストと縦位置を揃える */
  background: url('assets/h3-L.png') no-repeat center center;
  background-size: contain;
}
h4 {
	font-size:clamp(16px, 2vw, 21px) !important;
	color:#1c2e63 !important;
	border-bottom:#1c2e63 1px solid !important;
	padding-bottom:3px !important;
	margin-bottom:15px !important;
}
/* 画像・動画が画面からはみ出さないように */
img, video, iframe {
  max-width: 100%;
  height: auto;
  display: block;
}

/* 上段を横並び・上下中央に */
/* ========== ヘッダー（PC既定） ========== */
.primary-header .container{
  display:flex; align-items:center; justify-content:space-between;
}
.primary-header .primary-header-inner{
  display:flex; align-items:center; gap:14px; width:100%;
}
/* ロゴの余白を詰める（右・下） */
.primary-header .site-branding{ margin:0; padding:4px 0; line-height:0; }
.primary-header .site-branding img{ display:block; height:auto; max-height:66px; }

/* PCではロゴ右に表示、SP用は隠す */
.lang-switch--pc{ display:flex; gap:12px; margin-left:auto; }
.lang-switch--sp{ display:none; }


/* ========== 共通（ボタン見た目） ========== */
.lang-switch { align-items: center; }
.lang-switch .lang-btn{
  display:inline-flex; align-items:center; justify-content:center;
  padding:.5rem .9rem; border:1px solid currentColor; border-radius:6px;
  font-weight:600; font-size:1.1rem; line-height:1; text-decoration:none;
}
.lang-switch .lang-btn.is-active,
.lang-switch .lang-btn[aria-current="true"]{
  background-color: #F2F0E2 !important;
  opacity: 1 !important;
}
.lang-switch .lang-btn:hover {
  opacity: 1;
}



/* ========== ナビ（ゴールド帯・重なり防止） ========== */
#site-navigation{
  position:relative; z-index:30;
  background:#e8e19a; box-shadow:0 1px 0 rgba(0,0,0,.06);
}
#site-navigation .container{
  display: flex;
    justify-content: center; /* 中央寄せ */
    align-items: center;
	gap:12px; 
	min-height:52px;
}

#site-navigation .navigation-bar-toggle { display:none !important; z-index:40; }
/* 入力フォーム（検索やテキストボックス）を横幅100%に */
input, select, textarea, button {
  max-width: 100%;
  box-sizing: border-box;
}

/* レイアウト崩れ防止（ボックスのpaddingとwidthを一緒に計算） */
*, *::before, *::after {
  box-sizing: border-box;
}


a:hover, button:hover {
	opacity: 0.7;
}
iframe {
	min-height:350px;
}
.bn-pc-only {
	display:block;
}
.bn-sp-only {
	display: none;
}
.pc-only{display:block;}
.mobile-only{display:none;}

.tal {
	text-align: left;
}
.tar {
	text-align: right;
}
.tac {
	text-align: center;
}
.mt-s { margin-top:.5rem; }
.pdb-20 {
	padding-bottom:20px;
}

.wp-block-list li {
	margin-bottom:20px;
}
/* タイル化防止＆フィット */
.page-cover,
.page-cover.has-image,
.page-cover.page-cover--large,
.page-cover[style*="background-image"] {
  background-size: cover !important;
  background-repeat: no-repeat !important;
  background-position: center center !important;
}

/* 少し暗く */
.page-cover:before {
  content:"";
  position:absolute;
  inset:0;
  background: rgba(0,0,0,.35);
  pointer-events:none;
}

/* タイトルは白 */
.page-cover .page-title,
.page-cover .cover-wrapper { color:#fff; }

/* 高さ（必要なら調整） */
.page-cover.page-cover--large { min-height: 20vh; position: relative; }

/* セカンダリーメニュー（グローバルナビ）を中央揃え */
#site-navigation .secondary.nav-menu {
  display: flex;
  justify-content: center; /* 水平中央揃え */
}

#site-navigation .secondary.nav-menu ul {
  display: flex;
  justify-content: center;
  margin: 0 auto;
  padding: 0;
  list-style: none;
}

#site-navigation .secondary.nav-menu ul li {
  margin: 0 20px; 
	font-size:clamp(15px, 2.5vw, 18px);
}
#site-navigation .secondary.nav-menu ul li a {
  font-weight: 500;
  letter-spacing: 0.08em; /* 少し広げる */

}
/*各ページ用CSS*/
.school-hero { margin-bottom: 1rem; }
.school-meta-badges { margin:.5rem 0 1rem; display:flex; flex-wrap:wrap; gap:.5rem; }
.school-meta-badges .badge { background:#eef3ff; color:#2a4; padding:.25rem .5rem; border-radius:.5rem; font-size:.875rem; }
.school-cta { display:flex; gap:.5rem; margin: .5rem 0 1rem; }
.school-main .block { margin: 1.25rem 0; }
.school-main .two-col { display:grid; grid-template-columns: 1fr 1fr; gap:1rem; }
.btn { display:inline-block; padding:.5rem .75rem; border-radius:.4rem; text-decoration:none; border:1px solid #ddd; }
.btn-primary { background:#0052cc; color:#fff; border-color:#0052cc; }
.btn-secondary { background:#fff; color:#333; }
/* News 側 */
p.link-margin > a {
  position: relative;
  padding-left: 1.1em; /* 余白 */
}
p.link-margin > a::before {
  content: "";
  position: absolute;
  left: 0; top: 0.2em;
  border-left: .6em solid #b59d0d;       /* ゴールドの三角 */
  border-top: .35em solid transparent;
  border-bottom: .35em solid transparent;
}

/* ===== Top: Quick Search ===== */

/* コンテナは左右中央・幅可変だけにする（rightやpositionは外す） */
.home-quick-search {
  margin: 50px auto 0;
  width: min(1100px, 100%);
}

/* カード内の並び */
.school-quick-search {
  max-width: 1100px;
  margin: 0 auto;
  text-align: center;
	margin-top:30px !important;
}

/* グリッド：PC=4列 / TB横=3列 / TB縦=2列 / SP=1列 */
.school-quick-search .sqs-row {
  display: grid;
  grid-template-columns: repeat(5, minmax(0, 1fr));
  gap: .75rem;
}

/* ラベルと項目の基本 */
.school-quick-search .sqs-field { margin-bottom: .75rem; width: 100%; }
.school-quick-search label { display:block; margin-bottom:.35rem; font-size:.95rem; color:#374151; }

/* Selectの見た目統一（100%幅・矢印内製） */
.school-quick-search select {
  -webkit-appearance: none; -moz-appearance: none; appearance: none;
  display: block;
  width: 100%;
  box-sizing: border-box;
  height: 44px; line-height: 44px;
  padding: 0 2.4rem 0 .9rem;
  border: 0;
  border-top: 1px solid #d8cf5d;
  border-bottom: 1px solid #d8cf5d;
  border-radius: 0;
  background: #fff url("data:image/svg+xml;utf8,\
<svg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 24 24' fill='none' stroke='%23666' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'>\
<polyline points='6 9 12 15 18 9'/></svg>") no-repeat right .8rem center;
  background-size: 12px 12px;
  font-size: 14px;
}
.school-quick-search select::-ms-expand{ display:none; }

.school-quick-search .sqs-actions{
  display: flex !important;
  align-items: center !important;   /* ← 高さの基準を中央に */
  gap: 12px !important;
  flex-wrap: wrap !important;
}
/* ボタン/リンク共通の基準 */
.school-quick-search .sqs-actions > *{
   display: inline-flex;          /* テキストを中央に */
  align-items: center;
  justify-content: center;
  height: 44px;                  /* 高さを固定(または min-height) */
  padding: 0 16px;
  line-height: 1;
  margin: 0;                     /* 変なズレ防止 */
  box-sizing: border-box;
  vertical-align: middle;  
}
/* 詳しい条件へ（リンクボタン） */
.school-quick-search .sqs-actions a {
  font-size: clamp(16px, 2vw, 18px);
  color: #b59d0d;
  border: 1px solid #e8e19a;
  text-decoration: none;
	background-color: #fff;
  display: inline-block;   /* ボタンと揃える */
  padding: 8px 15px !important;       /* ボタンと同じ高さ */
  margin: 0 8px;           /* 横の余白 */
  line-height: 1;        /* 高さ揃え */
  box-sizing: border-box;  /* 内側padding込みで幅計算 */
}
.school-quick-search .sqs-actions a,
.school-quick-search .sqs-actions button{
  display:inline-flex;         /* baselineのズレを防ぐ */
  align-items:center;          /* 縦中央 */
  justify-content:center;
  height:44px;                 /* ← 統一の高さ */
  padding:0 16px;              /* 横だけ余白 */
  line-height:1;               /* 行高の余白を消す */
  box-sizing:border-box;
  margin:0;                    /* 余分な下マージン対策 */
  border-radius:0;
}
/* 検索ボタン（復活＆共通化） */
.school-quick-search .sqs-actions .btn--gold,
.school-quick-search .sqs-actions button[type="submit"],
.school-quick-search .sqs-actions input[type="submit"] {
  appearance: none;
  border: 1px solid #e8e19a;
  background: #b59d0d;
  color: #fff;
  font-size: clamp(16px, 2vw, 18px);
  padding: 10px 18px;
  line-height: 1;
  border-radius: 0;
  cursor: pointer;
}
.school-quick-search .sqs-actions .btn--gold:hover,
.school-quick-search .sqs-actions button[type="submit"]:hover,
.school-quick-search .sqs-actions input[type="submit"]:hover {
  filter: brightness(0.95);
}

/* 旧スタイルの干渉を打ち消す（submit中央寄せなど） */
.school-quick-search .sqs-card form { display: block; text-align: initial; }
.school-quick-search .sqs-card input[type="submit"],
.school-quick-search .sqs-card button[type="submit"] { margin: 0; }

/* ▼ 2つ目の検索欄（sqs--elegant）を標準化 */
.school-quick-search.sqs--elegant{
  max-width: 1100px;
  margin: 0 auto;
  text-align: initial; /* 真ん中寄せを解除 */
}

/* PCは5列で1行に収める */
.school-quick-search.sqs--elegant .sqs-row{
  display: grid;
  grid-template-columns: repeat(5, minmax(0, 1fr)); /* ← 4 → 5 */
  gap: .75rem 16px; /* 横の間隔は少し控えめに */
}

.school-quick-search.sqs--elegant .sqs-field{
  min-width: 0;
}

/* セレクトを100%幅＆矢印統一 */
.school-quick-search.sqs--elegant select{
  -webkit-appearance:none; -moz-appearance:none; appearance:none;
  display:block; width:100%; box-sizing:border-box;
  height:44px; line-height:44px;
  padding:0 2.4rem 0 .9rem;
  border:0; border-top:1px solid #d8cf5d; border-bottom:1px solid #d8cf5d;
  border-radius:0;
  background:#fff url("data:image/svg+xml;utf8,\
<svg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 24 24' fill='none' stroke='%23666' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'>\
<polyline points='6 9 12 15 18 9'/></svg>") no-repeat right .8rem center;
  background-size:12px 12px;
  font-size:14px;
}
.school-quick-search.sqs--elegant select::-ms-expand{ display:none; }

/* ボタン行 */
.school-quick-search.sqs--elegant .sqs-actions{
  margin-top:.75rem;
  display:flex; justify-content:center; gap:12px; flex-wrap:wrap;
}

/* 検索ボタンの見た目（消えていた分を復活） */
.school-quick-search.sqs--elegant .btn--gold,
.school-quick-search.sqs--elegant button[type="submit"],
.school-quick-search.sqs--elegant input[type="submit"]{
  border:1px solid #e8e19a; background:#b59d0d; color:#fff;
  font-size: clamp(15px, 2vw, 18px);
  padding:10px 18px; line-height:1; border-radius:0; cursor:pointer;
}
.school-quick-search.sqs--elegant .btn--gold:hover,
.school-quick-search.sqs--elegant button[type="submit"]:hover{ filter:brightness(.95); }

/* 詳しい条件へリンク */
.school-quick-search.sqs--elegant .sqs-actions .btn--outline-gold{
  background:#fff; color:#b59d0d;
  border:1px solid #e8e19a; padding:10px 15px !important; text-decoration:none;
	font-size: clamp(15px, 2vw, 18px);
	line-height:1; 
}
.school-quick-search .sqs-actions .btn--outline-gold{
  background: #fff !important;
  color: #b59d0d !important;
  border: 1px solid #e8e19a !important;
  /* 以前の位置調整が残っていたら必ず打ち消す */
  position: static !important;
  top: auto !important;
  margin-bottom: 0 !important;
}
/* もしテーマが擬似要素で下線や装飾を足していたら無効化 */
.school-quick-search .sqs-actions a::before,
.school-quick-search .sqs-actions a::after{
  content:none !important;
}
/* 以前の position/bottom 指定が残っていたら打ち消す */
.school-quick-search .sqs-actions .btn--outline-gold,
.school-quick-search .sqs-actions .btn--reset{
  position: static !important;
  bottom: auto !important;
}


/* ================================
   学校検索（詳細） .school-advanced-search
   ================================ */

/* コンテナ余白 */
.school-advanced-search {
  margin: clamp(8px, 2vw, 40px) 0;
  padding: clamp(8px, 2vw, 16px) 0;
  border-top: 1px solid rgba(0,0,0,.06);
  border-bottom: 1px solid rgba(0,0,0,.06);
	width:1100px; position:relative; right:20px; bottom:50px;
}
.school-advanced-search .section-title {
	margin-bottom: 50px !important;
}

/* 行レイアウト：PC=5列 / TB=3列 / SP=1列 */
.school-advanced-search .sqs-row{
  display: grid;
  grid-template-columns: repeat(5, minmax(0, 1fr));
  gap: 10px 10px;
	margin-bottom:25px;
}
/* 詳しい条件へ（リンクボタン） */
.school-advanced-search .sqs-actions a {
  font-size: clamp(15px, 2.5vw, 18px);
  color: #b59d0d;
  border: 1px solid #e8e19a;
  padding: 10px 15px;
  text-decoration: none;
	background-color: #fff;
}

/* 区市町村〜カリキュラム（最初の5つ）は span1 でそのまま */
.school-advanced-search .sqs-field:nth-of-type(-n+5){
  grid-column: span 1;
}
/* 2カラム行（教育段階+指導言語 / スポーツ施設+スクールバス） */
.school-advanced-search .sqs-field-row--two{
  grid-column: 1 / -1;
  display: flex;
  gap: 24px;
  flex-wrap: nowrap;       /* PCでは折返さない */
  align-items: flex-start;
}
.school-advanced-search .sqs-field-row--two .sqs-field{
  flex: 1 1 50%;
  min-width: 0;
	border-bottom:#e8e19a 1px solid;
	margin-bottom:20px;
}
.school-advanced-search .sqs-field-row--one {
	border-bottom:#e8e19a 1px solid;
	margin-bottom:30px;
}

/* チェックボックス/ラジオ群（横並び） */
.school-advanced-search .sqs-field--checkboxes,
.school-advanced-search .sqs-field--radios{
  display: flex;
  flex-wrap: wrap;
  column-gap: 1.2em;
  row-gap: .6em;
  align-items: center;
}
.school-advanced-search .sqs-field--checkboxes .sqs-label,
.school-advanced-search .sqs-field--radios .sqs-label{
  flex: 0 0 100%;
  display: block;
  margin: 0px 0px -5px 0px;
	font-weight: 600;
}

.school-advanced-search .sqs-field--checkboxes > label,
.school-advanced-search .sqs-field--radios    > label{
  flex: 0 0 auto !important;
  width: auto !important;          /* テーマのwidth:100%を解除 */
  display: inline-flex !important;
  align-items: center;
  gap: .4em;
  margin: 0;                       /* 余白は親のgapで管理 */
  white-space: nowrap;
  float: none !important;
  vertical-align: middle;
}

/* キーワードは1行フル幅 */
.school-advanced-search .sqs-field--text{ grid-column: 1 / -1; }
.school-advanced-search .sqs-field--text input[type="text"],
.school-advanced-search .sqs-field--text input[type="search"]{
  display:block;
  width:100%;
  height:44px;
  line-height:44px;
  padding:0 .9rem;
  box-sizing:border-box;
  border:0;
  border-top:1px solid #d8cf5d;
  border-bottom:1px solid #d8cf5d;
  border-radius:0;
  background:#fff;
  font-size:15px;
}
.school-advanced-search .sqs-submit,
.school-advanced-search button,
.school-advanced-search button[type="submit"],
.school-advanced-search input[type="submit"]{
  border-radius: 0 !important;   /* 角丸なし */
  margin: 0 8px;                 /* ボタン間の余白 */
  display: inline-block;         /* 横並び維持 */
	color:#fff;
	background-color: #b59d0d;
	font-size: clamp(15px, 2.5vw, 18px);
	padding:8px 15px;
	border:#e8e19a 1px solid;
}
/* セレクト（上下ゴールド／カスタム矢印） */
.school-advanced-search .sqs-field--select select{
  -webkit-appearance:none; -moz-appearance:none; appearance:none;
  display:block; width:100%; box-sizing:border-box;
  height:44px; line-height:44px;
  padding:0 2.4rem 0 .9rem;  /* 右は矢印スペース */
  border:0;
  border-top:1px solid #d8cf5d;
  border-bottom:1px solid #d8cf5d;
  border-radius:0;
  background:#fff url("data:image/svg+xml;utf8,\
<svg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 24 24' fill='none' stroke='%23666' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'>\
<polyline points='6 9 12 15 18 9'/></svg>") no-repeat right .8rem center;
  background-size:12px 12px;
  font-size:14px;
}
.school-advanced-search .sqs-field--select select::-ms-expand{ display:none; }
.school-advanced-search .sqs-field--text label {
	font-weight: 600 !important;
}
/* ボタン行 */
.school-advanced-search .sqs-actions{
  grid-column: 1 / -1;
  display:flex;
  justify-content:center;
  gap:12px;
  flex-wrap:wrap;
  margin-top:30px;
}

.school-advanced-search .sqs-actions .btn--outline-gold{
  background:transparent;
  color:#111;
	
}/* 無効化された送信ボタンの見た目 */
.school-quick-search .sqs-actions button[disabled],
.sadv-form .sqs-actions button[disabled],
.school-quick-search .sqs-actions .is-disabled,
.sadv-form .sqs-actions .is-disabled{
  opacity: .5;
  cursor: not-allowed;
  pointer-events: none;
}


/* ================================
   Global form colors (theme-wide)
   ================================ */

/* 1) カラートークン */
:root{
  --gold:        #d8cf5d;   /* ライン等のゴールド */
  --gold-strong: #b38b00;   /* 濃いゴールド（強調・選択色） */
}

form input, form textarea {
	border:var(--gold) 1px solid;
}

/* 2) テーマの擬似要素で描くチェック/丸を全フォームで無効化 */
form label::before,
form label::after,
form input[type="checkbox"]::before,
form input[type="checkbox"]::after,
form input[type="radio"]::before,
form input[type="radio"]::after{
  content: none !important;
  background: none !important;
  box-shadow: none !important;
  border: 0 !important;
}

/* 3) ネイティブUIを使い、色だけを統一（青・黒を排除） */
form input[type="checkbox"],
form input[type="radio"]{
  -webkit-appearance: auto !important;
  appearance: auto !important;
  background-image: none !important;
  box-shadow: none !important;
  accent-color: var(--gold-strong) !important;  /* ← ここで色を決める */
  /* お好みでサイズ微調整（不要ならコメントアウト） */
  width: 18px; height: 18px;
  vertical-align: middle;
  margin: 0 6px 0 0;
}

/* 4) フォーカスリングもゴールドに（キーボード操作時） */
form input:focus-visible,
form select:focus-visible,
form textarea:focus-visible{
  outline: 2px solid var(--gold-strong) !important;
  outline-offset: 2px;
}

/* 5) 古いブラウザのフォールバック（accent-color 非対応時のみ発動） */
@supports not (accent-color: #000) {
  form input[type="checkbox"],
  form input[type="radio"]{
    -webkit-appearance: none !important;
    appearance: none !important;
    background: #fff !important;
    border: 2px solid var(--gold) !important;
    box-shadow: none !important;
    width: 18px; height: 18px; vertical-align: middle; cursor: pointer;
  }
  form input[type="checkbox"]{ border-radius: 3px; }
  form input[type="radio"]{ border-radius: 50%; }

  /* 選択時の表示（簡易） */
  form input[type="checkbox"]:checked{
    background:
      linear-gradient(45deg, transparent 60%, var(--gold-strong) 60%) 3px 9px/4px 2px no-repeat,
      linear-gradient(-45deg, transparent 60%, var(--gold-strong) 60%) 7px 5px/4px 2px no-repeat;
  }
  form input[type="radio"]:checked{
    box-shadow: inset 0 0 0 5px var(--gold-strong) !important;
  }
}



/* About 側 */
.top-about-us p > a {
  position: relative;
  padding-left: 1.1em;
}
.top-about-us p > a::before {
  content: "";
  position: absolute;
  left: 0; top: 0.2em;
  border-left: .6em solid #b59d0d;
  border-top: .35em solid transparent;
  border-bottom: .35em solid transparent;
}

/* スクール詳細 */
.campus-item { margin:10px 0px; }
.campus-name { font-weight: 600; margin-bottom: .25rem; }
.campus-address { margin-bottom: 20px; }
.map-link { position:relative; bottom:20px; margin-bottom: 20px; font-size: .9rem; }

.schools-heading{ margin:1rem 0 .5rem; font-size:1.5rem; font-weight:700; }
.schools-tabs ul{ display:flex; gap:.5rem; list-style:none; padding:0; margin:0 0 1rem; flex-wrap:wrap; }
.schools-tabs .tab{ display:inline-block; padding:.5rem .8rem; border:1px solid #e5e7eb;  text-decoration:none; }
.schools-tabs .tab.is-active{ background:#111827; color:#fff; border-color:#111827; }

  .block { margin: 1.25rem 0; }
  .two-col { display:grid; grid-template-columns:1fr 1fr; gap:1rem; }
.kv-list { list-style:none; padding:0; margin:0; }
.kv-list li { display:flex; gap:1rem; padding:.25rem 0; }
.kv-list li span { min-width:8rem; color:#666; }

.card { background:#fff; border:1px solid #e5e7eb; border-radius:.75rem; padding:1rem; margin-bottom:1rem; }
.card h3 { margin-top:0; font-size:1.1rem; }
.card .facts { list-style:none; padding:0; margin:0; }
.card .facts li { display:flex; justify-content:space-between; padding:.35rem 0; border-bottom:1px dashed #eee; }
.card .facts li span { color:#666; }
.card .facts li strong { font-weight:600; }

.sticky { position: sticky; top: 84px; }

.dot-list { padding-left:1.1rem; }
.dot-list li { list-style:disc; }

/* スクールリスト */
.quick-facts-table {
	background:#fff;
}
  .quick-facts-table tr th { min-width: 8rem; border-top: #1c2e63 2px solid; }
.quick-facts-table tr td { border-top: #1c2e63 2px solid; }
.quick-facts-table tr:last-child th { border-bottom: #1c2e63 2px solid; }
.quick-facts-table tr:last-child td { border-bottom: #1c2e63 2px solid; }

/* スマホ用カード */
.stack-cards{display:grid; gap:12px;}
.stack-card{border:1px solid #ddd; background:#fff; padding:12px;}
.stack-card__label{font-weight:700; color:#1c2e63; margin-bottom:8px; background:#f2f0e2; padding:5px;}
/* stack-card の行レイアウトを2カラムに */
.stack-card__row {
  display: flex;
  align-items: flex-start;
  gap: 6px;              /* ラベルと値の間隔 */
  margin: 4px 0;
  font-size: 14px;
  line-height: 1.6;
	padding:5px;
	align-items:right;
}

/* ラベル部分は固定幅 */
.stack-card__row span {
  flex: 0 0 14em;         /* ←ここで幅を固定（7emはお好みで） */
  font-weight: 600;
  color: #333;
	text-align:left;
}

/* 値部分は残りを全部使う */
.stack-card__row .value {
  flex: 1 1 auto;
  word-break: break-word; /* 長い場合でも折り返す */
}

.fact-rich,
.fact-rich * {
  font-size: inherit !important;
  line-height: inherit !important;
}

/* ギャラリー2列 */
.school-gallery .gallery-wrapper{
  display:grid;
  grid-template-columns:repeat(2,1fr);
  gap:1rem;
}
.school-gallery .gallery-item img{ width:100%; height:auto; display:block; }

  .school-capacity-table{width:100%;border-collapse:collapse;margin:0;}
  .school-capacity-table th,.school-capacity-table td{padding:.6rem .8rem;}
.school-capacity-table td {border-top:1px solid #1c2e63 !important; }
.school-capacity-table td:nth-child(2),.school-capacity-table td:nth-child(3) {text-align:right; }
.school-capacity-table tr:last-child th { border-bottom: #1c2e63 1px solid; }
.school-capacity-table tr:last-child td { border-bottom: #1c2e63 1px solid; }
  .school-capacity-table thead th{background:#f2f0e2; border-top: #1c2e63 1px solid; font-weight:600;}
  .school-capacity-table td.right{text-align:right;}
  .school-capacity-table td.center{text-align:center;}
  .campus-item{margin-bottom:.5rem;}
  .campus-name{font-weight:600;}


/* ヒーロー */
.hero-visual{
  position:relative;
  mpadding-bottom: 200px;
}

.hero-inner{
  position:relative; z-index:1;
  max-width: 1100px; 
	margin: 0 auto; 
	padding: 60px 0px;
  color:#fff; text-align:center;
}
.hero-title{ font-size: clamp(28px, 5vw, 44px); margin:0 0 .25em; }
.hero-lead{ font-size: clamp(14px, 2.2vw, 18px); opacity:.95; }


.top-news-frame {
	border:#e8e2b3 10px solid;
	background: url("assets/about-us-bg.png")  right bottom no-repeat #fff;
	margin-bottom:50px;
	min-width: calc(100% + 200px) !important;  /* 親幅より200px広くする */
  margin-left: -100px;        /* 左側に100pxはみ出す */
  margin-right: -100px; 
}
.section-title {
	color:#1c2e63;
	font-size:clamp(21px, 2.5vw, 30px) !important; 
	margin-bottom:10px !important;
	border-bottom: none !important;
	font-weight: 600;
	line-height: 1.5;
}
.sub-title {
	color:#6d0000;
}
.news-list {
	margin:30px  !important;
	border-right:#6d0000 1px solid;
}
.link-margin { margin-right:20px; }
.top-about-us {
	margin:30px 30px 170px 0px !important;
}
.latest-news__list {
  list-style: none;
  margin: 0px 20px 0px 0px;
  padding: 0;
}
.latest-news__item {
  display: flex;
  align-items: center;
  gap: 12px;
  padding: 10px 0;
  border-bottom: 1px solid #bcbcbc;
}


.ln-date {
  min-width: 90px;

  color: #666;
  letter-spacing: .02em;
}

.ln-cat {
  display: inline-block;
  padding: 2px 8px;
  font-size: clamp(10px, 2.0vw, 12px);
  line-height: 1.8;
  white-space: nowrap;
}

.ln-title {
  font-size: clamp(14px, 2.0vw, 16px);
  line-height: 1.6;
  text-decoration: none;
  color: #222;
}
.ln-title:hover { text-decoration: underline; }

.parents-frame {
	background: #fff;
	padding:30px;
	margin-bottom:50px;
}
.group-frame {
	background: #fff;
	padding:30px;
}
.post-archive .pa-list { list-style: none; margin: 0; padding: 0; display: grid; gap: 24px; }
.post-archive .pa-item { display: grid; grid-template-columns: 240px 1fr; gap: 16px; border-bottom: 1px solid #eee; padding-bottom: 24px; }
.post-archive .pa-thumb img { width: 100%; height: auto; display: block; }
.post-archive .pa-cats { display: flex; gap: 8px; margin-bottom: 6px; }
.post-archive .pa-cat { display: inline-block; padding: 2px 8px;  font-size: clamp(10px, 2.0vw, 12px); }
.post-archive .pa-cat a { color: #fff; text-decoration: none; }

/* 画面左右いっぱいにフルブリード＋3カラム＋間隔20px */
/* 画面左右いっぱいに（左端=画面左端 / 右端=画面右端） */
.wp-block-latest-posts__list {
   width: 96vw !important;
  max-width: none !important;
  margin-left: calc(-1 * (50vw - 54%)) !important;
  margin-right: calc(-1 * (50vw - 54%)) !important;
	margin-top:20px;

  /* flex指定を上書きしてgridに統一 */
  display: grid !important;
  grid-template-columns: repeat(3, 1fr) !important;
  gap: 20px !important;

  padding: 0;
  list-style: none;
  box-sizing: border-box;
}

/* liに残っている幅指定/フレックス指定をリセット */
.wp-block-latest-posts__list > li {
  margin: 0 !important;
  width: auto !important;
  max-width: none !important;
  flex: none !important;
}

.wp-block-latest-posts__featured-image img {
  display: block;
  width: 90% !important;
  height: auto !important;
	box-shadow: 25px 25px 0 #e8e19a;
}


/* 親に overflow:hidden があると切れるので必要なら外す */
.wp-block-latest-posts__list,
.wp-block-latest-posts__list:where(*) {
  overflow: visible;
}
.wp-block-latest-posts li a {
	display: block;  
	margin-top:30px;
	font-size:120%;
}
.wp-block-latest-posts__post-date {
	font-size:100%;
	color:#666;
}
.top-eng-sub-title {
	font-size:clamp(21px, 2.5vw, 28px) !important;
	color:#2453b2;
	font-weight:600;
	padding:10px 0px !important;
	border-bottom:#e2db98 3px solid  !important;
	text-align:left;
}

/* カテゴリ別カラー（slug名で出し分け） */
.pa-cat--news   { background: #1e88e5; }
.pa-cat--event  { background: #43a047; }
.pa-cat--press  { background: #e53935; }
/* デフォルト色 */
.pa-cat { background: #666; }

.pa-item-title { margin: 0 0 6px; font-size:clamp(16px, 2vw, 20px); }
.pa-date { color: #777; font-size: clamp(10px, 2vw, 12px); }
.pa-excerpt { margin-top: 8px; color: #444; }
.pa-pagination { margin-top: 24px; text-align: center; }

/* セクション本体は通常のブロックのまま */
.section-fullbleed {
  position: relative;
  display: flow-root; /* マージンの食い合い防止 */
	
}

/* 背景を全幅に伸ばす */
.section-fullbleed::before {
  content: "";
  position: absolute;
  inset: 0 calc(50% - 50vw); /* 左右をビューポート端まで広げる */
  /* 好きな背景をここに */
  background: #f2f0e2;               /* 例：色 */
  /* background: url(...) center/cover no-repeat; 画像の場合 */
  z-index: 10;
	margin-bottom:50px;
}

/* 中身は中央1360px */
.section-fullbleed__inner {
  max-width: 1360px;
  width: min(1360px, 100%);
  margin: 0 auto;
  padding: 48px 24px; /* 適宜 */
	z-index: 15;
}




/* 視覚的には非表示だがスクリーンリーダーでは読ませる */
.sr-only {
  position: absolute !important;
  width: 1px; height: 1px;
  padding: 0; margin: -1px;
  overflow: hidden; clip: rect(0,0,1px,1px);
  white-space: nowrap; border: 0;
}

/* アイコンボタン調整 */
.schools-filters {
  display: flex; gap: 23px; flex-wrap: wrap;
	margin-bottom:20px;
}

.schools-filters .btn-filter {
  display: inline-flex;
  align-items: center; justify-content: center;
  width: 230px; height: auto; /* 好みで */
  background: #fff;
  box-shadow: 0 0 0 1px #d9e1ec inset;
  text-decoration: none;
}

.schools-filters .btn-filter img {
  display: block;
  width: 100%; height: auto; /* SVGでもビットマップでもOK */
}

/* ホバー/アクティブ例（任意） */
.schools-filters .btn-filter:hover { box-shadow: 0 0 0 2px #1e90ff inset; }

.top-search-link-img {
	margin-top:20px ;
	margin-bottom:50px;
}
.gray-frame {
	border:#888888 1px solid !important;
}

input {
	width:100%;
}
input[type="submit"] {
	font-size:120% !important;
}


.news-top {
	display:flex;
}



/* 検索結果欄　アイコン */
/* アイコンの共通スタイル */
.icon {
  width: 18px;
  height: 18px;
  display: inline-block;
  vertical-align: -2px; /* ベースライン調整はお好みで */
  fill: currentColor;
  color: #0d1b2a; /* ネイビー系（アイビー風） */
  margin-right: 6px;
}
.icon--label { margin-right: 6px; }

/* 見出しやカード風レイアウト（任意） */
.schools-list { display: grid; gap: 16px; }
.school-item { padding: 16px; border: 1px solid #E8E19A;  background: #fff; margin-bottom:15px;}
.school-title { margin: 0 0 6px; font-size: clamp(18px, 2vw, 24px);; 
	border-bottom: 2px solid #6d0000 !important;
	padding-bottom:5px;
	text-align:left;
	
}
.school-title a {
	color:#1d2d62;
}
.school-levels, .school-website, .school-contact { margin-top: 6px; }
.school-detail-link {
	margin-top:15px;
}
.school-detail-link a {
	border:#d4af37 1px solid;
	color:#d4af37;
	padding:8px 25px;
	font-weight: 600;
}
/* スクリーンリーダー専用テキスト */
.sr-only {
  position: absolute !important;
  width: 1px; height: 1px;
  padding: 0; margin: -1px;
  overflow: hidden; clip: rect(0,0,1px,1px); white-space: nowrap; border: 0;
}

/* レイアウト */
.sqs--elegant .sqs-row{
  display: grid;
  grid-template-columns: repeat(5, minmax(160px, 1fr));
  gap: clamp(10px, 1.6vw, 18px);
}

/* 電話アイコンのみ表示：クリックできる透明リンクを横に並べる */
.school-phone .phone-link {
  display: inline-block;
  margin-left: 6px;
  text-decoration: underline;
}
.school-phone .phone-link::after {
  content: "";
  position: absolute; inset: 0;
  /* ホバー時だけうっすら丸背景を出すと“押せる”のが分かりやすい（任意） */
}
.school-phone .phone-link:hover::after {
  background: rgba(13,27,42,0.08);
}


.school-phone .sep { margin: 0 4px; }

/* アイコンはそのまま流用（前回の .icon スタイル） */
.icon {
  width: 18px;
  height: 18px;
  display: inline-block;
  vertical-align: -2px;
  fill: currentColor;
  color: #0d1b2a; /* アイビー風ネイビー */
  margin-right: 6px;
}

/* スライダー枠の高さと背景のフィット */
.hero-slider {
	overflow: hidden;
	height: clamp(400px, 40vw, 650px); /* 画面に応じて可変 */
	
}
.hero-slider .swiper {
  width: 100%;
  
  position: relative;
}

.hero-slider .swiper-slide {
  width: 100%;
  height: 100%;
}

.hero-slide {
  width: 100%;
  height: 100%;
  background-size: cover;
  background-position: center center;
  background-repeat: no-repeat;
  position: relative;
}

/* 文字のオーバーレイ */
.hero-caption {
  position: absolute;
  inset: 0;
  background: linear-gradient(0deg, rgba(0,0,0,.35) 0%, rgba(0,0,0,.15) 60%, rgba(0,0,0,0) 100%);
  display: grid;
  place-items: center;
  text-align: center;
  padding: 2rem;
}
.hero-caption__inner { max-width: 1100px; margin: 0 auto; }
.hero-caption__title { color: #fff; font-size: clamp(24px, 3.2vw, 40px); line-height: 1.2; margin: 0 0 .5rem; }
.hero-caption__lead  { color: #fff; font-size: clamp(14px, 1.6vw, 18px); opacity: .95; }

/* 矢印・ドットの位置調整（任意） */
.hero-slider .swiper-button-prev,
.hero-slider .swiper-button-next { color: #fff; }
.hero-slider .swiper-pagination-bullet { background: rgba(255,255,255,.7); }
.hero-slider .swiper-pagination-bullet-active { background: #fff; }

/* ===== Containers ===== */
.container{ width:min(1100px,92%); margin-inline:auto;  }
.content-area { margin-top:50px; }
.archive-item {
  margin-bottom: 40px !important;
}
.archive-header{ margin: 28px auto 18px; }
.archive-title{ font-size: clamp(24px,3.6vw,38px); font-weight:700; margin:0 0 8px; }
.archive-description{ color:#666; }

/* ===== Row cards (reference-style) ===== */
.archive-list{ display:flex; flex-direction:column; gap:28px; margin: 20px 0 44px; }

.rowcard{
  display:grid;
  grid-template-columns: 200px 1fr;
  gap: 0px 20px;
  background:#f1f1f5;
  padding: 16px !important;
	margin-bottom:0px;
}

.rowcard-thumb{
  grid-row: 1 / span 3;
  display:block; aspect-ratio:1/1; background:#eee; overflow:hidden;
}
.rowcard-thumb img{ width:100%; height:100%; object-fit:cover; display:block; }

.rowcard-body{ display:flex; flex-direction:column; gap:10px; }

.rowcard-title{
  font-size: clamp(18px,2.6vw,24px);
  line-height:1.35; margin:0;
}
.rowcard-title a{ color:#1c2e63; text-decoration:none; }
.rowcard-title a:hover{ text-decoration:underline; }

.rowcard-excerpt{ color:#444; line-height:1.7; margin:0; }

.rowcard-readmore{ margin-top:6px; text-align:right; }
.readmore-link{
  color:#b59d0d; text-decoration:none; font-size: 110%; font-weight:600;
}
.readmore-link:hover{ text-decoration:underline; }

.rowcard-meta{
  grid-column: 1 / -1;
  margin-top:14px; padding-top:14px;
  border-top:1px solid rgba(0,0,0,.08);
  color:#777; font-size:13px;
  display:flex; gap:10px; flex-wrap:wrap; align-items:center;
}
.meta-sep{ opacity:.6; }
.meta-cat{ color:#203a72; text-decoration:none; }
.meta-cat:hover{ text-decoration:underline; }




/* ===== フッター調整 ===== */
.site-footer-widgets .row {
  justify-content: center; /* 念のため中央寄せ */
}
.site-footer-widgets .footer-widget-column {
  flex: 0 0 100% !important;
  max-width: 100% !important;
}
/* ===== site-info の中央揃え調整 ===== */
.site-footer {
	padding:20px 0px;
}
.site-footer .container {
  max-width: none !important; /* コンテナ制限解除 */
  width: 100% !important;
}

.site-footer .site-info {
  text-align: center;
  margin: 0 auto;
  font-size: 80% !important;
  padding: 0px !important;
  line-height: 2.0;
  width: 100%;

}
/* フッターメニュー：横並び＆中央寄せ */
.site-footer-widgets {
  padding: 20px 0px 0px 0px !important; /* 上下余白 */
  text-align: center;
		margin-bottom:-50px !important;
}

.site-footer-widgets .menu {
  display: flex;
  justify-content: center;
  align-items: center;
  gap: 20px;
  margin: 0 !important;
  padding: 0 !important;

  list-style: none;
  font-size: 80% !important;
  flex-wrap: wrap;    
}

.site-footer-widgets .menu li {
  display: inline-block;
}

.site-footer-widgets .menu a {
  color: inherit; /* 現在のテキスト色を継承 */
  text-decoration: none;
  transition: opacity 0.2s ease;
}

.site-footer-widgets .menu a:hover {
  opacity: 0.7;
}


/* footer全体の余白を統一 */
.footer-wrapper {
  margin: 0;
}

/* Pagination / Empty */
.archive-pagination{ display:flex; justify-content:center; margin: 0 0 60px; }
.archive-empty{ text-align:center; padding:40px 0 80px; color:#666; }

/* SNSシェアボタン */
.heateor_sss_horizontal_sharing {
	position: relative;
	top:50px;
}

/* 各パーツ　出現時のアニメーション */
.fade-in-left {
  opacity: 0;
  transform: translateX(-150px);
  transition: all 1.5s ease;
}

.fade-in-right {
  opacity: 0;
  transform: translateX(150px);
  transition: all 1.5s ease;
}

.fade-in-up {
  opacity: 0;
  transform: translateY(150px);
  transition: all 1.5s ease;
}

/* 表示状態になった時 */
.fade-in.visible {
  opacity: 1;
  transform: translate(0, 0);
}


/* media query ここから */
/* ==============================
   2025 推奨ブレイクポイント
   ============================== */

/* モバイル（縦向き）: 〜575px */
@media (max-width: 575px) {
.pc-only {
	display:none;
}
.sp-only {
	display:inline-block;
}
	.bn-pc-only {
	display:none;
}
.bn-sp-only {
	display: block;
}
  .mobile-only{display:block;}
/* 上段：ロゴ＋言語を1行で中央揃え・はみ出し防止 */
	
.lang-switch--pc { display: none; }
  .lang-switch--sp { display: flex; gap: 10px; margin-left: auto; }
  /* ロゴさらにタイトに */
  .primary-header .site-branding img{ max-height:70px; }

  /* ハンバーガーの右側に言語スイッチを横並び・中央揃えで */
  .lang-switch--pc{ display:none; }
  .lang-switch--sp{
    display:flex; gap:10px; margin-left:auto; align-items:center;
  }
	 #site-navigation .navigation-bar-wrapper{
    display: none;
  }
  #site-navigation.is-open .navigation-bar-wrapper{
    display: block;
  }

  /* 重なり・タップ対策（ゴールド帯が前面） */
  #site-navigation{
    position: relative;
    z-index: 40;
  }
  #site-navigation .container{
    min-height: 52px;
    display: flex;
    align-items: center;
  }

  /* トグルは常に表示、ラベル文字は非表示 */
  #site-navigation .navigation-bar-toggle{
    display: inline-flex !important;
    align-items: center;
    gap: .4rem;
    padding: .6rem .75rem;
    color: #333;
	  position: relative;
  z-index: 40;
  }
  .mobile-nav-menu-label{ display: none !important; }

  /* ゴールド帯は維持、スライダーに重ならない */
  .main-navigation--transparent,
  .main-navigation--overlay{ position:relative !important; background:#e8e19a !important; }

  /* 本文の左右余白・幅を通常に戻す（小さくなる問題対策） */
  .site-content .container,
  .container{
    width:100%; max-width:1200px; margin:0 auto; padding:0 15px;
  }

 
	 /* 2) スライドショーに重ならないよう “重ね配置” を解除 */
  .main-navigation--transparent,
  .main-navigation--overlay{
    position: relative !important;   /* テーマの絶対配置を打ち消す */
    background: var(--gold-band) !important;
  }

  /* 3) ハンバーガー横の “Secondary” を非表示 */
  .mobile-nav-menu-label{ display: none !important; }
	
	/* ハンバーガーのタップしやすさ/配色微調整（任意） */
  #site-navigation .navigation-bar-toggle{
    display: inline-flex;
    align-items: center;
    gap: .4rem;
    padding: .6rem .75rem;
    color: #333;    
	/* ゴールド上で見える色 */
  }
	
	.content-area.row{
  margin-left: 0;
  margin-right: 0;   /* ← ネガティブマージン相殺 */
		
}
	.hero-slider { margin-bottom:50px; min-height: 400px; }

	.home-quick-search { position:relative; right:0px; margin-top:0px; padding:0px 15px;}
	.school-quick-search .sqs--elegant .sqs-row { grid-template-columns: 1fr; }
	.school-quick-search .sqs-actions { margin-top:30px; }
	.sqs-actions .btn--gold {
	  margin-top: 20px !important;
	}
	/* アクション行は均等に揃える */
  .school-quick-search .sqs-actions{
    display:flex;
    justify-content:center;
    align-items:stretch;      /* ← 子要素の高さを揃える */
    gap:12px;
    flex-wrap:wrap;
  }

  /* 子要素を“同じ高さのフレックス箱”に統一 */
  .school-quick-search .sqs-actions > *{
    display:inline-flex !important;
    align-items:center !important;
    justify-content:center !important;
    min-height:44px !important;
    padding:8px 15px !important;
    margin:0 8px !important;
    line-height:1 !important;
    box-sizing:border-box !important;
    border-radius:0 !important;
    align-self:stretch !important;  /* 行内で高さを合わせる */
  }

  /* “詳しい条件で検索”（リンク）だけに残っている差分を消す */
  .school-quick-search .sqs-actions .btn--outline-gold{
    position:static !important;        /* 以前の bottom:2px; を打ち消す */
    background:#fff !important;
    color:#b59d0d !important;
    border:1px solid #e8e19a !important;
    margin-bottom:0 !important;        /* 余計な下マージン対策 */
  }

  /* 念のため、擬似要素の装飾があれば無効化 */
  .school-quick-search .sqs-actions a::before,
  .school-quick-search .sqs-actions a::after{
    content:none !important;
  }
	.top-news-frame {
	border:#e8e2b3 5px solid;
	background: url("assets/about-us-bg.png")  right bottom no-repeat #fff;
	margin-bottom:50px;
	min-width: 100% !important;  
  margin-left: 0px;        
  margin-right: 0px; 
}
	.news-list {
	margin:15px  !important;
	border-right:none;
}
	.latest-news__list {
    margin: 0;                 /* 右側の余白で横スクロール出るのを防止 */
    padding: 0 12px;           /* 必要なら左右に少しだけ余白 */
  }

  .latest-news__item {
    display: block;            /* flexを解除して縦積みに */
    padding: 12px 0;
    gap: 0;                    /* 念のためリセット */
  }

  /* 1行目：日付＋カテゴリを横並び */
  .latest-news__item .ln-date,
  .latest-news__item .ln-cat {
    display: inline-block;
    vertical-align: middle;
    margin-right: 8px;
  }

  .latest-news__item .ln-date {
    min-width: auto;           /* PC用の90px固定を解除して詰める */
    font-size: 13px;
  }

  .latest-news__item .ln-cat {
    font-size: 12px;
    line-height: 1.8;
    white-space: nowrap;
  }

  /* 2行目：タイトルは下に落として横幅いっぱい */
  .latest-news__item .ln-title {
    display: block;
    width: 100%;
    margin-top: 6px;
    font-size: 15px;           /* モバイルで少しだけ小さめにするなら */
    line-height: 1.6;
  }
	.top-about-us {
	margin:30px 15px 170px 15px !important;
}
	.wp-block-latest-posts__list {
   width: 100% !important;
  max-width: none !important;
  margin-left: 0px !important;
  margin-right: 0px !important;
	margin-top:20px;

  /* flex指定を上書きしてgridに統一 */
  display: grid !important;
  grid-template-columns: repeat(1, 1fr) !important;
  gap: 20px !important;
  padding: 0;
  list-style: none;
  box-sizing: border-box;
}
	.section-fullbleed__inner {
    padding: 24px 15px;   /* スマホでは余白を縮小 */
  }

  .section-fullbleed::before {
    margin-bottom: 24px; /* スマホでは下余白を少し減らす */
  }
	.schools-filters {
    gap: 12px; 
  }
  .schools-filters .btn-filter {
    flex: 1 1 calc(50% - 6px);
    max-width: calc(50% - 6px);
    box-sizing: border-box;
  }
	.wp-block-image {
		margin-bottom:30px;
	}
	.useful-links .wp-block-column {
		margin: 0px 10%;
	}
	.useful-links .wp-block-column .wp-block-image {
		margin-bottom:0px;
	}

	.school-phone .phone-link { display: none; } /* モバイルで番号を非表示 */
  .school-phone .sep { display: none; }
	.school-advanced-search .sqs-row{ grid-template-columns: 1fr; }
	 .rowcard {
    display: block;              /* gridをやめて縦積みに */
    padding: 12px;
  }

  .rowcard-thumb {
    width: 80%;                  /* 横幅を90%に縮小 */
    margin: 0 auto 12px auto;    /* 中央寄せして下に余白 */
    aspect-ratio: auto;          /* スマホでは自由比率に戻す */
  }

  .rowcard-thumb img {
    width: 100%;
    height: auto;                /* 高さも比率を維持して縮小 */
    object-fit: cover;
  }

  .rowcard-body {
    gap: 8px;
  }
	.school-advanced-search {
		
		right:0px;
	}
	.school-advanced-search .sqs-field-row--two{
    flex-wrap: wrap;
    gap: 16px;
  }
  .school-advanced-search .sqs-field-row--two .sqs-field{
    flex: 1 1 100%;
  }



  .quick-facts-table {
    display: block !important;
    width: 100% !important;
    border-collapse: separate !important;
    border-spacing: 0 !important;
	  border-bottom: #1c2e63 2px solid !important;
  }

  .quick-facts-table colgroup,
  .quick-facts-table thead {
    display: none !important;
  }

  .quick-facts-table tbody,
  .quick-facts-table tr,
  .quick-facts-table th,
  .quick-facts-table td {
    display: block !important;
    width: 100% !important;
    box-sizing: border-box !important;
  }

  /* Bootstrap等の .table-bordered のセル枠をリセット */
  .quick-facts-table.table-bordered > tbody > tr > th,
  .quick-facts-table.table-bordered > tbody > tr > td,
  .quick-facts-table.table > :not(caption) > * > * {
    border: 0 !important;
  }

  /* 1行＝カード風 */
  .quick-facts-table tr {
    margin: 0 0 16px !important;
    padding: 0 !important;
    border-top: #1c2e63 2px solid !important;
    background: #fff;
  }

  /* 見出しセル → 上段 */
  .quick-facts-table th {
    padding: 10px 12px !important;
    font-weight: 700 !important;
    background: #f8f8f8 !important;
    border-bottom: 1px solid #efefef !important;
  }

  /* 値セル → 下段 */
  .quick-facts-table td {
    padding: 10px 12px 12px !important;
  }
	.school-capacity-table { display: none; }
  .school-capacity-cards {
    display: grid;
    grid-template-columns: 1fr;
    gap: 12px;
  }

  .cap-card {
    border: 1px solid rgba(0,0,0,.12);
    background: #fff;
    padding: 12px 14px;
    border-radius: 6px;
  }
  .cap-card__title {
    font-size: 16px;
    font-weight: 700;
    margin: 0 0 6px;
    color: #1c2e63; /* お好みで */
  }
  .cap-card__dl { margin: 0; }
  .cap-row {
    display: grid;
    grid-template-columns: 1fr auto; /* ラベル／値 */
    gap: 6px 12px;
    padding: 8px 0;
    border-top: 1px solid rgba(0,0,0,.06);
  }
  .cap-row:first-child { border-top: 0; }
  .cap-row dt {
    margin: 0;
    font-size: 14px;
    color: #555;
  }
  .cap-row dd {
    margin: 0;
    font-size: 14px;
    text-align: right;
    color: #222;
    min-width: 4em; /* 桁ブレ防止の軽い配慮 */
  }
	.school-gallery .gallery-wrapper{
  display:grid;
  grid-template-columns:repeat(1,1fr);
  gap:1rem;
}
	.post-archive .pa-item{
    grid-template-columns: 1fr;   /* 1カラム */
    grid-auto-rows: auto;
    gap: 12px;                    /* ちょい詰め */
  }

  /* 新着記事一覧　サムネ横幅 */
  .post-archive .pa-thumb{
    grid-column: 1 / -1;
    order: 0;                     /* 念のため先頭 */
  }
  .post-archive .pa-thumb img{
    width: 80%;
    height: auto;
    display: block;
	  margin: 0 auto;
  }

  /* 本文側（タイトル・抜粋など）をサムネの下に */
  .post-archive .pa-body{
    grid-column: 1 / -1;
    order: 1;
  }

  /* カテゴリ行の間隔など微調整（任意） */
  .post-archive .pa-cats{ margin-bottom: 4px; }
  .post-archive .pa-item{ padding-bottom: 16px; }
	
	/* フッターメニュー：横並び＆中央寄せ（2列対応） */
.site-footer-widgets {
  padding: 20px 0 0 0 !important;
  text-align: center;
  margin-bottom: 0px !important;
}

.site-footer-widgets .menu {
  display: flex;
  justify-content: center;
  align-items: center;
  flex-wrap: wrap; /* 折り返しを有効に */
  gap: 10px 20px; /* 行間と列間の間隔 */
  margin: 0 !important;
  padding: 0 !important;
  list-style: none;
  font-size: 80% !important;
  max-width: 400px; /* 全体幅（調整可） */
  margin-left: auto;
  margin-right: auto;
}

/* 各メニュー項目を2列に収まるように */
.site-footer-widgets .menu li {
  flex: 0 1 45%; /* 1行に2つ並ぶように（隙間考慮で45%） */
  text-align: center;
}
}

/* モバイル（横向き）: 576px〜767px */
@media (min-width: 576px) and (max-width: 767px) {
.pc-only {
	display:none;
}
.sp-only {
	display:inline-block;
}
	.bn-pc-only {
	display:none;
}
.bn-sp-only {
	display: block;
}
  .mobile-only{display:block;}
/* 上段：ロゴ＋言語を1行で中央揃え・はみ出し防止 */
	
.lang-switch--pc { display: none; }
  .lang-switch--sp { display: flex; gap: 10px; margin-left: auto; }

	#site-navigation .navigation-bar-toggle{
    display:inline-flex !important;
    align-items:center;
    gap:.4rem;
    padding:.6rem .75rem;
    color:#333;
  }
  /* メニュー本体は閉じておく／is-open時に開く */
  #site-navigation .navigation-bar-wrapper{ display:none; }
  #site-navigation.is-open .navigation-bar-wrapper{ display:block; }

  /* ラベル文字は不要なら消す */
  .mobile-nav-menu-label{ display:none !important; }

  /* （任意）ゴールド帯の前面化 */
  #site-navigation{ position:relative; z-index:40; }
  .grid {
    grid-template-columns: repeat(2, 1fr); /* 2カラム */
    gap: 16px;
  }
	.container {
    width: 100%;
    padding-inline: 10px;
  }
	.content-area.row{
  margin-left: 0;
  margin-right: 0;   /* ← ネガティブマージン相殺 */
}
	.hero-slider { margin-bottom:50px; min-height: 400px; }
	

	.home-quick-search { position:relative; right:0px; margin-top:0px; padding:0px;}
	.school-quick-search.sqs--elegant .sqs-row{ grid-template-columns: repeat(2, 1fr); }
	.school-quick-search .sqs-actions { margin-top:30px; }
	.school-quick-search .sqs-actions button {
		position: relative;
		bottom:10px;
	}
	.sqs-actions .btn--gold {
	  margin-top: 20px !important;
	}
	.school-quick-search .sqs-actions { margin-top:30px; }
	.sqs-actions .btn--gold {
	  margin-top: 20px !important;
	}

	.top-news-frame {
	border:#e8e2b3 5px solid;
	background: url("assets/about-us-bg.png")  right bottom no-repeat #fff;
	margin-bottom:50px;
	min-width: 100% !important;  
  margin-left: 0px;        
  margin-right: 0px; 
}
	.news-list {
	margin:15px  !important;
	border-right:none;
}
	.latest-news__list {
    margin: 0;                 /* 右側の余白で横スクロール出るのを防止 */
    padding: 0 12px;           /* 必要なら左右に少しだけ余白 */
  }

  .latest-news__item {
    display: block;            /* flexを解除して縦積みに */
    padding: 12px 0;
    gap: 0;                    /* 念のためリセット */
  }

  /* 1行目：日付＋カテゴリを横並び */
  .latest-news__item .ln-date,
  .latest-news__item .ln-cat {
    display: inline-block;
    vertical-align: middle;
    margin-right: 8px;
  }

  .latest-news__item .ln-date {
    min-width: auto;           /* PC用の90px固定を解除して詰める */
    font-size: 13px;
  }

  .latest-news__item .ln-cat {
    font-size: 12px;
    line-height: 1.8;
    white-space: nowrap;
  }

  /* 2行目：タイトルは下に落として横幅いっぱい */
  .latest-news__item .ln-title {
    display: block;
    width: 100%;
    margin-top: 6px;
    font-size: 15px;           /* モバイルで少しだけ小さめにするなら */
    line-height: 1.6;
  }
	.top-about-us {
	margin:30px 15px 170px 15px !important;
}
	.wp-block-latest-posts__list {
   width: 100% !important;
  max-width: none !important;
  margin-left: 0px !important;
  margin-right: 0px !important;
	margin-top:20px;

  /* flex指定を上書きしてgridに統一 */
  display: grid !important;
  grid-template-columns: repeat(1, 1fr) !important;
  gap: 20px !important;
  padding: 0;
  list-style: none;
  box-sizing: border-box;
}
	.section-fullbleed__inner {
    padding: 24px 15px;   /* スマホでは余白を縮小 */
  }

  .section-fullbleed::before {
    margin-bottom: 24px; /* スマホでは下余白を少し減らす */
  }
	.schools-filters {
    gap: 12px; 
  }
  .schools-filters .btn-filter {
    flex: 1 1 calc(50% - 6px);
    max-width: calc(50% - 6px);
    box-sizing: border-box;
  }
	.wp-block-image {
		margin-bottom:30px;
	}
	.useful-links .wp-block-columns{
    display:grid !important; grid-template-columns:1fr 1fr; gap:20px; margin:0 !important; text-align:center;
  }
  .useful-links .wp-block-column img{ width:100% !important; height:auto; }
	.school-phone .phone-link { display: none; } /* モバイルで番号を非表示 */
  .school-phone .sep { display: none; }
	.school-advanced-search .sqs-row{
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 3fr)) !important;
  gap: 10px 10px;
	margin-bottom:25px;
}
	 .rowcard {
    display: block;              /* gridをやめて縦積みに */
    padding: 12px;
  }

  .rowcard-thumb {
    width: 80%;                  /* 横幅を90%に縮小 */
    margin: 0 auto 12px auto;    /* 中央寄せして下に余白 */
    aspect-ratio: auto;          /* スマホでは自由比率に戻す */
  }

  .rowcard-thumb img {
    width: 100%;
    height: auto;                /* 高さも比率を維持して縮小 */
    object-fit: cover;
  }

  .rowcard-body {
    gap: 8px;
  }
	.school-advanced-search {
		
		right:0px;
	}
	.school-advanced-search .sqs-field-row--two{
    flex-wrap: wrap;
    gap: 16px;
  }
  .school-advanced-search .sqs-field-row--two .sqs-field{
    flex: 1 1 100%;
  }

 

  .quick-facts-table {
    display: block !important;
    width: 100% !important;
    border-collapse: separate !important;
    border-spacing: 0 !important;
	  border-bottom: #1c2e63 2px solid !important;
  }

  .quick-facts-table colgroup,
  .quick-facts-table thead {
    display: none !important;
  }

  .quick-facts-table tbody,
  .quick-facts-table tr,
  .quick-facts-table th,
  .quick-facts-table td {
    display: block !important;
    width: 100% !important;
    box-sizing: border-box !important;
  }

  /* Bootstrap等の .table-bordered のセル枠をリセット */
  .quick-facts-table.table-bordered > tbody > tr > th,
  .quick-facts-table.table-bordered > tbody > tr > td,
  .quick-facts-table.table > :not(caption) > * > * {
    border: 0 !important;
  }

  /* 1行＝カード風 */
  .quick-facts-table tr {
    margin: 0 0 16px !important;
    padding: 0 !important;
    border-top: #1c2e63 2px solid !important;
    background: #fff;
  }

  /* 見出しセル → 上段 */
  .quick-facts-table th {
    padding: 10px 12px !important;
    font-weight: 700 !important;
    background: #f8f8f8 !important;
    border-bottom: 1px solid #efefef !important;
  }

  /* 値セル → 下段 */
  .quick-facts-table td {
    padding: 10px 12px 12px !important;
  }

	
}
/* ========== Tablet: 768–1023px  ========== */
@media (min-width:768px) and (max-width:1023px){
	.pc-only {
	display:none;
}
.sp-only {
	display:inline-block;
}
	.bn-pc-only {
	display:block;
}
.bn-sp-only {
	display: none;
}
  .mobile-only{display:block;}
/* 上段：ロゴ＋言語を1行で中央揃え・はみ出し防止 */
	
.lang-switch--pc { display: none; }
  .lang-switch--sp { display: flex; gap: 10px; margin-left: auto; }
		#site-navigation .navigation-bar-toggle{
    display:inline-flex !important;
    align-items:center;
    gap:.4rem;
    padding:.6rem .75rem;
    color:#333;
  }
  #site-navigation .navigation-bar-wrapper{ display:none; }
  #site-navigation.is-open .navigation-bar-wrapper{ display:block; }
  .mobile-nav-menu-label{ display:none !important; }
  #site-navigation{ position:relative; z-index:40; }
  /* ベース */
  .container {
    width: 100%;
		min-width: 100%;
    padding-inline: 10px;
  }
	.content-area.row{
  margin-left: 0;
  margin-right: 0;   /* ← ネガティブマージン相殺 */
}      /* .row の負マージン打消し */
  .content-area{ padding-left:0; padding-right:0; }            /* 念のため */



	.home-quick-search{ margin-top: 30px !important; }

  /* --- トップのニュース枠 --------------------------- */
  .top-news-frame{
    min-width:100% !important;
    width:100% !important;
    margin-left:0 !important;
    margin-right:0 !important;
    border-width:5px;                 /* 枠を少し細くするなら */
    background-position:right bottom; /* そのままでOK */
    background-size:auto 140px;       /* 画像が大きければ縮める（任意） */
    box-sizing:border-box;
    overflow:hidden; 
	  padding:15px;
  }

  /* ニュースと About ブロックは全幅で縦積み */
  .news-list, .top-about-us{
    width:100% !important; max-width:100% !important;
    margin-left:0 !important; margin-right:0 !important;
    display:block !important; box-sizing:border-box;
  }
	.news-list {
		border-right: none;
	}
	.top-about-us p:nth-child(2)  {
		margin-right:120px;
	}
	 /* 親：flexを縦方向に or block化（どちらでもOK） */
  .top-news-frame.wp-block-columns{
    display:flex !important;
    flex-direction:column !important;
    gap:20px !important;           /* 欲しい行間だけ残す */
  }

  /* 子：インラインの flex-basis を無効化して 100% 幅に */
  .top-news-frame.wp-block-columns > .wp-block-column{
    flex: 0 0 100% !important;     /* 幅を100%に固定 */
    max-width:100% !important;
    width:100% !important;
    margin:0 !important;
    box-sizing:border-box;
  }
  /* さらに念のため：style属性に flex-basis が書かれている要素を上書き */
  .top-news-frame.wp-block-columns > .wp-block-column[style*="flex-basis"]{
    flex-basis:100% !important;
  }
  .top-about-us{ margin:30px 0 170px 0 !important; }   /* 左右の 15px を除去 */

  /* 最新情報（縦レイアウト） */
  .latest-news__list{ margin:0; padding:0 12px; }
  .latest-news__item{ display:block; padding:12px 0; }
  .latest-news__item .ln-date,
  .latest-news__item .ln-cat{ display:inline-block; vertical-align:middle; margin-right:8px; }
  .latest-news__item .ln-date{ min-width:auto; font-size:13px; }
  .latest-news__item .ln-cat{ font-size:12px; line-height:1.8; white-space:nowrap; }
  .latest-news__item .ln-title{ display:block; width:100%; margin-top:6px; font-size:15px; line-height:1.6; }

  /* WPコアの最新投稿ブロックを1列に */
  .wp-block-latest-posts__list{
    width:100% !important; max-width:none !important; margin:20px 0 0 !important;
    display:grid !important; grid-template-columns:1fr !important; gap:20px !important;
    padding:0; list-style:none; box-sizing:border-box;
  }
	.wp-block-latest-posts__list{
		display:grid; grid-template-columns:repeat(2,1fr); gap:8px;
		
	}
  /* アイコンフィルタ 4列 */
  .schools-filters{ display:grid; grid-template-columns:repeat(4,1fr); gap:8px; }
  .schools-filters .btn-filter{ width:100%; }

  /* 任意の .grid を3列にする場合は display も指定 */
  .grid{ display:grid; grid-template-columns:repeat(3,1fr); gap:20px; }

  .sqs-card{ padding:20px 24px; }

	/* 最新の投稿リストを2列に */
.wp-block-latest-posts__list.is-grid {
  display: grid !important;
  grid-template-columns: repeat(2, 1fr) !important; /* 2列 */
  gap: 20px; /* お好みで間隔調整 */
  list-style: none;
  padding: 0;
  margin: 0;
	margin-bottom:30px !important;
}

.wp-block-latest-posts__list.is-grid li {
  margin: 0;  /* 余白リセット */
}

  /* Useful Links を2列に */
  .useful-links .wp-block-columns{
    display:grid !important; grid-template-columns:1fr 1fr; gap:20px; margin:0 !important; text-align:center;
  }
  .useful-links .wp-block-column img{ width:100% !important; height:auto; }
	.school-advanced-search {
		right:0px;
	}
  /* 記事カード：縦積み＋画像は少し小さめ中央寄せ */
  .rowcard{ grid-template-columns:1fr; }
  .rowcard-thumb{ aspect-ratio:auto; width:80%; margin:0 auto 12px; }

  /* quick-facts はテーブル体裁を維持（※school-capacity は別で制御） */
  .quick-facts-table th,
  .quick-facts-table td{ display:table-cell; width:auto; }

  /* 見出しのサイズ少し控えめ */
  .hero-caption__title{ font-size:clamp(24px,4vw,36px); }

  /* 固定要素の解除が必要なら */
  .sticky{ position:relative; top:auto; }
}



/* デスクトップ（小）: 1024px〜1199px */
@media (min-width: 1024px) and (max-width: 1199px) {
  body {
    font-size: 17px;
  }
.sp-only {
	display:none;
}
.pc-only{display:block;}
.mobile-only{display:none;}
  #site-navigation .navigation-bar-toggle{ display:none !important; }
  #site-navigation .navigation-bar-wrapper{ display:block !important; }
	.container {
    width: 100%;
		min-width: 100%;
    padding-inline: 10px;
  }
	.content-area.row{
  margin-left: 0;
  margin-right: 0;   /* ← ネガティブマージン相殺 */
}
	.home-quick-search { position:relative; right:0px; margin-top:0px; padding:0px;}
  .grid {
    grid-template-columns: repeat(4, 1fr); /* タブレットと同じでもOK */
    gap: 24px;
  }
  .sidebar {
    display: block;
    width: 280px;
  }
	main {
		
	}
	.top-news-frame {
	border:#e8e2b3 5px solid;
	background: url("assets/about-us-bg.png")  right bottom no-repeat #fff;
	margin-bottom:50px;
	min-width: 100% !important;  
  margin-left: 0px;        
  margin-right: 0px; 
}
	.school-advanced-search .sqs-field--text,
  .school-advanced-search .sqs-actions{ grid-column:1 / -1; }
	/* アイコンフィルタ 4列 */
  .schools-filters{ display:grid; grid-template-columns:repeat(4,1fr); gap:8px; }
  .schools-filters .btn-filter{ width:100%; }
}

/* デスクトップ（大）: 1200px〜 */
@media (min-width: 1200px) {
  body {
    font-size: 18px;
  }
.sp-only {
	display:none;
}
.pc-only{display:block;}
.mobile-only{display:none;}
  .grid {
    grid-template-columns: repeat(4, 1fr); /* 4カラム */
    gap: 28px;
  }
  .container {
    max-width: 1280px; /* 必要に応じて広げる */
    margin-inline: auto;
  }
}
/* ======= SP + Tablet（〜1023px）: モバイルナビ整形 ======= */
@media (max-width: 1023px){
  /* 1) ハンバーガー（三本線）を少し大きく */
  .main-navigation .navigation-bar-toggle i,
  .main-navigation .ion-navicon-round{
    font-size: 40px;    
    line-height: 1;
  }

  /* 2) ハンバーガー横の “Secondary” ラベルを消す */
  .main-navigation .mobile-nav-menu-label{
    display: none !important;
  }

  /* 3) ドロップダウンを縦積み＆区切り線つきの一般的なトグルメニューに */
  /* メニュー全体の土台 */
  #site-navigation .navigation-bar-wrapper{
    background: #fff;
    border-top: 1px solid #e5e7eb;         /* 上端の線 */
    box-shadow: 0 6px 16px rgba(0,0,0,.06);
  }

  /* UL を縦並びに（テーマが横並び指定していても上書き） */
  #site-navigation .nav-menu{
    display: block !important;
    margin: 0;
    padding: 0;
    list-style: none;
  }

  /* LI を全幅ブロック化＋区切り線 */
  #site-navigation .nav-menu > li{
    display: block !important;
    border-top: 1px solid #ececec;
  }
  /* 先頭だけ線を消す（見た目調整） */
  #site-navigation .nav-menu > li:first-child{
    border-top: none;
  }

  /* タップしやすいリンクの当たり判定と見た目 */
  #site-navigation .nav-menu a{
    display: block !important;
    padding: 14px 18px;
    min-height: 44px;                     /* 指タップ推奨高さ */
    line-height: 1.2;
    color: #1a1a1a;
    text-decoration: none;
  }
  #site-navigation .nav-menu a:hover,
  #site-navigation .nav-menu a:focus{
    background: #f7f7f7;
  }

  /* サブメニューがあるテーマの場合の簡易縦積み（必要なら） */
  #site-navigation .nav-menu .sub-menu{
    display: block !important;
    padding-left: 12px;                   /* 階層インデント */
    border-top: 1px dashed #eee;
  }
  #site-navigation .nav-menu .sub-menu > li{
    border-top: 1px dashed #f0f0f0;
  }
  #site-navigation .nav-menu .sub-menu a{
    padding: 12px 16px;
    font-size: 15px;
  }
}
