@charset "UTF-8";
:root{
    --font-family:'Noto Sans JP', sans-serif;
    --font-size:1rem;
    --font-weight:400;
    --font-weight-bold:800;
    --font-color:#192833;
    --line-height:1.75;
    --body-bg-color:#fff;
    --element-bg-color:#e7f0f7;
    --element-bg-light-color:#f2f7fa;
    --color-primary:#0f3291;/* ネイビー：見出し文字色など */
    --color-secondary:#009ee7;/* ターコイズブルー：「目標」など */
    --color-tonic:#ff5e00;/* pdfリンクなど。コンテンツの文脈から離れる||強調したい */
    --icons-font-family:'Material Symbols Outlined';

	/* 参加団体専用 */
	--color-mo:#00a0c8;/* ターコイズブルー：「目標」など */

	/* sp版 */
	--contents-side-space:15px;
	--contents-area-top-space:45px;
	--contents-area-bottom-space:60px;
	--footer-top-margin:45px;
	--main-content-top-margin:30px;
	--main-content-bottom-margin:30px;
	--container-max-width:1200px;
}
/* --------------------------------

    reset start 

---------------------------------*/
*,::after,::before{
	box-sizing:border-box
}
body{
	margin:0;
	font-family:var(--font-family);
	font-size:var(--font-size);
	font-weight:var(--font-weight);
	line-height:var(--line-height);
	color:var(--font-color);
	background-color:#fff;
	-webkit-text-size-adjust:100%;
	-webkit-tap-highlight-color:transparent
}
hr{
	margin:1rem 0;
	color:inherit;
	border:0;
	border-top:1px solid;
	opacity:.25
}
h1,h2,h3,h4,h5,h6{
	margin-top:0;
	margin-bottom:.5rem;
	font-weight:500;
	line-height:1.2;
}
h1{
	font-size:calc(1.375rem + 1.5vw)
}
@media (min-width:998px){
	h1{
		font-size:2.5rem
	}
}
h2{
	font-size:calc(1.375rem + .9vw)
}
@media (min-width:998px){
	h2{
		font-size:2rem
	}
}
h3{
	font-size:calc(1.25rem + .6vw)
}
@media (min-width:998px){
	h3{
		font-size:1.5rem
	}
}
h4{
	font-size:calc(1.1rem)
}
h5{
	font-size:1rem;
	line-height:1.4;
}
h6{
	font-size:1rem;
	line-height:1.5;
}
p{
	margin-top:0;
	margin-bottom:1rem
}
abbr[title]{
	-webkit-text-decoration:underline dotted;
	text-decoration:underline dotted;
	cursor:help;
	-webkit-text-decoration-skip-ink:none;
	text-decoration-skip-ink:none
}
address{
	margin-bottom:1rem;
	font-style:normal;
	line-height:inherit
}
ol,ul{
	padding-left:2rem
}
dl,ol,ul{
	margin-top:0;
	margin-bottom:1rem
}
ol ol,ol ul,ul ol,ul ul{
	margin-bottom:0
}
dt{
	font-weight:700
}
dd{
	margin-bottom:.5rem;
	margin-left:0
}
blockquote{
	margin:0 0 1rem
}
b,strong{
	font-weight:bolder
}
.small,small{
	font-size:.875em
}
.mark,mark{
	padding:.1875em;
	background-color:var(--bs-highlight-bg)
}
sub,sup{
	position:relative;
	font-size:.75em;
	line-height:0;
	vertical-align:baseline
}
sub{
	bottom:-.25em
}
sup{
	top:-.5em
}
a{
	color:var(--font-color);
	text-decoration:underline
}
a:hover{
	opacity:.5;
}
a:not([href]):not([class]),a:not([href]):not([class]):hover{
	color:inherit;
	text-decoration:none
}
code,kbd,pre,samp{
	font-style: italic;
	font-size:1em
}
pre{
	display:block;
	margin-top:0;
	margin-bottom:1rem;
	overflow:auto;
	font-size:.875em
}
pre code{
	font-size:inherit;
	color:inherit;
	word-break:normal
}
code{
	font-size:.875em;
	word-wrap:break-word
}
a>code{
	color:inherit
}
kbd{
	padding:.1875rem .375rem;
	font-size:.875em;
	color:var(--font-color);
	background-color:var(--body-bg-color);
	border-radius:.25rem
}
kbd kbd{
	padding:0;
	font-size:1em
}
figure{
	margin:0 0 1rem
}
img,svg{
	vertical-align:middle
}
table{
	caption-side:bottom;
	border-collapse:collapse
}
caption{
	padding-top:.5rem;
	padding-bottom:.5rem;
	text-align:left
}
th{
	text-align:inherit;
	text-align:-webkit-match-parent
}
tbody,td,tfoot,th,thead,tr{
	border-color:inherit;
	border-style:solid;
	border-width:0
}

