:root {
    --text-base-color: #222;
    --text-link-color: #e4007f;
    --line-color: #aaa;
}
* {
    box-sizing: border-box;
}
html {
    font-size: 16px;
}
body {
    font-family: "Noto Sans JP", sans-serif;
    font-optical-sizing: auto;
    font-weight: 400;
    font-style: normal;
    font-feature-settings: "palt";
    text-align: justify;
    color: var(--text-base-color);
    line-height: 1.75;
}
a {
    text-decoration: none;
    transition: .3s;
}
a:link, a:visited {
    color: var(--text-base-color);
}
a:hover {
    color: var(--text-link-color);
}
img {
    vertical-align: bottom;
}

section.about {
    padding-bottom: 4em;
}
section.about h2 {
    margin-top: 0;
}
.about ol li {
    padding: 6px 0;
}
.sns-bnr {
    display: flex;
    justify-content: center;
    margin: 0;
    padding: 0;
    list-style: none;
}
.sns-bnr li {
    margin: 0 .5em;
}
.sns-bnr a {
    display: inline-block;
}
.about figure {
    display: flex;
    justify-content: center;
    align-items: center;
    flex-direction: column;
    margin: 1em 0;
}
.about figure figcaption {
    font-size: 14px;
    text-align: center;
}

.news-list {
    border-top: 1px solid #dbdcdc;
}
.news-list div {
    display: flex;
    width: 100%;
    margin: 0;
    padding: 10px 0;
    border-bottom: 1px solid #dbdcdc;
}
.news-list dt {
    white-space: nowrap;
}
.news-list dd {
    margin-left: 1em;
}
.news-list time {
    padding: 1px 6px 3px;
    background-color: #b28146;
    color: #fff;
}
@media screen and (max-width: 480px) {
    .news-list {
        margin-bottom: 100px;
    }
    .news-list div {
        flex-direction: column;
    }
    .news-list dd {
        margin-left: 0;
    }
    .news-list time {
        font-size: 12px;
    }
}

.entry-header p {
    margin: 0;
}
.entry-header time {
    padding: 1px 6px 3px;
    background-color: #b28146;
    color: #fff;
}
.entry-header h2 {
    margin: 10px 0;
    font-size: 1.75em;
    font-weight: 400;
    line-height: 1.5;
}
.entry-nav {
    margin: 1em 0 40px;
    padding: 0;
    list-style: none;
    border-top: 1px solid #dbdcdc;
}
.entry-nav li {
    border-bottom: 1px solid #dbdcdc;
}
.entry-nav li a {
    display: block;
    width: 100%;
    padding: .5em .25em;
}

h3.form-heading {
    margin: 0;
    padding: 10px 0;
    text-align: center;
    border-top: 2px solid #333;
    border-bottom: 2px solid #333;
    background-color: #f5f5f5;
}
.contact-form {
    margin-bottom: 20px;
    width: 100%;
    border-collapse: collapse;
    border-top: 1px solid #dbdcdc;
}
.contact-form th, .contact-form td {
    padding: 10px 6px;
    border-bottom: 1px solid #dbdcdc;
}
.contact-form th {
    font-weight: 400;
    color: #b28146;
    white-space: nowrap;
}
.acms-form-checkbox.boxes {
    display: block;
    padding: 4px 0;
}
.submit-btn-group {
    display: flex;
    justify-content: center;
    padding: 20px 40px;
}
.submit-btn-group input {
    margin: 0 1em;
}
@media screen and (max-width: 768px) {
    .contact-form {
        font-size: 14px;
    }
    .submit-btn-group {
        margin-bottom: 100px;
    }
}

#siteFooter, #siteMain {
    padding: 2em 0;
}
.copyright {
    margin: 0;
    text-align: center;
    font-size: .75em;
    letter-spacing: .1em;
}

.credit div {
    padding: 1em 0;
}
.credit p {
    margin: 0;
    font-size: 12px;
    text-align: center;
}
.credit p.credit-name {
    font-size: 16px;
    font-weight: 700;
}
.module {
    margin: 10px 0 20px;
}
.page-links {
    margin: 0;
    padding: 0;
    list-style: none;
    font-size: 1em;
}
.page-links li {
    margin-bottom: 10px;
}
.page-links a {
    display: block;
    width: 100%;
    padding: .5em 1em;
    background-color: #dbdcdc;
    text-align: center;
    border-radius: 1.5em;
}

.custom-section {
    padding: 1.5em 0;
}
.photo-gallery {
    margin: 0;
    padding: 0;
    list-style: none;
    display: flex;
    justify-content: space-between;
    align-items: center;
    flex-wrap: wrap;
}
.photo-gallery li {
    width: calc(100% / 3);
    padding: 4px 10px;
}
@media screen and (max-width: 600px) {
    .photo-gallery {
        flex-direction: column;
    }
    .photo-gallery li {
        width: 100%;
    }
}

#backToMap {
    position: fixed;
    top: 10px;
    left: 10px;
}
#backToMap p {
    margin: 0;
    line-height: 1;
}
#backToMap p a {
    display: inline-block;
    padding: 8px 10px;
    background-color: #f5f5f5;
    border: 1px solid #ccc;
    border-radius: 4px;
    font-size: 14px;
}

@media screen and (max-width:600px) {
    #siteMain .acms-col-md-3 {
        margin-top: 100px;
    }
}