@charset "utf-8";


/* =Reset default browser CSS.
Based on work by Eric Meyer: http://meyerweb.com/eric/tools/css/reset/index.html
-------------------------------------------------------------- */
html, body, div, span, applet, object, iframe, h1, h2, h3, h4, h5, h6, p, blockquote, pre, a, abbr, acronym, address, big, cite, code, del, dfn, em, font, ins, kbd, q, s, samp, small, strike, strong, sub, sup, tt, var, dl, dt, dd, ol, ul, li, fieldset, form, label, legend, table, caption, tbody, tfoot, thead, tr, th, td {border: 0;font-family: "UD デジタル 教科書体 N-B","ヒラギノ角ゴ ProN W3", HiraKakuProN-W3, 游ゴシック, "Yu Gothic","游ゴシック体", "Yu Gothic", YuGothic, "Hiragino Kaku Gothic ProN", "Hiragino Sans";font-size: 100%;font-style: inherit;font-weight: inherit;margin: 0;outline: 0;padding: 0;vertical-align: baseline;}
:focus {outline: 0;}

p {
   margin: 1em 0px;   /* 上下に1em・左右に0px */
}

ol, ul {padding-left:25px}
table {border-collapse: separate;border-spacing: 0;}
caption, th, td {font-weight: normal;text-align: left;}
blockquote:before, blockquote:after,q:before, q:after {content: "";}
blockquote, q {quotes: "" "";}
a img{border: 0;}
figure{margin:0}
article, aside, details, figcaption, figure, footer, header, hgroup, menu, nav, section {display: block;}
main { display: block; }
/* -------------------------------------------------------------- */

body{
color:#333;
font:14px,"ヒラギノ丸ゴ ProN W4","Hiragino Maru Gothic ProN","メイリオ","Meiryo","ＭＳ Ｐゴシック","MS PGothic",Sans-Serif;
line-height:2;
background:#f7f7f7;
-webkit-text-size-adjust: none;
}



/* リンク設定
------------------------------------------------------------*/
a{color:#134b88;text-decoration:none;}
a:hover{color:#2871d7;}
a:active, a:focus{outline:0;}


/* 全体
------------------------------------------------------------*/
#wrapper{
margin:0 auto;
padding:20px 1%;
width:98%;
position:relative;
background:#fff;
overflow:hidden;
}

* html #wrapper{background:#fff;}

.inner{
margin:0 auto;
width:100%;
}

/*************
/* ヘッダー
*************/
h1{
font-size:11px;
line-height:1.4;
font-weight:normal;
}

#header{
overflow:hidden;
padding:5px 0 0;
color:#fff;
background:#134b88;
}



* html #header{height:1%;}


/*************
/* ロゴ
*************/
#header .logo{
float:left;
padding:3px 0;
}

.logo a{
color:#fff;
font-size:20px;
font-weight:bold;
line-height:1;
font-family:"Palatino Linotype", "Book Antiqua", Palatino,"ヒラギノ明朝 Pro W3","Hiragino Mincho Pro","ＭＳ Ｐ明朝","MS PMincho",serif;
}

.logo span{
font-size:12px;
font-weight:normal;
}

.info{
float:right;
padding:10px 0;
}

.tel strong{
  font-size:14px;  /* 電話を標準サイズに戻す */
  font-weight:normal;
}

#header .info p{
  margin:0.2em 0;
}

/**************************
/* トップナビゲーション
**************************/
ul#topnav{
clear:both;
overflow:hidden;
margin:0 auto;
padding-left:0;
list-style:none;
background:#123f82;
border-radius:8px 8px 0 0;
}

* html ul#topnav{height:1%;}

ul#topnav li{
float:left;
text-align:center;
list-style:none;
}

ul#topnav a{
width:156px;
font-size:13px;
display:block;
padding:12px 0;
color:#fff;
line-height:1.35;
font-weight:700;
border-left:1px solid #2d5ea8;
transition:background 0.2s;
}

ul#topnav a span{font-size:9px;}

ul#topnav li:first-child a{border:0;}

ul#topnav li:last-child a{width:155px;}

ul#topnav li.active a,
ul#topnav a:hover{
background:#245fae;
}

/**************************
/* メイン画像（トップページ+サブページ）
**************************/
#mainBanner{
clear:both;
line-height:0;
background:#134b88;
}

#mainBanner .inner{position:relative;}

#mainBanner img{
max-width:100%;
height:auto;
}

.slogan{
max-width:100%;
height:20px;
bottom:0px;
left:10px;
padding:5px 10px;
line-height:1;
z-index:100;
}

.slogan h2{
padding-bottom:300px;
font-size:20px;
}

.slogan h3{
font-size:14px;
}

.slogan h4{
font-size:14px;
}


/**************************
/* グリッド
**************************/
.gridWrapper{
padding-bottom:20px;
clear:both;
overflow:hidden;
}

* html .gridWrapper{height:1%;}
	
.grid{
float:left;
padding-bottom:10px;
border:1px solid #dbdbdb;
border-radius:5px 5px 0 0;
}

/* ===== 小見出し ===== */
.grid h3 {
  padding: 4px 8px;
  margin-bottom: 8px;
  font-size: 15px;
  color: #134091;
  border-left: 4px solid #134091;
  background: none;
}

/* ===== h3 統一デザイン（自己紹介・合格実績） ===== */
.profile-group-title,
.ach-card h3{
  margin: 0 0 10px;
  font-size: 15px;
  font-weight: 800;
  color: #1e4fa8;
}

.grid h4{
padding:5px;
font-size:13px;
color:#fff;
text-align:center;
background:#6894e3;
}

.grid p{
padding:10px 10px 0;
}

.grid ul{margin:5px 10px 3px;}

.grid li{
padding:5px 0 4px;
border-bottom:1px solid #ccc;
}

.grid li:first-child{border-top:0;}
.grid li:last-child{border-bottom:0;}

.gridWrapper img{
max-width:100%;
height:auto;
}

/* フッター内のグリッド(3カラム) */
#footer .grid{
color:#fff;
border:0;
background:transparent;
}

#footer .col3 ul{margin:0 0 10px 5px;}

#footer .col3 li{
padding:0 7px 0 5px;
margin-bottom:3px;
list-style:none;
border-bottom:0;
display:inline-block;
border:0;
border-right:1px solid #fff;
}


/*************
メイン コンテンツ
*************/
section.content{
margin-bottom:20px;
font-size:14px;
overflow:hidden;
padding:0 20px;
box-sizing:border-box;
}

#wrapper main{
  padding:10px 10px;
  box-sizing:border-box;
}

#main > section{
  margin-bottom: 32px;
}

/* ===== 共通 ボタン ===== */

.btn{
  display: inline-block;
  text-decoration: none;
  font-weight: 800;
  padding: 12px 14px;
  border-radius: 10px;
  border: 1px solid #cfe0ff;
  background: #f4f7ff;
}

.btn:hover{
  background: #eaf0ff;
}

/* ===== jouken 家庭教師について ===== */

.home-wrap{
  margin-top: 18px;
}

.home-card{
  border: 1px solid #e6e6e6;
  border-radius: 12px;
  background: #fff;
  overflow: hidden;
}

.home-head{
  padding: 16px 18px;
  background: #f8f9ff;
  border-bottom: 1px solid #eee;
}

.home-head-title{
  font-weight: 800;
  font-size: 18px;
  margin-bottom: 6px;
}

.home-head-desc{
  margin: 0;
  line-height: 1.8;
}

.home-body{
  padding: 16px 18px 18px;
}

.home-points{
  list-style: none;
  padding: 0;
  margin: 0 0 14px;
  display: grid;
  gap: 8px;
}

@media (min-width: 900px){
  .home-points{
    grid-template-columns: 1fr 1fr;
  }
}

.home-points li{
  border: 1px solid #e6e6e6;
  border-radius: 10px;
  padding: 12px 12px;
  background: #fff;
  font-weight: 700;
}

.home-areas{
  margin-top: 14px;
  border-top: 1px solid #eee;
  padding-top: 14px;
}

.home-areas-title{
  font-weight: 800;
  margin-bottom: 8px;
}

.area-block{
  display: grid;
  gap: 10px;
}

@media (min-width: 900px){
  .area-block{
    grid-template-columns: 1fr 1fr;
  }
}

.area-box{
  border: 1px solid #e6e6e6;
  border-radius: 10px;
  padding: 12px 12px;
  background: #fff;
}

.area-box .label{
  font-weight: 800;
  margin-bottom: 6px;
}

.area-links a{
  display: inline-block;
  margin-right: 10px;
  margin-bottom: 6px;
}

* html section.content{height:1%;}

section.content p{margin-bottom:5px;}

/* ===== section 見出し ===== */
h2 {
  padding: 5px 10px;
  margin-bottom: 10px;
  font-size: 16px;
  color: #fff;
  background: #134091;
  border-radius: 4px;
}

h4.heading{
padding:5px 10px;
margin-bottom:10px;
font-size:16px;
color:#fff;
background:#6894e3;
}

.alignleft{
float:left;
clear:left;
margin:3px 10px 10px 1px;
}

.alignright{
float:right;
clear:right;
margin:3px 1px 10px 10px;
}

img.frame,#gallery img{
border:1px solid #333;
}

#gallery .gridWrapper{padding:0;}
#gallery .grid{border:0;}


/*************
テーブル
*************/
table.table{
border-collapse:collapse;
width:100%;
margin:10px auto;
}

table.table th,table.table td{
padding:5px;
border:1px solid #2871d7;
}

table.table tr:first-child th,table.table tr:first-child td{
border-top:#2871d7 4px solid
}

table.table th{
font-weight:bold;
letter-spacing:1px;
white-space:nowrap;
color:#fff;
background:#134091;
}


/*************
/* フッター
*************/
#footer .inner{
clear:both;
margin-bottom:20px;
padding:0px 0;
overflow:hidden;
background:#134091;
border-radius:0 0 10px 10px;
}

* html #footer{height:1%;}

#footer a{color:#fff;}

#footer .copyright{font-size:11px;}


/* PC用 */
@media only screen and (min-width:960px){
	#wrapper,.inner,ul#topnav{
	width:940px;
	padding:0;
	}
	
	#wrapper{padding:20px 0;}
	
	#main{
	float:right;
	width:680px;
	padding-right:10px;
	}
	
	#subpage #sub{
	float:left;
	width:235px;
	overflow:hidden;
	}
	
	/* グリッド */
	.gridWrapper{
	width:954px;
	margin-left:-14px;
	padding:0 0px 20px;
	}
	.grid{width:218px;margin:0 0 0 14px;}
	.col2{width:452px;}
	.col3{width:682px;}
	
	#gallery .gridWrapper{width:694px;}
	#gallery .grid{width:217px;}
	#subpage #sub .grid{
	float:none;
	margin-bottom:30px;
	}
	
}




/* モニター幅960px以下 */
@media only screen and (max-width:960px){
	h1{padding:0 1%;width:98%}
	#header .logo{padding-left:10px;}
	#header .info{padding-right:10px;}
	
	ul#topnav{
	display:none;
	clear:both;
	width:100%;
	border-radius:0;
	}

	ul#topnav.active{
	display:block;
	}

	ul#topnav li{
	width:100%;
	border-right:0;
	border-bottom:1px solid #2871d7;
	box-sizing:border-box;
  -webkit-box-sizing:border-box;
  -moz-box-sizing:border-box;
	}

	ul#topnav li:nth-child(3n){
	border-right:0;
	width:100%;
	}

	ul#topnav li a{
	width:100%;
	border:0;
	}

	ul#topnav li:first-child a,
	ul#topnav li:last-child a{
	width:100%;
	}
	
	.grid{
	width:45%;
	margin:2px 2% 10px;
	}
	
	.col2{
	float:none;
	width:99%;
	margin:0 0 20px;
	}
	
	.grid img{
	float:left;
	margin-right:5px;
	}
	
	#gallery .grid{
	width:31%;
	margin:0 1%;
	padding:0;
	}
	
	#gallery .grid img{
	float:none;
	}
	
	section.content{padding:0 10px;}

  	#wrapper main{
		padding:0 12px;
		box-sizing:border-box;
	}
	
	section.content img{
  max-width:90%;
	height:auto;
	}
	
	#sub .grid{padding-bottom:20px;}
	#subpage #sub .grid{
	float:none;
	margin:0 auto 20px;
	width:98%;
	}
	
	#footer{padding:0;}
	
	#footer .grid{
	float:none;
	width:100%;
	margin-bottom:5px;
	text-align:center;
	}

.hamburger{
  display:block;
  width:calc(100% - 20px);
  max-width:100px;
  height:45px;
  margin:10px 10px 10px auto;
  background:#123f82;
  border-radius:6px;
  position:relative;
  cursor:pointer;
  box-sizing:border-box;
}

/* 3本線 */
.hamburger span{
  position:absolute;
  left:16px;
  width:24px;
  height:2px;
  background:#fff;
}

/* ３本線を中央を基準に配置 */
.hamburger span:nth-child(1){
  top:50%;
  transform:translateY(-8px);  /* 上 */
}

.hamburger span:nth-child(2){
  top:50%;
  transform:translateY(0);     /* 真ん中 */
}

