@charset "utf-8";
/* CSS Document */

/* kankakyo.gr.jp
-----------------------------------------------------*/
@import url('https://fonts.googleapis.com/css2?family=Noto+Sans+JP:wght@100..900&display=swap');

* {
	margin: 0;
	padding: 0;
	box-sizing: border-box;
}

/* ==============================================
    html,body and base
============================================== */
html,body {
	height:100%;
}

table {
	empty-cells: show;
	border-collapse: collapse;
}
img {
	border: none;
	height: auto;
	vertical-align: top;
}
input,
select,
h1,h2,h3,h4,h5,h6 {
	font-size: 100%;
}

ul {
	letter-spacing: -.40em;
}
ul li {
	letter-spacing: normal;
}

/* ==============================================
    body
============================================== */
body {
	text-align: center;
	line-height: 1.2;
	color: #000;
	-webkit-text-size-adjust: 100%;
    font-size: 14px;
}
@media screen and (max-width: 700px) {
	body {
		min-width: 300px;
	}
}
@media print {
	body {
		min-width: 950px;
	}
}
body,
input,
select,
textarea {
	font-family: "Noto Sans JP", sans-serif;
    font-optical-sizing: auto;
    font-weight: 400;
    font-style: normal;
}

/* ==============================================
    link
============================================== */
a {
    color: #000;
}
a,
a::before,
a::after,
#globalNavi span,
#pagetop {
    transition: all .35s;
}
@media (hover: hover) {
    a:hover,
	#pagetop:hover {
		opacity: 0.6;
        text-decoration: none;
	}
}

/* ==============================================
    
============================================== */
:root {
    --side-space: 20px;
}
.inner,
main,
footer {
    width: 100%;
    padding: 0 var(--side-space);
	text-align: left;
}
@media screen and (max-width: 740px) {
    :root {
        --side-space: 12px;
    }
}
@media screen and (max-width: 400px) {
    :root {
        --side-space: 8px;
    }
}

.sp {
	display: none;
}
.call {}

/* ==============================================
    container
============================================== */
#container {
	position: relative;
    overflow: hidden;
    display: flex;
    flex-direction: column;
    min-height: 100vh;
}
footer {
    margin-top: auto;
}

/* ==============================================
    menuBtn span
============================================== */
#menuBtn {
	position: fixed;
	top: 4px;
	right: 5px;
    width: 44px;
    height: 44px;
    border-radius: 6px;
    background: #2c7ab4;
    box-shadow: 1px 2px 0px #dedede;
	cursor: pointer;
	z-index: 11;
}
#menuBtn span,
#menuBtn:before,
#menuBtn:after {
	display: block;
	position: absolute;
	width: 20px;
	height: 2px;
	background: #fff;
	top: 21px;
	left: 12px;
	transition: all .4s;
	opacity: 1;
}
#menuBtn span {
	transition: opacity 150ms 50ms;
}
#menuBtn:before,
#menuBtn:after {
	content: "";
}
#menuBtn:before { transform: translate(0, -5px); }
#menuBtn:after { transform: translate(0, 5px); }

#menuBtn.active {
    background: #fff;
}
#menuBtn.active span,
#menuBtn.active:before,
#menuBtn.active:after {
	background: #046384;
}
#menuBtn.active span { opacity: 0; }
#menuBtn.active:before { transform: rotate(45deg); }
#menuBtn.active:after { transform: rotate(-45deg); }
@media screen and (min-width: 741px) {
    #menuBtn {
        display: none;
    }
}

/* ==============================================
    header / footer
============================================== */
.siteid {
    position: relative;
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    width: 202px;
    height: 50px;
    padding-left: 50px;
}
.siteid a {
    text-decoration: none;
}
.siteid img {
    position: absolute;
    top: 50%;
    left: 0;
    transform: translateY(-50%);
    width: 40px;
}
.siteid strong,
.siteid span {
    display: block;
}
.siteid strong {
    margin-bottom: 6px;
    font-size: 19px;
    font-weight: 700;    
}
.siteid span {
    font-size: 6px;
    font-weight: 400;
    letter-spacing: 0.06em;
}

header .siteid {
    margin-left: 10px;
}
@media screen and (max-width: 740px) {
    header .siteid,
    #top_motion .siteid {
        height: 54px;
    }
}

/* ==============================================
    header
============================================== */
header {
    position: fixed;
    top: 0;
    left: 0;
    width: 100%;
    text-align: left;
    background: #fff;
    z-index: 10;
}
header.active {
    height: 100dvh;
    background: #046384;
}
header.active .siteid {
    color: #fff;
}

/* globalNavi / main nav
-------------------------------------*/
#globalNavi {
	list-style: none;
    display: grid;
}
#globalNavi li {
    position: relative;
    margin-right: -1px;
    border: 1px solid #d6d6d6;
}

