@charset "utf-8";


/*今年のチラシ色
個人　#5877ba
集団　#ce7d57*/


/* リセット
----------------------------------------------------------- */
* {
	margin: 0;
	padding: 0;
	font-style: normal;
}

html {
	overflow-y: scroll;
}

img {
	border: none;
	vertical-align: bottom;
}

li {
	list-style: none;
}

textarea {
	overflow: auto;
	vertical-align: top;
	font-size: 100%;
}
.clear {
	overflow: hidden;
	float: none;
	clear: both;
}
.fwb { font-weight:bold; }
.fs12 { font-size: 12px; }

.disable { display: none; }

/* リンク
----------------------------------------------------------- */
a:link {
	color: #cc3333;
	text-decoration: underline;
}

a:visited {
	color: #cc3333;
	text-decoration: underline;
}

a:hover {
	text-decoration: none;
}

a:hover img,
.over:hover {
	filter: alpha(opacity=50);
	-moz-opacity: 0.5;
	opacity: 0.5;
}



hr.divideline {
	width: 100%;
	height: 1px;
  	border: none;
  	border-top: 1px #000000 solid;
  	margin-top: 60px;
  	margin-bottom: 60px;
}
hr.divideline:before {
	content: " "; display: table;
}



/* body
----------------------------------------------------------- */
body {
	color: #070707;
	font-family: "ヒラギノ角ゴ Pro W3", "Hiragino Kaku Gothic Pro", "メイリオ", Meiryo, Osaka, "ＭＳ Ｐゴシック", "MS PGothic", sans-serif;
	font-size: 18px;
	background: url(../img/header_bg_01.png) repeat;
}




/* ロゴ
----------------------------------------------------------- */
#logo {
	position: fixed !important;  
    position: absolute;  
    top: 0;  
    left: 0;  
	width: 100%;
	height: 77px;
	background: url(../img/logo_bg.png) repeat-x 0 100%;
	z-index: 999;
}
#logo div{
	width: 980px;
	margin: 0 auto;
	text-align: left;
	background: none;
}
#logo div img{
	padding: 15px 0;
}
#logo ul.language {
	float: right;
	margin-left: 15px;
	margin-top: 20px;
}
#logo ul.language li {
	float: right;
	font-size: 12px;
	letter-spacing: 0.2em;
}
#logo ul.language li a:first-child {
	margin-right: 5px;
}
#logo ul.language li a{
	display: block;
	text-decoration: none;
	padding: 7px;
	color: #fff;
	background-color: #c8c8c8;
	border-radius: 4px;        /* CSS3草案 */  
    -webkit-border-radius: 4px;    /* Safari,Google Chrome用 */  
    -moz-border-radius: 4px;   /* Firefox用 */  
}
#logo ul.language li a:hover {
	background-color: #f89e36;
}
#logo ul.language li.active a{
	background-color: #f89e36;
}




/* ナビ
----------------------------------------------------------- */
#navi {
	position: fixed !important;  
    position: absolute;  
    top: 77px;  
    left: 0; 
    z-index: 999;
	width: 100%;
	height: 50px;
	background: url(../img/navi_bg.png) repeat-x 0 100%;
}
#navi ul{
	width: 980px;
	margin: 0 auto;
	height: 50px;
}
#navi ul li{
	height: 50px;
	float: left;
}
#navi ul li img{
	padding: 0;
	margin:0;
}


/*----------アンカーでのずれを解消----------*/

/*#a1,#a2,#a3,#a4 {
	margin-top:-120px;
	padding-top: 120px;
}*/
#q2016 {margin-top:-300px;padding-top:300px;}
#q2016_01 {margin-top:-120px;padding-top:120px;}
#q2016_02 {margin-top:-80px;padding-top:80px;}
#q2017_02 {margin-top:-120px;padding-top:120px;}
#q2015_02 {margin-top:-120px;padding-top:120px;}
/*#q2016,
#q2016_01 {margin-top:-40px;padding-top:40px;}
#q2016_02 {margin-top:-100px;padding-top:100px;}
*/

#q2018_02 {
margin-top:-120px;padding-top:120px;
}

/*----------アンカーでのずれを解消----------*/
#q01_best,#q01_better_a,#q01_better_b,
#q02_best,#q02_better_a,#q02_better_b {
	margin-top:-127px;
	padding-top:127px;
}