.hamburger span:nth-child(3){
  top:50%;
  transform:translateY(8px);   /* 下 */
}

/* MENU文字 */
.menu-label{
  position:absolute;
  right:14px;
  top:50%;
  transform:translateY(-50%);
  margin:0;
  color:#fff;
  font-size:12px;
  text-align:right;
}

}






/* スマートフォン 横(ランドスケープ) */
@media only screen and (max-width:640px){
	.grid img{
	float:none;
	margin:20px auto 10px;
	}
	
	.grid p{text-align:left;}
	
	img.frame,#gallery img{border-width:2px;}

  .alignleft,.alignright{
	float:none;
	display:block;
	margin:0 auto 10px;
	}
	
	#footer .grid p{text-align:center;}
}


/* スマートフォン 縦(ポートレート) */
@media only screen and (max-width:480px){
	#header .logo{padding-top:10px;}
  .info{padding:10px 0;}

	ul#topnav li{
	width:100%;
	}

	ul#topnav li:nth-child(3n){
	border-right:0;
	width:100%;
	}	

	ul#topnav li:nth-child(2n),
	ul#topnav li:nth-child(6n){
	border-right:0;
	}
	
	#mainBanner h2,#mainBanner h3{font-size:80%;}
	
	.grid{width:96%;}
}

/* 上に戻るボタン */
.pagetop {
	color: #fff;
	background-color: rgba(0,0,0,0.3);
	text-decoration: none;
	display: none;
	position: fixed;
	bottom: 1rem;
	right: 1rem;
	font-size: 1.5rem;
	width: 9.3rem;
	height: 3.3rem;
	line-height: 3.3rem;
	border-radius: 3.3rem;
	text-align: center;
	cursor: pointer;
}

.pagetop:hover {
	color: #fff !important;
	background-color: #ed702b;
	text-decoration: none;
}



/* ===== jouken 指導料 ===== */

.fee-wrap{
  margin-top: 20px;
  line-height: 1.8;
}

.fee-group{
  margin-bottom: 32px;
}

.fee-title{
  margin: 0 0 14px;
  padding-left: 10px;
  border-left: 5px solid #3f51b5;
  font-weight: 800;
}

.fee-title.is-graduate{
  border-left-color: #2e7d32;
}

.fee-card{
  border: 1px solid #e6e6e6;
  border-radius: 10px;
  background: #fff;
  overflow: hidden;
}

.fee-row{
  padding: 16px;
  border-bottom: 1px solid #eee;
}

.fee-row:last-child{
  border-bottom: 0;
}

.fee-row .label{
  font-weight: 800;
}

.fee-row .price{
  margin-top: 6px;
}

.fee-strong{
  font-weight: 800;
}

.fee-note{
  margin-top: 18px;
}

.fee-note .highlight{
  border-bottom: 2px solid #e74c3c;
}

.teacher-grid{
  display: grid;
  gap: 14px;
  margin-top: 16px;
}

.teacher-card{
  border: 1px solid #e6e6e6;
  border-radius: 10px;
  padding: 16px;
  background: #fff;
}

.teacher-card .headline{
  font-weight: 800;
  color: #1e4fa8;
  line-height: 1.6;
}

.teacher-card .desc{
  margin-top: 8px;
  color: #333;
}

.teacher-card .desc strong{
  font-weight: 800;
}

@media (min-width: 900px){
  .teacher-grid{
    grid-template-columns: 1fr 1fr 1fr;
  }
}



/* ===== jouken 体験授業 ===== */

.trial-wrap{
  margin-top: 20px;
}

.trial-card{
  border: 2px solid #ff7f7f;
  border-radius: 12px;
  padding: 22px;
  background: #fffafa;
}

.trial-title{
  font-size: 20px;
  font-weight: 800;
  margin-bottom: 14px;
  color: #c0392b;
}

.trial-points{
  list-style: none;
  padding: 0;
  margin: 0 0 18px;
}

.trial-points li{
  margin-bottom: 10px;
  font-weight: 600;
}