#globalNavi span,
#globalNavi a,
main nav p a {
    display: flex;
    align-items: center;
    height: 36px;
	text-decoration: none;
    cursor: pointer;
}
#globalNavi span,
#globalNavi li > a {
    justify-content: center;
    background: linear-gradient(#fff 0%, #f8f8f8 100%);
	color: #000;
    text-align: center;
}
#globalNavi li div p a,
main nav p a {
    justify-content: flex-start;
    text-align: left;
    height: 28px;
    padding: 0 1em;
    color: #fff;
    white-space: nowrap;
    font-size: 12px;
}
@media (hover: hover) {
    #globalNavi li div p a:hover,
    main nav p a:hover {
        background: #569BA8;
        opacity: 1;
    }
}

header ::placeholder {
    color: #959595;
    font-size: 12px;
}
#container > .logout {
    position: fixed;
    top: 12px;
    right: 350px;
    z-index: 11;
}
header nav form input[type="button"] {
    position: absolute;
    top: 1px;
    right: 2px;
    width: 26px;
    height: 26px;
    margin: 0;
    padding: 0;
    background: url("image/icn_search.svg") no-repeat center center;
    background-size: 16px auto;
    box-shadow: none;
}

@media screen and (min-width: 741px) {
    #globalNavi {
        grid-template-columns: repeat(9, auto);
    }
    #globalNavi li div {
        min-width: 240px;
        visibility: hidden;
        opacity: 0;
        transition: opacity .25s, visibility .25s, transform .35s;
        position: absolute;
        top: 100%;
        left: 0;
        transform: translateY(-10px);
        z-index: 1;
        padding-bottom: 5px;
    }
    #globalNavi li.is_active div {
        visibility: visible;
        opacity: 1;
        transform: translateY(0);
    }
    #globalNavi li div p,
    main nav p {
        background: #046384;
    }
    header nav form,
    header nav .btn  {
        position: absolute;
    }
    header nav form,
    header nav .btn  {
        top: 12px;
    }
    header nav form {
        right: 135px;
    }
    header nav .btn {
        right: 10px;
    }
}
@media screen and (max-width: 1300px) {
    #globalNavi span,
    #globalNavi li > a {
        font-size: clamp(0.688rem, 0.063rem + 1vw, 0.875rem);
    }
}
@media screen and (min-width: 971px) {
    #globalNavi span br,
    #globalNavi li > a br {
        display: none;
    }
}
@media screen and (max-width: 740px) {
    header nav {
        text-align: center;
        width: 100%;
        height: calc(100dvh - 50px);
        overflow-x: hidden;
        overflow-y: scroll;
        -webkit-overflow-scrolling: touch;
        padding-bottom: 30px;
    }
    #globalNavi {
        grid-auto-flow: column;
        grid-template-rows: repeat(9, auto);
    }
    #globalNavi span,
    #globalNavi li > a {
        height: 68px;
        font-size: 14px;
    }
    #globalNavi span br,
    #globalNavi li > a br {
        display: none;
    }
    #globalNavi li div {
        display: none;
        background: #046384;
        transition: all .4s;
    }
    #globalNavi li.is_active div {
        display: block;
    }
    #globalNavi li div p {
        margin-bottom: 1px;
    }
    #globalNavi li div p a {
        justify-content: center;
        background: #569ba8;
        text-align: center;
    }
    #container > .logout {
        right: 55px;
    }
    header nav form {
        position: relative;
        width: 204px;
        margin: 10px auto;
    }
    header nav .btn a  {
        margin: auto;
    }
}

/* ==============================================
    main
============================================== */
main {
    padding-top: 86px;
    margin-bottom: 30px;
}
@media screen and (max-width: 740px) {
    main {
        padding-top: 52px;
    }
}

main:has(nav) {
    display: grid;
}
@media screen and (max-width: 1000px) and (min-width: 741px) {
    main:has(nav) {
        grid-template-columns: 23vw auto;
        grid-gap: 0 3vw;
    }
}
@media screen and (min-width: 741px) {
    main:has(nav) {
        grid-template-columns: 230px auto;
        grid-gap: 0 30px;
    }
    main:has(nav) h1 {
        grid-column: 1 / 3;
    }
}
@media screen and (max-width: 740px) {
    main:has(nav) nav {
        display: none;
    }
}

/* ==============================================
    main - titles
============================================== */
main h1,
main:has(h1) h2,
main:has(h1) h6 {
    position: relative;
}
main h1::before,
main:has(h1) h2::before,
main:has(h1) h6::before {
    content: "";
    position: absolute;
    display: block;
}
main:has(h1) * + h2,
main:has(h1) h3,
main:has(h1) h4,
main:has(h1) h5,
main:has(h1) h6 {
    margin-top: 32px;
}
main:has(h1) h2 + h3,
main:has(h1) h3 + h4,
main:has(h1) h4 + h5,
main:has(h1) h5 + h6 {
    margin-top: 16px;
}
main:has(h1) h2,
main:has(h1) h3,
main:has(h1) h4,
main:has(h1) h5,
main:has(h1) h6 {
    margin-bottom: 16px;
}
main:has(h1) h2,
main:has(h1) h3,
main:has(h1) h4 {
    font-weight: 400;
}
main:has(h1) h5,
main:has(h1) h6 {
    font-weight: 700;
}

