@charset "UTF-8";

/*****************************************************************

    header

*****************************************************************/
header {
	width: 100%;
	background-size: 12% auto;
}
header h1 {
	width: 100%;
	max-width: 1280px;
	margin: 0 auto;
}


/*****************************************************************

    main

*****************************************************************/
main {
	width: 90%;
	max-width: 1220px;
	margin: 0 auto;
}
section { margin: 8% 0; }
section.umi-nihon {
	padding: 4%;
	border: 3px solid #71b22c;
	border-radius: 15px;
}
section:not(.umi-nihon) h2 {
	margin: 4px 0 3%;
	padding: 8px 12px;
	border: 1px solid #D4ECFF;
	border-radius: 8px;
	background: #115fad;
	color: #fff;
	font-size: 1.1em;
	font-weight: bold;
	letter-spacing: 0.15rem;
	line-height: 1.5;
}
section.umi-nihon h2 {
	width: 100%;
	max-width: 350px;
	margin-bottom: 3%;
}
section h3 {
	margin: 5% 0 2%;
	padding: 2px 10px;
	border-top: 2px solid #00a584;
	border-bottom: 2px dotted #00a584;
	background: #E7FFF2;
	color: #00a584;
	font-weight: bold;
}
.main li {
	margin-left: 1.8rem;
	list-style: disc outside;
}

/* intro */
p.catch {
	margin: 14px 0 3px;
	color: #0D9F3E;
	font-weight: bold;
	line-height: 1.8;
}
.photo {
	display: flex;
	flex-wrap: wrap;
	justify-content: space-between;
	align-items: flex-start;
}
.photo img {
	width: 44%;
	margin: 3%;
}
div.movie {
	width: 90%;
	margin: 3% auto;
	border: 4px solid #333;
	background: #333;
}
div.youtube {
	position: relative;
	overflow: hidden;
	width: 100%;
	height: 0;
	margin: 0;
	padding: 56.25% 0 0;
}
div.youtube iframe {
	position: absolute;
	top: 0;
	left: 0;
	width: 100%;
	height: 100%;
}

/* btn */
a.btn {
	display: block;
	width: 90%;
	max-width: 320px;
	margin: 1.5% 0 20px;
	padding: 1em;
	border-radius: 40px;
	background: #ea5d77;
	color: #fff;
	font-weight: bold;
	letter-spacing: 0.05em;
	line-height: 1.4;
	text-indent: 0.05em;
	text-align: center;
	text-decoration: none;
}
a.btn:hover, a.btn:active { background: #ff7474; }
a.btn.small {
	width: 100%;
	padding: 0.6em 5px;
	letter-spacing: 0;
	text-indent: 0;
}
dt a.btn { margin-top: 0; }

/* map */
.map {
	width: 50%;
  min-width: 230px;
	margin: 1% 0 2%;
  border: 3px solid #C8CED2;
}
.ggmap {
	position: relative;
	overflow: hidden;
	width: 95%;
	height: 0;
	margin: 1% auto 2%;
	padding-bottom: 60%;
	padding-top: 30px;
	border: 3px solid #C8CED2;
}
.ggmap iframe, .ggmap object, .ggmap embed {
	position: absolute;
	top: 0;
	left: 0;
	width: 100%;
	height: 100%;
}

/* common decoration */
.additionally { /* 緑の縁付き枠 概要の追記など */
	margin-top: 2%;
	padding: 2% 3%;
	border: 2px dashed #A5D0D8;
	border-radius: 5px;
	background: #E4F9FA;
}
table.timetable th, table.timetable td { /* タイムテーブル */
	padding: 5px 0;
	font-weight: normal;
	line-height: 1.8;
  vertical-align: baseline;
}
table.timetable span.time { /* タイムテーブル 時刻 */
	display: inline-block;
	width: 4em;
	margin-right:10px;
	padding: 0 10px;
	border-radius: 5px;
	background: #D9F4F6;
	color: #525557;
}
table.timetable + p { margin-top: 5px; } /* タイムテーブル下の補足 */
dl.item1 dt { /* dtを強調したい場合（活動内容など） */
	display: inline-block;
	margin: 2% 0 0.5%;
	padding: 1px 10px 0 8px;
	border-radius: 2px;
	background: #D9F4F6;
	color: #005C91;
	font-size: 1.05em;
	font-weight: bold;
}
dl.item2 dt { /* dtを目立たせたくない場合（アクセスなど） */
	display: inline-block;
	margin: 2% 0 1%;
	padding: 0 5px;
	border: 1px solid #181818;
	background: #F3F3F3;
	line-height: 1.8;
}
dl.item3 dt { /* dtを見出しにする場合（応募方法が複数あるときなど） */
	color: #ff0000;
	margin-top: 2%;
	font-weight: bold;
}
dl.item3 dt::before { /* dtを見出しにする場合（応募方法が複数あるときなど） */
	content: url('../image/point-triangle.svg');
	margin-right: 3px;
}
ul.attention li { /* 注意事項list */
	margin-left: 1.2em;
	list-style: none;
}
ul.attention li::before { /* 注意事項list */
	content: '※';
	margin-left: -1.2em;
  margin-right: 0.2em;
}


/*****************************************************************

    responsive

*****************************************************************/
@media screen and (min-width: 768px) {
main { display: flex; justify-content: space-between; margin-top: 0.5%; }
.col { width: 47%; }
}

@media screen and (min-width: 1280px) {
section:not(.umi-nihon) h2 { margin-bottom: 2%; font-size: 1.15em; }
p.catch { font-size: 1.05em; }
a.btn { font-size: 1.05em; }
}
