.gap {
    padding-left: 32px;
    padding-right: 32px
}

.gap_pcOnly {
    padding-left: 32px;
    padding-right: 32px
}

.gap_ver {
    padding-top: 40px;
    padding-bottom: 60px
}

.gap_ver_top_re {
    padding-top: 60px
}

.gap_ver_bottom {
    padding-top: 0
}

.gap_ver_bottom_re {
    padding-bottom: 40px
}

a[href*="tel:"] {
    pointer-events: none;
    cursor: default;
    text-decoration: none;
    color: inherit
}

.spOnly {
    display: none !important
}

.contents,
.contents_mini,
.contents_small,
.contents_mid,
.contents_large {
    width: 100%;
    max-width: 1160px;
    margin-left: auto;
    margin-right: auto
}

.contents_mini {
    max-width: 780px
}

.contents_small {
    max-width: 960px
}

.contents_mid {
    max-width: 1000px
}

.contents_large {
    max-width: 1400px
}

.el__icon__arrow {
    aspect-ratio: 26/8;
    width: 28px
}

.el__icon__arrow__wrap:hover .el__icon__arrow::before,
.el__icon__arrow__wrap:hover .el__icon__arrow::after,
a:hover .el__icon__arrow::before,
a:hover .el__icon__arrow::after {
    -webkit-transform: translateX(300%);
    transform: translateX(300%)
}

.el__icon__arrow__wrap:hover .el__icon__arrow>*,
a:hover .el__icon__arrow>* {
    -webkit-transform: translateX(0);
    transform: translateX(0)
}

.el__icon__arrow::before,
.el__icon__arrow::after,
.el__icon__arrow>* {
    -webkit-transition: -webkit-transform .3s;
    transition: -webkit-transform .3s;
    transition: transform .3s;
    transition: transform .3s, -webkit-transform .3s
}

.el__imgBox {
    border-radius: 60px 0 60px 0
}

.el__imgBox.-small {
    border-radius: 20px 0 20px 0
}

.el__btn {
    height: 54px;
    padding: 16px
}

.el__btn:hover {
    border-color: #fff;
    background-color: #3c459a;
    color: #fff
}

.el__btn:hover * {
    color: inherit
}

.el__btn.bg_red:hover {
    background-color: #fff;
    color: #cc0000
}

.el__btn.-square {
    min-height: 120px;
    border-radius: 12px
}

.el__btn__img {
    -webkit-column-gap: 10%;
    column-gap: 10%
}

.el__btn__img>*:first-child {
    border-radius: 12px 0 0 12px
}

.el__btn .el__icon__arrow,
.el__btn .el__icon__tab {
    right: 20px
}

.el__btn:hover .el__icon__arrow::before,
.el__btn:hover .el__icon__arrow::after,
.el__btn:hover .el__icon__arrow>*::before,
.el__btn:hover .el__icon__arrow>*::after {
    position: absolute;
    width: 100%;
    height: 100%;
    top: 0;
    left: 0;
    content: '';
    border-color: #fff
}

.el__btn.bg_red:hover .el__icon__arrow::before,
.el__btn.bg_red:hover .el__icon__arrow::after,
.el__btn.bg_red:hover .el__icon__arrow>*::before,
.el__btn.bg_red:hover .el__icon__arrow>*::after {
    border-color: #cc0000
}

.el__btn:hover .el__icon__tab {
    background-color: #fff
}

.BlockDisplayGrid .-pcNoneGrid {
    display: block
}

.BlockDisplayGrid__pc {
    display: -ms-grid;
    display: grid
}

.BlockDisplayGrid__pc__col2 {
    -ms-grid-columns: (1fr)[2];
    grid-template-columns: repeat(2, 1fr)
}

.new_BlockBottom .BlockDisplayGrid__pc__col2 {
    -ms-grid-columns: (1fr)[3];
    grid-template-columns: repeat(3, 1fr)
}

.BlockDisplayFlex .-pcNoneFlex {
    display: block
}

