@charset "utf-8";
/* CSS Document */


@font-face {
	 font-family: 'Noto Serif Japanese';
	 font-style: normal;
	 font-weight: 400;
	 src: url(../font/NotoSerifJP-R_sub.eot); /* IE9 */
	 src: url(../font/NotoSerifJP-R_sub.eot?#iefix) format('embedded-opentype'),
				url(../font/NotoSerifJP-R_sub.woff) format('woff'),
				url(../font/NotoSerifJP-R_sub.ttf) format('truetype');
}
@font-face {
	 font-family: 'Noto Serif Japanese';
	 font-style: bold;
	 font-weight: 700;
	 src: url(../font/NotoSerifJP-B_sub.eot); /* IE9 */
	 src: url(../font/NotoSerifJP-B_sub.eot?#iefix) format('embedded-opentype'),
				url(../font/NotoSerifJP-B_sub.woff) format('woff'),
				url(../font/NotoSerifJP-B_sub.ttf) format('truetype');
}


body {
	font-family: "Yu Gothic", "游ゴシック", "YuGothic", "游ゴシック体", "ヒラギノ角ゴ Pro W3", "メイリオ", sans-serif;
	font-size: 16px;
	line-height: 1.87;
  background: url("../img/bg.gif");
}

img {
	vertical-align: top;
	border: 0;
}

a, a:visited {
	color: #56720d;
	text-decoration: underline;
}
a:hover, a:active {
	color: #9eb466;
}

.txt_red{
  color: #ce2b30;
}

.bold{
font-weight: bold;
}

.txt_caution{
  font-size: 14px;
  text-indent: -1em;
  padding-left: 1em;
  line-height: 1.5;
  margin-top: 10px;
}

.f-mincho {
	font-family: "游明朝", "YuMincho", "ヒラギノ明朝 Pro","Hiragino Mincho Pro", "HG明朝E", "ＭＳ Ｐ明朝", "MS PMincho", "MS 明朝",'SimSun', "Noto Serif Japanese", serif;
}

.f-gothic {
	font-family: "Yu Gothic", "游ゴシック", "YuGothic", "游ゴシック体", "ヒラギノ角ゴ Pro W3", "メイリオ", sans-serif;
}

.inner_block {
	width: 840px;
	padding: 68px 0 60px 260px;
	margin: 0 auto;
}

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

.inner_block.border {
	position: relative;
}

.inner_block.border::before {
	content: "";
	position: absolute;
	bottom: 0;
	right: 0;
	width: 840px;
	border-top: 1px solid #cdcdcd;
}

.inner_block-full {
	width: 1100px;
	margin: 0 auto;
}

.inner_block-full::after {
  content: "";
  clear: both;
  display: block;
}

.h-large_black {
	margin-bottom: 44px;
	font-size: 34px;
	text-align: center;
	line-height: 1.5;
	letter-spacing: 0.08em;
}

.h-large_black .en {
	display: block;
	font-size: 14px;
	letter-spacing: 0.12em;
}

.h-white_bg {
	display: table;
	margin: 0 auto 50px;
	padding: 0 25px;
	color: #446933;
	font-size: 30px;
	line-height: 50px;
	letter-spacing: 0.08em;
	background-color: #fff;
}

.sp_br {
	display: none;
}

#btn_pagetop {
	position: fixed;
	bottom: 80px;
	right: 0;
	display: none;
	z-index: 900;
}

#btn_pagetop img {
  width: 49px;
  height: 198px;
}



/* animation */
.hover {
	transition: opacity 0.2s;
}

.hover:hover {
	opacity: 0.6;
}

.btn_s_hover {
	transition: all 0.2s;
}

.btn_s_hover:hover {
	color: #ce2b30 !important;
	border-color: #ce2b30 !important;
	background-image: url(../img/arrow_01_s_on.png) !important;
}

.btn_l_hover {
	transition: all 0.2s;
}

.btn_l_hover:hover {
	color: #ce2b30 !important;
	border-color: #ce2b30 !important;
	background-image: url(../img/arrow_01_l_on.png) !important;
}


