
/* -------------------------------------
GANREF
Copyright (c) 2018 Impress Corporation. All rights reserved.
------------------------------------- */

/* http://meyerweb.com/eric/tools/css/reset/ 
   v2.0 | 20110126
   License: none (public domain)
*/
 
html, body, div, span, applet, object, iframe,
h1, h2, h3, h4, h5, h6, blockquote, pre,
a, abbr, acronym, address, big, cite, code,
del, dfn, em, img, ins, kbd, q, s, samp,
small, strike, strong, sub, sup, tt, var,
b, u, i, center,
dl, dt, dd, ol, ul, li,
fieldset, form, label, legend,
table, caption, tbody, tfoot, thead, tr, th, td,
intro, aside, canvas, details, embed, 
figure, figcaption, hgroup, 
menu, nav, output, ruby, section, summary,
time, mark, audio, video {
margin: 0;
padding: 0;
border: 0;
vertical-align: baseline;
}
/* HTML5 display-role reset for older browsers */
intro, aside, details, figcaption, figure, 
footer, header, hgroup, menu, nav, section {display: block;}
body {
line-height: 1.4;
-webkit-text-size-adjust: 110%;
}
ol, ul {list-style: none;}
blockquote, q {quotes: none;}
blockquote:before, blockquote:after,
q:before, q:after {
content: '';
content: none;
}


table {
border-collapse: collapse;
border-spacing: 0;
}

b, strong {font-weight:bold;}

img {vertical-align:bottom;}

figure {
margin: 0;
text-align: center;
}

h3 {font-size: 1rem;}

/***********************************************************************/

.onlyPC {display: none !important;}

.sns {
display: flex;
justify-content: center;
margin-bottom: 20px;
}

.sp-mb1,
.mb1 {margin-bottom: 1rem;}

.mb10px {margin-bottom: 10px;}

.mb0 {margin-bottom: 0 !important;}

.center {text-align: center !important;}


/***********************************************************************/

.sp-page * {
/*font-family: "-apple-system", "Helvetica Neue", "Yu Gothic", YuGothic, Verdana, Meiryo, "M+ 1p", sans-serif;*/
}

.sp-page {
margin: 10px;
position: relative;
font-feature-settings: "palt";
}

/* === .zoom === */
.zoom{
display:inline-block;
position:relative;
vertical-align:top;
}

.zoom:after{
content:"";
width:22px;
height:22px;
background:url(img/zoom.png) no-repeat 0 0;
position:absolute; bottom:5px; right:5px;
}
.zoom:hover:after{ background-position:-22px 0; }
span.zoom:after{ display:none; }

/**/

.ext-link::before {
display: inline-block;
font: normal normal normal 14px/1 FontAwesome;
font-size: inherit;
text-rendering: auto;
-webkit-font-smoothing: antialiased;
-moz-osx-font-smoothing: grayscale;
transform: translate(0, 0);
content: "";
margin-right: 0.2rem;
}

.notice {
padding: 10px;
border: 2px dotted #ccc;
border-radius: 6px;
}

p.notes,
ul.notes li{
font-size:0.9rem;
text-indent:-1rem;
padding-left:1rem;
line-height: 1.2rem;
margin-bottom: 0.4rem;
}

p.notes::before,
ul.notes li::before {
content: '※';
margin-right: 0.1rem;
}

#title {
margin-bottom: 1rem;
position: relative;
}

#title>img {
width: 1400%;
}


#title p {
text-indent: 100%;
white-space: nowrap;
overflow: hidden;
background: url(img/title_cp.png) no-repeat center bottom;
background-size: contain;
margin: 10px;
font-size: 0px;
}

#title p::before {
content:"";
display: block;
padding-top: 7%;
}


h1 {
display: block;
text-indent: 100%;
white-space: nowrap;
overflow: hidden;
background: url(img/h1_sp.png) no-repeat 50% 50%;
background-size: contain;
margin-bottom: 0;
font-size: 0;
}