/* アナウンスのナビ
----------------------------------------------------------- */
/*#subnavi {
	position: fixed !important;  
    position: absolute;  
    top: 127px;  
    left: 0; 
    z-index: 999;
	width: 100%;
	height: 40px;
	text-align: center;
	background-color: rgba(247,147,29,0.9);
}
#subnavi ul{
	width: 700px;
	margin: 0 auto;
	height: 40px;
	box-sizing: border-box;
}
#subnavi ul li{
	height: 40px;
	padding-right: 20px;
	padding-top: 10px;
	float: left;
	text-decoration: none;
	color: #000;
	font-size: 14px;
	letter-spacing: 0.5em;
	box-sizing: border-box;
}
#subnavi ul li a{
	text-decoration: underline;
	color: #000;
	font-size: 14px;
}
#subnavi ul li:nth-child(1),
#subnavi ul li:nth-child(5) {
	background-color: #fff;
	padding-left: 20px;
}*/

#subnavi {
	width: 100%;
	height: 45px;
	margin-bottom: 20px;
	margin-top: 10px;
}
#subnavi ul{
	width: 780px;
	height: 45px;
	margin: 0 auto;
}
#subnavi ul li{
	width: 250px;
	height: 45px;
	text-decoration: none;
	float: left;
}
#subnavi ul li:nth-child(1),
#subnavi ul li:nth-child(2){
	margin-right: 15px;
}
#subnavi ul li img{
	width: 100%;
	height: auto;
}



/* アーカイブのナビ
----------------------------------------------------------- */

#subnavi_archive {
	width: 900px;
	height: auto;
	margin: 0 auto;
	margin-bottom: 20px;
	margin-top: 10px;
	overflow: hidden;
	box-sizing: border-box;
}
#subnavi_archive:after {
	content: "";
    clear: both;
    height: 0;
    display: block;
    visibility: hidden;

}

#subnavi_archive ul{
	width:  900px;
	height: auto;
	margin: 0 auto;
	overflow: hidden;
	box-sizing: border-box;
}


#subnavi_archive ul li.yearframe{
	width: 290px;
	height: auto;
	text-decoration: none;
	float: left;
	overflow: hidden;
	/*border: 1px solid #333;*/
	border-radius: 6px;
	color: #000;
	font-size: 16px;
	padding: 20px;
	margin-right: 10px;
	margin-bottom: 10px;
	background-color: #d7d3c8;
	box-sizing: border-box;
}
#subnavi_archive ul li.yearframe.color2017 { background-color: #896144 }
#subnavi_archive ul li.yearframe.color2016 { background-color: #3f7e70 }
#subnavi_archive ul li.yearframe.color2015 { background-color: #bfa023 }



#subnavi_archive ul li.yearframe:nth-child(3n){
	margin-right: 0;
}
#subnavi_archive ul li.yearframe p a{
	width: 100%;
	height: 25px;
	display: block;
	text-decoration: none;
	color: #333;
	font-weight: bold;
	box-sizing: border-box;
}

#subnavi_archive ul li.yearframe ul{
	width: 100%;
	height: 50px;
	z-index: 99;
	color: #fff;
	display: block;
	margin: 0 auto;
	box-sizing: border-box;

}
#subnavi_archive ul li.yearframe ul li{
	width: 48%;
	height: 40px;
	float: left;
	display: block;
	margin-top: 5px;
	background-color: #000;
	/*border: 1px solid #333;*/
	-webkit-border-radius: 6px;
	-moz-border-radius: 6px;
	border-radius: 6px;
	box-sizing: border-box;

}
#subnavi_archive ul li.yearframe ul li:first-child {
	margin-right: 10px;
}

#subnavi_archive ul li.yearframe ul li a{
	display: block;
	text-decoration: none;
	padding: 5px;
	color: #fff;
	-webkit-border-radius: 6px;
	-moz-border-radius: 6px;
	border-radius: 6px;
}
#subnavi_archive ul li.yearframe ul li a:hover{
	width: 100%;
	height: 100%;
	float: none;
	display: block;
	background-color: #fff;
	text-decoration: none;
	color: #333;
	-webkit-border-radius: 6px;
	-moz-border-radius: 6px;
	border-radius: 6px;
	box-sizing: border-box;
}
#subnavi_archive ul li.yearframe.active,
#subnavi_archive ul li.yearframe:hover {
	background-color: #dc3e00;
}


/* content
----------------------------------------------------------- */
#content2{
	padding-top: 77px;
	/*header 77px + navi 50px + 余白60px*/
}
#content{
	padding-top: 60px;
	/*padding-top: 187px;*/
	/*header 77px + navi 50px + 余白60px*/
}
#content3{
	padding-top: 187px;
	/*padding-top: 187px;*/
	/*header 77px + navi 50px + 余白60px*/
}


/* ヘッダ
----------------------------------------------------------- */
#header {
	width: 100%;
	height: auto;
	margin: 0 auto;
	background: url(../img/header_bg_01.png) repeat;
	margin-top:-77px;
	padding-top: 130px;
	position: relative;
}