/* ---- header ---- */

#header .inner_block-full {
	position: relative;
}

#header a {
	color: #000;
	text-decoration: none;
}

#header #header_title {
	display: table;
	margin: 0 auto;
	padding: 22px 0;
}

#header #header_title img {
  width: 336px;
}

#header #header_title .number{
	display: inline-block;
	padding: 42px 22px 0 0;
	font-size: 16px;
	font-weight: bold;
	vertical-align: top;
	line-height: 1;
}


#header #header_title .year{
	display: inline-block;
	padding: 42px 0 0 22px;
	font-size: 16px;
	font-weight: bold;
	vertical-align: top;
	line-height: 1;
}

#header #btn_hamburger {
	display: none;
}

#header .btn_english_pc {
	position: absolute;
	top: 43px;
	right: 0;
	width: 154px;
	padding-right: 32px;
	background:#fff url(../img/arrow_01_l.png) right 14px top 9px no-repeat;
	background-size: 20px;
	border: 2px solid #000;
	text-align: center;
	line-height: 34px;
	box-sizing: border-box;
}

#header .btn_english_sp {
	display: none;
}


/* ---- header_navi ----*/

#header_navi {
	min-width: 1100px;
	height: 54px;
	padding-top: 13px;
	margin-bottom: 50px;
	background-color: #859a4e;
	color: #fff;
	text-align: center;
	letter-spacing: -.4em;
	box-sizing: border-box;
}

#header_navi a {
	color: #000;
	text-decoration: none;
}

#header_navi li {
	display: inline-block;
	padding: 0 36px;
	letter-spacing: normal;
}

#header_navi a {
	display: block;
	position: relative;
	color: #fff;
}

#header_navi a::after {
	content: "";
	position: absolute;
	bottom: 1px;
	left: 0;
	display: block;
	width: 100%;
	height: 2px;
	background-color: #fff;
	transform: scaleX(0);
	opacity: 0;
}


/* animation */
#header_navi a::after {
	transition: all 0.2s;
	backface-visibility: hidden;
}

#header_navi a:hover::after {
	transform: scaleX(1);
	opacity: 1;
}

#header_navi.top .h_navi_top a::after,
#header_navi.ryuha .h_navi_ryuha a::after,
#header_navi.wagashi .h_navi_wagashi a::after,
#header_navi.event .h_navi_event a::after,
#header_navi.rain .h_navi_rain a::after {
	transform: scaleX(1);
	opacity: 1;
}



/* ---- footer ---- */

#footer {
	text-align: center;
}

#footer .inner_block {
	padding-top: 45px;
	padding-bottom: 40px;
}

#footer .footer_banner {
	margin-top: 45px;
}

#footer .footer_banner img {
  width: 100%;
}

#footer .sponsored {
	margin-top: 62px;
	font-size: 15px;
	letter-spacing: 0.1em;
}

#footer .copyright {
	display: block;
	margin-top: 5px;
	font-size: 12px;
	letter-spacing: 0.08em;
}

#footer .txt_charity span {
	font-size: 14px;
}



/* ---- side_bar ---- */

#side_bar {
	position: fixed;
	top: 0;
	left: 0;
	width: 220px;
	height: 100%;
	padding-left: calc((100% - 1100px) / 2);
	background-color: #859a4e;
	color: #fff;
	overflow: hidden;
}

#side_bar a {
	color: #fff;
	text-decoration: none;
}

#side_bar .sb_title {
	display: block;
}

#side_bar .number {
	margin:22px 0 5px;
	text-align: center;
}

#side_bar .logo {
	display: block;
	margin: 0 auto 15px;
  width: 156px;
}

#side_bar .year {
	margin-bottom: 13px;
	text-align: center;
}

#side_bar #s_navi {
	margin-bottom: 22px;
	border-top: 1px solid #c2cda7;
}

#side_bar #s_navi li {
	border-bottom: 1px solid #c2cda7;
	line-height: 1.5;
}

#side_bar #s_navi li a {
	position: relative;
	display: block;
	padding: 15px 15px 16px 24px;
}

