body {
    font-weight: 400;
    font-size: 16px;
    line-height: 1.6;
    color: #333;
    font-family: 'Noto Serif JP', Yu Mincho, "YuMincho", "Hiragino Mincho ProN", "", "MS PMincho", serif
}

.container {
    width: 100%;
    margin-right: auto;
    margin-left: auto;
    padding-left: 15px;
    padding-right: 15px;
    transition: ease-in .1s
}

.drawer-nav.header__nav.sp{
    display: none;
}

@media screen and (min-width: 1025px) {
    .container {
        max-width: 1170px
    }
}

@media screen and (min-width: 768px) and (max-width: 1024px) {
    .container {
        max-width: 970px
    }
}

@media screen and (max-width: 767px) {
    .container {
        max-width: 750px
    }
}

.spDisp {
    display: none
}

@media screen and (max-width: 767px) {
    .spDisp {
        display: inline
    }
}

.pcDisp {
    display: inline
}

@media screen and (max-width: 767px) {
    .pcDisp {
        display: none
    }
}

@media screen and (min-width: 1025px) {
    a:hover {
        opacity: .8
    }
}

@media screen and (min-width: 768px) and (max-width: 1024px) {
    a:hover {
        opacity: 1
    }
}

@media screen and (max-width: 767px) {
    a:hover {
        opacity: 1
    }
}

@media screen and (min-width: 1025px) {
    .outsidePadding {
        padding-left: 45px;
        padding-right: 45px
    }
}

@media screen and (min-width: 768px) and (max-width: 1024px) {
    .outsidePadding {
        padding-left: 15px;
        padding-right: 15px
    }
}

#header {
    position: relative;
    z-index: 99999;
    width: 100%;
    background-color: #fff;
    height: 80px;
    padding: 0;
}

#header #headerCnt {
    width: 100%;
    height: 100%;
    padding-right: 50px;
    display: flex;
    align-items: center
}

#header #headerCnt #logoArea {
    flex-basis: 230px;
    max-width: 230px;
    width: 100%;
    height: 210px;
    text-align: center;
    border-bottom-right-radius: 5px;
    position: absolute;
    top: 0;
    left: 0;
    z-index: 5;
    background-color: #0c4291;
    transition: all ease .3s
}

#header #headerCnt #logoArea #logo {
    margin: 0 auto;
    max-width: 190px;
    width: 100%;
    height: 100%;
    transition: all ease .3s
}

#header #headerCnt #logoArea #logo img {
    width: 100%;
    height: auto
}

#header #headerCnt #logoArea a {
    display: flex;
    justify-content: center;
    align-items: center;
    width: 100%;
    height: 100%;
    transition: all ease .3s
}

#header #headerCnt #logoArea img {
    transition: all ease .3s
}

#header #headerCnt #logoArea img.spDisp {
    max-width: 94px
}

#header #headerCnt #logoArea img.pcDisp {
    max-width: 190px
}

#header #headerCnt #logoArea img.spFixed {
    display: none
}

#header #headerCnt .headerLeadWrap {
    flex-basis: auto;
    width: auto;
    padding-left: 255px
}

#header #headerCnt .headerLeadWrap .headerLead {
    font-size: 12px;
    font-weight: 400;
    line-height: 1.6;
    color: #4d4d4d
}

#header #headerCnt .headerLeadWrap br {
    display: none
}

#header #headerCnt #headerContact {
    max-width: 20px;
    flex-basis: 411px;
    max-width: 411px;
    width: 100%;
    margin: 0 0 0 auto;
    display: flex;
    align-items: center;
    justify-content: space-between
}

#header #headerCnt #headerContact .tel {
    flex-basis: 183px;
    max-width: 183px;
    width: 100%;
    font-size: 14px
}

#header #headerCnt #headerContact .contactBtn {
    flex-basis: 200px;
    max-width: 200px;
    width: 100%;
    height: 50px
}

#header #headerCnt #headerContact .contactBtn a {
    background-color: #0c4291;
    border-radius: 30px;
    color: #ffffff;
    width: 100%;
    height: 100%;
    display: flex;
    align-items: center;
    justify-content: center;
    text-decoration: none;
    transition: all ease .3s
}

#header #headerCnt #headerContact .contactBtn a:before {
    content: '';
    background: url("../img/head-office_lp/icon_reserve.svg") no-repeat left center;
    background-size: 23px auto;
    width: 23px;
    height: 17px;
    margin-right: 10px;
    transition: all ease .3s
}

#header #headerCnt #headerContact .contactBtn a:hover {
    background-color: #fff;
    border: 1px solid #0c4291;
    color: #0c4291;
    transition: all ease .3s
}

#header #headerCnt #headerContact .contactBtn a:hover:before {
    background: url("../img/head-office_lp/icon_reserve_hvr.svg") no-repeat left center;
    background-size: 23px auto;
    transition: all ease .3s
}

@media screen and (min-width: 1025px) {
    #header #headerCnt #headerContact .contactBtn a {
        background-color: #0c4291;
        border-radius: 30px;
        color: #ffffff;
        width: 100%;
        height: 100%;
        display: flex;
        align-items: center;
        justify-content: center
    }

    #header #headerCnt #headerContact .contactBtn a:before {
        content: '';
        background: url("../img/head-office_lp/icon_reserve.svg") no-repeat left center;
        background-size: 23px auto;
        width: 23px;
        height: 17px;
        margin-right: 10px
    }
}

@media screen and (min-width: 768px) and (max-width: 1024px) {
    #header.fixed {
        position: fixed;
        top: 0;
        left: 0;
        width: 100%
    }

    #header.fixed+#mainCnt {
        margin-top: 80px
    }

    #header.fixed #headerCnt {
        padding: 0 15px
    }

    #header.fixed #headerCnt #logoArea {
        position: static;
        flex-basis: 293px;
        max-width: 293px;
        height: 100%;
        background-color: transparent;
        transition: none
    }

    #header.fixed #headerCnt #logoArea #logo {
        max-width: 100%;
        transition: none
    }

    #header.fixed #headerCnt #logoArea a {
        transition: none
    }

    #header.fixed #headerCnt #logoArea img {
        transition: none
    }

    #header.fixed #headerCnt #logoArea img.spDisp {
        display: none
    }

    #header.fixed #headerCnt #logoArea img.spFixed {
        display: block
    }

    #header.fixed #headerCnt .headerLeadWrap {
        display: none
    }

    #header #headerCnt {
        padding-right: 20px
    }

    #header #headerCnt #logoArea {
        flex-basis: 123px;
        max-width: 123px;
        height: 144px
    }

    #header #headerCnt #logoArea img.spDisp {
        display: block
    }

    #header #headerCnt #logoArea img.pcDisp {
        display: none
    }

    #header #headerCnt .headerLeadWrap {
        padding-left: 140px
    }

    #header #headerCnt .headerLeadWrap .headerLead {
        font-size: 10px
    }

    #header #headerCnt .headerLeadWrap br {
        display: block
    }

    #header #headerCnt #headerContact {
        display: none
    }
}

@media screen and (max-width: 767px) {
    #header {
        height: 50px
    }

    #header.fixed {
        position: fixed;
        top: 0;
        left: 0;
        width: 100%
    }

    #header.fixed+#mainCnt {
        margin-top: 50px
    }

    #header.fixed #headerCnt {
        padding: 0 15px
    }

    #header.fixed #headerCnt #logoArea {
        position: static;
        flex-basis: 293px;
        max-width: 293px;
        height: 100%;
        background-color: transparent;
        transition: none
    }

    #header.fixed #headerCnt #logoArea #logo {
        max-width: 100%;
        transition: none;
        padding-right: 5px;
    }

    #header.fixed #headerCnt #logoArea a {
        transition: none
    }

    #header.fixed #headerCnt #logoArea img {
        transition: none
    }

    #header.fixed #headerCnt #logoArea img.spDisp {
        display: none
    }

    #header.fixed #headerCnt #logoArea img.spFixed {
        display: block
    }

    #header.fixed #headerCnt .headerLeadWrap {
        display: none
    }

    #header #headerCnt {
        padding-right: 0
    }

    #header #headerCnt #logoArea {
        flex-basis: 123px;
        max-width: 123px;
        height: 144px
    }

    #header #headerCnt .headerLeadWrap {
        padding-left: 140px
    }

    #header #headerCnt .headerLeadWrap .headerLead {
        font-size: 10px
    }

    #header #headerCnt .headerLeadWrap br {
        display: block
    }

    #header #headerCnt #headerContact {
        display: none
    }
    .header__main_area.js_scroll_on {
        display: none !important;
    }
    .drawer-nav.header__nav.sp {
        touch-action: auto !important;
        position: fixed;
        top: 0;
        bottom: 0;
        overflow-y: auto;
        display: block;
        right: -80%;
        background: #0C4291;
        width: 80%;
        height: 100%;
        padding: 80px 20px 40px;
        margin-top: 0;
    }
    .drawer-nav.header__nav.sp .header__nav-list>li.children>a::after {
        content: none;
    }
    .drawer-nav.header__nav.sp .sub-menu {
        display: none;
    }
    .drawer-nav.header__nav.sp .fa.fa-angle-down {
        position: absolute;
        top: 0px !important;
        right: 0;
        z-index: 100;
        width: 100%;
        height: 50px;
    }
    .drawer-nav.header__nav.sp .fa.fa-angle-down:before {
        content: "\f107";
        margin-left: auto;
        margin-top: 13px;
        font-size: 26px;
        display: block;
        width: 26px;
        color: #fff;
    }
    .drawer-nav.header__nav.sp .sub-menu a {
        border-bottom: none;
    }
    .drawer-nav.header__nav.sp .header__nav-list>li a {
        display: block;
        position: relative;
        z-index: 10;
        margin-right: 0;
        line-height: 1.5;
        color: #fff;
    }
    .drawer-nav.header__nav.sp .header__nav-list>li a::after {
        position: absolute;
        top: 20px;
        left: 0;
        border-right: 6px solid transparent;
        border-top: 6px solid transparent;
        border-bottom: 6px solid transparent;
        border-left: 6px solid #fff;
        content: "";
         z-index: 1
    }
    .js_nav_close-btn {
        position: absolute;
        top: 20px;
        right: 10px;
        z-index: 10000;
        width: 60px;
        height: 60px;
    }
    .js_nav_close-btn::before,
    .js_nav_close-btn::after {
        position: absolute;
        top: 30px;
        right: 10px;
        z-index: 10;
        width: 40px;
        height: 2px;
        border-top: 2px solid #fff;
        transform: rotate(-45deg);
        content: "";
    }
    .js_nav_close-btn::after {
        border-top: 2px solid #fff;
        transform: rotate(45deg);
    }
    .js_menu_move {
        position: relative;
        animation-name: menuLeft;
        animation-duration: .3s;
        animation-fill-mode: forwards;
    }

    @keyframes menuLeft {
        0% {
            left: 0;
        }
        100% {
            left: -80%;
        }
    }

    .js_menu_reset {
        position: relative;
        animation-name: menuReset;
        animation-duration: .3s;
        animation-fill-mode: forwards;
    }
}

.header__nav {
    z-index: 99;
}

.header__nav .header__nav-list {
    padding: 0;
    display: flex;
    flex-wrap: wrap;
    justify-content: space-between;
    align-items: center
}

.header__nav .header__nav-list li {
    position: relative
}

