/*
  Top
*/


/*------------------------
  KV
------------------------*/

#kv .wrapper {
    position: relative;
}

#kv .logo-univ {
    position: absolute;
    left: 5.33vw;
    bottom: 30px;
    background: #fff;
    border-radius: 10px;
    height: 80px;
    width: 425px;
    padding: 0 25px;
    display: -webkit-box;
    display: -webkit-flex;
    display: flex;
    -webkit-flex-wrap: wrap;
    -ms-flex-wrap: wrap;
    flex-wrap: wrap;
    -webkit-box-align: center;
    -webkit-align-items: center;
    align-items: center;
    z-index: 10;
}

#kv .logo-univ img {
    max-width: none;
}

#kv .circle {
    position: absolute;
    right: 5.33vw;
    width: 284px;
    height: 284px;
    bottom: -142px;
    display: -webkit-box;
    display: -webkit-flex;
    display: flex;
    -webkit-flex-wrap: wrap;
    -ms-flex-wrap: wrap;
    flex-wrap: wrap;
    -webkit-box-align: center;
    -webkit-align-items: center;
    align-items: center;
    justify-content: center;
    -webkit-box-pack: center;
    -webkit-justify-content: center;
    z-index: 10;
}

#kv .circle::before {
    content: '';
    position: absolute;
    width: 310px;
    height: 245px;
    top: -103px;
    right: -35px;
    background: url("../images/home/kv-bg-circle.png") no-repeat top center;
}

#kv .circle::after {
    content: '';
    position: absolute;
    width: 100%;
    height: 50%;
    background: #fa4e66;
    border-radius: 50% / 100% 100% 0 0;
    top: 0;
    left: 0;
}

#kv .circle img {
    position: relative;
    z-index: 10;
}

@media screen and (max-width: 999px) {
    #kv .logo-univ {
        width: 380px;
    }
    #kv .logo-univ img {
        max-width: 100%;
    }
}

@media screen and (max-width: 768px) {
    #kv .logo-univ {
        bottom: 15px;
        height: 35px;
        width: 185px;
        padding: 0 10px;
    }
    #kv .circle {
        right: 5.33vw;
        width: 115px;
        height: 115px;
        bottom: -40px;
        padding: 7px;
    }
    #kv .circle::before {
        content: '';
        position: absolute;
        width: 180px;
        height: 190px;
        top: -30px;
        right: -5.33vw;
        background-size: 100% auto;
    }
    #kv .circle::after {
        height: 100%;
        border-radius: 50%;
    }
}


/*---------------------------
  Slide
---------------------------*/

.swiper-wrapper {
    position: relative;
    width: 100%;
    height: 520px;
    z-index: 1;
    display: flex;
    transition-property: transform;
    box-sizing: content-box
}

@media screen and (max-width: 768px) {
    .swiper-wrapper {
        height: 235px;
    }
}

.swiper-slide p {
    font-size: 34px;
    color: #fff;
    text-align: center;
}

.swiper-container {
    position: relative;
}

.color1 {
    background-image: url(../images/home/keyvisual_01-min.png);
}

.color2 {
    background-image: url(../images/home/keyvisual_02-min.png);
}

.color3 {
    background-image: url(../images/home/keyvisual_03-min.png);
}

.color4 {
    background-image: url(../images/home/keyvisual_04-min.png);
}

.color1,
.color2,
.color3,
.color4 {
    background-repeat: no-repeat;
    background-position: center;
    background-size: cover;
}

.swiper-slide img {
    min-width: 997px;
    min-height: 520px;
    width: 100%;
    position: absolute;
}

@media screen and (max-width: 768px) {
    .swiper-slide img {
        min-height: 235px;
        min-width: 450px;
    }
}

.swiper-container .wrapper {
    height: 529px;
}


/*------------------------
  About Us
------------------------*/

#aboutus .container {
    background: url("../images/common/bg-dots.png") no-repeat right top;
}

#aboutus .column-2 {
    color: #fff;
}

#aboutus p+p {
    margin-top: 25px;
}

#aboutus .image {
    position: relative;
    margin-top: 60px;
}

#aboutus .image img {
    width: 100%;
    border-radius: 10px;
}

#aboutus .image .caption {
    width: calc((100% - 100px) / 2 - 30px);
    position: absolute;
    top: -75px;
    left: calc(50% + 30px);
    background: #fa4e66;
    border-radius: 10px;
    padding: 10px;
}

#aboutus .image .caption::before,
#aboutus .image .caption::after {
    content: '';
    position: absolute;
    width: 10px;
    height: 10px;
    bottom: 55px;
}

#aboutus .image .caption::before {
    left: -10px;
    background: url("../images/common/rounded-left.svg") no-repeat center;
}

#aboutus .image .caption::after {
    right: -10px;
    background: url("../images/common/rounded-right.svg") no-repeat center;
}

#aboutus .image .inner {
    background: #fff;
    border-radius: 10px;
    padding: 0 30px;
    display: -webkit-box;
    display: -webkit-flex;
    display: flex;
    -webkit-flex-wrap: wrap;
    -ms-flex-wrap: wrap;
    flex-wrap: wrap;
    -webkit-box-align: center;
    -webkit-align-items: center;
    align-items: center;
    height: 120px;
}

#aboutus .image .inner p {
    color: #fa4e66;
    font-size: 1.4rem;
    font-weight: 500;
}

@media screen and (max-width: 1250px) {
    #aboutus .image .caption {
        width: calc(100% / 2 - 30px - 2.66vw);
        top: -105px;
    }
    #aboutus .image .caption .inner {
        height: 150px;
    }
}

