@charset "utf-8";

body,div,dl,dt,dd,ul,ol,li,h1,h2,h3,h4,h5,h6,pre,form,fieldset,p,blockquote,th,td,main,figure{margin:0;padding:0}table{font-size:100%;font-family:inherit}fieldset,img{border:0}img,svg{vertical-align:middle}address,caption,cite,code,dfn,em,th,var{font-style:normal;font-weight:400}ol,ul{list-style:none}caption,th{text-align:left}h1,h2,h3,h4,h5,h6{font-size:100%}q:before,q:after{content:''}abbr,acronym{border:0}select,input,textarea{font-size:100%}header,footer,nav,main,section,article,figure,aside{display:block}.clearfix:after,.row:after{content:"";display:table;clear:both}


/* ========================================================
	template.css => テンプレート用CSS
======================================================== */
html {
	font-size: 62.5%;
}
body {
	background-color: #fff;
	font-size: 10px;
	font-size: 1rem;
	line-height: 1.8;
	color: #000000;
	word-wrap: break-word;
	overflow-wrap: break-word;

	font-family: "游ゴシック", YuGothic, "Hiragino Kaku Gothic ProN", "ヒラギノ角ゴ ProN", "Hiragino Kaku Gothic Pro", "ヒラギノ角ゴ Pro W3", "メイリオ", "Meiryo", Verdana, Arial, Helvetica, sans-serif;
	font-weight: 400;
	-webkit-text-size-adjust: 100%;
	text-size-adjust: 100%;
}
*,
*::before,
*::after {
	-webkit-box-sizing: border-box;
	-moz-box-sizing: border-box;
	box-sizing: border-box;
}

a[href] {
	color: #000000;
	text-decoration: underline;
	outline: none;
}
a[href]:hover {
	text-decoration: none;
}
a[href].a_reverse,
.a_reverse a[href] {
	text-decoration: none;
}
@media screen and (min-width: 768px) {
	a[href].a_reverse:hover,
	.a_reverse a[href]:hover {
		text-decoration: underline;
	}
}

@media screen and (min-width: 768px), print {
}
@media screen and (max-width: 767px) {
	body {
		font-family: "Hiragino Kaku Gothic ProN", "ヒラギノ角ゴ ProN", "Hiragino Kaku Gothic Pro", "ヒラギノ角ゴ Pro W3", "メイリオ", "Meiryo", Verdana, Arial, Helvetica, sans-serif;
	}
	img {
		max-width: 100%;
		height: auto;
	}
}
.hidden {
	display: none;
}
.slick-slider * {
	outline: none;
}


/* pc / sp
============================================================================================================ */
@media screen and (min-width: 768px), print {
	.sp {
		display: none !important;
	}
}
@media screen and (max-width: 767px) {
	.pc {
		display: none !important;
	}
	.sp_break {
		position: relative;
		display: block;
		height: 0;
		overflow: hidden;
	}
}

/* transition
============================================================================================================ */
@media screen and (min-width: 768px) {
	body.init a[href],
	body.init a[href]::before,
	body.init a[href]::after,
	body.init button,
	body.init button::before,
	body.init button::after,
	body.init .basic_trs,
	body.init .basic_trs::before,
	body.init .basic_trs::after,
	body.init .basic_trs *,
	body.init .basic_trs *::before,
	body.init .basic_trs *::after {
		transition: color 0.2s ease-in-out, background 0.2s ease-in-out, border 0.2s ease-in-out, opacity 0.2s ease-in-out;
	}
	body.init a svg {
		transition: fill 0.2s ease-in-out;
	}
}


/* font family
============================================================================================================ */
.ff_en {
	font-family: din-2014, sans-serif;
	font-weight: 700;
	font-style: normal;
}

/* object-fit
============================================================================================================ */
img.of {
	position: absolute;
	top: 0;
	left: 0;
	width: 100%;
	height: 100%;
	object-fit: cover;
	font-family: 'object-fit: cover;';
}

/* hover
============================================================================================================ */
@media screen and (min-width: 768px), print {
	body.init a[href] .hv_op {
		transition: opacity 0.2s;
	}
	a[href].hv_op:hover,
	a[href]:hover .hv_op,
	button.hv_op:hover,
	.hv_op a[href]:hover {
		opacity: 0.7;
	}
}