.header__nav .header__nav-list li::before {
    content: "";
    width: 2px;
    height: 20px;
    position: absolute;
    top: 34px;
    left: 0;
    background-image: linear-gradient(to top, #4d4d4d, #4d4d4d 2px, transparent 2px, transparent 5px);
    background-size: 1px 4px;
    background-position: left top;
    background-repeat: repeat-y;
    display: block;
    z-index: 1
}

.header__nav .header__nav-list li:last-child::after {
    content: "";
    width: 2px;
    height: 20px;
    position: absolute;
    top: 34px;
    right: 0;
    background-image: linear-gradient(to top, #4d4d4d, #4d4d4d 2px, transparent 2px, transparent 5px);
    background-size: 1px 4px;
    background-position: left top;
    background-repeat: repeat-y;
    display: block;
    z-index: 1
}

.header__nav .header__nav-list li a {
    font-size: 16px;
    font-weight: 400;
    text-decoration: none;
    position: relative;
    padding: 37px 10px 10px 10px;
    display: block;
    color: #333
}

.header__nav .header__nav-list li a span {
    position: absolute;
    display: block;
    top: 18px;
    width: calc(100% - 30px);
    font-size: 12px;
    color: #0c4291
}

.header__nav .header__nav-list li.children {
    width: 142px
}

.header__nav .header__nav-list li.children a span {
    width: 88%
}

.header__nav .header__nav-list li .sub-menu li::before {
    content: none !important
}

.header__nav .header__nav-list li .sub-menu li::after {
    content: none !important
}

.header__nav .header__nav-list li .sub-menu a {
    padding-top: 12px
}

.header__nav .header__nav-list li.children{
    position: relative;
}
.header__nav .header__nav-list li.children:hover{background-color: #0c4291;}
.header__nav .header__nav-list li.children:hover .sub-menu {
    opacity: 1;
    animation-name: show;
    animation-duration: .3s;
    animation-fill-mode: forwards;
}
 
.children .sub-menu {
    opacity: 0;
    display: none;
    position: absolute;
    top: 60px;
    left: -26px;
    z-index: -1;
    width: 588px;
    padding: 50px 20px 25px 40px;
    box-sizing: content-box;
}
.header__nav .header__nav-list li.children:hover a,
.children .sub-menu li a:hover{
    background-color: #0c4291;
    color: #fff;
    opacity: 1;
}
.header__nav .header__nav-list li.children:hover a span{
    color: #fff;
}
.header__nav .header__nav-list li.children:hover .sub-menu a{
    background: transparent;
    color: #333;
}
.header__nav .header__nav-list li.children:hover .sub-menu a:hover{
    background-color: #0c4291;
    color: #fff;
    opacity: 1;
}
.sub-menu {
        opacity: 0;
        /* display: none; */
        position: absolute;
        top: 60px;
        left: -26px;
        z-index: -1;
        width: 588px;
        padding: 50px 20px 25px 40px;
        box-sizing: content-box;
    }
    @media all and (-ms-high-contrast:none) {
        _:-ms-lang(x)::-ms-backdrop,
        .children:hover .sub-menu {
            opacity: 1;
        }
    }
    .children .sub-menu {
        animation-name: hide;
        animation-duration: .3s;
        animation-fill-mode: forwards;
    }
    /* .header__nav-list .children .sub-menu {
        min-height: 40px;
    }
    .header__nav-list .price.children .sub-menu {
        max-width: 240px;
        width: 100%;
    }
    .header__nav-list .price.children .sub-menu li {
        max-width: 230px;
        width: 100%;
    } */
    @keyframes hide {
        0% {
            opacity: 1;
        }
        100% {
            opacity: 0;
        }
    }
    .children:hover .sub-menu {
        animation-name: show;
        animation-duration: .3s;
        animation-fill-mode: forwards;
    }
    @keyframes show {
        0% {
            opacity: 0;
        }
        100% {
            opacity: 1;
        }
    }
    .sub-menu::before {
        position: absolute;
        top: 25px;
        left: 0;
        width: 100%;
        height: 170%;
        background: #F0F4F8;
        content: "";
    }
    .sub-menu::after {
        position: absolute;
        top: 10px;
        left: 60px;
        border-right: 10px solid transparent;
        border-bottom: 16.6025px solid #F0F4F8;
        border-left: 10px solid transparent;
        content: "";
    }
    .sub-menu li {
        width: 290px;
        margin-left: auto;
        text-align: left;
    }
    .sub-menu li:first-child,
    .sub-menu li:nth-child(2) {
        position: absolute;
        top: 52px;
        left: 40px;
    }
    .sub-menu li:nth-child(2) {
        top: 98px;
    }
    .sub-menu a {
        display: block;
        position: relative;
        z-index: 10;
        margin-right: 0;
        padding-left: 1.5em !important;
        color: #333;
        border-bottom: none;
        line-height: 1.5;
    }
    .sub-menu a::after {
        position: absolute;
        top: 16px;
        left: 5px;
        border-right: 6px solid transparent;
        border-top: 6px solid transparent;
        border-bottom: 6px solid transparent;
        border-left: 6px solid #0C428F;
        content: "";
    }
    .sub-menu.is-active a:hover::after {
        border-left-color: #fff !important;
    }

@keyframes show {
    0% {
        opacity: 0;
    }
    100% {
        opacity: 1;
    }
}

#header #btn-spmenu{
    display: none;
}
@media screen and (max-width: 1024px) {
    #header.fixed #headerCnt{
        justify-content: space-between;
    }
    #header.fixed #btn-spmenu {
        display: inline-block;
        padding: 12px 0;
        width: 34px;
        height: 60px;
        cursor: pointer;
      }
    #btn-spmenu span {
    display: block;
    width: 30px;
    height: 2px;
    background-color: #0c4291;
    margin: 5px auto 0;
    transition: all .3s ease-in-out;
    }
    #btn-spmenu p{
        padding-top: 0;
        font-size: 10px;
    }

}
@media screen and (min-width: 1025px) {
   
    .header__nav {
        position: relative;
        display: block;
        height: auto;
        padding: 0;
        width: 100%;
        top: 0 !important;
        background-color: #fff;
        transition: all .3 ease-in-out;
        right: 0;
    }

    .header__nav.fixed {
        position: fixed !important;
        top: 0 !important;
        left: 0 !important;
        z-index: 6000 !important;
        width: 100% !important;
        height: 70px;
        box-shadow: 0px -69px 107px 0px;
    }

    .header__nav.fixed+#aboutArea {
        margin-top: 110px !important
    }

    .header__nav .header__nav-list {
        flex-wrap: nowrap;
        max-width: 1170px;
        margin: 0 auto;
        height: 70px
    }

    .header__nav .header__nav-list>li>i {
        pointer-events: none
    }

    .header__nav .header__nav-list>li>a:hover {
        background: #0C428F;
        color: #fff;
        opacity: 1;
    }

    .header__nav .header__nav-list li a:hover span{
        color: #fff;
    }

    .header__nav .header__nav-list li {
        flex: 1 0 auto;
        text-align: center
    }
}

@media screen and (min-width: 768px) and (max-width: 1024px) {
    .header__nav {
        display: none
    }

    .header__nav .header__nav-list li::before {
        content: none !important
    }

    .header__nav .header__nav-list li::after {
        content: none !important
    }

    .header__nav .header__nav-list li a {
        padding-top: 15px;
        margin-right: 25px
    }

    .header__nav .header__nav-list li a span {
        display: none
    }
}

@media screen and (max-width: 767px) {
    .header__nav {
        margin-top: 40px
    }

    .header__nav .header__nav-list li {
        flex-basis: 100%;
        max-width: 100%;
        width: 100%;
        background-color: transparent;
        border-bottom: 1px solid #fff;
    }

    .header__nav .header__nav-list li.top {
        display: none
    }

    .header__nav .header__nav-list li:nth-child(n+4) {
        margin-top: 10px
    }

    .header__nav .header__nav-list li::before {
        content: none !important
    }

    .header__nav .header__nav-list li::after {
        content: none !important
    }

    .header__nav .header__nav-list li a {
        padding: 14px;
        font-size: 14px;
        display: flex;
        align-items: center;
        justify-content: center;
        flex-direction: column
    }

    .header__nav .header__nav-list li a:after {
        content: '▼';
        display: block;
        color: #0c4291
    }

    .header__nav .header__nav-list li a span {
        display: none
    }
}

.mainImg {
    background: url("../img/head-office_lp/main_pc.jpg") no-repeat center center;
    background-size: cover;
    height: 540px;
    position: relative;
    padding-right: 5%;
    padding-top: 40px
}

.mainImg .mainPhotoWrap {
    max-width: 572px;
    width: 100%;
    height: 440px;
    position: relative;
    margin-left: auto
}

.mainImg .mainPhotoWrap img {
    position: absolute;
    width: 100%
}

.mainImg .mainPhotoWrap .mainPhoto1 {
    max-width: 219px;
    top: 60px;
    left: 0;
    transform-origin: center bottom;
    animation: fuwafuwa 4s infinite ease-in-out .8s alternate
}

.mainImg .mainPhotoWrap .mainPhoto2 {
    max-width: 313px;
    top: 0;
    right: 0;
    transform-origin: center center;
    animation: fuwafuwa2 3s infinite ease-in-out .8s alternate
}

.mainImg .mainPhotoWrap .mainPhoto3 {
    max-width: 254px;
    right: 180px;
    bottom: 0;
    transform-origin: center bottom;
    animation: fuwafuwa 5s infinite ease-in-out .8s alternate
}

.mainImg .mainPhotoWrap .mainPhoto4 {
    max-width: 115px;
    left: 40px;
    bottom: 10px;
    transform-origin: center bottom;
    animation: fuwafuwa2 3s infinite ease-in-out .8s alternate
}

@keyframes fuwafuwa {
    0% {
        transform: translate(0, 0) rotate(-5deg)
    }

    50% {
        transform: translate(0, -5deg) rotate(0deg)
    }

    100% {
        transform: translate(0, 0) rotate(5deg)
    }
}

@keyframes fuwafuwa2 {
    0% {
        transform: translate(0, 0) rotate(5deg)
    }

    50% {
        transform: translate(0, 5deg) rotate(0deg)
    }

    100% {
        transform: translate(0, 0) rotate(-5deg)
    }
}

@media screen and (min-width: 768px) and (max-width: 1024px) {
    .mainImg {
        background: url("../img/head-office_lp/main_pc.jpg") no-repeat center left -440px;
        background-size: cover;
        padding-right: 5%
    }

    .mainImg .mainPhotoWrap {
        max-width: 57%;
        height: 100%
    }

    .mainImg .mainPhotoWrap .mainPhoto1 {
        max-width: 38%;
        top: 13%;
        left: 0
    }

    .mainImg .mainPhotoWrap .mainPhoto2 {
        max-width: 54%;
        top: 0;
        right: 0
    }

    .mainImg .mainPhotoWrap .mainPhoto3 {
        max-width: 44%;
        right: 30%;
        top: 244px
    }

    .mainImg .mainPhotoWrap .mainPhoto4 {
        max-width: 20%;
        left: 7%;
        top: 335px
    }
}

@media screen and (max-width: 767px) {
    .mainImg {
        background: url("../img/head-office_lp/main_pc.jpg") no-repeat center left -440px;
        background-size: cover;
        height: 550px;
        padding-right: 0
    }

    .mainImg .mainPhotoWrap {
        max-width: 300px;
        height: 60%;
        margin: 0 10px 0 auto
    }

    .mainImg .mainPhotoWrap .mainPhoto1 {
        max-width: 133px;
        right: 13%;
        left: auto;
        top: auto;
        bottom: 10px
    }

    .mainImg .mainPhotoWrap .mainPhoto2 {
        max-width: 164px
    }

    .mainImg .mainPhotoWrap .mainPhoto3 {
        max-width: 115px;
        top: 55px;
        bottom: auto;
        left: 0;
        right: auto
    }

    .mainImg .mainPhotoWrap .mainPhoto4 {
        max-width: 80px;
        left: 10px;
        bottom: 60px
    }
}

@media screen and (max-width: 600px) {
    .mainImg {
        background: url("../img/head-office_lp/main_pc.jpg") no-repeat center left -440px;
        background-size: cover;
        height: 550px;
        padding-right: 0
    }

    .mainImg .mainPhotoWrap {
        max-width: 350px;
        height: 100%;
        margin: 0 auto
    }

    .mainImg .mainPhotoWrap .mainPhoto1 {
        max-width: 133px;
        right: 13%;
        left: auto;
        top: auto;
        bottom: 10px
    }

    .mainImg .mainPhotoWrap .mainPhoto2 {
        max-width: 164px
    }

    .mainImg .mainPhotoWrap .mainPhoto3 {
        max-width: 115px;
        top: 55px;
        bottom: auto;
        left: 0;
        right: auto
    }

    .mainImg .mainPhotoWrap .mainPhoto4 {
        max-width: 80px;
        left: 10px;
        bottom: 50px
    }
}