label{
	display:inline-block
}
button{
	border-radius:0
}
button:focus:not(:focus-visible){
	outline:0
}
button,input,optgroup,select,textarea{
	margin:0.25em 0;
	font-family:inherit;
	font-size:inherit;
	line-height:inherit
}
button,select{
	text-transform:none
}
[role=button]{
	cursor:pointer
}
select{
	word-wrap:normal
}
select:disabled{
	opacity:1
}
[list]:not([type=date]):not([type=datetime-local]):not([type=month]):not([type=week]):not([type=time])::-webkit-calendar-picker-indicator{
	display:none!important
}
[type=button],[type=reset],[type=submit],button{
	-webkit-appearance:button
}
[type=button]:not(:disabled),[type=reset]:not(:disabled),[type=submit]:not(:disabled),button:not(:disabled){
	cursor:pointer
}
::-moz-focus-inner{
	padding:0;
	border-style:none
}
textarea{
	resize:vertical
}
fieldset{
	min-width:0;
	padding:0;
	margin:0;
	border:0
}
legend{
	float:left;
	width:100%;
	padding:0;
	margin-bottom:.5rem;
	font-size:calc(1.275rem + .3vw);
	line-height:inherit
}
@media (min-width:998px){
	legend{
		font-size:1.5rem
	}
}
legend+*{
	clear:left
}
::-webkit-datetime-edit-day-field,::-webkit-datetime-edit-fields-wrapper,::-webkit-datetime-edit-hour-field,::-webkit-datetime-edit-minute,::-webkit-datetime-edit-month-field,::-webkit-datetime-edit-text,::-webkit-datetime-edit-year-field{
	padding:0
}
::-webkit-inner-spin-button{
	height:auto
}
[type=search]{
	outline-offset:-2px;
	-webkit-appearance:textfield
}
::-webkit-search-decoration{
	-webkit-appearance:none
}
::-webkit-color-swatch-wrapper{
	padding:0
}
::-webkit-file-upload-button{
	font:inherit;
	-webkit-appearance:button
}
::file-selector-button{
	font:inherit;
	-webkit-appearance:button
}
output{
	display:inline-block
}
iframe{
	border:0
}
summary{
	display:list-item;
	cursor:pointer
}
progress{
	vertical-align:baseline
}
[hidden]{
	display:none!important
}

/* ============= end reset ============ */

/* ============= basic settings : form ============ *
/* radio, checkbox */
input[type="checkbox"],
input[type="radio"]{
	width:1.1em;
	height:1.1em;
	vertical-align:middle;
	margin:0 5px;
}
/* select */
select{
	display:inline-block;
	box-sizing:border-box;
	margin:5px;
	padding:0 0.5em;
	font-size:1em;
	line-height:1;
	height:2em;
	border:solid 2px #ccc;
	border-radius:7px;
	background:#fff;
}
/* input text系, textarea */
textarea,
input:not([type="checkbox"], [type="radio"], [type="color"],[type="range"]),
button{
	/* reset */
	background: none;
	border: none;
	border-radius: 0;
	outline: none;
	-webkit-appearance: none;
	-moz-appearance: none;
	appearance: none;
	/**/
	display:inline-block;
	box-sizing:border-box;
	margin:5px;
	padding:0;
	font-size:1em;
	line-height:1;
}
textarea,
input[type="text"],
input[type="search"],
input[type="tel"],
input[type="email"],
input[type="password"],
input[type="datetime"],
input[type="date"],
input[type="month"],
input[type="week"],
input[type="time"],
input[type="datetime-local"],
input[type="number"]{
	padding:0 0.5em;
	height:2em;
	color:var(--font-color);
	background: #fafafa;
	border:solid 2px #ccc;
	border-radius:7px;
	box-shadow: 0 0 6px -3px #999 inset;
}
textarea:focus,
input[type="text"]:focus,
input[type="search"]:focus,
input[type="tel"]:focus,
input[type="email"]:focus,
input[type="password"]:focus,
input[type="datetime"]:focus,
input[type="date"]:focus,
input[type="month"]:focus,
input[type="week"]:focus,
input[type="time"]:focus,
input[type="datetime-local"]:focus,
input[type="number"]:focus{
	border:solid 2px #555;
}
textarea{
	padding:0 0.5em;
	line-height:1.5;
	height:auto;
}
/* input button系, button */
input[type="reset"],
input[type="button"],
input[type="submit"],
button{
	color:#fff;
	background: var(--color-primary);
	border-radius:7px;
	padding:0 1em;
	height:2em;
}
/* .round */
select.round,
textarea.round,
input:not([type="checkbox"], [type="radio"], [type="color"],[type="range"]).round,
button.round{
	border-radius:3em;
	padding:0 1em;
}
/* .shade */
select.shade{
	box-shadow: 2px 2px 8px -3px #999;
}
input[type="reset"].shade,
input[type="button"].shade,
input[type="submit"].shade,
button.shade{
	box-shadow: 2px 2px 10px -3px #333;
}