h1::before {
content:"";
display: block;
padding-top: 35%;
}

h2 {
font-size: 1.2rem;
font-weight: bold;
padding: 10px 9px 9px;
border:1px solid #6bd77c;
border-width: 1px 0 1px 0;
margin-bottom: 1rem;
margin-top: 1rem;
background: #ecfaef;
}

h3{
font-size: 1rem;
font-weight: bold;
margin-bottom: 1rem;
}

.contents hr {
border-width: 1px 0 0 0;
border-style: solid;
border-color: #ccc;
margin: 2rem 0;
}

/**/

#sp-info {
border: 2px solid #ffed00;
padding: 6px;
border-radius: 6px;
position: relative;
margin: 1rem 0;
}

#sp-info>b {
color: #000;
text-align: center;
display: block;
font-size: 1rem;
border-radius: 6px;
background: #ffed00;
padding: 5px;
margin-bottom: 10px;
}

#sp-info>p {
font-size: 1rem;
line-height: 1.4rem;
}

#sp-info dl:first-of-type {
border-bottom: 2px dotted #ccc;
margin-top: 0;
padding-bottom: 10px;
margin-bottom: 10px;
}

#sp-info dl dt {
text-align: center;
}

#sp-info dl dt img{
max-width: 90%;
margin-bottom: 5px;
}

.sp-form {
    border: 1px dashed #6bd77c;
	padding: 10px;
	margin: 1.5rem 0;
	border-radius: 8px;
	background: #fffae0;
}

.sp-form p {
	margin: 0.3rem 0 0 0;
}

.entry-btn{
	text-align:center;
	margin-bottom:1em;
}
.entry-btn span,
.entry-btn a{
	display:block;
	font-size:110%;
	font-weight:bold;
	text-decoration:none;
	padding:8px 40px;
	border:1px solid #ccc;
	border-radius:6px;
}
.entry-btn span{
	color:#888;
	background:#eee;
}
.entry-btn a{
	color:#fff;
	padding:8px;
	background:-moz-linear-gradient(top, #0043ca, #003091);
	background:-webkit-gradient(linear,left bottom,left top,color-stop(0, #003091),color-stop(1, #0043ca));
	background:linear-gradient(to top, #0043ca, #003091);
	filter: progid:DXImageTransform.Microsoft.gradient(GradientType=0,startColorstr='#0043ca', endColorstr='#003091');
	-ms-filter: "progid:DXImageTransform.Microsoft.gradient(GradientType=0,startColorstr='#0043ca', endColorstr='#003091')";
	zoom:1;
	border-color:#003091;
	box-shadow:1px 1px 3px rgba(0,0,0,.6),
		1px 1px 0 rgba(255,255,255,.5) inset,
		-1px -1px 0 rgba(255,255,255,.2) inset;
}
/*****************************************************************/


/* ////////// requirements ////////////////////////////// */

#requirements dt{
font-weight:bold;
margin:0.5em 0;
padding:3px 0 3px 6px;
border-left:6px solid #6bd77c;
}

#requirements dd{
padding-left:12px;
}

#requirements li{
list-style-type:disc;
margin:0.3em 0 0.7em 1.5em;
line-height: 1.4rem;
}

#requirements li small{ display:block; margin:0.5em 0; }

#requirements li small img{ margin-top:0.3em; }

#requirements small{ font-size:90%; }

#requirements dl dd ul li p {
text-align: center;
font-weight: bold;
margin: 10px 0 5px;
font-size: 0.9rem;
}


/* ////////// rule ////////////////////////////// */

#rule {margin-bottom: 2rem;}

#rule li{
list-style-type:disc;
margin:0.4rem 0 0.8rem 1.5rem;
line-height: 1.4rem;
}

#rule li b{
font-weight:normal;
color:#c00;
}

#rule p {
margin: 0.4rem 0 0.8rem 1.5rem;
line-height: 1.4rem;
}