.btn_topinvite a {
	position: absolute;
	z-index: 99;
	left: 20%;
	top: 140px;
  	opacity: 0;
  	animation: fadeIn 1s ease 0.3s 1 normal forwards;
}

@keyframes fadeIn {
  0% { opacity: 0; }
  100% { opacity: 1; }
}

/*#header.sub {
	height: 112px;
	background: url(https://www.sangaku123.jp/img/header_bg_05.png) repeat-x 0 0;
}*/


#header .header_in{
	width: 980px;
	height: auto;
	padding: 60px 0;
	margin: 0 auto;
}
#header .header_in h1 img {
	margin: 0 auto;
	overflow: hidden;
}


/*#header div {
	position: relative;
	text-align: center;
	margin-top:-77px;
	padding-top: 77px;
}

#header.sub div {
	position: static;
	width: 980px;
	margin: 0 auto;
	text-align: left;
	background: none;
}

#header div div {
	background: url(../img/header_bg_03.png) no-repeat 50% 85%;
}

#header div h1 {
	position: absolute;
	top: 15%;
	left: 50%;
	margin: 0 0 0 -235px;
}

#header.sub div h1 {
	position: static;
	margin: 0;
	padding: 7px 0 0;
}

#header div p {
	position: absolute;
	left: 50%;
	bottom: 15%;
	margin: 0 0 0 -490px;
}*/


/* メイン
----------------------------------------------------------- */
/*#main {
	width: 980px;
	margin: 0 auto 80px;
}
*/

/* 算額とは？
----------------------------------------------------------- */
#about {
	margin-top:-77px;
	padding-top: 77px;
}
.about {
	width: 100%;
	height: auto;
	background: url(../img/about_bg.png) repeat;
	
}
.about_top{
	width: 100%;
	height: 57px;
	background: url(../img/about_top.png) repeat-x;
	position: top;
	margin-bottom: 20px;
}
.about_bottom{
	width: 100%;
	height: 57px;
	background: url(../img/about_bottom.png) repeat-x;
	position: bottom;
	margin-top: 20px;
}
.about .about_in{
	width: 980px;
	height: auto;
	overflow: hidden;
	margin: 0 auto;
}
.about .about_in .about_copy{
	margin-bottom: 40px;
}
.about h2 {
	margin: 0 0 40px;
}

.about p {
	position: relative;
	line-height: 2;
	letter-spacing: 0.2em;
}

/*.about p span {
	position: absolute;
	left: 505px;
	bottom: 0;
	font-size: 10px;
}
*/

/* 締め切り
----------------------------------------------------------- */
.deadline {
	width: 100%;
	height: auto;
	margin: 0 auto;
/*	margin: 0 0 60px;*/
	padding: 70px 0 50px 0;
	background: url(../img/header_bg_01.png) repeat;
}

.deadline h2{
	text-align: center;
	margin-bottom: 50px;
}
.deadline_in{
	width: 980px;
	margin: 0 auto;
	text-align: left;
}
.deadline_in_center{
	width: 980px;
	margin: 0 auto;
	text-align: center;
}

.deadline .deadline_copy {
	width: 830px;
	font-weight: normal;
	padding-bottom: 20px;
	text-align: center;
	line-height: 2;
	letter-spacing: 0em;
	margin: 0 auto;
	/*margin-bottom: 30px;*/
/*	display: inline;
*/}

.deadline ul.entryformat {
	width: 830px;
	margin: 0 auto;
	text-align: left;
	overflow: hidden;
}
.deadline ul.entryformat li {
	width: 100%;
	height: auto;
	padding: 20px 0 60px 0;
	line-height: 180%;
	letter-spacing: 0.02em;
	clear: both ;
	overflow: hidden;
}
.deadline ul.entryformat li .itemttl {
	width: 100%;
	border-bottom: solid 1px #000;
	padding: 10px 0;
	line-height: 180%;
	letter-spacing: 0.05em;
	font-weight: bold;
	font-size: 120%;
	margin-bottom : 20px;
}
.deadline ul.entryformat li .itemttl span.deadline_note {
	font-size: 14px;
	color: #dc3e00;
	letter-spacing: 0;
	padding-left: 20px;
}
.deadline ul.entryformat li dl {
	width: 100%;
	padding-bottom: 60px;
	clear: both ;
}
.deadline ul.entryformat li dl dt {
	width: 15%; 
	float: left;
	clear: left ;
	padding-bottom: 10px;
}
.deadline ul.entryformat li dl dt span {
	font-weight: bold;
}
.deadline ul.entryformat li dd {
	width: 85%;
	float: left;
	padding-bottom: 15px;
}
.deadline ul.entryformat li p.infotext {
	font-size: 16px;
	padding-bottom: 30px;
}
.deadline ul.entryformat li p.infosub_ttl {
	padding-bottom: 5px;
	margin-bottom: 10px;
	border-bottom: dotted 1px #000;
}
.deadline ul.entryformat li p.infosub_cont {
	padding-bottom: 30px;
}