main h1 {
    display: flex;
    align-items: center;
    justify-content: flex-start;
    height: 4em;
    margin-bottom: 16px;
    padding-left: 2.5em;
    border-bottom: 3px solid #d1e3e9;
    text-align: left;
    font-size: 20px;
    color: #046384;
}
main h1::before {
    top: 50%;
    left: 0.35em;
    width: 1.6em;
    height: 1.25em;
    background: #D1E3E9;
    transform: translateY(-50%);
    clip-path: polygon(0 0, 100% 0, 50% 100%);
}
main:has(h1) h2 {
    padding: 0.8em 1em 0.8em 1.5em;
    background: #046384;
    border-bottom: 2px solid #dedede;
    font-size: 18px;
    color: #fff;
}
main:has(h1) h2::before {
    top: 50%;
    left: 0;
    width: 0.7222em;
    height: 1px;
    background: #fff;
}
main:has(h1) h3 {
    padding: 0.5em 0.625em;
    background: #569BA8;
    border-bottom: 2px solid #dedede;
    font-size: 16px;
    color: #fff;
}
main:has(h1) h4 {
    padding: 0.4em 0.625em;
    background: #efefef;
    border-left: 3px solid #959595;
    font-size: 16px;
    font-weight: 400;
}
main:has(h1) h5 {
    padding: 0.125em 0.5em;
    border-left: 6px solid #046384;
    font-size: 16px;
    color: #046384;
}
main:has(h1) h6 {
    padding-left: 1em;
}
main:has(h1) h6::before {
    top: 50%;
    left: 0;
    width: 0.5em;
    height: 2px;
    margin-top: -1px;
    background: #046384;
}

main p {
    line-height: 1.45;
}
main li {
    line-height: 1.3;
}
main li + li {
    margin-top: 0.4em;
}
main ul {
    list-style: none;
    margin: 1em 8px;
}
main ul li {
    position: relative;
    padding-left: 20px;
}
main ul li::before {
    position: absolute;
    left: 0;
    top: 8px;
    content: "";
    display: block;
    width: 6px;
    height: 6px;
    border-radius: 50%;
    background: #959595;
}
main ol {
    margin: 1em 8px 1em 1.5em;
}

/* ==============================================
    main - parts
============================================== */
.center {
    text-align: center;
}
.right {
    text-align: right;
}
.btn a {
    display: inline-block;
    padding: 0.6em 3.5em;
    border-radius: 6px;
    background: #fff;
    border: 1px solid #046384;
    box-shadow: 1px 1px 0px #569ba8;
    text-decoration: none;
    text-align: left;
    font-size: 12px;
}
header .btn a,
footer .btn a,
#event__news .btn a {
    display: flex;
    justify-content: center;
    align-items: center;
    padding: 0;
}
header .btn a {
    width: 114px;
    height: 28px;
    padding-left: 24px;
    background: url("image/btn_contact.svg") no-repeat #2c7ab4 left 10px center / 16px auto;
    box-shadow: 1px 2px 0px #dedede;
    color: #fff;
}
footer .btn a {
    width: 184px;
    padding-left: 19px;
    background: url("image/btn_map.svg") no-repeat #fff left 14px center / 14px auto;
    font-size: 14px;
}
footer .btn a,
#event__news .btn a {
    height: 34px;
}
#event__news .btn a {
    width: 160px;
    margin: auto;
}

main .btn a {
    position: relative;
}
main .btn a::before {
    position: absolute;
    left: 14px;
    top: 50%;
    content: "";
    display: block;
    width: 7px;
    height: 8px;
    background: #569BA8;
    clip-path: polygon(0 0%, 100% 50%, 0 100%);
    transform: translate(0, -4px)
}
@media (hover: hover) {
    main .btn a:hover {
        background: #e6f1f3;
        opacity: 1;
    }
    .btn a:hover::before {
        transform: translate(2px, -4px)
    }
}

/*table {
    margin: 1em auto;
}*/
table {
    margin-top: 1em;
    margin-bottom: 1em;
}
th,
td {
    padding: 0.8em 1em;
    /*text-align: center;
    vertical-align: middle; */
    border: 1px solid #c5c5c5;
    font-weight: 400;
}
th {
    background: #e6eeef;
}

/* ==============================================
    form
============================================== */
input[type="text"],
input[type="search"],
input[type="email"],
input[type="password"],
#form select,
textarea {
    padding: 0.2em 0.5em 0.25em;
    border-radius: 4px;
    border: 1px solid #959595;
    background: #fff;
    outline: none;
}
::placeholder {
    color: #afafaf;
}
input[type="submit"],
input[type="reset"],
input[type="button"] {
	-webkit-appearance: none;
    border: none;
    outline: none;
    display: flex;
    justify-content: center;
    align-items: center;
    height: 42px;
    margin: 1em auto;
    padding: 0 110px;
    border-radius: 6px;
    background: #046384;
    box-shadow: 1px 2px 0px #569ba8;
    font-weight: 700;
    color: #fff;
    font-size: 14px;
    cursor: pointer;
    transition: all .35s;
}
td input[type="button"] {
    display: inline-block;
    height: 34px;
    margin: 5px;
    padding: 0 1em;
    border-radius: 0;
    border: 1px solid #959595;
    background: none;
    box-shadow: none;
    font-weight: 400;
    font-size: 12px;
    color: #000;
}
@media (hover: hover) {
    input[type="submit"]:hover,
    input[type="reset"]:hover,
    input[type="button"]:hover {
        background-color: #0e7ba1;
        opacity: 1;
    }
    td input[type="button"]:hover {
        background-color: #eee;
    }
}
@media screen and (max-width: 600px) {
    input[type="submit"],
    input[type="reset"],
    input[type="button"] {
        padding: 0 50px;
    }
}

