@charset "UTF-8";

html {
  background-color: #fff;
}
h1{
  font-size: 1.6em;
}
body {
  margin: 0 auto;
  width: 90vw;
  max-width: 380px;
  font-family: -apple-system, Segoe UI, Helvetica Neue, Hiragino Kaku Gothic ProN, "メイリオ", meiryo, sans-serif;
  font-size: 1rem;

}

.container {
  width: 100%;
  background-color: #fff;
  padding: 0 0;
}

footer {
  width: 100%;
  text-align: center;
  padding: 0 1rem;

}

.nav-icons {
  display: flex;
  align-items: center;
  justify-content: center; /* 中央寄せしたい場合 */
  gap: 8px; /* 統一された間隔 */
  margin: 1.5em 0;
}

.nav-icons a {
  display: flex;                /* フレックスで配置 */
  align-items: center;          /* 縦中央揃え */
  justify-content: center;      /* 横中央揃え */
  width: 60px;                   /* アイコン枠の固定サイズ */
  height: 60px;
}

.nav-icons img {
  max-width: 100%;
  max-height: 100%;
  object-fit: contain;          /* 縦横比を保つ */
  display: block;               /* 余計な隙間をなくす */
}
/**************************
 タブ切り替え
***************************/
.tab-wrap {
    display: flex;
    flex-wrap: wrap;
    margin: 1.9em auto 10px auto;
    width: 356px;
    height: 332px;
}


.tab-label {
  color: White;
  background:lightgray;
  text-align: center;
  padding: .5em 1em;
  order: -1;
  position: relative;
  z-index: 1;
  cursor: pointer;
  flex: 1;
  border-radius: 2px;
  position: relative;
  max-height: 4em;
}

.tab-label:not(:last-of-type) {
  margin-right: 5px;
}

.tab-content {
  width: 100%;
  height: 0;
  overflow: hidden;
  opacity: 0;
}
/* アクティブなタブ */
.tab-switch:checked+.tab-label {
 background:#AEC4E5;/*背景色*/
}
.tab-switch:checked+.tab-label:after{
	content: "";
	position: absolute;
	top: 100%;
	left: 54%;
	margin-left: -15px;
	border: 10px solid transparent;
border-top:10px solid #AEC4E5;
	width: 0;
	height: 0;
}

.tab-switch:checked+.tab-label+.tab-content {
  height: auto;
  overflow: auto;
  padding: 20px 0 0 0;
  opacity: 1;
  transition: .5s opacity;
}

/* ラジオボタン非表示 */
.tab-switch {
  display: none;
}
/**************************
 タブ切り替え終わり
***************************/

  .tilebox {
    display: grid;
    grid-template-columns: 1fr 1fr 1fr 1fr;
    grid-template-rows: 85px 85px;
    gap: 2px;
	max-width:380px;
	margin: 0 auto;

}

.grid-item {
    text-align: center;
}
.feature-item {
    display: flex;
    align-items: center;
    padding: 12px 0;
    border-bottom: 1px solid #f0f0f0;
}

.feature-item:last-child {
    border-bottom: none;
}

.feature-item img {
    margin-right: 15px;
    flex-shrink: 0;
    vertical-align: middle;
}

.feature-item div {
    font-size: 14px;
    line-height: 1.4;
    color: #333;
    display: flex;
    align-items: center;
}




.mannaka4{
	 display: flex;
  justify-content: center;
  align-items: center;
}



.col3 {
  display: flex;
    padding-left: 0;
  margin-top: 0;
  margin-bottom: 0;
  margin-left:auto !important;
  margin-right:auto !important;
  list-style: none;
flex-wrap: wrap;
	max-width:335px;
}
.col3 dd {
  width: 100px;
  margin:0 5px;
}

.col3 dd li{
    font-size: 0.8em;
    text-align: left;
    text-indent: 0.5em;}

.col3 dd li:nth-of-type(2) {
	text-indent:1em;}
.col3 dd li:nth-of-type(3) {
	text-indent:1em;}


.ookiku{font-size:1.2em}.ookiku2{font-size:1.3em;font-weight:700}.ookiku3{font-size:1.8em;font-weight:700}