@media screen and (max-width: 768px) {
    #aboutus .container {
        background-size: 90% auto;
    }
    #aboutus p+p {
        margin-top: 20px;
    }
    #aboutus .image {
        margin-top: 50px;
    }
    #aboutus .image img {
        width: 100%;
        border-radius: 0 0 10px 10px;
    }
    #aboutus .image .caption {
        width: 100%;
        position: relative;
        top: auto;
        left: auto;
        background: #fff;
        border-radius: 10px 10px 0 0;
        padding: 15px;
    }
    #aboutus .image .caption::before,
    #aboutus .image .caption::after {
        content: none;
    }
    #aboutus .image .caption .inner {
        border-radius: 0;
        background: none;
        padding: 0;
        height: auto;
    }
    #aboutus .image .caption .inner p {
        color: #fa4e66;
        font-size: 1.2rem;
    }
}


/*------------------------
  Cleft lip palate
------------------------*/

#cleft-lip-palate p.lead {
    color: #293962;
    font-weight: 500;
    margin-bottom: 25px;
}

#cleft-lip-palate .c-pink {
    display: block;
    font-weight: 500;
}

#cleft-lip-palate img {
    width: 100%;
    border-radius: 10px;
}

@media screen and (max-width: 768px) {
    #cleft-lip-palate p.lead {
        margin-bottom: 20px;
    }
    #cleft-lip-palate img {
        max-width: 400px;
        margin: 30px auto 0;
        display: block;
    }
}


/*------------------------
  Flow
------------------------*/

#top-flow {
    margin-top: -100px;
    padding-top: 100px;
}

#top-flow .flow-box {
    margin: 60px 0;
    position: relative;
    z-index: 10;
}

#top-flow .flow-box::before {
    content: '';
    width: 100%;
    height: 60px;
    background: url("../images/common/triangle.svg") no-repeat center;
    position: absolute;
    left: 0;
    bottom: -60px;
}

#top-flow .flow-box:last-child {
    margin-bottom: 0;
}

#top-flow .flow-box:last-child::before {
    content: none;
}

#top-flow .flow-box .inner {
    display: -webkit-box;
    display: -webkit-flex;
    display: flex;
    -webkit-flex-wrap: wrap;
    -ms-flex-wrap: wrap;
    flex-wrap: wrap;
    -webkit-flex-direction: row-reverse;
    flex-direction: row-reverse;
    background: #fff;
    border: 1px solid #eee;
    border-radius: 10px;
    overflow: hidden;
}

#top-flow .flow-box .image {
    width: 30%;
    position: relative;
    overflow: hidden;
    display: -webkit-box;
    display: -webkit-flex;
    display: flex;
    -webkit-flex-wrap: wrap;
    -ms-flex-wrap: wrap;
    flex-wrap: wrap;
    -webkit-box-align: center;
    -webkit-align-items: center;
    align-items: center;
}

#top-flow .flow-box .image img {
    border-radius: 10px;
    overflow: hidden;
    width: 100%;
}

#top-flow .flow-box .text {
    width: 70%;
    padding: 30px 40px;
}

#top-flow .flow-box h3 {
    display: -webkit-box;
    display: -webkit-flex;
    display: flex;
    -webkit-flex-wrap: wrap;
    -ms-flex-wrap: wrap;
    flex-wrap: wrap;
    -webkit-box-align: center;
    -webkit-align-items: center;
    align-items: center;
    margin-bottom: 15px;
}

#top-flow .flow-box h3 .num {
    width: 50px;
    height: 50px;
    background: #fa4e66;
    border-radius: 50%;
    color: #fff;
    text-align: center;
    line-height: 50px;
    font-size: 1.8rem;
    font-weight: 400;
}

#top-flow .flow-box h3 .tit {
    width: calc(100% - 50px);
    color: #293962;
    font-size: 2.4rem;
    padding-left: 10px;
}

#top-flow2 {
    margin-top: 100px;
}

#top-flow2 .flow-box .image {
    padding: 5px;
}

#top-flow2 .flow-box .image img {
    width: 100%;
}

#top-flow2 .flow-box .text .row {
    margin: 10px -10px -10px;
}

#top-flow2 .flow-box .text .row .column-2 {
    padding: 10px;
    display: -webkit-box;
    display: -webkit-flex;
    display: flex;
    -webkit-flex-wrap: wrap;
    -ms-flex-wrap: wrap;
    flex-wrap: wrap;
    -webkit-box-align: center;
    -webkit-align-items: center;
    align-items: center;
}

#top-flow2 .flow-box .text .row p {
    font-size: 1.3rem;
    padding-left: 15px;
    width: calc(100% - 150px);
    line-height: 1.4;
}

#top-flow2 .flow-box .text .row img {
    width: 150px;
    border-radius: 10px;
}

@media screen and (max-width: 999px) {
    #top-flow2 .flow-box .text .row .column-2 {
        width: 100%;
    }
}