#rule h3 {
margin: 1.5rem 0 0.4rem;
}


/* ////////// method ////////////////////////////// */

#method .flow {
counter-reset:number;

}

#method .flow li b {
background: #ecfaef;
display: block;
line-height: 1.7rem;
border-radius: 3px;
}

#method .flow li b::before {
counter-increment: number;
content: counter(number);
background: #6bd77c;
display: inline-block;
width: 20px;
height: 20px;
text-align: center;
border-radius: 50%;
color: #fff;
margin-right: 5px; 
line-height: 20px;
font-size: 14px;
vertical-align: middle;
margin-bottom: 2px;
}

#method ul p,
#method .flow p {
margin:0.5em 0 0 0;
line-height: 1.4rem;
font-size: 1rem;;
}

#method .flow li {
border: 1px solid #ccc;
border-radius: 8px;
padding: 5px;
position:relative;
text-align:center;
list-style-type:none !important;
margin:0 0 10px 0;
}

#method .flow li em {
font-weight: bold;
font-style: normal;
}

#method .flow li .keyword {
display: inline-block;
padding: 8px 5px 5px;
border: 1px dashed #bbb;
border-radius: 6px;
}

#method .flow li .keyword em {
color: #55adff;
font-size: 1rem;
}

#method .flow li .keyword:last-of-type em {
color: #f9636a;
}

#method ul {margin: 1rem;}

#method li.edit {
border-top:1px dashed #ccc;
text-align:left;
margin:0 0 10px 0;
/*border-radius: 8px;*/
padding-top: 10px;
}

#method li .image-box {
display: -webkit-flex;
display: -moz-flex;
display: -ms-flex;
display: -o-flex;
display: flex;
flex-wrap: wrap;
justify-content: space-around;
margin-top: 1rem;
}

#method li .image-box img {margin-bottom: 1rem;}


/* lead ***************************************************************/

#lead {
border: 2px solid #6bd77c;
padding: 6px;
border-radius: 6px;
position: relative;
margin: 1rem 0;
}

#lead>b {
color: #fff;
text-align: center;
display: block;
font-size: 1rem;
border-radius: 6px;
background: #6bd77c;
padding: 5px;
margin-bottom: 10px;
}

#lead>p {
font-size: 1rem;
line-height: 1.4rem;
}

/* === .photos === */
#lead .photos {
text-align: center;
border-top: 2px dotted #6bd77c; 
margin-top: 1rem; 
padding-top: 1rem;
}

#lead .photos ul{
margin: 1rem 0 10px;
display: -webkit-flex;
display: -moz-flex;
display: -ms-flex;
display: -o-flex;
display: flex;
flex-wrap: wrap;
justify-content: space-between;
}

#lead .photos ul li {
flex-basis: 24%;
margin-bottom: 10px;
}

#lead .photos ul li a{
position: relative;
display: block;
border:1px solid #ccc;
width: 100%;
background: #fff;
}

#lead .photos ul li a:hover {
border-color:#03f;
}
#lead .photos ul li a::before{
content:"";
display: block;
padding-top: 100%; /* 高さを幅の100%に固定 */
}

#lead .photos ul li a img {
display: block;
position: absolute;
top: 0;
left: 0;
bottom: 0;
right: 0;
max-width: 96%;
max-height: 96%;
box-sizing: border-box;
margin: auto;
}

#lead ul.theme {
display: -webkit-flex;
display: -moz-flex;
display: -ms-flex;
display: -o-flex;
display: flex;
justify-content: center;
margin-bottom: 1rem;
flex-wrap: wrap;
}

#lead ul.theme li {
display: inline-block;
border: 1px solid #fc0;
padding: 10px;
border-radius: 6px;
margin: 5px;
font-weight: bold;
}


/* prize ***************************************************************/

#prize {
background: #fff073 url(img/bg.gif) no-repeat 0 0;
padding: 10px;
border-radius: 8px;
text-align: center;
font-size: 1.1em;
text-shadow: 1px 1px 1px #CCC;
}


