@charset "utf-8";

/* reset
----------------------------------------------------------------------*/
* {
	margin: 0;
	padding: 0;
	border: none;
	vertical-align: bottom;
	-webkit-box-sizing: border-box;
	-moz-box-sizing: border-box;
	box-sizing: border-box;
}

article,
aside,
canvas,
details,
figcaption,
figure,
footer,
header,
hgroup,
menu,
nav,
section,
summary,
main,
figure {
	display: block;
}

ul,
ol {
	list-style: none;
}

table {
	border-collapse: collapse;
}

input[type="text"]:focus {
	outline: 0;
}

img {
	max-width: 100%;
	height: auto;
}

/* structure
----------------------------------------------------------------------*/
html {
	height: 100%;
	font-size: 10px;
	@media screen and (min-width: 769px), print {
		font-size: 11px;
	}
}

body {
	font-family: "Helvetica Neue",
		"Arial",
		"Hiragino Kaku Gothic ProN",
		"Hiragino Sans",
		"Meiryo",
		sans-serif;
	width: 100%;
	height: 100%;
	line-height: 1.6;
	-webkit-text-size-adjust: 100%;
	word-break: break-all;
}

a {
	text-decoration: none;
}

#wrapper {
	position: relative;
	width: 100%;
	height: 100%;
}

body>#wrapper {
	height: auto;
	min-height: 100%;
}

@media screen {
	/*\*/
	* html #wrapper {
		min-height: 100%;
		height: auto !important;
		height: 100%;
	}
	/**/
}
@media print {
	#fixHeader,.spMenu{display: none !important;}
}

@media screen and (min-width: 769px), print {
	.sp {
		display: none !important;
	}

	a.hover {
		-webkit-transition: opacity 0.3s ease;
		-ms-transition: opacity 0.3s ease;
		transition: opacity 0.3s ease;
	}

	a.hover:hover {
		filter: alpha(opacity=60);
		-moz-opacity: 0.6;
		opacity: 0.6;
	}

	body{
  background-image: linear-gradient(90deg, rgba(255,255,255,1) 50%, rgba(170,214,178,.6)  50%);
	}
	#wrapper {
  	background:url("../images/pc_bg.png") no-repeat right top;
	}

	.spMenu {
		/* display: none; */
	}
}

@media screen and (max-width: 768px) {
	.pc {
		display: none !important;
	}
}

/* ========================================
  LAYOUT
======================================== */
#fixHeader {
	display: none;
	margin: 0px;
	width: 100%;
	line-height: 1em;
	background: #fff;
}
@media screen and (max-width: 768px) {
#fixHeader.fixed {
	position: fixed;
	top: 0px;
	z-index: 100;
	display: block;
}
}

/*--------------------------------------
  siteHeader
---------------------------------------*/
.siteHeader {
	display: flex;
	align-items: center;
	justify-content: space-between;
	padding: 10px 2%;

	>img {
		width: 86%;
	}

	.subArea {
		display: flex;
		align-items: center;
	}

	@media screen and (min-width: 769px) {
		width: 94%;
		margin: auto;
		max-width: calc(770px * .7);
	}
}

/*--------------------------------------
  gnav
---------------------------------------*/
.gnav {
	&.fixed {
		position: fixed;
	}

	&.spMenu {
		left: auto;
		right: 0;
		border-right: none;
		border-left: 3px solid #000;
		/* display: none; */

		&.fixed {
			display: block;
		}

		@media screen and (min-width: 769px) {
			position: fixed;
			top: 0;
			right: auto;
			left: 50%;
			transform: translateX(200px);
			border-left: 6px solid #000;
			border-right: 6px solid #000;
			border-top: none;
			border-bottom: none;
			height: 100vh;
			padding: 10vh 38px;

			li{
				font-size: 23px;
				width: 200px;
			}
		}
	}

	position: absolute;
	top: 23%;
	left: 0;
	z-index: 100;
	background: #fff;
	border: 3px solid #000;
	border-left: none;
	padding: 33px 20px 2em;
	text-align: center;

	ul {
		margin-bottom: 35px;
	}

	li {
		line-height: 1;
		font-size: 1.6rem;
		text-align: left;
		width: 150px;
		margin-bottom: 1.6em;

		a {
			color: #000;
			display: block;
			padding-left: 2em;
			background: url("../images/icn_box.png") no-repeat 0 0;
			background-size: 18px auto;
			font-weight: bold;
		}
	}

	>a {
		display: inline-block;
		margin: 0 7px;

		img {
			width: 50px;
		}
	}

	@media screen and (min-width: 769px) {
		border-width: 5px;
		padding:40px 20px;
		
		ul{margin-bottom: 40px;}
		li{
			font-size: 21px;
			width: 200px;
			margin-bottom: 1.4em;
			a{
				min-height: 25px;
				background-size: 25px auto;
				padding-left: 36px;
			}
		}
		>a img{width: 65px;}
	}
}

