@charset "utf-8";

/*-----------------------------------------
reset
-----------------------------------------*/
html, body, div, span, object, iframe,h1, h2, h3, h4, h5, h6, p, blockquote, pre,abbr, address, ite, code,del, dfn, em, img, ins, kbd, q, samp,small, strong, sub, sup, var,b, i,dl, dt, dd, ol, ul, li,fieldset, form, label, legend,table, caption, tbody, tfoot, thead, tr, th, td,article, aside, canvas, details, figcaption, figure, footer, header, hgroup, menu, nav, section, summary,
time, mark, audio, video {
    margin:0;
    padding:0;
    border:0;
    outline:0;
    font-size:100%;
    vertical-align:baseline;
    background:transparent;
}

/*-----------------------------------------
default
-----------------------------------------*/
* {
	margin: 0;
	padding: 0;
	font-family: "Noto Sans JP", sans-serif, -apple-system, BlinkMacSystemFont, "游ゴシック体", YuGothic, "Yu Gothic M", "游ゴシック Medium", "Yu Gothic Medium", "ヒラギノ角ゴ ProN W3", "Hiragino Kaku Gothic ProN W3", HiraKakuProN-W3, "ヒラギノ角ゴ ProN", "Hiragino Kaku Gothic ProN", "ヒラギノ角ゴ Pro", "Hiragino Kaku Gothic Pro", "メイリオ", Meiryo, Osaka, "ＭＳ Ｐゴシック", "MS PGothic", "Helvetica Neue", HelveticaNeue, Helvetica, Arial, "Segoe UI", sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji";
}
html {
	font-size: calc(100vw * 16 / 1440);
	letter-spacing: 0;
	scroll-behavior: smooth;
	box-sizing: border-box;
	-webkit-text-size-adjust: 100%;
	word-break: normal;
	-moz-tab-size: 4;
	tab-size: 4;
    color: #333;
}
p, th, td, li, dt, dd, h1, h2, h3, h4, h5, h6 {
	line-height: 1.4em;
}
h1 {
	font-size: 0.75rem;
	font-weight: normal;
}
li {
	list-style-type: none;
}
table {
	border-collapse: collapse;
    border-spacing:0;
}
th, td {
	border-collapse: collapse;
}
img {
	border: none !important;
	max-width: 100%;
	height: auto;
	width: 100%;
	display: block;
}
a {
	transition: 0.1s linear all;
	text-decoration: none;
    color:#333;
}

/*-----------------------------------------
common
-----------------------------------------*/
.italic {
	font-style: italic;
}
.center {
	text-align: center;
}
.normal {
	font-weight: 400;
}
.medium {
	font-weight: 500;
}
.bold {
	font-weight: 900;
}
.size10{ font-size:0.625rem; }
.size11{ font-size:0.6875rem; }
.size12{ font-size:0.75rem; }
.size13{ font-size:0.8125rem; }
.size14{ font-size:0.875rem; }
.size16{ font-size:1.0rem; }
.size17{ font-size:1.0625rem; }
.size18{ font-size:1.125rem; }/**/
.size20{ font-size:1.25rem; }
.size20{ font-size:1.25rem; }/**/
.size21{ font-size:1.3125rem; }
.size22{ font-size:1.375rem; }
.size23{ font-size:1.4375rem; }/**/
.size24{ font-size:1.5rem; }/**/
.size25{ font-size:1.5625rem; }/**/
.size26{ font-size:1.625rem; }
.size27{ font-size:1.6875rem; }
.size28{ font-size:1.75rem; }
.size29{ font-size:1.8125rem; }
.size30{ font-size:1.875rem; }/**/
.size31{ font-size:1.9375rem; }
.size32{ font-size:2rem; }/**/
.size33{ font-size:2.0625rem; }
.size35{ font-size:2.1875rem; }
.size36{ font-size:2.25rem; }
.size37{ font-size:2.3125rem; }/**/
.size40{ font-size:2.5rem; }
.size42{ font-size:2.625rem; }
.size43{ font-size:2.6875rem; }
.size46{ font-size:2.875rem; }
.size47{ font-size:2.9375rem; }
.size48{ font-size:3.0rem; }
.size50{ font-size:3.125rem; }
.size57{ font-size:3.5625rem; }/**/
.size60{ font-size:3.75rem; }/**/
.size64{ font-size:4rem; }/**/
.size72{ font-size:4.5rem; }
.size100{ font-size:6.25rem; }
.white {
	color: white;
}
.yellow {
	color: #fff100;
}
.green{
    color: #38BBCF;
}
.navy {
	color:#172a88;
}
.bgwhite {
	background: white;
}
.bggreen {
	background: #38BBCF;
}
.bgnavy {
	background:#172a88;
}
.bgred{
	background:red;
}
.bgblack{
	background:#111;
}
body {
    background: rgba(220,239,244,0.5);
}
body .wrapper {
	width: 100%;
	height: auto;
}
.section_inner,
.footer_inner,
.header_inner,
.mainimg_inner{
	max-width: 80rem;
	margin: 0 auto;
}
.h3_title{
	padding: 0.4rem 2rem 0.4rem 1rem;
	margin-bottom: 1.5rem;
	clip-path: polygon(0% 0%, 100% 0%, 98% 100%, 0% 100%);
    display: flex;
    justify-content: space-between;
    margin-top:3rem;
    align-items: center;
}
.two .h3_title{
	clip-path: polygon(0% 0%, 100% 0%, 96% 100%, 0% 100%);
}
.h3_title.bgwhite{
    clip-path:unset;
    border:1.5px solid;
}
.h3_title.mtn{
    margin-top:0;
}
.h3top{
    text-align: right;
    margin-top:3rem;
    margin-bottom:0.3rem;
}
ul li{
	text-indent: -1em;
	padding-left: 1em;
}