.deadline ul.entryformat li dl.infosub_prize {
	width: 100%;
	padding-bottom: 60px;
	clear: both ;
}
.deadline ul.entryformat li dl.infosub_prize dt {
	width: 100%; 
	float: none;
	clear: left ;
	background-color: #a18c42;
	padding: 10px 20px 10px;
	margin-bottom: 20px;
	color: #fff;
}

.deadline ul.entryformat li dl.infosub_prize dd {
	width: 100%;
	float: left;
	padding-bottom: 15px;
	margin-bottom: 40px;
}

.deadline ul.entryformat li dl dd .how_to_btn {
	width: 50%;
	margin-right: 10px;
	margin: 20px 0 0 0;
	/*margin: 0;*/
}
.deadline ul.entryformat li dl dd .how_to_btn a {
	display: block;
	width: 100%;
	padding: 20px 0;
	letter-spacing: 0.1em;
	color: #fff;
	font-size: 17px;
	text-decoration: none;
	background-color: #5877ba;
	text-align: center;
	border-radius: 6px; 
    -webkit-border-radius: 6px;
    -moz-border-radius: 6px;
	box-sizing: border-box;
}

.deadline ul.entryformat li dl dd .how_to_btn.group a {
	background-color: #ce7d57;
}
/*ボタン無効の時*/
.deadline ul.entryformat li dl dd .how_to_btn a.grey,
.deadline ul.entryformat li dl dd .how_to_btn.group a.grey {
	background-color: #c8c8c8;
	pointer-events: none;
}
.deadline p.redattention {
	/*text-align: center;*/
	color: #dc3e00 !important;
    font-weight: bold !important;
    padding-top: 10px;
}
.deadline p.redattention span {
	font-size: 0.8em;
	display: inline-block;
	padding-top: 10px;
}



/*古いもの本番公開後消す*/

.deadline table {
	width: 830px;
	margin: 0 auto;
	text-align: left;
	overflow: hidden;
}
.deadline table tr{
	height: 2em;
}
.deadline table tr th.thmiddle{
	vertical-align: top;
}

.deadline table th p{
	width: 145px;
	text-align: justify;
	text-justify: inter-ideograph;
	border-bottom: none;
}
.deadline table th p{
	width: 145px;
	text-align: justify;
	text-justify: inter-ideograph;
}



/* 木目BG
----------------------------------------------------------- */
#question {
	width: 100%;
	height: auto;
	margin: 0 auto;
	background: url(../img/body_bg.jpg) repeat;
	padding-top: 120px;
	padding-bottom: 120px;
}
#question2 {
	width: 100%;
	height: auto;
	padding: 70px 0 0 0;
	margin: 0 auto;
	background: url(../img/body_bg.jpg) repeat;
}
.question_in{
	width: 980px;
	height: auto;
	margin: 0 auto;
/*	margin-top:-77px;
	padding-top: 77px;*/
}
 

#question .question_in h2{
	text-align: center;
	margin: 0 auto 40px;

}

#q1 {
	margin-top:-77px;
	padding-top: 0;

}
#qa1 {
	margin-top:-77px;
	padding-top: 77px;

}
#q2 {
	margin-top:-77px;
	padding-top: 77px;

}
.txtthr {
	text-decoration: line-through;
}

/* メイン
----------------------------------------------------------- */
/*#main {
	width: 980px;
	margin: 0 auto 80px;
}
*/