/* target
============================================================================================================ */
.target {
	display: block;
	position: relative;
	width: 1px;
	top: -70px;
}
.target.pt {
	top: -100px;
}
@media screen and (max-width: 767px) {
	.target {
		top: -35px;
	}
	.target.pt {
		top: -55px;
	}
}

/* w
============================================================================================================ */
.w {
	position: relative;
}
@media screen and (min-width: 768px), print {
	.w {
		width: 1000px;
		margin: 0 auto;
	}
	.mw {
		min-width: 1120px;
	}
}
@media screen and (max-width: 767px) {
}


/* spパディング
============================================================================================================ */
@media screen and (max-width: 767px) {
	.sp_pd {
		padding-left: 4vw !important;
		padding-right: 4vw !important;
	}
	.sp_full {
		margin-left: -4vw !important;
		margin-right: -4vw !important;
	}
	.sp_full_l {
		margin-left: -4vw !important;
	}
	.sp_full_r {
		margin-right: -4vw !important;
	}
}


/* important_news
============================================================================================================ */
.important_news {
	position: relative;
	padding: 15px 0;
	background-color: #000000;
	color: #fff;
	font-weight: bold;
	font-size: 1.6rem;
	line-height: 1.5;
	z-index: 1500;
}
.important_news dl {
	display: flex;
	justify-content: center;
	align-items: center;
}
.important_news dt {
	margin-right: 25px;
	padding: 2px 10px;
	border: 1px solid;
	white-space: nowrap;
}
.important_news dd a {
	color: #fff;
}
@media screen and (max-width: 767px) {
	.important_news {
		padding: 6px;
		font-size: 1rem;
	}
	.important_news dl {
		display: block;
		text-align: center;
	}
	.important_news dt {
		display: table;
		margin: 0 auto 3px;
		padding: 1px 10px;
	}
}
.important_news .dd {
	overflow: hidden;
	position: absolute;
	top: 100%;
	right: 0;
	left: 0;
	background-color: rgba(0,0,0,.95);
	height: 0;
}
body.init .important_news .dd {
	transition: height 0.3s ease-in-out;
}
.important_news .dd > * {
	padding: 20px;
}
.important_news .dd ul {
	display: flex;
	flex-wrap: wrap;
	justify-content: space-between;
}
.important_news .dd ul a {
	display: block;
	padding: 10px;
	text-decoration: none;
	color: #fff;
	border: 1px solid #fff;
	color: #fff;
	text-align: center;
}
.important_news .dd .close {
	text-align: center;
	margin-top: 20px;
}
.important_news .dd .close a {
	color: #fff;
}
@media screen and (min-width: 768px), print {
	.important_news .dd ul {
		width: 900px;
		margin: auto;
	}
	.important_news .dd ul li {
		width: calc(50% - 10px);
	}
	.important_news .dd ul li:nth-child(2) ~ * {
		margin-top: 20px;
	}
	.important_news .dd ul a[href]:hover {
		background-color: rgba(255,255,255,.2);
	}
}
@media screen and (max-width: 767px) {
	.important_news .dd > * {
		padding: 10px 5vw;
	}
	.important_news .dd ul li {
		width: calc(50% - 3px);
	}
	.important_news .dd ul li:nth-child(2) ~ * {
		margin-top: 6px;
	}
	.important_news .dd ul a {
		padding: 6px;
	}
	.important_news .dd .close {
		margin-top: 10px;
	}
}