@media screen and (max-width: 415px) {
    .mainImg {
        background: url("../img/head-office_lp/main_sp_bg.jpg") no-repeat center center;
        background-size: cover;
        height: 617px;
        padding-top: 30px;
        padding-right: 0
    }

    .mainImg .mainPhotoWrap {
        max-width: 80%;
        height: 560px;
        margin: 0 auto
    }

    .mainImg .mainPhotoWrap .mainPhoto1 {
        max-width: 65%;
        right: -20px;
        left: auto;
        top: auto;
        bottom: -10px
    }

    .mainImg .mainPhotoWrap .mainPhoto2 {
        max-width: 72%;
        right: -20px
    }

    .mainImg .mainPhotoWrap .mainPhoto3 {
        max-width: 47%;
        top: 110px;
        bottom: auto;
        left: 0;
        right: auto
    }

    .mainImg .mainPhotoWrap .mainPhoto4 {
        max-width: 40%;
        left: -10px;
        bottom: 60px
    }
}

#mainCnt h2 {
    font-size: 32px;
    font-weight: 700;
    line-height: 1.6;
    color: #0c4291;
    margin: 0 0 30px
}

#mainCnt h2 .en {
    font-size: 18px;
    display: block;
    position: relative;
    padding-left: 50px;
    color: #4d4d4d;
    margin-bottom: 20px
}

#mainCnt h2 .en:before {
    content: '';
    width: 40px;
    height: 2px;
    background-image: linear-gradient(to right, #0c4291, #0c4291 2px, transparent 2px, transparent 5px);
    background-size: 5px 2px;
    background-position: left center;
    background-repeat: repeat-x;
    position: absolute;
    top: 50%;
    left: 0;
    margin-top: -1px
}

@media screen and (max-width: 767px) {
    #mainCnt h2 {
        font-size: 28px
    }

    #mainCnt h2 .en {
        font-size: 16px
    }
}

#mainCnt p {
    line-height: 1.8
}

#mainCnt #aboutArea {
    margin: 20px 0 70px;
    padding-top: 70px
}

#mainCnt #aboutArea .aboutWrap {
    display: flex
}

#mainCnt #aboutArea .aboutWrap .aboutBox {
    flex-basis: 50%;
    max-width: 50%;
    width: 100%
}

#mainCnt #aboutArea .aboutWrap .aboutBox.textBox {
    position: relative;
    background: url("../img/head-office_lp/bg_logo.svg") no-repeat bottom right;
    background-size: 302px auto;
    margin-top: 20px
}

#mainCnt #aboutArea .aboutWrap .aboutBox.imgBox {
    padding-left: 40px
}

#mainCnt #aboutArea .aboutWrap .aboutBox.imgBox ul {
    display: flex;
    justify-content: space-between
}

#mainCnt #aboutArea .aboutWrap .aboutBox.imgBox ul li {
    flex-basis: 48%;
    max-width: 48%;
    width: 100%;
    overflow: hidden;
    border-radius: 5px
}

#mainCnt #aboutArea .aboutWrap .aboutBox.imgBox ul li:nth-child(1) {
    margin-top: 40px
}

.bnr_invisalign {
    max-width: 940px;
    margin: 0 auto 50px;
    text-align: center;
}

.bnr_invisalign img.pc {
    display: block;
}

.bnr_invisalign img.sp {
    display: none;
}

#mainCnt #featureArea {
    margin-top: -70px;
    padding-top: 70px;
    margin-bottom: 140px
}

#mainCnt #featureArea .firstHeadLine {
    color: #0c4291;
    font-size: 32px;
    font-weight: 700;
    text-align: center;
    margin-bottom: 70px
}

#mainCnt #featureArea .bg {
    padding-top: 120px;
    background-color: #f0f4f8;
    position: relative
}

#mainCnt #featureArea .bg:before {
    content: '';
    background: url("../img/head-office_lp/wave_white.png") repeat-x top center;
    background-size: auto 100%;
    display: block;
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 120px;
    transform: scale(1, -1)
}

#mainCnt #featureArea .inner {
    position: relative;
    background: url("../img/head-office_lp/features.svg") no-repeat top 60px left;
    background-size: 240px
}

#mainCnt #featureArea h2.h2_1 {
    text-align: center;
    padding-bottom: 40px;
    margin-bottom: 0
}

#mainCnt #featureArea h2.h2_1 span {
    padding-left: 0;
    padding-bottom: 10px;
    margin-bottom: 10px
}

#mainCnt #featureArea h2.h2_1 span:before {
    top: auto;
    bottom: 0;
    left: 50%;
    transform: translateX(-50%)
}

#mainCnt #featureArea .featuresSlider {
    max-width: 600px;
    width: 100%;
    overflow: hidden;
    margin: -145px auto 60px
}

#mainCnt #featureArea .featuresSlider img {
    border-radius: 5px
}

#mainCnt #featureArea .featuresSlider .slick-dots li.slick-active button:before {
    opacity: 1;
    color: #0c4291
}

#mainCnt #featureArea .featuresSlider .slick-dots li button:before {
    opacity: 1;
    color: #fff
}

#mainCnt #featureArea .featuresWrap {
    display: flex;
    flex-wrap: wrap;
    justify-content: space-between;
    padding-bottom: 90px
}

#mainCnt #featureArea .featuresWrap .featuresBox {
    flex-basis: 32%;
    max-width: 32%;
    width: 100%
}

#mainCnt #featureArea .featuresWrap .imgBox {
    width: 150px;
    height: 150px;
    margin: 0 auto 20px;
    display: flex;
    align-items: center;
    justify-content: center;
    background-color: #fff;
    border-radius: 100%
}

#mainCnt #featureArea .featuresWrap .imgBox img {
    width: 80px
}

#mainCnt #featureArea .featuresWrap .headLine {
    font-weight: 700;
    font-size: 18px;
    margin-bottom: 15px;
    text-align: center;
    color: #4d4d4d
}

#mainCnt #featureArea .bgImg {
    width: 100%;
    height: 520px;
    background: url("../img/head-office_lp/feature_bgimg.jpg") no-repeat center center;
    background-size: cover;
    position: relative
}

#mainCnt #featureArea .bgImg:before {
    content: '';
    width: 100%;
    height: 100%;
    background: url("../img/head-office_lp/wave_blue.png") repeat-x top center, url("../img/head-office_lp/wave_white.png") repeat-x bottom center;
    background-size: auto 120px, auto 120px;
    display: block;
    position: absolute;
    top: 0;
    left: 0;
    z-index: 1
}

#mainCnt #featureArea .bgImg:after {
    content: '';
    width: 100%;
    height: 100%;
    position: absolute;
    top: 0;
    left: 0;
    display: block;
    background: linear-gradient(to right, #1261d5, #bee5f6 60%, #d1e8ff 100%);
    opacity: 0.6
}

#mainCnt #featureArea .bgImg .outsidePadding {
    height: 100%
}

#mainCnt #featureArea .bgImg .container {
    position: relative;
    height: 100%
}

#mainCnt #featureArea .bgImg .textBox {
    max-width: 520px;
    width: 100%;
    padding: 60px;
    background-color: #f0f8fb;
    position: absolute;
    bottom: -90px;
    left: 15px;
    z-index: 1
}

#mainCnt #sogoshikaArea {
    margin-bottom: 90px
}

#mainCnt #sogoshikaArea .subHeadline {
    font-size: 18px;
    color: #4d4d4d;
    padding-top: 70px;
    text-align: center;
    background: url("../img/head-office_lp/icon_family.svg") no-repeat top center;
    background-size: 48px auto;
    font-weight: 500;
    border-bottom: 1px solid #4d4d4d;
    max-width: 330px;
    width: 100%;
    padding-bottom: 6px;
    margin: 0 auto 20px;
    position: relative
}

#mainCnt #sogoshikaArea .subHeadline:before {
    content: "";
    position: absolute;
    bottom: -9px;
    left: 90px;
    border: 9px solid transparent;
    border-top: 9px solid #fff;
    z-index: 2;
    transform: rotate(-135deg)
}

#mainCnt #sogoshikaArea .subHeadline:after {
    content: "";
    position: absolute;
    bottom: -11px;
    left: 90px;
    border: 10px solid transparent;
    border-top: 10px solid #4d4d4d;
    z-index: 1;
    transform: rotate(-135deg)
}

#mainCnt #sogoshikaArea h2 {
    text-align: center;
    margin-bottom: 120px
}

#mainCnt #sogoshikaArea h2 span {
    font-size: 26px
}

#mainCnt #sogoshikaArea .sogoshikaWrap {
    display: flex;
    flex-wrap: wrap;
    justify-content: space-between
}

#mainCnt #sogoshikaArea .sogoshikaWrap .sogoshikaBox {
    flex-basis: 32%;
    max-width: 32%;
    width: 100%;
    padding: 110px 20px 30px;
    border-radius: 5px;
    background-color: #f0f8fb;
    position: relative
}

#mainCnt #sogoshikaArea .sogoshikaWrap .sogoshikaBox:nth-child(n+4) {
    margin-top: 120px
}

#mainCnt #sogoshikaArea .sogoshikaWrap .sogoshikaBox .imgBox {
    position: absolute;
    top: -80px;
    left: 50%;
    transform: translateX(-50%);
    max-width: 253px;
    width: 100%;
    border-radius: 5px;
    overflow: hidden
}

#mainCnt #sogoshikaArea .sogoshikaWrap .smallHeadline {
    font-weight: 500;
    font-size: 14px;
    color: #4d4d4d;
    text-align: center;
    margin-bottom: 15px
}

#mainCnt #sogoshikaArea .sogoshikaWrap .headLine {
    font-size: 18px;
    font-weight: 700;
    color: #0c4291;
    text-align: center;
    padding-bottom: 16px;
    position: relative;
    margin-bottom: 20px
}

#mainCnt #sogoshikaArea .sogoshikaWrap .headLine:after {
    content: '';
    background-image: repeating-linear-gradient(-45deg, #0c4291 0px, #0c4291 1px, transparent 0%, transparent 50%);
    background-size: 4px 4px;
    background-repeat: repeat-x;
    background-position: center bottom;
    width: 100%;
    height: 6px;
    display: block;
    position: absolute;
    left: 0;
    bottom: 0
}

#mainCnt #sogoshikaArea .sogoshikaWrap.w100p {
    padding: 40px;
    background-color: #f0f8fb;
    border-radius: 5px;
    margin-top: 40px;
    align-items: center
}

#mainCnt #sogoshikaArea .sogoshikaWrap.w100p.reverse {
    flex-flow: row-reverse
}

#mainCnt #sogoshikaArea .sogoshikaWrap.w100p .imgBox,
#mainCnt #sogoshikaArea .sogoshikaWrap.w100p .textBox {
    flex-basis: 48%;
    max-width: 48%;
    width: 100%
}

#mainCnt #sogoshikaArea .sogoshikaWrap.w100p .imgBox {
    border-radius: 5px;
    overflow: hidden
}

#mainCnt #sogoshikaArea .sogoshikaWrap.w100p br {
    display: none
}

#mainCnt #staffArea {
    margin-top: -70px;
    padding-top: 70px;
    margin-bottom: 70px;
    overflow: hidden;
    position: relative
}

#mainCnt #staffArea:before {
    content: '';
    width: 100%;
    height: 120px;
    position: absolute;
    top: 60px;
    left: 0;
    display: block;
    background: url("../img/head-office_lp/wave_white.png") no-repeat top center;
    background-size: auto 100%;
    transform: scale(1, -1)
}

#mainCnt #staffArea:after {
    content: '';
    width: 100%;
    height: 120px;
    position: absolute;
    bottom: 0;
    left: 0;
    display: block;
    background: url("../img/head-office_lp/wave_white.png") no-repeat bottom center;
    background-size: auto 100%
}

#mainCnt #staffArea .bg {
    padding: 25px 0 125px;
    background-color: #f0f4f8
}

#mainCnt #staffArea h2 {
    padding-top: 75px;
    background: url("../img/head-office_lp/icon_staff.svg") no-repeat top center;
    text-align: center;
    margin-bottom: 40px;
    position: relative;
    z-index: 1
}

#mainCnt #staffArea h2 span {
    font-size: 18px;
    display: block;
    color: #4d4d4d;
    margin-top: 5px
}

#mainCnt #staffArea p {
    text-align: center
}

#mainCnt #staffArea .staffSlider {
    margin-top: 40px
}

#mainCnt #staffArea .staffSlider .slick-slide {
    margin: 0 15px;
    max-width: 250px
}

#mainCnt #staffArea .staffSlider .slick-list {
    overflow: visible
}