@media screen and (max-width: 768px) {
    #top-flow {
        margin-top: 0;
        padding-top: 0;
    }
    #top-flow .flow-box {
        margin: 40px 0;
    }
    #top-flow .flow-box::before {
        height: 40px;
        bottom: -40px;
    }
    #top-flow .flow-box .inner {
        padding: 20px 15px 15px;
    }
    #top-flow .flow-box .image {
        width: 100%;
        max-width: 400px;
        margin: 0 auto;
        border-radius: 10px;
        overflow: hidden;
    }
    #top-flow .flow-box .text {
        width: 100%;
        padding: 0 0 15px;
    }
    #top-flow .flow-box h3 .num,
    #top-flow .flow-box h3 .tit {
        display: block;
    }
    #top-flow .flow-box h3 .num {
        width: 35px;
        height: 35px;
        line-height: 35px;
        font-size: 1.3rem;
    }
    #top-flow .flow-box h3 .tit {
        font-size: 1.8rem;
        line-height: 1.3;
        width: calc(100% - 45px);
    }
    #top-flow .flow-box p {
        font-size: 1.4rem;
    }
    #top-flow2 {
        margin-top: 70px;
    }
    #top-flow2 .flow-box .image {
        padding: 0;
        justify-content: center;
        -webkit-box-pack: center;
        -webkit-justify-content: center;
    }
    #top-flow2 .flow-box .image img {
        max-width: 250px;
    }
    #top-flow2 .flow-box .text .row {
        margin: 5px 0 -5px;
    }
    #top-flow2 .flow-box .text .row .column-2 {
        padding: 5px 0;
    }
    #top-flow2 .flow-box .text .row p {
        font-size: 1.2rem;
        padding-left: 10px;
        width: calc(100% - 120px);
    }
    #top-flow2 .flow-box .text .row img {
        width: 120px;
    }
}


/*------------------------
  Movie
------------------------*/

#movie {
    color: #fff;
}

#movie .wrapper {
    background: url("../images/home/icon-baby.svg") no-repeat;
    background-size: 120px auto;
    background-position: right 5.33vw top;
}

#movie .column-2:nth-child(1) img {
    display: block;
    margin: 20px auto;
    border-radius: 10px;
}

#movie p+p {
    margin-top: 25px;
}

#movie .large {
    font-size: 2.0rem;
    font-weight: 500;
}

#movie h3 {
    font-size: 2.2rem;
    padding-left: 30px;
    margin-bottom: 20px;
    background: url("../images/home/icon-video.svg") no-repeat left center;
}

#movie .link-btn {
    max-width: 360px;
    width: 100%;
}

#movie .link-btn a {
    display: block;
    background-color: #fff;
    background-repeat: no-repeat;
    background-position: right 30px center;
    background-image: url("data:image/svg+xml;charset=utf8,%3C%3Fxml%20version%3D%221.0%22%20encoding%3D%22utf-8%22%3F%3E%3Csvg%20version%3D%221.1%22%20id%3D%22Layer_1%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20x%3D%220px%22%20y%3D%220px%22%20width%3D%2215px%22%20height%3D%2215px%22%20viewBox%3D%220%200%2015%2015%22%20style%3D%22enable-background%3Anew%200%200%2015%2015%3B%22%20xml%3Aspace%3D%22preserve%22%3E%3Cstyle%20type%3D%22text%2Fcss%22%3E%20.st0%7Bfill%3A%23fa4e66%3B%7D%3C%2Fstyle%3E%3Cg%3E%20%3Cg%3E%20%3Cpath%20class%3D%22st0%22%20d%3D%22M11.3%2C8.1c-0.4%2C0-0.8%2C0.4-0.8%2C0.8v3.3c0%2C0.6-0.5%2C1.2-1.2%2C1.2H2.8c-0.6%2C0-1.2-0.5-1.2-1.2V5.6%20c0-0.6%2C0.5-1.2%2C1.2-1.2h2.8C6%2C4.4%2C6.4%2C4%2C6.4%2C3.6S6%2C2.8%2C5.6%2C2.8H2.8C1.2%2C2.9%2C0%2C4.1%2C0%2C5.6v6.6C0%2C13.7%2C1.2%2C15%2C2.8%2C15h6.6%20c1.5%2C0%2C2.8-1.2%2C2.8-2.8V8.9C12.1%2C8.5%2C11.7%2C8.1%2C11.3%2C8.1z%20M15%2C7.6V0.8c0-0.1%2C0-0.2-0.1-0.3c0-0.1-0.1-0.2-0.1-0.2l0%2C0l0%2C0%20c-0.1-0.1-0.1-0.1-0.2-0.1C14.4%2C0%2C14.3%2C0%2C14.2%2C0H7.3C6.9%2C0%2C6.6%2C0.4%2C6.6%2C0.8S7%2C1.6%2C7.4%2C1.6h4.9L5.5%2C8.4c-0.3%2C0.3-0.3%2C0.8%2C0%2C1.1%20s0.8%2C0.3%2C1.1%2C0l6.8-6.8v4.9c0%2C0.4%2C0.4%2C0.8%2C0.8%2C0.8S15%2C8%2C15%2C7.6L15%2C7.6z%22%2F%3E%20%3C%2Fg%3E%3C%2Fg%3E%3C%2Fsvg%3E");
    padding: 0 30px;
    border-radius: 10px;
    color: #fa4e66;
    line-height: 50px;
    font-weight: 700;
}

#movie .link-btn a:hover {
    background-color: #293962;
    color: #fff;
    background-image: url("../images/common/icon-blank.svg");
}

#movie .disc {
    list-style: disc;
    margin: 20px 0 40px 20px;
}

#movie .disc a {
    color: #fff;
    background: url("../images/common/arrow.svg") no-repeat;
    background-position: right 5px center;
    padding-right: 25px;
}

#movie .disc a:hover {
    background-position: right center;
}

#movie .search {
    background-color: #fff;
    background-image: url("../images/home/icon-search.svg");
    background-repeat: no-repeat;
    background-position: right 10px center;
    background-size: 15px auto;
    color: #7a7a7a;
    border: 1px solid #eee;
    border-radius: 5px;
    padding: 5px 50px 5px 15px;
    margin-bottom: 5px;
    display: inline-block;
}

