@charset "utf-8";

/*=======================================================================
Memo
レスポンシブ対応サイト　ヘッダ・フッターは表示100% outline外
縮小時にデザインが崩れる部分はメディアクエリにて対処（ブレイクポイントは無視）
ボタンのロールオーバー・コンテンツ切り替えはjQueryにて指定
=========================================================================*/

/*リセット・初期設定===========================================*/

* {
  margin: 0px;
  padding: 0px;
}

br { display:none; /*初期設定*/ }
.br_phone , .br_tablet { display: none; }
.br_pc , .br_all { display: block; }

	@media screen and (max-width: 768px) {
		/*タブレット時*/
		.br_phone , .br_pc { display: none; }
		.br_tablet , .br_all { display: block; }
	}

	@media screen and (max-width: 450px) {
		/*スマホ時*/
		.br_tablet , .br_pc { display: none; }
		.br_phone , .br_all { display: block; }
	}

img {
	/*フルードイメージ*/
	max-width: 100%;
 	height: auto;
}

button {
	/*ボタン画像化・chromeでクリック時に表示される青枠を非表示*/
    background:none;
    border:0;
	outline: none;
}

/*コンテンツ表示初期設定 jQueryで表示切替*/
#contents1 , #contents2 , #contents3 , #contents4 { display: none; }


/*枠組み設定==================================================*/

header {	
	/*ヘッダー100%表示*/
	width: 100%;
	overflow:hidden;/*スマホ表示時の崩れ防止*/

	/*タイトル上下左右中央寄せ*/
	display: -webkit-flex;
 	display: flex;
	justify-content: center;
	align-items: center;
	flex-flow: wrap;
	
	/*背景画像全画面表示対応*/
    background-image: url(../images/neko-punch/header.png);
    background-position: center center;
    background-repeat: no-repeat;
    background-size: cover;
}

#outline {
	/*最大枠・中央寄せ設定*/
	max-width: 1200px;
	margin: auto;
	padding: 20px;
}

nav {
	/*ナビゲーション間隔配置・折り返し*/
	display: -webkit-flex;
 	display: flex;
	flex-wrap: wrap;
	justify-content: space-around;
}

main {
	/*メインコンテンツ中央寄せ*/
	text-align: center;
}

footer {
	/*footer100%表示*/	
	width: 100%;
	background-color: #000;
}


/*サイトデザイン設定 header =============================================*/

html {
	background-color: #ffff00;
}

header div h1 {
	/*画像との隙間削除*/
	margin: 0px;
	padding: 0px;
	line-height: 0px;
}

#title {
	min-width: 400px;
}

#picture {
	min-width: 150px;
	padding: 20px;
}

#information {
	/*インフォメーション設定・中央寄せ*/
	text-align: center;
	background-color: #0086ff;
	padding: 8px 0px 4px 0px;
	
	/*ライン*/
	border: solid;
	border-width: 8px 0px;
	border-color: #000;
}

#information p {
	/*インフォメーション文字基本サイズ*/
	color: #fff;
	font-size: 230%;
	font-weight: bolder;
	filter: drop-shadow(2px 2px 2px rgba(0,0,0,0.7));
}

	@media screen and (max-width: 768px) {
		/*縮小時に文字の表示切替*/
		#information p {
			color: #fff;
			font-size: 150%;
			font-weight: bolder;
			padding: 0px 20px;
			filter: drop-shadow(1px 1px 1px rgba(0,0,0,0.7));
		}
	}


/*サイトデザイン設定 nav =============================================*/

nav button {
	/*開催・終了切り替えボタン　基本サイズ*/
	margin: 10px;
}

	@media screen and (max-width: 768px) {
		/*縮小時にマージン調整*/
		nav button {
			margin: 5px 0px;
		}
	}

/*ボタンアニメーション設定 -------------------------*/

#button1 , #button2 , #button3 , #button4
{
    -webkit-transition: all .3s;
    transition: all .3s;
}

#button1:hover , #button2:hover , #button3:hover , #button4:hover
{ cursor : pointer; }

#button1:active , #button2:active , #button3:active , #button4:active
{
	position: relative;
	top: 2px;
}

/*----------------------------------------------*/


/*サイトデザイン設定 contents共通 ============================================*/

#contents1 , #contents2 , #contents3 , #contents4 { margin: 20px 0px;}

#contents1 h2 , #contents2 h2 , #contents3 h2 , #contents4 h2 {
	/*文字：img　背景はcssで指定　開催キャプション基本サイズ*/
	width: 100%;
	background-position: center center;
    background-repeat: no-repeat;
	background-size: contain;
}

/*上へ戻るボタン設定 ---------------------*/

.pagetop {
    position: fixed;
    right: 16px;
    bottom: 16px;
	z-index: 1;
}
 
.pagetop:hover {
	cursor : pointer;
    bottom: 18px;
}

.pagetop:active {
    bottom: 16px;
}

.pagetop a { display: block; }

	@media screen and (max-width: 768px) {
		/*タブレット以下は非表示*/
		.pagetop {
			display: none;
		}
	}