/* wrappe囲み
-------------------------------*/
/* search */
.search_wrapper{
	display:inline-block;
	position:relative;
	margin:5px;
}
	.search_wrapper:before{
		display:inline-block;
		font-family:var(--icons-font-family);
		content:'search';
		font-size:1.5em;
		line-height:calc(2em / 1.5);
		height:calc(2em / 1.5);
		position:absolute;
		left:0.5em;
	}
	.search_wrapper input[type="search"]{
		display:inline-block;
		margin:0;
		padding-left:2.25em;
		width:100%;
	}
	.search_wrapper input[type="submit"]{
		display:none;
	}
/* select */
.select_wrapper{
	display:inline-block;
	position:relative;
	background: #fff;
	margin:5px;
	border-radius:3em;
}
	.select_wrapper:before{
		position:absolute;
		right:12px;
		top:.7em;
		display:block;
		width:8px;
		height:8px;
		border-top:solid 2px var(--color-primary);
		border-right:solid 2px var(--color-primary);
		transform:rotate(135deg);
		content:' ';
	}
	.select_wrapper select,
	.select_wrapper select:focus{
		appearance:none;
		border:none;
	}
	.select_wrapper select::-ms-expand{
		display:none;
	}
	.select_wrapper select,
	.select_wrapper select:focus{
		position:relative;
		width:100%;
		margin:0;
		padding-right:2em;
		background:transparent;
		border:solid 2px #ccc;
	}

/* ============= basic settings : UI component ============ */

/* input */
.component input.toggle{display:none}
/* overlay */
.component input ~ .overlay{display:block; position:fixed; top:0; left:0; overflow:hidden; z-index:1000; background-color:rgba(17, 17, 17, 0); width:0; height:0; transition:background-color 0.5s;}
.component input:checked ~ .overlay{background-color:rgba(17, 17, 17, 0.85); width:100%; height: 100vh;}
/* drawer menu */
.component.drawer > input ~ .target{position:fixed; top:0; z-index:1001; transition:all 0.5s;}
.component.drawer.left > input ~ .target{left:-100%;}
.component.drawer.left > input:checked ~ .target{left:0;}
.component.drawer.right > input ~ .target{right:-100%;}
.component.drawer.right > input:checked ~ .target{right:0;}
/* accordion */
.component.accordion input ~ .target{max-height:0; overflow: hidden; opacity:0; transition-delay:0; transition-duration:.5s; }
.component.accordion input:checked ~ .target{max-height:750px; opacity:1; overflow:visible;}
/* popup */
.component.popup input ~ .target{position:fixed; top:0; left:0; width:0; height:0; overflow: hidden; z-index:1001; opacity:0; transition:opacity .5s; transition:top .5s;}
.component.popup input:checked ~ .target{right:0; bottom:0; margin:auto; width:70%; height:50%; opacity:1;}

@media (min-width: 768px) {
    /* overlay */
    .component[data-device-not-included="tb"] :checked ~.overlay{opacity:.0; width:0; height:0; position:static;}
    /* target */
    .component[data-device-not-included="tb"] input ~ .target{transition:none;}

    /* drawer */
    .component.drawer[data-device-not-included="tb"] input ~ .target{position:static; transition:none;}
    .component.drawer[data-device-not-included="tb"] :checked ~ .target{left:0;}
    
    /* accordion */
    .component.accordion[data-device-not-included="tb"] input ~ .target{max-height:1000px; overflow: visible; height:auto; opacity:1;}
    /* popup */
    .component.popup[data-device-not-included="tb"] input ~ .target{position:static; width:auto; height:auto; overflow:visible; opacity:1;}
    .component.popup[data-device-not-included="tb"] input:checked ~ .target{margin: 0; width:auto; height:auto; }
}
    