#mainCnt #staffArea .staffSlider .staffImg {
    border-radius: 5px;
    overflow: hidden;
    margin-bottom: 20px;
    height: 300px;
    position: relative;
    width: 100%
}

#mainCnt #staffArea .staffSlider .staffImg img {
    max-width: none;
    width: 100%;
    height: 100%;
    position: absolute;
    top: 50%;
    left: 50%;
    transform: translate(-50%, -50%);
    object-fit: cover
}

#mainCnt #staffArea .staffSlider .name {
    font-size: 22px;
    font-weight: 500
}

#mainCnt #staffArea .staffSlider .name span {
    font-size: 16px;
    font-weight: 700;
    color: #0c4291;
    display: block;
    margin-bottom: 5px
}

#mainCnt #staffArea .staffSlider .slick-prev,
#mainCnt #staffArea .staffSlider .slick-next {
    z-index: 10;
    width: 40px;
    height: 40px;
    top: 40%;
    border-radius: 100%;
    background-color: #0c4291
}

#mainCnt #staffArea .staffSlider .slick-prev {
    left: 0
}

#mainCnt #staffArea .staffSlider .slick-prev:before {
    content: "" !important;
    font-family: FontAwesome
}

#mainCnt #staffArea .staffSlider .slick-next {
    right: 0
}

#mainCnt #staffArea .staffSlider .slick-next:before {
    content: "" !important;
    font-family: FontAwesome
}

#mainCnt #clinicArea {
    margin-bottom: 180px
}

#mainCnt #clinicArea h2 {
    padding-top: 75px;
    background: url("../img/head-office_lp/icon_clinic.svg") no-repeat top center;
    text-align: center;
    margin-bottom: 40px
}

#mainCnt #clinicArea h2 span {
    font-size: 18px;
    display: block;
    color: #4d4d4d;
    margin-top: 5px
}

#mainCnt #clinicArea .headLine {
    font-size: 32px;
    font-weight: 700;
    color: #0c4291;
    text-align: center;
    padding-bottom: 16px;
    position: relative;
    margin-bottom: 30px
}

#mainCnt #clinicArea .headLine:after {
    content: '';
    background-image: repeating-linear-gradient(-45deg, #0c4291 0px, #0c4291 1px, transparent 0%, transparent 50%);
    background-size: 4px 4px;
    background-repeat: repeat-x;
    background-position: center bottom;
    width: 100%;
    height: 6px;
    display: block;
    position: absolute;
    left: 0;
    bottom: 0
}

#mainCnt #clinicArea .headLine.access {
    margin-top: -10px;
    padding-top: 70px
}

#mainCnt #clinicArea #clinicLink1 {
    margin-top: -70px;
    padding-top: 70px
}

#mainCnt #clinicArea .clinicWrap {
    border-radius: 5px;
    padding: 40px 30px;
    background-color: #f0f4f8
}

#mainCnt #clinicArea .clinicWrap .subHeadline {
    font-size: 18px;
    font-weight: 700;
    color: #ffffff;
    text-align: center;
    min-height: 50px;
    display: flex;
    justify-content: center;
    align-items: center;
    background-color: #0c4291;
    margin: 40px 0 30px
}

#mainCnt #clinicArea .clinicWrap .subHeadline:first-child {
    margin-top: 0
}

#mainCnt #clinicArea .clinicWrap .clinicInner {
    display: flex;
    flex-wrap: wrap;
    justify-content: space-between
}

#mainCnt #clinicArea .clinicWrap .clinicInner .clinicBox {
    flex-basis: 48%;
    max-width: 48%;
    width: 100%
}

#mainCnt #clinicArea .clinicWrap .clinicInner .clinicBox:nth-child(n+3) {
    margin-top: 40px
}

#mainCnt #clinicArea .clinicWrap .clinicInner .clinicBox .imgBox {
    border-radius: 5px;
    overflow: hidden;
    margin-bottom: 20px
}

#mainCnt #clinicArea .clinicWrap .clinicInner .clinicBox .clinicBoxName {
    text-align: center;
    font-size: 18px;
    font-weight: 700;
    color: #0c4291;
    margin-bottom: 20px
}

#mainCnt #clinicArea .clinicWrap .clinicInner.w100p {
    display: block
}

#mainCnt #clinicArea .clinicWrap .clinicInner.w100p .clinicBox {
    display: flex;
    justify-content: space-between;
    max-width: 100%
}

#mainCnt #clinicArea .clinicWrap .clinicInner.w100p .clinicBox .imgBox,
#mainCnt #clinicArea .clinicWrap .clinicInner.w100p .clinicBox .textBox {
    flex-basis: 48%;
    max-width: 48%;
    width: 100%
}

#mainCnt #clinicArea .clinicWrap .clinicInner .imgBox {
    position: relative;
    width: 100%;
    overflow: hidden
}

#mainCnt #clinicArea .clinicWrap .clinicInner .imgBox:before {
    content: "";
    display: block;
    padding-top: 66.666666%
}

#mainCnt #clinicArea .clinicWrap .clinicInner .imgBox img {
    max-width: none;
    width: 100%;
    height: 100%;
    position: absolute;
    top: 50%;
    left: 50%;
    transform: translate(-50%, -50%);
    object-fit: cover
}

#mainCnt #clinicArea .clinicWrap .clinicInner .imgBox.equipmentBg {
    background-color: #F4F4F4
}

#mainCnt #clinicArea .clinicWrap .clinicInner .imgBox.equipmentBg img {
    width: auto
}

#mainCnt #clinicArea .clinicName {
    font-size: 20px;
    font-weight: 700;
    color: #4d4d4d;
    text-align: center;
    margin: 40px 0 30px
}

#mainCnt #clinicArea table {
    margin: 0 0 30px;
    width: 100%;
    border-collapse: collapse
}

#mainCnt #clinicArea table tr th,
#mainCnt #clinicArea table tr td {
    padding: 10px;
    width: auto
}

#mainCnt #clinicArea table tr th {
    font-weight: bold;
    vertical-align: top;
    width: 150px;
    color: #0c4291;
    position: relative;
    text-align: left
}

#mainCnt #clinicArea table tr th:after {
    content: '';
    width: 100%;
    height: 2px;
    background-color: #0c4291;
    display: block;
    position: absolute;
    bottom: -1px;
    left: 0
}

#mainCnt #clinicArea table tr td {
    border-bottom: 2px solid #f0f8fb
}

#mainCnt #forsafeArea {
    position: relative;
    margin-bottom: 90px
}

#mainCnt #forsafeArea:before {
    content: '';
    background-color: #f0f8fb;
    display: block;
    width: 100%;
    height: 90%;
    position: absolute;
    top: 0;
    left: 0
}

#mainCnt #forsafeArea .inner {
    padding: 95px 0 0;
    position: relative
}

#mainCnt #forsafeArea h2 {
    padding-top: 75px;
    background: url("../img/head-office_lp/icon_safe.svg") no-repeat top center;
    text-align: center;
    margin-bottom: 40px;
    width: 100%;
    margin-top: -195px
}

#mainCnt #forsafeArea h2 span {
    font-size: 18px;
    display: block;
    color: #4d4d4d;
    margin-top: 5px
}

#mainCnt #forsafeArea .forsafeWrap {
    display: flex;
    flex-wrap: wrap;
    justify-content: space-between
}

#mainCnt #forsafeArea .forsafeWrap .forsafeBox {
    flex-basis: 48%;
    max-width: 48%;
    width: 100%;
    display: flex;
    justify-content: space-between;
    border-radius: 5px;
    overflow: hidden;
    box-shadow: 0px 3px 6px rgba(0, 0, 0, 0.16)
}

#mainCnt #forsafeArea .forsafeWrap .forsafeBox:nth-child(n+3) {
    margin-top: 40px
}

#mainCnt #forsafeArea .forsafeWrap .forsafeBox .imgBox {
    flex-basis: 140px;
    max-width: 140px;
    width: 100%;
    position: relative;
    overflow: hidden
}

#mainCnt #forsafeArea .forsafeWrap .forsafeBox .imgBox img {
    max-width: none;
    width: 100%;
    height: 100%;
    position: absolute;
    top: 50%;
    left: 50%;
    transform: translate(-50%, -50%);
    object-fit: cover
}

#mainCnt #forsafeArea .forsafeWrap .forsafeBox .textBox {
    flex-basis: calc(100% - 140px);
    max-width: calc(100% - 140px);
    width: 100%;
    padding: 30px 40px 30px 30px;
    background-color: #fff
}

#mainCnt #forsafeArea .forsafeWrap .forsafeBox .textBox .headLine {
    font-size: 18px;
    font-weight: 700;
    color: #0c4291;
    margin-bottom: 20px
}

#mainCnt #forsafeArea .forsafeWrap .forsafeBox .textBox p {
    font-weight: 400
}

#mainCnt #flowArea {
    margin-bottom: 90px
}

#mainCnt #flowArea h2 {
    padding-top: 75px;
    background: url("../img/head-office_lp/icon_flow.svg") no-repeat top center;
    text-align: center;
    margin-bottom: 40px;
    width: 100%
}

#mainCnt #flowArea h2 span {
    font-size: 18px;
    display: block;
    color: #4d4d4d;
    margin-top: 5px
}

#mainCnt #flowArea .flowBox {
    background-color: #f0f8fb;
    display: flex;
    justify-content: space-between;
    align-items: center;
    padding: 20px;
    position: relative
}

#mainCnt #flowArea .flowBox:after {
    content: '';
    display: block;
    position: absolute;
    bottom: -20px;
    left: 50%;
    transform: translateX(-50%);
    border-right: 10px solid transparent;
    border-top: 20px solid #f0f8fb;
    border-left: 10px solid transparent
}

#mainCnt #flowArea .flowBox:last-child:after {
    display: none
}

#mainCnt #flowArea .flowBox+.flowBox {
    margin-top: 20px
}

#mainCnt #flowArea .flowBox .innerL {
    flex-basis: 240px;
    width: 240px;
    display: flex;
    justify-content: space-between;
    align-items: center
}

#mainCnt #flowArea .flowBox .innerL .icon {
    flex-basis: 60px;
    width: 60px;
    text-align: center
}

#mainCnt #flowArea .flowBox .innerL .stepBox {
    flex-basis: calc(100% - 80px);
    max-width: calc(100% - 80px);
    width: 100%
}

#mainCnt #flowArea .flowBox .innerL .step {
    font-size: 18px;
    font-weight: 500;
    color: #0c4291;
    margin-bottom: 5px
}

#mainCnt #flowArea .flowBox .innerL .headLine {
    font-size: 20px;
    font-weight: 700;
    color: #717171
}

#mainCnt #flowArea .flowBox .innerR {
    flex-basis: calc(100% - 240px);
    max-width: calc(100% - 240px);
    width: 100%;
    position: relative;
    padding-left: 20px
}

#mainCnt #flowArea .flowBox .innerR:before {
    content: '';
    width: 2px;
    height: 60px;
    background-image: linear-gradient(to bottom, #bee5f6, #bee5f6 2px, transparent 2px, transparent 5px);
    background-size: 2px 5px;
    background-position: left top;
    background-repeat: repeat-y;
    position: absolute;
    top: 50%;
    left: 0;
    margin-top: -30px
}

#mainCnt #faqArea {
    margin-bottom: 90px
}

#mainCnt #faqArea h2 {
    padding-top: 75px;
    background: url("../img/head-office_lp/icon_faq.svg") no-repeat top center;
    text-align: center;
    margin-bottom: 40px;
    width: 100%
}

#mainCnt #faqArea h2 span {
    font-size: 18px;
    display: block;
    color: #4d4d4d;
    margin-top: 5px
}

#mainCnt #faqArea .faqWrap dl {
    padding: 20px 20px 20px 20px;
    border-top: 1px solid #bee5f6;
    position: relative
}

#mainCnt #faqArea .faqWrap dl:last-child {
    border-bottom: 1px solid #bee5f6
}

#mainCnt #faqArea .faqWrap dt {
    font-size: 18px;
    font-weight: 700;
    padding-right: 50px
}

#mainCnt #faqArea .faqWrap dt:before {
    content: 'Q.';
    padding-right: 15px;
    font-size: 24px;
    font-weight: 700;
    color: #4d4d4d;
    position: relative;
    top: 2px
}