@media screen and (max-width: 768px) {
    #movie .wrapper {
        background: url("../images/home/icon-baby.svg") no-repeat;
        background-size: 80px auto;
        background-position: right 5.33vw top;
    }
    #movie .column-2:nth-child(1) {
        margin-bottom: 20px;
    }
    #movie .column-2:nth-child(1) img {
        max-width: 400px;
        width: 100%;
    }
    #movie p+p {
        margin-top: 20px;
    }
    #movie .large {
        font-size: 1.6rem;
    }
    #movie h3 {
        font-size: 1.8rem;
        background-size: 15px auto;
        padding-left: 20px;
        margin-bottom: 10px;
    }
    #movie .link-btn a {
        background-position: right 20px center;
        padding: 0 20px;
    }
    #movie .disc {
        list-style: disc;
        margin: 12px 0 27px 20px;
        line-height: 1.5;
    }
    #movie .disc li {
        padding: 3px 0;
    }
}


/*------------------------
  System
------------------------*/

#system p {
    color: #293962;
    font-weight: 500;
}

#system .p-box {
    height: 60px;
    border-radius: 10px;
    font-weight: 500;
    padding: 0 15px;
    background: #fa4e66;
    display: -webkit-box;
    display: -webkit-flex;
    display: flex;
    -webkit-flex-wrap: wrap;
    -ms-flex-wrap: wrap;
    flex-wrap: wrap;
    -webkit-box-align: center;
    -webkit-align-items: center;
    align-items: center;
}

#system .p-box p:nth-child(1) {
    color: #fa4e66;
    font-size: 1.4rem;
    background: #fff;
    border-radius: 5px;
    padding: 0 10px;
    margin-right: 10px;
    width: 65px;
}

#system .p-box p:nth-child(2) {
    font-size: 1.8rem;
    line-height: 1.3;
    color: #fff;
    width: calc(100% - 75px);
}

#system .tel {
    color: #fa4e66;
    font-size: 2.4rem;
    display: -webkit-box;
    display: -webkit-flex;
    display: flex;
    -webkit-flex-wrap: wrap;
    -ms-flex-wrap: wrap;
    flex-wrap: wrap;
    justify-content: center;
    -webkit-box-pack: center;
    -webkit-justify-content: center;
    margin: 15px 0 20px;
}

#system .tel p {
    color: #fa4e66;
    text-align: center;
    position: relative;
    padding-left: 65px;
}

#system .tel p::before {
    content: '';
    width: 55px;
    height: 55px;
    background-image: url("data:image/svg+xml;charset=utf8,%3C%3Fxml%20version%3D%221.0%22%20encoding%3D%22utf-8%22%3F%3E%3Csvg%20version%3D%221.1%22%20id%3D%22Layer_1%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20x%3D%220px%22%20y%3D%220px%22%20width%3D%2213.6px%22%20height%3D%2213.6px%22%20viewBox%3D%220%200%2013.6%2013.6%22%20style%3D%22enable-background%3Anew%200%200%2013.6%2013.6%3B%22%20xml%3Aspace%3D%22preserve%22%3E%3Cstyle%20type%3D%22text%2Fcss%22%3E%20.st0%7Bfill%3A%23fff%3B%7D%3C%2Fstyle%3E%3Cpath%20class%3D%22st0%22%20d%3D%22M5.8%2C7.9c1.3%2C1.3%2C2.9%2C2.6%2C3.5%2C2c0.9-0.9%2C1.4-1.7%2C3.4-0.1c1.9%2C1.6%2C0.5%2C2.6-0.4%2C3.5c-1%2C1-4.7%2C0.1-8.3-3.6%20C0.3%2C6-0.6%2C2.3%2C0.4%2C1.4C1.2%2C0.5%2C2.3-1%2C3.8%2C1c1.6%2C1.9%2C0.8%2C2.5-0.1%2C3.4C3.1%2C4.9%2C4.4%2C6.5%2C5.8%2C7.9z%22%2F%3E%3C%2Fsvg%3E");
    background-color: #fa4e66;
    border-radius: 50%;
    background-repeat: no-repeat;
    background-position: center;
    background-size: 21px auto;
    position: absolute;
    left: 0;
    top: 50%;
    margin-top: -27px;
}

#system .tel small {
    font-size: 1.6rem;
}

#system .tel+p {
    color: #fa4e66;
}

#system .image {
    background: #fa4e66;
    border-radius: 10px;
    padding: 50px 10px;
    margin: 50px 0;
    text-align: center;
}

#system h3 {
    color: #293962;
    font-size: 2.0rem;
    margin-bottom: 20px;
}

#system h3+p {
    color: #7a7a7a;
    font-weight: 400;
}

#system ul.list {
    margin: -5px 0;
}

#system ul.list li {
    padding: 5px 0;
}

#system ul.list .inner {
    background: #fa4e66;
    color: #fff;
    padding: 10px 15px;
    border-radius: 10px;
}

#system ul.list .inner small {
    display: block;
    font-size: 1.3rem;
}

#system dl.row {
    margin-top: 20px;
    border-top: 1px solid #eee;
}

#system dl.row dt,
#system dl.row dd {
    padding: 10px 0;
    border-bottom: 1px solid #eee;
}

#system dl.row dt {
    width: 100px;
}

#system dl.row dd {
    width: calc(100% - 100px);
}