@media (min-width: 998px) {
    /* overlay */
    .component[data-device-not-included="pc"] :checked ~.overlay{opacity:.0; width:0; height:0; position:static;}
    /* target */
    .component[data-device-not-included="pc"] input ~ .target{transition:none;}

    /* drawer */
    .component.drawer[data-device-not-included="pc"] input ~ .target{position:static; transition:none;}
    .component.drawer[data-device-not-included="pc"] :checked ~ .target{left:0;}
    
    /* accordion */
    .component.accordion[data-device-not-included="pc"] input ~ .target{max-height:1000px; overflow: visible; opacity:1;}
    /* popup */
    .component.popup[data-device-not-included="pc"] input ~ .target{position:static; width:auto; height:auto; overflow:visible; opacity:1;}
    .component.popup[data-device-not-included="pc"] input:checked ~ .target{margin: 0; width:auto; height:auto; }
}

@media (min-width: 998px) and (hover: hover) {
    /* hover対応デバイス（PC）で、アコーディオンのクリックの動作を消してhoverで反応させる */
    .component.accordion[-data-hover-ability="able"] input:checked ~ .target{max-height:0; overflow:hidden; opacity:1;}
    .component.accordion[-data-hover-ability="able"]:hover input ~ .target{max-height:750px !important; overflow:visible;}

}

/* ============= basic settings : icons ============ */
.icon{font-family:var(--icons-font-family); font-size:1.5em; vertical-align:middle; line-height:1; font-variation-settings:'FILL' 0, 'wght' 300, 'GRAD' 0, 'opsz' 24;}
.icon.thin{font-variation-settings:'FILL' 0, 'wght' 100, 'GRAD' 0, 'opsz' 24}
.icon.light{font-variation-settings:'FILL' 0, 'wght' 200, 'GRAD' 0, 'opsz' 24;}
.icon.reegular{font-variation-settings:'FILL' 0, 'wght' 300, 'GRAD' 0, 'opsz' 24;} /* <-default */
.icon.medium{font-variation-settings:'FILL' 0, 'wght' 400, 'GRAD' 0, 'opsz' 24;}
.icon.bold{font-variation-settings:'FILL' 0, 'wght' 700, 'GRAD' 0, 'opsz' 24;}


/* ============= basic settings : WP editor styles ============ */
.post_content{
	overflow-wrap:break-word;

    > *:first-child{
        margin-top:0 !important;
    }
    h1,
    h2,
    h3,
    h4,
    h5,
    h6{
        margin-top:1.75em;
        margin-bottom:0.5em;
        font-weight:500;
        margin-top:1.75em;
        margin-bottom:0.5em;
        font-weight:500;
    }
    h1,
    h2,
    h3{
        color:var(--color-primary);
    }
    p{
        margin:0 0 1.5em;
    }
    ul,
    ol{
        margin:0 0 1.5em;
        padding:0 0 0 1.25em;
    }
    li{
        margin:0.5em 0;
        padding:0;
    }
	.table_wrapper{
		width:100%;
		overflow: auto;
	}
    table{
        margin:1em 0 1.75em;
		max-width:100% !important;
    }
    th,
    td{
        background:var(--element-bg-light-color);
        padding:0.5em 1.25em;
        border:solid 2px #fff;
        width:auto;
        line-height: 1.4;
    }
    th{
        background:var(--element-bg-color);
        text-align: center;
    }
    blockquote,
    code{
        margin:1em 0 1.75em;
        padding:1.75em 1.5em;
        background:var(--element-bg-light-color);
        border-radius: 5px;
    }
    blockquote *:last-child,
    code *:last-child{
        margin-bottom:0 !important;
    }
    code{
        display:block;
        position:relative;
    }
    code:before{
        content:'CODE';
        font-weight:bold;
        font-style:italic;
        position:absolute;
        top:0;
        left:5px;
    }
    hr{
        display:block;
        margin:3em 0;
    }
	img{
		max-width:100%;
		height:auto;
	}

	.color-basic{
		color:var(--font-color);
	}
	.color-primary{
		color:var(--color-primary);
	}
	.color-secondary{
		color:var(--color-secondary);
	}
	.color-tonic{
		color:var(--color-tonic);
	}
	.bg-basic{
		background:var(--font-color);
		color:#fff;
	}
	.bg-primary{
		background:var(--color-primary);
		color:#fff;
	}
	.bg-secondary{
		background:var(--color-secondary);
		color:#fff;
	}
	.bg-tonic{
		background:var(--color-tonic);
		color:#fff;
	}
	.bg-block{
		background:#e7f0f7;
	}
	.bg-block-light{
		background:#f2f7fa;
	}
	.nowrap{
		white-space:nowrap;
	}
}
/* classes 
------------------------*/
/* button large */
.btn_lg,
.btn-lg{
    color:var(--color-primary);
    /*font-size:1.25em;*/
	font-size:1.11rem;
    font-weight:500;
    line-height: 1.2;
    text-decoration:none;
    border:solid 2px;
    border-radius:1.5rem;
    width:100%;
    max-width:360px;
    height:3rem;
    margin:0 auto;
    /*padding:0 calc(1.5em + 10px);*/
    padding:0 calc(1.3333rem + 10px);
    background:rgba(255, 255, 255, 0.9);
    display:flex;
    align-items:center;
    justify-content:center;
    position:relative;
}
    .btn_lg:after,
	.btn-lg:after{
        font-family:var(--icons-font-family);
        content:'keyboard_double_arrow_right';
        font-size:1.5em;
        font-weight:200;
        position:absolute;
        right:10px;
    }