/*-----------------------------------------
index
-----------------------------------------*/
section.mainimg{
	background: url(images/bg.svg) no-repeat center;
    background-size: cover;
    padding-top:3rem;
}
section.mainimg .maintxt{
	position: relative;
}
section.mainimg .maintxt h2{
	text-align: left;
	line-height: 1.2;
	margin-bottom: 3rem;
}
section.mainimg .maintxt img{
    position: absolute;
    top:0;
    right:0;
	width: 9.3125rem;
}
section.mainimg .flex_box{
	display: flex;
    gap: 0rem;
    flex-wrap: wrap;
	justify-content: space-between;
}
section.mainimg .flex_box .sub_catch p{
	line-height: 1.2;
    padding: 1.5rem 5rem 1.5rem 5.5rem;
	clip-path: polygon(4% 0%, 100% 0%, 100% 100%, 0% 100%);
}
section.mainimg .flex_box p.circle {
    border-radius: 50%;
    line-height: 1.2;
    width: 14.625rem;
    height: 14.625rem;
    vertical-align: middle;
    display: flex;
    align-items: center;
    justify-content: center;
    margin: 0 0 0 5rem;
	box-shadow: 0px 5px 15px black;
	transform: rotate(-11.222deg);
}
section.mainimg .txt {
	margin: 3rem 0 4rem;
}
section.two .section_inner{
	display: flex;
	flex-wrap: wrap;
	gap: 4rem;
}
section.two .section_inner > div{
	width: calc(50% - 2rem);
}
section.two .section_inner > div.center{

}
section.two .section_inner > div .mt{
	margin-top: 2rem;
}
section.two.last .section_inner > div:first-child{
	width: calc(40.7% - 2rem);
}
section.two.last .section_inner > div:last-child{
	width: calc(59.3% - 2rem);
}
section .section_inner .day_list{
	display: flex;
    flex-wrap: wrap;
    gap: 0.8rem;
	margin-top:2rem;
}
section .section_inner .day_list > div {
    width: 100%;
	display: flex;
	flex-wrap: wrap;
    gap: 2rem;
}
section .section_inner .day_list > div .bgwhite {
    width:6rem;
	padding: 2rem 0.3rem 2rem 0;
    align-content: center;
}
section .section_inner .day_list > div .bgwhite.athlete {
	padding: 2.5rem 0.3rem 2.5rem 0;
}
section .section_inner .day_list > div .bgwhite.border {
    border:1px solid #172a88;
}
section .section_inner .day_list > div .date {
    display: flex;
	flex-flow: column;
	justify-content: center;
}
section .section_inner .day_list > div .date.flex {
    display: flex;
	flex-flow:row;
	gap:2rem;
	width:88%;
	justify-content:normal;
}
section .section_inner .day_list > div .date.flex .image{
	width:10rem;
}
section .section_inner .day_list > div .date.flex p{
	margin:2.9rem 0;
	width:auto;
}
section .section_inner .day_list > div .date.flex dl dt{
	clear:both;
	width:10rem;
}
section .section_inner .day_list > div .date.flex dl dt,
section .section_inner .day_list > div .date.flex dl dd{
	float:left;
	margin:0.2rem 0;	
}
section .section_inner .btn a{
    text-align: center;
    width: 26rem;
    display: block;
    gap:1rem;
    padding: 0.8rem 2rem 1rem;
    border-radius: 1rem;
    margin:3rem auto 0;
	position:relative;
	z-index:2;
}
section .section_inner .btn img {
    width: 6rem;
}
section .section_inner table{
    width:95%;
	margin: 0 auto;
}
section .section_inner table tr{
    border-bottom: 1px solid #172a88;
}
section .section_inner table th{
    padding: 1rem 1rem 0.3rem 0;
    text-align: left;
}
section .section_inner table td{
    padding: 1rem 0 0.3rem 1rem;
    text-align: left;
}
section .section_inner .curriculum_flex{
    display: flex;
    flex-wrap: wrap;
    gap:1rem;
    justify-content: space-between;
}
section .section_inner .curriculum_flex p{
    width: calc(100% - 38.0625rem);
}
section .section_inner .curriculum_flex div.img{
    width: 36.0625rem;
	max-width: 100%;
}
section .section_inner .link_flex{
    display: flex;
    flex-wrap: wrap;
    gap:1rem;
    margin-top:2rem;
    justify-content: space-between;
}
section .section_inner .link_flex div.img{
    width:6rem;
}
section.last{
    padding-bottom: 5rem;
    background: url(images/bg2.webp) no-repeat top center;
    background-size: cover;
}
footer {
	padding: 1rem 0;
    background: rgba(56,187,207,0.7)
}
footer .footer_row {
	display: flex;
	align-items: center;
	gap: 1rem;
	flex-wrap: wrap;
	margin:0.5rem 0;
}
footer .footer_row .label {
	padding: 0.25rem 0.75rem;
	flex-shrink: 0;
	width: 5rem;
}
.W-896,.W-640 {
	display: none;
}
.W-640none {
	display: block;
}