@media screen and (max-width: 768px) {
    #system .p-box {
        height: auto;
        padding: 15px 10px;
        margin: 30px 0 0;
        justify-content: center;
        -webkit-box-pack: center;
        -webkit-justify-content: center;
    }
    #system .p-box p:nth-child(1) {
        font-size: 1.3rem;
        margin: 0 0 5px;
        width: 65px;
        text-align: center;
    }
    #system .p-box p:nth-child(2) {
        font-size: 1.6rem;
        text-align: center;
        width: 100%;
    }
    #system .tel {
        color: #fa4e66;
        display: -webkit-box;
        display: -webkit-flex;
        display: flex;
        -webkit-flex-wrap: wrap;
        -ms-flex-wrap: wrap;
        flex-wrap: wrap;
        justify-content: center;
        -webkit-box-pack: center;
        -webkit-justify-content: center;
        margin: 25px 0 30px;
    }
    #system .tel p {
        padding-left: 55px;
        font-size: 2.2rem;
    }
    #system .tel p::before {
        width: 45px;
        height: 45px;
        background-size: 18px auto;
        margin-top: -22px;
    }
    #system .tel small {
        font-size: 1.3rem;
    }
    #system .tel+p {
        font-size: 1.4rem;
    }
    #system .image {
        padding: 30px 10px;
        margin: 30px 0 0;
    }
    #system .image img {
        max-width: 400px;
        width: 90%;
        margin: 0 auto;
    }
    #system h3 {
        font-size: 1.8rem;
        margin: 30px 0 10px;
    }
}


/*------------------------
  Consulting
------------------------*/

#consulting .wrapper::before,
#consulting .wrapper::after {
    content: '';
    position: absolute;
    height: 100%;
}

#consulting .wrapper::before {
    width: 185px;
    background: url("../images/home/consulting-bg-top.png") no-repeat center top/100% auto;
    left: 0;
    top: -100px;
}

#consulting .wrapper::after {
    width: 150px;
    background: url("../images/home/consulting-bg-bottom.png") no-repeat center bottom/100% auto;
    bottom: -15px;
    right: 0;
}

#consulting p {
    color: #fff;
    position: relative;
    z-index: 10;
}

@media screen and (max-width: 768px) {
    #consulting .content-title {
        position: relative;
    }
    #consulting .wrapper::before {
        background: url(../images/home/consulting-bg-bottom.png) no-repeat center top/100% auto;
        width: 80px;
        left: auto;
        right: -5px;
        top: -10px;
    }
    #consulting .wrapper::after {
        content: none;
    }
    #consulting .column-2:nth-child(2) {
        margin-top: 20px;
    }
}


/*------------------------
  News
------------------------*/

#news .link-btn {
    position: absolute;
    top: 0;
    right: 5.33vw;
}

#news .link-btn a {
    display: block;
    background-color: #fa4e66;
    padding: 0 20px 0;
    border-radius: 5px;
    font-size: 1.3rem;
    font-weight: 700;
    color: #fff;
}

#news .link-btn a:hover {
    background-color: #293962;
}

#news .link-btn .icon {
    display: inline-block;
    padding: 0 0 0 35px;
    background-image: url(../images/home/icon-list.svg);
    background-repeat: no-repeat;
    background-position: left center;
    line-height: 35px;
}

@media screen and (max-width: 768px) {
    #news .link-btn {
        position: relative;
        top: auto;
        right: auto;
        margin: 20px auto 0;
    }
    #news .link-btn a {
        text-align: center;
    }
    #news .link-btn .icon {
        line-height: 50px;
    }
}


/*------------------------
  Access
------------------------*/

#access {
    margin-top: -55px;
    padding-top: 55px;
}

#access .column-2 {
    color: #293962;
    font-weight: 500;
}

#access dl {
    display: -webkit-box;
    display: -webkit-flex;
    display: flex;
    -webkit-flex-wrap: wrap;
    -ms-flex-wrap: wrap;
    flex-wrap: wrap;
    line-height: 1.6;
    margin: -5px 0;
}

#access dl dt,
#access dl dd {
    padding: 5px 0;
}

#access dl small {
    display: block;
    font-size: 1.3rem;
    font-weight: 400;
}

#access .row .column-2:nth-child(1) .name {
    font-size: 2.0rem;
    font-weight: 700;
    line-height: 1.5;
    margin-bottom: 35px;
}

#access .row .column-2:nth-child(1) .name small {
    font-size: 1.6rem;
    display: block;
}

#access .row .column-2:nth-child(1) dl dt {
    width: 120px;
}

#access .row .column-2:nth-child(1) dl dd {
    width: calc(100% - 120px);
}

#access .row .column-2:nth-child(2) dl dt {
    width: 75px;
}

#access .row .column-2:nth-child(2) dl dd {
    width: calc(100% - 75px);
}

#access .access-box {
    margin-top: 20px;
    padding: 5px 0 5px 70px;
    font-weight: 700;
    line-height: 1.5;
    position: relative;
}

#access .access-box::before,
#access .access-box::after {
    content: '';
    position: absolute;
    width: 55px;
    height: 55px;
    left: 0;
    top: 50%;
    margin-top: -27px;
}

#access .access-box::before {
    background: #fa4e66;
    border-radius: 50%;
}

#access .access-box::after {
    background: url("../images/home/icon-access.svg") no-repeat center;
}

#access .access-box small {
    font-size: 100%;
    font-weight: 400;
    display: block;
}

#access .map {
    margin-top: 50px;
    position: relative;
    z-index: 10;
    display: -webkit-box;
    display: -webkit-flex;
    display: flex;
    -webkit-flex-wrap: wrap;
    -ms-flex-wrap: wrap;
    flex-wrap: wrap;
    border-radius: 10px;
    overflow: hidden;
    border: 1px solid #eee;
    background: #fff;
}

#access .map .gmap {
    height: 0;
    overflow: hidden;
    padding-bottom: 75.45%;
    position: relative;
}

#access .map .gmap iframe {
    position: absolute;
    left: 0;
    top: 0;
    height: 100%;
    width: 100%;
    vertical-align: bottom;
}