.keiko1{background:linear-gradient(transparent 55%,#fff799 55%)}.keiko2{background:linear-gradient(transparent 15%,#fff799 15%)}



.tatili li{color:#333;list-style-type:none;text-align:left;font-size:.8em;
margin-left:1em;}

.tadaili{font-size:1.2em;font-weight:700;color:#333;line-height:1.1em}.tataida{color:#fff;background-color:#006;display:block;height:20px;text-align:center;padding-top:5px;font-weight:700;width:100px;margin-top:15px}.tataidag{color:#fff;background-color:#ccc;display:block;margin-top:15px;height:20px;text-align:center;padding-top:5px;font-weight:700;width:100px}.tataidasi{color:#fff;background-color:#009;display:block;height:20px;text-align:center;margin-top:0;padding-top:0;font-size:.9em;width:100px}.tataidasid{color:#fff;background-color:#009;display:block;height:23px;text-align:center;margin-top:0;padding-top:4px;font-size:1.3em;padding-bottom:0;margin-right:9.5px}.tataidasig{color:#fff;background-color:#ccc;display:block;height:20px;text-align:center;margin-top:0;padding-top:0;font-size:.9em;width:100px}.tataidatig{color:#fff;background-color:#ccc;display:block;margin-right:9.5px;height:20px;text-align:center;padding-top:5px;font-weight:700;font-size:.8em;width:100px}.tataidatigg{color:#fff;background-color:#ccc;display:block;margin-right:9.5px;height:20px;text-align:center;padding-top:5px;font-weight:700;font-size:.8em;width:100px;margin-top:15px}.tataidati{color:#fff;background-color:#006;display:block;width:100px;height:20px;text-align:center;padding-top:5px;font-weight:700;font-size:.8em;margin-top:15px}.nai{list-style-type:none}.nai li{line-height:2.5em}.nai img{padding-bottom:5px}
#topti{margin:0 5px;padding-top:5px;padding-right:0;padding-bottom:5px;padding-left:0;text-align:left}
#topti h2{background:-webkit-repeating-linear-gradient(45deg,#1aa7b2,#1aa7b2 5px,#1aa7b2 5px,#1aa7b2 10px);background:repeating-linear-gradient(45deg,#12737a,#1e8d96 5px,#12737a 5px,#1e8d96 10px);color:#fff;text-shadow:1px 1px 1px rgba(0,0,0,.3);color:#fff;background-color:#1e8d96;padding:.5em 1em;margin-right:0;margin-bottom:0;border-bottom-width:1px;border-bottom-style:solid;border-bottom-color:#999;font-size:1.2em}
#topti h1{color:#fff;border:1px solid #0db4d1;display:inline;padding-top:5px;padding-right:15px;padding-bottom:5px;padding-left:30px;background-color:#087d91;background-repeat:repeat;margin-left:20px;background-repeat:no-repeat;background-image:url(../sozai/maru.png);background-position:7px}
#topti a img{
  display: inline;
}
#topti h3{background:-webkit-repeating-linear-gradient(45deg,#1aa7b2,#1aa7b2 5px,#1aa7b2 5px,#1aa7b2 10px);background:repeating-linear-gradient(45deg,#12737a,#1e8d96 5px,#12737a 5px,#1e8d96 10px);color:#fff;text-shadow:1px 1px 1px rgba(0,0,0,.3);color:#fff;background-color:#1e8d96;padding: .5em 1em;margin: 0;;border-bottom-width:1px;border-bottom-style:solid;border-bottom-color:#999;font-size:1.2em;display:block}
#topti h3::before{content:'■ '}

.balloonhako2 {
  position: relative;
  display: inline-block;
  margin: 1.5em 0;
  padding: 19px 10px 7px 10px;
  min-width: 120px;
  max-width: 100%;
  color: #555;
  font-size: 16px;
  background: #FFF;
  border: solid 3px #555;
  box-sizing: border-box;
}

.balloonhako2:before {
  content: "";
  position: absolute;
  bottom: -24px;
  left: 35px;
  margin-left: -15px;
  border: 12px solid transparent;
  border-top: 12px solid #FFF;
  z-index: 2;
}

.balloonhako2:after {
  content: "";
  position: absolute;
  bottom: -30px;
  left: 35px;
  margin-left: -17px;
  border: 14px solid transparent;
  border-top: 14px solid #555;
  z-index: 1;
}
.balloonhako2 h2{
	border:none !important;}
.akam{color:#f33}
.hakoli{text-align:left;padding-left:2em}
.allli{font-size:1.1em;list-style:none;}
.allli li{line-height:1.7em;}
.allli a{text-decoration:none}
.allli a:hover{color:red;background-color:#fff}

.waku{margin: 20px 0px 20px 0px;padding:20px 5px 20px 5px;border:1px solid #aad3db;background-image:url(../img/block.gif);text-align:center}

.wakunasi{margin: 20px -15px 20px -15px;border:1px solid #aad3db;text-align:center}


.wakumaru{border: 1px solid #ccc;
    border-radius: 10px;
    padding: 1em;
    margin: 1em;
    font-size: 0.9em;}

.wakumaru2{border: 1px solid #BDBDBD;
    border-radius: 10px;
    padding: 1em;
    margin: 1em;
    font-size: 0.9em;
	box-shadow: 0 3px 3px rgba(0, 0, 0, 0.2)}
.wakumaru2 a{
	text-decoration:none;
	font-size:1.2em;
	font-weight:700;}

.wakumaru3{border: 1px solid #BDBDBD;
    border-radius: 3px;
    padding: 1em;
    margin: 1em 0;
    font-size: 0.95em;
	box-shadow: 0 1px 1px rgba(0, 0, 0, 0.2)}
.wakumaru3 a{
	text-decoration:none;
	font-size:1.2em;
	font-weight:700;}



.next_box4{font-weight: bold;
    position: relative;
    display: block;
    width: 80%;
    margin: 1.5em auto;
    padding: 0.3em 1em;
    cursor: pointer;
    transition: all 0.3s;
    text-align: center;
    color: #fff;
    border: 2px solid #da3c41;
    border-radius: 3px;
    line-height: 2.2em;
    text-decoration: none;
    background-color: #da3c41;
}

.next_box4 a{
	text-decoration:none;
	color:#fff;
	display:block;
	margin-bottom: -1em}


.next_box4:hover {
	transition: all 0.3s;
	color: #da3c41;
	background: #fff;
}

.next_box4:hover a{
	color: #da3c41;
}
.next_box4::after {
	content:none;
}


.next_box5{font-weight: bold;
    position: relative;
    display: block;
    width: 80%;
    margin: 1.5em auto;
    padding: 0.3em 1em;
    cursor: pointer;
    transition: all 0.3s;
    text-align: center;
    color: #fff;
    border: 2px solid #da3c41;
    border-radius: 3px;
    line-height: 2.2em;
    text-decoration: none;
    background-color: #ff5722;
}

.next_box5 a{
	text-decoration:none;
	color:#fff;
	display:block;
	margin-bottom: -1em}


.next_box5:hover {
	transition: all 0.3s;
	color: #ff5722;
	background: #fff;
}

.next_box5:hover a{
	color: #da3c41;
}
.next_box5::after {
	content:none;
}
.hukibox{
    font-size: 0.8rem;
    position: absolute;
    top: -25px;
    left: calc(50% - 150px);
    display: block;
    width: 300px;
    padding: 0.2rem 0;
    color: #333;
    border: 2px solid #db3c41;
    border-radius: 2px;
    background: #fff;
  -webkit-box-shadow: 0 3px 3px rgba(0, 0, 0, 0.2);
  box-shadow: 0 3px 3px rgba(0, 0, 0, 0.2);
}

.link_kousikiw{
    padding-top: 2px;
    padding-left: 4px;
    text-align: left;
    line-height: 2.8em;
	}

.link_kousikiw a{
	font-size:1.1em;
	margin-left:1em;}
.link_kousikiw a::after {
    content: '';
    display: inline-block;
    width: 21px;
    height: 21px;
    margin-left: 5px;
    margin-top: -5px;
    background-image: url(/images/gaibu.png);
    background-size: contain;
    vertical-align: middle;
}

.clearfix:after {
  content: "";
  clear: both;
  display: block;
}
.underline-yellow {
    background: linear-gradient(rgba(0,0,0,0) 50%,rgba(255,240,0,.45) 0);
    font-weight: 700;
}

.balloon2 {
  position: relative;
/*  display: inline-block;*/
  margin: 1.5em 0;
  padding: 7px 10px;
  min-width: 120px;
  max-width: 100%;
  color: #555;
  font-size: 16px;
  background: #FFF;
  border: solid 3px #555;
  box-sizing: border-box;
  text-align:left;
}

.balloon2:before {
  content: "";
  position: absolute;
  bottom: -24px;
  left: 40px;
  margin-left: -15px;
  border: 12px solid transparent;
  border-top: 12px solid #FFF;
  z-index: 2;
}

.balloon2:after {
  content: "";
  position: absolute;
  bottom: -30px;
  left: 40px;
  margin-left: -17px;
  border: 14px solid transparent;
  border-top: 14px solid #555;
  z-index: 1;
}

.balloon2 p {
  margin: 0;
  padding: 0;
}

.balloonhako {
  position: relative;
  display: table;
  margin: 1.5em 0;
  padding: 19px 10px 7px 10px;
  min-width: 120px;
  max-width: 100%;
  color: #555;
  font-size: 16px;
  background: #FFF;
  border: solid 3px #555;
  box-sizing: border-box;
  margin:0 auto !important;
}

.balloonhako:before {
  content: "";
  position: absolute;
  bottom: -24px;
  left: 50%;
  margin-left: -15px;
  border: 14px solid transparent;
  border-top: 12px solid #FFF;
  z-index: 2;
}

.balloonhako:after {
  content: "";
  position: absolute;
  bottom: -30px;
  left: 50%;
  margin-left: -17px;
  border: 14px solid transparent;
  border-top: 14px solid #555;
  z-index: 1;
}


.balloonhako h2{
	border:none !important;}

.balloonhako2 {
  position: relative;
  display: inline-block;
  margin: 1.5em 0;
  padding: 19px 10px 7px 10px;
  min-width: 120px;
  max-width: 100%;
  color: #555;
  font-size: 16px;
  background: #FFF;
  border: solid 3px #555;
  box-sizing: border-box;
}

.balloonhako2:before {
  content: "";
  position: absolute;
  bottom: -24px;
  left: 35px;
  margin-left: -15px;
  border: 12px solid transparent;
  border-top: 12px solid #FFF;
  z-index: 2;
}

.balloonhako2:after {
  content: "";
  position: absolute;
  bottom: -30px;
  left: 35px;
  margin-left: -17px;
  border: 14px solid transparent;
  border-top: 14px solid #555;
  z-index: 1;
}
.balloonhako2 h2{
	border:none !important;}

.balloon3 {
  position: relative;
/*  display: inline-block;*/
  margin: 1.5em 0;
  padding: 7px 10px;
  min-width: 120px;
  max-width: 100%;
  color: #555;
  font-size: 14px;
  background: #FFF;
  border: solid 3px #555;
  box-sizing: border-box;
}
.topnohako{
	margin-bottom: -28px;
	text-align: left;
/*	background-image: url(/images/hakases-cutout.png);
	background-size: contain;
	background-repeat-x: no-repeat;*/
	background-position: right;
	background-position: 240px;
	background-size: auto;
	font-weight: 700;
	background-repeat: no-repeat;
	    background-color:#ffe661;

}

ul.cp_list2 {
  counter-reset:number; /*数字をリセット*/
  list-style-type: none!important; /*数字を一旦消す*/
  padding: 0em 0.8em;
  margin-top: -2px;

}
ul.cp_list2 li {
  border-bottom: dashed 1px #666;
  position: relative;
padding: 0.5em 0.5em 0.5em 35px;
    text-indent: -1px;
  line-height: 1.5em;
  margin-bottom:1em;
}
ul.cp_list2 li:before{
position: absolute;
    counter-increment: number;
    content: counter(number);
    display: inline-block;
    background: #fff;
    color: #333;
    font-weight: 700;
    font-size: 25px;
    border-radius: 50%;
    left: -7px;
    width: 30px;
    height: 30px;
    line-height: 24px;
    text-align: center;
    top: 35%;
    transform: translateY(-50%);
    border-radius: 50%;
    border: 2px solid #666;

}
ul.cp_list2 li:last-of-type {
  border-bottom: none; /*最後のliの線だけ消す*/
}
.kaisetu2{
	text-align:left;
	margin-bottom: -0.3em;
}
.kaisetu2 a{
	text-decoration:none;
	font-size:1em;
	margin-left: -0.2em;
	font-weight:700;
}
.balloon-hako {
  position: relative;
/*  display: inline-block;*/
  margin: 1.5em 0;
    padding: 1em 1em 0em 1em;
  min-width: 120px;
  max-width: 100%;
  color: #555;
  font-size: 16px;
  background: #FFF;
  border: solid 3px #555;
  box-sizing: border-box;
}

.balloon-hako h3{
		    background:initial !important;
    color: #000 !important;
    text-shadow:none !important;
    background-color: #fff !important;
    padding:0 !important;
    margin: 0 0 0.5em 0 !important;
   border-bottom:none !important;
    font-size: 1.2em;
	display:inline-block !important;
	    background: linear-gradient(rgba(0,0,0,0) 50%,rgba(255,240,0,.45) 0)!important;

}
.balloonhako3 {
  position: relative;
  display: block;
    margin: 1.5em 2px 0 2px;
  padding: 12px 10px 7px 10px;
  min-width: 120px;
  max-width: 100%;
  color: #555;
  font-size: 16px;
  background: #fff;
  border: solid 2px #555;
  box-sizing: border-box;
  text-align:left;
}

.balloonhako3:before {
  content: "";
  position: absolute;
  bottom: -24px;
  left: 30px;
  margin-left: -15px;
  border: 12px solid transparent;
  border-top: 12px solid #fff;
  z-index: 2;
}

.balloonhako3:after {
  content: "";
  position: absolute;
  bottom: -30px;
  left: 31px;
  margin-left: -17px;
  border: 14px solid transparent;
  border-top: 14px solid #555;
  z-index: 1;
}


.balloonhako4 {
  position: relative;
  display: block;
    margin: 1.5em 2px 0 2px;
  padding: 12px 10px 7px 10px;
  min-width: 120px;
  max-width: 100%;
  color: #555;
  font-size: 16px;
  background: #fff;
  border: solid 2px #555;
  box-sizing: border-box;
  text-align:left;
}

.balloonhako4:before {
  content: "";
  position: absolute;
  bottom: -24px;
  left: 60px;
  margin-left: -15px;
  border: 12px solid transparent;
  border-top: 12px solid #fff;
  z-index: 2;
}

.balloonhako4:after {
  content: "";
  position: absolute;
  bottom: -30px;
  left: 61px;
  margin-left: -17px;
  border: 14px solid transparent;
  border-top: 14px solid #555;
  z-index: 1;
}


#topti2{margin:0 5px;padding-top:5px;padding-right:0;padding-bottom:5px;padding-left:0;text-align:left}
#topti2 h2{background:-webkit-repeating-linear-gradient(45deg,#1aa7b2,#1aa7b2 5px,#1aa7b2 5px,#1aa7b2 10px);background:repeating-linear-gradient(45deg,#12737a,#1e8d96 5px,#12737a 5px,#1e8d96 10px);color:#fff;text-shadow:1px 1px 1px rgba(0,0,0,.3);color:#fff;background-color:#1e8d96;padding:.5em 1em;margin-right:0;margin-bottom:0;border-bottom-width:1px;border-bottom-style:solid;border-bottom-color:#999;font-size:1em}
#topti2 h1{color:#fff;border:1px solid #0db4d1;display:inline;padding-top:5px;padding-right:15px;padding-bottom:5px;padding-left:30px;background-color:#087d91;background-repeat:repeat;margin-left:20px;background-repeat:no-repeat;background-image:url(/images/maru.png);background-position:7px}

#topti2 h3{
background: -webkit-repeating-linear-gradient(45deg,#1aa7b2,#1aa7b2 5px,#1aa7b2 5px,#1aa7b2 10px);
    background: repeating-linear-gradient(45deg,#12737a,#1e8d96 5px,#12737a 5px,#1e8d96 10px);
    color: #fff;
    text-shadow: 1px 1px 1px rgba(0,0,0,.3);
    color: #fff;
    background-color: #1e8d96;
    padding: .5em 1em;
    margin:0px -18px 0.3em -17px !important;
    /* margin-bottom: 0; */
    border-bottom-width: 1px;
    border-bottom-style: solid;
    border-bottom-color: #999;
    font-size: 1.2em !important;
	text-align:left;
	line-height:1.8em;}

#topti2 h3:first-letter{font-size:1.8em;font-weight:700;
vertical-align:-5px;}


.tabletop2{font-size:.85em;border-collapse:collapse;
width:330px}
.tabletop2 td:nth-child(1){border:1px solid #c1c1c4;padding-top:2px;padding-right:3px;padding-bottom:2px;padding-left:5px;
text-align:center;
}
.tabletop2 td{
	border:1px solid #c1c1c4;
	text-align:left;
	padding:0.4em;
}

.tabletop2 tr:hover {
	background: rgba(240,248,255,0.6);
		cursor: pointer;
  }

.tabletop3{font-size:.85em;border-collapse:collapse;
width:100%}
.tabletop3 td{border:1px solid #666;padding-top:2px;padding-right:3px;padding-bottom:2px;
text-align:center;
width:33%;}
.tabletop3 td:nth-child(1){
	font-weight:700;
}
.tabletop4{font-size:.85em;border-collapse:collapse;margin: 0 3px 0 -10px
}
.tabletop4 td{border:1px solid #ccc;padding:0.2em 1em 0.1em 1em;
text-align:center;
}
.tabletop4 th{border:1px solid #ccc;padding:0.2em 1em 0.1em 1em;
text-align:center;
background-color:#f8f8ff;
}
.tabletop4 td:nth-child(1){
	font-weight:700;
}

.tabletop5{font-size:.85em;border-collapse:collapse;
width:300px}
.tabletop5 td{border:1px solid #666;padding-top:2px;padding-right:3px;padding-bottom:2px;padding-left:5px;
text-align:center;
width:20%;}
.tabletop5 th{border:1px solid #666;padding-top:2px;padding-right:3px;padding-bottom:2px;padding-left:5px;
text-align:center;
width:20%;
background-color:#f8f8ff;
}

.tabletop5 td:nth-child(1){
	text-align:left;
}

#aowaku0 {
    font-size: 1.2em;
    /* text-align: center; */
    width: calc(100% + 31px);
    margin: -10px 0px 20px -15px !important;
    display: inline-block;
    background: -webkit-repeating-linear-gradient(45deg,#1aa7b2,#1aa7b2 5px,#1aa7b2 5px,#1aa7b2 10px);
    background: repeating-linear-gradient(45deg,#12737a,#1e8d96 5px,#12737a 5px,#1e8d96 10px);
    color: #fff !important;
    text-shadow: 1px 1px 1px rgba(0,0,0,.3);
    color: #fff !important;
    background-color: #1e8d96;
	opacity: 0.8;
  padding: 14px 0;
}
#aowaku0 h1{
	color:#fff;}
#aowaku0 h1 span:first-child{
display: inline-block;
    padding: 0 12px;}
#aowaku0 h2{
	color:#fff;}
.toph1{
	font-size:0.9em;}
h1.toph1 {
	margin-top:1.3em;}

h1.toph1 span{
  display:block;
　width:100%;
}
h1.toph1 span:nth-of-type(2){
  display:block;
  font-size:0.9em;
}

h1.toph1 span:nth-of-type(2):before{
			content:"＼ ";
    }

h1.toph1 span:nth-of-type(2):after{
			content:" ／";
    }

h1.toph12 {
	margin-top:1.1em;}

h1.toph12 span{
  display:block;
　width:100%;
}
h1.toph12 span:nth-of-type(2){
  display:block;
  font-size:0.9em;
}
.timebox {
  font-size: 0.85em;
  color: #727272;
  padding: 0 0 0 1em;
}
.timebox img{
  display: inline;
}

.group-list {
    font-size: 0;
    margin-bottom: 20px;
	    margin-left: -40px;

}

.parent-group {
    display: inline-block;
    background: #fff;
    padding: 20px 6px 10px 6px;
    -webkit-box-sizing: border-box;
    box-sizing: border-box;
    width: 50%;
    height: 135px;
    vertical-align: top;
    border: solid 1px #ccc;
}
.parent-group .group-link {
    display: block;
}


.parent-group .child-area {
    overflow: hidden;
    display: -webkit-box;
    -webkit-box-orient: vertical;
    -webkit-line-clamp: 3;
    white-space: normal;
    word-break: break-all;
    font-size: .9rem;
    color: #626262;
    line-height: 1.5em;
    text-align: left;
    margin-top: 10px;
    padding: 0 0.1em 0 0.5em;

}

.parent-group a{
    color: #333;
    margin: 0;
    padding: 0;
    font-size: 100%;
    vertical-align: baseline;
    background: transparent;
	text-align:left;
	text-decoration:none;

}
.top-page .parent-group .group-name-area {
    display: table;
}


.parent-group .group-name {
    color: #442f2f;
    vertical-align: super;
    font-size: 1.1rem;
}
.group-name-area img{
  display: inline;
}
.top-page .parent-group .child-area {
    overflow: hidden;
    display: -webkit-box;
    -webkit-box-orient: vertical;
    -webkit-line-clamp: 3;
    white-space: normal;
    word-break: break-all;
    font-size: .9rem;
    color: #626262;
}

.gyou2 {
    font-size: 0.8em;
    line-height: 1.1em;
    text-indent: initial;
    top: -5px;
    position: relative;
}


        /* 全体のコンテナ */
        .courses-container {
            max-width: 1280px; /* container */
            margin-left: auto; /* mx-auto */
            margin-right: auto; /* mx-auto */
            /*padding: 1rem;  p-4 */
            display: grid; /* grid */
            grid-template-columns: repeat(1, minmax(0, 1fr)); /* grid-cols-1 */
            gap: 1.5rem; /* gap-6 */
        }
        /* スマートフォン向けに最適化されているため、PC向けのメディアクエリは削除しました。 */

        /* 各コースカード */
        .course-card {
            background-color: #ffffff;
/*            box-shadow: 0 10px 15px -3px rgba(0, 0, 0, 0.1), 0 4px 6px -2px rgba(0, 0, 0, 0.05);
            border-radius: 0.75rem; */
            overflow: hidden; /* overflow-hidden */
            display: flex; /* flex */
            flex-direction: column; /* flex-col */
            height: 100%; /* h-full */
/*            transition-property: transform;
            transition-duration: 300ms;
            transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1); */
        }


        /* カードヘッダー */
        .course-header {
            display: flex; /* flex */
            align-items: center; /* items-center */
            padding: 1rem; /* p-4 */
            border-bottom-width: 1px; /* border-b */
            border-color: #e5e7eb; /* border-gray-200 */
        }

        /* コースロゴ */
        .course-logo {
            width: 4rem; /* w-16 */
            height: 4rem; /* h-16 */
            border-radius: 9999px; /* rounded-full */
            object-fit: cover; /* object-cover */
            margin-right: 1rem; /* mr-4 */
            box-shadow: 0 1px 2px 0 rgba(0, 0, 0, 0.05); /* shadow-sm */
        }

        /* タイトルグループ */
        .course-title-group {
            flex-grow: 1; /* flex-grow */
        }

        /* コース名 */
        .course-name {
            font-size: 1.5rem; /* text-2xl */
            font-weight: 700; /* font-bold */
            color: #2d3748; /* text-gray-800 */
            margin-bottom: 0.25rem; /* mb-1 */
        }

        /* ショートネーム */
        .course-shortname {
            color: #4a5568; /* text-gray-600 */
            font-size: 0.875rem; /* text-sm */
        }

        /* カードボディ */
        .course-body {
               flex-grow: 1; /* flex-grow */
        }

        /* メイン画像 */
        .course-main-image {
            /*width: 100%;  w-full */
            /*height: 12rem;  h-48 */
            /*object-fit: cover;  object-cover */
            border-radius: 0.5rem; /* rounded-lg */
            margin: 0 auto 0 auto; /* mb-4 */
            box-shadow: 0 4px 6px -1px rgba(0, 0, 0, 0.1), 0 2px 4px -1px rgba(0, 0, 0, 0.06); /* shadow-md */
        }

        /* キャッチコピー */
        .course-catchcopy {
            font-size: 1.125rem; /* text-lg */
            font-weight: 600; /* font-semibold */
            color: #4338ca; /* text-indigo-700 */
            margin-bottom: 0.75rem; /* mb-3 */
        }

        /* 説明文 (短・長) */
        .course-description-short,
        .course-description-long {
            color: #4a5568; /* text-gray-700 */
            line-height: 1.625; /* leading-relaxed */
            margin-bottom: 1rem; /* mb-4 */
        }

        /* 料金テーブル */
        .price-table {
            width: 100%; /* w-full */
            border-collapse: collapse; /* border-collapse */
            margin-bottom: 1rem; /* mb-4 */
            font-size: 0.875rem; /* text-sm */
        }

        .price-table th,
        .price-table td {
             border: 1px solid #e5e7eb; /* border border-gray-200 */
            padding: 0.5rem; /* p-2 */
            border-radius: 0.25rem; /* rounded-md */
        }

        .price-table thead th {
            background-color: #f3f4f6; /* bg-gray-100 */
            font-weight: 600; /* font-semibold */
            color: #4a5568; /* text-gray-700 */
        }

        .price-table tbody tr:nth-child(even) {
            background-color: #f9fafb; /* bg-gray-50 */
        }

        /* 料金表示内のテキスト */
        .price-table td p {
            font-weight: 700; /* font-bold */
            color: #2d3748; /* text-gray-800 */
            margin-bottom: 0.25rem; /* mb-1 */
        }

        .price-table td ul {
            list-style: none; /* list-none */
            padding: 0; /* p-0 */
            margin: 0; /* m-0 */
        }

        .price-table td ul li {
            color: #4a5568; /* text-gray-600 */
            font-size: 0.75rem; /* text-xs */
        }

        /* 割引バッジ */
        .discount-badge {
            display: inline-block; /* inline-block */
            background-color: #d1fae5; /* bg-green-100 */
            color: #10b981; /* text-green-800 */
            font-size: 0.75rem; /* text-xs */
            font-weight: 500; /* font-medium */
            padding-left: 0.625rem; /* px-2.5 */
            padding-right: 0.625rem; /* px-2.5 */
            padding-top: 0.125rem; /* py-0.5 */
            padding-bottom: 0.125rem; /* py-0.5 */
            border-radius: 9999px; /* rounded-full */
            margin-top: 0.25rem; /* mt-1 */
        }

        /* 割引情報 */
        .discount-info {
            display: inline-block; /* inline-block */
            background-color: #eff6ff; /* bg-blue-100 */
            color: #2563eb; /* text-blue-800 */
            font-size: 0.75rem; /* text-xs */
            font-weight: 500; /* font-medium */
            padding-left: 0.625rem; /* px-2.5 */
            padding-right: 0.625rem; /* px-2.5 */
            padding-top: 0.125rem; /* py-0.5 */
            padding-bottom: 0.125rem; /* py-0.5 */
            border-radius: 9999px; /* rounded-full */
            margin-top: 0.25rem; /* mt-1 */
        }

        /* 注意書き */
        .note {
            font-size: 0.875rem; /* text-sm */
            color: #6b7280; /* text-gray-500 */
            margin-top: 0.5rem; /* mt-2 */
            margin-bottom: 1rem; /* mb-4 */
        }

        /* その他のコース情報 */
        .course-info p {
            color: #4a5568; /* text-gray-700 */
            margin-bottom: 0.5rem; /* mb-2 */
        }

        .course-info strong {
            color: #2d3748; /* text-gray-800 */
        }

        /* アクションボタンコンテナ */
        .course-actions {
            margin-top: auto; /* mt-auto */
            padding-top: 1rem; /* pt-4 */
            border-top-width: 1px; /* border-t */
            border-color: #e5e7eb; /* border-gray-200 */
            display: flex; /* flex */
            flex-direction: column; /* flex-col */
            row-gap: 0.75rem; /* space-y-3 */
        }

        /* ボタン共通スタイル */
        .btn {
            display: block; /* block */
            width: 100%; /* w-full */
            text-align: center; /* text-center */
            padding-top: 0.75rem; /* py-3 */
            padding-bottom: 0.75rem; /* py-3 */
            padding-left: 1rem; /* px-4 */
            padding-right: 1rem; /* px-4 */
            border-radius: 0.5rem; /* rounded-lg */
            font-weight: 600; /* font-semibold */
            transition-property: background-color, border-color, color, fill, stroke, opacity, box-shadow, transform, filter, backdrop-filter; /* transition */
            transition-duration: 300ms; /* duration-300 */
            transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1); /* ease-in-out */
            outline: none; /* focus:outline-none */
        }
        .btn:focus { /* focus:ring-2 focus:ring-offset-2 */
            box-shadow: 0 0 0 2px #ffffff, 0 0 0 4px var(--tw-ring-color);
        }

        /* プライマリボタン */
        .btn-primary {
            background-color: #4f46e5; /* bg-indigo-600 */
            color: #ffffff; /* text-white */
            box-shadow: 0 4px 6px -1px rgba(0, 0, 0, 0.1), 0 2px 4px -1px rgba(0, 0, 0, 0.06); /* shadow-md */
            --tw-ring-color: #6366f1; /* focus:ring-indigo-500 */
        }
        .btn-primary:hover { /* hover:bg-indigo-700 */
            background-color: #4338ca;
        }

        /* セカンダリボタン */
        .btn-secondary {
            background-color: #e5e7eb; /* bg-gray-200 */
            color: #2d3748; /* text-gray-800 */
            box-shadow: 0 1px 2px 0 rgba(0, 0, 0, 0.05); /* shadow-sm */
            --tw-ring-color: #9ca3af; /* focus:ring-gray-400 */
        }
        .btn-secondary:hover { /* hover:bg-gray-300 */
            background-color: #d1d5db;
        }

        /* アフィリエイトボタン */
        .btn-affiliate {
            background-color: #f97316; /* bg-orange-500 */
            color: #ffffff; /* text-white */
            box-shadow: 0 4px 6px -1px rgba(0, 0, 0, 0.1), 0 2px 4px -1px rgba(0, 0, 0, 0.06); /* shadow-md */
            --tw-ring-color: #f97316; /* focus:ring-orange-500 */
        }
        .btn-affiliate:hover { /* hover:bg-orange-600 */
            background-color: #ea580c;
        }

        /* カードフッター */
        .course-footer {
            padding: 1rem; /* p-4 */
            border-top-width: 1px; /* border-t */
            border-color: #e5e7eb; /* border-gray-200 */
            font-size: 0.875rem; /* text-sm */
            color: #4a5568; /* text-gray-600 */
            margin-top: auto; /* mt-auto */
        }

        /* 最終更新日 */
        .last-updated {
            font-size: 0.75rem; /* text-xs */
            color: #6b7280; /* text-gray-500 */
            margin-bottom: 0.25rem; /* mb-1 */
        }

        /* キャンペーン情報 */
        .campaign-info {
            background-color: #fffbeb; /* bg-yellow-50 */
            color: #92400e; /* text-yellow-800 */
            padding: 0.5rem; /* p-2 */
            border-radius: 0.375rem; /* rounded-md */
            margin-bottom: 0.5rem; /* mb-2 */
            font-weight: 500; /* font-medium */
        }

        /* 受賞歴 */
        .course-awards {
            color: #4a5568; /* text-gray-700 */
            font-size: 0.875rem; /* text-sm */
        }

.courses-grid-mobile {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 8px;
  margin: 16px 0px;
}

.course-card {
  background: #fff;
  border: 1px solid #ddd;
  border-radius: 6px;
  overflow: hidden;
  font-size: 12px;
}
.course-card a{
  text-decoration: none;
}
.course-image-square {
  width: 100%;
  aspect-ratio: 1 / 1;
  overflow: hidden;
}

.course-image-square img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}

.course-header {
  padding: 8px 6px 4px 6px;
  text-align: center;
}

.course-title {
  font-size: 13px;
  font-weight: bold;
  margin: 0 0 4px 0;
  color: #333;
  line-height: 1.2;
}

.course-tagline {
  font-size: 10px;
  color: #666;
  margin: 0;
  line-height: 1.3;
}

.course-price {
  text-align: center;
  padding: 4px 6px;
}

.price-badge {
  background: #4a90e2;
  color: white;
  padding: 3px 8px;
  border-radius: 12px;
  font-size: 10px;
  font-weight: bold;
  display: inline-block;
}

.course-description {
  padding: 0 6px 8px 6px;
  font-size: 10px;
  color: #666;
  line-height: 1.4;
  text-align: center;
}

.course-links {
  padding: 6px;
  border-top: 1px solid #f0f0f0;
  background: #fafafa;
}

.link-item {
  align-items: center;
  font-size: 10px;
 margin: 0 auto 3px auto;
}

.link-item:last-child {
  margin-bottom: 0;
}




.course-title {
  white-space: nowrap;      /* 改行防止 */
  overflow: hidden;         /* はみ出し隠す */
  text-overflow: ellipsis;  /* ...で省略 */
}

.course-description {
  white-space: nowrap;      /* 改行防止 */
  overflow: hidden;         /* はみ出し隠す */
  text-overflow: ellipsis;  /* ...で省略 */
}

/* courses-ranking-mobile-only.css */

/* 全体コンテナ */
.courses-ranking-container {
    margin: 20px 0; /* 上下の余白 */
    padding: 0 0; /* 左右のパディング */
    font-family: 'Segoe UI', 'メイリオ', Meiryo, sans-serif; /* フォント指定 */
    overflow-x: hidden; /* 横スクロール防止 */
}

/* 個々のランキングアイテム */
.course-ranking-item {
    display: flex;
    flex-direction: column;
    align-items: center;
    border: 1px solid #e0e0e0;
    border-radius: 8px;
    margin-bottom: 20px;
    padding: 30px 10px 0px 10px;
    box-shadow: 0 2px 8px rgba(0, 0, 0, 0.05);
}

/* 1位 - ゴールドグラデーション */
.course-ranking-item:nth-child(1) {
    background: linear-gradient(135deg, #FFD700, #FFA500);
}

/* 2位 - シルバーグラデーション */
.course-ranking-item:nth-child(2) {
    background: linear-gradient(135deg, #C0C0C0, #A0A0A0);
}

/* 3位 - ブロンズグラデーション */
.course-ranking-item:nth-child(3) {
    background: linear-gradient(135deg, #CD7F32, #B8860B);
}

/* 4位以降の個別色指定 */
.course-ranking-item:nth-child(4) {
    background-color: #4A90E2;
}

.course-ranking-item:nth-child(5) {
    background-color: #5CB85C;
}

.course-ranking-item:nth-child(6) {
    background-color: #9B59B6;
}

.course-ranking-item:nth-child(7) {
    background-color: #E67E22;
}

.course-ranking-item:nth-child(8) {
    background-color: #E74C3C;
}

.course-ranking-item:nth-child(9) {
    background-color: #1ABC9C;
}

.course-ranking-item:nth-child(10) {
    background-color: #F39C12;
}

.course-ranking-item:nth-child(11) {
    background-color: #8E44AD;
}

.course-ranking-item:nth-child(12) {
    background-color: #16A085;
}

.course-ranking-item:nth-child(13) {
    background-color: #C0392B;
}

.course-ranking-item:nth-child(14) {
    background-color: #2980B9;
}

.course-ranking-item:nth-child(15) {
    background-color: #27AE60;
}
/* パターン2: 15色をループさせる場合（上記の統一色をコメントアウトして以下を使用） */

.course-ranking-item:nth-child(15n+1) {
    background: linear-gradient(135deg, #FFD700, #FFA500);
}

.course-ranking-item:nth-child(15n+2) {
    background: linear-gradient(135deg, #C0C0C0, #A0A0A0);
}

.course-ranking-item:nth-child(15n+3) {
    background: linear-gradient(135deg, #CD7F32, #B8860B);
}

.course-ranking-item:nth-child(15n+4) {
    background-color: #4A90E2;
}

.course-ranking-item:nth-child(15n+5) {
    background-color: #5CB85C;
}

.course-ranking-item:nth-child(15n+6) {
    background-color: #9B59B6;
}

.course-ranking-item:nth-child(15n+7) {
    background-color: #E67E22;
}

.course-ranking-item:nth-child(15n+8) {
    background-color: #E74C3C;
}

.course-ranking-item:nth-child(15n+9) {
    background-color: #1ABC9C;
}

.course-ranking-item:nth-child(15n+10) {
    background-color: #F39C12;
}

.course-ranking-item:nth-child(15n+11) {
    background-color: #8E44AD;
}

.course-ranking-item:nth-child(15n+12) {
    background-color: #16A085;
}

.course-ranking-item:nth-child(15n+13) {
    background-color: #C0392B;
}

.course-ranking-item:nth-child(15n+14) {
    background-color: #2980B9;
}

.course-ranking-item:nth-child(15n+15) {
    background-color: #27AE60;
}




/* ランキング番号 */
.ranking-number {
    font-size: 2.2em; /* 大きめのフォントサイズ */
    font-weight: bold;
    color: #4CAF50; /* 目立つ色 */
    margin-bottom: 15px; /* 下に余白 */
    padding: 0 10px; /* 左右のパディングで囲みを想定 */
    /* 背景を丸くする例 (不要なら削除) */
    /* background-color: #e8f5e9; */
    /* border-radius: 50%; */
    /* width: 40px; */
    /* height: 40px; */
    /* display: flex; */
    /* justify-content: center; */
    /* align-items: center; */
}

/* コースメイン画像 */
.course-main-image {
    width: 100%; /* 幅いっぱいに */
    /*height: 180px;  固定の高さ */
    overflow: hidden; /* はみ出しを隠す */
    border-radius: 4px; /* 角を少し丸くする */
    margin-bottom: 15px; /* 下に余白 */
}

.course-main-image img {
    width: 100%;
    height: 100%;
    object-fit: cover; /* 画像をボックスに合わせてトリミング */
    display: block;
}

/* コース情報全体 */
.course-info {
    width: 100%; /* 幅いっぱいに */
    text-align: left; /* テキストは左寄せ */
    margin-top: -55px;
}

/* コースタイトル */
.course-title {
    font-size: 1.4em; /* タイトルのフォントサイズ */
    margin-top: 0;
    margin-bottom: 8px;
    line-height: 1.3;
    text-align: center; /* タイトルは中央寄せ */
}

.course-title a {
    color: #333; /* リンクの色 */
    text-decoration: none; /* 下線なし */
}

.course-title a:hover { /* モバイルではホバーは限定的ですが念のため */
    color: #007bff;
}

/* タグライン */
.course-tagline {
    font-size: 0.9em;
    color: #666;
    margin-bottom: 15px;
    text-align: center; /* 中央寄せ */
}

/* 強みリスト */
.course-strengths {
    margin-top: 15px;
    margin-bottom: 15px;
    padding-top: 10px;
    border-top: 1px dashed #eee; /* 上部に点線ボーダー */
}



.course-strengths ul {
    list-style: none; /* デフォルトのリストスタイルをなくす */
    padding: 0;
    margin: 0;
    display: flex; /* Flexboxで横並び */
    flex-wrap: wrap; /* 画面幅に合わせて折り返す */
    justify-content: center; /* 中央寄せ */
    gap: 8px; /* アイテム間の隙間 */
}

.course-strengths li {
    background-color: #e8f5e9; /* 背景色（薄い緑） */
    color: #2e7d32; /* 文字色（濃い緑） */
    padding: 5px 10px;
    border-radius: 3px;
    font-size: 0.8em;
    white-space: nowrap; /* 強みが改行されないようにする */
}

/* 詳細説明 */
.course-long-description {
    margin-top: 15px;
    margin-bottom: 15px;
}





.course-long-description p {
    font-size: 0.9em;
    color: #555;
    line-height: 1.6;
    text-align: left; /* テキストは左寄せ */
}

/* 価格バッジ */
.course-price {
    text-align: center; /* 中央寄せ */
    margin-top: 0px;
}

.price-badge {
    background-color: #FFC107; /* 目立つ黄色 */
    color: #333;
    padding: 8px 15px;
    border-radius: 20px; /* 丸いバッジ */
    font-weight: bold;
    font-size: 1.0em;
    display: inline-block;
}

/* リンクエリア */
.course-links {
    display: flex; /* Flexboxでボタンを横並びにする */
    flex-direction: column; /* ボタンを縦に並べる */
    gap: 10px; /* ボタン間のスペース */
    margin-top: 20px;
    width: 100%;
}

.link-item {
    width: 100%; /* ボタンの幅をいっぱいに */
}

.link-item a {
    display: block; /* ボタン全体をブロック要素に */
    padding: 12px 0; /* 上下のパディングを増やして押しやすく */
    background-color: #007bff; /* 青色のボタン */
    color: white;
    text-align: center;
    text-decoration: none;
    border-radius: 5px;
    font-weight: bold;
    font-size: 1.0em;
}

/* リンクボタンのセカンダリカラー (例: 公式サイトボタンを別の色にする場合) */
.course-links .link-item:nth-child(2) a {
    background-color: #6c757d; /* グレー系 */
}

.course-links .link-item:nth-child(2) a:hover {
    background-color: #5a6268;
}

.courses-comparison {
  padding: 1rem;
  margin: 0 auto;
  max-width: 480px;
}

.comparison-header h2 {
  text-align: center;
  margin-bottom: 1.5rem;
  color: #333;
  font-size: 1.5rem;
}

.comparison-table {
  display: flex;
  flex-direction: column;
  gap: 1rem;
}

/* コースヘッダー */
.comparison-row.header-row {
  display: flex;
  gap: 1rem;
  margin-bottom: 1rem;
}

.comparison-row.header-row .comparison-cell {
  flex: 1;
  padding: 0;
}

.comparison-row.header-row .comparison-label {
  display: none;
}

.course-header {
  background-color: #f8f9fa;
  padding: 1rem;
  border-radius: 8px;
  text-align: center;
  border: 1px solid #dee2e6;
}

.course-image-small {
  width: 60px;
  height: 60px;
  border-radius: 8px;
  overflow: hidden;
  margin: 0 auto 0.5rem;
}

.course-image-small img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}

.course-header h3 {
  margin: 0;
  font-size: 1rem;
  color: #333;
  line-height: 1.3;
}

/* 比較項目の行 */
.comparison-row:not(.header-row):not(.action-row) {
  background-color: #fff;
  border: 1px solid #dee2e6;
  border-radius: 8px;
  padding: 1rem;
  margin-bottom: 0.5rem;
}

.comparison-label {
  font-weight: bold;
  color: #495057;
  margin-bottom: 0.75rem;
  font-size: 0.9rem;
  display: block;
}

.comparison-values {
  display: flex;
  gap: 1rem;
}

.comparison-value {
  flex: 1;
  padding: 0.75rem;
  background-color: #f8f9fa;
  border-radius: 6px;
  border: 1px solid #e9ecef;
  text-align: center;
  font-size: 0.9rem;
}

.price-badge {
  background-color: #007bff;
  color: white;
  padding: 0.25rem 0.5rem;
  border-radius: 4px;
  font-weight: bold;
  font-size: 0.8rem;
  display: inline-block;
}

.not-available {
  color: #888;
  font-style: italic;
}

/* アクション行 */
.comparison-row.action-row {
  background-color: #f8f9fa;
  border: 1px solid #dee2e6;
  border-radius: 8px;
  padding: 1rem;
  margin-top: 1rem;
}

.comparison-row.action-row .comparison-label {
  text-align: center;
  margin-bottom: 1rem;
  font-size: 1rem;
}

.action-buttons {
  display: flex;
  gap: 1rem;
}

.course-actions {
  flex: 1;
  display: flex;
  flex-direction: column;
  gap: 0.5rem;
}

.btn {
  padding: 0.75rem 1rem;
  border: none;
  border-radius: 6px;
  text-decoration: none;
  text-align: center;
  font-weight: bold;
  font-size: 0.9rem;
  transition: all 0.3s ease;
  display: block;
}

.btn-primary {
  background-color: #007bff;
  color: white;
}

.btn-primary:active {
  background-color: #0056b3;
}

.btn-secondary {
  background-color: #6c757d;
  color: white;
}

.btn-secondary:active {
  background-color: #545b62;
}

.comparison-error {
  background-color: #f8d7da;
  border: 1px solid #f5c6cb;
  color: #721c24;
  padding: 1rem;
  border-radius: 8px;
  margin: 2rem auto;
  max-width: 800px;
}

.comparison-error h3 {
  margin-top: 0;
  color: #721c24;
}

.comparison-error h4 {
  margin-top: 1.5rem;
  margin-bottom: 0.5rem;
  color: #721c24;
}

.comparison-error ul {
  background-color: #fff;
  padding: 1rem;
  border-radius: 4px;
  border: 1px solid #dee2e6;
}

.comparison-error li {
  margin-bottom: 0.5rem;
}

.comparison-error code {
  background-color: #f8f9fa;
  padding: 2px 4px;
  border-radius: 3px;
  font-family: monospace;
}

.comparison-error pre {
  background-color: #f8f9fa;
  padding: 1rem;
  border-radius: 4px;
  border: 1px solid #dee2e6;
  overflow-x: auto;
}

.comparison-error pre code {
  background: none;
  padding: 0;
}

/* レスポンシブ対応 */
@media (max-width: 768px) {
  .comparison-row {
    grid-template-columns: 1fr;
  }

  .comparison-cell {
    border-right: none;
    border-bottom: 1px solid #eee;
  }

  .comparison-cell:last-child {
    border-bottom: none;
  }

  .comparison-label {
    background-color: #e9ecef;
    justify-content: flex-start;
    font-size: 0.9rem;
  }
}

   .table-container {
            position: relative;
            height: 70vh;
            overflow: hidden;
            border: 2px solid #e1e8ed;
        }

        .table-wrapper {
            position: relative;
            height: 100%;
            overflow: auto;
        }

        .edu-table {
            border-collapse: collapse;
            width: auto;
            min-width: 100%;
        }

        .edu-table .edu-cell {
            border: 1px solid #e1e8ed;
            padding: 12px 8px;
            text-align: center;
            font-size: 0.8rem;
            white-space: nowrap;
            background: white;
        }

        /* 固定ヘッダー */
        .edu-table .edu-header .edu-cell {
            position: sticky;
            top: 0;
            background: #666;
            color: white;
            z-index: 3;
            font-weight: 600;
            box-shadow: 0 1px 3px rgba(0,0,0,0.1);
        }

        /* 固定左列 */
        .edu-table .edu-row .edu-subject {
            position: sticky;
            left: 0;
            background: #555;
            color: white;
            z-index: 2;
            font-weight: 600;
            box-shadow: 1px 0 3px rgba(0,0,0,0.1);
        }

        /* 左上角の固定セル */
        .edu-table .edu-header .edu-cell:first-child {
            position: sticky;
            left: 0;
            z-index: 4;
            background: #444;
        }

        /* データセル */
        .edu-table .edu-data {
            background: white;
            transition: all 0.2s ease;
            cursor: pointer;
        }

        .edu-table .edu-data:hover {
            background: #f0f8ff;
            transform: none;
            box-shadow: 0 1px 3px rgba(0,0,0,0.1);
        }

        /* レベル表示 */
        .edu-level-1 { background: #f9f9f9; }
        .edu-level-2 { background: #f0f0f0; }
        .edu-level-3 { background: #e8e8e8; }
        .edu-level-4 { background: #e0e0e0; }
        .edu-level-5 { background: #d8d8d8; }

        .controls {
            padding: 20px;
            background: #f8f9fa;
            display: flex;
            justify-content: center;
            gap: 10px;
            flex-wrap: wrap;
        }

        .edu-btn {
            padding: 10px 20px;
            border: 1px solid #ddd;
            border-radius: 4px;
            background: white;
            color: #333;
            font-size: 0.9rem;
            font-weight: 500;
            cursor: pointer;
            transition: all 0.2s ease;
            box-shadow: none;
        }

        .edu-btn:hover {
            background: #f5f5f5;
            transform: none;
            box-shadow: 0 1px 3px rgba(0,0,0,0.1);
        }

        .edu-btn:active {
            transform: translateY(0);
        }

        @media (max-width: 480px) {
            .header h1 {
                font-size: 1.2rem;
            }

            .edu-table .edu-cell {
                padding: 8px 6px;
                font-size: 0.7rem;
            }

            .table-container {
                height: 60vh;
            }
            /* コース情報全体 */
.course-info {
    width: 100%; /* 幅いっぱいに */
    text-align: left; /* テキストは左寄せ */
    margin-top: 0px;
}

        }

.card-container{
            width: 100% !important;
            max-width: calc(100vw - 4px) !important;
            margin: 0 auto;
            box-sizing: border-box;
}

 .grid {
            display: grid;
            grid-template-columns: repeat(3, 1fr);
            gap: 10px 2px;
            margin: 0 10px;
        }

        .card {
            background: white;
            border: 1px solid #d1d5db;
            min-width: 0
        }

        .card-header {
            background: #2a5865;
            color: white;
            padding: 6px 4px;
            text-align: center;
            font-size: 12px;
            font-weight: bold;
            white-space: nowrap;
            overflow: hidden;
            text-overflow: ellipsis;
        }

        .card-image {
            width: 100%;
            aspect-ratio: 1;
            background: #f3f4f6;
            display: flex;
            align-items: center;
            justify-content: center;
            border-bottom: 1px solid #e5e7eb;
            padding: 0;
            overflow: hidden;
        }

        .card-image img {
            width: 100%;
            height: 100%;
            object-fit: cover;
            display: block;
        }

        .placeholder-img {
            font-size: 9px;
            text-align: center;
            line-height: 1.3;
            margin: 0;
            padding: 0;
        }

        .card-price {
            background: #31737e;
            color: white;
            padding: 4px;
            text-align: center;
            font-weight: bold;
            font-size: 12px;
        }

        .card-content {
            padding: 6px 4px;
        }

        .card-description {
            color: #374151;
            font-size: 10px;
            margin-bottom: 6px;
            text-align: center;
            height: 24px;
            display: flex;
            align-items: center;
            justify-content: center;
            background: linear-gradient(transparent 40%, #fef08a 40%, #fef08a 80%, transparent 80%);
            font-weight: 500;
            white-space: nowrap;
            overflow: hidden;
            text-overflow: ellipsis;
            padding: 0 2px;
        }

        .card-links {
            display: flex;
            flex-direction: column;
            gap: 2px;
            padding-left: 1.2em;
        }
      .card-links a{
            font-size: 10px;
            text-decoration:none ;
        }
        .link-internal,
        .link-external {
             display: block;
            text-decoration: none;
            font-size: 7px;
            text-align: center;
            padding: 1px;
            color: #374151;
            white-space: nowrap;
            overflow: hidden;
            text-overflow: ellipsis;
        }



        .link-internal:hover,
        .link-external:hover {
            text-decoration: underline;
        }

.wakusiro{margin:20px;padding:20px 20px 20px 20px;border:1px solid #aad3db;background-color:#fff;
  font-size: 0.9em;
}
.wakusiro b{
  font-size: 1.5em;}

.price-table-container {
  margin: 1rem 0;
  max-width: 100%;
}

.grade-selector {
  display: flex;
  flex-wrap: wrap;
  gap: 0.5rem;
  margin-bottom: 1rem;
  padding: 0 0.5rem;
}

.grade-btn {
  flex: 1;
  min-width: calc(33.333% - 0.5rem);
  padding: 0.75rem 0.5rem;
  border: 2px solid #ddd;
  background-color: #fff;
  color: #666;
  border-radius: 8px;
  font-size: 14px;
  font-weight: bold;
  cursor: pointer;
  transition: all 0.3s ease;
}

.grade-btn.active {
  background-color: #007bff;
  color: white;
  border-color: #007bff;
}

.grade-btn:hover {
  background-color: #f8f9fa;
}

.grade-btn.active:hover {
  background-color: #0056b3;
}

.sort-options {
  margin-bottom: 1rem;
  padding: 0 0.5rem;
  display: flex;
  align-items: center;
  gap: 0.5rem;
}

.sort-options label {
  font-size: 14px;
  font-weight: bold;
  color: #333;
}

.sort-options select {
  padding: 0.5rem;
  border: 1px solid #ddd;
  border-radius: 4px;
  font-size: 14px;
  background-color: white;
}

.grade-table h3 {
  margin: 0 0 1rem 0;
  padding: 0 0.5rem;
  font-size: 18px;
  color: #333;
}

.price-table {
  width: 100%;
  border-collapse: collapse;
  font-size: 12px;
  box-shadow: 0 2px 8px rgba(0,0,0,0.1);
}

.price-table th,
.price-table td {
  padding: 8px 4px;
  text-align: center;
  border-bottom: 1px solid #ddd;
/*  vertical-align: top;*/
}

.price-table th {
  background-color: #f8f9fa;
  font-weight: bold;
  color: #333;
  border-bottom: 2px solid #ddd;
  position: sticky;
  top: 0;
  z-index: 10;
}

.price-table tr:nth-child(even) {
  background-color: #f9f9f9;
}

.material-name {
  font-weight: bold;
  min-width: 80px;
  max-width: 100px;
}

.material-name a {
  text-decoration: none;
  color: #333;
  font-size: 11px;
  line-height: 1.3;
  display: block;
}



.price-main {
  font-weight: bold;
  color: #333;
  font-size: 13px;
  line-height: 1.2;
}

.price-note {
  font-size: 10px;
  color: #666;
  margin-top: 2px;
  line-height: 1.1;
}

.price-discount {
  font-size: 10px;
  color: #28a745;
  margin-top: 2px;
  font-weight: bold;
  line-height: 1.1;
}

.price-unavailable {
  color: #999;
  font-style: italic;
}

.price-monthly,
.price-half-yearly,
.price-yearly {
  width: 22%;
  min-width: 60px;
}


.price-table-container {
  margin: 1rem 0;
  max-width: 100%;
}

.grade-selector {
  display: flex;
  flex-wrap: wrap;
  gap: 0.5rem;
  margin-bottom: 1rem;
  padding: 0 0.5rem;
}

.grade-btn {
  flex: 1;
  min-width: calc(33.333% - 0.5rem);
  padding: 0.75rem 0.5rem;
  border: 2px solid #ddd;
  background-color: #fff;
  color: #666;
  border-radius: 8px;
  font-size: 14px;
  font-weight: bold;
  cursor: pointer;
  transition: all 0.3s ease;
}

.grade-btn.active {
  background-color: #007bff;
  color: white;
  border-color: #007bff;
}

.grade-btn:hover {
  background-color: #f8f9fa;
}

.grade-btn.active:hover {
  background-color: #0056b3;
}

.sort-options {
  margin-bottom: 1rem;
  padding: 0 0.5rem;
  display: flex;
  align-items: center;
  gap: 0.5rem;
}

.sort-options label {
  font-size: 14px;
  font-weight: bold;
  color: #333;
}

.sort-options select {
  padding: 0.5rem;
  border: 1px solid #ddd;
  border-radius: 4px;
  font-size: 14px;
  background-color: white;
}

.grade-table h3 {
  margin: 0 0 1rem 0;
  padding: 0 0.5rem;
  font-size: 18px;
  color: #333;
}

.price-table {
  width: 100%;
  border-collapse: collapse;
  font-size: 12px;
  box-shadow: 0 2px 8px rgba(0,0,0,0.1);
}



.price-table th {
  background-color: #f8f9fa;
  font-weight: bold;
  color: #333;
  border-bottom: 2px solid #ddd;
  position: sticky;
  top: 0;
  z-index: 10;
}

.price-table tr:nth-child(even) {
  background-color: #f9f9f9;
}

/*.material-name {
  width: 25%;
  min-width: 150px;
  font-weight: bold;
}*/

.material-name a {
  text-decoration: none;
  color: #333;
  font-size: 13px;
  line-height: 1.3;
  display: block;

}

.material-name a:hover {
  color: #007bff;
  text-decoration: underline;
}

/* 画像表示スタイル */
.material-images {
  display: flex;
  flex-wrap: wrap;
  gap: 0.3rem;
  margin-top: 0.5rem;
  justify-content: center;
}

.image-container {
  flex: 1;
  min-width: 60px;
  max-width: 80px;
  border: 1px solid #e0e0e0;
  border-radius: 4px;
  overflow: hidden;
  background-color: #f9f9f9;
}


.image-container img {
  width: 100%;
  height: 50px;
  object-fit: cover;
  display: block;
  object-position: top;
}


.price-monthly,
.price-half-yearly,
.price-yearly {
  width: 25%;
  text-align: center;
}

.price-main {
  font-weight: bold;
  color: #333;
  font-size: 14px;
  margin-bottom: 0.25rem;
}

.price-note {
  font-size: 10px;
  color: #666;
  font-style: italic;
}

.price-discount {
  font-size: 10px;
  color: #28a745;
  font-weight: bold;
}

.price-unavailable {
  color: #999;
  font-style: italic;
  font-size: 14px;
}

/* 画像モーダル用スタイルを削除 */
/*
.image-modal {
  display: none;
  position: fixed;
  z-index: 1000;
  left: 0;
  top: 0;
  width: 100%;
  height: 100%;
  background-color: rgba(0, 0, 0, 0.8);
  cursor: pointer;
}

.image-modal img {
  position: absolute;
  top: 50%;
  left: 50%;
  transform: translate(-50%, -50%);
  max-width: 90%;
  max-height: 90%;
  object-fit: contain;
}
*/

/* レスポンシブ対応 */
@media (max-width: 768px) {
  .price-table {
    font-size: 11px;
  }

/*  .material-name {
    width: 30%;
    min-width: 120px;
  }*/

  .price-monthly,
  .price-half-yearly,
  .price-yearly {
    width: 23.33%;
  }

  .price-main {
    font-size: 12px;
  }

  .price-note,
  .price-discount {
    font-size: 9px;
  }

  .image-container {
    min-width: 50px;
    max-width: 60px;
  }

  .image-container img {
    height: 40px;
  }
}

.course-details-table {
    width: 100%;
    background: white;
    border: 1px solid #ccc;
    margin: 16px 0;
}

.course-details-table table {
    width: 100%;
    border-collapse: collapse;
    font-size: 14px;
}

.course-details-table th {
    background: #f5f5f5;
    color: #333;
    font-weight: 600;
    text-align: center;
    padding: 12px;
    font-size: 14px;
    border-bottom: 1px solid #ccc;
}

.course-details-table tr:nth-child(even) {
    background-color: #f9f9f9;
}

.course-details-table td {
    padding: 10px 12px;
    border-bottom: 1px solid #ddd;
    vertical-align: top;
}

.course-details-table tr:last-child td {
    border-bottom: none;
}

.course-details-table .label {
    font-weight: 600;
    color: #333;
    width: 35%;
    font-size: 13px;
}

.course-details-table .value {
    color: #555;
    line-height: 1.4;
}

/* リンクボタン */
.links {
    display: flex;
    flex-direction: column;
    gap: 10px;
    margin: 16px 0;
}

.links a {
    display: block;
    padding: 12px 16px;
    background: white;
    border: 1px solid #ccc;
    color: #333;
    text-decoration: none;
    text-align: center;
    font-weight: 600;
    font-size: 14px;
    transition: background-color 0.2s ease, border-color 0.2s ease;
    min-height: 44px; /* タッチターゲットの最小サイズ */
    box-sizing: border-box;
    display: flex;
    align-items: center;
    justify-content: center;
}

.links a:hover, .links a:focus {
    background: #f5f5f5;
    border-color: #999;
}

.links a:active {
    background: #e9e9e9;
}

/* 特別なボタンスタイル */
.links a[href*="affiliate"] {
    background: #333;
    color: white;
    border-color: #333;
}

.links a[href*="affiliate"]:hover,
.links a[href*="affiliate"]:focus {
    background: #555;
    border-color: #555;
}

.links a[href*="affiliate"]:active {
    background: #222;
}

/* レスポンシブ調整 */
@media (max-width: 320px) {
    .course-details-table {
        margin: 12px 0;
    }

    .course-details-table td {
        padding: 12px 10px;
        font-size: 13px;
    }

    .course-details-table .label {
        width: 40%;
        font-size: 12px;
    }

    .links {
        gap: 8px;
        margin: 12px 0;
    }

    .links a {
        padding: 10px 12px;
        font-size: 13px;
    }
}

  .course-prices-mobile {
        width: 100%;
        max-width: 600px; /* スマートフォンでの見やすさを考慮した最大幅 */
        margin: 0 auto; /* 中央寄せ */
        padding: 15px;
        box-sizing: border-box; /* パディングを含めて幅を計算 */
        font-family: 'Noto Sans JP', sans-serif; /* 日本語に合うフォント */
        color: #333;
    }

    .section-title {
        text-align: center;
        font-size: 1.4em;
        margin-bottom: 25px;
        color: #2c3e50; /* 少し濃いめの色 */
        border-bottom: 2px solid #e0e0e0;
        padding-bottom: 10px;
    }

    /* 学年ごとのカード */
    .grade-card {
        background-color: #ffffff;
        border: 1px solid #e0e0e0;
        border-radius: 2px;
        margin-bottom: 20px;
        overflow: hidden; /* 角丸を適用 */
        box-shadow: 0 2px 5px rgba(0,0,0,0.1); /* 軽い影 */
    }

    /* 学年ヘッダー */
    .grade-header {
        background-color: #4a90e2; /* 青系のアクセントカラー */
        color: #ffffff;
        padding: 12px 15px;

        font-size: 1.2em;
        font-weight: bold;
    }

    .grade-header h3 {
        margin: 0;
        padding: 0;
        font-size: 0.85em;
    }

    /* 料金詳細 */
    .price-details {
        padding: 15px;
    }

    .price-item {
        background-color: #f9f9f9;
        border-radius: 6px;
        padding: 12px;
        margin-bottom: 10px;
        border: 1px solid #f0f0f0;
        line-height: 1.6;
    }

    .price-item:last-child {
        margin-bottom: 0;
    }

    .plan-type {
        display: block;
        font-weight: bold;
        color: #555;
        margin-bottom: 5px;
        font-size: 0.9em;
        background-color: #e6f7ff; /* プラン種別の背景色 */
        padding: 3px 8px;
        border-radius: 4px;
        display: inline-block;
    }

    .cost-per-month,
    .cost-total {
        display: block;
        font-size: 1.3em;
        font-weight: bold;
        color: #d32f2f; /* 赤系の料金強調色 */
        margin-bottom: 5px;
    }

    .cost-per-month .unit,
    .cost-total .unit {
        font-size: 0.7em;
        font-weight: normal;
        margin-left: 3px;
        color: #666;
    }

    .discount-info {
        display: block;
        font-size: 0.8em;
        color: #e67e22; /* オレンジ系の割引情報色 */
        margin-top: 3px;
    }

    .discount-highlight {
        display: block;
        font-size: 0.9em;
        color: #27ae60; /* 緑系の割引額強調色 */
        font-weight: bold;
        margin-top: 5px;
        background-color: #e8f8f5; /* 背景色で強調 */
        padding: 4px 8px;
        border-radius: 4px;
        display: inline-block;
    }

    /* レスポンシブ対応（念のため、タブレット以上で少し調整） */
    @media (min-width: 601px) {
        .course-prices-mobile {
            padding: 20px;
        }
        .section-title {
            font-size: 1.6em;
        }
        .grade-header {
            padding: 15px 20px;
        }
        .price-details {
            padding: 20px;
        }
    }


.next_box5{font-weight: bold;
    position: relative;
    display: block;
    width: 98%;
    margin: 1.5em auto;
    padding: 0.3em 1em;
    cursor: pointer;
    transition: all 0.3s;
    text-align: center;
    color: #fff;
    border: 2px solid #da3c41;
    border-radius: 3px;
    line-height: 2.2em;
    text-decoration: none;
    background-color: #ff5722;
}

.next_box5 a{
	text-decoration:none;
	color:#fff;
	display:block;
	margin-bottom: -1em}


.next_box5:hover {
	transition: all 0.3s;
	color: #ff5722;
	background: #fff;
}

.next_box5:hover a{
	color: #da3c41;
}
.next_box5::after {
	content:none;
}


.link_kousikiw{
    padding-top: 2px;
    padding-left: 4px;
    text-align: left;
    line-height: 2.8em;
	}

.link_kousikiw a{
	font-size:1.1em;
	margin-left:1em;}
.link_kousikiw a::after {
    content: '';
    display: inline-block;
    width: 21px;
    height: 21px;
    margin-left: 5px;
    margin-top: -5px;
    background-image: url(/images/gaibu.png);
    background-size: contain;
    vertical-align: middle;
}
.type-section {
  display: flex;
  flex-direction: column;
  gap: 1.2rem;
  padding: 1rem;
}

.type-card {
  background: linear-gradient(145deg, #ffffff, #f1f3f5);
  border-radius: 14px;
  padding: 1rem 1.2rem;
  border: 1px solid #dee2e6;
  box-shadow: 0 4px 10px rgba(0, 0, 0, 0.08);
  transition: transform 0.2s ease;
}

.type-card:hover {
  transform: translateY(-2px);
}

.type-card h3 {
  font-size: 1.05rem;
  margin: 0 0 0.8rem;
  display: flex;
  align-items: center;
  gap: 0.6rem;
  color: #333;
  font-weight: 600;
  border-bottom: 1px solid #ced4da;
  padding-bottom: 0.3rem;
}

.type-card ul {
  list-style: none;
  padding-left: 0.8rem;
  margin: 0;
}

.type-card li {
  font-size: 0.95rem;
  margin-bottom: 0.6rem;
  position: relative;
  padding-left: 1rem;
  line-height: 1.6;
}

.type-card li::before {
  content: "✔";
  position: absolute;
  left: 0;
  color: #4dabf7;
  font-size: 0.9rem;
}

/* モノクロシンプルパンくずリスト */
.simple-breadcrumb {
  background-color: #ffffff; /* 白背景 */
  border-bottom: 1px solid #e0e0e0; /* 薄いグレーのボーダー */
  padding: 0.5rem; /* パディングを小さく */
  margin-bottom: 1rem; /* マージンを小さく */
}

.breadcrumb-container {
  display: flex;
  flex-wrap: wrap; /* アイテムの折り返しを許可 */
  align-items: center;
  gap: 0.25rem; /* アイテム間のギャップを小さく */
  line-height: 1.2; /* 行の高さを調整 */
  justify-content: flex-end; /* 全体を右寄せ */
}

.breadcrumb-item {
  display: flex;
  align-items: center;
  gap: 0.25rem; /* アイテム内のギャップを小さく */
}

/* ホームアイコンのスタイル */
.home-item .breadcrumb-link {
  display: flex;
  align-items: center;
  justify-content: center;
  padding: 0.25rem; /* パディングを小さく */
  min-height: 28px; /* 最小高さを小さく */
  min-width: auto; /* 幅を自動調整 */
  gap: 0.25rem; /* アイコンとテキストの間のスペース */
}

.home-icon {
  width: 14px; /* アイコンサイズを小さく */
  height: 14px; /* アイコンサイズを小さく */
  stroke-width: 1.5;
  color: #333333; /* 濃いグレー */
}

/* リンクのスタイル */
.breadcrumb-link {
  color: #333333; /* 濃いグレー */
  text-decoration: none;
  font-size: 0.75rem; /* フォントサイズを小さく */
  font-weight: 400;
  padding: 0.25rem 0.5rem; /* パディングを小さく */
  border-radius: 0.125rem; /* 角丸を小さく */
  min-height: 28px; /* 最小高さを小さく */
  display: flex;
  align-items: center;
  background-color: transparent;
}

/* セパレーター */
.separator {
  color: #666666; /* 中間のグレー */
  font-size: 0.75rem; /* フォントサイズを小さく */
  font-weight: 400;
  user-select: none;
}

/* 現在のページ */
.current-item .current-page {
  color: #333333; /* 濃いグレーの文字色 */
  font-size: 0.75rem; /* フォントサイズを小さく */
  font-weight: 600; /* 太文字 */
  padding: 0.25rem 0.5rem; /* パディングを維持 */
  background-color: transparent; /* 背景色を透明に */
  border-radius: 0; /* 角丸をなくす */
  min-height: 28px; /* 最小高さを維持 */
  display: flex;
  align-items: center;
}

/* スマホでの調整 */
@media (max-width: 768px) {
  .simple-breadcrumb {
    padding: 0.4rem; /* パディングを微調整 */
  }

  .breadcrumb-container {
    gap: 0.2rem; /* ギャップを微調整 */
  }

  .breadcrumb-link,
  .current-page {
    font-size: 0.75rem; /* フォントサイズをデスクトップと同じに */
    padding: 0.25rem 0.5rem; /* パディングをデスクトップと同じに */
    min-height: 28px; /* 最小高さをデスクトップと同じに */
  }

  .home-item .breadcrumb-link {
    min-height: 28px; /* 最小高さをデスクトップと同じに */
    min-width: auto; /* 幅を自動調整 */
    padding: 0.25rem; /* パディングをデスクトップと同じに */
  }

  .home-icon {
    width: 14px; /* アイコンサイズをデスクトップと同じに */
    height: 14px; /* アイコンサイズをデスクトップと同じに */
  }

  .separator {
    font-size: 0.75rem; /* フォントサイズをデスクトップと同じに */
  }
}


.next_box2 {
	font-weight: bold;
	position: relative;
	display: block;
	width: 96%;
	margin: 1.5em auto;
	padding: 0.3em 1em;
	cursor: pointer;
	transition: all 0.3s;
	text-align: center;
	color: #da3c41;
	border: 2px solid #da3c41;
	border-radius: 3px;
}
.next_box2 a{
	text-decoration:none;
	color:#da3c41;}


.next_box2:hover {
	transition: all 0.3s;
	color: #ffffff;
	background: #da3c41;
}

.next_box2:hover a{
	color: #ffffff;
}
.next_box2 img{
  display: inline;
}
.next_box2::after {
	content: '→';
	color: #da3c41;
}
.qalist{margin-left: -30px;
  counter-reset: qa kotae;}
.qalist li{
	list-style:none}
.qa{
    display: block;
    text-decoration: none;
    border-bottom: dashed 1px #607D8B;
    position: relative;
    padding: 0.5em 0.5em 0.3em 5px;
    /* text-indent: -1px; */
    line-height: 1.5em;
    text-align: left;
    margin-left: -10px;
	    font-weight: 700;

	}
.qa{counter-increment: qa;}
.qa::before {
   content: "Q" counter(qa) ": ";
   color:#49a9d4;
 }

.kotae{margin-left:-25px;
margin-bottom:3em;
   counter-increment: kotae;}
.kotae li{
}

.kotae li::before {

   content: "A" counter(kotae) ": ";
   color:#f92a1b;
 }

.article-grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(300px, 1fr));
  gap: 2rem;
  margin-top: 2rem;
}

.article-card {
  background: #fff;
  border-radius: 2px;
  box-shadow: 0 2px 10px rgba(0, 0, 0, 31%);
  overflow: hidden;
  padding-top: 20px;
}

.article-image {
  position: relative;
  width: 100%;
  height: 200px;
  overflow: hidden;
}

.article-image img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}

.no-image {
  height: 200px;
  background: linear-gradient(135deg, #f5f7fa 0%, #c3cfe2 100%);
  display: flex;
  align-items: center;
  justify-content: center;
  color: #888;
  font-size: 0.9rem;
}

.article-content {
  padding: 1.5rem;
}

.article-title {
  margin: 0 auto 1rem auto;
  font-size: 1rem;
  line-height: 1.4;
text-align: center; /* <h3> のテキストを中央揃え */
}

.article-title a {
  color: #333;
  text-decoration: none;
}

.article-meta {
  display: flex;
  align-items: center;
  gap: 1rem;
  margin-bottom: 1rem;
  font-size: 0.875rem;
  color: #666;
}

.article-meta time {
  font-weight: 500;
}

.author {
  padding: 0.25rem 0.75rem;
  background: #f0f0f0;
  border-radius: 20px;
  font-size: 0.8rem;
}

.article-tags {
  display: flex;
  flex-wrap: wrap;
  gap: 0.5rem;
  margin-bottom: 1rem;
}

.tag {
  padding: 0.25rem 0.75rem;
  background: #e3f2fd;
  color: #1976d2;
  border-radius: 20px;
  font-size: 0.8rem;
  font-weight: 500;
}

.article-summary {
  color: #555;
  line-height: 1.6;
  margin-bottom: 1.5rem;
  display: -webkit-box;
  -webkit-line-clamp: 3;
  -webkit-box-orient: vertical;
  overflow: hidden;
}

.read-more-btn {
  display: inline-block;
  padding: 0.75rem 1.5rem;
  background: #007acc;
  color: white;
  text-decoration: none;
  border-radius: 6px;
  font-weight: 500;
  position: relative;
  left: 30%;
}

/* ページネーション */
.pagination {
  display: flex;
  justify-content: space-between;
  align-items: center;
  margin-top: 3rem;
  padding: 2rem 0;
  max-width: 370px;
  margin-left: auto;
  margin-right: auto;
}

.pagination-btn {
  padding: 0.75rem 1.5rem;
  background: #fff;
  border: 2px solid #ddd;
  border-radius: 8px;
  font-weight: 500;
  min-width: 80px;
  text-align: center;
}

.pagination-btn a {
  color: #007acc;
  text-decoration: none;
}

.pagination-btn.disabled {
  background: #f8f9fa;
  border-color: #e9ecef;
}

.pagination-btn.disabled span {
  color: #ccc;
  cursor: not-allowed;
}

.pagination-info {
  font-size: 0.9rem;
  color: #666;
  font-weight: 500;
}

/* レスポンシブ対応 */
@media (max-width: 768px) {
  .article-grid {
    grid-template-columns: 1fr;
    gap: 1.5rem;
  }

  .article-content {
    padding: 1.25rem;
  }

  .article-title {
    font-size: 1.1rem;
  }
}

.ranking-common {
  display: flex;
  align-items: center;
  gap: 8px; /* 画像とテキストの間隔 */
}

.ranking-image {
  width: 40px; /* お好みのサイズに調整 */
  height: auto;
}

.course-name {
  font-weight: bold;
  color: #333;
}

.ranking-with-name {
  display: flex;
  align-items: center;
  gap: 12px;
  margin-bottom: 15px;
}

.ranking-image {
  width: 50px;
  height: auto;
  flex-shrink: 0;
}

.course-name {
  font-size: 1.7em;
  font-weight: bold;
  margin: 0;
  color: #2c3e50;
}

.strengths-weaknesses-container {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 20px;
  margin: 20px 0;
}

.section-title {
  display: flex;
  align-items: center;
  gap: 8px;
  font-size: 1em;
  margin-bottom: 10px;
  color: #34495e;
}




.link-item a {
  display: flex;
  align-items: center;
  /*gap: 8px;*/
  text-decoration: none;
  padding: 10px 15px;
  background: #3498db;
  color: white;
  border-radius: 5px;
  transition: background-color 0.3s;
}

.link-item a:hover {
  background: #2980b9;
}

.pricing-section {
  margin: 0px 0;
/*  background: #f8f9fa;*/
  border-radius: 12px;
  padding: 0px;
}

.grade-tabs {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
  margin-bottom: 15px;
}

.grade-tab {
  flex: 1;
  min-width: 23px;
  padding: 8px 12px;
  border: 2px solid #e9ecef;
  background: white;
  border-radius: 10px;
  font-size: 14px;
  font-weight: bold;
  cursor: pointer;
  transition: all 0.3s;
}

.grade-tab.active {
  background: #007bff;
  color: white;
  border-color: #007bff;
}

.pricing-content {
  display: none;
}

.pricing-content.active {
  display: block;
}

.pricing-card {
  background: white;
  border-radius: 8px;
  padding: 12px;
  margin-bottom: 10px;
  border: 2px solid #e9ecef;
  position: relative;
}

.pricing-card.recommended {
  border-color: #28a745;
  background: #f8fff9;
}

.pricing-card.best-deal {
  border-color: #dc3545;
  background: #fff8f8;
}

.plan-header {
  display: flex;
  justify-content: space-between;
  align-items: center;
  margin-bottom: 5px;
}

.plan-type {
  font-weight: bold;
  font-size: 14px;
}

.main-price {
  font-size: 18px;
  font-weight: bold;
  color: #007bff;
}

.discount-badge {
  background: #28a745;
  color: white;
  padding: 2px 6px;
  border-radius: 10px;
  font-size: 10px;
  margin-left: 5px;
}

.discount-badge.best {
  background: #dc3545;
}

.total-price {
  font-size: 12px;
  color: #666;
  text-align: right;
}
.border1 {
  border:1px solid #ecf0f1;
  margin: 2em 0;
}
#topa h1{
  font-size: 1.1em;
}
h2 {
  font-size: 1.2em;
}

/* ＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝
 横長テーブル3（.p-sticky-table3）スタイル
 ※ 現在未使用のため全体コメントアウト中
＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝

.p-sticky-table3 {
  white-space: nowrap;
  line-height:1.6;
  max-width:380px;
}
.p-sticky-table3 th strong {
  font-weight: normal;
  margin-left: 0.2em;
}
.p-sticky-table3 table {
  border: none;
  border: 1px solid #dedede;
  border-bottom: none;
  border-collapse: collapse;
  word-break: break-all;
  table-layout: fixed;
  display: block;
  overflow-y: hidden;

}
.p-sticky-table3 table td a {
  text-decoration: none;
  color: #333;
}
.p-sticky-table3 table th a {
  text-decoration: none;
  color: #333;
  display: inline-block;
  width: 100%;
  font-size: 0.9em;
  letter-spacing: -1px;
}
.p-sticky-table3 table th a:after {
  background-image: url(/images/link-out.png);
  content: "";
  width: 16px;
  height: 16px;
  display: inline-block;
  margin-left: 1px;
  background-repeat: no-repeat;
  margin-bottom: -4px;
}
.p-sticky-table3 thead th:first-child {
  position: -webkit-sticky;
  position: sticky;
  top: 0;
  left: 0;
  z-index: 3;
  padding: 2em 1em !important;
}
.p-sticky-table3 table thead tr th {
  position: -webkit-sticky;
  position: sticky;
  top: 0;
  z-index: 2;
  background-color: #f8f8f8 !important;
}
.p-sticky-table3 table thead tr td {
  position: -webkit-sticky;
  position: sticky;
  top: 0;
  z-index: 2;
  background-color: #f8f8f8 !important;
  text-align: center;
  height: 80px;
}
.p-sticky-table3 td {
  text-align: center !important;
  font-size: 0.85em !important;
}
.p-sticky-table3 td:nth-child(6) {
  text-align: left !important;
}
.p-sticky-table3 tbody th:first-child {
  position: -webkit-sticky;
  position: sticky;
  left: 0;
  z-index: 1;
  border: none;
  min-width: 165px;
  font-weight: bold !important;
}
.p-sticky-table3 th,
.p-sticky-table3 td {
  min-width: 56px;
  text-align: left;
  position: relative;

  color: #333;
  border: none !important;
  z-index: 0;
  vertical-align: middle !important;
  background: #fff;
  padding: 7px !important;
  height: 45px;
}
.p-sticky-table3 th {
  background: #fff !important;
  letter-spacing: 1px;
  font-weight: 500 !important;
  color: #555 !important;
  width: 7em;
}
.p-sticky-table3 tr {
  border-bottom: none !important;
}
.p-sticky-table3 th img {
  margin: 0px -1px -2px 0;
  display: inline;
  padding: 0;
}
.p-sticky-table3 table th::before,
.p-sticky-table3 table td::before {
  content: "";
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  box-sizing: border-box;
  border-right: 1px solid #dedede;
  border-bottom: 1px solid #dedede;
  z-index: -1;
}


@media screen and (max-width: 560px) {
  .p-sticky-table3 table {

  }
  .p-sticky-table3 thead th:first-child,
  .p-sticky-table3 tbody th:first-child {
 min-width: 18vw;

*/
    /************************************
        ** 横長テーブル3 (改良版)
        ************************************/
        .p-sticky-table3{
          white-space: nowrap;
          line-height:1.6;
          max-width:380px;
          position: relative;
        }

        /* スクロール表示案内 */
        .scroll-indicator {
          position: absolute;
          top: 50%;
          right: 10px;
          background: rgba(0,0,0,0.7);
          color: white;
          padding: 8px 12px;
          border-radius: 20px;
          font-size: 12px;
          z-index: 10;
          animation: fadeInOut 2s infinite;
          pointer-events: none;
        }

        @keyframes fadeInOut {
          0%, 100% { opacity: 0.7; }
          50% { opacity: 1; }
        }

        .scroll-indicator.hidden {
          display: none;
        }

        .p-sticky-table3 th strong{
            font-weight: normal;
          margin-left: 0.2em;
        }

        .p-sticky-table3 table{
          border:none;
          border: 1px solid #dedede;
          border-bottom: none;
          border-collapse: collapse;
          word-break: break-all;
          table-layout: fixed;
          display:block;
          overflow-y:hidden;
          overflow-x: auto;
          max-height: 70vh;
        }

        .p-sticky-table3 table td a{
          text-decoration:none;
          color:#333;
        }

        .p-sticky-table3 table th a{
          text-decoration:none;
          color:#333;
          display:inline-block;
          width:100%;
          font-size:1em;
          letter-spacing: -1px;
        }

        .p-sticky-table3 table th a:after{
          background-image:url(/images/link-out.png);
          content:"";
          width:16px;
          height:16px;
          display:inline-block;
          margin-left:1px;
          background-repeat:no-referrer;
          margin-bottom:-4px
        }

        /* 左端と上部の固定 */
        .p-sticky-table3 thead th:first-child{
          position: sticky;
          top: 0;
          left: 0;
          z-index: 4; /* 最高レベル */
          padding:2em 1em !important;
          background-color:#f8f8f8 !important;
        }

        .p-sticky-table3 table thead tr th {
          position: sticky;
          top: 0;
          z-index: 3; /* ヘッダー行 */
          background-color:#f8f8f8 !important;
        }

        .p-sticky-table3 table thead tr td {
          position: sticky;
          top: 0;
          z-index: 3;
          background-color:#f8f8f8 !important;
          text-align:center;
          height:80px;
        }

        .p-sticky-table3 tbody th:first-child{
          position: sticky;
          left: 0;
          z-index: 2; /* 左端列 */
          border:none;
          min-width: 165px;
          font-weight: bold !important;
          background-color: #fff !important;
        }

        .p-sticky-table3 th, .p-sticky-table3 td {
          min-width: 56px;
          text-align: left;
          position: relative;
          color: #333;
          border: none !important;
          z-index: 1;
          vertical-align:middle !important;
          background:#fff;
          padding: 7px !important;
          height:45px;
        }

        .p-sticky-table3 th{
          background:#f8f8f8 !important;
          letter-spacing: 1px;
          font-weight: 500 !important;
          color: #555 !important;
          width:7em;
        }

        .p-sticky-table3 td{
          text-align:center !important;
          font-size:0.85em !important;
        }

        .p-sticky-table3 td:nth-child(6){
          text-align:left !important;
        }

        .p-sticky-table3 tr{
          border-bottom:none !important;
        }

        .p-sticky-table3 th img{
          margin: 0px -1px -2px 0;
          display: inline;
          padding: 0;
          max-width: 20px;
          height: auto;
        }

        .p-sticky-table3 table th::before, .p-sticky-table3 table td::before {
          content: "";
          position: absolute;
          top: 0;
          left: 0;
          width: 100%;
          height: 100%;
          box-sizing: border-box;
          border-right: 1px solid #dedede;
          border-bottom: 1px solid #dedede;
          z-index: -1;
        }

        /* スマホ対応 */
        @media screen and (max-width: 560px) {
          .p-sticky-table3 table {
            max-height: 60vh;
          }
          .p-sticky-table3 thead th:first-child, .p-sticky-table3 tbody th:first-child {
            min-width: 18vw;
          }
          .p-sticky-table3 th, .p-sticky-table3 td {
            font-size: 12px !important;
            padding: 7px !important;
          }
          .p-sticky-table3 th{
            width:7em;
          }
          .scroll-indicator {
            right: 5px;
            font-size: 10px;
            padding: 6px 10px;
          }
        }

        /* 元のCSSから追加 */
        .p-sticky-table3 thead th:nth-child(2){
          position: sticky;
          top: 0;
          z-index: 3;
          padding:2em 1em !important;
        }
        .p-sticky-table3 tbody th:nth-child(2){
          position: sticky;
          left: 11.9em;
          z-index: 2;
          border:none;
        }

.cp_qa *, .cp_qa *:after, .cp_qa *:before {
	-webkit-box-sizing: border-box;
	        box-sizing: border-box;
}
.cp_qa {
	overflow-x: hidden;
	margin: 0 0 0 -1em;
	color: #333333;
}
.cp_qa .cp_actab {
	padding: 20px 10px;
	border-bottom: 1px dotted #cccccc;
}
.cp_qa label {
	font-size: 1.2em;
	position: relative;
	display: block;
	width: 100%;
	margin: 0;
	padding: 4px 10px 0 48px;
	cursor: pointer;
	text-align:left;
}
.cp_qa .cp_actab-content {
	font-size: 1em;
	position: relative;
	overflow: hidden;
	height: 0;
	margin: 0 10px 0 40px;
	padding: 0 14px;
	-webkit-transition: 0.4s ease;
	        transition: 0.4s ease;
	opacity: 0;
	text-align:left;
}
.cp_qa .cp_actab input[type=checkbox]:checked ~ .cp_actab-content {
	height: auto;
	padding: 14px 0 14px 0;
	opacity: 1;
}
.cp_qa .cp_plus {
	font-size: 2.4em;
	line-height: 100%;
	position: absolute;
	z-index: 5;
	margin: 3px 0 0 10px;
	-webkit-transition: 0.2s ease;
	        transition: 0.2s ease;
			    color: #12737a;

}

.cp_qa h4{
	font-size: 1.5em;
    margin: 0 0 5px 5px;}


.cp_qa h5{
	display:inline;
	font-size:1.1em;
	font-weight:300;
	margin-left:-10px;}
.cp_qa h6{
	    font-size: 1.2em;
    margin: 0.5em 0;}


.cp_plus2 {
font-size: 1em;
    height: 34px;
    position: absolute;
    width: 34px;
    margin: 0px 0 0 4px;
    text-align: center;
    padding: 8px 0 10px;
    color: #fff;
    background-color: #49a9d4;
    border-radius: 5px;

}

.qaa {
    font-size: 1.2em;
    margin: 0px 4px 0 0;
    color: #fff;
    background-color: #F44336;
    border-radius: 5px;
    padding: 3px 7px;

}

.cp_actab2 {
	padding: 10px 10px;
	border-bottom: 1px dotted #cccccc;
}
.cp_qa .cp_actab input[type=checkbox]:checked ~ .cp_plus {
	-webkit-transform: rotate(45deg);
	        transform: rotate(45deg);
}


.cp_qa .cp_actab input[type=checkbox] {
  display: none;
}
.eyecatch-generated {
  width: 380px;
  height: 216px;
  background: #f8f9fa;
  color: #2d3436;
  position: relative;
  overflow: hidden;
  border-radius: 8px;
  display: flex;
  align-items: center;
  justify-content: center;
}

.eyecatch-content {
  padding: 24px;
  position: relative;
  z-index: 2;
  text-align: center;
  width: 100%;
}

.eyecatch-icon {
  font-size: 18px;
  margin-bottom: 12px;
  opacity: 0.8;
}

.eyecatch-title {
  font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', 'Hiragino Sans', 'Hiragino Kaku Gothic ProN', 'Noto Sans CJK JP', 'Yu Gothic', YuGothic, sans-serif;
  font-size: 14px;
  font-weight: 700;
  line-height: 1.3;
  margin: 0 0 8px 0;
  color: #2d3436;
}

.eyecatch-subtitle {
  font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', 'Hiragino Sans', 'Hiragino Kaku Gothic ProN', 'Noto Sans CJK JP', 'Yu Gothic', YuGothic, sans-serif;
  font-size: 12px;
  font-weight: 400;
  opacity: 0.8;
  line-height: 1.4;
  margin: 0;
  color: #2d3436;
}

.eyecatch-geometric-bg {
  position: absolute;
  top: -50px;
  right: -50px;
  width: 200px;
  height: 200px;
  opacity: 0.1;
  z-index: 1;
}

/* レスポンシブ対応 */
@media (max-width: 480px) {
  .eyecatch-generated {
    width: 100%;
    max-width: 380px;
    height: auto;
    min-height: 200px;
  }

  .eyecatch-title {
    font-size: 14px;
  }

  .eyecatch-subtitle {
    font-size: 12px;
  }

  .eyecatch-icon {
    font-size: 28px;
  }
}
.article-card a{
  text-decoration: none;
}

.newscontainer{
  display: grid;
  grid-template-areas:
"newsimg"
"newsyear"
"newskiji"
;
  grid-template-rows: 32px 1fr;
  grid-template-columns: 34px 1fr;
  border-bottom: 1px solid #ccc;
  margin-bottom:10px;
      grid-gap: 0 5px;
  }

  .newscontainer div.newsimg {
  grid-area: newsimg;
    grid-column: 1 / 2;
    grid-row: 1 / 3;

  }

  .newscontainer div.newsyear {
    grid-area: newsimg;
    grid-column: 2 / 3;
    padding-top: 3px;
    grid-row: 1 / 2;
    align-self: center;
    font-weight: bold;
  }

  .newscontainer div.newskiji {
    grid-area: newsimg;
    grid-column: 2 / 3;
    grid-row: 2 / 3;
    margin-top: -5px;
    line-height: 1.3em;
    color: #999;
    padding: 0 4px;
  }

/*以下カルーセルスライダー*/
/* ------------------------
   カルーセル全体の基本スタイル
------------------------ */
.carousel-container {
  position: relative;
  width: 400px;
  height: 500px;         /* 高さを固定 */
  overflow: hidden;      /* 画面外を表示しない */
  margin: 40px auto;
  border: 1px solid #ccc;
  border-radius: 2px;
  background: #fff;      /* 親の背景色を明示 */
  max-width: 100%;
}

/* ------------------------
   スライドタイトル
------------------------ */
.slide-title {
  font-size: 18px;
  font-weight: bold;
  margin-bottom: 15px;
  padding-bottom: 8px;
  border-bottom: 2px solid #f0f0f0;
  color: #333;
  text-align: center;
}

/* ------------------------
   カルーセルスライド
------------------------ */
.carousel-slides {
  position: relative;
  min-height: 460px;
  overflow: hidden;
}
.carousel-slide {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;          /* 親の高さに合わせる */
  padding: 2em 10px 10px 10px;
  box-sizing: border-box;
  background: #fff;      /* スライドの背景も不透明色で指定 */
  display: flex;
  flex-direction: column;
  justify-content: flex-start;
  z-index: 1;
  transition: transform 0.5s ease-in-out, opacity 0.3s;
  opacity: 1;
  /* 初期状態: 画面右側に配置 */
  transform: translateX(100%);
}

/* activeクラス: 画面中央へ */
.carousel-slide.active {
  transform: translateX(0);
  opacity: 1;
  z-index: 2;
}

/* prevクラス: 画面左側へ（非表示） */
.carousel-slide.prev {
  transform: translateX(-100%);
  opacity: 0;
}

/* active以外は非表示・操作不可 */
.carousel-slide:not(.active) {
  opacity: 0;
  pointer-events: none;
  z-index: 0;
}

/* ------------------------
   矢印ボタン
------------------------ */
.carousel-arrow,
.carousel-prev, .carousel-next {
  position: absolute;
top: 36%;
  transform: translateY(-50%);
  background: rgba(0,0,0,0.4);
  color: #fff;
  border: none;
  width: 40px;
  height: 40px;
  border-radius: 50%;
  cursor: pointer;
  z-index: 3;
  font-size: 50px;
  display: flex;
  align-items: center;
  justify-content: center;
  opacity: 0.6;
  transition: all 0.3s ease;
  padding-bottom: 16px;
}
.carousel-prev { left: 10px; }
.carousel-next { right: 10px; }
.carousel-arrow:hover,
.carousel-prev:hover,
.carousel-next:hover,
.carousel-arrow:active,
.carousel-prev:active,
.carousel-next:active {
  background: rgba(0,0,0,0.2);
  opacity: 0.8;
  transform: translateY(-50%) scale(1.05);
}

/* ------------------------
   ドットナビゲーション
------------------------ */
.carousel-dots {
  position: absolute;
  bottom: 10px;
  left: 50%;
  transform: translateX(-50%);
  display: flex;
  gap: 8px;
  z-index: 3;
  background: #fff;
  border-top: 1px solid #f0f0f0;
  padding: 10px 0;
}
.carousel-dot {
  width: 12px;
  height: 12px;
  border-radius: 50%;
  background: #ddd;
  border: none;
  cursor: pointer;
  transition: background 0.2s, transform 0.2s;
  padding: 0;
}
.carousel-dot.active {
  background: #333;
  transform: scale(1.2);
}
.carousel-dot:hover {
  background: #bbb;
  transform: scale(1.1);
}

/* ------------------------
   セクションタイトル（小さめ）
------------------------ */
.section-title {
  font-size: 16px;
  margin-bottom: 10px;
}

/* ------------------------
   強み・気になる所のレイアウト（スマホ専用）
------------------------ */
.strengths-weaknesses-container {
  display: flex;
  flex-direction: column;
  gap: 20px;
  height: 100%;
}
.strengths-section,
.weaknesses-section {
  flex: 1;
}

/* ------------------------
   コンテンツエリア
------------------------ */
.course-long-description,
.course-kuchi-description {
  height: 100%;
}
.course-long-description p,
.course-kuchi-description p {
  font-size: 14px;
  line-height: 1.6;
  margin-top: 10px;
}
.pricing-section {
  height: 100%;
}

/* ------------------------
   特徴リスト
------------------------ */
.feature-list {
  list-style: none;
  padding: 10px 0 0 45px;
  margin: 0;
}
.feature-list li {
  padding: 8px 0;
  border-bottom: 1px solid #f0f0f0;
  font-size: 14px;
  line-height: 1.5;
  position: relative;
}
.feature-list li::before {
  content: "✔";
  position: absolute;
  left: 30px;
  color: #4dabf7;
  font-size: 0.9rem;
}
.feature-list li:last-child {
  border-bottom: none;
}

/* ------------------------
   スマホ対応
------------------------ */
@media (max-width: 480px) {
  .carousel-container {
    width: 100%;
/*    height: 320px;*/
    margin: -18px 0;
    border-radius: 1px;
  }
  .carousel-slide {
    padding: 15px;
    min-height: 250px;
  }
  .slide-title {
    font-size: 16px;
    margin-bottom: 12px;
  }
  .carousel-arrow,
  .carousel-prev,
  .carousel-next {
    width: 40px;
    height: 40px;
    font-size: 50px;
    opacity: 0.5;
  }
  .carousel-prev { left: 3px; }
  .carousel-next { right: 3px; }
  .section-title {
    font-size: 14px;
  }
  .feature-list li {
    font-size: 13px;
    padding: 6px 0;
  }
  .course-long-description p,
  .course-kuchi-description p {
    font-size: 13px;
  }
  .carousel-dots {
    padding: 8px 0;
    gap: 6px;
  }
  .carousel-dot {
    width: 8px;
    height: 8px;
  }
}
/*以上カルーセルスライダー*/


.grid_container {
  display: grid;
  grid-template-rows: auto 120px auto;
  grid-template-columns:120px auto;
  margin-top:10px;
}

.imgframe{display:inline-block;position:relative;padding:2px;box-shadow:0 2px 6px #999}.imgframe:after{position:absolute;display:block;content:"";top:0;left:0;width:100%;height:100%;background:linear-gradient(-120deg,rgba(255,250,250,.1) 0,rgba(255,250,250,.5) 70px,rgba(255,250,250,0) 71px)}

.grid_img{grid-row: 2 / 3;grid-column: 2 / 3;text-align: center;padding: 8px 5px 0 0;margin-left: 15px;}

.grid_img span{
  font-size: 70px;
}
.grid_kansetu{grid-row: 2 / 3;grid-column: 1/ 2;font-size: 1.02em;padding-top: 7px;text-align:left;margin-left: 15px;}

.hoshi{
	position: relative;
    top: 2px;}

.caution{
  padding: 1.2em;
  font-size: 0.9em;
  color: #333;
}

.tcenter{
  display: block;
  margin: 0 auto; /* 左右中央寄せ */
  text-align: center; /* テキストも中央 */
  font-size: 0.9em;
}

.tcenter2{
  display: block;
  margin: 0 auto; /* 左右中央寄せ */
  text-align: center; /* テキストも中央 */
}
.tcenter2 span{
  display: block;
  font-size: 0.9em;
}
.readmore-button-box4{
	text-align:right;}

.readmore-button-box4 a{
    color: #888;
    padding: 0.5em;
    display: inline-block;
    font-size: 18px;
    text-decoration: none;
}
.readmore-button-box4 a:after{
	content:" ↓";
	font-weight:bold;
}
.readmore-area {
  display: none;
  margin-top: 0.5em;
}

.readmore-area.active {
  display: block;
}

.readmore-button-box4 a {
  display: inline-block;
  padding: 0.5em 1em;
  background: #f0f0f0;
  border-radius: 4px;
  text-decoration: none;
  color: #333;
}
.readmore-button-box4 a:hover {
  background: #ddd;
}

.kansoz_waku{

    padding-bottom: 0.2em;
	margin-top:30px;
}

.sitayou{
	font-size: 1.1em;
    line-height: 1.6em;
		background-image: url(/images/hakase-setu-s.jpg);
	background-size: contain;
	background-repeat-x: no-repeat;
	background-position: right;
	background-size: auto;
	background-repeat: no-repeat;
}
.kansoz_kiji-box {
    display: table-cell;
    vertical-align: top;
}

.kansoz_title {
    margin: -25px 0 10px 0;
	  overflow: hidden;
  height: 6em; /* 2em（行）x line-heightの1.8 */
  font-size: 15px;
  line-height: 1.5;
}

.kansoz_waku a {
    font-size: 0.8em;
    text-decoration: none;
    color: #333;
}

.kansoz_kiji {
  text-decoration: none;
}

.setubox {
    text-align: left;
    font-size: 0.95em;
    margin: 16px 0 0.1em 0;
    box-shadow: 0px 1px 0px #3333333b;
    padding: 0 0 1em 0;
    background-image:url(/images/wakaba.png);
    background-repeat:no-repeat;
    background-position:right bottom;
}

.ranking-header{
  background-color: #fff;
  width: 100%;
  display: flex;
    justify-content: center;  /* 左右中央 */
    align-items: flex-end;    /* 上下は下寄せ */
    height: 85px;            /* 高さを指定（必要に応じて調整） */
 border-radius: 7px 7px 0 0;
 margin-bottom:3px;
 padding-bottom: 6px;
}


.ranking-container {
            display: flex;
            align-items: end;
            justify-content: center;
            gap: 2px;
            margin-bottom: 15px;
        }

        .ranking-bar {
            border-radius: 4px 4px 0 0;
            color: white;
            text-align: center;
            position: relative;
            width: 42px;
            font-weight: 300;
            font-size: 14px;
            display: flex;
            flex-direction: column;
            justify-content: space-between;
            padding: 12px 3px 16px 3px;
            line-height: 1.1;
            box-shadow: 0 4px 12px rgba(0,0,0,0.15);
            letter-spacing: 2px;
        }

        .bar-text {
            writing-mode: vertical-rl;
            text-orientation: upright;
            height: 100%;
            display: flex;
            align-items: center;
            justify-content: center;
        }

        .score-badge {
            background: white;
            color: #333;
            border-radius: 4px;
            width: 28px;
            height: 28px;
            display: flex;
            align-items: center;
            justify-content: center;
            font-weight: 800;
            font-size: 16px;
            margin: 0 auto;
            margin-top: 10px;
            box-shadow: 0 2px 8px rgba(0,0,0,0.1);
            border: 2px solid rgba(255,255,255,0.9);
        }

        /* 各バーの高さと色 */
        .bar-1 {
            background: linear-gradient(135deg, #667eea 0%, #5dade2 100%);
            height: 160px;
        }

        .bar-2 {
            background: linear-gradient(135deg, #f39c12 0%, #ff9500 100%);
            height: 160px;
        }

        .bar-3 {
            background: linear-gradient(135deg, #e74c3c 0%, #ff6b6b 100%);
            height: 160px;
        }

        .bar-4 {
            background: linear-gradient(135deg, #52c41a 0%, #73d13d 100%);
            height: 130px;
        }

        .bar-5 {
            background: linear-gradient(135deg, #fadb14 0%, #ffd700 100%);
            height: 130px;
        }

        .bar-6 {
            background: linear-gradient(135deg, #eb2f96 0%, #ff85c0 100%);
            height: 130px;
        }

        .bar-7 {
            background: linear-gradient(135deg, #d2691e 0%, #cd853f 100%);
            height: 160px;
        }

        .total-points {
            text-align: center;
            font-size: 14px;
            color: #666;
            margin-top: 10px;
        }

        .points-number {
            font-weight: bold;
            color: #333;
            font-size: 16px;
        }

        /* アニメーション効果 */
        .ranking-bar {
            transform: translateY(20px);
            opacity: 0;
            animation: slideUp 0.6s ease forwards;
        }

        .bar-1 { animation-delay: 0.1s; }
        .bar-2 { animation-delay: 0.2s; }
        .bar-3 { animation-delay: 0.3s; }
        .bar-4 { animation-delay: 0.4s; }
        .bar-5 { animation-delay: 0.5s; }
        .bar-6 { animation-delay: 0.6s; }
        .bar-7 { animation-delay: 0.7s; }

        @keyframes slideUp {
            to {
                transform: translateY(0);
                opacity: 1;
            }
        }
.material-details-container {
  max-width: 100%;
  margin: 0 auto;
}

.controls-wrapper {
  display: flex;
  justify-content: space-between;
  align-items: flex-start;
  margin-bottom: 20px;
  gap: 20px;
  flex-wrap: wrap;
}

.content-selector {
  flex: 1;
  min-width: 300px;
}

.content-selector label {
  display: block;
  margin-bottom: 8px;
  font-weight: bold;
}

.content-buttons {
  display: flex;
  gap: 8px;
  flex-wrap: wrap;
}

.content-btn {
  padding: 8px 16px;
  border: 2px solid #ddd;
  background: white;
  border-radius: 1px;
  cursor: pointer;
  transition: all 0.2s ease;
  font-size: 14px;
  white-space: nowrap;
  min-width: 100px;
  text-align: center;
}

.content-btn:hover {
  background: #f5f5f5;
  border-color: #ccc;
}

.content-btn.active {
  background: #007bff;
  color: white;
  border-color: #007bff;
}

.sort-options {
  display: flex;
  align-items: center;
  gap: 10px;
  white-space: nowrap;
}

.sort-options label {
  font-weight: bold;
}

.sort-options select {
  padding: 8px 12px;
  border: 2px solid #ddd;
  border-radius: 6px;
  background: white;
  cursor: pointer;
}

.table-wrapper {
  overflow-x: auto;
  border: 1px solid #ddd;
  border-radius: 8px;
}

.details-table {
  width: 100%;
  border-collapse: collapse;
  background: white;
}

.details-table th,
.details-table td {
  padding: 16px;
  text-align: left;
  border-bottom: 1px solid #eee;
  vertical-align: top;
}

.details-table th {
  background: #f8f9fa;
  font-weight: bold;
  border-bottom: 2px solid #ddd;
  position: sticky;
  top: 0;
  z-index: 10;
}

/*.material-name-header {
  width: 30%;
  min-width: 200px;
}*/

.content-header {
  width: 70%;
}

.details-table tr:hover {
  background: #f8f9fa;
}

.material-name {
  border-right: 1px solid #eee;
}

.material-name a {
  font-weight: bold;
  color: #007bff;
  text-decoration: none;
}

.material-name a:hover {
  text-decoration: underline;
}

.material-images {
  margin-top: 16px;
}



.content-cell {
  position: relative;
}

.content-item {
  min-height: 50px;
  display: flex;
  align-items: flex-start;
}

.content-text {
  line-height: 1.5;
}

.content-list {
  margin: 0;
  padding-left: 20px;
  line-height: 1.6;
}

.content-list li {
  margin-bottom: 4px;
}

.subject-tags {
  display: flex;
  flex-wrap: wrap;
  gap: 6px;
}

.subject-tag {
  background: #e9ecef;
  padding: 4px 8px;
  border-radius: 4px;
  font-size: 12px;
  border: 1px solid #dee2e6;
}

.content-unavailable {
  color: #999;
  font-style: italic;
}

/* レスポンシブ対応 */
@media (max-width: 768px) {
  .controls-wrapper {
    flex-direction: column;
    align-items: stretch;
  }

  .content-buttons {
    justify-content: center;
  }

  .content-btn {
    flex: 1;
    min-width: auto;
  }

  .details-table th,
  .details-table td {
    padding: 12px;
  }

/*  .material-name-header {
    width: 40%;
    min-width: 150px;
  }*/


}

/* メインレイアウト全体のスタイリング */
.study-program-showcase {
  display: flex;
  flex-direction: column;
  gap: 28px;
  margin-top: 25px;
  width: 100%;
}

.program-display-unit {
  border: 2px solid #e8e8e8;
  border-radius: 12px;
  padding: 25px;
  background: #ffffff;
  box-shadow: 0 3px 6px rgba(0,0,0,0.08);
  transition: all 0.3s ease-in-out;
}

.program-display-unit:hover {
  box-shadow: 0 6px 12px rgba(0,0,0,0.12);
  transform: translateY(-2px);
}

/* プログラム名表示部分 */
.program-header-zone {
  margin-bottom: 18px;
  border-bottom: 2px solid #f5f5f5;
  padding-bottom: 12px;
}

.program-display-name {
  margin: 0;
  font-size: 1.5em;
  font-weight: 700;
  color: #2c3e50;
}

.program-display-name a {
  color: #2c3e50;
  text-decoration: none;
  transition: color 0.3s ease;
}

.program-display-name a:hover {
  color: #3498db;
  text-decoration: underline;
}

/* 画像ショーケース部分 */
.program-image-showcase {
  margin-bottom: 20px;
  display: flex;
  flex-wrap: wrap;
  gap: 12px;
  justify-content: flex-start;
}

.image-display-frame {
  max-width: 220px;
  border-radius: 8px;
  overflow: hidden;
  box-shadow: 0 2px 4px rgba(0,0,0,0.1);
}

.image-display-frame img {
  width: 100%;
  height: auto;
  display: block;
  transition: transform 0.3s ease;
}

.image-display-frame:hover img {
  transform: scale(1.05);
}

/* 説明・詳細情報部分 */
.program-description-zone {
  margin-top: 18px;
}

.description-content-item {
  margin-bottom: 12px;
}

.description-text-block {
  line-height: 1.7;
  color: #34495e;
  font-size: 1em;
  padding: 8px 0;
}

.description-list-format {
  margin: 0;
  padding-left: 24px;
  line-height: 1.7;
  color: #34495e;
}

.description-list-format li {
  margin-bottom: 6px;
  position: relative;
}

.description-list-format li::marker {
  color: #3498db;
}

/* 科目タグ部分 */
.subject-tag-cluster {
  display: flex;
  flex-wrap: wrap;
  gap: 10px;
  margin-top: 8px;
}

.subject-tag-badge {
  background: linear-gradient(135deg, #74b9ff, #0984e3);
  color: white;
  padding: 6px 12px;
  border-radius: 20px;
  font-size: 0.85em;
  font-weight: 500;
  border: none;
  box-shadow: 0 2px 4px rgba(116, 185, 255, 0.3);
  transition: transform 0.2s ease;
}

.subject-tag-badge:hover {
  transform: translateY(-1px);
  box-shadow: 0 4px 8px rgba(116, 185, 255, 0.4);
}

.description-empty-state {
  color: #95a5a6;
  font-style: italic;
  font-size: 0.95em;
}

.material-details-container {
  max-width: 100%;
  margin: 0 auto;
  font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', sans-serif;
}

.controls-wrapper {
  position: sticky;
  top: 0;
  z-index: 100;
  display: flex;
  flex-wrap: wrap;
  gap: 20px;
  margin-bottom: 20px;
  padding: 15px;
  background: #f8f9fa;
  border-radius: 8px;
  box-shadow: 0 2px 8px rgba(0,0,0,0.15);
  backdrop-filter: blur(10px);
}

.content-selector label,
.sort-options label {
  font-weight: 600;
  margin-bottom: 8px;
  display: block;
  color: #333;
}

.content-buttons {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
}

.content-btn {
  padding: 8px 16px;
  border: 2px solid #e0e0e0;
  background: white;
  border-radius: 2px;
  cursor: pointer;
  font-size: 14px;
  transition: all 0.2s ease;
  color: #666;
}

.content-btn:hover {
  border-color: #007bff;
  color: #007bff;
}

.content-btn.active {
  background: #007bff;
  border-color: #007bff;
  color: white;
}

#sortOrder {
  padding: 8px 12px;
  border: 1px solid #ddd;
  border-radius: 4px;
  font-size: 14px;
}

.comparison-list {
  border-radius: 8px;
  overflow: hidden;
  box-shadow: 0 2px 8px rgba(0,0,0,0.1);
}

.comparison-item {
  padding: 20px;
  border-bottom: 1px solid #e0e0e0;
  transition: background-color 0.2s ease;
}

.comparison-item:last-child {
  border-bottom: none;
}

.comparison-item.even {
  background-color: #f8f9fa;
}

.comparison-item.odd {
  background-color: #ffffff;
}

.comparison-item:hover {
  background-color: #e3f2fd !important;
}

.material-info {
  width: 100%;
}

.material-title {
    margin: 0 0 15px 0;
    font-size: 22px;
    font-weight: 600;
    line-height: 1.4;
    border-bottom: 1px solid #333;
    margin: 15px 0;
}
.material-title a {
  color: #333;
  text-decoration: none;
  transition: color 0.2s ease;
}

.material-title a:hover {
  color: #007bff;
}

.material-description {
  margin: 0;
  font-size: 14px;
  color: #666;
  line-height: 1.5;
  font-weight: 400;
}

.content-list {
  margin: 8px 0 0 0;
  padding-left: 20px;
  color: #666;
  font-size: 14px;
  line-height: 1.5;
}

.content-list li {
  margin-bottom: 4px;
}

.content-unavailable {
  color: #999 !important;
  font-style: italic;
}

.subject-tags {
  display: flex;
  flex-wrap: wrap;
  gap: 6px;
  margin-top: 8px;
}

.subject-tag {
  background: #e3f2fd;
  color: #1976d2;
  padding: 4px 12px;
  border-radius: 15px;
  font-size: 12px;
  font-weight: 500;
}

.link-section {
  margin-top: 15px;
  padding-top: 15px;
  border-top: 1px solid #e0e0e0;
}

.link-list {
  list-style: none;
  padding: 0;
  margin: 0;
  display: flex;
  gap: 10px;
}

.link-item {
  flex: 1;
}

.link-internal,
.link-external {
  display: block;
  padding: 12px;
  border-radius: 8px;
  text-decoration: none;
  transition: all 0.2s ease;
  text-align: center;
  min-height: 60px;
  display: flex;
  flex-direction: column;
  justify-content: center;
}

.link-internal {
  background: #e3f2fd;
  border: 1px solid #90caf9;
  color: #1976d2;
}

.link-internal:hover {
  background: #bbdefb;
  transform: translateY(-1px);
}

.link-external {
  background: #f3e5f5;
  border: 1px solid #ce93d8;
  color: #7b1fa2;
}

.link-external:hover {
  background: #e1bee7;
  transform: translateY(-1px);
}

.link-title {
  font-weight: 600;
  font-size: 13px;
  line-height: 1.3;
  display: block;
  margin-bottom: 4px;
}

.link-description {
  font-size: 11px;
  opacity: 0.8;
  line-height: 1.2;
}

.content-area {
  flex: 1;
  padding-left: 20px;
  border-left: 2px solid #e0e0e0;
}

.content-item {
  line-height: 1.6;
}

.content-text {
  color: #555;
  font-size: 15px;
}

.content-list {
  margin: 0;
  padding-left: 20px;
  color: #555;
}

.content-list li {
  margin-bottom: 5px;
}

.content-unavailable {
  color: #999;
  font-style: italic;
}

.subject-tags {
  display: flex;
  flex-wrap: wrap;
  gap: 6px;
}

.subject-tag {
  background: #e3f2fd;
  color: #1976d2;
  padding: 4px 12px;
  border-radius: 15px;
  font-size: 13px;
  font-weight: 500;
}

/* スマホ専用の最適化 */
@media (max-width: 768px) {
  .controls-wrapper {
    flex-direction: column;
    gap: 15px;
    padding: 12px;
    margin: -20px -20px 20px -20px; /* 親要素のpaddingを相殺して全幅に */
    border-radius: 0 0 8px 8px;
  }

  .content-selector {
    order: 1;
  }

  .sort-options {
    order: 2;
  }

  .content-buttons {
    justify-content: center;
    gap: 6px;
  }


  .comparison-item {
    padding: 15px;
  }

  .link-list {
    flex-direction: column;
    gap: 8px;
  }

  .link-internal,
  .link-external {
    min-height: 50px;
    padding: 10px;
  }

  .link-title {
    font-size: 12px;
  }

  .link-description {
    font-size: 10px;
  }

  /* bodyにpaddingがある場合の調整 */
  .material-details-container {
    margin: 0 -20px;
    padding: 20px;
  }
}

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

  .br-sp {
    display: inline-block;
  }
}
table#table5{width: 90%;border:1px #666 solid;border-collapse:collapse;border-spacing:0;margin-top:0;margin-bottom:20px}table#table5 th{font-weight:700;line-height:140%;background-color:#0db4d1;border-top-width:0;border-right-width:0;border-bottom-width:2px;border-left-width:1px;border-top-style:solid;border-right-style:solid;border-bottom-style:solid;border-left-style:solid;border-top-color:#666;border-right-color:#666;border-bottom-color:#666;border-left-color:#666;color:#fff;padding-top:5px;padding-bottom:5px;padding-left:3px}table#table5 td{border-top-width:0;border-right-width:0;border-bottom-width:1px;border-left-width:1px;border-top-style:solid;border-right-style:solid;border-bottom-style:solid;border-left-style:solid;border-top-color:#666;border-right-color:#666;border-bottom-color:#666;border-left-color:#666;font-size:.9em;padding-left:5px}

.moji{font-size:.95em;font-weight:700;color:#333}

table#table1{background:silver}table#table1 th{padding-left:5px;text-align:left;background-image:url(/images/tb.gif)}table#table1 td{border:1px solid #fff;padding-left:7px;background-color:#fff}table#table2{width:99%;border-collapse:collapse;border-spacing:0;border-top-width:1px;border-right-width:1px;border-bottom-width:1px;border-left-width:1px;border-top-style:solid;border-top-color:#e3e3e3;border-right-color:#e3e3e3;border-bottom-color:#e3e3e3;border-left-color:#e3e3e3;border-bottom-style:solid}

.kuro{color:#fff;background-color:#666;border:1px solid #000;vertical-align:middle;margin-right:0;line-height:2em;margin-left:.4em;padding-top:.4em;padding-right:.4em;padding-bottom:.4em;padding-left:.4em}

table#table3{background:silver}table#table3 th{padding-left:5px;text-align:left;background-image:url(../img/tb.gif);width:25%;text-indent:10px;padding-top:5px;padding-bottom:5px}table#table3 td{border:1px solid #fff;padding-left:7px;background-color:#fff;font-size:.9em}table#table3 .moji{font-size:.95em;font-weight:700;color:#333}

.mannaka0 table{
	margin:0 auto;}

.titleh2 {text-align:center}
.titleh2 h2{color:#fff;margin:-1em 0 0 0;font-size:.9em}

.contents_innner {
    padding-top: 70px;
    margin-top:-70px;
}

.balloonhako {
  position: relative;
  display: table;
  margin: 1.5em 0;
  padding: 19px 10px 7px 10px;
  min-width: 120px;
  max-width: 100%;
  color: #555;
  font-size: 16px;
  background: #FFF;
  border: solid 3px #555;
  box-sizing: border-box;
  margin:0 auto !important;
}

.balloonhako:before {
  content: "";
  position: absolute;
  bottom: -24px;
  left: 50%;
  margin-left: -15px;
  border: 14px solid transparent;
  border-top: 12px solid #FFF;
  z-index: 2;
}

.balloonhako:after {
  content: "";
  position: absolute;
  bottom: -30px;
  left: 50%;
  margin-left: -17px;
  border: 14px solid transparent;
  border-top: 14px solid #555;
  z-index: 1;
}


.balloonhako h2{
	border:none !important;}

.list-li {
	display:table;
	margin:0 auto;}

.list-li ol li{
  text-indent: -1.3em;
  padding-left: 1.3em;
}

.list-li ol li a{
	text-decoration:none;
	color:#666;
	font-size:1.1em;
	line-height:1.9em;}

.next_box3 {
	font-weight: bold;
	position: relative;
	display: block;
	max-width: 85%;
	width:300px;
	margin: 1.5em auto;
	padding: 0.3em 1em;
	cursor: pointer;
	transition: all 0.3s;
	text-align: center;
	color: #da3c41;
	border: 2px solid #da3c41;
	border-radius: 3px;
	line-height:2.2em;
		text-decoration:none;
}
.next_box3 a{
	text-decoration:none;
	color:#da3c41;
	display:block;}


.next_box3:hover {
	transition: all 0.3s;
	color: #ffffff;
	background: #da3c41;
}

.next_box3:hover a{
	color: #ffffff;
}
.next_box3::after {
	content:none;
}

.cp_box *, .cp_box *:before, .cp_box *:after {
	-webkit-box-sizing: border-box;
	box-sizing: border-box;
}
.cp_box {
	position: relative;
}
.cp_box label {
	position: absolute;
	z-index: 1;
	bottom: 0;
	width: 100%;
	height: 140px; /* グラデーションの高さ */
	cursor: pointer;
	text-align: center;
	/* 以下グラデーションは背景を自身のサイトに合わせて設定してください */
	background: linear-gradient(to bottom, rgba(250, 252, 252, 0) 0%, rgba(250, 252, 252, 0.95) 90%);
}
.cp_box input:checked + label {
	background: inherit; /* 開いた時にグラデーションを消す */
}
.cp_box label:after {
	line-height: 2.5rem;
	position: absolute;
	z-index: 2;
	bottom: 20px;
	left: 50%;
	width: 14rem;

	content:'↓ 続きをよむ';
	transform: translate(-50%, 0);
	letter-spacing: 0.05em;
	color: #ffffff;
	border-radius: 20px;
	background-color: #607d8b;
}
.cp_box input {
	display: none;
}
.cp_box .cp_container {
	overflow: hidden;
	height: 150px; /* 開く前に見えている部分の高さ */
	transition: all 0.5s;
}
.cp_box input:checked + label {
	/* display: none ; 閉じるボタンを消す場合解放 */
}
.cp_box input:checked + label:after {

	content:' 閉じる';
}
.cp_box input:checked ~ .cp_container {
	height: auto;
	padding-bottom: 80px; /* 閉じるボタンのbottomからの位置 */
	transition: all 0.5s;
}

.cp_box::after{
  content: "";
  clear: both;
  display: block;
}

 .cp_box2 *, .cp_box2 *:before, .cp_box2 *:after {
	-webkit-box-sizing: border-box;
	box-sizing: border-box;
}
.cp_box2 {
	position: relative;
}
.cp_box2 label {
	position: absolute;
	z-index: 1;
	bottom: 0;
	width: 100%;
	height:100px; /* グラデーションの高さ */
	cursor: pointer;
	text-align: center;
	/* 以下グラデーションは背景を自身のサイトに合わせて設定してください */
	background: linear-gradient(to bottom, rgba(250, 252, 252, 0) 0%, rgba(250, 252, 252, 0.95) 90%);
}
.cp_box2 input:checked + label {
	background: inherit; /* 開いた時にグラデーションを消す */
}
.cp_box2 label:after {
line-height: 2.5rem;
    position: absolute;
    z-index: 2;
    bottom: 20px;
    content: '＋ 続きを見る';
    transform: translate(31%, 130%);
    letter-spacing: 0.05em;
    color: #333;
   left: 50%;
  width: 40%;
cursor: pointer;
}
.cp_box2 input {
	display: none;
}
.cp_box2 .cp_container {
	overflow: hidden;
	height: 150px; /* 開く前に見えている部分の高さ */
	transition: all 0.5s;
}
.cp_box2 input:checked + label {
	/* display: none ; 閉じるボタンを消す場合解放 */
}
.cp_box2 input:checked + label:after {

	content:'- 閉じる';
}
.cp_box2 input:checked ~ .cp_container {
	height: auto;
	padding-bottom: 5px; /* 閉じるボタンのbottomからの位置 */
	transition: all 0.5s;
}

.cp_box2::after{
  content: "";
  clear: both;
  display: block;
}

.cp_box2 img {
	float:left;
	margin: 0 10px 5px 0;
	}

#kanso{width:340px;font-size:.8em;line-height:1.3em;padding-left:0}
#kanso strong{color:#069;background-color:#ff0;border:1px solid #f90;margin-right:0;line-height:2em;margin-left:.2em;padding-top:.2em;padding-right:.1em;padding-bottom:.2em;padding-left:.2em}

.underh{color:#fff;background-color:#1e8d96;padding-bottom:10px;bottom:0;margin-bottom:0;z-index:1}.underh a:link{color:#fff;text-decoration:none}.underh a:visited{color:#fff}

.toph2d{
font-size: 21px;
    margin: 17px 0 10px -11px;
    font-weight: 700;
    background:-webkit-repeating-linear-gradient(45deg,#1aa7b2,#1aa7b2 5px,#1aa7b2 5px,#1aa7b2 10px);background:repeating-linear-gradient(45deg,#12737a,#1e8d96 5px,#12737a 5px,#1e8d96 10px);color:#fff;text-shadow:1px 1px 1px rgba(0,0,0,.3);color:#fff;background-color:#1e8d96;padding:.5em 1em;margin-right:0;margin-bottom:0;border-bottom-width:1px;border-bottom-style:solid;border-bottom-color:#999;font-size:1.2em
}
.toph2d span{
	display: block;
　width:100%;
}
.toph2d span:nth-of-type(2){
	display: inline-block;
	margin-left:1em;
  font-size:0.9em;
}

.contents_innner {
    padding-top: 70px;
    margin-top:-70px;
}

.hikakubox0{
	    margin-top: 15px;
		position: relative;
    margin-bottom: 50px;}
.hikakubox0 a, .aobackbox a{
	text-decoration:none;
	color:#333;
/*	border: 1px solid #ccc;
    padding: 8px 11px 8px 20px;*/}
.aobacktbox {
    background: -webkit-repeating-linear-gradient(
45deg,#1aa7b2,#1aa7b2 5px,#1aa7b2 5px,#1aa7b2 10px);
    background: repeating-linear-gradient(
45deg,#12737a,#1e8d96 5px,#12737a 5px,#1e8d96 10px);
    background-color: #1e8d96;
    padding: 9px 10px;
    width: calc(100% + 20px);
    margin: 0px 0px 0 -20px;
    border-bottom-width: 1px;
    border-bottom-style: solid;

}

.aobacktbox h3 {
    color: #FFF;
    font-size: 1.3em !important;
    margin-bottom: 0 !important;
}
.hikaku_box2{
    display: flex;
	margin:2em 0 0 0;
    padding-bottom: 20px;
}
.hikaku_cap2{
    width: 140px;
	text-align:center;
}
.hikaku_cap2 img{
	border: 1px solid #ccc;
    border-radius: 5px;
	margin-top: -5px;}

.hikaku_bun{
    flex: 1;
	min-height:5em;
	margin-left:27px;
}

.boxbun{
	 position: relative; /*必須*/
font-size: 13px;
    line-height: 18px;
    color: #000;
    padding: 10px;
    border: 1px solid #333;
    border-radius: 5px;
    margin: 0 -10px 0 -15px;}
.boxbun_title{
	position: absolute;
    top: -9px;
    left: 8px;
    padding: 0 9px;
    background: #fff;
    color: #666;
    font-weight: bold;
    font-size: 105%;
}
.boxbun_title2{
	position: absolute;
    top: -9px;
    left: 8px;
    padding: 0 9px;
    background: #fff;
    color: #f00;
    font-weight: bold;
    font-size: 105%;
}
.boxbun p{
	margin-top:3px;}

.hikaku_bun h3{
	display: inline;
	margin-left: -19px;
    margin-right: 2px;
    font-size: 1.2em !important;
	    background: linear-gradient(rgba(0,0,0,0) 65%,rgba(255,240,0,.45) 0);
    font-weight: 700;}

.hikakutbox2 {
    border: 1px solid #000;
    padding: 8px 10px 5px 10px;
    border-radius: 2px;
	text-align:center;
}

.hikaku_bun ol{
	margin:3px 0 0 -36px;}
.hikaku_bun ol li{
	font-size:13px;
	line-height:18px !important;}


.hikaku_bun ul{
	margin:3px 0 0 -36px;}

.hikaku_bun ul li{
	font-size:13px;
	line-height:18px !important;}

.hikaku_bun strong{
	margin:0 0 0 -16px;}

.hikaku_bun strong::before{
	  content: '';/*何も入れない*/
  display: inline-block;/*忘れずに！*/
  width: 27px;/*画像の幅*/
  height: 21px;/*画像の高さ*/
  margin-left:-2px;
      margin-top: -5px;
  background-image: url(/images/siru.png);
  background-size: contain;
  vertical-align: middle;
  margin-right: 3px;
  background-repeat: no-repeat;
	}

.sbtext0 {
    border-style: solid;
    border-width: 1px;
    border-color: #c0c0c0;
    color: #696969;
    font-size: 80%;
    border-radius: 2px 2px 2px 2px;
    padding: 2px 2px 2px 2px;
    margin-left: 1px;
    margin-right: 1px;
    vertical-align: 3%;
    background-color: #f5f5f5;
    white-space: nowrap;
	opacity:0.2;
}

.sbtext1 {
    border-style: solid;
    border-width: 1px;
    border-color: #c0c0c0;
    color: #696969;
    font-size: 80%;
    border-radius: 2px 2px 2px 2px;
    padding: 2px 2px 2px 2px;
    margin-left: 1px;
    margin-right: 1px;
    vertical-align: 3%;
    background-color: #f5f5f5;
    white-space: nowrap;
}

.slidetitle{
	font-size:1.2em;
	margin-top:1em;
	font-weight:400;
	margin-left:-0.5em;


}

.grid_hukileft {
  display: grid;
  grid-template-rows: auto;
  grid-template-columns:60px auto;
    margin:1em 0 2em 0;
	text-align: left;
}
.grid_huki_licon{grid-row: 1 / 2;grid-column: 1/ 2;}
.grid_huki_licon img{
	width:50px;
	height:auto;
	position: relative;
    bottom: -10px;}
.grid_huki_lkoel{grid-row: 1 / 2;grid-column: 2 / 3;border: 1px solid #ccc;
    padding: 1em;
    font-size: 0.9em;
    line-height: 1.2em;
	position: relative;
	border-radius: 10px;}

.grid_huki_lkoel:before {
    content: "";
    position: absolute;
    left: -10px;
    margin-top: 23px;
    border: 3px solid transparent;
    border-right: 12px solid #fff;
    z-index: 2;
}

.grid_huki_lkoel:after {
    content: "";
    position: absolute;
    top: 36px;
    left: -12px;
    /* margin-top: -4px; */
    border: 3px solid transparent;
    border-right: 9px solid #ccc;
    z-index: 1;
}


.grid_huki_lkoel p{
	color:#000;}

.grid_hukiright {
  display: grid;
  grid-template-rows: auto;
  grid-template-columns:auto 60px;
  margin:1em 0 2em 0;
  text-align: left;
}
.grid_huki_ricon{grid-row: 1 / 2;grid-column: 2/ 3;}
.grid_huki_ricon img{
	width:50px;
	height:auto;
	padding-left: 8px;
	position: relative;
    bottom: -10px;}
.grid_huki_rkoel{grid-row: 1 / 2;grid-column: 1 / 2;border: 1px solid #ccc;
    padding: 1em;
    font-size: 0.9em;
    line-height: 1.3em;
	border-radius: 10px;
	position:relative;}

.grid_huki_rkoel:before {
    content: "";
    position: absolute;
    right: -10px;
    margin-top: 34px;
    border: 3px solid transparent;
    border-left: 12px solid #fff;
    z-index: 2;
}

.grid_huki_rkoel:after {
    content: "";
    position: absolute;
    /* top: 36px; */
    right: -12px;
    margin-top: -4px;
    border: 3px solid transparent;
    border-left: 9px solid #ccc;
    z-index: 1;
}


.grid_huki_rkoel p{
	color:#000;}

.grid_container0 {
  display: grid;
  grid-template-rows: auto;
  grid-template-columns:78px auto;
  margin-left:-7px;
      max-width: 100%;
}
.grid_no{grid-row: 1 / 2;grid-column: 1 / 2;
border-left: 2px solid #009688;border-top: 2px solid #009688;border-bottom: 2px solid #009688;}

.grid_no div{
    letter-spacing: 2px;
    font-weight: bold;
	line-height: 26px;}

.grid_no img{
	margin-left:-11px;}
.grid_title{grid-row: 1 / 2;grid-column: 2 / 3;margin:0 -10px;font-weight: bold;
border-right: 2px solid #009688;border-top: 2px solid #009688;border-bottom: 2px solid #009688;text-align:left;}

.box_arrows {
    width: 50px;
    height: 56px;
    background: #006837;
    position: relative;
    border: 10% solid;
    text-align: center;
	color:#fff;
	padding-top:3px;
}
.box_arrows span{
	color:#fff;
	display:block;
	font-size:1.6em;
      position: relative;
    top: -4px;
}
.box_arrows::after {
    content: "";
    position: absolute;
    bottom: 0px;
    width: 0;
    right: -11px;
    height: 0;
    border-left: 11px solid #006837;
    border-top: 28px solid transparent;
    border-bottom: 28px solid transparent;
}
/* assets/css/style.css */

.star-svg-dynamic {
    display: inline-flex;
    align-items: center;
        position: relative;
    top: 2px;
}
.star-svg-dynamic svg {
    width: 15px;
    height: 15px;
    margin-right: 2px;
}

/* デフォルトの星の色は灰色に設定 */
.star-svg-dynamic .star {
    fill: #ddd;
}

.bold-red {
    color: #f44f4f;
    font-weight: 700;
}

.box-buttom{
    padding: 0.5em 1em;
    margin: 2em 0;
    border: double 5px #4ec4d3;
}

.centered-list {
    display: inline-block;     /* リスト全体をブロックとして中央寄せ可能に */
    margin: 0 auto;            /* 左右中央配置 */
    text-align: left;          /* リスト内テキストは左寄せ */
    padding-left: 1.5em;       /* 番号分の余白 */
    width: auto;
}
.center-list li {
    margin: 0.3em 0; /* 項目の上下間隔 */
}
.hitoji{border-style:solid;border-width:1px;border-color:silver;color:#696969;font-size:80%;border-radius:2px 2px 2px 2px;padding:2px 2px 2px 2px;margin-left:2px;margin-right:2px;vertical-align:3%;background-color:#f5f5f5}

.ranking-layout {
  display: flex;
  flex-direction: column;
}

.course-description {
  margin-bottom: -0.5rem;
  font-size: 0.9em;
  color: #666;
  text-align: center;
}

.ranking-with-name {
  display: flex;
  align-items: center;
  gap: 0.5rem;
  margin: 0 auto;
}

.ranking-image {
  flex-shrink: 0;
  width: 35px;
  height: 35px;
}

.course-name {
  margin: 0;
}



  .pagination {
    display: flex;
    justify-content: center;
    align-items: center;
    margin-top: 20px;
    gap: 10px;
  }
  .pagination button {
    padding: 8px 16px;
    background-color: #007bff;
    color: white;
    border: none;
    border-radius: 4px;
    cursor: pointer;
  }
  .pagination button:disabled {
    background-color: #cccccc;
    cursor: not-allowed;
  }
  .pagination span {
    font-size: 1em;
  }
  .circle-mark {
    font-size: 1.2em;
    color: #28a745;
  }
  .hidden {
    display: none;
  }
.article-content a {
    color: #333;
}

.article-content a:visited {
    color: #333;
}

.print_sumt2 {
  position: sticky;
  top: 0;              /* 上からの距離 */
  z-index: 999;        /* 他の要素より上に表示 */
  background: #fff;    /* 下の要素が透けないように */
}
        .speech-bubble {
            margin: 0 auto;
            max-width: 600px;
        }

        /* シンプルなアコーディオン式 */
        .accordion-bubble {
            border: 1px solid #ddd;
            border-radius: 10px;
            margin-bottom: 0px;
            background: white;
        }

        .accordion-header {
            display: flex;
            align-items: center;
            padding: 15px;
            cursor: pointer;
            border-bottom: 1px solid #eee;
            background-color: #f5f5f5;
        }

        .accordion-header:hover {
            background-color: #f5f5f5;
        }

        .accordion-text {
            flex: 1;
            font-size: 16px;
            color: #333;
        }

        .accordion-icon {
            width: 50px;
            height: 50px;
   /*         background: #ff9999;*/
            border-radius: 50%;
            display: flex;
            align-items: center;
            justify-content: center;
            margin-right: 15px;
            font-size: 20px;
            color: white;
        }

        .expand-arrow {
            margin-left: 10px;
            font-size: 16px;
            transition: transform 0.3s;
            color: #888;
        }

        .accordion-content {
            max-height: 0;
            overflow: hidden;
            transition: max-height 0.3s ease-out;
        }

        .accordion-content.expanded {
            max-height: 400px;
        }

        .accordion-inner {
            padding: 15px 15px 15px 29px;
            border-top: 1px solid #eee;
        }

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

.merit-list li {
  padding: 8px 0;
  border-bottom: 1px solid #f0f0f0;
  font-size: 14px;
  line-height: 1.5;
  position: relative;
  left: 30px;
}


.merit-list li::before {
  content: "✔";
  position: absolute;
left: -20px;
  color: #4dabf7;
  font-size: 0.9rem;
}




        .merit-item {
            padding: 8px 0;
            border-bottom: 1px solid #f0f0f0;
            color: #555;
        }

        .merit-item:last-child {
            border-bottom: none;
        }



        @keyframes fadeIn {
            from { opacity: 0; }
            to { opacity: 1; }
        }

        .section-title {
            text-align: center;
            color: #333;
            margin: 40px 0 20px 0;
            font-size: 20px;
            font-weight: bold;
        }