form table {
    width: 100%;
}
form th,
form td {
    vertical-align: middle;
    border: 1px solid #c5c5c5;
    border-color: #fff;
    text-align: left;
}
form th {
    position: relative;
    padding: 13px 10px;
}
form tr:has(td) th {
    width: 250px;
    width: 290px;
} 
form tr:has(th) td {
    padding: 0 0 0 17px;
} 
form td dl {
    display: flex;
    justify-content: flex-start;
    align-items: center;
} 
form td dt {
    white-space: nowrap;
    padding-right: 1em;
} 
form th .require,
form h4 .require {
    padding: 0.2em 0.4em;
    background: #b92929;
    font-size: 12px;
    font-weight: 500;
    color: #fff;
} 
form th .require { 
    position: absolute;
    top: 50%;
    right: 13px;
    transform: translateY(-50%);
}
form h4 .require {
    display: inline-block;
    vertical-align: middle;
    margin-left: 0.5em;
}

#form {
    margin: 2em auto;
    max-width: 1060px;
}
#form table {
    margin: 1.5em auto 4em;
}
#form table + input[type="button"] {
    margin-top: -2em;
    margin-bottom: 4em;
}
main:has(nav) #form {
    max-width: 100%;
}
#form.form_mini {
    max-width: 740px;
}

#form input[type="text"],
#form input[type="email"],
#form input[type="password"],
#form select,
#form textarea {
    margin: 6px 0;
    border: 1px solid #c5c5c5;
}
#form input[type="text"],
#form input[type="email"],
#form input[type="password"],
#form textarea {
    padding: 0.6em 0.8em;
}
#form input[type="text"][readonly],
#form input[type="email"][readonly] {
    border: none;
    padding: 0 0.4em;
    field-sizing: content;
}
#form .text_m,
#form .text_l,
#form td dd,
#form textarea {
    width: 100%;
}
#form .text_m,
#form td dd {
    max-width: 470px;
}
#form .text_l,
#form textarea {
    max-width: 800px;
}
#form textarea {
    height: 6em;
}

#form label {
    display: inline-block;
    margin: 5px 0;
}
#form td p {
    margin-bottom: 5px;
    font-size: 12px;
}
@media screen and (max-width: 1000px) and (min-width: 741px) {
    main:has(nav) #form th,
    main:has(nav) #form td {
        display: block;
    }
    main:has(nav) #form th {
        width: 100%;
    } 
    main:has(nav) #form td {
        padding: 5px 0;
    } 
    #form textarea {
        height: 10em;
    }
}
@media screen and (max-width: 670px) {
    #form th,
    #form td {
        display: block;
    }
    #form th {
        width: 100%;
    } 
    #form td {
        padding: 5px 0;
    } 
    #form textarea {
        height: 10em;
    }
}

#agree {
    margin: 4em 0 2em;
    text-align: center;
}

#form input[type="radio"],
#form input[type="checkbox"] {
    margin-right: 6px;
    -webkit-appearance: none; /* Safari 15.3以下のため */
    appearance: none;
    vertical-align: middle;
    background: #fff;
    display: inline-grid;
    place-content: center;
}
#form input[type="radio"] {
    width: 26px;
    height: 26px;
    border-radius: 50%;
    border: 1px solid #c5c5c5;
}
#form input[type="checkbox"] {
    position: relative;
    width: 28px;
    height: 28px;
    border-radius: 4px;
    border: 1px solid #959595;
}
#form input[type="radio"]::before,
#form input[type="checkbox"]::before {
    content: "";
    visibility: hidden;
}
#form input[type="radio"]::before {
    width: 16px;
    height: 16px;
    border-radius: 50%;
    background: #046384;
}
#form input[type="checkbox"]::before {
    position: absolute;
    left: 7px;
    top: 1px;
    width: 8px;
    height: 15px;
    border-right: 3px solid #046384;
    border-bottom: 3px solid #046384;
    transform: rotate(45deg);
}
#form input[type="radio"]:checked::before,
#form input[type="checkbox"]:checked::before {
    visibility: visible;
}