#access .map .column-2 {
    position: relative;
}

#access .map img {
    position: absolute;
    top: 50%;
    left: 50%;
    -webkit-transform: translate(-50%, -50%);
    transform: translate(-50%, -50%);
}

@media screen and (max-width: 768px) {
    #access dl {
        margin: 0;
    }
    #access dl small {
        font-size: 1.2rem;
    }
    #access .row .column-2:nth-child(1) .name {
        font-size: 1.8rem;
        text-align: center;
        margin-bottom: 20px;
    }
    #access .row .column-2:nth-child(1) .name small {
        font-size: 1.5rem;
    }
    #access .row .column-2:nth-child(1) dl {
        font-size: 1.5rem;
        width: 190px;
        margin: 0 auto 30px;
    }
    #access .row .column-2:nth-child(1) dl dt {
        width: 110px;
    }
    #access .row .column-2:nth-child(1) dl dd {
        width: calc(100% - 110px);
    }
    #access .row .column-2:nth-child(2) dl {
        border-bottom: 1px solid #eee;
        margin-bottom: 30px;
    }
    #access .row .column-2:nth-child(2) dl dt {
        width: 100%;
        border-top: 1px solid #eee;
        font-size: 1.3rem;
        font-weight: 700;
        padding: 15px 0 10px;
        line-height: 1;
    }
    #access .row .column-2:nth-child(2) dl dd {
        width: 100%;
        padding: 0 0 15px;
        font-size: 1.5rem;
    }
    #access .access-box {
        margin-top: 15px;
    }
    #access .wrapper.wide {
        padding: 0 5.33vw;
    }
    #access .map {
        margin-top: 40px;
    }
    #access .map .gmap {
        padding-bottom: 65.25%;
    }
    #access .map .column-2:nth-child(1) {
        padding: 10px 5px;
    }
    #access .map img {
        position: relative;
        top: auto;
        left: auto;
        -webkit-transform: translate(0, 0);
        transform: translate(0, 0);
        max-width: 380px;
        width: 100%;
        margin: 0 auto;
        display: block;
    }
}

@media screen and (max-width: 640px) {
    #access .map .gmap {
        padding-bottom: 100%;
    }
}


/*------------------------
  Message
------------------------*/

#message {
    color: #fff;
}

#message .wrapper::before {
    content: '';
    position: absolute;
    left: 2.665vw;
    top: -70px;
    width: 50%;
    height: 100%;
    background: url("../images/common/bg-hexagon.png") no-repeat left top;
}

#message .content-title {
    position: relative;
}

#message .profile {
    display: -webkit-box;
    display: -webkit-flex;
    display: flex;
    -webkit-flex-wrap: wrap;
    -ms-flex-wrap: wrap;
    flex-wrap: wrap;
    -webkit-box-align: center;
    -webkit-align-items: center;
    align-items: center;
    position: relative;
}

#message .profile .image {
    width: 90px;
    height: 90px;
    border-radius: 50%;
    background: #fff;
    overflow: hidden;
}

#message .profile .name {
    width: calc(100% - 90px);
    padding-left: 15px;
}

#message .profile .name p {
    line-height: 1.3;
    font-size: 1.8rem;
}

#message .profile .name p small {
    font-size: 1.3rem;
}

@media screen and (max-width: 768px) {
    #message .container {
        padding-top: 50px;
    }
    #message .wrapper::before {
        left: 5.33vw;
        top: -50px;
        width: 275px;
        height: 100%;
        background-size: 100% auto;
    }
    #message .profile {
        margin-bottom: 30px;
    }
    #message .profile .image {
        width: 70px;
        height: 70px;
    }
    #message .profile .name {
        width: calc(100% - 70px);
        padding-left: 10px;
    }
    #message .profile .name p {
        font-size: 1.5rem;
    }
}


/*------------------------
  Chart
------------------------*/

#chart .first,
#chart .second,
#chart .third {
    display: -webkit-box;
    display: -webkit-flex;
    display: flex;
    -webkit-flex-wrap: wrap;
    -ms-flex-wrap: wrap;
    flex-wrap: wrap;
    position: relative;
}

#chart .tag {
    border-radius: 10px;
    height: 70px;
    display: -webkit-box;
    display: -webkit-flex;
    display: flex;
    -webkit-flex-wrap: wrap;
    -ms-flex-wrap: wrap;
    flex-wrap: wrap;
    -webkit-box-align: center;
    -webkit-align-items: center;
    align-items: center;
    justify-content: center;
    -webkit-box-pack: center;
    -webkit-justify-content: center;
    font-size: 1.6rem;
    font-weight: 700;
    text-align: center;
    line-height: 1.5;
    margin: 5px;
}

#chart .first {
    justify-content: center;
    -webkit-box-pack: center;
    -webkit-justify-content: center;
}

#chart .first .tag {
    background: #293962;
    color: #fff;
    font-size: 1.8rem;
    width: 50%;
    height: 90px;
}

#chart .first::before {
    content: '';
    width: 1px;
    height: 20px;
    position: absolute;
    left: 50%;
    bottom: -20px;
    background: #eee;
}

#chart .second {
    justify-content: center;
    -webkit-box-pack: center;
    -webkit-justify-content: center;
    margin: 20px 0;
    background: #f8f7f4;
    border-radius: 10px;
    padding: 5px;
}

#chart .second .tag {
    width: calc(33.33% - 10px);
    background: #fff;
    color: #293962;
    border: 1px solid #eee;
}

#chart .second .tag.pink {
    background: #fa4e66;
    color: #fff;
    border-color: #fa4e66;
}

