/*=======================
modules.css
=======================*/

/*row, columns
-----------------------*/

.row {
    max-width: 1680px;
    margin: 0 auto;
}
.l-lower-container {

}
.l-lower-main {

}
.l-lower-sub {

}
@media (width >= 64rem) {
    .row {
        padding: 160px 40px;
    }
}
@media (width <= 64rem) {
    .row {
        padding: 80px 40px;
    }
}

/*btns
-----------------------*/

.btn-more-1 {
    background: url('../../../assets/images/ico-arrow-01.svg') no-repeat right center / 8px 14px;
}
@media (width >= 64rem) {
    .btn-anim-slide { position: relative; transition: color 0.5s ease; }
    .btn-anim-slide:hover { color: #fff; }
    .btn-anim-slide:hover::before { transform: scaleX(1); transform-origin: left; }
    .btn-anim-slide::before {
        position: absolute;
        top: 0;
        left: 0;
        content: "";
        display: block;
        width: 100%;
        height: 100%;
        background: #1f2c5c;
        transform: scaleX(0);
        transform-origin: right;
        transition: all 0.5s ease;
        transition-property: transform;
    }
}
.btn-anim-slide span { position: relative; }

/*icon
-----------------------*/

.ico-arrow-sm {
    background: url('../../../assets/images/ico-arrow-01.svg') no-repeat right center / 8px 14px;
}
.ico-c-arrow-1 {
    background-image: url('../../../assets/images/ico-arrow-05.svg');
    background-repeat: no-repeat;
    background-position: left center;
}
.ico-toggle-1 {
    padding-right: 20px;
    background: url('../../../assets/images/ico-arrow-03.svg') no-repeat right center / 12px 6px;
}
@media (width <= 64rem) {
    .ico-arrow-md {
        background: url('../../../assets/images/ico-arrow-01.svg') no-repeat right 10px center / 10px 16px;
    }
    .ico-window-md {
        background: url('../../../assets/images/ico-window.svg') no-repeat right 10px center / 17px 13px;
    }
}

/*page header
-----------------------*/

.p-page-header {
    height: 540px;
    display: flex;
    align-items: center;
    background-repeat: no-repeat;
    background-position: center;
    background-size: cover;
}
.p-page-header-ttl {
    width: 100%;
    max-width: 1680px;
    padding: 40px;
    margin: 0 auto;
    color: #fff;
}
.p-page-header.is-center-left {
    display: flex;
    align-items: center;
}

/*lower page header
-----------------------*/

.p-lower-header {
    height: 400px;
}
.p-lower-header-ttl {
    width: 100%;
    max-width: 1680px;
    padding: 40px;
    margin: 0 auto;
    color: #fff;
}
.p-lower-header.is-center-left {
    display: flex;
    align-items: center;
}

/*content header
-----------------------*/

.p-ct-header {
    position: relative;
}
.p-ct-header:before {
    content: '';
    width: 100%;
    position: absolute;
    top: 0;
    left: 0;
    border-top: 6px solid #e7e7ef;
}
.p-ct-header:after {
    content: '';
    width: 160px;
    position: absolute;
    top: 0;
    left: 0;
    border-top: 6px solid #1f2c5c;
}

/*nav
-----------------------*/

.lower-nav-ttl {
    padding: 32px 0;
    font-size: 24px;
}
.lower-nav-item {
    display: flex;
}
.lower-nav-btn {
    display: flex;
    flex: 1;
    align-items: center;
    font-size: 16px;
}
@media (width >= 64rem) {
    .lower-nav-ttl {
        font-size: 32px;
        font-weight: 500;
        border-bottom: 1px solid #e6e6e6;
    }
    .lower-nav-item {
        border-bottom: 1px solid #e6e6e6;
    }
    .lower-nav-btn {
        padding: 32px 0;
        font-size: 22px;
    }
}
@media (width <= 64rem) {
    .lower-nav-list {
        border-top: 1px solid #e6e6e6;
        border-left: 1px solid #e6e6e6;
    }
    .lower-nav-item {
        border-bottom: 1px solid #e6e6e6;
        border-right: 1px solid #e6e6e6;
    }
    .lower-nav-btn {
        padding: 18px;
        justify-content: center;
        background-image: none;
    }
}

/*-----------------------
top page
-----------------------*/

/*top news
-----------------------*/

.top-news {
    position: relative;
}
.top-news-ttl {
    padding: 32px 0;
    border-bottom: 1px solid #e6e6e6;
    font-size: 32px;
}
.top-news-item {
    border-bottom: 1px solid #e6e6e6;
}
.top-news-link {
    display: block;
    padding: 32px 0;
}
.top-news-btn {
}
@media (width >= 64rem) {
}
@media (width <= 64rem) {
    .top-news-ttl {
        font-size: 24px;
    }
    .top-news-link {
        padding: 20px 0;
    }
}

/*top about
-----------------------*/

.top-about {
    position: relative;
}
.top-about-list {
    max-width: 1680px;
    margin: 0 auto;
}
.top-about:before {
    content: '';
    width: 100%;
    height: 100%;
    position: absolute;
    top: 0;
    left: 0;
    background-color: #e6e8ed;
    clip-path: polygon(0 0, 100% 0, 100% 60%, 0 100%);
}
.top-about-item {
}
.top-about-link {
    display: block;
    position: relative;
}
.top-about-text {
    position: absolute;
}
.top-about-text span {
    width: 100%;
    display: block;
}
@media (width >= 64rem) {
    .top-about-text {
        width: 100%;
        text-align: center;
        color: #fff;
        top: 50%;
        left: 50%;
        transform: translate(-50%, -50%);
    }
}
@media (width <= 64rem) {
    .top-about-item {
        padding-top: 40px;
    }
    .top-about-text {
        width: 252px;
        height: 160px;
        padding: 0 20px;
        display: flex;
        flex-wrap: wrap;
        align-content: center;
        top: 50%;
        right: 0;
        transform: translateY(-50%);
        background: #fff url('../../../assets/images/ico-arrow-01.svg') no-repeat right 20px center / 12px 18px;
    }
}

/*top grounp-link
-----------------------*/

.group-link-info dt {
    padding-bottom: 4px;
}
.group-link-info span {
    display: block;
}
.group-link-btns a {
    height: 60px;
    display: flex;
    align-items: center;
    background-color: #fff;
}
@media (width >= 64rem) {
    .group-link:before {
        content: '';
        width: 100%;
        height: 100%;
        position: absolute;
        top: 0;
        left: 0;
        background-color: #e6e8ed;
        clip-path: polygon(0 30%, 100% 0, 100% 100%, 0 100%);
    }
    .group-link-item {
        padding: 40px 0 0;
    }
    .group-link-inner {
        display: flex;
        align-items: center;
        padding: 0 32px;
        background-color: #fff;
        border: 1px solid #e6e6e6;
    }
    .group-link-logo {
        width: 15%;
        padding: 32px;
    }
    .group-link-info {
        width: 45%;
        padding: 32px;
    }
    .group-link-info dt {
        font-size: 32px;
        font-weight: bold;
    }
    .group-link-info span {
        font-size: 22px;
    }
    .group-link-btns {
        width: 40%;
        padding: 32px;
        display: flex;
        justify-content: space-between;
    }
    .group-link-btns a {
        width: calc(50% - 32px);
        justify-content: center;
        border: 1px solid #1f2c5c;
        font-size: 22px;
    }
}
@media (width <= 64rem) {
    .group-link-list {
        border-top: 1px solid #e6e6e6;
    }
    .group-link-list:after {
        content: '';
        width: 1px;
        height: 100%;
        background-color: #e6e6e6;
        position: absolute;
        top: 0;
        left: calc(50% - 1px);
    }
    .group-link-item {
        border-bottom: 1px solid #e6e6e6;
    }
    .group-link-item:nth-child(odd) .group-link-inner {
        padding: 40px 32px 16px 0;
    }
    .group-link-item:nth-child(even) .group-link-inner {
        padding: 40px 0 16px 32px;
    }
    .group-link-logo {
        padding: 24px;
        border: 1px solid #e6e6e6;
    }
    .group-link-info {
        padding: 20px 0;
    }
    .group-link-info dt {
        font-size: 20px;
    }
    .group-link-info span {
        font-size: 16px;
    }
    .group-link-btns a {
        border-top: 1px solid #e6e6e6;
        font-size: 14px;
    }
}

/*-----------------------
about page
-----------------------*/

/*group outline
-----------------------*/

.group-outline-ttl {
}
.group-outline-list {
    margin: 0 -40px;
}
.group-outline-item {
    position: relative;
    border-bottom: 1px solid #e6e6e6;
}
@media (width >= 64rem) {
    .group-outline {
        padding: 120px 40px 160px;
    }
    .group-outline-item {
        padding: 40px;
        margin-top: 40px;
    }
    .group-outline-ttl {
        margin-bottom: 100px;
        padding-left: 42px;
        background-size: 32px;
        font-size: 32px;
    }
    .group-outline-list .group-outline-item:nth-child(3n+1):after,
    .group-outline-list .group-outline-item:nth-child(3n+2):after {
        content: '';
        width: 1px;
        height: calc(100% - 40px);
        position: absolute;
        top: 0;
        right: 0;
        background-color: #e6e6e6;
    }
}
@media (width <= 64rem) {
    .group-outline-item {
        padding: 20px 40px 40px;
    }
    .group-outline-item:nth-child(odd) {
        border-right: 1px solid #e6e6e6;
    }
    .group-outline-ttl {
        margin-bottom: 40px;
        padding-left: 32px;
        background-size: 22px;
        font-size: 22px;
    }
    .group-outline-list .group-outline-item:nth-child(n+3) .group-outline-ttl {
        margin: 20px 0 40px;
    }
}

/*philosophy
-----------------------*/

.philosophy {
    position: relative;
}