@charset "utf-8";

html {
    font-family: "Noto Sans JP";
    scroll-padding-top: 100px;
    scroll-behavior: smooth;
    margin: 0 !important;
}


body {
    background-image: url(../img/bg-img.beige.png?v=1);
    margin: 0 auto;
}

img {
    object-fit: cover;
    max-width: 100%;
    vertical-align: bottom;
    border-radius: 20px;
}

a {
    color: black;
    display: inline-block;
    text-decoration: none;
    align-items: center;
}

li {
    list-style: none;
}

/*.section-title {
    padding-top: 80px;
    font-size: 32px;
    text-align: center;
}*/

.section-title {
    display: flex;
    align-items: center;
    justify-content: space-between;
    font-size: 32px;
    margin-top: 80px;
    margin-bottom: 60px;
    text-align: center;
    
}

.section-title::before,
.section-title::after {
    content: "";
    display: inline-block;
    width: 18%;
    height: 1px;
    background: #999;
    vertical-align: middle;
    margin: 0 6px;
}

.wrapper {
    max-width: 1280px;
    padding-inline: 16px;
    text-align: center;
    margin-inline: auto;
}


.btn-color {
    /* position: relative;
    overflow: hidden; */
    background-color: #368fd3;
    
}

.btn-color:hover {
    border: #368fd3;
    background-color: #fff;
}

/*header*/
header {

    background-color: #fff;
    position: fixed;
    z-index: 10;
    width: 100%;
    padding-inline: 20px;
}

header .wrapper {
    height: 80px;
    display: flex;
    justify-content: space-between;
    align-items: center;
    padding-inline: 60px;
}

header .site-title a {
    display: flex;
    font-style: normal;
    font-size: 16px;
    gap: 8px;
}

.site-title img {
    height: 60px;
    width: 60px;
    border-radius: 50%;
}

.site-title p {
    text-align: left;
}

header .nav {
    display: flex;
}

.hamburger {
    position: fixed;
}

header .nav li {
    margin-left: 20px;
}


.mainvisual {
    width: 100%;
    padding-top: 80px;
    display: flex;
    justify-content: center;
    align-items: center;
}

.mainvisual img {
    width: 100%;
    height: auto;
    display: block;
}


#about .content {
    margin: 54px auto;
    display: flex;
    align-items: center;
    padding-inline: 20px;
    gap: 40px;
    justify-content: center;
}

#about .content p {
    width: 48%;
    text-align: left;
    font-size: 18px;
    line-height: 1.9;
}

#about .content .about-img {
    width: 48%;
}

#about .about-btn {
    line-height: 56px;
    width: 280px;
    display: inline-block;
    border-radius: 50px;
    font-size: 20px;
    color: #fff;
    border: 2px solid transparent;
}


.schedule {
    max-width: 1000px;
    margin: 0 auto;
    text-align: center;
    display: flex;
    gap: 30px;
}

.schedule a img{
    width: 100%;
    height: auto;
}

.schedule-img a:hover {
    text-decoration: underline;
}

.schedule-text {
    width: 65%;
    text-align: left;
    font-size: 22px;
    line-height: 2.2;
}

.info .sns {
    height: 40px;
    width: 40px;
    background-color: #fddf5e;
    border-radius: 50%;
    position: relative;
}

#schedule .sns img {
    position: absolute;
    width: 70%;
    top: 50%;
    left: 50%;
    transform: translate(-50%, -50%);
}

.activities-text {
    font-size: 24px;
}

#activities .items,
#news .items {
    max-width: 1000px;
    margin: 54px auto 80px;
    display: grid;
    gap: 30px;
    grid-template-columns: repeat(3, 1fr);
    padding-left: 0;
}

#activities .items .item,
#news .items .item {
    height: 340px;
}