#mainCnt #faqArea .faqWrap dt:after {
    content: '＋';
    position: absolute;
    top: 50%;
    right: 20px;
    color: #4d4d4d;
    font-size: 28px;
    transform: translateY(-50%)
}

#mainCnt #faqArea .faqWrap dt.active:after {
    content: '－'
}

#mainCnt #faqArea .faqWrap dd {
    display: none;
    padding: 20px 50px 0 0
}

#mainCnt #menuArea {
    background: url("../img/head-office_lp/wave_white.png") repeat-x bottom center, url("../img/head-office_lp/dot.png") top center;
    background-size: auto 120px, auto auto;
    padding: 100px 0 140px;
    margin-bottom: 80px;
    position: relative
}

#mainCnt #menuArea:before {
    content: '';
    width: 100%;
    height: 120px;
    display: block;
    position: absolute;
    top: 0;
    left: 0;
    background: url("../img/head-office_lp/wave_white.png") repeat-x top center;
    background-size: auto 100%;
    transform: scale(1, -1);
    z-index: 1
}

#mainCnt #menuArea h2 {
    padding-top: 75px;
    background: url("../img/head-office_lp/icon_menu.svg") no-repeat top center;
    text-align: center;
    margin-bottom: 40px;
    width: 100%
}

#mainCnt #menuArea h2 span {
    font-size: 18px;
    display: block;
    color: #4d4d4d;
    margin-top: 5px
}

#mainCnt #menuArea dl+dl {
    margin-top: 20px
}

#mainCnt #menuArea dt {
    background-color: #0c4291;
    min-height: 60px;
    width: 100%;
    font-size: 24px;
    color: #fff;
    display: flex;
    align-items: center;
    font-weight: 700;
    padding: 10px 60px 10px 20px;
    position: relative
}

#mainCnt #menuArea dt:after {
    content: '＋';
    position: absolute;
    top: 6px;
    right: 20px;
    color: #fff;
    font-size: 28px
}

#mainCnt #menuArea dt.active:after {
    content: '－'
}

#mainCnt #menuArea dd {
    display: none;
    padding: 30px 30px 50px;
    background-color: #fff
}

#mainCnt #menuArea .headLine {
    font-size: 22px;
    font-weight: 700;
    color: #4d4d4d;
    margin-bottom: 30px;
    padding-left: 10px;
    border-left: 3px solid #4d4d4d
}

#mainCnt #menuArea .subHeadline {
    font-size: 18px;
    font-weight: 700;
    color: #0c4291;
    margin-bottom: 20px
}

#mainCnt #menuArea .menuWrap {
    display: flex;
    justify-content: space-between;
    margin-top: 30px;
    padding: 30px 0 0;
    border-top: 1px solid #C9C9C9
}

#mainCnt #menuArea .menuWrap:last-of-type {
    border-bottom: 1px solid #C9C9C9;
    padding-bottom: 30px;
    margin-bottom: 20px
}

#mainCnt #menuArea .menuWrap .menuBox:nth-child(odd) {
    flex-basis: 250px;
    max-width: 250px;
    width: 100%
}

#mainCnt #menuArea .menuWrap .menuBox:nth-child(even) {
    flex-basis: calc(100% - 290px);
    max-width: calc(100% - 290px);
    width: 100%
}

#mainCnt #menuArea .price {
    margin-top: 15px;
    font-weight: 700;
    font-size: 18px
}

#mainCnt #menuArea .attText {
    font-size: 14px;
    font-weight: 400;
    color: #999
}

#mainCnt #menuArea .attText br {
    display: none
}

#mainCnt #groupArea {
    margin-bottom: 60px
}

#mainCnt #groupArea h2 {
    padding-top: 75px;
    background: url("../img/head-office_lp/icon_logo.svg") no-repeat top center;
    text-align: center;
    margin-bottom: 40px;
    width: 100%
}

#mainCnt #groupArea h2 span {
    font-size: 18px;
    display: block;
    color: #4d4d4d;
    margin-top: 5px
}

#mainCnt #groupArea h2+p {
    text-align: center
}

#mainCnt #groupArea h3 {
    margin: 60px 0 0;
    position: relative;
    font-size: 28px;
    font-weight: 700;
    color: #4d4d4d;
    padding-bottom: 10px;
    text-align: center
}

#mainCnt #groupArea h3:before {
    content: '';
    width: 40px;
    height: 2px;
    background-image: linear-gradient(to right, #4d4d4d, #4d4d4d 2px, transparent 2px, transparent 5px);
    background-size: 5px 2px;
    background-position: left center;
    background-repeat: repeat-x;
    position: absolute;
    bottom: 0;
    left: 50%;
    transform: translateX(-50%)
}

#mainCnt #groupArea .groupWrap {
    display: flex;
    flex-wrap: wrap;
    justify-content: space-between;
    margin: 70px 0 60px
}

#mainCnt #groupArea .groupWrap .groupBox {
    flex-basis: 48%;
    max-width: 48%;
    width: 100%;
    font-size: 20px;
    font-weight: 700;
    text-align: center;
    padding: 40px 20px 30px;
    border-radius: 5px;
    background-color: #f0f8fb;
    position: relative
}

#mainCnt #groupArea .groupWrap .groupBox:nth-child(n+3) {
    margin-top: 60px
}

#mainCnt #groupArea .groupWrap .groupBox .num {
    position: absolute;
    top: -40px;
    left: 50%;
    transform: translateX(-50%);
    width: 80px;
    height: 80px;
    background-color: #f0f8fb;
    border-radius: 100%;
    font-size: 30px;
    color: #0c4291;
    font-weight: 700;
    display: flex;
    justify-content: center;
    align-items: center
}

#mainCnt #groupArea .groupWrap .groupBox .num span {
    padding-bottom: 3px;
    border-bottom: 3px solid #0c4291
}

#mainCnt #groupArea ul {
    margin: 40px 0 0;
    padding: 0;
    display: flex;
    flex-wrap: wrap;
    justify-content: space-between;
    align-items: center
}

#mainCnt #groupArea ul li {
    padding: 0;
    list-style-type: none;
    flex-basis: 23%;
    max-width: 23%;
    width: 100%
}

#mainCnt #bnrArea {
    margin-bottom: 90px
}

#mainCnt #bnrArea a {
    display: flex
}

#mainCnt #bnrArea a .imgBox {
    flex-basis: 50%;
    max-width: 50%;
    width: 100%
}

#mainCnt #bnrArea a .imgBg {
    position: relative;
    width: 100%;
    overflow: hidden
}

#mainCnt #bnrArea a .imgBg:before {
    content: "";
    display: block;
    padding-top: 50%
}

#mainCnt #bnrArea a .imgBg img {
    max-width: none;
    width: 100%;
    height: 100%;
    position: absolute;
    top: 50%;
    left: 50%;
    transform: translate(-50%, -50%);
    object-fit: cover
}

#mainCnt #news_blogArea {
    padding: 140px 0 140px;
    background-color: #f0f8fb;
    position: relative
}

#mainCnt #news_blogArea:before {
    content: '';
    width: 100%;
    height: 120px;
    display: block;
    position: absolute;
    top: 0;
    left: 0;
    background: url("../img/head-office_lp/wave_white.png") repeat-x top center;
    background-size: auto 100%;
    transform: scale(1, -1);
    z-index: 1
}

#mainCnt #news_blogArea:after {
    content: '';
    width: 100%;
    height: 120px;
    display: block;
    position: absolute;
    bottom: 0;
    left: 0;
    background: url("../img/head-office_lp/wave_white.png") repeat-x bottom center;
    background-size: auto 100%;
    transform: scale(-1, 1);
    z-index: 1
}

#mainCnt #news_blogArea .news_blogInner {
    display: flex;
    justify-content: space-between
}

#mainCnt #news_blogArea .news_blogInner h2 {
    margin: 0 0 30px
}

#mainCnt #news_blogArea #newsArea,
#mainCnt #news_blogArea #blogArea {
    flex-basis: 48%;
    max-width: 48%
}

#mainCnt #news_blogArea .newsHeadline,
#mainCnt #news_blogArea .blogHeadline {
    font-size: 32px;
    font-weight: 700;
    padding-left: 45px;
    color: #0c4291;
    display: flex;
    align-items: center
}

#mainCnt #news_blogArea .newsHeadline span,
#mainCnt #news_blogArea .blogHeadline span {
    font-size: 14px;
    margin-left: 15px
}

#mainCnt #news_blogArea .newsHeadline {
    background: url("../img/head-office_lp/icon_news.svg") no-repeat center left;
    background-size: 30px auto
}

#mainCnt #news_blogArea .blogHeadline {
    background: url("../img/head-office_lp/icon_blog.svg") no-repeat center left;
    background-size: 30px auto
}

#mainCnt #news_blogArea .post_list-list .listInner {
    margin-bottom: 20px;
    padding-bottom: 20px;
    transition: ease-in .3s;
    border-bottom: 1px solid #bee5f6
}

#mainCnt #news_blogArea .post_list-list .listInner:first-child {
    border-top: 1px solid #bee5f6;
    padding-top: 20px
}

#mainCnt #news_blogArea .post_list-list .listInner time {
    line-height: 1;
    font-size: 14px;
    font-weight: 700;
    color: #4d4d4d;
    padding-right: 10px
}

#mainCnt #news_blogArea .post_list-list .listInner .cat {
    font-size: 12px;
    font-weight: 500;
    background-color: #4d4d4d;
    display: inline-block
}

#mainCnt #news_blogArea .post_list-list .listInner .cat a {
    color: #ffffff;
    text-decoration: none;
    display: inline-flex;
    justify-content: center;
    align-items: center;
    width: 100%;
    height: 100%;
    min-width: 75px;
    min-height: 20px
}

#mainCnt #news_blogArea .post_list-list .listInner .cat a:hover,
#mainCnt #news_blogArea .post_list-list .listInner .cat a:focus {
    background-color: #0c4291
}

#mainCnt #news_blogArea .post_list-list .listInner .post_list-link {
    text-decoration: none;
    font-size: 14px;
    color: #333;
    margin: 10px 0 0;
    font-weight: 400;
    display: block
}

#mainCnt #news_blogArea .post_list-list .listInner .post_list-link:hover,
#mainCnt #news_blogArea .post_list-list .listInner .post_list-link:focus {
    color: #4d4d4d
}

#mainCnt #news_blogArea .btn {
    border: 2px solid #0c4291;
    max-width: 200px;
    width: 100%;
    min-height: 40px;
    background-color: #fff;
    text-decoration: none;
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 14px;
    border-radius: 30px;
    font-weight: 400;
    color: #0c4291;
    margin: 20px 0 0 auto;
    position: relative
}

#mainCnt #news_blogArea .btn::after {
    position: absolute;
    content: "";
    right: 25px;
    top: 50%;
    width: 9px;
    height: 9px;
    border-bottom: 2px solid #0c4291;
    border-right: 2px solid #0c4291;
    transform: translateY(-50%) rotate(-45deg);
    z-index: 1
}

#mainCnt #news_blogArea .btn:hover,
#mainCnt #news_blogArea .btn:focus {
    background-color: #0c4291;
    color: #ffffff
}

#mainCnt #news_blogArea .btn:hover::after,
#mainCnt #news_blogArea .btn:focus::after {
    border-bottom: 2px solid #fff;
    border-right: 2px solid #fff
}

#mainCnt #recruitArea {
    margin-top: -120px;
    position: relative;
    z-index: 1
}

#mainCnt #recruitArea h2 {
    color: #ffffff;
    margin-bottom: 20px
}

#mainCnt #recruitArea h2 .en {
    color: #ffffff;
    margin-bottom: 10px
}

#mainCnt #recruitArea h2 .en:before {
    background-image: linear-gradient(to right, #fff, #fff 2px, transparent 2px, transparent 5px);
    background-size: 5px 2px;
    background-position: left center;
    background-repeat: repeat-x
}

#mainCnt #recruitArea a {
    text-decoration: none;
    display: flex;
    color: #ffffff
}

#mainCnt #recruitArea a .textBox {
    flex-basis: 50%;
    max-width: 50%;
    width: 100%;
    padding: 50px 60px;
    background-color: #0c4291
}

#mainCnt #recruitArea a .imgBg {
    position: relative;
    flex-basis: 50%;
    max-width: 50%;
    width: 100%;
    overflow: hidden
}

#mainCnt #recruitArea a .imgBg:before {
    content: "";
    display: block;
    padding-top: 50%
}