#prize b {
display: block;
margin: 0 0 10px;
border-radius: 8px;
background: #fff;
padding: 5px;
font-size: 1.2em;
}

#prize i {
font-style: normal;
font-size: 0.9rem;
font-style: normal;
}


/*upload*******************************************************************/

#upload {
border-top: 4px double #6bd77c;
padding-top: 1rem;
margin-bottom: 1rem;
}

#upload h3 {
text-align: center;
font-size: 1.2rem;
}

.upload-btn {
margin-bottom: 1rem;
text-align: center;
}

.upload-btn a {
display: block;
padding: 0.5rem 1rem;
background-color: #FDE823;
border-radius: 6px;
font-weight: bold;
color: #000;
font-size:1rem;
margin: 5px 10px;
text-decoration: none;
}

.upload-btn span {
display: block;
font-weight:bold;
text-decoration:none;
padding: 0.5rem 1rem;
border:1px solid #ccc;
border-radius:6px;
background:#eee;
}

.upload-btn a:hover {
background-color: #ffef5b;
}


/*yamakei*******************************************************************/

#yamakei {
background: #eee;
padding: 10px;
margin-bottom: 1.5rem;
}

#yamakei h3 {
padding-left: 6px;
margin-bottom: 6px;
border-left: 4px solid #999;
}

#yamakei p:last-of-type {
margin-bottom: 0;
}

.contents #subtitle {
border: 2px dotted #ccc;
border-radius: 6px;
font-weight: bold;
text-align: center;
font-size: 1.2rem;
padding: 10px;
margin-bottom: 20px;
}


/* ////////// results ////////////////////////////// */

.results #title { margin-bottom: 0;}

.results #title+h2 { 
padding: 5px;
color: #fff;
background: #6bd77c;
text-align: center;
font-size: 1.6rem;
border:none;
margin: 0 0 1rem;
}

.results #title+h2:before{
content:"";
display:inline-block;
width:34px;
height:30px;
vertical-align:middle;
margin:0 10px;
background:url(img/crc_red.png) no-repeat 0 0;
background-size: contain;
}

.results #title+h2:after{
content:"";
display:inline-block;
width:34px;
height:30px;
vertical-align:middle;
background:url(img/crc_green.png) no-repeat 0 0;
margin:0 10px;
background-size: contain;
}

.results #lead {overflow: hidden;}

.results #lead h3 {
font-weight: bold;
text-align: center;
margin-top: 0;
border-bottom: 1px dotted #666;
padding-bottom: 5px;
margin-bottom: 10px;
}

.results #lead p {
margin-bottom: 0;
}

.results #lead p img {
float: right;
margin: 0 0 10px 10px;
width: 200px;
}

.results #calendar {
border: 2px dotted #6bd77c;
padding: 10px;
border-radius: 8px;
overflow: hidden;
}

.results #calendar h3 {
margin-top: 0;
border-bottom: 1px dotted #666;
padding-bottom: 5px;
margin-bottom: 10px;
text-align: center;
color: #11CB2E;
font-size: 1rem;
}

.results #calendar img {
display: block;
dtext-align: center;
margin: 0 auto 10px;
}


/* ////////// prize-contents ////////////////////////////// */

#prize-contents {
margin-top: 1rem;
}

#prize-contents .work-wrapper {letter-spacing: -0.4em;}

#prize-contents .work-wrapper .work{ 
margin-bottom:1.5em; 
overflow: hidden;
vertical-align: top;
letter-spacing: normal;
}

#prize-contents .work-item{
margin:0;
background:#eee;
display: block;
position:relative;
vertical-align: middle;
text-align: center;
padding: 5px;
}

#prize-contents .work-item.mb1 {
margin-bottom: 1rem;
}

#prize-contents .work-item img{
display:block;  
border:4px solid #fff;
-webkit-box-shadow: 0 0 3px 0 #cccccc;
box-shadow: 0 0 3px 0 #cccccc;
box-sizing: border-box;
margin: auto;
}