/* button DL */
a.dl{
    color:var(--color-tonic);
    display:inline-flex;
    align-items:center;
}
a.dl_btn,
a.dl-btn{
    text-decoration:none;
    line-height:1;
    display:inline-flex;
	vertical-align:middle;
    color:var(--color-tonic);
    background:rgba(255, 255, 255, 0.5);
    border:solid 1px;
    border-radius:3px;
    align-items:center;
    padding:0px 7px 2px 2px;
}
    a.dl_btn:before,
	a.dl-btn:before{
        font-family:var(--icons-font-family);
        font-size:1.4em;
        /*line-height:1;*/
        content:'chevron_right';
        /*width:0.8em;*/
    }
a.arrow-start:before{
	font-size:0.8em;
    font-family:var(--icons-font-family);
    content:'chevron_right';
}
a.arrow-end:after{
	font-size:0.8em;
    font-family:var(--icons-font-family);
    content:'chevron_right';
}

img.aligncenter{
    display:block;
    margin-left:auto;
    margin-right:auto;
    text-align:center;
}
img.alignleft{
    float:left;
    margin:0 1.5rem 1rem 0;
}
img.alignright{
    float:right;
    margin:0 0 1rem 1.5rem;
}
img.alignnone{
    float:none;
    text-align:left;
    display:inline;
}

small{
    font-size:90%;
    line-height:1.5em;
}
small small{
    font-size:75%;
    line-height:1.5em;
}

/* 参加団体専用　基本設定
-----------------------------------*/
main.mo{
	button{
		background: var(--color-mo);
	}
	.select_wrapper:before{
		border-top:solid 2px var(--color-mo);
		border-right:solid 2px var(--color-mo);
	}
	.btn_lg,
	.btn-lg{
		color:var(--color-mo);
	}
}
main.mo .post_content{
	h1,
    h2,
    h3{
        color:var(--color-mo);
    }
	.bg-primary{
		background:var(--color-mo);
	}
	.bg-primary{
		background:var(--color-mo);
	}
}


/* 画像拡大用 modal window 
-----------------------------------*/
.modal {
    display: none;
    position: fixed;
    z-index: 10000;
    left: 0;
    top: 0;
    width: 100%;
    height: 100%;
    overflow: auto;
    background-color: rgb(0,0,0);
    background-color: rgba(0,0,0,0.9);
    align-items: center;
    justify-content: center;
    animation: modalFadeIn 0.3s;
}
.modal img {
    max-width: 90%;
    max-height: 90vh;
    object-fit: contain;
}
.modal span{
    display: block;
    color:#fff;
    position:absolute;
    top:10px;
    right:10px;
    font-size: 2.5em;
}
.kakudai:hover {
    cursor: zoom-in;
}
.modal img:hover {
    cursor: zoom-out;
}
@keyframes modalFadeIn {
    from { opacity: 0; }
    to { opacity: 1; }
}
@keyframes modalFadeOut {
    from { opacity: 1; }
    to { opacity: 0; }
}
/* 画像下に拡大ボタンをつけたい時 */
.kakudai.ico{
    position: relative;
    display:block;
    margin-bottom:2em;
}
.kakudai.ico:after{
    display:inline-block;
    content:'拡大';
    font-size:80%;
    line-height: 1;
    letter-spacing: 1px;
    background:#fff url(https://saiene.jp/wp-content/uploads/2025/07/ico_popup_zoom.png) 0.4em 50% / auto 70% no-repeat;
    padding:0.3em 0.8em 0.4em 2em;
    border-radius:30px;
    position: absolute;
    bottom:-2.5em;
    left:calc(50% - 2.4em);
    box-shadow:0 0 7px #777;
}


@media (min-width: 768px) {
	.spOnly{
		display:none;
	}
}