.lh_pc_huge {
    line-height: 2.5;
    border-top: 1px solid transparent;
    border-bottom: 1px solid transparent
}

.lh_pc_huge::before,
.lh_pc_huge::after {
    content: '';
    display: block;
    width: 0;
    height: 0
}

.lh_pc_huge::before {
    margin-top: calc((1 - 2.5) * .5em)
}

.lh_pc_huge::after {
    margin-bottom: calc((1 - 2.5) * .5em)
}

.lh_pc_big {
    line-height: 2.25;
    border-top: 1px solid transparent;
    border-bottom: 1px solid transparent
}

.lh_pc_big::before,
.lh_pc_big::after {
    content: '';
    display: block;
    width: 0;
    height: 0
}

.lh_pc_big::before {
    margin-top: calc((1 - 2.25) * .5em)
}

.lh_pc_big::after {
    margin-bottom: calc((1 - 2.25) * .5em)
}

.lh_pc_large {
    line-height: 2;
    border-top: 1px solid transparent;
    border-bottom: 1px solid transparent
}

.lh_pc_large::before,
.lh_pc_large::after {
    content: '';
    display: block;
    width: 0;
    height: 0
}

.lh_pc_large::before {
    margin-top: calc((1 - 2) * .5em)
}

.lh_pc_large::after {
    margin-bottom: calc((1 - 2) * .5em)
}

.lh_pc_mid {
    line-height: 1.75;
    border-top: 1px solid transparent;
    border-bottom: 1px solid transparent
}

.lh_pc_mid::before,
.lh_pc_mid::after {
    content: '';
    display: block;
    width: 0;
    height: 0
}

.lh_pc_mid::before {
    margin-top: calc((1 - 1.75) * .5em)
}

.lh_pc_mid::after {
    margin-bottom: calc((1 - 1.75) * .5em)
}

.ls_pc_40 {
    letter-spacing: 0.4em
}

.mb_pc_96 {
    margin-bottom: 96px
}

.mb_pc_88 {
    margin-bottom: 88px
}

.mb_pc_80 {
    margin-bottom: 80px
}

.mb_pc_72 {
    margin-bottom: 72px
}

.mb_pc_64 {
    margin-bottom: 64px
}

.mb_pc_56 {
    margin-bottom: 56px
}

.mb_pc_48 {
    margin-bottom: 48px
}

.mb_pc_40 {
    margin-bottom: 40px
}

.mb_pc_32 {
    margin-bottom: 32px
}

.mb_pc_28 {
    margin-bottom: 28px
}

.mb_pc_24 {
    margin-bottom: 24px
}

.mb_pc_20 {
    margin-bottom: 20px
}

.mb_pc_16 {
    margin-bottom: 16px
}

.mb_pc_12 {
    margin-bottom: 12px
}

.mb_pc_10 {
    margin-bottom: 10px
}

.mb_pc_0 {
    margin-bottom: 0
}

.text_pc_88 {
    font-size: 8.8rem
}

.text_pc_80 {
    font-size: 8.0rem
}

.text_pc_72 {
    font-size: 7.2rem
}

.text_pc_64 {
    font-size: 6.4rem
}

.text_pc_56 {
    font-size: 5.6rem
}

.text_pc_48 {
    font-size: 4.8rem
}

.text_pc_44 {
    font-size: 4.4rem
}

.text_pc_40 {
    font-size: 4.0rem
}

.text_pc_36 {
    font-size: 3.6rem
}

.text_pc_32 {
    font-size: 3.2rem
}

.text_pc_28 {
    font-size: 2.8rem
}

.text_pc_26 {
    font-size: 2.6rem
}

.text_pc_24 {
    font-size: 2.4rem
}

.text_pc_20 {
    font-size: 2.0rem
}

.text_pc_18 {
    font-size: 1.8rem
}

.text_pc_16 {
    font-size: 1.6rem
}