#activities .items .item img,
#news .items .item img {
    width: 100%;
    height: 300px;
    object-fit: cover;
    border-radius: 6px;
}
#activities .activities-btn,
#news .news-btn {
    line-height: 56px;
    width: 280px;
    display: inline-block;
    border-radius: 50px;
    font-size: 20px;
    color: #fff;
    margin: 0 auto;
    border: 2px solid transparent;
    
}

#about .about-btn:hover,
#activities .activities-btn:hover,
#news .news-btn:hover,
#contact .contact-btn:hover {
    color: #368fd3;
    background-color: #fff;
    border: 2px solid #368fd3;
}

#activities .items .item p,
#news .items .item p {
    text-align: left;
}

#news {
    text-align: center;
}

#news .news-btn {
    display: inline-block;
    border: 2px solid transparent;
}


#news .news-list{
list-style: none;
margin: 0;
margin-bottom: 80px;
padding-left: 0;
}

#news ul.news-list li.item {
display: flex;
    flex-wrap: nowrap;
    align-items: center;
    text-decoration: none;
    color: #333;
    border-bottom: 1px solid #CCC;
    padding: 20px 20px;
    gap: 20px;
}

#news .news-list .title {
    flex: 1;
}

#news ul.news-list li.item:first-child{
border-top: 1px solid #CCC;
}
#news .news-list .item .date{
margin: 0;
min-width: 142px;
font-size: 16px;
padding: 0 20px 0 0;
}

.cat-information{
background: #dc143c;
color: #FFF;
text-align: center;
display: inline-block;
padding: 5px 20px;
font-size: 16px;
line-height: 1;
border-radius: 50px;
}

.cat-event{
background: #c7b8e3;
color: #FFF;
text-align: center;
display: inline-block;
padding: 5px 20px;
font-size: 16px;
line-height: 1;
border-radius: 50px;
}

.item-cat {
    display: inline-block;
    padding: 6px 12px;
    border-radius: 30px;
    color: #fff;
    font-size: 14px;
    width: 150px;
}

.news-list .item .title{
margin: 0;
width: 100%;
text-align: left;
}
.news-list .item a:hover .title{
color: #00F;
}




#contact {
    text-align: center;
    padding-bottom: 100px;
}

#contact p {
    text-align: center;
    padding-bottom: 50px;
    font-size: 20px;
}

#contact dd {
    background-color: #fff;
}

#contact .contact-btn {
    line-height: 56px;
    width: 280px;
    display: inline-block;
    border-radius: 50px;
    font-size: 20px;
    color: #fff;
    border: 2px solid transparent;
}

.contact-buttons {
    display: flex;
    flex-direction: column;
    gap: 24px;
    align-items: center;
}

footer {
    text-align: center;
    padding-top: 10px;
    background-color: #368fd3;
}

footer .sns {
    display: flex;
    justify-content: center;
    gap: 20px;
    padding-left: 0;
    margin: 0;
}

footer .sns li {
    width: 40px;
    height: 40px;
    background-color: #fddf5e;
    border-radius: 50%;
    position: relative;
    display: flex;
    justify-content: center;
    align-items: center;
}

footer .sns li img {
    position: absolute;
    top: 50%;
    left: 50%;
    transform: translate(-50%, -50%);
}

footer p {
    text-align: center;
    padding: 10px;
    font-size: 10px;
    margin-bottom: 0;
}

/*contact.html*/

#contact {
    margin: 0 auto;
}



.checkbox-2 {
    display: flex;
    flex-wrap: wrap;
    gap: .5em 2em;
    border: none;
    padding-bottom: 50px;
    margin: 0 auto;
    justify-content: center;
}

.checkbox-2 label {
    display: flex;
    align-items: center;
    gap: 0 .5em;
    position: relative;
    cursor: pointer;
}

.checkbox-2 label::before {
    width: 18px;
    height: 18px;
    border-radius: 3px;
    border: 2px solid #d6dde3;
    content: '';
}

.checkbox-2 label:has(:checked)::after {
    position: absolute;
    top: 5px;
    left: 7px;
    transform: rotate(45deg);
    width: 5px;
    height: 10px;
    border: solid #2589d0;
    border-width: 0 3px 3px 0;
    content: '';
}