#mainCnt #recruitArea a .imgBg img {
    max-width: none;
    width: 100%;
    height: 100%;
    position: absolute;
    top: 50%;
    left: 50%;
    transform: translate(-50%, -50%);
    object-fit: cover
}

@media screen and (max-width: 767px) {

    .drawer-nav.header__nav.sp{
        display: block;
    }

    #mainCnt #aboutArea {
        margin: -10px 0 90px;
        padding-top: 50px
    }

    #mainCnt #aboutArea .aboutWrap {
        display: block
    }

    #mainCnt #aboutArea .aboutWrap .aboutBox {
        max-width: 100%
    }

    #mainCnt #aboutArea .aboutWrap .aboutBox.textBox {
        background: url("../img/head-office_lp/bg_logo.svg") no-repeat bottom 20px right;
        background-size: 193px auto;
        padding-bottom: 60px;
        font-size: 14px
    }

    #mainCnt #aboutArea .aboutWrap .aboutBox.imgBox {
        padding-left: 0
    }

    .bnr_invisalign {
        margin-bottom: 30px;
        max-width: 90%;
    }

    .bnr_invisalign img.pc {
        display: none;
    }
    
    .bnr_invisalign img.sp {
        display: block;
    }

    #mainCnt #featureArea {
        margin-top: -50px;
        padding-top: 50px;
        margin-bottom: 270px
    }

    #mainCnt #featureArea .firstHeadLine {
        font-size: 28px;
        margin-bottom: 70px
    }

    #mainCnt #featureArea .bg {
        padding-top: 120px
    }

    #mainCnt #featureArea .bg:before {
        height: 30px
    }

    #mainCnt #featureArea .inner {
        background: url("../img/head-office_lp/features.svg") no-repeat top 40px left;
        background-size: 150px
    }

    #mainCnt #featureArea .featuresSlider {
        margin: -145px auto 50px
    }

    #mainCnt #featureArea .featuresWrap {
        display: block;
        padding-bottom: 70px;
        font-size: 14px
    }

    #mainCnt #featureArea .featuresWrap .featuresBox {
        max-width: 100%
    }

    #mainCnt #featureArea .featuresWrap .featuresBox+.featuresBox {
        margin-top: 40px
    }

    #mainCnt #featureArea .featuresWrap .headLine {
        font-size: 16px
    }

    #mainCnt #featureArea .bgImg {
        height: 390px
    }

    #mainCnt #featureArea .bgImg:before {
        background: url("../img/head-office_lp/wave_blue.png") repeat-x top center, url("../img/head-office_lp/wave_white.png") repeat-x bottom center;
        background-size: auto 30px, auto 30px
    }

    #mainCnt #featureArea .bgImg .textBox {
        max-width: 520px;
        width: calc(100% - 30px);
        padding: 30px;
        bottom: -200px;
        font-size: 14px
    }

    #mainCnt #featureArea .bgImg h2 {
        font-size: 26px;
        margin-bottom: 20px
    }

    #mainCnt #sogoshikaArea {
        margin-bottom: 55px
    }

    #mainCnt #sogoshikaArea .subHeadline {
        font-size: 16px;
        max-width: 290px
    }

    #mainCnt #sogoshikaArea .subHeadline:before {
        left: 80px
    }

    #mainCnt #sogoshikaArea .subHeadline:after {
        left: 80px
    }

    #mainCnt #sogoshikaArea h2 {
        font-size: 26px
    }

    #mainCnt #sogoshikaArea h2 span {
        font-size: 22px
    }

    #mainCnt #sogoshikaArea .sogoshikaWrap {
        display: block
    }

    #mainCnt #sogoshikaArea .sogoshikaWrap .sogoshikaBox {
        max-width: 100%;
        padding: 110px 15px 30px;
        font-size: 14px
    }

    #mainCnt #sogoshikaArea .sogoshikaWrap .sogoshikaBox:nth-child(n+4) {
        margin-top: 0
    }

    #mainCnt #sogoshikaArea .sogoshikaWrap .sogoshikaBox+.sogoshikaBox {
        margin-top: 120px
    }

    #mainCnt #sogoshikaArea .sogoshikaWrap .sogoshikaBox .imgBox {
        top: -80px
    }

    #mainCnt #sogoshikaArea .sogoshikaWrap .smallHeadline {
        font-size: 14px
    }

    #mainCnt #sogoshikaArea .sogoshikaWrap .headLine {
        font-size: 16px
    }

    #mainCnt #sogoshikaArea .sogoshikaWrap.w100p {
        padding: 30px 15px;
        margin-top: 40px;
        display: block;
        font-size: 14px
    }

    #mainCnt #sogoshikaArea .sogoshikaWrap.w100p .imgBox,
    #mainCnt #sogoshikaArea .sogoshikaWrap.w100p .textBox {
        max-width: 100%
    }

    #mainCnt #sogoshikaArea .sogoshikaWrap.w100p .imgBox {
        margin-bottom: 20px
    }

    #mainCnt #sogoshikaArea .sogoshikaWrap.w100p br {
        display: block
    }

    #mainCnt #staffArea {
        margin-top: -50px;
        margin-bottom: 70px;
        padding: 65px 0 0;
        background: url("../img/head-office_lp/wave_white.png") no-repeat bottom center;
        background-size: auto 30px
    }

    #mainCnt #staffArea:before {
        height: 30px;
        top: 80px
    }

    #mainCnt #staffArea:after {
        height: 30px
    }

    #mainCnt #staffArea .bg {
        margin-top: 15px;
        padding-bottom: 90px
    }

    #mainCnt #staffArea h2 {
        margin-bottom: 25px;
        top: -40px
    }

    #mainCnt #staffArea h2 span {
        font-size: 18px;
        margin-top: 5px
    }

    #mainCnt #staffArea p {
        font-size: 14px
    }

    #mainCnt #staffArea .staffSlider .name {
        font-size: 20px
    }

    #mainCnt #staffArea .staffSlider .name span {
        font-size: 14px
    }

    #mainCnt #clinicArea {
        margin-bottom: 160px
    }

    #mainCnt #clinicArea h2 {
        font-size: 24px
    }

    #mainCnt #clinicArea h2 span {
        font-size: 14px
    }

    #mainCnt #clinicArea .headLine {
        font-size: 24px
    }

    #mainCnt #clinicArea .clinicWrap {
        border-radius: 5px;
        padding: 30px 15px
    }

    #mainCnt #clinicArea .clinicWrap .subHeadline {
        font-size: 16px
    }

    #mainCnt #clinicArea .clinicWrap .clinicInner {
        display: block
    }

    #mainCnt #clinicArea .clinicWrap .clinicInner .clinicBox {
        max-width: 100%;
        font-size: 14px
    }

    #mainCnt #clinicArea .clinicWrap .clinicInner .clinicBox:nth-child(n+3) {
        margin-top: 0
    }

    #mainCnt #clinicArea .clinicWrap .clinicInner .clinicBox+.clinicBox {
        margin-top: 40px
    }

    #mainCnt #clinicArea .clinicWrap .clinicInner .clinicBox .clinicBoxName {
        font-size: 16px;
        margin-bottom: 15px
    }

    #mainCnt #clinicArea .clinicWrap .clinicInner.w100p .clinicBox {
        display: block
    }

    #mainCnt #clinicArea .clinicWrap .clinicInner.w100p .clinicBox .imgBox,
    #mainCnt #clinicArea .clinicWrap .clinicInner.w100p .clinicBox .textBox {
        max-width: 100%
    }

    #mainCnt #clinicArea .clinicName {
        font-size: 18px
    }

    #mainCnt #clinicArea table tr:first-child th {
        padding-top: 0
    }

    #mainCnt #clinicArea table tr th,
    #mainCnt #clinicArea table tr td {
        display: block;
        font-size: 14px;
        width: 100%
    }

    #mainCnt #clinicArea table tr th {
        min-width: 1px;
        color: #0c4291;
        text-align: left;
        padding: 15px 0 10px
    }

    #mainCnt #clinicArea table tr th:after {
        display: none
    }

    #mainCnt #clinicArea table tr td {
        padding: 0 0 15px
    }

    #mainCnt #forsafeArea {
        margin-bottom: 70px
    }

    #mainCnt #forsafeArea h2 {
        font-size: 24px
    }

    #mainCnt #forsafeArea h2 span {
        font-size: 14px
    }

    #mainCnt #forsafeArea .forsafeWrap {
        display: block
    }

    #mainCnt #forsafeArea .forsafeWrap .forsafeBox {
        max-width: 100%;
        display: block
    }

    #mainCnt #forsafeArea .forsafeWrap .forsafeBox:nth-child(n+3) {
        margin-top: 0
    }

    #mainCnt #forsafeArea .forsafeWrap .forsafeBox+.forsafeBox {
        margin-top: 40px
    }

    #mainCnt #forsafeArea .forsafeWrap .forsafeBox .imgBox {
        max-width: 100%;
        height: 100px
    }

    #mainCnt #forsafeArea .forsafeWrap .forsafeBox .imgBox .forsafeImg01 {
        height: auto;
        top: -25px;
        transform: translate(-50%, 0)
    }

    #mainCnt #forsafeArea .forsafeWrap .forsafeBox .imgBox .forsafeImg02 {
        height: auto;
        top: auto;
        bottom: -120px;
        transform: translate(-50%, 0)
    }

    #mainCnt #forsafeArea .forsafeWrap .forsafeBox .textBox {
        max-width: 100%;
        padding: 20px 15px
    }

    #mainCnt #forsafeArea .forsafeWrap .forsafeBox .textBox .headLine {
        font-size: 16px;
        margin-bottom: 15px;
        text-align: center
    }

    #mainCnt #forsafeArea .forsafeWrap .forsafeBox .textBox .headLine br {
        display: none
    }

    #mainCnt #forsafeArea .forsafeWrap .forsafeBox .textBox .headLine br.spDisp {
        display: block
    }

    #mainCnt #forsafeArea .forsafeWrap .forsafeBox .textBox p {
        font-size: 14px
    }

    #mainCnt #flowArea {
        margin-bottom: 70px
    }

    #mainCnt #flowArea h2 {
        font-size: 24px
    }

    #mainCnt #flowArea h2 span {
        font-size: 14px
    }

    #mainCnt #flowArea .flowBox {
        display: block;
        padding: 20px 15px
    }

    #mainCnt #flowArea .flowBox .innerL {
        width: 100%;
        padding-bottom: 15px
    }

    #mainCnt #flowArea .flowBox .innerL .icon {
        flex-basis: 75px;
        width: 75px;
        text-align: left;
        padding-left: 20px
    }

    #mainCnt #flowArea .flowBox .innerL .icon img {
        width: 33px;
        height: auto
    }

    #mainCnt #flowArea .flowBox .innerL .stepBox {
        flex-basis: calc(100% - 75px);
        max-width: calc(100% - 75px);
        width: 100%
    }

    #mainCnt #flowArea .flowBox .innerL .step {
        font-size: 16px;
        margin-bottom: 5px;
        display: inline
    }

    #mainCnt #flowArea .flowBox .innerL .headLine {
        font-size: 18px;
        display: inline;
        padding-left: 10px
    }

    #mainCnt #flowArea .flowBox .innerR {
        max-width: 100%;
        padding-top: 15px;
        padding-left: 0;
        font-size: 14px
    }

    #mainCnt #flowArea .flowBox .innerR:before {
        width: 100%;
        height: 2px;
        background-image: linear-gradient(to right, #bee5f6, #bee5f6 2px, transparent 2px, transparent 5px);
        background-size: 5px 2px;
        background-position: left top;
        background-repeat: repeat-x;
        top: 0;
        margin-top: 0
    }

    #mainCnt #faqArea {
        margin-bottom: 70px
    }

    #mainCnt #faqArea h2 {
        font-size: 24px
    }

    #mainCnt #faqArea h2 span {
        font-size: 14px
    }

    #mainCnt #faqArea .faqWrap dl {
        padding: 20px 10px
    }

    #mainCnt #faqArea .faqWrap dl:after {
        top: 38px;
        right: 10px;
        font-size: 28px
    }

    #mainCnt #faqArea .faqWrap dt {
        font-size: 18px;
        padding-right: 40px
    }

    #mainCnt #faqArea .faqWrap dt:before {
        padding-right: 10px;
        font-size: 22px;
        top: 1px
    }

    #mainCnt #faqArea .faqWrap dd {
        padding-top: 10px
    }

    #mainCnt #menuArea {
        padding: 90px 0 100px;
        background: url("../img/head-office_lp/wave_white.png") repeat-x bottom center, url("../img/head-office_lp/dot.png") top center;
        background-size: auto 30px, auto auto
    }

    #mainCnt #menuArea:before {
        height: 30px
    }

    #mainCnt #menuArea h2 {
        padding-top: 75px;
        background: url("../img/head-office_lp/icon_menu.svg") no-repeat top center;
        margin-bottom: 40px
    }

    #mainCnt #menuArea h2 span {
        font-size: 18px;
        margin-top: 5px
    }

    #mainCnt #menuArea dt {
        font-size: 22px;
        padding: 10px 60px 10px 20px
    }

    #mainCnt #menuArea dt:after {
        font-size: 26px
    }

    #mainCnt #menuArea dd {
        padding: 30px 15px 30px
    }

    #mainCnt #menuArea .headLine {
        font-size: 20px;
        margin-bottom: 20px
    }

    #mainCnt #menuArea .subHeadline {
        font-size: 16px;
        margin-bottom: 15px
    }

    #mainCnt #menuArea .menuWrap {
        display: block;
        margin-top: 20px;
        padding: 20px 0 0
    }

    #mainCnt #menuArea .menuWrap:last-of-type {
        padding-bottom: 20px;
        margin-bottom: 20px
    }

    #mainCnt #menuArea .menuWrap .menuBox {
        font-size: 14px
    }

    #mainCnt #menuArea .menuWrap .menuBox:nth-child(odd) {
        max-width: 100%
    }

    #mainCnt #menuArea .menuWrap .menuBox:nth-child(even) {
        max-width: 100%
    }

    #mainCnt #menuArea .menuWrap .menuBox:nth-of-type(1) {
        margin-bottom: 20px
    }

    #mainCnt #menuArea .menuWrap .menuBox img {
        width: 100%
    }

    #mainCnt #menuArea .price {
        margin-top: 15px;
        font-size: 14px
    }

    #mainCnt #menuArea .attText br {
        display: block
    }

    #mainCnt #groupArea h2 {
        padding-top: 75px;
        background: url("../img/head-office_lp/icon_logo.svg") no-repeat top center;
        margin-bottom: 40px
    }

    #mainCnt #groupArea h2 span {
        font-size: 18px;
        margin-top: 5px
    }

    #mainCnt #groupArea h2+p {
        font-size: 14px
    }

    #mainCnt #groupArea h3 {
        font-size: 24px
    }

    #mainCnt #groupArea .groupWrap {
        display: block
    }

    #mainCnt #groupArea .groupWrap .groupBox {
        max-width: 100%;
        font-size: 18px;
        padding: 40px 15px 30px
    }

    #mainCnt #groupArea .groupWrap .groupBox:nth-child(n+3) {
        margin-top: 0
    }

    #mainCnt #groupArea .groupWrap .groupBox+.groupBox {
        margin-top: 60px
    }

    #mainCnt #groupArea .groupWrap .groupBox .num {
        font-size: 28px
    }

    #mainCnt #groupArea ul {
        margin: 20px 0 0
    }

    #mainCnt #groupArea ul li {
        flex-basis: 48%;
        max-width: 48%
    }

    #mainCnt #groupArea ul li:nth-child(n+3) {
        margin-top: 20px
    }

    #mainCnt #bnrArea {
        margin-bottom: 60px
    }

    #mainCnt #bnrArea a {
        display: block
    }

    #mainCnt #bnrArea a .imgBox {
        max-width: 100%
    }

    #mainCnt #news_blogArea {
        padding: 90px 0 90px
    }

    #mainCnt #news_blogArea:before {
        height: 30px
    }

    #mainCnt #news_blogArea:after {
        height: 30px
    }

    #mainCnt #news_blogArea .news_blogInner {
        display: block
    }

    #mainCnt #news_blogArea .news_blogInner h2 {
        margin: 0 0 20px
    }

    #mainCnt #news_blogArea #newsArea,
    #mainCnt #news_blogArea #blogArea {
        max-width: 100%
    }

    #mainCnt #news_blogArea #blogArea {
        margin-top: 60px
    }

    #mainCnt #news_blogArea .newsHeadline,
    #mainCnt #news_blogArea .blogHeadline {
        font-size: 28px
    }

    #mainCnt #news_blogArea .post_list-list .listInner {
        margin-bottom: 15px;
        padding-bottom: 15px
    }

    #mainCnt #news_blogArea .post_list-list .listInner:first-child {
        padding-top: 15px
    }

    #mainCnt #news_blogArea .btn {
        margin: 30px auto 0
    }

    #mainCnt #recruitArea {
        margin-top: -60px;
        margin-bottom: 90px;
        font-size: 14px
    }

    #mainCnt #recruitArea a {
        display: block
    }

    #mainCnt #recruitArea a .textBox {
        max-width: 100%;
        padding: 30px 30px
    }

    #mainCnt #recruitArea a .imgBg {
        max-width: 100%
    }

    #mainCnt #recruitArea a .imgBg:before {
        padding-top: 70%
    }

    .header__nav .header__nav-list{
        padding: 0;
    }
}