#side_bar #s_navi li a::after {
	content: "";
	position: absolute;
	top: 0;
	right: 0;
	width: 100%;
	height: 100%;
	background: -moz-linear-gradient(left, rgba(255,255,255,0) 0%, rgba(255,255,255,0.25) 100%); /* FF3.6-15 */
	background: -webkit-linear-gradient(left, rgba(255,255,255,0) 0%, rgba(255,255,255,0.25) 100%); /* Chrome10-25,Safari5.1-6 */
	background: linear-gradient(to right, rgba(255,255,255,0) 0%, rgba(255,255,255,0.25) 100%); /* W3C, IE10+, FF16+, Chrome26+, Opera12+, Safari7+ */
	filter: progid:DXImageTransform.Microsoft.gradient( startColorstr='#00ffffff', endColorstr='#66ffffff',GradientType=1 ); /* IE6-9 */
	transition: opacity 0.3s;
	backface-visibility: hidden;
	opacity: 0;
}

#side_bar #s_navi li a:hover::after {
	opacity: 1;
}

#side_bar .btn_english {
	display: block;
	width: 174px;
	padding-left: 14px;
	margin: 0 auto;
	background: url(../img/arrow_01_l.png) right 11px top 45% no-repeat;
	background-size: 20px;
	background-color: #fff;
	color: #000;
	line-height: 38px;
	box-sizing: border-box;
}

#side_bar #s_navi.top .s_navi_top a::after,
#side_bar #s_navi.ryuha .s_navi_ryuha a::after,
#side_bar #s_navi.wagashi .s_navi_wagashi a::after,
#side_bar #s_navi.event .s_navi_event a::after,
#side_bar #s_navi.rain .s_navi_rain a::after {
	opacity: 1;
}


/* animation */
#side_bar {
	transition: opacity 0.2s linear 0s,
							transform 0s 0.5s;
	transform-origin: top;
	opacity: 0;
	transform: scaleY(0.4);
	pointer-events: none;
}

#side_bar.visible {
	transition: all 0.5s 0s;
	opacity: 1;
	transform: scaleY(1);
	pointer-events: auto;
}

#side_bar .side_bar_inner {
	transition: opacity 0.2s 0s,
							transform 0s 0.5s;
	backface-visibility: hidden;
	opacity: 0;
	transform: translateX(10px);
}

#side_bar.visible .side_bar_inner {
	transform: translateX(0px);
	transition: all 0.6s 0.5s;
	opacity: 1;
}


/* map */

.map_desc {
	padding: 24px 0 0;
	font-size: 15px;
	text-align: center;
}

.map_desc li {
	display: inline-block;
	margin-right: 46px;
	line-height: 32px;
}

.map_desc li:last-child {
	margin-right: 0;
}

.map_desc li img {
	height: 32px;
	margin-right: 8px;
}

.map_desc li span {
	margin-right: 8px;
}



/* ==== Smart phone ==== */