.menu-trigger {
	position: relative;
	width: 35px;
	height: 35px;
	margin-left: 15px;
	border: 2px solid #000;
	cursor: pointer;

	.icon {
		width: 66%;
		transform: translate(-50%, -10px);
	}

	.icon:before {
		transform: translate(-50%, 8px);
	}

	.icon:after {
		transform: translate(-50%, 16px);
	}

	.icon,
	.icon:before,
	.icon:after {
		display: inline-block;
		transition: all .4s;
		position: absolute;
		left: 50%;
		height: 4px;
		background-color: #000;
		content: '';
	}

	.icon:before,
	.icon:after {
		width: 100%;
	}

	.icon {
		top: 50%;
	}

	&.active .icon {
		-webkit-transform: translate(-50%, -1px) rotate(135deg);
		transform: translate(-50%, -1px) rotate(135deg);
		width: 70%;

		&:before {
			display: none;
		}

		&:after {
			width: 100%;
			-webkit-transform: translate(-50%, 0) rotate(270deg);
			transform: translate(-50%, 0) rotate(270deg);
		}
	}
}

/*--------------------------------------
  siteFooter
---------------------------------------*/
.siteFooter {
	text-align: center;
	background: #000;
	color: #fff;
	padding: 16px 0;
	font-size: 1.1rem;

	img {
		width: 162px;
		display: block;
		margin: 0 auto 2px;
	}
}

.pagetop {
	text-align: center;
	position: fixed;
	right: 20px;
	bottom: 30px;
	z-index: 9999;
	a {
		position: relative;
		display: block;
		width: 73px;
		height: 0;
		padding-top: 73px;
		overflow: hidden;
		background: url("../images/btn_pagetop.png") no-repeat 0 0 / contain;
	}

	@media screen and (min-width: 769px) {
		right: auto;left: 50%;
		transform: translateX(309px);
	}
	@media print{display: none !important;}
}


/*--------------------------------------
  contents
---------------------------------------*/
.contents {
	font-size: 1.4rem;
	small {
		font-size: 1rem;
	}
	th,td {
		vertical-align: top;
	}

	@media screen and (min-width: 769px),print {

		background: #fff;
		width: fit-content;
		margin: 0 auto;
		border-left: 10px solid #000;
		border-right: 10px solid #000;
		transform: translateX(-10vw);
	}
}
	
.sectionWidth {
	margin: 0 auto;
	width: 94%;
	max-width: calc(770px * .7);
	padding: 15px 0;

}

.c {
	text-align: center;
}

.mt20 {
	margin-top: 20px;
}

/* TITLE
---------------------------------------*/
*[class^="title"] {
	line-height: 1.2;
}

.title02 {
	background: url("../images/st_bg.png") no-repeat 0 0;
	background-size: contain;
	min-height: 66px;
	display: flex;
	align-items: center;
	justify-content: left;
	font-size: 2rem;
	padding-right: 40%;
	padding-left: 5%;
	padding-bottom: 5px;
	margin-bottom: 15px;

	@media screen and (min-width: 769px) {
		min-height: 93px;
		font-size: 2.6rem;
		padding-bottom: 10px;
	}
}

.st {
    background: url("../images/icn_box.png") no-repeat 0 50%;
    background-size: 18px auto;
    padding-left: 20px;
    font-size: 1.8rem;
    margin-top: 20px;
    margin-bottom: 5px;
}