/* 問題
----------------------------------------------------------- */
.question1_2020 {
	width: 980px;
	height: auto;
	border-top: solid 17px #aa4150;
	margin: 0 auto;
	padding-top: 45px;
	padding-bottom: 60px;
	background-color: #fff;
}
.question2_2020 {
	width: 980px;
	height: auto;
	border-top: solid 17px #aa4150;
	margin: 0 auto;
	padding-top: 45px;
	padding-bottom: 60px;
	margin-top: 60px;
	background-color: #fff;
}
.question1_2019 {
	width: 980px;
	height: auto;
	border-top: solid 17px #4169aa;
	margin: 0 auto;
	padding-top: 45px;
	padding-bottom: 60px;
	background-color: #fff;
}
.question2_2019 {
	width: 980px;
	height: auto;
	border-top: solid 17px #4169aa;
	margin: 0 auto;
	padding-top: 45px;
	padding-bottom: 60px;
	margin-top: 60px;
	background-color: #fff;
}
.question1_2018 {
	width: 980px;
	height: auto;
	border-top: solid 17px #7b4189;
	margin: 0 auto;
	padding-top: 45px;
	padding-bottom: 60px;
	background-color: #fff;
}
.question2_2018 {
	width: 980px;
	height: auto;
	border-top: solid 17px #7b4189;
	margin: 0 auto;
	padding-top: 45px;
	padding-bottom: 60px;
	margin-top: 60px;
	background-color: #fff;
}
.question1_2017 {
	width: 980px;
	height: auto;
	border-top: solid 17px #896144;
	margin: 0 auto;
	padding-top: 45px;
	padding-bottom: 60px;
	background-color: #fff;
}
.question2_2017 {
	width: 980px;
	height: auto;
	border-top: solid 17px #896144;
	margin: 0 auto;
	padding-top: 45px;
	padding-bottom: 60px;
	margin-top: 60px;
	background-color: #fff;
}
.question1_2016 {
	width: 980px;
	height: auto;
	border-top: solid 17px #3f7e70;
	margin: 0 auto;
	padding-top: 45px;
	padding-bottom: 60px;
	background-color: #fff;
}
.question2_2016 {
	width: 980px;
	height: auto;
	border-top: solid 17px #3f7e70;
	margin: 0 auto;
	padding-top: 45px;
	padding-bottom: 60px;
	margin-top: 60px;
	background-color: #fff;
}
.question1_2015 {
	width: 980px;
	height: auto;
	border-top: solid 17px #bfa023;
	margin: 0 auto;
	padding-top: 45px;
	padding-bottom: 60px;
	background-color: #fff;
}
.question2_2015 {
	width: 980px;
	height: auto;
	border-top: solid 17px #bfa023;
	margin: 0 auto;
	padding-top: 45px;
	padding-bottom: 60px;
	margin-top: 60px;
	background-color: #fff;
}
.question1_2020 h3,
.question2_2020 h3,
.question1_2019 h3,
.question2_2019 h3,
.question1_2018 h3,
.question2_2018 h3,
.question1_2017 h3,
.question2_2017 h3,
.question1_2016 h3,
.question2_2016 h3,
.question1_2015 h3,
.question2_2015 h3 {
	margin: 0 0 70px 60px;
}

.q_text {
	width: 860px;
	padding-bottom: 50px;
	margin: 0 auto;
	font-size: 26px;
	line-height: 2;
	letter-spacing: 0.1em;
}

.q_text span {
	font-family: serif;
}

.q_image {
	margin: 40px 0 40px;
	text-align: center;
}

.q_btn {
	width: 400px;
	height: 67px;
	margin: 0 auto;
	margin-bottom: 50px;
	text-align: center;
}
.q_btn a {
	width: 100%;
	display: block;
}

/*新しいボタン*/
.q_btn_text {
	width: 400px;
	height: 67px;
	margin: 0 auto;
	margin-bottom: 50px;
	text-align: center;
}
.q_btn_text {
	width: 400px;
	height: 67px;
	margin: 0 auto;
	margin-bottom: 50px;
	text-align: center;
}
.q_btn_text a {
	width: 100%;
	margin: 0 auto;
	text-align: center;
	display: block;
	letter-spacing: 0.03em;
	padding: 30px 0;
	color: #ffffff;
	font-size: 18px;
	font-weight: normal;
	text-align: center;
	text-decoration: none;
	background-color: #cc3333;
	line-height: 100%;
	border-radius: 6px;        /* CSS3草案 */  
    -webkit-border-radius: 6px;    /* Safari,Google Chrome用 */  
    -moz-border-radius: 6px;   /* Firefox用 */
}
.q_btn_text a:hover {
	opacity: 0.8;
}
.q_btn_text.group a {
	background-color: #ce7d57;
}

.q_btn2 {
	width: 810px;
	height: 67px;
	margin: 0 auto;
	text-align: center;
	margin-top: 10px;
}
.q_btn2 img{
	float: left;
}
.example{
	width: 80%;
	margin: 0 auto;
	padding: 20px;
	background-color: #fff;
	border: solid 1px #000;
	border-radius: 6px;
	overflow: hidden;
	margin-bottom: 50px;
}
.example .ex_title {
	width: 130px;
	float: left;
	text-align: center;
}

.example .ex_text {
	width: 630px;
	padding-left: 10px;
	float: left;
}
.example .ex_text p{
	letter-spacing: 0.1em;
	font-size: 14px;
	line-height: 2em;
}


.example_2017 {
	width: 100%;
	height: auto;
	margin-bottom: 50px;
	overflow: hidden;
}
.example_2017 .fl_2017ex {
	width: 60%;
	height: auto;
	float: left;
	margin-left: 60px;
}
.example_2017 .fl_2017ex p {
	width: 80%;
	height: auto;
	padding-top: 20px;
}
.example_2017 .fr_2017ex {
	width: 30%;
	height: auto;
	float: left;
}
.example_2017 .fr_2017ex img {
	width: 100%;
	height: auto;
}