section .section_inner .googlemap{
	margin-top:30px;
}
section .section_inner .space{
	letter-spacing:0.2rem;
}
section .section_inner .space2{
	letter-spacing:-1rem;
}
section .section_inner .space3{
	letter-spacing:-0.5rem;
}
section.two.last .section_inner > div:last-child ul li:last-child{
	letter-spacing:-0.06rem;
}
section div.flex{
	display:flex;
	gap:4rem;
}
section div.flex p{
	width:40%;
}
section > div ul.item{
	display:flex;
	gap:3rem;
}
section > div ul.item li{
	text-indent:0;
	padding-left:0;
	width:10rem;
}
header{
	width:100%;
	position:fixed;
	left:0;
	top:0;
	background:rgba(220,239,244,0.9);
	z-index:9999;
}
header .header_inner{
	display:flex;
	justify-content:space-between;
	padding:0 0 0 2rem;
}
header .header_inner .logo{
	padding:0.5rem 0;
}
header .header_inner .logo img{
	height:3rem;
}
header .header_inner nav ul{
	display:flex;
}
header .header_inner nav ul li{
	text-indent:0;
	padding-left:0;
}
header .header_inner nav ul li a{
	display:block;
	padding:1.5rem;
	font-weight:bold;
}
header .header_inner nav ul li a:hover{
	background:#172a88;
	color:white;
}
header .header_inner nav ul li a.bgred:hover{
	background:red;
}
article{
	padding-top:80px;
}
section{
	margin-top:-40px;
	padding-top:40px;
}

.sp{display:none;}