.checkbox-2 input {
    display: none;
}



/*responsive*/
@media(max-width: 780px) {

    .section-title {
        margin-bottom: 30px;
        font-size: 24px;
    }

    header {
        /*max-width: 100%;*/
        padding-inline: 20px;
    }

    header .wrapper {
        padding-inline: 0;
    }

    header .nav {
        flex-direction: column;
        position: fixed;
        top: 32px;
        right: -500px;
        opacity: 0;
        z-index: 100;
        padding: 20px;
        background-color: #fff;
        width: 160px;
        text-align: center;
        line-height: 1.8;
    }

    .open .nav {
        right: 0;
        opacity: 1;
    }

    header .nav li {
        margin-bottom: 10px;
    }

    .hamburger {
        width: 30px;
        height: 30px;
        cursor: pointer;
        position: fixed;
        top: 50px;
        transform: translateY(-50%);
        right: 18px;
        transition: 1.5s;
        z-index: 120;
    }

    .hamburger span {
        width: 30px;
        height: 2px;
        background-color: #000;
        border-radius: 4px;
        display: block;
        position: absolute;
        left: 0;
        transition: 0.5s;
    }

    .hamburger span:nth-child(1) {
        top: 4px;
    }

    .hamburger span:nth-child(2) {
        top: 14px;
    }

    .hamburger span:nth-child(3) {
        bottom: 4px;
    }

    .open .hamburger span {
        background-color: #000;
    }

    .open .hamburger span:nth-child(1) {
        transform: translateY(10px) rotate(-45deg);
    }

    .open .hamburger span:nth-child(2) {
        opacity: 0;
    }

    .open .hamburger span:nth-child(3) {
        transform: translateY(-10px) rotate(45deg);
    }

    #mask {
        display: none;
        transition: 0.5s
    }

    .open #mask {
        width: 100%;
        height: 100%;
        background-color: #fff;
        cursor: pointer;
        display: block;
        opacity: 0.8;
        position: fixed;
        top: 0;
        left: 0;
        z-index: 10;
    }

    #about .content {
        flex-direction: column;
    }

    #about .content p {
        width: 100%;
        font-size: 16px;
    }

    #about .content .about-img {
        width: 100%;
        position: relative;
    }
    
    .activities-text {
    font-size: 16px;
    width: 85%;
    margin: 0 auto;
    }

    #news .items,
    #activities .items {
        display: flex;
        flex-wrap: wrap;
        flex-direction: column;
        padding-left: 0;
    }

    #activities .items .item,
    #news .items .item {
    padding-bottom: 20px;
}

    #news .items .item img,
    #activities .items .item img {
        align-items: center;
    }

    .schedule {
        display: flex;
        flex-wrap: wrap;
        flex-direction: column;
        padding-left: 0;
    }

    .schedule-text {
        width: 90%;
        font-size: 16px;
        margin: 0 auto;
    }

    #news ul.news-list li.item {
        display: flex;
        flex-direction: column;
        align-items: flex-start;
        text-align: left;
        gap: 10px;
        padding: 16px 0;
    }

    #news .news-list .item .date {
        min-width: initial;
        padding: 0;
        font-size: 14px;
    }

    #news .news-list {
    text-align: left;
    }

    #news .news-list .item .category a {
    text-align: left;
    }

    #news .news-list .item .category {
    text-align: left;
    align-self: flex-start;
    }

    #contact p {
    width: 58%;
    margin: 0 auto;
    line-height: 2.5;
    font-size: 16px;
	}
	
	.contact-buttons {
        gap: 24px;
    }

    #contact .contact-btn {
        width: 100%;
        max-width: 280px;
        font-size: 16px;
        line-height: 50px;
        box-sizing: border-box;
    }
	
    .contact dl {
        width: 80%;
        flex-direction: column;
    }

    .contact dd {
        width: 100%;
    }
    }
}