/*announce
-----------------------------------------------------------*/

.announce {
	width: 100%;
	height: 160px;
	background-color:#dfd69a;
	margin: 0 auto;
	text-align: center;
	padding-top: 30px;
	box-sizing: border-box;
	margin-bottom: 60px;
	margin-top: 60px;

}
.announce img{
	padding-bottom: 20px;
}

.excellentanswer {
	width: 800px;
	height: auto;
	text-align: center;
	margin: 0 auto;
	margin-top: 30px;
}
.excellentanswer img{
	width: 100%;
	height: auto;
	text-align: center;
}
.excellentanswer2 {
	width: 960px;
	height: auto;
	text-align: center;
	margin: 0 auto;
	margin-top: 30px;
}
.excellentanswer2 img{
	width: 100%;
	height: auto;
	text-align: center;
}
.goodanswer p.name_answer {
	width: 800px;
	margin: 0 auto;
	text-align: left;
}

/*2018年解答発表時追加*/
.announce_ranking {
	width: 830px;
	margin: 0 auto;
}
.announce_ranking p {
	width: 100%;
    padding: 10px 0;
    line-height: 180%;
    letter-spacing: 0.05em;
    font-weight: bold;
    font-size: 120%;
    border-bottom: dotted 1px #000;
    margin-bottom: 20px;
}
.announce_ranking dl {
	width: 100%;
	margin-bottom: 60px;
}
.announce_ranking dl,
.announce_ranking dl dt,
.announce_ranking dl dd {
  box-sizing: border-box;
}

.announce_ranking dl dt {
	width: 20%;
	margin: 0;
	text-align: center;
	padding: 5px 0;
	line-height: 180%;
	float: left;
}
.announce_ranking dl .martop {
	margin-top: 20px;
}
.announce_ranking dl dd {
	width: 100%;
	margin: 0;
	margin-left: 20%;
	padding: 5px 0;
	line-height: 180%;
}

.announce_ranking dl dd:after {
  content: '';
  display: block;
  clear: both;
}
.announce_ranking dl dd a {
	width: 20%;
	background-color: #f89e36;
	text-decoration: none;
	padding: 5px 10px;
	margin-left: 20px;
	text-align: center;
	color: #fff;
	border-radius: 6px;
	margin: 8px 0 8px 30px;
	font-size: 80%;
}
.announce_ranking dl dd a:hover {
	opacity: 0.8;
}
.announce_ranking span.tokubetsu {
	padding-left: 20%;
}

/*archive
-----------------------------------------------------------*/
.goodanswer {
	width: 980px;
	height: auto;
	margin: 0 auto;
	padding-bottom: 40px;
	background-color: #fff;
}

.goodanswer h3 {
	width: 980px;
	background-color: #d91a1a;
	text-align: center;
	margin: 0 auto;
	padding: 16px 0;
	margin-top: 30px;
}

.comment {
	width: 980px;
	height: auto;
	margin: 0 auto;
	padding-bottom: 40px;
	background-color: #fff;
}
.comment h3 {
	width: 980px;
	background-color: #f48e09;
	text-align: center;
	margin: 0 auto;
	padding: 16px 0;
}
.goodanswer p,
.comment p{
	width: 90%;
	height: auto;
	margin: 0 auto;
	padding-top: 40px;
	font-family: '小塚明朝 Pro', 'Yu Gothic', YuGothic, 'Hiragino Kaku Gothic Pro', Meiryo, 'MS PGothic', Arial, Osaka, Sans-Serif;
	font-size: 18px;
	line-height: 1.8;
	overflow: hidden;
	text-align: left;
	letter-spacing: .05em;
	color: #222;
}
.prize {
	width: 70%;
	padding: 20px 0;
	margin: 0 auto;
	margin-top: 50px;
	border: solid 1px #000;
	text-align: center;
	font-weight: bold;
	background: url(../img/crown.png) no-repeat 30% 45%;
}

.prize2 {
	width: 70%;
	padding: 20px 0;
	margin: 0 auto;
	margin-top: 50px;
	border: solid 1px #000;
	text-align: center;
	font-weight: bold;
}
.prize2 img, .prize3 img {
	margin-right: 10px;
}
.prize3 {
	width: 90%;
	padding: 20px 0;
	margin: 0 auto;
	margin-top: 50px;
	border: solid 1px #000;
	text-align: center;
	font-weight: bold;
}

.goodanswer p.reference{font-size: 12px;text-align: right;}
.goodanswer p.reference a {
	font-size: 12px;
	color: #000;
}
.comment p span.supText {
font-size: 75.5%;
vertical-align: top;
position: relative;
top: -0.1em;
}