@media screen and (max-width:896px) {
	.W-896 {
		display: block;
	}
	.W-896none {
		display: none;
	}
	html {
		font-size: calc(100vw * 16 / 896);
	}
    .size20 { font-size: 1rem;}
    .size23 { font-size: 1.1375rem;}
    .size25 { font-size: 1.2625rem;}
    .size30 { font-size: 1.3rem;}
    .size32 { font-size: 1.375rem;}
    .size57 { font-size: 2.5625rem;}
    .size64 { font-size: 2.6rem;}
    .size100 { font-size: 4.25rem;}
    
	.section_inner, .footer_inner, .mainimg_inner{
		max-width: 100%;
		width: 90%;
	}
    section.mainimg .maintxt img {
        top: -2rem;
        width: 7.3125rem;
    }
    section.mainimg .flex_box p.circle {
        width: 10.625rem;
        height: 10.625rem;
        margin: 0 0 0 2rem;
    }
    section.mainimg .flex_box .sub_catch p {
        padding: 1.5rem 2rem 1.5rem 2.5rem;
    }
	section.two .section_inner > div {
		width: 100%;
	}
	section .section_inner .day_list > div {
		width: 100%;
	}
    section.two .section_inner {
        gap: 2rem;
    }
    section .section_inner .btn a {
        margin: 0 auto;
        justify-content: space-between;
    }
    .h3_title {
        flex-wrap: wrap;
        justify-content: flex-start;
        gap: 0 0.5rem;
    }
    .h3_title.tabmtn {
        margin-top: 0;
    }
	section .section_inner table {
		width: 100%;
	}
	section .section_inner table th{
		padding: 1rem 0rem 0.5rem;
		display: block;
	}
	section .section_inner table td {
		padding: 0rem 0rem 0.8rem;
		display: block;
	}
    section .section_inner .curriculum_flex {
        justify-content: center;
    }
    section .section_inner .curriculum_flex p {
        width: 100%;
    }
    section .section_inner .day_list > div .bgwhite {
        width: 6rem;
    }
    section .section_inner .day_list > div {
        gap: 1.2rem;
    }
    section .section_inner .link_flex {
        justify-content: center;
    }
	footer .footer_row {
		gap: 0.5rem;
		margin: 1.5rem 0;
		flex-flow: column;
		align-items: flex-start;
	}
	header .header_inner nav ul li a{
		margin:1.5rem 1rem;
		padding:0;
		display:block;
	}
	header .header_inner nav ul li a:hover{
		color:#333;
		background:transparent;
	}
	section.mainimg{
		margin-bottom:40px;
	}
	section .section_inner .day_list > div .date.flex{
		flex-wrap:wrap;
		width:84%;
	}
	section .section_inner .day_list > div .date.flex dl dt, section .section_inner .day_list > div .date.flex dl dd{
		clear:both;
	}
}
@media screen and (max-width:640px) {
	.W-640{
		display: block;
	}
	.W-640none{
		display: none;
	}
	html {
		font-size: 3vw;
	}
	body p, body li, body th, body td {
		font-size: 1.25rem;
	}
	p, th, td, li, dt, dd, h1, h2, h3, h4, h5, h6 {
		line-height: 1.8;
	}
    .size20 { font-size: 1.2rem;}
    .size23 { font-size: 1.3375rem;}
    .size30 { font-size: 1.5rem;}
    .size37 { font-size: 1.3125rem;}
    .size60 { font-size: 2.8rem;}
    .size100 { font-size: 4rem;}
    
    .h3_title{
        padding: 0.4rem 2rem 0.7rem 1rem;
    }
    .h3_title p{
        line-height: 1.4em;
    }
    section.mainimg {
        background: url(images/bg.svg) repeat center;
        background-size: contain;
    }
    section.mainimg .maintxt img {
        width: 7rem;
    }
    section.mainimg .flex_box {
        position: relative;
        margin-top:5rem;
		justify-content: center;
    }
    section.mainimg .flex_box p.circle {
        position: absolute;
        top: -8.5rem;
        right: 0rem;
        transform: rotate(11.222deg);
        margin-right: 1rem;
        z-index: 999;
    }
    section.mainimg .flex_box .sub_catch p {
        padding:2.5rem 2rem 1.5rem 2rem;
        clip-path: none;
        width: 100%;
		box-sizing: border-box;
    }
    section .section_inner .day_list > div {
        gap: 1rem;
    }
    section .section_inner .day_list > div .bgwhite {
        width: 100%;
        padding: 0;
    }
    section .section_inner .day_list {
        gap: 1.8rem;
    }
    section .section_inner .curriculum_flex {
        gap: 2rem;
    }
    section.last {
        background: url(images/bg2.webp) no-repeat bottom center;
        background-size: contain;
    }
	footer .footer_row .label {
		width: 100%;
		padding: 0.25rem 0;
	}
	header .header_inner nav{
		position:fixed;
		width:70%;
		height:100%;
		background:rgba(255,255,255,0.9);
		left:100%;
		top:0;
	}
	header .header_inner nav ul{
		display:block;
	}
	header .header_inner nav ul li{
		border-bottom:1px solid #ccc;
	}
	header .header_inner nav ul li a{
		margin:0;
		padding:1rem;
	}
	header .header_inner .logo{
		padding:1rem 0;
	}
	.sp{
		display:block;
	}
	.header_inner .header_btn{
		width: 24px;
		z-index: 10;
		height: 18px;
		position:relative;
		margin:20px;
	}
	.menu__line {
		background: #111; /* スマホメニュー3本線の色はここで変更できます */
		display: block;
		height: 3px;
		position: absolute;
		transition: transform .3s;
		width: 100%;
	}
	.menu__line--center {
		top: 7px;
	}
	.menu__line--bottom {
		bottom: 0;
	}
	.menu__line--top.active {
		top: 8px;
		transform: rotate(45deg);
	}
	.menu__line--center.active {
		transform: scaleX(0);
	}
	.menu__line--bottom.active {
		bottom: 8px;
		transform: rotate(135deg);
	}
	section .section_inner .day_list > div .bgwhite.athlete{
		padding:0;
		font-size:1.5rem;
	}
	section div.flex{
		display:block;
	}
	section div.flex p{
		width:100%;
	}
	section > div ul.item{
		margin-top:1rem;
	}
	section .section_inner .day_list > div .date.flex{
		width:100%;
	}
	section .section_inner .day_list > div .date.flex dl dt, section .section_inner .day_list > div .date.flex dl dd{
		font-size:1.2rem;
	}
	section.last{
		margin-top:40px;
	}
}