/* header
============================================================================================================ */
#header .logo {
	padding: 20px 50px 10px;
}
#header nav ul {
	display: flex;
}
#header nav ul > li {
	position: relative;
	width: 100%;
}
#header nav a {
	position: relative;
	overflow: hidden;
	display: flex;
	justify-content: center;
	align-items: center;
	height: 56px;
	padding-bottom: 8px;
	font-weight: bold;
	text-decoration: none;
	font-size: 1.6rem;
	line-height: 1.5;
	color: #000;
}
#header nav ul > li::before,
#header nav ul > li::after {
	content: "";
	position: absolute;
	pointer-events: none;
}
#header nav ul > li::before {
	left: 0;
	top: 0;
	bottom: 16px;
	border-left: 1px solid #e6e6e6;
}
#header nav ul > li::after {
	right: 0;
	bottom: 1px;
	left: 1px;
	border-bottom: 4px solid;
}
#header nav .pickup::after {
	border-bottom-color: #fff23f;
}
#header nav .event::after {
	border-bottom-color: #266bb4;
}
#header nav .areamap::after {
	border-bottom-color: #23b8bc;
}
#header nav .access::after {
	border-bottom-color: #e86aa2;
}
@media screen and (min-width: 768px), print {
	#header {
		position: relative;
	}
	#header > * {
		position: absolute;
		top: 0;
		right: 0;
		left: 0;
		background-color: #fff;
		z-index: 999;
	}
	#header,
	#header > * {
		height: 100px;
	}
	#header > *::after {
		content: "";
		position: absolute;
		top: 100%;
		right: 0;
		left: 0;
		border-bottom: 1px solid #f2f0ef;
	}
	#header nav {
		position: absolute;
		right: 0;
		bottom: 0;
		width: calc(166px * 4);
	}
	#header nav a::before,
	#header nav a::after {
		content: "";
		position: absolute;
		transform: scale(0);
	}
	#header nav a::before {
		left: 1px;
		bottom: 6px;
		border-style: solid;
		border-width: 15px 0 0 15px;
		border-color: transparent;
		transform-origin: 0 100%;
	}
	#header nav a::after {
		right: 0;
		top: 0;
		border-style: solid;
		border-width: 0 15px 15px 0;
		border-color: transparent;
		transform-origin: 100% 0;
	}
	body.init #header nav a::before,
	body.init #header nav a::after {
		transition: transform 0.2s ease-in-out;
	}
	#header nav a:hover::before,
	#header nav a:hover::after {
		transform: scale(1);
	}
	#header nav .pickup a::before {
		border-left-color: #fefbb9;
	}
	#header nav .pickup a::after {
		border-right-color: #fcf44f;
	}
	#header nav .pickup a:hover {
		color: #f39800;
	}
	#header nav .event a::before {
		border-left-color: #d2ebf9;
	}
	#header nav .event a::after {
		border-right-color: #266bb4;
	}
	#header nav .event a:hover {
		color: #266bb4;
	}
	#header nav .areamap a::before {
		border-left-color: #d2ebf9;
	}
	#header nav .areamap a::after {
		border-right-color: #35b5ba;
	}
	#header nav .areamap a:hover {
		color: #35b5ba;
	}
	#header nav .access a::before {
		border-left-color: #f8d2e3;
	}
	#header nav .access a::after {
		border-right-color: #e86aa2;
	}
	#header nav .access a:hover {
		color: #e86aa2;
	}
}
@media screen and (min-width: 768px) {
	.head-fix #header > * {
		position: fixed;
	}

	body.init #header > *,
	body.init #header .logo {
		transition: transform 0.3s;
	}
	body.init.head-min #header > *,
	body.init.head-min #header .logo {
		transition: transform 0.5s ease-in-out;
	}
	.head-min #header > * {
		transform: translateY(-30px);
	}
	.head-min #header .logo {
		transform: translateY(10px);
	}
}
@media screen and (max-width: 767px) {
	#header .logo {
		padding: 10px 0;
		text-align: center;
	}
	#header .logo img {
		width: 130px;
	}
	#header nav {
		position: relative;
		height: 35px;
		margin-top: 3px;
	}
	#header nav ul {
		position: absolute;
		right: 0;
		left: 0;
		bottom: 0;
		background-color: #fff;
		z-index: 999;
	}
	.head-fix #header nav ul {
		position: fixed;
		top: 0;
		bottom: auto;
	}
	#header nav a {
		height: 35px;
		padding-bottom: 4px;
		font-size: 1rem;
		line-height: 1.3;
		text-align: center;
	}
	#header nav ul > li::before {
		bottom: 8px;
	}
	#header nav ul > li:first-child::before {
		content: none;
	}
	#header nav ul > li::after {
		border-bottom-width: 2px;
	}
}

/* footer
============================================================================================================ */
#footer {
	position: relative;
	padding-top: 70px;
	z-index: 10;
}
#footer .link {
	display: flex;
}
#footer .link li {
	width: 100%;
}
#footer .link a {
	display: flex;
	height: 85px;
	padding-top: 5px;
	justify-content: center;
	text-align: center;
	font-weight: bold;
	font-size: 1.5rem;
	line-height: 1.5;
	border-left: 1px solid #e5e5e5;
}
#footer .link li:last-child a {
	border-right: 1px solid #e5e5e5;
}
#footer .link a > *  > * {
	display: block;
}
#footer .link a .logo {
	margin-bottom: 5px;
}
#footer .slink {
	font-size: 1.3rem;
}
@media screen and (min-width: 768px), print {
	#footer .link {
		width: 820px;
		margin: 0 auto 20px;
	}
}
@media screen and (max-width: 767px) {
	#footer {
		padding-top: 40px;
	}
	#footer .link {
		justify-content: center;
		flex-flow: row wrap;
	}
	#footer .link li {
		width: calc(100% / 3 - 5%);
		margin-bottom: 10px;
	}
	#footer .link a {
		height: 62px;
		padding-top: 4px;
		font-size: 1rem;
		line-height: 1.2;
	}
	#footer .link a .logo {
		margin-bottom: 2px;
	}
	#footer .link a .logo img {
		width: 70px;
	}
	#footer .slink {
		font-size: 1.2rem;
	}
}