/*----------------------------------------------*/


/*サイトデザイン設定 contents1 =============================================*/

#contents1 h2 { background-image: url(../images/neko-punch/caption1_back.png); }

#contents1 section { margin-top: 40px; }

#contents1 section ul {
	/*表はflex構成・縮小時段落ち・枠の縦幅を広げて揃える*/
	display: -webkit-flex;
	display: flex;
	flex-wrap: nowwrap;
	align-items: stretch;
	
	text-align: left;
	list-style-type: none;
}

#contents1 section ul li {
	flex-grow: 1;
	padding: 10px;
	
	/*文字両端揃え*/
	text-align: justify;
	text-justify: inter-ideograph;
	
	/*ライン*/
	border: solid;
	border-width: 1px;
	border-color: #000;
	background-color: #FFF;
}

#contents1 section ul li:first-child {
	max-width: 100px;
	min-width: 100px;
	
	color: #FFF;
	font-weight: bold;
	background-color: #0086ff;
	
	/*文字縦中央揃え用にflexを入れ子にする*/
	display: -webkit-flex;
	display: flex;
}

	@media screen and (max-width: 768px) {
		/*タブレット以下はサイズ縮小*/
		#contents1 section ul li:first-child {
			max-width: 70px;
			min-width: 70px;
		}
	}

#contents1 section ul li:first-child span{
	/*文字縦横中央揃え*/
	display: block;
	width: 100%;
	align-self: center;
	text-align: center;
}

.syohin-list { margin-top: 20px; }
.syohin1 , .syohin2 , .syohin3{ color: #000 !important; }
.syohin1 { background: linear-gradient(#ffd700 0%, #fff6d3 46%, #ffefaa 55%, #ffd700 100%); }
.syohin2 { background: linear-gradient(#d6d6d6 1%,#efefef 44%,#efefef 55%,#cecece 100%); }
.syohin3 { background: linear-gradient(#e58442 1%,#ffe1c6 46%,#ffca99 56%,#e58442 100%); }


/*サイトデザイン設定 contents2 =============================================*/

#contents2 h2 { background-image: url(../images/neko-punch/caption2_back.png); }
#contents2 h3 , #contents2 h4 { padding: 20px 0px;}
#contents2 h3 { color: #0086ff; }
#contents2 h4 { margin-top: 20px; color:#D37C00; }

.first_h4 {
	/*一番初めのものだけマージン調整（first-childが使えない為クラスで指定）*/
	margin-top: 0px !important;
	padding-top: 0px !important;
}

#contents2-outline {
	/*白枠*/
	background-color: #FFF;
	border: solid;
	border-width: 3px;
	border-color: #000;

	/*両端揃え*/
	text-align: justify;
	text-justify: inter-ideograph;
	
	margin-top: 40px;
	
	/*PC時の左右の隙間*/
	padding: 40px 100px;
}

	@media screen and (max-width: 768px) {
		/*タブレット時の左右の隙間*/
		#contents2-outline {
			padding: 40px 50px;
		}
	}

	@media screen and (max-width: 450px) {
		/*スマホ前後時の左右の隙間*/
		#contents2-outline {
			padding: 0px 20px 40px 20px;
		}
	}

#contents2 section { margin-top: 40px; }
#contents2 section:first-child { margin-top: 0px; }

#anchor-box {
	/*アンカーリンクの枠*/
	display: inline-block;
	text-align: left !important;
	
	padding: 20px;
	margin-top: 20px;
	
	border: solid;
	border-color: #000;
	border-width: 1px;
}

#anchor_1 , #anchor_2 , #anchor_3 {
	/*アンカーリンク設定*/
	display: block;
	color: blue;
	text-decoration-line: underline;
	cursor : pointer;
	margin: 0px 0px 3px 0px;
}

#contents2 li { list-style:none; }

#oubo1 { margin: 20px 0px; }

#oubo1 li {
	margin: 0px 0px 10px 0px;
}

	@media screen and (max-width: 450px) {
		/*スマホ前後時の左右の隙間*/
		#oubo1 li {
			margin: 0px 0px 20px 0px;
		}
	}

#oubo2 li {
	list-style: disc;
	list-style-position: inside;
	
	margin: 0px 0px 5px 0px;
	
	/*PC時の改行の隙間*/
	padding-left: 2em;
    text-indent: -1.5em;
}

	@media screen and (max-width: 450px) {
		/*スマホ前後時の改行の隙間*/
		#oubo2 li {
			padding-left: 2em;
    		text-indent: -1em;
		}
	}

#oubo3 li {
	list-style:decimal;
	list-style-position: inside;
	
	margin: 0px 0px 5px 0px;
	
	/*PC時の改行の隙間*/
	padding-left: 2em;
    text-indent: -1.3em;
}

	@media screen and (max-width: 450px) {
		/*スマホ前後時の改行の隙間*/
		#oubo3 li {
			margin: 0px 0px 20px 0px;
		}
	}