.effectFade.effectFadeUp {
    opacity: 0;
    transform: translateY(10px);
    transition: opacity .8s linear, transform .8s linear
}

.effectFade.effectActive {
    opacity: 1;
    transform: translate(0, 0)
}

.effectFade.td1 {
    transition-delay: 0.1s
}

.effectFade.td2 {
    transition-delay: 0.2s
}

.effectFade.td3 {
    transition-delay: 0.3s
}

.effectFade.td4 {
    transition-delay: 0.4s
}

.effectFade.td5 {
    transition-delay: 0.5s
}

.effectFade.td6 {
    transition-delay: 0.6s
}

.effectFade.td7 {
    transition-delay: 0.7s
}

.effectFade.effectShow {
    opacity: 1;
    transition-delay: 0s;
    transition: .3s ease-in
}

#pagetopArea {
    width: 100%;
    height: 40px;
    background-color: #f0f4f8;
    margin-top: 90px
}

#pagetopArea a {
    text-decoration: none;
    font-weight: 700;
    font-size: 16px;
    color: #0c4291;
    display: flex;
    justify-content: center;
    align-items: center;
    width: 100%;
    height: 100%
}

@media screen and (max-width: 767px) {
    #pagetopArea {
        margin-top: 60px
    }
}

.footer {
    padding: 60px 0 50px;
    background-color: #0c4291
}

.footer .ftrCnt {
    display: flex;
    justify-content: space-between;
    margin-bottom: 50px
}

.footer .ftrCnt .logo {
    flex-basis: 110px;
    max-width: 110px;
    width: 100%
}

.footer .ftrCnt .textBox {
    flex-basis: calc(100% - 170px);
    max-width: calc(100% - 170px);
    width: 100%
}

.footer .ftrCnt .textBox .clinicName {
    position: relative;
    padding-bottom: 15px;
    margin-bottom: 30px;
    font-size: 20px;
    font-weight: 700;
    color: #ffffff
}

.footer .ftrCnt .textBox .clinicName:before {
    content: '';
    width: 100%;
    height: 2px;
    background-image: linear-gradient(to right, #fff, #fff 2px, transparent 2px, transparent 6px);
    background-size: 6px 2px;
    background-position: left bottom;
    background-repeat: repeat-x;
    position: absolute;
    bottom: 0;
    left: 0
}

.footer .ftrCnt .textBox .btnWrap {
    display: flex;
    align-items: center;
    justify-content: space-between
}

.footer .ftrCnt .textBox .btnWrap .tel {
    flex-basis: 183px;
    max-width: 183px;
    width: 100%;
    font-size: 16px;
    color: #ffffff;
    font-weight: 500
}

.footer .ftrCnt .textBox .btnWrap .innerBtnWrap {
    flex-basis: 530px;
    max-width: 530px;
    width: 100%;
    display: flex;
    align-items: center;
    justify-content: space-between
}

.footer .ftrCnt .textBox .btnWrap .innerBtnWrap .btnBox {
    flex-basis: 250px;
    max-width: 250px;
    width: 100%
}

.footer .ftrCnt .textBox .btnWrap .innerBtnWrap .btn {
    width: 100%;
    min-height: 60px;
    background-color: #fff;
    text-decoration: none;
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 16px;
    border-radius: 30px;
    font-weight: 500;
    color: #4d4d4d;
    margin: 0;
    box-shadow: 0px 3px 6px rgba(0, 0, 0, 0.16)
}

.footer .ftrCnt .textBox .btnWrap .innerBtnWrap .btn img {
    margin-left: 5px
}

.footer .addrWrap {
    display: flex;
    margin-bottom: 40px
}

.footer .addrWrap .imgBox {
    flex-basis: 206px;
    max-width: 206px;
    width: 100%;
    position: relative;
    overflow: hidden
}

.footer .addrWrap .imgBox img {
    max-width: none;
    width: 100%;
    height: 100%;
    position: absolute;
    top: 50%;
    left: 50%;
    transform: translate(-50%, -50%);
    object-fit: cover
}

.footer .addrWrap .textBox {
    flex-basis: calc(100% - 206px);
    max-width: calc(100% - 206px);
    width: 100%;
    background-color: #fff;
    padding: 40px 40px 40px 60px;
    display: flex;
    justify-content: space-between;
    align-items: center
}

.footer .addrWrap .textBox .addr {
    flex-basis: calc(100% - 220px);
    max-width: calc(100% - 220px);
    width: 100%;
    font-size: 16px
}

.footer .addrWrap .textBox .addr .clinicName {
    font-size: 18px;
    font-weight: 700;
    color: #0c4291;
    margin-bottom: 20px
}

.footer .addrWrap .textBox .btnWrap {
    flex-basis: 200px;
    max-width: 200px
}

.footer .addrWrap .textBox .btnWrap .btn {
    border: 2px solid #0c4291;
    max-width: 200px;
    width: 100%;
    min-height: 40px;
    background-color: #fff;
    text-decoration: none;
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 14px;
    border-radius: 30px;
    font-weight: 400;
    color: #0c4291;
    position: relative
}

.footer .addrWrap .textBox .btnWrap .btn:hover,
.footer .addrWrap .textBox .btnWrap .btn:focus {
    background-color: #0c4291;
    color: #ffffff
}

.footer .addrWrap .textBox .btnWrap .btn img {
    margin-left: 10px
}

.footer .copy {
    font-size: 12px;
    color: #ffffff;
    text-align: center;
    font-weight: 500
}

@media screen and (max-width: 767px) {
    .footer {
        padding-bottom: 90px
    }

    .footer .ftrCnt {
        display: block;
        margin-bottom: 50px;
        text-align: center
    }

    .footer .ftrCnt .logo {
        margin: 0 auto 30px
    }

    .footer .ftrCnt .textBox {
        max-width: 100%
    }

    .footer .ftrCnt .textBox .clinicName {
        margin-bottom: 20px;
        font-size: 18px
    }

    .footer .ftrCnt .textBox .btnWrap {
        display: block
    }

    .footer .ftrCnt .textBox .btnWrap .tel {
        max-width: 330px;
        width: 100%;
        margin: 0 auto;
        font-size: 14px;
        display: flex;
        align-items: center;
        justify-content: space-between
    }

    .footer .ftrCnt .textBox .btnWrap .tel img {
        flex-basis: 183px;
        max-width: 183px;
        width: 100%
    }

    .footer .ftrCnt .textBox .btnWrap .innerBtnWrap {
        flex-basis: 530px;
        max-width: 530px;
        display: block;
        margin-top: 40px
    }

    .footer .ftrCnt .textBox .btnWrap .innerBtnWrap .btnBox {
        margin: 0 auto
    }

    .footer .ftrCnt .textBox .btnWrap .innerBtnWrap .btnBox:nth-child(2) {
        margin-top: 30px
    }

    .footer .ftrCnt .textBox .btnWrap .innerBtnWrap .btn {
        font-size: 14px
    }

    .footer .addrWrap {
        display: block;
        margin-bottom: 30px
    }

    .footer .addrWrap .imgBox {
        max-width: 100%;
        height: 177px
    }

    .footer .addrWrap .textBox {
        max-width: 100%;
        padding: 20px 15px;
        display: block
    }

    .footer .addrWrap .textBox .addr {
        max-width: 100%;
        font-size: 14px
    }

    .footer .addrWrap .textBox .addr .clinicName {
        font-size: 16px;
        margin-bottom: 15px
    }

    .footer .addrWrap .textBox .btnWrap {
        margin: 20px auto 0
    }

    .footer .addrWrap .textBox .btnWrap .btn {
        font-size: 14px
    }
    .children .sub-menu {
        opacity: 1;
        position: unset;
        top: 62px;
        left: 0;
        width: 100%;
        padding: 0;
        box-sizing: content-box;
        background-color: transparent;
    }
    .header__nav .header__nav-list li a::after {
        display: none;
    }
    .header__nav .header__nav-list li.children:hover {
        background-color: transparent;
    }
    .children .sub-menu{
        animation-name: inherit;
    }
    .sub-menu::before{
        position: unset;
    }
    .sub-menu li:first-child, .sub-menu li:nth-child(2){
        position: inherit;
    }
    .sub-menu::after{
        display: none;
    }
}

.drawer.drawer--right{
    overflow: auto;
}

#fixedBtnSpArea {
    width: 100%;
    opacity: 0;
    z-index: 10;
    position: fixed;
    bottom: -50px;
    transition: .6s
}