.text_pc_14 {
    font-size: 1.4rem
}

.text_pc_12 {
    font-size: 1.2rem
}

.text_pc_10 {
    font-size: 1.0rem
}

.text_pc_center {
    text-align: center
}

.text_pc_left {
    -webkit-box-pack: start;
    -ms-flex-pack: start;
    justify-content: flex-start;
    text-align: left !important
}

.text_pc_bold {
    font-weight: bold
}

.text_pc_bolder {
    font-weight: 800
}

.text_pc_1em {
    font-size: 1em
}

.hover_opacity {
    -webkit-transition: .3s;
    transition: .3s
}

.hover_opacity:hover {
    opacity: .5
}

.hover_underline:hover {
    text-decoration: underline
}

.hover_underline_anm {
    display: inline-block
}

.hover_underline_anm::after {
    content: '';
    display: block;
    width: 100%;
    height: 2px;
    -webkit-transform: scale(0);
    transform: scale(0);
    background-color: #3c459a;
    -webkit-transition: -webkit-transform .3s;
    transition: -webkit-transform .3s;
    transition: transform .3s;
    transition: transform .3s, -webkit-transform .3s;
    margin-top: 0.2em
}

.hover_underline_anm:hover::after,
.hover_underline_anm.-current::after,
a:hover .hover_underline_anm::after {
    -webkit-transform: scale(1);
    transform: scale(1)
}

.hover_img {
    overflow: hidden;
    position: relative
}

.hover_img img {
    -webkit-transition: -webkit-transform 1s;
    transition: -webkit-transform 1s;
    transition: transform 1s;
    transition: transform 1s, -webkit-transform 1s;
    position: relative;
    z-index: 0
}

.hover_img:hover img,
a:hover .hover_img img {
    -webkit-transform: scale(1.05);
    transform: scale(1.05)
}

.slick-arrow {
    width: 60px;
    cursor: pointer
}

.slick-dots li {
    width: 10px
}

.slick-dots li+li {
    margin-left: 10px
}

.BlockHeader {
    height: 120px;
    z-index: 9999
}

.BlockHeader__logo {
    width: 230px;
    position: relative;
    z-index: 1
}

.BlockHeader .BlockNav__wrap {
    width: calc(960 / 1400 * 100vw);
    background: none;
    color: #000;
    margin-top: 8px
}

.BlockHeader .BlockNav__item::after {
    background-color: #fff
}

@media screen and (max-width: 1080px) {
    .BlockHeader__box {
        -ms-flex-flow: wrap;
        flex-flow: wrap
    }

    .BlockHeader .BlockNav__wrap {
        width: 100%
    }
}

.BlockNav {
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    -webkit-box-pack: justify;
    -ms-flex-pack: justify;
    justify-content: space-between;
    -webkit-box-align: center;
    -ms-flex-align: center;
    align-items: center
}

.BlockNav__item {
    font-size: 1.4rem;
    position: relative;
    z-index: 1
}

@media screen and (max-width: 880px) {
    .BlockNav__item {
        font-size: calc(14 / 880 * 100vw)
    }
}

.BlockNav__item::before {
    content: '';
    width: 0;
    height: 0;
    position: absolute;
    position: absolute;
    top: 100%;
    left: 0;
    right: 0;
    margin-left: auto;
    margin-right: auto;
    border: 8px solid transparent;
    border-left-width: 4px;
    border-right-width: 4px;
    border-top-color: #fff;
    -webkit-transform: scaleY(0);
    transform: scaleY(0);
    -webkit-transition: -webkit-transform .3s;
    transition: -webkit-transform .3s;
    transition: transform .3s;
    transition: transform .3s, -webkit-transform .3s;
    -webkit-transform-origin: center top;
    transform-origin: center top
}

.BlockNav__item::after {
    margin-top: 10px
}

.BlockFooter {
    padding-bottom: 32px
}

.BlockFooter .BlockNav {
    padding: 40px 0
}