.syohin1_2 , .syohin2_2 , .syohin3_2 , .syohin4_2 {
	display: inline-block;
	min-width: 60px;
	font-weight: bold;
	text-align: center;
	padding: 8px 15px;
	margin: 0px 0px 10px 0px;
	border: solid;
	border-width: 1px;
	border-color: #000;
}
.syohin2_2 , .syohin3_2 , .syohin4_2 { margin-top: 20px; }
.syohin1_2 { background: linear-gradient(#ffd700 0%, #fff6d3 46%, #ffefaa 55%, #ffd700 100%); }
.syohin2_2 { background: linear-gradient(#d6d6d6 1%,#efefef 44%,#efefef 55%,#cecece 100%); }
.syohin3_2 { background: linear-gradient(#e58442 1%,#ffe1c6 46%,#ffca99 56%,#e58442 100%); }


/*サイトデザイン設定 contents3 =============================================*/

#contents3 h2 { background-image: url(../images/neko-punch/caption3_back.png); }


/*サイトデザイン設定 contents4 =============================================*/

#contents4 h2 { background-image: url(../images/neko-punch/caption4_back.png); }

#contents4-outline {
	/*白枠*/
	background-color: #FFF;
	border: solid;
	border-width: 3px;
	border-color: #000;

	/*両端揃え*/
	text-align: justify;
	text-justify: inter-ideograph;
	
	margin-top: 40px;
	
	/*PC時の左右の隙間*/
	padding: 40px 100px;
}

	@media screen and (max-width: 768px) {
		/*タブレット時の左右の隙間*/
		#contents4-outline {
			padding: 0px 50px;
		}
	}

	@media screen and (max-width: 450px) {
		/*スマホ前後時の左右の隙間*/
		#contents4-outline {
			padding: 0px 20px 40px 20px;
		}
	}

#contents4 section { margin-top: 40px; }

.insta-movie_1column {
	/*インスタ動画　優秀賞　１カラム*/
	display: block;
	width: 100%;
	margin:0 auto;
	vertical-align: top;
	margin-bottom: 40px;
}

.insta-movie_2column {
	/*インスタ動画　佳作　重ならないサイズまでは２カラム*/
	display: inline-block;
	width: 49.5%;
	vertical-align: top;
	margin-bottom: 40px;
}

	@media screen and (max-width: 1000px) {
		/*インスタ動画　佳作　重なるサイズになったら１カラムに変更*/
		.insta-movie_1column , .insta-movie_2column {
			display: block;
			width: 100%;
			max-width: 100%;
			margin:0 auto;
			margin-bottom: 40px;
		}
	}

.insta-phone {
	/*インスタ動画　スマホ縮小時の基準点を左上に設定*/
	transform-origin: top left;
}

.answer_text {
	/*第１回感謝画像　基本サイズ*/
	max-width: 1100px;
	height: 255px;
    background-image: url(../images/neko-punch/thanks.png);
    background-position: center center;
    background-repeat: no-repeat;
    background-size: contain;
	margin-bottom: 30px;
}

	@media screen and (max-width: 1000px) {
		/*縮小時に画像差し替え*/
		.answer_text {
			height: 155px;
		}
	}

	@media screen and (max-width: 700px) {
		/*縮小時に画像差し替え*/
		.answer_text {
			max-width: 550px;
			min-height: 260px;
    		background-image: url(../images/neko-punch/thanks_sm.png);
	    	background-position: top center;
    		background-repeat: no-repeat;
			background-size: contain;		
		}
	}

.answer_text2 {
	/*第２回感謝画像　基本サイズ*/
	max-width: 1100px;
	height: 255px;
    background-image: url(../images/neko-punch/thanks2.png);
    background-position: center center;
    background-repeat: no-repeat;
    background-size: contain;
	margin-bottom: 30px;
}

	@media screen and (max-width: 1000px) {
		/*縮小時に画像差し替え*/
		.answer_text2 {
			height: 155px;
		}
	}

	@media screen and (max-width: 700px) {
		/*縮小時に画像差し替え*/
		.answer_text2 {
			max-width: 550px;
			min-height: 260px;
    		background-image: url(../images/neko-punch/thanks2_sm.png);
	    	background-position: top center;
    		background-repeat: no-repeat;
			background-size: contain;		
		}
	}

.answer_text p { display: none; } /*無いよりマシかも？なSEO対策*/
.answer_text2 p { display: none; } /*無いよりマシかも？なSEO対策*/

.syohin1_h3 , .syohin2_h3 {
	font-weight: bold;
	text-align: center;
	padding: 8px 15px;
	margin: 0px 0px 10px 0px;
	border: solid;
	border-width: 1px;
	border-color: #000;
}

.syohin1_h3 { background: linear-gradient(#ffd700 0%, #fff6d3 46%, #ffefaa 55%, #ffd700 100%); }
.syohin2_h3 { background: linear-gradient(#d6d6d6 1%,#efefef 44%,#efefef 55%,#cecece 100%); }



/*サイトデザイン設定 footer =============================================*/

footer p {
	/*copyright文字*/
	color: #FFF;
	text-align: center;
	padding: 20px;
}

.snsbox { text-align: center; }
.snsbox p { display: inline-block; }