/* ==============================================
    footer
============================================== */
footer {
    display: flex;
    justify-content: space-between;
    flex-wrap: wrap;
    padding-top: 25px;
    padding-bottom: 8px;
    border-top: 1px solid #959595;
    background: url("image/footer.png") no-repeat center center;
}
footer .footer_info,
footer .btn {
    display: inline-block;
    vertical-align: top;
}
footer .footer_info p {
    margin-right: 1.3em;
    line-height: 1.428em;
    letter-spacing: 0.06em;
}
footer .btn {
    margin-top: -9px;
}
footer #footer_block ul {
    list-style: none;
    margin-top: 30px;
}
footer #footer_block ul li {
    display: inline-block;
    vertical-align: middle;
}
footer #footer_block ul li + li {
    margin-left: 1em;
    padding-left: 1em;
    border-left: 1px solid #959595;
}
footer #footer_block ul li a {
    text-decoration: none;
}
@media (hover: hover) {
    footer #footer_block ul li a:hover {
        text-decoration: underline;
    }
}
@media screen and (max-width: 1120px) {
    footer {
        background-position: right 41vw center;
    }
}
@media screen and (max-width: 1100px) and (min-width: 741px) {
    footer .footer_info,
    footer .btn {
        display: block;
    }
    footer .footer_info p {
        margin-right: 0;
    }
    footer .btn {
        margin-top: 10px;
    }
}
@media screen and (max-width: 1100px) {
    footer #footer_block ul {
        margin-top: 15px;
    }
}
@media screen and (max-width: 740px) {
    footer {
        background-position: top 20px right 15px;
    }
    footer #footer_block ul {
        margin-bottom: 20px;
    }
}
@media screen and (max-width: 530px) {
    footer .footer_info,
    footer .btn {
        display: block;
    }
    footer .footer_info p {
        margin-right: 0;
    }
    footer .btn {
        margin-top: 10px;
    }
}
@media screen and (max-width: 530px) {
    footer {
        background-image: none;
    }
}

#copyright {
    width: 100%;
    padding-top: 30px;
	text-align: center;
    font-size: 12px;
}

/* ==============================================
    pagetop
============================================== */
#pagetop {
    display: none;
    position: fixed;
    bottom: 10px;
    right: 20px;
    width: 80px;
    height: 70px;
    padding-top: 35px;
    font-size: 12px;
    color: #fff;
    text-align: center;
	cursor: pointer;
    clip-path: polygon(50% 0%, 0% 100%, 100% 100%);
    background: #046384;   
}
@media screen and (max-width: 740px) {
    #pagetop {
        display: none !important;
    }
}

/* ==============================================
    login_block
============================================== */
:root {
    --login_block-width: 530px;
}

.login_block {
    width: var(--login_block-width);
    height: 170px;
    padding: 12px 0 0;
    border-radius: 6px;
    background: #d7ebef;
}
.login_block form {
    display: grid;
    grid-template-columns: auto 164px;
    grid-gap: 0 13px;
}
.login_block form,
.login_block.login div {
    max-width: 500px;
    margin: auto;
}
.login_block h2 {
    display: flex;
    /*align-items: center;*/
    padding-left: 22px;
    font-weight: 700;
    color: #046384;
    background: url("image/tit_login.svg") no-repeat left 2px / 13px 20px;
    font-size: 18px;
}
.newmember {
    margin-left: -6px;
}

.newmember a,
.login_block input[type="submit"] {
    width: 100%;
    border-radius: 6px;
    color: #fff;
}
.newmember a {
    display: flex;
    justify-content: center;
    align-items: center;
    height: 26px;
    padding-left: 30px;
    background: no-repeat #569ba8;
    box-shadow: 1px 2px 0px #2c7ab4;
    text-decoration: none;
    text-align: left;
    font-size: 12px;
    line-height: 1.2;
}
.newmember .guide {
    margin-bottom: 5px;
}
.newmember .guide a {
    background-image: url("image/btn_guide.svg");
    background-position: left 13px center;
    background-size: 14px auto;
}
.newmember .regist a {
    background-image: url("image/btn_regist.svg");
    background-position: left 11px center;
    background-size: 20px auto;
}
.newmember .regist a br {
    display: none;
}
.login_block input[type="submit"] {
    height: 42px;
    margin: 19px 0 8px;
    padding: 0 0 0 16px;
    background-image: url("image/btn_login.svg");
    background-repeat: no-repeat;
    background-size: 13px auto;
    background-position: left 15px center;
    font-size: 13px;
}

.login_block label {
    display: block;
    margin-bottom: 5px;
}
.login_block .input label + label {
    margin-top: 5px;
}
.login_block .input span {
    display: inline-block;
    vertical-align: middle;
    width: 7.5em;
}
.login_block .input input {
    width: calc(100% - 7.5em);
}
.login_block .input a {
    display: block;
    margin-top: 5px;
    margin-left: 8.7em;
    font-size: 12px;
}
.login_block .remember {
    font-size: 12px;
    text-align: center;
}
.login_block .remember input {
    vertical-align: middle;
    margin-right: 2px;
}

