@charset "UTF-8";

/*****************************************************************

    header

*****************************************************************/
header {
	width: 100%;
	background-size: 12% auto;
}
header h1 {
	width: 100%;
	max-width: 1180px;
	margin: 0 auto;
}

.header_btn { 
	padding: 0 0 4%; }

.header_btn a{
	display: block;
	position: relative;
	width: 80%;
	min-width: 260px;
	max-width: 300px;
	margin: 0 auto;
	padding: 8px 6px;
	border-radius: 3rem;
	background: #009a36;
	color: #fff;
	font-weight: bold;
	font-size: 1.8rem;
	letter-spacing: 0.05em;
	text-indent: 0.1em;
	text-align: center;
	text-decoration: none;
	text-shadow: 2px 2px 0px rgba(0, 0, 0, 0.4);
}
.header_btn a:hover, .header_btn a:active { background: #ff7474; }

.header_btn a::before,
.header_btn a::after {
	display: block;
	position: absolute;
	content: "";
	width: 1.4rem;
	height: 1.4rem;
	top: 1.8rem;
	right: 2rem;
	border-left: solid 2px #ffffff;
	border-top: solid 2px #ffffff;
	transform: rotate(135deg);
}

@media only screen and (min-width: 640px) {
}

@media only screen and (min-width: 960px) {
}

/*****************************************************************

    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;
	position: relative;
	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; }

a.btn::before,
a.btn::after {
	display: block;
	position: absolute;
	content: "";
	width: 1.4rem;
	height: 1.4rem;
	top: 2rem;
	right: 2rem;
	border-left: solid 2px #ffffff;
	border-top: solid 2px #ffffff;
	transform: rotate(135deg);
}

/* 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;
}

figure img{ margin: 1.6rem auto;}
/*****************************************************************

    responsive

*****************************************************************/
@media screen and (min-width: 768px) {
main
.col { width: 47%; }
.part_block { display: flex; justify-content: space-between; margin-top: 0.5%; }
}

@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; }
}