@media screen and ( max-width:640px) {

	body {
		padding-top: 15.2%;
		font-size: calc(100vw / ( 320 / 13 ));
		line-height: 1.6;
	}

	img {
		max-width: 100%;
	}

	.inner_block {
		width: auto;
		padding: 10% 4.7% 10.9%;
	}

	.inner_block.border::before {
		width: 100%;
	}

	.inner_block-full {
		width: auto;
	}

	.h-large_black {
		margin-bottom: 6.6%;
		font-size: calc(100vw / ( 320 / 20 ));
	}

	.h-large_black .en {
		margin-top: -3px;
		font-size: calc(100vw / ( 320 / 10 ));
	}

	.h-white_bg {
		margin: 0 auto 10.3%;
		padding: 1% 3.4%;
		font-size: calc(100vw / ( 320 / 20 ));
		font-weight: bold;
		line-height: 1.4;
	}

	.pc_br {
		display: none;
	}

	.sp_br {
		display: inline;
	}

	.map_wrapper {
		position: relative;
		height: 0;
		padding-bottom: 70.3%;
	}

	#btn_pagetop {
		bottom: 15px;
		width: 9.4%;
		display: none;
	}

  #btn_pagetop img {
    width: 100%;
    height: auto;
  }


	/* ---- header ---- */

	#header {
		position: fixed;
		top: 0;
		width: 100%;
		z-index: 1001;
		background-color: #fff;
	}

	#header .inner_block-full {
		position: relative;
		border-bottom: 1px solid #000;
	}

	#header #header_title {
		padding: 2.8% 0 3.6%;
		text-align: center;
	}

	#header #header_title .logo {
		width: 38.4%;
	}

	#header #header_title .number {
		padding: 14px 7px 0 0;
		font-size: calc(100vw / ( 320 / 8 ));
	}

	#header #header_title .year{
		padding: 14px 0 0 7px;
		font-size: calc(100vw / ( 320 / 8 ));
	}

	#header .btn_english_pc {
		display: none;
	}

	#header .btn_english_sp {
		position: absolute;
		top: 30%;
		right: 3.4%;
		display: block;
		border-bottom: 1px solid #000;
		font-size: calc(100vw / ( 320 / 11 ));
		line-height: 1.4;
	}

	#header #btn_hamburger {
		display: block;
		position: absolute;
		top: 15.5%;
		left: 4.1%;
		width: 8.1%;
		height: 0;
		padding-bottom: 9.7%;
		background: url(../img/header_btn_hamburger.png) 0 0 no-repeat;
		background-size: 100%;
		text-indent: -9999px;
		overflow: hidden;
		transition: background 0.3s;
		backface-visibility: hidden;
	}

	#header #btn_hamburger.active {
		background-image: url(../img/header_btn_hamburger_close.png);
	}


	/* ---- header_navi ----*/

	#header_navi {
		position: fixed;
		top: 0;
		left: 0;
		width: 100%;
		min-width: 0;
		height: auto;
		padding-top: 15.3%;
		margin-bottom: 0;
		text-align: left;
		letter-spacing: normal;
		box-sizing: border-box;
		z-index: 1000;
		transition: all 0.3s;
		backface-visibility: hidden;
		opacity: 0;
		transform: translateY(-15px) scaleY(0.95);
		transform-origin: top;
		pointer-events: none;
	}

	#header_navi.active {
		opacity: 1;
		transform: translateY(0px) scaleY(1);
		pointer-events: auto;
	}

	#header_navi li {
		display: block;
		padding: 0;
		border-bottom: 1px solid #c2cda7;
		font-size: calc(100vw / ( 320 / 14 ));
	}

	#header_navi li:last-child {
		border-bottom: none;
	}

	#header_navi a {
		display: block;
		padding: 4.4% 9.4% 4.4% 6.6%;
		background: url(../img/gNavi_arrow_sp.png) right 4.4% center no-repeat;
		background-size: 2%;
	}

	#header_navi a::after {
		display: none;
	}


	/* ---- footer ---- */

	#footer {
		text-align: left;
	}

	#footer .inner_block {
		padding-top: 10.3%;
		padding-bottom: 6.2%;
	}

	#footer .footer_banner {
		margin-top: 10.3%;
	}

	#footer .sponsored {
		margin-top: 9.1%;
		font-size: calc(100vw / ( 320 / 11 ));
		text-align: center;
	}

	#footer .copyright {
		margin-top: 3%;
		font-size: calc(100vw / ( 320 / 11 ));
		text-align: center;
	}

  #footer .txt_charity span {
		font-size: calc(100vw / ( 320 / 10 ));
  }



	/* ---- side_bar ---- */

	#side_bar {
		display: none;
	}


	/* map */

	.map_desc {
		padding: 2% 0 0;
		font-size: calc(100vw / ( 320 / 10 ));
		text-align: left;
	}

	.inner_block-full .map_desc {
		margin: 0 4.7%;
	}

	.map_desc li {
		margin: 8px 21px 0 0;
		line-height: 20px;
	}

	.map_desc li:nth-child(2) {
		margin-right: 0;
	}

	.map_desc li img {
		height: 20px;
		margin-right: 6px;
	}

	.map_desc li span {
		margin-right: 6px;
	}

}