#prize-contents .work .data{ 
font-size:0.9rem;
line-height:1.2rem;
background:#eee;
padding:0 5px 5px;
}

#prize-contents .work h4{
font-size:1.2rem;
font-weight:bold;
margin:0 0 0.2rem 0;
display: inline-block;
}

#prize-contents .work-data dl{ clear:both;}

#prize-contents .work-data dt{
margin-bottom:0.2rem;
border-left:4px solid #666;
padding-left: 6px;
margin-top: 1rem;
font-weight: bold;
line-height: 1.2rem;
}

#prize-contents .work-data dt:first-child{
margin-top:0;
}

#prize-contents .work-data dd{
display:inline;
line-height:1.4;
}

#prize-contents .work-data .detail{
position:absolute; top:3px; right:0;
margin:0;
}

#prize-contents .work-data .detail a{
font-size:85%;
font-weight:bold;
text-decoration:none;
color:#fff;
padding:2px 6px;
background:#1FB1D5;
border:1px solid #1FB1D5;
border-radius:5px;
}

#prize-contents .work-data .detail a:hover{
color:#0036ff;
background:#fff;
border-color:#0036ff;
}

#prize-contents .prize-2nd{
padding-top:40px
}

#prize-contents .prize-3rd{
padding-top:20px
}

#prize-contents #theme .divAnchor {
margin: auto;
text-align: center;
display: -webkit-flex;
display: -moz-flex;
display: -ms-flex;
display: -o-flex;
display: flex;
flex-wrap: wrap;
justify-content: center;
margin-bottom: 1.5rem;
}

#prize-contents #theme .divAnchor li {
flex-basis: 45%;
margin: 5px;
}

#prize-contents #theme .divAnchor li a {
display: block;
font-size: 1.2rem;
padding: 10px 5px;
font-weight: bold;
border-radius: 6px;
text-align: center;
text-decoration: none;
}

#prize-contents #theme .divAnchor li a::before {
display: inline-block;
font: normal normal normal 14px/1 FontAwesome;
font-size: inherit;
text-rendering: auto;
-webkit-font-smoothing: antialiased;
-moz-osx-font-smoothing: grayscale;
transform: translate(0, 0);
content: "";
margin-right: 0.2rem;
}


#prize-contents #theme .divAnchor li a.neko {
border: 2px solid #f8685d;
color: #f8685d;
}

#prize-contents #theme .divAnchor li a.inko {
border: 2px solid #55adff;
color: #55adff;
}

#prize-contents #theme .divAnchor li a.issho {
border: 2px solid #ffb207;
color: #ffb207;
}

#prize-contents #theme .divAnchor li a.shiba {
border: 2px solid #2ed16d;
color: #2ed16d;
}

#prize-contents h2 {
font-size: 1.2rem;
margin-top: 2rem;
line-height: 1.5rem;
padding: 10px 5px 9px;
}

#prize-contents #inko h2 {
border:1px solid #55adff;
background: #ddefff;
border-width: 1px 0 1px 0;
}

#prize-contents #neko h2 {
border: 1px solid #ffa99e;
background: #fff6f4;
border-width: 1px 0 1px 0;
}

#prize-contents #issho h2 {
border: 1px solid #f6d95d;
background: #fdf7de;
border-width: 1px 0 1px 0;
}

#prize-contents #shiba h2 {
border: 1px solid #66eea7;
background: #e0fbed;
border-width: 1px 0 1px 0;
}

#prize-contents h2:before {
display: inline-block;
background: #0ba29a;
border-radius: 50%;
margin-right: 5px;
color: #fff;
line-height: 1.5rem;
width: 1.5rem;
text-align: center;
font-size: 1rem;
vertical-align: middle;
}