/*古い*/
.archive_title2015 {
	background-color: #bfa023;
	width: 100%;
	height: 100px;
	font-size: 24px;
	text-align: center;
	line-height: 100px;
	margin-bottom: 40px;
	color: #fff;
	font-weight: bold;
	letter-spacing: 0.2em;
	box-sizing: border-box;
}

.archive_title2016 {
	background-color: #3f7e70;
	width: 100%;
	height: 100px;
	font-size: 24px;
	text-align: center;
	line-height: 100px;
	margin-bottom: 40px;
	color: #fff;
	font-weight: bold;
	letter-spacing: 0.2em;
	box-sizing: border-box;
}

.archive_title2017 {
	background-color: #896144;
	width: 100%;
	height: 100px;
	font-size: 24px;
	text-align: center;
	line-height: 100px;
	margin-bottom: 40px;
	color: #fff;
	font-weight: bold;
	letter-spacing: 0.2em;
	box-sizing: border-box;
}

/*新しい設定*/

.archive_title {
	background-color: #bfa023;
	width: 100%;
	height: 100px;
	font-size: 24px;
	text-align: center;
	line-height: 100px;
	margin-bottom: 40px;
	color: #fff;
	font-weight: bold;
	letter-spacing: 0.2em;
	box-sizing: border-box;
}
p.note_age {
	width: 70%;
	text-align: right;
	font-size: 10px;
	padding-top: 10px;
}

.color2015 {
	background-color: #bfa023;
}
.color2016 {
	background-color: #3f7e70;
}
.color2017 {
	background-color: #896144;
}
.color2018 {
	background-color: #7b4189;
}
.color2019 {
	background-color: #4169aa;
}




/* 解答方法
----------------------------------------------------------- */

.how_to {
	width: 100%;
	height: auto;
	padding: 60px 0　120px　0;
	margin: 0 auto;
}

.how_to h2 {
	margin: 0 auto 40px;
	text-align: center;
}

.how_to div{
	width: 980px;
	margin: 0 auto;
}
.how_to dl {
	width: 90%;
	margin: 0 auto;
}

.how_to dt {
	margin: 0 0 3px;
	border: solid 1px #bfbfbf;
	padding: 20px 0 20px 30px;
	margin-bottom: 20px;
	clear: both;
}

.how_to dd {
	line-height: 1.8;
	margin: 10px 0 60px;
	clear: both;
}
.how_to .pdfbox {
	width: 100%;
	overflow: hidden;
	margin: 20px auto 30px auto;
}

.how_to .pdfbox .how_to_btn {
	width: 50%;
	/*margin-right: 10px;*/
	margin: 0 auto;
	text-align: center;
}
.how_to .pdfbox .how_to_btn a{
	display: block;
	width: 100%;
	padding: 20px 0;
	letter-spacing: 0.1em;
	color: #fff;
	font-size: 17px;
	text-decoration: none;
	background-color: #5877ba;
	text-align: center;
	border-radius: 6px;
    -webkit-border-radius: 6px;
    -moz-border-radius: 6px;
	box-sizing: border-box;
	
}
.btn-detail {
	width: 830px;
    margin: 20px 0 0 0;
    margin: 0 auto;
}
.btn-detail a {
    width: 100%;
    background-color: #dfd69a;
    display: block;
    padding: 20px 0;
    letter-spacing: 0.1em;
    color: #fff;
    font-size: 17px;
    text-decoration: none;
    text-align: center;
    border-radius: 6px;
    -webkit-border-radius: 6px;
    -moz-border-radius: 6px;
    box-sizing: border-box;
}
.btn-detail a:hover {
	width: 100%;
	background-color: #f89e36;
}


/*.how_to .pdfbox .how_to_btn a:before {
    content: "";
	display: inline-block;
	width: 1.5em;
	height: 1.5em;
	background: url(https://www.sangaku123.jp/img/icon_pdf.png) no-repeat center left;
	background-size: contain;
	vertical-align: middle;
	margin-right: 10px;
}
*/


/* フォーム
----------------------------------------------------------- */

.form{
	width: 100%;
	height: auto;
	padding: 120px 0;
	margin: 0 auto;
	background: url(../img/header_bg_01.png) repeat;
}

.form_in{
	width: 980px;
	height: auto;
	margin: 0 auto;
}
.form h2 {
	margin: 0 auto 40px;
	text-align: center;
}

.form .required {
	margin: 40px 0 35px 50px;
	font-size: 14px;
	text-align: left;
	color: red;
}

.form .error {
	background-color: #ff6934;
}

.form p.error {
	margin: 0 0 30px 285px;
	color: #ff6934;
	font-size: 24px;
	background: none;
}

.form dl {
	padding: 0 55px;
}

.form dt {
	float: left;
	font-size: 20px;
}