#footer p {
	margin: 40px 0;
	text-align: center;
}
@media screen and (max-width: 767px) {
	#footer p {
		margin: 30px 0;
	}
	#footer p img {
		width: 150px;
	}
}

#footer small {
	display: block;
	padding: 15px;
	background-color: #000000;
	font-size: 1.5rem;
	color: #fff;
	text-align: center;
}
@media screen and (max-width: 767px) {
	#footer small {
		font-size: 1rem;
		padding: 10px;
	}
}

/* ページトップ
------------------------------------------------------------- */
#pagetop {
	position: fixed;
	overflow: hidden;
	bottom: 0;
	right: 0;
	width: 60px;
	height: 121px;
	z-index: 1000;
}
#pagetop a {
	position: relative;
	display: flex;
	justify-content: center;
	align-items: center;
	width: 60px;
	height: 60px;
	background-color: #fff;
	border: 3px solid #fff;
	font-weight: bold;
	text-decoration: none;
	color: #000;
	font-size: 1.2rem;
	text-align: center;
	line-height: 1.2;
}
#pagetop div {
	transition: transform 0.3s, background .2s, border .2s;
	transform: translateX(100%);
}
#pagetop div + div {
	border-top: 1px solid #ccc;
}
#pagetop a > span {
	position: absolute;
	top: 50%;
	left: 50%;
	margin-top: -7px;
	transform-origin: 0 0;
	transform: rotate(45deg);
}
#pagetop a > span::before,
#pagetop a > span::after {
	content: "";
	position: absolute;
	top: 0;
	left: 0;
	width: 18px;
	height: 18px;
}
#pagetop a > span::before {
	border-left: 3px solid #e86aa2;
}
#pagetop a > span::after {
	border-top: 3px solid #35b5ba;
}
#pagetop.abs {
	position: absolute;
	top: -120px;
	bottom: auto;
}
#pagetop.show div {
	transform: translateX(0);
}
@media print {
	#pagetop {
		display: none;
	}
}
@media screen and (min-width: 768px) {
	#pagetop a:hover {
		background-color: #fff;
		border-color: #266bb4;
	}
}
@media screen and (max-width: 767px) {
	#pagetop {
		transform-origin: 100% 100%;
		transform: scale(.7);
	}
}





/* container
============================================================================================================ */
#container {
	position: relative;
	font-size: 1.6rem;
	line-height: 1.8;
}
#container::before,
#container::after {
	content: "";
	display: table;
	clear: both;
}
@media screen and (max-width: 767px) {
	#container {
		font-size: 1.3rem;
	}
}

/* breadcrumbs
============================================================================================================ */
.breadcrumbs {
	padding: 15px 50px;
	font-size: 1.3rem;
	font-weight: bold;
	line-height: 1.6;
}
.breadcrumbs li {
	position: relative;
	padding-right: 30px;
}
.breadcrumbs ol li::after {
	content: "";
	position: absolute;
	right: 12px;
	top: 50%;
	width: 8px;
	height: 8px;
	transform-origin: 100% 0;
	border-top: 1px solid #666;
	border-right: 1px solid #666;
	transform: rotate(45deg);
}
.breadcrumbs ol li a {
	color: #036eb7;
	text-decoration: none;
}
.breadcrumbs ol li:last-child {
	padding-right: 0;
}
.breadcrumbs ol li:last-child::after {
	content: none;
}
.breadcrumbs ol li:last-child a {
	color: #000;
}
@media screen and (min-width: 769px), print {
	.breadcrumbs ol {
		white-space: nowrap;
		overflow: hidden;
		text-overflow: ellipsis;
	}
	.breadcrumbs li {
		display: inline;
	}
}
@media screen and (max-width: 768px) {
	.breadcrumbs {
		padding: 10px 0;
		font-size: 1rem;
		overflow-x: auto;
		-webkit-overflow-scrolling: touch;
	}
	.breadcrumbs ol {
		display: table;
		white-space: nowrap;
	}
	.breadcrumbs ol li {
		display: table-cell;
		white-space: nowrap;
	}
	.breadcrumbs li {
		padding-right: 25px;
	}
	.breadcrumbs ol li::after {
		right: 10px;
		width: 6px;
		height: 6px;
	}
}