#prize-contents h3{
font-size:1.3rem;
font-weight:bold;
color:#000;
border:1px solid #fff;
border-width:1px 0;
background:url(img/bg_bl.png) repeat-x 0 0;
margin-bottom: 20px;
}

#prize-contents h3 div {
height:66px;
display:table-cell;
vertical-align:middle;
line-height:1.2;
padding-left:76px;
background-repeat:no-repeat;
background-position:3px 3px;
background-size:65px 60px;
padding-right:10px;
}

#prize-contents h3 div span {
color: #666;
font-weight: normal;
font-size: 0.8rem;
line-height: 1rem;
}

#prize-contents .prize-1st h3 div {background-image:url(img/prize_1st_s.png);}
#prize-contents .prize-2nd h3 div {background-image:url(img/prize_2nd_s.png);}
#prize-contents .prize-3rd h3 div {background-image:url(img/prize_3rd_s.png);}
#prize-contents .prize-opi h3 div {background-image:url(img/prize_opi_s.png);}

#prize-contents #neko h3{
background:url(img/bg_pi.png) no-repeat 0 0;
}

#prize-contents #issho h3{
background:url(img/bg_ye.png) no-repeat 0 0;
}

#prize-contents #shiba h3{
background:url(img/bg_gr.png) no-repeat 0 0;
}

#prize-contents .prize-1st,
#prize-contents .prize-2nd,
#prize-contents .prize-3rd{ overflow:hidden; }

#prize-contents .prize-1st h3 span:before{ background-position:0 0; }
#prize-contents .prize-2nd h3 span:before{ background-position:-100px 0; }
#prize-contents .prize-3rd h3 span:before{ background-position:-200px 0; }

#prize-contents .thumbListx4 {
margin-bottom:1em;  
display: -webkit-flex;
display: -moz-flex;
display: -ms-flex;
display: -o-flex;
display: flex;
flex-wrap: wrap;
}


#prize-contents .thumbListx4 li {
text-align:center;
font-size: 0.7rem;
}



@media screen and (max-width: 375px) {
#prize-contents .thumbListx4 li {
margin-bottom:8px;
flex-basis: 32%;
margin-right:1.7%;
}

#prize-contents .thumbListx4 li:nth-child(3n){
margin-right:0;
}
}

@media screen and (min-width: 376px) and (max-width:589px) {
#prize-contents .thumbListx4 li {
margin-bottom:10px;
flex-basis: 23.5%;
margin-right:1.8%;
}

#prize-contents .thumbListx4 li:nth-child(4n){
margin-right:0;
}
}

@media screen and (min-width: 590px) {
#prize-contents .thumbListx4 li {
margin-bottom:10px;
flex-basis: 18%;
margin-right:1.8%;
}

#prize-contents .thumbListx4 li:nth-child(5n){
margin-right:0;
}
}


#prize-contents .thumbListx4 li a.thumb150 {
margin: 0 auto 5px;
display: block;

}

#prize-contents .thumbListx4 li .thumb150 {
width: 100%;
display: block;
position:relative;
vertical-align: middle;
text-align: center;
border:1px solid #e9e9e9;
border-top-color:#efefef;
border-left-color:#efefef;
background-color:#fff;
}


#prize-contents .thumbListx4 li .thumb150:before {
content:"";
display: block;
padding-top: 100%;
}


#prize-contents .thumbListx4 li .thumb150 img{
/*display:block;  */
position:absolute;
top: 0;
left: 0;
right: 0;
bottom: 0;
margin: auto;
max-width:96%;
max-height:96%;
}


#prize-contents .thumbListx4 li p {
font-size: 0.9rem;
word-break: break-all;
margin-bottom: 0;
}

#prize-contents .thumbListx4 li p span {
font-size: 0.8rem;
}

#prize-contents #lead p {
margin-bottom: 0;
}

.prize-opi .work .work-data .about {
font-size: 0.9rem;
border: 2px dotted #f90;
padding: 5px;
margin-top: 1rem;
font-weight: bold;
color: #666;
}