#chart .second .tag.pink:last-child {
    visibility: hidden;
    display: none;
}

#chart .second::before {
    content: '';
    width: 1px;
    height: 30px;
    position: absolute;
    left: 50%;
    bottom: -20px;
    background: #fa4e66;
}

#chart .third {
    padding: 5px;
}

#chart .third .tag {
    width: calc(25% - 10px);
    background: #fa4e66;
    color: #fff;
}

#chart .third::before {
    content: '';
    width: 100%;
    height: 20px;
    position: absolute;
    left: 0;
    top: 0;
    border: solid #fa4e66;
    border-width: 1px 1px 0;
}

@media screen and (max-width: 999px) {
    #chart .tag {
        font-size: 1.5rem;
    }
}

@media screen and (max-width: 768px) {
    #chart .tag {
        height: 50px;
        margin: 3px;
        font-size: 1.5rem;
        line-height: 1.3;
    }
    #chart .first {
        justify-content: center;
        -webkit-box-pack: center;
        -webkit-justify-content: center;
    }
    #chart .first .tag {
        font-size: 1.6rem;
        width: 100%;
        height: 70px;
    }
    #chart .second {
        justify-content: center;
        -webkit-box-pack: center;
        -webkit-justify-content: center;
        margin: 20px 0;
        background: #f8f7f4;
        border-radius: 10px;
        padding: 5px;
    }
    #chart .second .tag {
        width: calc(100% - 6px);
    }
    #chart .second .tag.pink:last-child {
        visibility: visible;
        display: -webkit-box;
        display: -webkit-flex;
        display: flex;
        -webkit-flex-wrap: wrap;
        -ms-flex-wrap: wrap;
        flex-wrap: wrap;
    }
    #chart .second .pc-none {
        display: -webkit-box;
        display: -webkit-flex;
        display: flex;
        -webkit-flex-wrap: wrap;
        -ms-flex-wrap: wrap;
        flex-wrap: wrap;
    }
    #chart .second::before {
        content: '';
        width: 1px;
        height: 30px;
        position: absolute;
        left: 50%;
        bottom: -20px;
        background: #fa4e66;
    }
    #chart .third .tag {
        width: calc(50% - 6px);
    }
}


/*------------------------
  Support
------------------------*/

#support .content-title+.row p {
    color: #293962;
    font-weight: 500;
}

#support .column-2:nth-child(2) img {
    border-radius: 10px;
}

#support .bg-gray {
    border-radius: 10px;
    border: 1px solid #eee;
    padding: 40px 60px 50px;
    margin-top: 40px;
    background-image: url("../images/home/icon-banner01.svg");
    background-repeat: no-repeat;
    background-size: 120px auto;
    background-position: right 40px bottom;
    background-color: #fff;
}

#support .bg-gray p+p {
    margin-top: 25px;
}

#support h3 {
    color: #293962;
    font-size: 2.0rem;
    margin-bottom: 30px;
}

@media screen and (max-width: 768px) {
    #support .column-2:nth-child(2) img {
        display: block;
        margin: 30px auto 0;
        max-width: 400px;
        width: 100%;
    }
    #support .bg-gray {
        border-radius: 10px;
        padding: 30px 5.33vw 50px;
        margin-top: 30px;
        background-size: 100px auto;
        background-position: right 2.66vw bottom;
    }
    #support .bg-gray p+p {
        margin-top: 20px;
    }
    #support .bg-gray .column-2:nth-child(2) {
        margin-top: 20px;
    }
    #support h3 {
        font-size: 1.6rem;
        margin-bottom: 20px;
    }
}


/*------------------------
  Banner
------------------------*/

#banner {
    background: #f8f7f4;
    padding-bottom: 100px;
    position: relative;
}

#banner::before {
    content: '';
    width: 100%;
    height: 30px;
    background: #fff;
    position: absolute;
    left: 0;
    top: 0;
}

#banner .row {
    margin: 0 -20px;
}

#banner .column-2 {
    padding: 10px;
}

#banner .column-2 a {
    display: -webkit-box;
    display: -webkit-flex;
    display: flex;
    -webkit-flex-wrap: wrap;
    -ms-flex-wrap: wrap;
    flex-wrap: wrap;
    -webkit-box-align: center;
    -webkit-align-items: center;
    align-items: center;
    width: 100%;
    border-radius: 10px;
    border: 1px solid #eee;
    background-color: #fff;
    background-repeat: no-repeat;
    background-position: right 20px bottom 20px;
    padding: 20px;
    color: #293962;
}

#banner .column-2 a:hover {
    color: #fa4e66;
}

#banner .column-2:nth-child(1) a {
    background-image: url("../images/home/icon-banner01.svg");
}

#banner .column-2:nth-child(2) a {
    background-image: url("../images/home/icon-banner02.svg");
}

#banner .column-2 .image {
    width: 170px;
    height: 100%;
    border-radius: 10px;
    overflow: hidden;
}

#banner .column-2 .image img {
    border-radius: 10px;
}

#banner .column-2 .text {
    width: calc(100% - 170px);
    padding-left: 20px;
}

#banner .column-2 h3 {
    font-size: 2.0rem;
}

#banner .column-2 p {
    font-size: 1.4rem;
    margin-top: 15px;
    padding: 5px 0 5px 40px;
    position: relative;
}

#banner .column-2 p::before,
#banner .column-2 p::after {
    content: '';
    position: absolute;
    width: 30px;
    height: 30px;
    left: 0;
    top: 50%;
    margin-top: -15px;
}

#banner .column-2 p::before {
    border-radius: 50%;
    background: #fa4e66;
    transition: all .2s;
    -webkit-transition: all .2s;
}

