/* BASE
-----------------------------------------------*/

body {
    background-color: #fbfff3;
    color: #0f1600;
    font-family: serif;
    font-size: 1.125rem;
    font-weight: 500;
    line-height: 1.875em;
    margin: 0;
    padding: 0;
}

header {
    background-color: #f7ffe4;
    font-weight: bold;
    line-height: 0;
}

h1 {
    font-size: 3.75rem;
    margin: 72px auto 24px;
    padding-left: 36px;
    width: max-content;
}

h2 {
    text-align: center;
}

h2::after {
    content: url(../images/hr.png);
    display: block;
    line-height: 0.5;
}

/* LAYOUT
-----------------------------------------------*/

.l_in_narrow {
    padding-left: 25%;
    padding-right: 25%;
}

.l_in {
    padding-left: 15%;
    padding-right: 15%;
}

.l_flex {
    align-items: center;
    display: flex;
    justify-content: space-between;
}

.l_flex_start {
    justify-content: flex-start;
}

/* MODULE
-----------------------------------------------*/

header::before, header::after {
    background-position: center;
    background-repeat: no-repeat;
    background-size: cover;
    content: "";
    display: inline-block;
    height: 600px;
    width: 25%;
}

header::before {
    background-image: url(../images/central_tower.jpg);
}

header::after {
    background-image: url(../images/inner_view1.jpg);
    position: absolute;
    right: 0;
}

.main_visual {
    box-sizing: border-box;
    display: inline-block;
    line-height: initial;
    height: 600px;
    padding: 34px 4%;
    position: absolute;
    width: 50%;
}

.logo {
    display: block;
    margin: 0 auto;
    min-width: 200px;
    width: 30%;
}

.word_break {
    display: block;
    word-break: keep-all;
}

.bespeak, .bespeak_mini {
    background-color: #566336;
    color: #f9ffee;
    font-size: 1.5rem;
    margin-left: 52%;
    padding: 16px 32px;
    text-decoration: none;
}

.bespeak_mini {
    margin-left: 16px;
    padding: 8px 16px;
    word-break: keep-all;
}

nav>ul {
    bottom: 0;
    list-style: none;
    padding: 0;
    position: absolute;
    width: 84%;
}

nav a {
    color: #0f1600;
    font-size: 1.125rem;
    text-decoration: none;
}

#about_us {
    background: url(../images/inner_view2.jpg) center/cover no-repeat;
}

.address {
    background: url(../images/outer_view1.jpg) center/cover no-repeat;
}

#about_us>div, .address>div {
    background-color: rgba(251, 255, 243, 0.8);
    padding-top: 200px;
    padding-bottom: 200px;
}

.about_us_in, .address_map, .address_content {
    background-color: #fbfff3;
}

.about_us_in {
    padding: 8%;
}

.address_in {
    align-items: initial;
}

.address_map {
    width: 50%;
}

.address_content {
    box-sizing: border-box;
    padding: 1% 2% 2%;
    width: 50%;
}

.address_map>img {
    vertical-align: bottom;
    width: 100%;
}

#overview {
    background-color: #d4e0b3;
}

.overview_inout {
    background-color: #f1ffcf;
}

#overview>div {
    padding-top: 240px;
    padding-bottom: 100px;
}

.overview_item {
    margin-top: -16%;
    width: 45%;
}

.overview_item:nth-child(even) {
    margin-left: auto;
}

.overview_item>img {
    width: 100%;
}

.news_list {
    list-style: none;
    padding: 0;
}

.news_list time {
    color: #80bc00;
    font-size: 1.25rem;
    padding: 20px 4em 2px 0;
}

.info_list {
    padding-left: 22px;
}

.news, .info {
    margin: 44px 0 64px;
}

.news_list>li, .info_list>li {
    border-bottom: 1px dashed currentColor;
    margin-bottom: 16px;
}

footer {
    background-color: #666d55;
    color: #f9ffee;
    padding-top: 40px;
    padding-bottom: 8px;
}

.sns_links {
    align-items: flex-start
}

.sns_links>section {
    width: 45%;
}

.insta_shared, .sns_share {
    list-style: none;
    padding: 0;
}

.insta_shared>li {
    width: 32%;
}

.insta_shared img {
    width: 100%;
}

.sns_share {
    width: 60%;
}

.sns_share>li {
    width: 20%;
}

.sns_share img {
    width: 100%;
}

.group_logo_banner, .copyright {
    font-weight: 300;
    text-align: center;
}

/* THEME
-----------------------------------------------*/