.highlight,
.hl,
.trial-highlight{
  background: linear-gradient(transparent 70%, #ffd6d6 0%);
  font-weight: 800;
}

.trial-note{
  font-size: 15px;
  line-height: 1.8;
}

.trial-image{
  margin-top: 18px;
  text-align: left;
}

.trial-image img{
  max-width: 70%;
  border-radius: 10px;
}

@media (max-width: 768px){
  .trial-image img{
    max-width: 100%;
  }
}




/* ===== jouken 指導科目 ===== */
.subjects-wrap{
  margin-top: 16px;
}

.subjects-lead{
  margin: 0 0 12px;
  line-height: 1.8;
}

.subjects-grid{
  display: flex;
  flex-wrap: wrap;
  gap: 10px 10px;
}

.subject-badge{
  display: inline-flex;
  align-items: center;
  padding: 8px 12px;
  border: 1px solid #e6e6e6;
  background: #fff;
  border-radius: 999px;
  font-weight: 800;
  line-height: 1;
}


.subject-badge.math{
  border-color: #e6e6e6;
  background: #eef4ff;
}

.subject-badge.science{
  border-color: #e6e6e6;
  background: #fffde6;
}

.subject-badge.english{
  border-color: #e6e6e6;
  background: #e9fff0;
}

.subject-badge.japanese{
  border-color: #e6e6e6;
  background: #fff0f0;
}

.subject-note{
  margin-top: 12px;
  font-size: 14px;
  line-height: 1.8;
  color: #444;
}

@media (max-width: 480px){
  .subject-badge{
    padding: 8px 10px;
    font-size: 14px;
  }
}

/* ===== jouken 十三の教室での指導について ===== */

.juso-wrap{
  margin-top: 18px;
}

.juso-card{
  border: 1px solid #e6e6e6;
  border-radius: 12px;
  background: #fff;
  overflow: hidden;
}

.juso-head{
  padding: 16px 18px;
  background: #f8f9ff;
  border-bottom: 1px solid #eee;
}

.juso-head-title{
  font-weight: 800;
  font-size: 18px;
  margin-bottom: 6px;
}

.juso-head-desc{
  margin: 0;
  line-height: 1.8;
}

.juso-body{
  padding: 16px 18px 18px;
}

.juso-points{
  list-style: none;
  padding: 0;
  margin: 0 0 14px;
  display: grid;
  gap: 8px;
}

@media (min-width: 900px){
  .juso-points{
    grid-template-columns: 1fr 1fr;
  }
}

.juso-points li{
  border: 1px solid #e6e6e6;
  border-radius: 10px;
  padding: 12px 12px;
  background: #fff;
  font-weight: 700;
}

.juso-cta{
  display: flex;
  gap: 12px;
  flex-wrap: wrap;
  align-items: center;
  margin-top: 14px;
}

.juso-btn{
  display: inline-block;
  text-decoration: none;
  font-weight: 800;
  padding: 12px 14px;
  border-radius: 10px;
  border: 1px solid #cfe0ff;
  background: #f4f7ff;
}

.juso-btn:hover{
  background: #eaf0ff;
}

.juso-sub{
  font-size: 14px;
  color: #555;
  line-height: 1.8;
}

.juso-voice{
  margin-top: 16px;
  border-top: 1px solid #eee;
  padding-top: 16px;
}

.juso-voice-title{
  font-weight: 800;
  margin-bottom: 10px;
}

.juso-voice img{
  width: 100%;
  height: auto;
  border-radius: 10px;
  display: block;
}

/* ===== jouken 通信授業について ===== */

.online-wrap{
  margin-top: 18px;
}

.online-card{
  border: 1px solid #e6e6e6;
  border-radius: 12px;
  background: #fff;
  overflow: hidden;
}

.online-head{
  padding: 16px 18px;
  background: #f8f9ff;
  border-bottom: 1px solid #eee;
}

.online-head-title{
  font-weight: 800;
  font-size: 18px;
  margin-bottom: 6px;
}

.online-head-desc{
  margin: 0;
  line-height: 1.8;
}

.online-body{
  padding: 16px 18px 18px;
}

.online-points{
  list-style: none;
  padding: 0;
  margin: 0 0 14px;
  display: grid;
  gap: 8px;
}

@media (min-width: 900px){
  .online-points{
    grid-template-columns: 1fr 1fr;
  }
}

.online-points li{
  border: 1px solid #e6e6e6;
  border-radius: 10px;
  padding: 12px 12px;
  background: #fff;
  font-weight: 700;
}

.online-cta{
  display: flex;
  gap: 12px;
  flex-wrap: wrap;
  align-items: center;
  margin-top: 14px;
}

.online-btn{
  display: inline-block;
  text-decoration: none;
  font-weight: 800;
  padding: 12px 14px;
  border-radius: 10px;
  border: 1px solid #cfe0ff;
  background: #f4f7ff;
}

.online-btn:hover{
  background: #eaf0ff;
}

.online-sub{
  font-size: 14px;
  color: #555;
  line-height: 1.8;
}

.online-voice{
  margin-top: 16px;
  border-top: 1px solid #eee;
  padding-top: 16px;
}

.online-voice-title{
  font-weight: 800;
  margin-bottom: 10px;
}

.online-voice img{
  width: 100%;
  height: auto;
  border-radius: 10px;
  display: block;
}




/* ===== jouken 問い合わせ ===== */

.contact-wrap{
  margin-top: 18px;
}

.contact-card{
  border: 1px solid #e6e6e6;
  border-radius: 12px;
  background: #fff;
  overflow: hidden;
}

.contact-head{
  padding: 18px 20px;
  border-bottom: 1px solid #eee;
  background: #f8f9ff;
}

.contact-head-title{
  font-size: 18px;
  font-weight: 800;
  margin-bottom: 6px;
}

.contact-head-sub{
  margin: 0;
  line-height: 1.8;
}

.contact-grid{
  display: grid;
  gap: 12px;
  padding: 16px 20px 20px;
}

@media (min-width: 900px){
  .contact-grid{
    grid-template-columns: 1.2fr 1fr 1fr;
  }
}

.contact-item{
  border: 1px solid #e6e6e6;
  border-radius: 12px;
  padding: 16px;
  background: #fff;
}

.contact-item.is-primary{
  border-color: #cfe0ff;
  background: #f4f7ff;
}

.contact-label{
  font-weight: 800;
  margin-bottom: 8px;
  display: flex;
  gap: 8px;
  align-items: center;
}

.contact-badge{
  display: inline-block;
  font-size: 12px;
  font-weight: 800;
  padding: 2px 8px;
  border-radius: 999px;
  background: #e74c3c;
  color: #fff;
}

.contact-desc{
  margin: 0 0 10px;
  line-height: 1.8;
}

.contact-action a{
  display: inline-block;
  text-decoration: none;
  font-weight: 800;
  padding: 10px 12px;
  border-radius: 10px;
  border: 1px solid #d9d9d9;
  background: #fff;
}

.contact-item.is-primary .contact-action a{
  border-color: #cfe0ff;
}

.contact-small{
  font-size: 14px;
  line-height: 1.8;
  color: #333;
  margin-top: 10px;
}

.contact-rule{
  margin-top: 14px;
  border: 2px solid #ff7f7f;
  background: #fffafa;
  border-radius: 12px;
  padding: 16px 18px;
}

.contact-rule strong{
  background: linear-gradient(transparent 60%, #ffd6d6 0%);
}

.contact-warn{
  margin-top: 14px;
  border: 1px solid #ffe3b5;
  background: #fff8eb;
  border-radius: 12px;
  padding: 14px 18px;
}

.contact-warn-title{
  font-weight: 800;
  margin-bottom: 8px;
}

.contact-warn ul{
  margin: 0;
  padding-left: 18px;
  line-height: 1.9;
}


/* ===== jouken 問い合わせ google form ===== */

.contact-form-wrap{
  margin-top: 28px;
}

.contact-form-head{
  text-align: center;
  margin-bottom: 14px;
}

.contact-form-head-title{
  font-weight: 800;
  font-size: 18px;
  margin-bottom: 6px;
}

.contact-form-head-sub{
  font-size: 14px;
  color: #555;
}

.contact-form-box{
  border: 1px solid #e6e6e6;
  border-radius: 12px;
  overflow: hidden;
  background: #fff;
}

.contact-form-box iframe{
  display: block;
  width: 100%;
  border: 0;
}


/* ===== index ファーストビュー補強 ===== */

.hero-intro{
  margin: 18px 0 26px;
  padding: 16px 18px;
  border: 1px solid #e6e6e6;
  border-radius: 12px;
  background: #fff;
}

.hero-lead{
  margin: 0 0 12px;
  line-height: 1.9;
  font-weight: 700;
}

.hero-points{
  margin: 0;
  padding-left: 18px;
  line-height: 1.9;
}

.hero-cta{
  margin-top: 14px;
}

.hero-btn{
  display: inline-block;
  text-decoration: none;
  font-weight: 800;
  padding: 12px 14px;
  border-radius: 10px;
  border: 1px solid #cfe0ff;
  background: #f4f7ff;
}




/* ===== index 自己紹介 ===== */

.profile{
  margin-top: 10px;
}

.profile-lead{
  margin: 0 0 14px;
  line-height: 1.9;
}

.profile-groups{
  display: grid;
  padding: 0px 0px;
  gap: 12px;
}

@media (min-width: 900px){
  .profile-groups{
    grid-template-columns: 1fr;
  }
}

.profile-group{
  border: 1px solid #e6e6e6;
  border-radius: 12px;
  background: #fff;
  padding: 14px 16px;
}

.profile-group-title{
  margin: 0 0 10px;
  font-size: 15px;
  font-weight: 800;
  color: #1e4fa8;
}

.profile-list{
  margin: 0;
  padding-left: 20px;
  line-height: 1.9;
}

.profile-list li{
  margin: 6px 0;
}

.profile-highlight{
  font-weight: 800;
  background: linear-gradient(transparent 60%, #ffd6d6 0%);
}


/* ===== index 合格実績 ===== */

.ach-wrap{
  margin-top: 10px;
  display: grid;
  gap: 12px;
}

.ach-card{
  border: 1px solid #e6e6e6;
  border-radius: 12px;
  background: #fff;
  padding: 14px 16px;
}

.ach-card h3{
  margin: 0 0 10px;
}

.ach-list{
  margin: 0;
  padding-left: 0;
  list-style: none;
  display: grid;
  gap: 10px;
}

.ach-list li{
  margin: 0;
  padding: 0;
  border: 0;
}

.ach-label{
  display: inline-block;
  font-weight: 800;
  font-size: 12px;
  padding: 3px 8px;
  border-radius: 999px;
  border: 1px solid #cfe0ff;
  background: #f4f7ff;
  margin-right: 8px;
}

.ach-items{
  display: inline;
  line-height: 1.9;
}

.ach-items a{
  display: inline-block;
  margin-right: 10px;
  margin-bottom: 4px;
}

.ach-text{
  margin: 0;
  line-height: 1.9;
}

/* ===== index 合格実績（横並び整形） ===== */

.ach-block{
  margin: 0 0 14px;
}

.ach-head{
  margin: 0 0 6px;
}

.ach-head-text{
  font-weight: 800;
}

.ach-line{
  display: flex;
  flex-wrap: wrap;
  gap: 6px 16px;   /* 行間・横間隔 */
  line-height: 1.9;
  margin: 2px 0;
}

.ach-line a,
.ach-line span{
  display: inline-block;
}

/* ===== 合格実績 横並び強化 ===== */

.ach-line{
  display: flex;
  flex-wrap: wrap;
  gap: 8px 18px;
  line-height: 1.9;
  margin: 4px 0;
}

.ach-line span,
.ach-line a{
  display: inline-block;
}

.ach-line a{
  text-decoration: none;
}

.ach-line a:hover{
  text-decoration: underline;
}


/* ===== index 出身校 ===== */

.school-wrap{
  display: grid;
  gap: 14px;
  margin-top: 10px;
}

.school-card{
  border: 1px solid #e6e6e6;
  border-radius: 12px;
  background: #fff;
  padding: 14px 16px;
}

.school-sub{
  font-weight: 700;
  margin: 10px 0 4px;
  color: #134091;
}

.school-line{
  display: flex;
  flex-wrap: wrap;
  gap: 6px 16px;
  line-height: 1.9;
}

.school-line span,
.school-line a{
  display: inline-block;
}

/* ===== index 指導実績 ===== */
.perf-block{
  margin-top: 12px;
}

.perf-legend{
  display: flex;
  align-items: center;
  gap: 8px;
  margin: 8px 0 12px;
}

.perf-badge{
  display: inline-block;
  padding: 2px 10px;
  border-radius: 999px;
  font-size: 13px;
  font-weight: 700;
}

.perf-badge--before{ background: #eaf3ff; color: #0b4a7a; }
.perf-badge--after{ background: #ffecec; color: #7a0b0b; }
.perf-legend-arrow{ color: #666; font-weight: 700; }

.perf-list{
  list-style: none;
  padding: 0;
  margin: 0;
  display: grid;
  gap: 10px;
}

.perf-item{
  background: #fff;
  border: 1px solid #e6e8ef;
  border-radius: 12px;
  padding: 10px 12px;
}

.perf-meta{
  font-weight: 800;
  margin-bottom: 6px;
  padding: 0 5px;
}

.perf-scores{
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 8px;
  line-height: 1.7;
  padding: 0 5px;
}

.perf-score{
  display: inline-block;
  padding: 2px 8px;
  border-radius: 6px;
  font-size: 13px;
}

.perf-score--before{ background: #eaf3ff; }
.perf-score--after{ background: #ffecec; }
.perf-arrow{ color: #666; font-weight: 700; }


/* ===== index 指導実績 見出し帯 ===== */

.perf-title{
  margin: 18px 0 12px;
  padding: 12px 16px;
  border-radius: 12px;
  background: #fff5d6;
border: 1px solid #eac26b;

  font-size: 15px;      /* ←大きく */
  font-weight: 900;     /* ←より強く */
  letter-spacing: 0.5px;
  text-align: center;
}



/* ===== index 保護者の方の声 ===== */

.parents-gallery{
  display: block;     /* ←グリッドやめる */
  margin: 10px 0 18px;
}

.parents-gallery img{
  width: 100%;
  height: auto;
  display: block;
  border-radius: 12px;
  border: 1px solid #e6eaf2;
  margin-bottom: 14px;  /* ←縦間隔 */
}

.parents-voices{
  display: grid;
  gap: 12px;
}

.voice-card{
  background: #ffffff;
  border: 1px solid #e6eaf2;
  border-radius: 12px;
  padding: 12px 12px;
  box-shadow: 0 1px 0 rgba(0,0,0,.03);
}

.voice-meta{
  font-size: 13px;
  font-weight: 700;
  color: #134091;
  margin: 0 0 6px;
}

.voice-card p{
  margin: 0;
  line-height: 1.8;
}

@media (max-width: 720px){
  .parents-gallery{
    grid-template-columns: 1fr;
  }
}

/* ===== index 教室11年目 ===== */

.room-wrap{
  display: grid;
  gap: 14px;
  margin-top: 10px;
}

.room-media img{
  width: 100%;
  height: auto;
  display: block;
  border-radius: 12px;
  border: 1px solid #e6eaf2;
}

/* 画像が複数ある場合に自然に並べる（スマホは縦） */
.room-media{
  display: grid;
  gap: 12px;
}

@media (min-width: 900px){
  .room-wrap{
    grid-template-columns: 1fr 1.15fr; /* 左：写真 / 右：文章 */
    align-items: start;
  }
}

.room-lead{
  margin: 0 0 10px;
  line-height: 1.9;
}

.room-points{
  margin: 0;
  padding-left: 20px;
  line-height: 1.9;
}

.room-points li{
  margin: 6px 0;
}

.room-cta{
  margin-top: 14px;
}

/* ===== index 教室紹介 アクセス強調 ===== */

.juso-access{
  margin: 22px 0;
  padding: 10px 12px;
  text-align: center;
  font-size: 14px;
  font-weight: 800;
  line-height: 1.7;

  background: #f3f6fb;              /* 薄いブルーグレー */
  border: 2px solid #134091;        /* サイト基調色 */
  border-radius: 18px;              /* 上品な角丸 */

  color: #222;
}

.juso-access .accent{
  color: #e53935;                   /* 強調は今の赤を維持 */
}

.room-photo img{
  width:80%;
  max-width:700px;
  height:auto;
  display:block;
  margin:0 auto;
}


/* ===== index 生徒募集 ===== */

.student-wrap{
  margin-top: 18px;
}

.student-card{
  border: 1px solid #e6e6e6;
  border-radius: 12px;
  background: #fff;
  overflow: hidden;
}

.student-head{
  padding: 16px 18px;
  background: #f8f9ff;
  border-bottom: 1px solid #eee;
}

.student-title{
  font-weight: 800;
  font-size: 18px;
  margin: 0 0 6px;
}

.student-lead{
  margin: 0;
  line-height: 1.8;
}

.student-grid{
  display: grid;
  gap: 14px;
  padding: 16px 18px 18px;
}

@media (min-width: 900px){
  .student-grid{
    grid-template-columns: 1.2fr 1fr;
    align-items: start;
  }
}

.student-note{
  margin: 0 0 12px;
  line-height: 1.8;
}

.student-points{
  margin: 0 0 14px;
  padding-left: 18px;
  line-height: 1.9;
}

.student-cta{
  display: flex;
  gap: 12px;
  flex-wrap: wrap;
  align-items: center;
  margin-top: 10px;
}

.student-details{
  margin-top: 16px;
  border-top: 1px solid #eee;
  padding-top: 14px;
}

.student-details summary{
  cursor: pointer;
  font-weight: 800;
}

.student-area-list{
  margin-top: 10px;
}

.student-area-list p{
  margin: 10px 0;
  line-height: 1.9;
}

@media (min-width: 900px){
  .student-area-list{
    column-count: 2;
    column-gap: 18px;
  }

  .student-area-list p{
    break-inside: avoid;
  }
}

/* 右側：LINE（ボタン＋QR） */
.student-line{
  display: grid;
  gap: 10px;
}

.student-line-btn{
  display: inline-block;
  text-decoration: none;
  font-weight: 800;
  padding: 12px 14px;
  border-radius: 10px;
  border: 1px solid #cfe0ff;
  background: #f4f7ff;
}

.student-line-btn:hover{
  background: #eaf0ff;
}

.student-qr{
  width: 170px;
  max-width: 100%;
  height: auto;
  border-radius: 10px;
  border: 1px solid #e6e6e6;
  background: #fff;
}



/* ===== index 生徒募集 ===== */

.student-card{
  background:#ffffff;
  border:1px solid #e6eaf2;
  border-radius:12px;
  padding:18px;
  margin-top:16px;
}

.student-lead{
  margin:0 0 14px;
  line-height:1.9;
}

.student-points{
  margin:0 0 16px;
  padding-left:20px;
  line-height:1.9;
}

.student-points li{
  margin:6px 0;
}

.student-cta{
  display:flex;
  gap:12px;
  flex-wrap:wrap;
  margin:12px 0 8px;
}

.student-schools{
  margin-top:14px;
  padding-top:12px;
  border-top:1px solid #eee;
}

.student-schools summary{
  cursor:pointer;
  font-weight:800;
}

.school-columns{
  margin-top:10px;
}

.school-columns p{
  margin:10px 0;
  line-height:1.9;
}

@media (min-width:900px){
  .school-columns{
    column-count:2;
    column-gap:20px;
  }
  .school-columns p{
    break-inside:avoid;
  }
}



/* ===== shakaijin.html 専用：問い合わせ前の「× / ◯ 比較ブロック」 ===== */
.choice-compare{
  display: grid;
  gap: 18px;              /* ← ここで×と◯の距離が広がる */
  margin: 18px 0 26px;    /* ← 上下の余白も少し増やす */
}

.choice{
  display:flex;
  align-items:center;
  gap:14px;
  padding:18px 18px;      /* ← 少し厚みを出して詰まり感を減らす */
  border-radius:14px;
  font-weight:800;
  font-size:16px;
  line-height:1.6;
}
/* ===== shakaijin.html 専用：問い合わせ前の「× / ◯ 比較ブロック」 ===== */

.choice--ng{
  background:#f6f6f6;
  border:1px solid #e0e0e0;
  color:#777;
}

.choice--ok{
  background:#ffffff;
  border:2px solid #8c1c2e;
  box-shadow:0 8px 20px rgba(140,28,46,0.12);
  color:#8c1c2e;
}

/* 丸アイコン（共通） */
.choice-mark{
  width:28px;
  height:28px;
  border-radius:50%;
  position:relative;
  flex-shrink:0;
}

/* ×丸 */
.choice-mark--cross{
  background:#dddddd;
}

.choice-mark--cross::before,
.choice-mark--cross::after{
  content:"";
  position:absolute;
  top:6px;
  left:13px;
  width:3px;
  height:16px;
  background:#777;
}

.choice-mark--cross::before{ transform:rotate(45deg); }
.choice-mark--cross::after{ transform:rotate(-45deg); }

/* ◯丸（チェック） */
.choice-mark--circle{
  background:#8c1c2e;
}

.choice-mark--circle::after{
  content:"";
  position:absolute;
  left:8px;
  top:5px;
  width:8px;
  height:14px;
  border-right:3px solid #fff;
  border-bottom:3px solid #fff;
  transform:rotate(45deg);
}

/* ===== shakaijin.html：併用メッセージ ===== */
.parallel-message{
  margin: 18px 0 24px;
  line-height: 1.9;
}

.parallel-message p{
  margin-bottom: 14px;
}

.parallel-message strong{
  font-weight: 900 !important;
  background: linear-gradient(transparent 60%, #ffe6e6 0%);
}


/* ===== shakaijin.html：左右します以降（本文の見やすさ改善） ===== */

.shakaijin-after{
  margin: 18px 0 10px;
}

.shakaijin-h{
  margin: 22px 0 10px;
  font-size: 18px;
  font-weight: 900;
  line-height: 1.5;
}

.shakaijin-split{
  display: grid;
  gap: 14px;
  margin: 10px 0 18px;
}

@media (min-width:900px){
  .shakaijin-split{
    grid-template-columns: 1fr 1fr;
  }
}

.shakaijin-card{
  border-radius: 14px;
  padding: 14px 14px;
  border: 1px solid #e6e6e6;
  background: #fff;
}

.shakaijin-card-title{
  font-weight: 900;
  margin-bottom: 8px;
}

.shakaijin-card--blue{
  background: #f4f7ff;
  border-color: #cfe0ff;
}

.shakaijin-card--red{
  background: #fff5f5;
  border-color: #ffd0d0;
}

.shakaijin-list{
  margin: 8px 0 0;
  padding-left: 22px;
  line-height: 1.9;
}

.shakaijin-points{
  margin: 10px 0 16px;
  padding-left: 22px;
  line-height: 1.9;
}

.shakaijin-steps{
  display: grid;
  gap: 10px;
  margin: 12px 0 18px;
}

.shakaijin-step{
  display: flex;
  gap: 12px;
  align-items: flex-start;
  padding: 12px 12px;
  border: 1px solid #eee;
  border-radius: 14px;
  background: #ffffff;
}

.shakaijin-step-no{
  width: 28px;
  height: 28px;
  border-radius: 50%;
  display:flex;
  align-items:center;
  justify-content:center;
  font-weight: 900;
  color: #fff;
  background: #134b88; /* サイトのヘッダー系の青に寄せる */
  flex-shrink: 0;
}

.shakaijin-step-title{
  font-weight: 900;
  margin-bottom: 2px;
}

.shakaijin-step-text{
  line-height: 1.8;
  color: #444;
}

.shakaijin-details{
  margin: 10px 0 18px;
  border: 1px solid #eee;
  border-radius: 14px;
  padding: 10px 12px;
  background: #fff;
}

.shakaijin-details summary{
  cursor: pointer;
  font-weight: 900;
}

.shakaijin-details-body{
  margin-top: 10px;
}

.shakaijin-note{
  margin-top: 10px;
}

.shakaijin-cta{
  display: flex;
  flex-wrap: wrap;
  gap: 12px;
  margin: 14px 0 6px;
  align-items: center;
}

.shakaijin-cta-btn{
  display: inline-block;
  padding: 12px 14px;
  border-radius: 12px;
  background: #134b88;
  color: #fff;
  font-weight: 900;
  text-decoration: none;
  border: 1px solid #134b88;
}

.shakaijin-cta-btn:hover{
  background: #0f3b6b;
}

.shakaijin-cta-sub{
  display: inline-block;
  padding: 12px 14px;
  border-radius: 12px;
  background: #ffffff;
  color: #134b88;
  font-weight: 900;
  text-decoration: none;
  border: 1px solid #cfe0ff;
}

/* ===== shakaijin：併用サポート内容 ===== */
.support-grid{
  display:grid;
  gap:12px;
  margin:16px 0 22px;
  padding:0;
  list-style:none;
}

@media (min-width:900px){
  .support-grid{
    grid-template-columns:1fr 1fr;
  }
}

.support-grid li{
  background:#ffffff;
  border:1px solid #eee;
  border-radius:12px;
  padding:12px 14px;
  line-height:1.8;
}

.support-grid strong{
  font-weight:900;
  display:block;
  margin-bottom:4px;
}


/* ===== shakaijin.html：予備校なしルート ===== */
.shakaijin-solo{
  margin: 10px 0 18px;
  padding: 14px 14px;
  border: 1px solid #e6e6e6;
  border-radius: 14px;
  background: #fff;
}

.shakaijin-solo-lead{
  margin: 0 0 10px;
  line-height: 1.9;
  font-weight: 700;
}

.shakaijin-solo-note{
  margin: 10px 0 0;
  line-height: 1.9;
  color: #444;
}


/* ===== shakaijin.html：予備校なしメッセージ（本文補強） ===== */
.shakaijin-solo-message{
  margin: 10px 0 16px;
  padding: 12px 14px;
  border: 1px solid rgba(0,0,0,0.08);
  border-radius: 14px;
  background: #ffffff;
  line-height: 1.9;
}

.shakaijin-solo-message p{
  margin: 0 0 10px;
}

.shakaijin-solo-message p:last-child{
  margin-bottom: 0;
}

/* ===== shakaijin.html：strong（マーカー強調を有効化） ===== */
.shakaijin-solo-message strong{
  font-weight: 900 !important;
  background: linear-gradient(transparent 60%, #ffe6e6 0%) !important;
}

/* ===== shakaijin.html：このセクション内の strong を統一 ===== */
.shakaijin-after strong{
  font-weight: 900 !important;
  background: linear-gradient(transparent 60%, #ffe6e6 0%) !important;
}

/* ===== shakaijin.html：最後の1文マーカー（確実に表示） ===== */
.shakaijin-after .highlight-last{
  display: inline; /* pにつけてもOK */
  font-weight: 900;
  background: linear-gradient(transparent 60%, #ffe6e6 0%) !important;
  box-decoration-break: clone;
  -webkit-box-decoration-break: clone;
  padding: 0 2px;
}

/* ===== shakaijin.html：FAQ ===== */
.shakaijin-faq dl{ margin: 10px 0 18px; }
.shakaijin-faq dt{
  font-weight: 900;
  margin: 14px 0 6px;
}
.shakaijin-faq dd{
  margin: 0 0 10px;
  line-height: 1.9;
  color: #333;
}


/* ===== shakaijin.html：strong（マーカー強調を有効化） ===== */
.shakaijin-lead strong{
  font-weight: 900 !important;
  background: linear-gradient(transparent 60%, #ffe6e6 0%) !important;
}


/* ===== FAQ（共通）===== */
/* dl/dt/dd をカード化して，QとAを視覚で分ける */

.faq-wrap{
  margin-top: 16px;
}

.faq-box,
.toggle-box{
  border: 1px solid #dbe7f5;
  border-radius: 14px;
  background: #ffffff;
  overflow: hidden;
  box-shadow: 0 6px 18px rgba(0,0,0,0.05);
}

.faq-box dl,
.toggle-box dl{
  margin: 0;
  padding: 0;
}

.faq-box dt,
.faq-box dd,
.toggle-box dt,
.toggle-box dd{
  margin: 0;
  padding: 14px 16px;
}

.faq-box dt,
.toggle-box dt{
  position: relative;
  font-weight: 800;
  line-height: 1.7;
  background: #f5f9ff;
  border-top: 1px solid #e6eef9;
  padding-left: 56px;
}

.faq-box dt:first-of-type{
  border-top: none;
}

.faq-box dt::before,
.toggle-box dt::before{
  content: "Q";
  position: absolute;
  left: 16px;
  top: 14px;
  width: 28px;
  height: 28px;
  border-radius: 50%;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  font-weight: 900;
  color: #114b86;
  background: #dfeeff;
}

.faq-box dd,
.toggle-box dd{
  position: relative;
  line-height: 1.9;
  color: #222;
  padding-left: 56px;
  border-bottom: 1px solid #edf3fb;
}

.faq-box dd:last-of-type{
  border-bottom: none;
}

.faq-box dd::before,
.toggle-box dd::before{
  content: "A";
  position: absolute;
  left: 16px;
  top: 14px;
  width: 28px;
  height: 28px;
  border-radius: 50%;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  font-weight: 900;
  color: #8a1f1f;
  background: #ffe3e3;
}

/* 文章が長いAを読みやすく（段落風に） */
.faq-box dd br{
  content: "";
  display: block;
  margin-bottom: 6px;
}

.faq-box dd p{
  margin: 0 0 10px 0;
}

.faq-box dd p:first-child{
  margin-top: 0;
}

/* FAQ内の強調 */
.faq-box .highlight,
.faq-box .trial-highlight{
  background: linear-gradient(transparent 60%, #ffd6d6 0%);
  font-weight: 800;
}

/* スマホ最適化 */
@media (max-width: 768px){
  .faq-box dt,
  .faq-box dd,
  .toggle-box dt,
  .toggle-box dd{
    padding: 12px 14px;
    padding-left: 52px;
  }
  .faq-box dt::before,
  .faq-box dd::before,
  .toggle-box dt::before,
  .toggle-box dd::before{
    left: 14px;
    top: 12px;
  }
}


/* FAQ・トグル共通 アコーディオン */
.faq-box dt,
.toggle-box dt {
    position: relative;
    cursor: pointer;
    padding-right: 2.2em;
}

/* ＋アイコン */
.faq-box dt::after,
.toggle-box dt::after {
    content: "＋";
    position: absolute;
    right: 0.8em;
    top: 50%;
    transform: translateY(-50%);
    font-weight: bold;
}

/* 開いたとき */
.faq-box dt.open::after,
.toggle-box dt.open::after {
    content: "－";
}

/* 初期は閉じる */
.faq-box dd,
.toggle-box dd {
    display: none;
}

/* 開いたとき */
.faq-box dd.open,
.toggle-box dd.open {
    display: block;
}

/* ===== Kitanojuku: 北野高校出身者 合格実績 ===== */
.ka-card.ka-v1{
  background:#eef3ff;
  padding:16px 18px 12px;
  border-radius:12px;
  border:1px solid rgba(0,0,0,.08);
  box-shadow:0 2px 8px rgba(0,0,0,0.08);
}

.ka-title{
  font-weight: 900;
  font-size: 20px;
  margin-bottom: 10px;
  letter-spacing:.02em;
}

.ka-yearcard{
  background: rgba(255,255,255,.65);
  border: 1px solid rgba(0,0,0,.08);
  border-radius: 10px;
  padding: 12px 12px 10px;
  margin: 10px 0;
}

.ka-yearline{ margin-bottom: 4px; }
.ka-year{ font-weight: 900; font-size: 20px; }
.ka-gender{ font-weight: 900; font-size: 18px; margin-left: 6px; }
.ka-note{ font-weight: 700; font-size: 14px; margin-left: 10px; color:#333; }

.ka-line{ font-size: 16px; font-weight: 650; margin: 3px 0; }

.ka-arrow{
  font-weight: 850;
  padding-left: 10px;
  border-left: 4px solid rgba(0,0,0,.12);
  margin-top: 6px;
}

.ka-blue{ color:#1f4fd6; font-weight: 900; }
.ka-red{ color:#d10000; font-weight: 900; }
.ka-gap{ display:inline-block; width: 18px; }

.ka-foot{
  margin-top: 10px;
  font-size: 14px;
  font-weight: 750;
}


/* ===== kitano: flow lines（枠なし・読みやすさ強化） ===== */
.flow-lines{
  margin: 14px 0 18px;
  padding-left: 10px;
  border-left: 4px solid rgba(32,74,156,.18);
  background:#eef3ff;
}

.fl-line{
  margin: 0 0 10px;
  font-weight: 750;
  line-height: 1.9;          /* ここが効く */
  letter-spacing: .02em;
  color: #111;
}

.fl-arrow{
  display: inline-block;
  margin-right: 8px;
  font-weight: 900;
  font-size: 1.18em;
  transform: translateY(1px);
}

/* 途中（2行目）だけ薄い帯：枠じゃないけど視認性が上がる */
.fl-band{
  display: inline;
  padding: 2px 6px 3px;
  border-radius: 6px;
}

/* 結論は「下線ハイライト」＋太字 */
.fl-goal{
  margin-top: 8px;
  font-weight: 900;
  font-size: 1.08em;
}

.fl-goal .fl-arrow{
  font-size: 1.22em;
}

.fl-goaltext{
  background: linear-gradient(transparent 62%, rgba(255,214,214,.95) 0%);
  padding: 0 2px;
}

/* スマホ：文字が詰まりやすいので少し調整 */
@media (max-width: 680px){
  .flow-lines{ padding-left: 12px; }
  .fl-line{ letter-spacing: .01em; }
  .fl-band{ padding: 2px 5px 3px; }
}



/* ===== shidou.html ===== */

/* 科目別ボタン */
.subject-lead{
  margin: 8px 0 12px;
  color: #555;
  font-size: 95%;
}

.subject-nav{
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 14px;
  margin: 10px 0 24px;
}

.subject-navone{
  display: grid;
  grid-template-columns: repeat(1, minmax(0, 1fr));
  gap: 14px;
  margin: 10px 0 24px;
}

.subject-btn{
  display: flex;
  align-items: center;
  justify-content: space-between;

  padding: 16px 18px;
  border-radius: 10px;

  background:#e6f0ff;
border:1px solid #9bbcf5;
color:#1b3a6b;

  text-decoration: none;
  font-weight: 700;
  line-height: 1.25;

  box-shadow: 0 6px 16px rgba(0,0,0,.12);
  transition: transform .12s ease, box-shadow .12s ease, background .12s ease;
}

.subject-btn .arrow{
  margin-left: 12px;
  opacity: .95;
  transform: translateX(0);
  transition: transform .12s ease, opacity .12s ease;
}

.subject-btn:hover{
  background: #245f9b;
  transform: translateY(-2px);
  box-shadow: 0 10px 22px rgba(0,0,0,.18);
  color: #fff;
}

.subject-btn:hover .arrow{
  transform: translateX(4px);
  opacity: 1;
}

/* キーボード操作の見やすさ */
.subject-btn:focus-visible{
  outline: 3px solid rgba(47,123,255,.35);
  outline-offset: 3px;
}

/* スマホ：縦に並べて押しやすく */
@media (max-width: 700px){
  .subject-nav{
    grid-template-columns: 1fr;
  }
  .subject-btn{
    padding: 16px 16px;
  }
}

/* strongを強調として復活（リセットで潰れているため） */
strong{
  font-weight: 800;
}

/* 指導の特徴ボックス */
.feature-box{
  background:#eef5ff;
  border-left:6px solid #2f6fb3;
  border-radius:8px;
  padding:10px 20px;
  margin:12px 0;
}

/* 見出し */
.feature-title{
  font-weight:700;
  font-size:1.1em;
  margin-bottom:10px;
  color:#1b3a6b;
}

/* リスト */
.feature-list{
  margin:0;
  padding-left:20px;
}

/* 各項目 */
.feature-list li{
  margin:8px 0;
  line-height:1.6;
}


.shidou-outline{
  background:#f7fbff;
  border:1px solid #cfe2ff;
  border-radius:6px;
  padding:12px 16px;
  margin:14px 0 20px 0;
}

.shidou-outline li{
  margin:6px 0;
}


.approach-box{
  margin:20px 0;
}

.approach-card{
  background:#f7fbff;
  border:1px solid #cfe2ff;
  border-left:6px solid #2f6fb3;
  border-radius:8px;
  padding:16px 18px;
  margin-bottom:14px;
}

.approach-title{
  font-weight:700;
  font-size:1.05em;
  margin-bottom:6px;
}

.approach-target{
  margin:6px 0 8px 0;
  font-size:0.95em;
  color:#2f6fb3;
  font-weight:600;
}


.result-lead{
  margin: 10px 0 6px;
}

.result-bullets{
  margin: 8px 0 16px 18px;
  padding-left: 18px;
}

.result-bullets li{
  margin: 8px 0;
  line-height: 1.6;
}

.school-note{
  margin: 10px 0 18px;
  padding: 10px 14px;
  border: 1px solid #d7e6ff;
  background: #f7fbff;
  border-radius: 8px;
  font-size: 0.95em;
  line-height: 1.7;
}

.school-note-label{
  display: inline-block;
  font-weight: 700;
  color: #1b3a6b;
  margin-right: 10px;
}

.school-note-body a{
  text-decoration: underline;
  text-underline-offset: 2px;
}

.exam-list{
margin:10px 0 16px 18px;
}

.exam-list li{
margin:10px 0;
}



.approach-card p{
  margin: 8px 0;
}



/* ===== 指導ページ（数学）：苦手克服ブロック ===== */
section.content .topic-block{
  margin: 20px 0 34px;
}

section.content .lead{
  line-height: 1.9;
  font-size: 1.05em;
  margin: 12px 0 16px;
}

/* ※今 5px になっているなら、ここで上書きして詰まりを解消 */
section.content p{
  margin: 0 0 16px;
}

section.content .note-box,
section.content .point-box{
  border: 2px solid rgba(242,185,214,.55);
  background: rgba(255,232,243,.45);
  border-radius: 16px;
  padding: 14px 28px;
  margin: 14px 0 16px;
  display:inline-block;
  max-width:100%;
}

section.content .point-box ul{
  margin:0;
  padding-left:1.2em;
}

/* 箇条書きで青色を付ける */
section.content .point-box.point-box-yellow{
background:#fffdf4;
border-color:#fcf9e9;
}
/* 箇条書きでピンク色を付ける */
section.content .point-box.point-box-pink{
  border: 2px solid rgba(242,185,214,.55);
  background: rgba(255,232,243,.45);
}

section.content .note-title,
section.content .point-title{
  margin: 0 0 6px;
  font-weight: 800;
}

section.content .note-text,
section.content .point-text{
  margin: 0;
  line-height: 1.85;
}

section.content .checklist{
  margin: 10px 0 16px;
  padding-left: 1.2em;
}

section.content .checklist li{
  margin: 10px 0;
  line-height: 1.85;
}

section.content .check-title{
  font-weight: 800;
  display: inline;
}

section.content .check-desc{
  display: inline;
  opacity: .9;
}

/* 見出し直下の余白が欲しければ */
section.content .heading + *{
  margin-top: 14px;
}


.subject-footer{
margin-top:40px;
padding:20px;
background:#f5f7fb;
border-radius:8px;
text-align:center;
}

.subject-footer a{
font-weight:bold;
text-decoration:none;
color:#1a4fa3;
}

.subject-footer a:hover{
text-decoration:underline;
}


/* 化学：覚え方の具体例ボックス */
section.content .memory-box{
  border: 2px solid #f3d9a6;
  background: #fffaf0;
  border-radius: 16px;
  padding: 16px 18px;
  margin: 18px 0 20px;
}

section.content .memory-title{
  margin: 0 0 10px;
  font-weight: 800;
  font-size: 1.08em;
}

section.content .memory-subtitle{
  margin: 0 0 8px;
  font-weight: 800;
}

section.content .memory-question,
section.content .memory-answer{
  margin: 14px 0;
  padding: 12px 14px;
  background: rgba(255,255,255,.75);
  border-radius: 12px;
}

section.content .memory-phrase{
  font-weight: 800;
  line-height: 1.9;
  background: linear-gradient(transparent 60%, #fff0a8 0%);
  display: inline;
}

section.content .memory-list{
  margin: 10px 0 0;
  padding-left: 1.2em;
}

section.content .memory-list li{
  margin: 8px 0;
  line-height: 1.8;
}



/* 成績向上カード */

section.content .score-cards{
  display:grid;
  grid-template-columns:repeat(auto-fit,minmax(220px,1fr));
  gap:18px;
  margin:20px 0 26px;
}

section.content .score-card{
  border:1px solid #e7e1cf;
  background:#fffdf7;
  border-radius:14px;
  padding:16px;
  text-align:center;
  box-shadow:0 4px 14px rgba(0,0,0,.04);
}

section.content .score-name{
  font-weight:800;
  margin-bottom:4px;
}

section.content .score-test{
  font-size:.92em;
  color:#555;
  margin-bottom:12px;
}

section.content .score-values{
  display:flex;
  justify-content:center;
  align-items:center;
  gap:10px;
}

section.content .before{
  font-size:1.3em;
  font-weight:900;
  color:#00008b;
}

section.content .after{
  font-size:1.5em;
  font-weight:900;
  color:#b20000;
}

section.content .arrow{
  font-size:1.4em;
  font-weight:800;
  color:#333;
}


/* 現在のページ */

.subject-btn.active{
background:#f0f6f1;
border:2px solid #8ab697;
font-weight:700;
pointer-events:none;
}

.subject-btn.active .arrow{
display:none;
}



/* 医学部合格実績 */
.result-year{
  margin: 30px 0 12px;
  display: inline-block;
  padding: 4px 12px;
  background: #fff1a8;
  font-size: 1.35em;
  font-weight: 800;
  letter-spacing: .08em;
}

.result-card{
  margin: 0 0 18px;
  padding: 18px 20px;
  background: #faf6ff;
  border: 1px solid #e5dcef;
  border-radius: 16px;
  box-shadow: 0 4px 14px rgba(0,0,0,.04);
}

.student{
  margin: 0 0 8px;
  font-size: 1.15em;
  font-weight: 800;
  line-height: 1.7;
}

.achievement{
  margin: 0 0 10px;
  padding: 6px 10px;
  display: inline-block;
  background: #fff8d6;
  border-radius: 6px;
  font-weight: 500;
  color: #444;
  line-height: 1.7;
}

.student-detail{
  margin: 0 0 12px;
  color: #444;
  line-height: 1.8;
}

.result-list{
  margin: 0;
  padding-left: 1.2em;
}

.result-list li{
  margin: 7px 0;
  line-height: 1.8;
}

.uni{
  color: #d10000;
  font-weight: 800;
}

.subject-math{
  color: #1f63c8;
  font-weight: 700;
}

.subject-phy{
  color: #3b8d5b;
  font-weight: 700;
}

.subject-chem{
  color: #c8651a;
  font-weight: 700;
}

@media (max-width: 768px){
  .result-card{
    padding: 15px 14px;
  }

  .student{
    font-size: 1.05em;
  }

  .achievement{
    display: block;
    border-radius: 12px;
  }
}




/* 医学部実績パネル */
.med-result-panel{
  margin: 18px 0 24px;
  padding: 18px 20px;
  background: #faf6ff;
  border: 1px solid #e5dcef;
  border-radius: 16px;
  box-shadow: 0 4px 14px rgba(0,0,0,.04);
}

.med-result-title{
  margin: 0 0 8px;
  font-size: 1.35em;
  font-weight: 800;
  line-height: 1.6;
}

.med-result-note{
  margin: 0 0 16px;
  padding: 8px 10px;
  background: #fff8d6;
  border-radius: 8px;
  color: #444;
  line-height: 1.8;
}

.med-result-block{
  margin-top: 16px;
}

.med-result-subtitle{
  margin: 0 0 8px;
  font-weight: 800;
  font-size: 1.05em;
}

.med-result-list{
  margin: 0;
  padding-left: 1.2em;
}

.med-result-list li{
  margin: 10px 0;
  line-height: 1.8;
}

.uni{
  color: #d10000;
  font-weight: 800;
}

.med-result-comment{
  margin-top: 4px;
  color: #555;
  font-size: 0.95em;
  line-height: 1.7;
}

@media (max-width: 768px){
  .med-result-panel{
    padding: 15px 14px;
  }

  .med-result-title{
    font-size: 1.15em;
  }
}

.result-summary-box{
  margin: 22px 0 10px;
  padding: 16px 18px;
  background: #fffdf4;
  border: 1px solid #eadfbe;
  border-radius: 14px;
}

.result-summary-title{
  margin: 0 0 10px;
  font-weight: 800;
  font-size: 1.05em;
}

.result-summary-list{
  margin: 0;
  padding-left: 1.2em;
}

.result-summary-list li{
  margin: 8px 0;
  line-height: 1.9;
}

.result-summary-conclusion{
  margin-top: 12px;
  font-weight: 700;
  line-height: 1.9;
}




section.content .med-school-list{
  margin: 12px 0 16px;
  padding: 0;
  list-style: none;
}

section.content .med-school-list .med-school{
  display: inline-block;
  margin: 4px 6px 4px 0;
  padding: 4px 10px;
  border-radius: 6px;
  font-size: 0.95em;
  font-weight: 700;
  line-height: 1.7;
}

section.content .med-school-list .med-school.national{
  background: #eef5ff;
  color: #1f4e8c;
}

section.content .med-school-list .med-school.private{
  background: #fff2f2;
  color: #8c2c2c;
}

@media (max-width:768px){
  section.content .med-school-list .med-school{
    font-size: 0.9em;
  }
}

.med-school-list{
  margin:12px 0 16px;
  padding:0;
  list-style:none;
}

.med-school-list li{
  display:inline-block;
  margin:4px 6px 4px 0;
  padding:4px 10px;
  border-radius:6px;
  font-size:0.95em;
  font-weight:700;
  line-height:1.7;

  /* 既存CSSの打ち消し */
  border-bottom:none;
}

.med-school-list li.national{
  background:#eef5ff;
  color:#1f4e8c;
}

.med-school-list li.private{
  background:#fff2f2;
  color:#8c2c2c;
}

/* ======================================
   指導実績ページ
====================================== */

.achievements-intro{
  margin-bottom: 28px;
  line-height: 2;
}

.achievements-summary{
  margin: 30px 0;
  padding: 22px 24px;
  border: 1px solid #e8e8e8;
  background: #fffaf9;
  border-radius: 12px;
  box-shadow: 0 2px 10px rgba(0,0,0,0.04);
}

.achievements-summary h3{
  margin: 0 0 14px;
  font-size: 1.2em;
  line-height: 1.6;
}

.achievements-summary ul{
  margin: 0;
  padding-left: 1.4em;
  line-height: 2.1;
}

.achievements-summary li + li{
  margin-top: 10px;
}

.exam-block{
  margin: 34px 0 14px;
  padding: 11px 15px;
  background: #ffe4e1;
  border-left: 6px solid #f08a8a;
  font-weight: 700;
  border-radius: 4px;
  line-height: 1.6;
}

.exam-section{
  margin-bottom: 30px;
}

.exam-section h3{
  margin: 22px 0 8px;
  font-size: 1.08em;
  line-height: 1.7;
  color: #333;
  border-bottom: 1px solid #eeeeee;
  padding-bottom: 4px;
}

.exam-section p{
  margin: 0 0 16px;
  line-height: 2;
}

.exam-section p:last-child{
  margin-bottom: 0;
}

.exam-note{
  margin-top: 26px;
  font-size: 0.95em;
  color: #666;
  line-height: 1.9;
}

@media screen and (max-width: 768px){
  .achievements-summary{
    padding: 18px 16px;
    margin: 24px 0;
  }

  .achievements-summary h3{
    font-size: 1.08em;
  }

  .achievements-summary ul{
    line-height: 1.95;
  }

  .exam-block{
    margin: 28px 0 12px;
    padding: 10px 12px;
  }

  .exam-section h3{
    font-size: 1em;
    margin-top: 18px;
  }

  .exam-section p{
    line-height: 1.9;
  }
}


.score-summary{
  margin: 28px 0 34px;
  padding: 22px 24px;
  border: 1px solid #dfeaf2;
  background: #f9fcff;
  border-radius: 12px;
  box-shadow: 0 2px 10px rgba(0,0,0,0.04);
}

.score-summary h3{
  margin: 0 0 14px;
  font-size: 1.2em;
  line-height: 1.6;
}

.score-summary ul{
  margin: 0;
  padding-left: 1.4em;
  line-height: 2.1;
}

.score-summary li + li{
  margin-top: 10px;
}

.score-section{
  margin-bottom: 30px;
}

.score-item{
  margin-bottom: 14px;
  padding: 14px 16px;
  background: #ffffff;
  border: 1px solid #eeeeee;
  border-radius: 10px;
  box-shadow: 0 1px 5px rgba(0,0,0,0.03);
}

.score-item p{
  margin: 0;
  line-height: 2;
}

.teaching-message{
  margin-top: 32px;
  padding: 22px 24px;
  background: #f7f7f7;
  border-radius: 12px;
}

.teaching-message h3{
  margin: 0 0 12px;
  line-height: 1.6;
}

.teaching-message p{
  margin: 0;
  line-height: 2;
}

@media screen and (max-width: 768px){
  .score-summary{
    padding: 18px 16px;
    margin: 24px 0 28px;
  }

  .score-summary h3{
    font-size: 1.08em;
  }

  .score-summary ul{
    line-height: 1.95;
  }

  .score-item{
    padding: 12px 13px;
    margin-bottom: 12px;
  }

  .score-item p{
    line-height: 1.9;
  }

  .teaching-message{
    padding: 18px 16px;
  }
}


.private-contract-page {
  max-width: 1000px;
  margin: 0 auto;
  line-height: 2;
  color: #333;
}

.private-contract-page p {
  margin: 0 0 1.2em;
}

.private-contract-page .heading {
  margin: 56px 0 22px;
  padding-left: 14px;
  border-left: 5px solid #3b82f6;
  font-size: 1.7rem;
  line-height: 1.5;
}

.private-contract-page h3 {
  margin: 0 0 12px;
  font-size: 1.15rem;
  line-height: 1.6;
  color: #222;
}

.lead-box {
  margin: 10px 0 36px;
  padding: 24px;
  background: #f8fbff;
  border: 1px solid #d9e9ff;
  border-radius: 14px;
}

.point-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 18px;
  margin: 26px 0 10px;
}

.point-card {
  padding: 22px 20px;
  background: #fff;
  border: 1px solid #e5e5e5;
  border-radius: 14px;
  box-shadow: 0 4px 14px rgba(0, 0, 0, 0.04);
}

.check-list,
.key-point-list {
  margin: 22px 0;
  padding-left: 1.4em;
}

.check-list li,
.key-point-list li {
  margin-bottom: 14px;
}

.method-list {
  display: flex;
  flex-direction: column;
  gap: 18px;
  margin: 24px 0 8px;
}

.method-item {
  padding: 22px;
  border-left: 5px solid #60a5fa;
  background: #f9fcff;
  border-radius: 10px;
}

.appeal-box {
  margin: 24px 0 10px;
  padding: 26px;
  background: linear-gradient(180deg, #f8fbff 0%, #ffffff 100%);
  border: 1px solid #dfe9f5;
  border-radius: 14px;
}

.faq-simple {
  margin-top: 24px;
}

.faq-item {
  padding: 22px 0;
  border-bottom: 1px solid #e5e5e5;
}

.faq-item:first-child {
  border-top: 1px solid #e5e5e5;
}

.summary-box {
  margin-top: 24px;
  padding: 24px;
  background: #f7f7f7;
  border-radius: 14px;
}

@media screen and (max-width: 768px) {
  .private-contract-page .heading {
    margin: 42px 0 18px;
    font-size: 1.4rem;
  }

  .point-grid {
    grid-template-columns: 1fr;
    gap: 14px;
  }

  .lead-box,
  .point-card,
  .method-item,
  .appeal-box,
  .summary-box {
    padding: 18px;
  }

  .check-list,
  .key-point-list {
    padding-left: 1.2em;
  }
}


.comparison-table {
  margin: 30px 0;
  overflow-x: auto;
}

.comparison-table table {
  width: 100%;
  border-collapse: collapse;
  font-size: 0.95rem;
}

.comparison-table th,
.comparison-table td {
  border: 1px solid #e5e5e5;
  padding: 14px 16px;
  vertical-align: top;
}

.comparison-table thead th {
  background: #f3f7ff;
  text-align: center;
  font-weight: 700;
}

.comparison-table tbody th {
  background: #fafafa;
  width: 140px;
  font-weight: 700;
}

@media screen and (max-width: 768px) {
  .comparison-table th,
  .comparison-table td {
    padding: 10px;
    font-size: 0.9rem;
  }
}

.link-button{
  display:inline-block;
  margin-top:10px;
  padding:10px 16px;
  background:#2f7dd1;
  color:#fff;
  text-decoration:none;
  border-radius:6px;
  font-weight:700;
  font-size:14px;
  transition:0.2s;
}

.link-button:hover{
  background:#1f63ab;
}

.tutor-compare-lead{
  margin-bottom: 36px;
}

.section-intro{
  margin-bottom: 18px;
}

.compare-feature-grid{
  display:grid;
  grid-template-columns:repeat(2, minmax(0, 1fr));
  gap:20px;
  margin:24px 0 10px;
}

.compare-feature-card{
  padding:24px 22px;
  border-radius:14px;
  border:1px solid #e5e5e5;
  background:#fff;
  box-shadow:0 4px 14px rgba(0, 0, 0, 0.04);
}

.compare-feature-card h3{
  margin:0 0 12px;
  font-size:1.15rem;
  line-height:1.6;
}

.compare-feature-card .card-intro{
  margin:0 0 12px;
}

.merit-card{
  background:#f9fcff;
  border-color:#d9e9ff;
}

.caution-card{
  background:#fffaf7;
  border-color:#f2dfd2;
}

.compare-feature-card .key-point-list{
  margin:0;
  padding-left:1.4em;
}

.compare-feature-card .key-point-list li{
  margin-bottom:10px;
}

.compare-feature-card .key-point-list li:last-child{
  margin-bottom:0;
}

@media screen and (max-width: 768px){
  .compare-feature-grid{
    grid-template-columns:1fr;
    gap:14px;
  }

  .compare-feature-card{
    padding:18px;
  }
}

.compare-diff-grid{
  display:grid;
  grid-template-columns:repeat(2, minmax(0,1fr));
  gap:20px;
  margin:24px 0 10px;
}

.compare-diff-card{
  padding:22px;
  border:1px solid #e5e5e5;
  border-radius:12px;
  background:#ffffff;
  box-shadow:0 3px 12px rgba(0,0,0,0.04);
}

.compare-diff-card h3{
  margin:0 0 10px;
  font-size:1.1rem;
}

.compare-diff-card p{
  margin:0;
}

@media screen and (max-width:768px){

  .compare-diff-grid{
    grid-template-columns:1fr;
  }

}


.selection-point-card{
  margin:24px 0 18px;
}

.selection-point-card .card-intro{
  margin:0 0 12px;
}

.tutor-appeal-box{
  margin-top:24px;
}

.tutor-appeal-box .card-intro{
  margin:0 0 12px;
}

@media screen and (max-width:768px){
  .selection-point-card{
    margin:18px 0 14px;
  }
}


.lead-text{
  /* font-size:1.15rem; */
  line-height:1.9;
}

/* .section-intro{
  font-size:1.05rem;
} */

.compare-feature-card strong{
  font-weight:700;
}

.key-point-list strong{
  font-weight:700;
}


.compare-diff-card h3{
  margin:0 0 10px;
  font-size:1.15rem;
  line-height:1.5;
}

.compare-diff-card p{
  margin:0;
  font-size:0.98rem;
  line-height:1.9;
}

.section-intro.emphasis-text{
  font-size:1.08rem;
  line-height:1.95;
}

.appeal-lead{
  font-size:1.08rem;
  line-height:1.95;
}

.compare-feature-card h3,
.selection-point-card h3{
  font-size:1.18rem;
  line-height:1.5;
}

.compare-feature-card .card-intro,
.selection-point-card .card-intro,
.tutor-appeal-box .card-intro{
  font-size:1rem;
  line-height:1.85;
}

.compare-diff-card strong,
.compare-feature-card strong,
.selection-point-card strong,
.tutor-appeal-box strong{
  font-weight:700;
}

@media screen and (max-width:768px){
  .compare-diff-card h3,
  .compare-feature-card h3,
  .selection-point-card h3{
    font-size:1.08rem;
  }

  .compare-diff-card p,
  .compare-feature-card .card-intro,
  .selection-point-card .card-intro,
  .tutor-appeal-box .card-intro,
  .appeal-lead,
  .section-intro.emphasis-text{
    font-size:0.97rem;
  }
}


.page-pro-vs-student h3{
  border-bottom:2px solid #333;
  padding-bottom:6px;
}

.compare-feature-card h3,
.compare-diff-card h3,
.selection-point-card h3{

  border-left:4px solid #4a90e2;
  padding-left:10px;

}


.tutor-compare-table{
  margin:28px 0;
  overflow-x:auto;
}

.tutor-compare-table table{
  width:100%;
  border-collapse:collapse;
  font-size:0.98rem;
}

.tutor-compare-table th,
.tutor-compare-table td{
  border:1px solid #e5e5e5;
  padding:14px 12px;
  vertical-align:top;
}

.tutor-compare-table thead th{
  background:#f6f9ff;
  font-weight:700;
}

.tutor-compare-table tbody th{
  background:#fafafa;
  width:140px;
  font-weight:600;
}

.tutor-compare-table td{
  line-height:1.8;
}

@media screen and (max-width:768px){

  .tutor-compare-table table{
    font-size:0.92rem;
  }

}

.important-line{
  font-weight:700;
  font-size:1.2rem;
  text-align:center;
  margin:18px 0;
}


.article-list{
line-height:1.9;
margin:15px 0 25px;
padding-left:20px;
}

.article-list li{
margin:4px 0;
}

.zatsudan-box{
background:#f0f8ff;
padding:20px;
border-radius:8px;
}

.zatsudan-category{
display:block;
font-weight:bold;
margin-top:18px;
margin-bottom:8px;
background:linear-gradient(transparent 70%, #ffe4b5 0%);
}

.article-grid{
  display:grid;
  grid-template-columns:repeat(2, minmax(0, 1fr));
  gap:18px;
  margin:24px 0 10px;
}

.article-card{
  display:block;
  padding:18px 18px 16px;
  border:1px solid #e5e5e5;
  border-radius:12px;
  background:#fff;
  text-decoration:none;
  color:#333;
  box-shadow:0 4px 14px rgba(0,0,0,0.04);
  transition:0.2s;
}

.article-card:hover{
  transform:translateY(-2px);
  box-shadow:0 8px 18px rgba(0,0,0,0.08);
}

.article-number{
  display:inline-block;
  margin-bottom:8px;
  font-weight:700;
  color:#4a90e2;
}

.article-title{
  display:block;
  margin-bottom:8px;
  font-weight:700;
  line-height:1.7;
}

.article-desc{
  display:block;
  font-size:0.95rem;
  line-height:1.8;
  color:#555;
}

@media screen and (max-width:768px){
  .article-grid{
    grid-template-columns:1fr;
    gap:14px;
  }

  .article-card{
    padding:16px;
  }

  .article-desc{
    font-size:0.93rem;
  }
}

.zatsudan-category-box{
margin-top:36px;
}

.zatsudan-title{
font-size:1.2rem;
margin-bottom:16px;
padding-left:12px;
border-left:4px solid #4a90e2;
font-weight:700;
}

.new-label{
font-size:0.75rem;
background:#ff6b6b;
color:white;
padding:2px 6px;
margin-left:6px;
border-radius:4px;
font-weight:600;
}

.label{
  display:inline-block;
  margin-left:8px;
  padding:2px 8px;
  border-radius:999px;
  font-size:0.72rem;
  font-weight:700;
  line-height:1.4;
  vertical-align:middle;
}

/* 新着 */
.label-new{
  background:#fff3cd;
  color:#8a6d00;
}

/* おすすめ */
.label-pickup{
  background:#ffe08a;
  color:#6b4f00;
}


.article-card{
  display:flex;
  flex-direction:column;
  padding:18px 20px;
  border:1px solid #e6e6e6;
  border-radius:10px;
  background:#fff;
  text-decoration:none;
  color:#333;
  transition:all .25s;
}

.article-card:hover{
  transform:translateY(-3px);
  box-shadow:0 8px 18px rgba(0,0,0,0.08);
  border-color:#f0c64a;
}

/* 説明の下に余白 */
.article-desc{
  margin-bottom:10px;
}

/* 続きを読む */
.article-card::after{
  content:"記事を読む →";
  font-size:0.85rem;
  font-weight:600;
  color:#2a6db0;
}
.article-card:hover::after{
  color:#1b4f85;
}

.new-label,
.label-pickup{
  align-self:flex-start;
}





/* ======================================
   他塾との比較ページ
====================================== */

.comparison-intro{
  margin-bottom: 24px;
  line-height: 2;
}

.comparison-summary{
  margin: 28px 0 32px;
  padding: 22px 24px;
  background: #fffaf9;
  border: 1px solid #ece3df;
  border-radius: 12px;
  box-shadow: 0 2px 10px rgba(0,0,0,0.04);
}

.comparison-summary h3{
  margin: 0 0 14px;
  font-size: 1.18em;
  line-height: 1.6;
}

.comparison-summary ul{
  margin: 0;
  padding-left: 1.4em;
  line-height: 2;
}

.comparison-summary li + li{
  margin-top: 8px;
}

.comparison-table-block{
  margin: 34px 0;
}

.comparison-table-block h3{
  margin-bottom: 12px;
  font-size: 1.15em;
}

.comparison-note{
  margin-top: 12px;
  color: #666;
  font-size: 0.94em;
  line-height: 1.8;
}

.comparison-table-wrap{
  width: 100%;
  overflow-x: auto;
  margin: 24px 0;
}

.comparison-table{
  width: 100%;
  min-width: 980px;
  border-collapse: collapse;
  table-layout: fixed;
  background: #fff;
}

.comparison-table th,
.comparison-table td{
  border: 1px solid #666;
  text-align: center;
  vertical-align: middle;
  padding: 10px 8px;
  font-size: 20px;
  line-height: 1.2;
  color: #333;
}

.comparison-table thead th{
  background: #efefef;
  font-weight: 700;
  font-size: 22px;
  height: 82px;
}

.comparison-table thead th.corner{
  width: 230px;
}

.comparison-table tbody th{
  background: #f7f7f7;
  font-weight: 500;
  font-size: 20px;
  white-space: nowrap;
}

.comparison-table td{
  font-size: 34px;
  font-weight: 500;
}

.comparison-table .pink{
  background: #e9c3de;
}

.comparison-table .blue{
  background: #c7d8ea;
}

.comparison-table .green{
  background: #c9ddb9;
}

.comparison-table .gray{
  background: #cfcfcf;
}

.comparison-table .my-col{
  border-left: 5px solid #ff0000 !important;
  border-right: 5px solid #ff0000 !important;
}

.comparison-table thead .my-col{
  border-top: 5px solid #ff0000 !important;
}

.comparison-table tbody tr:last-child .my-col{
  border-bottom: 5px solid #ff0000 !important;
}

.strike-row{
  position: relative;
}

.strike-row::after{
  content: "";
  position: absolute;
  left: 0;
  right: 0;
  top: 50%;
  height: 16px;
  background: #000;
  transform: translateY(-50%);
  z-index: 10;
  pointer-events: none;
}

.comparison-points{
  display: grid;
  gap: 18px;
  margin: 30px 0 36px;
}

.comparison-point-card{
  padding: 20px 22px;
  background: #fff;
  border: 1px solid #ececec;
  border-radius: 12px;
  box-shadow: 0 2px 8px rgba(0,0,0,0.03);
}

.comparison-point-card h3{
  margin: 0 0 12px;
  font-size: 1.12em;
  line-height: 1.6;
}

.comparison-point-card p{
  margin: 0 0 12px;
  line-height: 2;
}

.comparison-point-card p:last-child{
  margin-bottom: 0;
}

.comparison-image{
  margin: 26px 0;
  text-align: center;
}

.comparison-image img{
  max-width: 100%;
  height: auto;
}

.comparison-image-narrow img{
  max-width: 80%;
}

.comparison-image-wide img{
  max-width: 80%;
}

.comparison-conclusion{
  margin: 32px 0 40px;
  padding: 20px 22px;
  background: #f8fbff;
  border: 1px solid #dfe8f3;
  border-radius: 12px;
}

.comparison-conclusion h3{
  margin: 0 0 12px;
  font-size: 1.12em;
}

.comparison-conclusion p{
  margin: 0;
  line-height: 2;
}

.reason-intro-box{
  margin: 28px 0;
  padding: 22px 24px;
  background: #fffaf5;
  border: 1px solid #eee0cf;
  border-radius: 12px;
}

.reason-intro-box h3{
  margin: 0 0 12px;
  font-size: 1.12em;
}

.reason-intro-box ol{
  margin: 0 0 12px 1.4em;
  line-height: 2;
}

.reason-intro-box p{
  margin: 0;
  line-height: 2;
}

.reason-legend{
  display: flex;
  flex-wrap: wrap;
  gap: 10px;
  margin: 24px 0 20px;
}

.legend-chip{
  display: inline-block;
  padding: 8px 12px;
  border-radius: 999px;
  font-size: 0.95em;
  line-height: 1.5;
  border: 1px solid transparent;
}

.legend-orange{
  background: #ffe4b5;
  border-color: #f0c37a;
}

.legend-pink{
  background: #fff0f5;
  border-color: #f1bfd2;
}

.legend-green{
  background: #e9fdf0;
  border-color: #b6dfc0;
}

.reason-group{
  margin: 34px 0 38px;
}

.reason-group-title{
  margin-bottom: 14px;
  padding: 11px 15px;
  background: #ffe4e1;
  border-left: 6px solid #f08a8a;
  border-radius: 4px;
  font-weight: 700;
  line-height: 1.6;
}

.reason-details{
  margin: 12px 0;
  border: 1px solid #ececec;
  border-radius: 12px;
  background: #fff;
  overflow: hidden;
}

.reason-details summary{
  padding: 15px 18px;
  cursor: pointer;
  font-weight: 700;
  line-height: 1.8;
  background: #fff0f5;
  list-style: none;
}

.reason-details summary::-webkit-details-marker{
  display: none;
}

.reason-details summary::before{
  content: "＋";
  display: inline-block;
  margin-right: 8px;
  font-weight: 700;
}

.reason-details[open] summary::before{
  content: "−";
}

.reason-answer{
  padding: 16px 18px;
  background: #e9fdf0;
  line-height: 2;
  border-top: 1px solid #e8e8e8;
}

.benefit-grid{
  display: grid;
  grid-template-columns: repeat(2,minmax(0,1fr));
  gap: 16px;
  margin: 28px 0 34px;
}

.benefit-card{
  padding: 20px 22px;
  background: #fff;
  border: 1px solid #ececec;
  border-radius: 12px;
  box-shadow: 0 2px 8px rgba(0,0,0,0.03);
}

.benefit-card h3{
  margin: 0 0 10px;
  font-size: 1.08em;
  line-height: 1.6;
}

.benefit-card p{
  margin: 0;
  line-height: 2;
}

@media screen and (max-width: 768px){
  .comparison-summary,
  .comparison-conclusion,
  .reason-intro-box,
  .comparison-point-card,
  .benefit-card{
    padding: 18px 16px;
  }

  .comparison-table{
    min-width: 820px;
  }

  .comparison-table th,
  .comparison-table td{
    padding: 8px 6px;
  }

  .comparison-table thead th{
    font-size: 18px;
    height: 70px;
  }

  .comparison-table tbody th{
    font-size: 18px;
  }

  .comparison-table td{
    font-size: 28px;
  }

  .comparison-table thead th.corner{
    width: 180px;
  }

  .comparison-point-card p,
  .comparison-conclusion p,
  .reason-intro-box p,
  .reason-answer,
  .benefit-card p,
  .comparison-intro{
    line-height: 1.9;
  }

  .comparison-image-narrow img,
  .comparison-image-wide img{
    max-width: 100%;
  }

  .reason-details summary{
    padding: 14px 15px;
  }

  .reason-answer{
    padding: 14px 15px;
  }

  .benefit-grid{
    grid-template-columns: 1fr;
    gap: 14px;
  }
}

/* ======================================
   jukukateikyoushi comparison table
====================================== */

.jukukateikyoushi-table-wrap{
  width:100%;
  overflow-x:auto;
  margin:24px 0;
}

.jukukateikyoushi-table{
  border-collapse:collapse;
  table-layout:fixed;
  width:100%;
}

.jukukateikyoushi-table th,
.jukukateikyoushi-table td{
  border:1px solid #cfcfcf;   /* ← #666から変更 */
  text-align:center;
  vertical-align:middle;
  padding:5px 5px;
  font-size:1em;
  line-height:1.4;
  color:#333;
}

.jukukateikyoushi-table thead th{
  background:#f4f6f8;      /* ← 少し柔らかいグレー */
  font-weight:700;
  font-size:1em;
}

.jukukateikyoushi-corner{
  width:22%;
}

.jukukateikyoushi-table tbody th{
  background:#fafafa;      /* ← 少し明るく */
  font-weight:500;
  font-size:1em;
  white-space:nowrap;
}

.jukukateikyoushi-table td{
  font-size:1.5em;
  font-weight:500;
}

/* 色 */

.jukukateikyoushi-pink{
  background:#f8e6ee;
}

.jukukateikyoushi-blue{
  background:#e8f1fa;
}

.jukukateikyoushi-green{
  background:#e8f4e6;
}

.jukukateikyoushi-gray{
  background:#f5f5f5;
}


/* 赤枠 */

.jukukateikyoushi-my-col{
  border-left:5px solid #ff0000 !important;
  border-right:5px solid #ff0000 !important;
}

.jukukateikyoushi-table thead .jukukateikyoushi-my-col{
  border-top:5px solid #ff0000 !important;
}

.jukukateikyoushi-table tbody tr:last-child .jukukateikyoushi-my-col{
  border-bottom:5px solid #ff0000 !important;
}

/* 打ち消し線 */

.jukukateikyoushi-strike-row{
  position:relative;
}

.jukukateikyoushi-strike-row::after{
  content:"";
  position:absolute;
  left:0;
  right:0;
  top:50%;
  height:16px;
  background:#000;
  transform:translateY(-50%);
  z-index:10;
  pointer-events:none;
}

/* スマホ */

@media screen and (max-width:768px){

  .jukukateikyoushi-table{
    table-layout: fixed;
  border:1px solid #bfbfbf;
    width: 100%;
  }

  .jukukateikyoushi-table th,
  .jukukateikyoushi-table td{
    padding: 4px 2px;
    font-size: 0.88em;
    line-height: 1.25;
  }

  .jukukateikyoushi-table tbody th{
    white-space: normal;
    overflow-wrap: anywhere;
    word-break: break-word;
  }

  .jukukateikyoushi-table th:first-child,
  .jukukateikyoushi-table td:first-child{
    width: 22%;
  }

  .jukukateikyoushi-table td{
    font-size:1.35em;
  }

  .jukukateikyoushi-corner{
    width:180px;
  }

}

.competition-toggle{
  margin: 22px 0;
}

.competition-toggle details{
  border: 1px solid #d9e3f0;
  border-radius: 12px;
  background: #fff;
  overflow: hidden;
}

.competition-toggle summary{
  list-style: none;
  cursor: pointer;
  padding: 14px 18px;
  font-weight: 800;
  line-height: 1.7;
  background: #f7fbff;
  position: relative;
  padding-right: 46px;
}

.competition-toggle summary::-webkit-details-marker{
  display: none;
}

.competition-toggle summary::after{
  content: "＋";
  position: absolute;
  right: 18px;
  top: 50%;
  transform: translateY(-50%);
  font-size: 1.2rem;
  font-weight: 700;
  color: #2a6db0;
}

.competition-toggle details[open] summary::after{
  content: "－";
}

.competition-toggle-body{
  padding: 16px 18px 18px;
  background: #fff;
}

.competition-toggle-body p:last-child{
  margin-bottom: 0;
}

.pc-only{
  display:block;
}

@media only screen and (max-width:768px){
  .pc-only{
    display:none;
  }
}



/* ======================================
   受験コラム
====================================== */

.page-jump-nav{
  display:grid;
  grid-template-columns:repeat(3, minmax(0, 1fr));
  gap:14px;
  margin:10px 0 24px;
}

.page-jump-btn{
  display:flex;
  align-items:center;
  justify-content:center;
  padding:16px 12px;
  border-radius:12px;
  border:1px solid #d9e3f0;
  background:#f7fbff;
  color:#134b88;
  text-decoration:none;
  font-weight:800;
  line-height:1.4;
  box-shadow:0 4px 12px rgba(0,0,0,0.05);
  transition:0.2s;
}

.page-jump-btn:hover{
  transform:translateY(-2px);
  background:#eef6ff;
  border-color:#bcd0ea;
  box-shadow:0 8px 18px rgba(0,0,0,0.08);
}

.page-jump-btn:active{
  transform:translateY(0);
}

html{
  scroll-behavior:smooth;
}

@media screen and (max-width:768px){
  .page-jump-nav{
    grid-template-columns:1fr;
    gap:10px;
    margin:10px 0 20px;
  }

  .page-jump-btn{
    padding:14px 10px;
    font-size:0.98rem;
  }
}




/* ======================================
   国立志望の方へ
====================================== */

.kokuritsu-judge-section{
  margin: 28px 0 36px;
}

.kokuritsu-judge-grid{
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 28px 32px;
}

.kokuritsu-judge-card{
  background: #f7dff0;
  border-radius: 24px;
  padding: 18px 18px 16px;
  box-shadow: 0 3px 12px rgba(0,0,0,0.05);
}

.kokuritsu-judge-title{
  margin: 0 0 14px;
  padding: 8px 14px;
  background: #fff;
  border: 1px solid #444;
  font-size: 1rem;
  font-weight: 800;
  line-height: 1.5;
  text-align: center;
  box-sizing: border-box;
}

.kokuritsu-judge-year{
  margin-right: 0.25em;
}

.kokuritsu-judge-uni{
  color: #0b00e1;
  font-weight: 900;
}

.kokuritsu-judge-result{
  margin-left: 0.25em;
}

.kokuritsu-judge-table{
  display: flex;
  flex-direction: column;
}

.kokuritsu-judge-row{
  display: grid;
  grid-template-columns: 1fr auto;
  gap: 14px;
  align-items: center;
  padding: 4px 4px;
  border-bottom: 1px solid rgba(0,0,0,0.35);
}

.kokuritsu-judge-row:last-child{
  border-bottom: none;
}

.kokuritsu-judge-label{
  font-size: 1rem;
  font-weight: 700;
  line-height: 1.55;
  color: #111;
}

.kokuritsu-judge-rank{
  font-size: 1rem;
  font-weight: 900;
  line-height: 1;
  white-space: nowrap;
}

.kokuritsu-rank-a,
.kokuritsu-rank-b,
.kokuritsu-rank-c{
  color: #222;
}

.kokuritsu-rank-d,
.kokuritsu-rank-e{
  color: #e10000;
}

.kokuritsu-judge-note{
  margin-top: 18px;
  font-size: 0.98rem;
  line-height: 1.8;
}

.kokuritsu-judge-note p{
  margin: 0;
}

.kokuritsu-note-underline{
  text-decoration: underline;
  text-underline-offset: 2px;
}

.kokuritsu-note-red{
  color: #e10000;
  font-weight: 800;
}

@media screen and (max-width: 900px){
  .kokuritsu-judge-grid{
    grid-template-columns: 1fr;
    gap: 18px;
  }
}

@media screen and (max-width: 768px){
  .kokuritsu-judge-card{
    padding: 14px 12px 12px;
    border-radius: 18px;
  }

  .kokuritsu-judge-title{
    font-size: 0.95rem;
    padding: 8px 10px;
  }

  .kokuritsu-judge-row{
    gap: 10px;
    padding: 5px 2px;
  }

  .kokuritsu-judge-label{
    font-size: 0.95rem;
    line-height: 1.45;
  }

  .kokuritsu-judge-rank{
    font-size: 0.95rem;
  }
}




/* フッターメニュー */

.footer-menu{
  max-width:1100px;
  margin:0 auto;
  padding:2px 25px;
}

.footer-links{
  list-style:none;
  padding:0;
  margin:0;

  display:grid;
  grid-template-columns:repeat(3,1fr);
  gap:8px 30px;
}

.footer-links li{
  line-height:1.8;
}

.footer-links a{
  text-decoration:none;
  color:#444;
  font-size:0.95em;
}

.footer-links a:hover{
  text-decoration:underline;
}

.footer-links li::before{
  content:"› ";
  color:#888;
}

.copyright{
  margin-top:30px;
  font-size:0.85em;
  color:#ffffff;
  text-align:center;
}


@media (max-width:768px){
  .footer-links{
    grid-template-columns:1fr 1fr;
    gap:6px 20px;
  }
}


/* ======================================
   サイトマップ
====================================== */

.sitemap-page h3{
  margin: 22px 0 10px;
  padding-left: 10px;
  border-left: 4px solid #4a90e2;
  font-size: 1.12rem;
  font-weight: 800;
  line-height: 1.5;
  color: #1b3a6b;
}

.sitemap-page p{
  margin: 0 0 16px;
  line-height: 1.9;
}

.sitemap-page ul{
  margin: 0 0 18px 0;
  padding-left: 0;
  list-style: none;
}

.sitemap-page ul li{
  margin: 6px 0;
  line-height: 1.8;
}

.sitemap-page > ul > li::before,
.sitemap-page > section > ul > li::before{
  content: "› ";
  color: #4a90e2;
  font-weight: 700;
}

.sitemap-page ul ul{
  margin: 8px 0 0 22px;
  padding-left: 0;
}

.sitemap-page ul ul li{
  font-size: 0.97em;
}

.sitemap-page ul ul li::before{
  content: "－ ";
  color: #888;
}

.sitemap-page a{
  text-decoration: none;
}

.sitemap-page a:hover{
  text-decoration: underline;
}

.sitemap-intro{
  margin-bottom: 18px;
  padding: 14px 16px;
  border: 1px solid #dbe7f5;
  border-radius: 12px;
  background: #f7fbff;
}

@media (max-width: 768px){
  .sitemap-page h3{
    margin: 18px 0 8px;
    font-size: 1.04rem;
  }

  .sitemap-page ul li{
    margin: 5px 0;
    line-height: 1.7;
  }

  .sitemap-page ul ul{
    margin-left: 16px;
  }
}


.policy-wrap{
  margin-bottom:40px;
}

.policy-wrap p{
  margin-bottom:14px;
  line-height:1.8;
}

.policy-compare{
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:20px;
  margin:20px 0;
}

.policy-box{
  border:1px solid #ddd;
  padding:18px;
  background:#fafafa;
}

.policy-good{
  border:2px solid #2e7d32;
  background:#f3fff4;
}

.policy-title{
  font-weight:bold;
  margin-bottom:10px;
  font-size:1.05em;
}

.policy-box ul{
  padding-left:18px;
}

.policy-box li{
  margin-bottom:6px;
}

@media (max-width:768px){

.policy-compare{
  grid-template-columns:1fr;
}

}

.policy-lead{
  margin: 0 0 18px;
  line-height: 1.9;
  color: #444;
}


/* ページトップへ戻る */

a.kitanojuku-pagetop{
  position: fixed !important;
  right: 20px !important;
  bottom: 20px !important;
  width: 52px !important;
  height: 52px !important;
  display: flex !important;
  align-items: center !important;
  justify-content: center !important;
  background: #2f6fb3 !important;
  color: #fff !important;
  border-radius: 50% !important;
  text-decoration: none !important;
  z-index: 9999 !important;
  opacity: 0;
  pointer-events: none;

  box-shadow: 0 4px 14px rgba(0,0,0,0.18) !important;
  transition: transform 0.2s ease, opacity 0.2s ease !important;
}

a.kitanojuku-pagetop:hover{
  opacity: 1 !important;
  transform: translateY(-3px) !important;
}

a.kitanojuku-pagetop.show{
  opacity: 0.92;
  pointer-events: auto;
}

/* CTAボタン */
.cta-button{
  display:inline-block;
  padding:14px 30px;
  border: 1px solid #cfe0ff;
  background: #f4f7ff;
  text-decoration:none;
  border-radius:6px;
  font-weight:bold;
  font-size:16px;
  transition:0.2s;
}

.cta-button:hover{
  background: #eaf0ff;
}

.weakpoint-list{
  margin: 18px 0 22px;
  padding: 0;
  list-style: none;
}

.weakpoint-list li{
  position: relative;
  margin: 0 0 12px;
  padding: 14px 16px 14px 46px;
  background: #f5f9ff;
  border: 1px solid #c9dbf8;
  border-radius: 10px;
  line-height: 1.7;
  box-shadow: 0 3px 10px rgba(0,0,0,.05);
}

.weakpoint-list li::before{
  content: "✓";
  position: absolute;
  top: 50%;
  left: 16px;
  transform: translateY(-50%);
  width: 20px;
  height: 20px;
  border-radius: 50%;
  background: #4d7edb;
  color: #fff;
  font-size: 12px;
  font-weight: 700;
  line-height: 20px;
  text-align: center;
}

@media only screen and (max-width: 767px){
  .eigo-weakpoint-list li{
    padding: 12px 14px 12px 42px;
    line-height: 1.6;
  }

  .eigo-weakpoint-list li::before{
    left: 14px;
  }
}


/* 導入リスト */
.lead-list{
margin:20px 0 25px;
padding-left:0;
list-style:none;
}

.lead-list li{
margin:10px 0;
padding-left:26px;
position:relative;
line-height:1.8;
}

.lead-list li::before{
content:"✔";
position:absolute;
left:0;
top:0;
color:#2c7be5;
font-weight:bold;
}

/* h3見出し（セクション内小見出し） */
h3{
font-size:20px;
margin:30px 0 15px;
padding:6px 0 6px 12px;
border-left:4px solid #2c7be5;
font-weight:600;
}


/* 問い合わせボタン */
.line-float-btn{
  position:fixed;
  right:90px;
  bottom:20px;
  z-index:9999;
  display:flex;
  align-items:center;
  gap:10px;
  padding:12px 16px;
  background:#06c755;
  color:#fff;
  text-decoration:none;
  border-radius:999px;
  box-shadow:0 6px 18px rgba(0,0,0,0.18);
  font-size:14px;
  font-weight:700;
  line-height:1;
  opacity:0;
  visibility:hidden;
  transform:translateY(10px);
  transition:opacity 0.3s ease, transform 0.3s ease, visibility 0.3s ease, background 0.2s ease;
  -webkit-tap-highlight-color:transparent;
}

.line-float-btn.is-show{
  opacity:1;
  visibility:visible;
  transform:translateY(0);
}

.line-float-btn:hover{
  background:#05b34d;
}

.line-float-btn:active{
  transform:translateY(1px);
}

.line-float-icon{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  min-width:42px;
  height:42px;
  padding:0 10px;
  background:rgba(255,255,255,0.18);
  border-radius:999px;
  font-size:12px;
  font-weight:800;
  letter-spacing:0.04em;
}

.line-float-text{
  white-space:nowrap;
}

@media only screen and (max-width:767px){
  .line-float-btn{
    right:90px;
    bottom:25px;
    padding:11px 14px;
    font-size:13px;
  }

  .line-float-icon{
    min-width:38px;
    height:38px;
    font-size:11px;
  }
}




ul#topnav li.contact-nav a{
  background:#2a5ea8 !important;
  color: #fff !important;
}

.sp-only{
  display:none;
}

@media only screen and (max-width:960px){
  .sp-only{
    display:block;
  }
}

.full-img{
  width:100%;
  max-width:600px;
  height:auto;
  display:block;
  margin:24px auto;
}

/* 画像サイズの設定 */
.img-main {
  width: 100%;
  max-width: 500px;
  height: auto;
  display: block;
  margin: 0;
}

/* 補助画像 */
.img-sub {
  width: 100%;
  max-width: 320px;
  max-height: 50vh;
  height: auto;
  display: block;
}

/* リストの上下の余白調整 */
.content ul {
  margin: 0.3em 0 0.9em 1.5em;
}

.content li {
  margin: 0.2em 0;
}

/* メイン画像がないときに，ヘッダとトップナビの間に余白を付ける */
body.no-main-image ul#topnav{
  margin-top: 6px;
}


/* スマホでヘッダの余白を詰める */
@media (max-width:768px){
  #header .logo{
    padding:4px 0;
  }

  .logo a{
    font-size:16px;
  }

  .site-tagline{
    font-size:11px;
  }

  .site-subtagline{
    font-size: 11px;
    /* opacity: 0.8; */
    /* margin-top: 1px; */
}
}


/* スマホでメニュー下の余白を詰める */
@media (max-width:960px){
  #wrapper{
    padding-top: 5px;
  }
}

/* スマホだけメイン画像を非表示 */
@media (max-width: 768px){
  #mainBanner.mainBanner--sp-hidden{
    display: none;
  }
}

/* スマホもPCもメイン画像を非表示 */
body.no-main-image #mainBanner{
  display: none;
}

/* 既卒生のページのジャンプリンク */
.jump-links {
  margin: 16px 0 24px;
  display: flex;
  gap: 12px;
  flex-wrap: wrap;
}

.jump-links a {
  padding: 10px 14px;
  background: #f5f7fa;
  border: 1px solid #ddd;
  border-radius: 6px;
  text-decoration: none;
  font-size: 14px;
}

.jump-links a:hover {
  background: #e9eef5;
}

/* フッタの書式 */
.footer-logo-area {
  width: 100%;
  margin-bottom: 24px;
}

.footer-menu-full {
  width: 100%;
}

.footer-link-groups {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 32px;
}

.footer-link-group h3 {
  color: #fff;
}

@media screen and (max-width: 768px) {
  .footer-link-groups {
    grid-template-columns: 1fr;
    gap: 20px;
  }
}


/* パンくず */
.breadcrumb {
  max-width: 1000px;
  margin: 12px auto 18px;
  padding: 0 15px;
  font-size: 13px;
  color: #666;
}

.breadcrumb ol {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  list-style: none;
  margin: 0;
  padding: 0;
}

.breadcrumb li {
  display: inline;
  white-space: nowrap;
}

.breadcrumb li::after {
  content: ">";
  margin: 0 8px;
  color: #999;
}

.breadcrumb li:last-child::after {
  content: "";
}

.breadcrumb a {
  color: #1d5f9f;
  text-decoration: none;
}

.breadcrumb a:hover {
  text-decoration: underline;
}