#fixedBtnSpArea.fixedsp {
    opacity: 1;
    transition: .6s;
    bottom: 0
}

#fixedBtnSpArea ul {
    margin: 0 0 0 0;
    padding: 0;
    height: 50px;
    width: 100%;
    overflow: hidden;
    display: flex
}

#fixedBtnSpArea ul li {
    list-style: none;
    flex-basis: 50%;
    max-width: 50%;
    width: 100%
}

#fixedBtnSpArea ul li a {
    display: flex;
    align-items: center;
    justify-content: center;
    text-align: center;
    width: 100%;
    height: 100%;
    color: #fff;
    margin: 0;
    padding: 10px 10px 10px;
    font-size: 14px;
    font-weight: 500;
    text-decoration: none
}

#fixedBtnSpArea ul li.reserve {
    background-color: #f0f8fb
}

#fixedBtnSpArea ul li.reserve a {
    color: #4d4d4d
}

#fixedBtnSpArea ul li.reserve img {
    width: 23px
}

#fixedBtnSpArea ul li.tel {
    background-color: #4d4d4d
}

#fixedBtnSpArea ul li.tel img {
    width: 16px
}

#fixedBtnSpArea ul li img {
    margin-right: 5px;
    vertical-align: middle
}

#fixedBtnSpArea ul li+li {
    border-left: 1px solid #fff
}

@media screen and (min-width: 1025px) {
    #fixedBtnSpArea {
        display: none !important
    }
}

@media screen and (min-width: 768px) and (max-width: 1024px) {
    #fixedBtnSpArea {
        display: none !important
    }
}

/*fix gnavi top*/
@media screen and (min-width:1025px) {
    .fixedBtnArea {
        display: none;
    }
    .page-template-home .fixedBtnArea {
        display: block;
    }
    .fixedBtnArea {
        position: absolute;
        top: 415px;
        right: 0;
        z-index: 5000;
    }
    .fixedBtnArea.fixedActive {
        position: fixed;
        top: 130px;
    }
    .fixedBtnArea a:hover img {
        opacity: .8;
    }
    .btn_change img {
        display: none;
        width: 140px;
        height: auto;
        margin-bottom: 10px;
        transition: .3s;
    }
    .fixedActive img {
        width: 50px;
    }
    .js_hover_slide-box {
        overflow: visible !important;
        position: relative !important;
        z-index: 1000 !important;
        right: auto !important;
        width: 100% !important;
    }
    .children {
        position: relative;
        z-index: 10;
        width: 142px;
        transition: .3s;
    }
    .children.active {
        color: #fff;
    }
    .children>a:hover {
        color: #fff;
    }
    .children.active>a {
        background: #0C428F;
        color: #fff !important;
    }
    .fa.fa-angle-down {
        position: absolute;
        bottom: 13px !important;
        right: 7px;
        font-size: 18px;
    }
    .children .fa-angle-down:before {
        color: #0C428F;
        font-size: 20px;
    }
    .children:hover .fa-angle-down:before {
        color: #fff;
    }
    .children:hover {
        background: #0C428F;
    }
    .children:hover>a {
        color: #fff;
    }
    .children.is-active .fa-angle-down:before {
        color: #fff;
        content: "\f106";
    }
    .children.is-active {
        z-index: -1;
    }
    .sub-menu {
        opacity: 0;
        /* display: none; */
        position: absolute;
        top: 60px;
        left: -26px;
        z-index: -1;
        width: 588px;
        padding: 50px 20px 25px 40px;
        box-sizing: content-box;
    }
    @media all and (-ms-high-contrast:none) {
        _:-ms-lang(x)::-ms-backdrop,
        .children:hover .sub-menu {
            opacity: 1;
        }
    }
    .children .sub-menu {
        animation-name: hide;
        animation-duration: .3s;
        animation-fill-mode: forwards;
    }
    .children .sub-menu li{
        text-align: left;
    }
    /* .header__nav-list .children .sub-menu {
        min-height: 40px;
    }
    .header__nav-list .price.children .sub-menu {
        max-width: 240px;
        width: 100%;
    }
    .header__nav-list .price.children .sub-menu li {
        max-width: 230px;
        width: 100%;
    } */
    @keyframes hide {
        0% {
            opacity: 1;
        }
        100% {
            opacity: 0;
        }
    }
    .children:hover .sub-menu {
        animation-name: show;
        animation-duration: .3s;
        animation-fill-mode: forwards;
    }
    @keyframes show {
        0% {
            opacity: 0;
        }
        100% {
            opacity: 1;
        }
    }
    .sub-menu::before {
        position: absolute;
        top: 25px;
        left: 0;
        width: 100%;
        height: 170%;
        background: #F0F4F8;
        content: "";
    }
    .sub-menu::after {
        position: absolute;
        top: 10px;
        left: 60px;
        border-right: 10px solid transparent;
        border-bottom: 16.6025px solid #F0F4F8;
        border-left: 10px solid transparent;
        content: "";
    }
    .sub-menu li {
        width: 290px;
        margin-left: auto;
        text-align: left;
    }
    .sub-menu li:first-child,
    .sub-menu li:nth-child(2) {
        position: absolute;
        top: 52px;
        left: 40px;
    }
    .sub-menu li:nth-child(2) {
        top: 98px;
    }
    .sub-menu a {
        display: block;
        position: relative;
        z-index: 10;
        margin-right: 0;
        padding-left: 1.5em !important;
        color: #333;
        border-bottom: none;
        line-height: 1.5;
    }
    .sub-menu a::after {
        position: absolute;
        top: 16px;
        left: 5px;
        border-right: 6px solid transparent;
        border-top: 6px solid transparent;
        border-bottom: 6px solid transparent;
        border-left: 6px solid #0C428F;
        content: "";
    }
    .sub-menu.is-active a:hover::after {
        border-left-color: #fff !important;
    }
    .drawer-nav.header__nav.js_fiexd {
        position: fixed !important;
        top: 0 !important;
        left: 0 !important;
        z-index: 6000 !important;
        width: 100% !important;
        height: auto;
        box-shadow: 0px -69px 107px 0px;
    }
    .js_scroll_on {
        display: none;
        position: fixed;
        bottom: 0;
        left: 0;
        z-index: 6000;
        max-width: none;
        width: 100%;
        margin: 0 !important;
        background: #fff;
    }
    .js_scroll_on .header__logo {
        max-width: 320px;
        margin-top: 12px;
    }
}

.js_menu_move {
    position: relative;
    animation-name: menuLeft;
    animation-duration: .3s;
    animation-fill-mode: forwards;
}

@keyframes menuLeft {
    0% {
        left: 0;
    }
    100% {
        left: -80%;
    }
}

.js_menu_reset {
    position: relative;
    animation-name: menuReset;
    animation-duration: .3s;
    animation-fill-mode: forwards;
}

@media screen and (min-width:1025px) {
    .drawer-nav.header__nav.sp {
        display: none;
    }
}

@media screen and (max-width:767px) {
    .drawer-nav.header__nav.sp {
        padding-bottom: 110px !important;
    }
    .drawer-nav.header__nav.sp .header__nav-list {
        height: auto;
    }
}

@media screen and (max-width:1024px) {
    .header__nav-list .children:nth-child(n+3) .sub-menu {
        padding: 0 !important;
    }
    .header__main_area.js_scroll_on {
        display: none !important;
    }
    .drawer-nav.header__nav.sp {
        touch-action: auto !important;
        position: fixed;
        top: 0;
        bottom: 0;
        overflow-y: auto;
        display: block;
        right: -80%;
        background: #0C4291;
        width: 80%;
        height: 100%;
        padding: 80px 20px 40px;
    }
    .drawer-nav.header__nav.sp .header__nav-list>li.children>a::after {
        content: none;
    }
    .drawer-nav.header__nav.sp .sub-menu {
        display: none;
    }
    .drawer-nav.header__nav.sp .fa.fa-angle-down {
        position: absolute;
        top: 0px !important;
        right: 0;
        z-index: 100;
        width: 100%;
        height: 50px;
    }
    .drawer-nav.header__nav.sp .fa.fa-angle-down:before {
        content: "\f107";
        margin-left: auto;
        margin-top: 13px;
        font-size: 26px;
        display: block;
        width: 26px;
        color: #fff;
    }
    .drawer-nav.header__nav.sp .sub-menu a {
        border-bottom: none;
    }
    .drawer-nav.header__nav.sp .header__nav-list>li a {
        display: block;
        position: relative;
        z-index: 10;
        margin-right: 0;
        line-height: 1.5;
    }
    .drawer-nav.header__nav.sp .header__nav-list>li>a::after {
        position: absolute;
        top: 20px;
        left: 0;
        border-right: 6px solid transparent;
        border-top: 6px solid transparent;
        border-bottom: 6px solid transparent;
        border-left: 6px solid #fff;
        content: "";
    }
    .js_nav_close-btn {
        position: absolute;
        top: 20px;
        right: 10px;
        z-index: 10000;
        width: 60px;
        height: 60px;
    }
    .js_nav_close-btn::before,
    .js_nav_close-btn::after {
        position: absolute;
        top: 30px;
        right: 10px;
        z-index: 10;
        width: 40px;
        height: 2px;
        border-top: 2px solid #fff;
        transform: rotate(-45deg);
        content: "";
    }
    .js_nav_close-btn::after {
        border-top: 2px solid #fff;
        transform: rotate(45deg);
    }
    .header__nav-list .children:last-child .sub-menu li, .header__nav-list .children:nth-child(n+3) .sub-menu li {
        width: 100%;
    }
    .header__nav .header__nav-list li.children:hover .sub-menu a {
        background: transparent;
        color: #fff;
    }
}

@keyframes menuReset {
    0% {
        left: -240px;
    }
    100% {
        left: 0;
    }
}

@media screen and (min-width:1025px) {
    .main_visual-list.pc li {
        overflow: hidden;
        height: 84vh !important;
    }
    .main_visual-list.pc li img {
        position: absolute;
        top: 0;
        left: 0;
        object-fit: cover;
        height: 740px;
    }
}

@media screen and (min-width:1600px) {
    .main_visual-list.pc li img {
        object-fit: contain;
        height: auto;
    }
}

.bx-wrapper {
    max-width: none !important;
    box-shadow: none;
    border: none;
    background: none;
    margin-bottom: 0;
}

@media screen and (min-width:1025px) {
    .slider_flow-box img {
        height: 150px !important;
    }
}

.children .sub-menu{
    display: none;
}
.children:hover .sub-menu{
    display: block;
}
.children .sub-menu:hover{
    display: block;
}
.header__nav-list .children:nth-child(n+3) .sub-menu{
    padding: 50px 20px 30px 40px;

}
@media screen and (min-width:1025px) {
.header__nav-list .children:last-child .sub-menu{
    width: 141px;
    padding: 50px 20px 52px 40px;
}
.header__nav-list .children:nth-child(n+3) .sub-menu {
    width: 141px;
  }
  .header__nav-list .children:last-child .sub-menu li, .header__nav-list .children:nth-child(n+3) .sub-menu li {
  width: 65%;
}
}