#banner .column-2 p::after {
    background: url("../images/common/arrow.svg") no-repeat center/10px auto;
}

@media screen and (max-width: 768px) {
    #banner {
        padding-bottom: 70px;
    }
    #banner::before {
        height: 20px;
    }
    #banner .row {
        margin: -5px 0;
    }
    #banner .column-2 {
        padding: 5px 0;
    }
    #banner .column-2 a {
        background-position: right 10px bottom 10px;
        padding: 3px;
    }
    #banner .column-2:nth-child(1) a {
        background-size: 40px auto;
    }
    #banner .column-2:nth-child(2) a {
        background-size: 40px auto;
    }
    #banner .column-2 .image {
        width: 140px;
    }
    #banner .column-2 .image img {
        max-height: 100%;
        width: auto;
    }
    #banner .column-2 .text {
        width: calc(100% - 140px);
        padding-left: 15px;
    }
    #banner .column-2 h3 {
        font-size: 1.8rem;
    }
}

@media screen and (max-width: 374px) {
    #banner .column-2 .image {
        width: 100px;
    }
    #banner .column-2 .text {
        width: calc(100% - 100px);
    }
    #banner .column-2 h3 {
        font-size: 1.6rem;
    }
    #banner .column-2 p {
        margin-top: 5px;
    }
}


/*------------------------
  Logo
------------------------*/

#logo {
    position: relative;
    margin-top: -100px;
    padding-top: 100px;
}

#logo .wrapper {
    padding-bottom: 20px;
}

#logo .wrapper::before {
    content: '';
    width: 50vw;
    height: 100%;
    background: #fa4e66;
    border-radius: 0 10px 10px 0;
    position: absolute;
    top: -20px;
    left: calc((100vw - 100%) / 2 * -1);
}

#logo .bg-pink {
    background: none;
}

#logo .column-2:nth-child(1) {
    position: relative;
    padding: 30px 30px 50px 0;
}

#logo .column-2:nth-child(1)::before {
    content: '';
    position: absolute;
    width: 0;
    height: 0;
    border-style: solid;
    border-width: 7px 0 7px 8px;
    border-color: transparent transparent transparent #fa4e65;
    right: -8px;
    top: calc(50% - 10px);
}

#logo h2 {
    padding-top: 75px;
    margin-top: -75px;
}

#logo p {
    color: #fff;
}

#logo img {
    display: block;
    margin: 50px auto 0;
}

@media screen and (max-width: 768px) {
    #logo {
        padding-bottom: 0;
    }
    #logo .wrapper::before {
        content: none;
    }
    #logo .column-2:nth-child(1) {
        position: relative;
        padding: 0 5.33vw 50px 0;
    }
    #logo .column-2:nth-child(1)::before {
        border-style: solid;
        border-width: 10px 10px 0 10px;
        border-color: #fa4e65 transparent transparent transparent;
        right: calc(50% - 10px);
        top: auto;
        bottom: -10px;
    }
    #logo .column-2:nth-child(1)::after {
        content: '';
        width: calc(100% + 5.33vw);
        height: calc(100% + 30px);
        background: #fa4e66;
        position: absolute;
        left: -5.33vw;
        top: -30px;
        border-radius: 0 10px 10px 0;
    }
    #logo h2,
    #logo p {
        position: relative;
        z-index: 10;
    }
    #logo h2 {
        padding-top: 0;
        margin-top: 0;
    }
    #logo img {
        margin: 30px auto 20px;
        max-width: 220px;
    }
}


/*------------------------
  Cloud
------------------------*/

#cloud h2 {
    text-align: center;
}

#cloud .text-wrap {
    width: calc(600px + 10.66vw);
    padding: 0 5.33vw;
    margin: 50px auto;
}

#cloud .text-wrap p {
    color: #293962;
    font-weight: 500;
}

#cloud .border-box {
    position: relative;
}

#cloud .border-box::before {
    content: '';
    position: absolute;
    width: 100%;
    height: calc(100% - 70px);
    left: 0;
    bottom: 0;
    border: 1px solid #eee;
    border-radius: 10px;
}

#cloud .border-box .row {
    padding-bottom: 20px;
    position: relative;
}

#cloud .border-box .text {
    padding: 50px 0 0 20px;
    color: #fa4e66;
}

#cloud .border-box a {
    color: #fa4e66;
}

#cloud .border-box a:hover {
    color: #293962;
}

#cloud .border-box h3 {
    font-size: 1.6rem;
    margin-bottom: 20px;
    line-height: 1.8;
}

#cloud .border-box p {
    font-size: 1.3rem;
    line-height: 1.5;
}

@media screen and (max-width: 768px) {
    #cloud h2 img {
        max-width: 335px;
        width: 100%;
    }
    #cloud .text-wrap {
        width: 100%;
        padding: 0;
        margin: 30px auto;
    }
    #cloud .text-wrap p {
        color: #293962;
        font-weight: 500;
    }
    #cloud .border-box::before {
        content: '';
        position: absolute;
        width: 100%;
        height: calc(100% - 70px);
        left: 0;
        bottom: 0;
        border: 1px solid #eee;
        border-radius: 10px;
    }
    #cloud .border-box .row {
        padding-bottom: 30px;
        -webkit-flex-direction: column;
        flex-direction: column;
    }
    #cloud .border-box .text {
        padding: 20px 15px 0;
    }
    #cloud .border-box img {
        display: block;
        margin: 0 auto;
        width: 120px;
    }
    #cloud .border-box h3 {
        font-size: 1.5rem;
        margin-bottom: 15px;
        line-height: 1.5;
    }
    #cloud .border-box p {
        font-size: 1.2rem;
    }
}