.login_block.login div {
    /*position: relative;*/
    display: flex;
    justify-content: space-between;
    flex-wrap: wrap;
    /*align-items: flex-start;
    height: 100%;*/
}
.login_block.login div ul {
    list-style: none;
    /*display: grid;
    grid-template-columns: repeat(2, 1fr);
    grid-gap: 8px 7px;*/
    width: 100%;
    max-width: 500px;
    margin: 12px 0 0;
}
.login_block.login div ul li {
    margin-top: 0;
    margin-bottom: 7px;
    padding-left: 0;
}
.login_block.login div ul li::before {
    content: none;
}
.login_block.login div ul li a {
    display: block;
    padding: 5px 0 6px 12px;
    border-radius: 6px;
    background: #046384;
    box-shadow: 1px 1px 0px #569ba8;
    color: #fff;
    font-size: 12px;
    text-align: left;
    text-decoration: none;
}
.login_block.login div ul li a::before {
    content: "";
    display: inline-block;
    vertical-align: middle;
    width: 7px;
    height: 8px;
    margin-top: -2px;
    margin-right: 7px;
    clip-path: polygon(0 0, 100% 50%, 0 100%);
    background: #fff;
}
/*.logout {
    position: absolute;
    right: 0;
    bottom: 0;
}*/
.logout a {
    display: flex;
    justify-content: center;
    align-items: center;
    width: 110px;
    height: 32px;
    padding-left: 30px;
    border-radius: 6px;
    background: url("image/btn_logout.svg") no-repeat #5e5e5e left 13px center / 20px auto;
    box-shadow: 1px 2px 0px #569ba8;
    text-decoration: none;
    text-align: left;
    font-size: 12px;
    color: #fff;
}
#container > .logout a {
    width: 100px;
    height: 28px;
    padding-left: 20px;
    background-position: 9px center;
    background-size: 17px auto;
    box-shadow: 1px 2px 0px #dedede;
    font-size: 11px;
}
@media (hover: hover) {
    .login_block.login div ul li a:hover {
        background-color: #0e7ba1;
        opacity: 1;
    }
}

@media screen and (max-width: 1000px) {
    .login_block {
        padding: 12px 10px 0;
    }
}
@media screen and (max-width: 1000px) and (min-width: 741px) {
    :root {
        --login_block-width: 440px;
    }
    .login_block form {
        grid-template-columns: auto 130px;
        grid-gap: 0 11px;
    }
    .newmember .regist a {
        height: 35px;
    }
    .newmember .regist a br {
        display: block;
    }
    .login_block input[type="submit"] {
        height: 48px;
        margin-top: 13px;
    }
    .login_block label span {
        font-size: 12px;
        width: 6.5em;
    }
    .login_block .input {
        margin-top: -15px;
    }
    .login_block .input input {
        width: calc(100% - 6.5em);
    }
    .login_block .input a {
        margin-left: 7.5em;
    }
}
@media screen and (max-width: 860px) and (min-width: 741px) {
    :root {
        --login_block-width: 365px;
    }
    .login_block {
        height: 180px;
    }
    .login_block form {
        grid-gap: 5px 10px;
    }
    .login_block h2 {
        font-size: 16px;
    }
    .login_block label span,
    .login_block .input input {
        width: 100%;
    }
    .login_block .input {
        margin-top: -35px;
    }
    .login_block .input a {
        margin-left: 0;
    }
    /*.login_block input[type="submit"] {
        margin-top: 16px;
    }*/
    .login_block.login div ul {
        grid-auto-flow: column;
        grid-template-columns: auto;
        grid-template-rows: repeat(4, auto);
        grid-gap: 5px 0;
    }
    .logout a {
        width: 98px;
        height: 27px;
    }
}
@media screen and (max-width: 740px) {
    .login_block {
        width: calc(100% + calc(var(--side-space)*2));
        margin-left: calc(var(--side-space)*-1);
        margin-right: calc(var(--side-space)*-1);
    }
    #container > .logout a {
        width: 85px;
        padding-left: 22px;
        background-size: 15px auto;
        font-size: 10px;
    }
}
@media screen and (max-width: 490px) {
    .login_block form {
        grid-template-columns: auto 130px;
        grid-gap: 0 11px;
    }
    .newmember .regist a {
        height: 35px;
    }
    .newmember .regist a br {
        display: block;
    }
    .login_block input[type="submit"] {
        height: 48px;
        margin-top: 13px;
    }
    .login_block label span {
        font-size: 12px;
        width: 6.5em;
    }
    .login_block .input {
        margin-top: -15px;
    }
    .login_block .input input {
        width: calc(100% - 6.5em);
    }
    .login_block .input a {
        margin-left: 7.5em;
    }
}
@media screen and (max-width: 450px) {
    .login_block {
        height: 180px;
        /* padding: 10px; */
    }
    .login_block h2 {
        font-size: 16px;
    }
    .login_block label span,
    .login_block .input input {
        width: 100%;
    }
    .login_block .input {
        margin-top: -35px;
    }
    .login_block .input a {
        margin-left: 0;
    }
    .login_block.login div ul {
        grid-auto-flow: column;
        grid-template-columns: auto;
        grid-template-rows: repeat(4, auto);
        grid-gap: 5px 0;
    }
    .logout a {
        width: 100px;
        height: 28px;
        padding-left: 22px;
        background-position: 10px center;
        background-size: 17px auto;
    }
}

/* ==============================================
    event / news
============================================== */
.entry {
    margin-bottom: 10px;
}
.entry .entry_ttl {
    margin-top: 4px;
    line-height: 1.425;
}
.entry .category,
.entry .entry_date,
.entry .target,
.entry .section {
    display: inline-block;
    vertical-align: middle;
    line-height: 1em;
    text-align: center;
}
:root {
    --entry_category-width: 105px;
}