/* BUTTON
---------------------------------------*/
.btnBlank {
	display: block;
	text-align: center;
	width: 63%;
	margin: 15px auto 20px;
	padding: .6em;
	background: #000;
	color: #fff;
	line-height: 1;
	border-radius: 20px;

	b {
		display: inline-block;
		background: url("../images/icn_blank.png") no-repeat right center;
		background-size: 16px auto;
		padding-right: 22px;
	}
}

/* 
---------------------------------------*/
.mainV {
	background: #aad6b2;
	padding: 0 0 15px;
	position: relative;
	margin-bottom: 10px;


	>small {
		display: block;
		margin: 15px 5% 10px;
		text-indent: -1em;
		padding-left: 1em;
	}

	@media screen and (min-width: 769px),print {
		max-width: calc(770px * .7);
		margin: auto;
	}
}

.boxCoution {
	margin: 0 4%;
	background: #daf2df;
	padding: 1.2em 2em;
	text-align: center;

	p {
		font-size: 1.1rem;
		font-weight: bold;
	}

	h3 {
    color: #da0085;
    text-decoration: underline;
    margin-bottom: 5px;
    font-size: 1.6rem;
	}

	li {
		font-size: 1.2rem;
	}

	small {
		margin-top: 1em;
		display: block;
	}
}

.int-1 li {
	text-indent: -1em;
	padding-left: 1em;
	text-align: left;
}

/* お知らせ */
.dateList {
	b {
		display: inline-block;
		background: #d8008e;
		color: #fff;
		font-size: 1rem;
		font-weight: normal;
		margin-left: 1em;
		margin-bottom: 3px;
		padding: 1px 4px;
		line-height: 1;
	}

	dt {
		display: flex;
		align-items: center;
	}

	dd {
		border-bottom: 1px solid #aeaeae;
		padding-bottom: 5px;
		margin-bottom: 5px;
	}
}

/* 概要 */
#outline {
	th {
		font-weight: normal;
		white-space: nowrap;
		width: 5em;
	}

	td {
		width: calc(100% - 5em);
	}
}

/* box */
.box {
	border: 2px solid #000;
	display: flex;
	flex-wrap: wrap;
	gap: 10px;
	margin-bottom: 15px;
	padding-bottom: 15px;

	h4 {
		width: 100%;
		padding: .3em 10px;
		background: #c5e8cc;
		font-size: 1.6rem;
	}

	figure {
		margin-left: 10px;
		width: 57%;
	}

	p {
		font-size: 1.2rem;
	}

	.data {
		width: calc(43% - 30px);
	}

	.text {
		margin-left: 10px;
		margin-right: 10px;
	}

	.btnBlank {
		margin: 0 auto;
	}
}

.btnAcc {
    font-weight: bold;
    color: #FFFFFF;
    padding-top: 10px;
    padding-right: 0;
    padding-left: 0;
    padding-bottom: 12px;
    text-align: center;
    background: #000000;
    border-bottom: 5px solid #ECECEC;
    position: relative;

	&.off {
		display: none;
	}

	&:after {
		content: "";
		display: block;
		width: 100%;
		height: 5px;
		position: absolute;
		bottom: 0;
		left: 0;
		background: #D3D3D3;
	}
}

.jsHidden {
	display: none;
}

/* 点滅 */
.blinking{
	-webkit-animation:blink 1.5s ease-in-out infinite alternate;
    -moz-animation:blink 1.5s ease-in-out infinite alternate;
    animation:blink 1.5s ease-in-out infinite alternate;
}
@-webkit-keyframes blink{
    0% {opacity:0;}
    100% {opacity:1;}
}
@-moz-keyframes blink{
    0% {opacity:0;}
    100% {opacity:1;}
}
@keyframes blink{
    0% {opacity:0;}
    100% {opacity:1;}
}

/* イベント */
#event {
	.gakunai {
		h4 {
			background: #f5dbea;
		}
	}
	.gakugai {
		h4 {
			background: #e0d2f0;
		}
	}
}

/* ACCESS */
#access {
	padding-bottom: 30px;
	figure+figure{margin-top: 20px;}
}
.responsive-iframe-container {
	position: relative;
	width: 100%;
	padding-bottom: 56.25%;
	/* 16:9 のアスペクト比 */
	height: 0;
}
.responsive-iframe-container iframe {
	position: absolute;
	top: 0;
	left: 0;
	width: 100%;
	height: 100%;
}