.BlockFooter__logo {
    width: 160px;
    margin-bottom: -64px
}

.BlockFloater__box {
    position: fixed;
    right: 0;
    top: 180px;
    z-index: 9999
}

.BlockFloater__link {
    display: block;
    width: 48px;
    padding: 20px 16px;
    border-radius: 6px 0 0 6px;
    -webkit-writing-mode: vertical-rl;
    -ms-writing-mode: tb-rl;
    writing-mode: vertical-rl;
    -webkit-font-feature-settings: normal;
    font-feature-settings: normal;
    -webkit-font-feature-settings: 'vkrn', 'vpal', 'vkna';
    font-feature-settings: 'vkrn', 'vpal', 'vkna';
    position: relative;
    -webkit-text-orientation: mixed;
    text-orientation: mixed;
    box-shadow: 0px 0px 8px 0px rgba(111, 111, 111, 0.4);
    color: #fff
}

.BlockFloater__link:hover {
    -webkit-transform: translate(2px, 2px);
    transform: translate(2px, 2px);
    box-shadow: none
}

.BlockFloater__link+.BlockFloater__link {
    margin-top: 10px
}

.BlockMain {
    border-radius: 0 0 120px 0;
    aspect-ratio: 1400/400
}

.BlockMain::before {
    height: 130px
}

.BlockMain__box {
    padding-top: 80px;
    font-size: 4.8rem
}

.BlockBox {
    padding-top: 140px;
    padding-bottom: 120px
}

.BlockBox.-consecutive+.BlockBox.-consecutive {
    padding-top: 0
}

.BlockBox__ttl {
    margin-right: 54px
}

@media screen and (max-width: 1380px) {
    .BlockBox__ttl {
        margin-right: 12px
    }
}

.BlockBox__ttl span {
    margin-left: 28px
}

.BlockBox__box.-re .BlockBox__ttl {
    margin-right: 0;
    margin-left: 54px
}

@media screen and (max-width: 1380px) {
    .BlockBox__box.-re .BlockBox__ttl {
        margin-left: 22px
    }
}

.BlockBottom {
    padding-top: 56px;
    padding-bottom: 56px
}

.BlockBottom__box {
    -webkit-column-gap: 3.3%;
    column-gap: 3.3%
}

.BlockBottom .el__btn:hover {
    background-color: #cc0000
}

.BlockLead {
    padding-top: 64px;
    padding-bottom: 64px
}

.BlockLead p {
    font-size: 1.8rem
}

.BlockPeople.-slide .BlockPeople__box {
    margin-bottom: 40px
}

.BlockPeople.-slide {
    padding-top: 90px;
    padding-bottom: 56px
}

.BlockPeople__item {
    padding: 0 20px
}

@media screen and (max-width: 1160px) {
    .BlockPeople__item {
        padding: 0 calc(20 / 1160 * 100vw)
    }
}

.BlockPeople__item.-re {
    margin-top: 40px
}

.BlockPeople__txt {
    padding-top: 46px
}

@media screen and (max-width: 1160px) {
    .BlockPeople__txt {
        padding-top: calc(46 / 1160 * 100vw)
    }

    .BlockPeople__txt .text_18 {
        font-size: calc(18 / 1160 * 100vw)
    }

    .BlockPeople__txt .text_14 {
        font-size: calc(14 / 1160 * 100vw)
    }

    .BlockPeople__txt .text_pc_20 {
        font-size: calc(20 / 1160 * 100vw)
    }

    .BlockPeople__txt .mb_12 {
        margin-bottom: calc(12 / 1160 * 100vw)
    }

    .BlockPeople__txt .mb_24 {
        margin-bottom: calc(24 / 1160 * 100vw)
    }
}

.BlockAnchor {
    height: 100px
}

.BlockAnchor__box a {
    padding-top: 32px;
    letter-spacing: 0.2em;
    text-align: center
}

.BlockAnchor__box a .el__icon__chev {
    margin-top: 16px
}