.entry .category {
    width: var(--entry_category-width);
    padding: 6px;
    font-size: 12px;
    border-radius: 4px;
    background: #dbeef2;
    border: 1px solid #046384;
    color: #046384;
}
.entry .entry_date {
    width: 97px;
    padding-left: 10px;
    color: #959595;
    text-align: left;
}
.entry .target {
    width: 74px;
    padding: 0.5em;
    font-size: 12px;
    background: #2c7ab4;
    color: #fff;
}
.entry .section {
    font-size: 15px;
    width: 28px;
    margin-left: 8px;
    padding: 4px 0;
    border-radius: 3px;
    border: 1px solid #d56f22;
    color: #D56F22;
    font-weight: 500;
}

.entry_list .more {
    margin-top: 20px;
    text-align: center;
}
.entry_list .more a {
    display: block;
    margin-bottom: 10px;
    padding: 8px;
    background: #efefef;
    font-size: 13px;
}
.entry_list .more a::after {
    content: "";
    display: inline-block;
    vertical-align: middle;
    width: 9px;
    height: 7px;
    margin-left: 0.5em;
    background: #569BA8;
    clip-path: polygon(100% 0, 0 0, 50% 100%);
}

/* ==============================================
    top
============================================== */
#leadin {
    display: grid;
    margin: 30px 0;
    grid-gap: 0 16px;
}
@media screen and (min-width: 741px) {
    #leadin {
        grid-template-columns: auto var(--login_block-width);
    }
    #leadin #message span {
        white-space: nowrap;
    }
}
#leadin #message,
#top_motion p {
    background: url("image/top_leadin.png") repeat-x left bottom;
    font-size: 22px;
    font-weight: 700;
    color: #046384;
    letter-spacing: 0.1em;
    line-height: 1.3;
}
@media screen and (max-width: 950px) and (min-width: 741px) {
    #leadin #message,
    #top_motion p {
        font-size: clamp(1.125rem, -1.264rem + 4.44vw, 1.375rem);
    }
}
@media screen and (max-width: 800px) {
    #leadin #message,
    #top_motion p {
        letter-spacing: 0.04em;
    }
}
@media screen and (max-width: 740px) {
    #leadin {
        grid-auto-flow: column;
        grid-template-rows: 155px 180px;
        grid-gap: 10px 0;
        margin: 20px 0;
    }
    #leadin #message,
    #top_motion p {
        margin-left: calc(var(--side-space)*-1);
        margin-right: calc(var(--side-space)*-1);
        padding-left: calc(var(--side-space)/2);
        padding-right: calc(var(--side-space)/2);
        background-size: auto 100px;
        background-position: center bottom;
        line-height: 1.5;
    }
}
@media screen and (max-width: 600px) {
    #leadin #message,
    #top_motion p {
        letter-spacing: 0;
    }
}
@media screen and (max-width: 560px) {
    #leadin #message,
    #top_motion p {
        font-size: clamp(1rem, 0.24rem + 3.24vw, 1.375rem);
    }
}

#event__news {
    display: grid;
}
#event__news h2 {
    margin-bottom: 1em;
    font-size: 18px;
    font-weight: 700;
    color: #046384;
    margin-left: calc(var(--entry_category-width)/2 - 13px);
}
#event__news h2::before {
    content: "";
    display: inline-block;
    vertical-align: middle;
    width: 26px;
    height: 22px;
    margin-right: 10px;
    background: #d1e3e9;
    clip-path: polygon(0 0, 100% 0, 50% 100%);
}
@media screen and (min-width: 741px) {
    #event__news {
        grid-template-columns: repeat(2, 1fr);
        grid-gap: 0 26px;
    }
}
@media screen and (max-width: 740px) {
    #event__news {
        grid-auto-flow: column;
        grid-template-rows: repeat(2, auto);
        grid-gap: 26px 0;
    }
    #event__news .btn a {
        margin-right: 0;
    }
}

/* ==============================================
    top_motion
============================================== */
#top_motion {
    display: none;
    position: fixed;
    top: 0;
    left: 0;
    width: 100%;
    height: 100vh;
    background: #fff;
    z-index: 200;
    text-align: left;
    pointer-events: none;
}
#top_motion .siteid,
#top_motion p {
    position: absolute;
}

#top_motion p {
    height: 170px;
}
#top_motion p strong {
    font-weight: 700;
}

:root {
    --message-position: 116px;
}
@media screen and (min-width: 741px) {
    #top_motion p {
        width: calc(100% - var(--side-space)*2);
    }
}
@media screen and (max-width: 740px) {
    :root {
        --message-position: 72px;
    }
    #top_motion p {
        height: 155px;
    }
}

.play_motion #top_motion {
    display: block;
}
@keyframes logo {
  0% { opacity : 0; top: 50%; left: 50%; transform: translate(-50%, -50%) scale(2); }
  50% { opacity : 1; top: 50%; left: 50%; transform: translate(-50%, -50%) scale(2); }
  100% { opacity : 1; top: 0; left: 10px; transform: none; }
}
@keyframes message {
  0% { opacity : 0; top: 50%; left: 50%; transform: translate(-50%, -50%) scale(2); }
  50% { opacity : 1; top: 50%; left: 50%; transform: translate(-50%, -50%) scale(2); }
  100% { opacity : 1; top: var(--message-position); left: var(--side-space); transform: none; }
}
@keyframes fadein {
  from { opacity : 0; }
  to { opacity : 1; }
}
@keyframes fadeout {
  from { opacity : 1; }
  to { opacity : 0; }
}