.form dt span {
	font-size: 12px;
}

.form dd {
	margin: 0 0 30px 230px;
	font-size: 14px;
}

.form dd select {
	padding: 10px;
	border: 1px solid #535353;
	font-size: 20px;
}

.form dd .input_l {
	width: 618px;
	padding: 10px;
	border: 1px solid #535353;
	font-size: 20px;
}

.form dd .input_s {
	width: 170px;
	padding: 10px;
	border: 1px solid #535353;
	font-size: 20px;
}

.form dd .input_file {
	font-size: 20px;
}

.form .privacy_policy {
	height: 300px;
	overflow: auto;
	line-height: 1.8;
	padding: 30px 30px 20px;
	border: 1px solid #535353;
	font-size: 12px;
	background: #ffffff;
}

.form .privacy_policy h3,
.form .privacy_policy p {
	margin: 0 0 20px;
	font-weight: normal;
}

.form_agree {
	margin: 0 0 50px 285px;
}

.form_agree input {
	float: left;
	width: 20px;
	height: 20px;
	margin: 3px 10px 0 0;
	border: 1px solid #535353;
}

.form_btn_confirm {
	width: 428px;
	margin: 0 0 0 285px;
	background: #ffffff;
}

.form_btn_confirm input {
	display: block;
	width: 428px;
	height: 81px;
	border: none;
	font-size: 22px;
	font-weight: bold;
	text-align: center;
	color: #fff;
	letter-spacing: 0.2em;
	background-color: #3f7e70;
	cursor: pointer;
}

.form_confirm dl {
	margin: 0 0 50px;
}

.form_confirm dd {
	padding: 10px 20px;
	border: 1px solid #6e4c3e;
	font-size: 20px;
	background: url(../img/form_bg_confirm.png);
}

.form_btn_send {
	float: right;
	width: 242px;
	margin: 0 180px 0 0;
	background: #ffffff;
}

.form_btn_send input {
	display: block;
	width: 242px;
	height: 81px;
	border: none;
	font-size: 22px;
	letter-spacing: 0.2em;
	font-weight: bold;
	text-align: center;
	background-color: #3f7e70;
	color: #fff;
	cursor: pointer;
}

.form_btn_back {
	width: 242px;
	margin: 0 0 0 285px;
	background: #ffffff;
}

.form_btn_back input {
	display: block;
	width: 242px;
	height: 81px;
	border: none;
	color: #ffffff;
	font-size: 22px;
	letter-spacing: 0.2em;
	font-weight: bold;
	text-align: center;
	background-color: #a8a9ab;
	cursor: pointer;
}


/*ブラウザ依存のinput＝file文字変更*/

.original_file_btn {
  position: relative;
  display: inline-block;
  overflow: hidden;
  vertical-align: middle;
  margin: 0 0 5px;
  padding: 5px 10px;
  border: 1px solid #a6a6a6;
  background: -moz-linear-gradient(top, #f7f7f7 0%, #dddddd 100%);
  background: -webkit-linear-gradient(top, #f7f7f7 0%, #dddddd 100%);
  background: linear-gradient(to bottom, #f7f7f7 0%, #dddddd 100%);
  filter: progid:DXImageTransform.Microsoft.gradient( startColorstr='#f7f7f7', endColorstr='#dddddd', GradientType=0 );
  cursor: pointer;
}

.original_file_btn input[type="file"] {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  opacity: 0;
  cursor: pointer;
}

#selectFileName {
  vertical-align: middle;
  margin: 0;
  padding: 0;
  border: none;
  background: none;
}



.thanks {
	padding: 200px 0 0;
	text-align: center;
}
.backtop_btn {
	width: 300px;
	margin: 0 auto;
}
.backtop_btn a {
	display: block;
	width: 300px;
	height: 50px;
	line-height: 58px;
	text-align: center;
	letter-spacing: 0.2em;
	color: #fff;
	font-size: 22px;
	text-decoration: none;
	background-color: #3f7e70;
	cursor: pointer;
}




/* フッタ
----------------------------------------------------------- */
.footer_banner {
	width: 100%;
	height: auto;
	overflow: hidden;
	background-color: #fff;
	margin-top: 60px;
}
.footer_banner ul {
	width: 485px;
	height: 56px;
	margin: 0 auto;
	margin-top: 45px;
	margin-bottom: 45px;
}

#footer {
	clear: both;
	padding: 10px 0;
	color: #000000;
	font-size: 10px;
	text-align: center;
	background: #ffffff;
	border-top: solid 1px #000;
}

.page_top {
	display: none;
	position: fixed;
	right: 20px;
	bottom: 20px;
}





/* errorページ
----------------------------------------------------------- */
#errorpage {
	height: 100%;
	text-align: center;
	padding-top: 300px;
}