/* event_list
============================================================================================================ */
.event_list section {
	margin-bottom: 50px;
}
.event_list section:last-child {
	margin-bottom: 0;
}
.event_list section {
	border: 1px solid #e5e5e5;
}
.event_list section a {
	display: block;
	text-decoration: none;
	color: #000;
	line-height: 1.7;
}
.event_list section > a {
	padding: 30px;
}
.event_list section header .ph {
	position: relative;
	border: 1px solid #e5e5e5;
}
.event_list section header > div {
	position: relative;
}
.event_list section header .cat {
	overflow: hidden;
	position: relative;
	width: 170px;
	margin-bottom: 20px;
	padding: 4px 0;
	background-color: #266bb4;
	text-align: center;
	font-size: 1.5rem;
	line-height: 1.5;
	color: #fff;
	font-weight: bold;
}
.event_list section header .cat::before,
.event_list section header .cat::after {
	content: "";
	position: absolute;
	width: 20px;
	height: 20px;
	background-color: #fff;
	transform: rotate(45deg);
}
.event_list section header .cat::before {
	top: 100%;
	right: 100%;
	margin-right: -10px;
	transform-origin: 100% 0;
}
.event_list section header .cat::after {
	bottom: 100%;
	left: 100%;
	margin-left: -10px;
	transform-origin: 0 100%;
}
.event_list section header .title {
	font-size: 2.4rem;
	line-height: 1.5;
}
.event_list section header .date {
	margin-top: 25px;
	padding-top: 15px;
	border-top: 2px solid #f4f4f4;
	font-weight: bold;
	font-size: 1.5rem;
}
.event_list section header .date dt {
	float: left;
	color: #35b5ba;
}
.event_list section header .date dd {
	margin-left: 5em;
}
.event_list section a .more,
.event_list section .more a {
	display: block;
	padding: 20px;
	background-color: #266bb4;
	border: 2px solid #266bb4;
	text-align: center;
	color: #fff;
	font-weight: bold;
	font-size: 1.8rem;
	line-height: 1.5;
}
.event_list section .more span {
	position: relative;
	display: inline-block;
	padding-right: 35px;
}
.event_list section .more span::before {
	content: "";
	position: absolute;
	top: 50%;
	right: 0;
	width: 14px;
	height: 14px;
	border-top: 3px solid;
	border-right: 3px solid;
	transform-origin: 100% 0;
	transform: rotate(45deg);
}
@media screen and (min-width: 768px), print {
	.event_list section header {
		display: flex;
		justify-content: space-between;
		margin-bottom: 20px;
	}
	.event_list section header .ph {
		width: 350px;
		height: 210px;
	}
	.event_list section header .ph + * {
		width: calc(100% - 380px);
	}
}
@media screen and (max-width: 767px) {
	.event_list section {
		margin-bottom: 15px;
	}
	.event_list section > a {
		padding: 10px;
		font-size: 1.2rem;
	}
	.event_list section header {
		margin-bottom: 10px;
	}
	.event_list section header .ph {
		margin-bottom: 15px;
		padding-top: 60%;
	}
	.event_list section header .cat {
		width: 120px;
		margin-bottom: 15px;
		padding: 3px 0;
		font-size: 1rem;
	}
	.event_list section header .cat::before {
		margin-right: -5px;
	}
	.event_list section header .cat::after {
		margin-left: -5px;
	}
	.event_list section header .title {
		font-size: 1.5rem;
	}
	.event_list section header .date {
		margin-top: 10px;
		padding-top: 10px;
		font-size: 1.1rem;
	}
	.event_list section a .more,
	.event_list section .more a {
		padding: 10px;
		font-size: 1.3rem;
	}
	.event_list section .more span {
		padding-right: 25px;
	}
	.event_list section .more span::before {
		width: 10px;
		height: 10px;
		border-top-width: 2px;
		border-right-width: 2px;
	}
	.event_list section > .more {
		margin-top: 5px;
	}
}