/* ==============================================
    main.body_
============================================== */
[class^="body_"] * + p {
    margin-top: 0.7em;
} 
[class^="body_"] * + table,
[class^="body_"] * + ul,
[class^="body_"] * + ol {
    margin-top: 1em;
} 
[class^="body_"] img[style="float: left;"] {
    margin-right: 1.5em;
    margin-bottom: 1em;
} 
[class^="body_"] img[style="float: right;"] {
    margin-left: 1.5em;
    margin-bottom: 1em;
} 
[class^="body_"] img {
    max-width: 100%;
}

main > nav p {
    margin-top: 0 !important;
}


/* ==============================================
    about
============================================== */
.body_1 {

}

/* ==============================================
    about - greet
============================================== */
.body_2 section p[style="text-align: right;"] {
    clear: both;
}

/* ==============================================
    about - outline
============================================== */
.body_3 section th,
.body_3 section td {
    vertical-align: top;
}

/* ==============================================
    about - history
============================================== */
.body_4 section td {
    border: none;
    padding: 0;
    vertical-align: top;
}
.body_4 section td:first-of-type {
    position: relative;
    padding: 0 20px 20px;
    font-size: 12px;
    font-weight: 400;
    white-space: nowrap;
}
.body_4 section td:first-of-type strong {
    display: block;
    margin-bottom: 0.4em;
    font-size: 14px;
    font-weight: 700;
    color: #046384;
}
.body_4 section td:first-of-type::before,
.body_4 section td:first-of-type::after {
    content: "";
    display: block;
    background: #046384;
    position: absolute;
    
}
.body_4 section td:first-of-type::before {
    left: 0;
    top: 2px;
    width: 13px;
    height: 13px;
    border-radius: 50%;
}
.body_4 section td:first-of-type::after {
    left: 6px;
    top: 2px;
    width: 1px;
    height: calc(100% - 7px);
}

/* ==============================================
    about - organize
============================================== */
.body_5 section li ol,
.body_20 section li ol,
.body_21 section li ol {
    margin-top: 0.5em;
    margin-left: 0;
}
.body_5 section li ol li,
.body_20 section li ol li,
.body_21 section li ol li {
    list-style: none;
    counter-increment: cnt;
    position: relative;
    padding-left: 2em;
}
.body_5 section li ol li:before {
	position: absolute;
	top: 0;
	left: 0;
	display: inline-block;
    padding-right: 0.5em;
	text-align: right;
	content: "(" counter(cnt) ")";
	width: 1.5em;
}

/* ==============================================
    about - project
============================================== */
.body_6 {

}

/* ==============================================
    organize - chart
============================================== */
.body_20 {

}

/* ==============================================
    organize - explanation
============================================== */
.body_21 {

}

/* ==============================================
    about - admission / access
============================================== */
.body_7 section li,
.body_9 section li {
    padding-left: 0;
}
.body_7 section li::before,
.body_9 section li::before {
    content: none;
}
.body_3 section td a,
.body_7 section li a,
.body_9 section li a,
.body_11 section p a {
    position: relative;
    display: inline-block;
    padding: 0.6em 1.2em 0.7em 2.5em;
    border-radius: 6px;
    background: #fff;
    border: 1px solid #046384;
    box-shadow: 1px 1px 0px #569ba8;
    text-decoration: none;
    text-align: center;
    font-size: 12px;
}
.body_3 section td a::before,
.body_7 section li a::before,
.body_9 section li a::before,
.body_11 section p a::before {
    position: absolute;
    left: 14px;
    top: 50%;
    content: "";
    display: block;
    width: 7px;
    height: 8px;
    background: #569BA8;
    clip-path: polygon(0 0%, 100% 50%, 0 100%);
    transform: translate(0, -4px)
}

.body_3 section td a {
    margin-top: 0.5em;
    padding-top: 0.4em;
    padding-bottom: 0.6em;
}
.body_7 section li a {
    width: 16em;
    padding: 0.6em 0 0.8em 1em;
}
.body_9 section li {
    text-align: right;
}
.body_9 section img {
    width: 100%;
    max-width: 850px;

}

/* ==============================================
    about - link
============================================== */
.body_10 section ul {
    margin-left: 18px;
}
.body_10 section li + li {
    margin-top: 1em;
}
.body_10 section li {
    padding-left: 35px;
    color: #046384;
    font-weight: 700;
    line-height: 1.4;
}
.body_10 section li a {
    font-size: 12px;
    font-weight: 400;
}
.body_10 section li::before {
    top: 2px;
    content: "";
    display: block;
    width: 18px;
    height: 16px;
    background: #569ba8;
    border-radius: 0;
    clip-path: polygon(25% 0%, 75% 0%, 100% 50%, 75% 100%, 25% 100%, 0% 50%);
}

/* ==============================================
    sitemap
============================================== */
.body_28 {

}


/* ==============================================
    terms
============================================== */
.body_27 {

}

/* ==============================================
    privacy
============================================== */
.body_11 {

}
