@charset "utf-8";

/*--------------------------------------------
  BASE
--------------------------------------------*/
html {
    font-size: 62.5%;
    -ms-text-size-adjust: 100%;
    -webkit-text-size-adjust: 100%;
}

body {
    font-family:
        'Noto Sans JP', 'Hiragino Kaku Gothic ProN', 'ヒラギノ角ゴ ProN W3', "Hiragino Kaku Gothic Pro", "ヒラギノ角ゴ Pro W3", "游ゴシック Medium", "Yu Gothic Medium", "游ゴシック", "Yu Gothic", "游ゴシック体", "YuGothic", Meiryo, 'メイリオ', Osaka, 'MS PGothic', arial, helvetica, sans-serif;
    font-size: 1.6rem;
    color: #333;
    line-height: 1.7;
    -webkit-font-smoothing: antialiased;
}

*,
*:before,
*:after {
    -webkit-box-sizing: border-box;
    -moz-box-sizing: border-box;
    box-sizing: border-box;
}

input,
button,
select,
textarea {
    font-family: inherit;
    font-size: inherit;
    line-height: inherit;
}

img {
    vertical-align: middle;
}

table {
    width: 100%;
}

a {
    color: #333;
    text-decoration: none;
    -webkit-transition: all .4s;
    -o-transition: all .4s;
    -moz-transition: all .4s;
    transition: all .4s;
}

.cf:after {
    content: "";
    clear: both;
    display: block;
    height: 0;
}

:root .cf::after {
    /* IE9 */
    content: "" \9;
    clear: both\9;
    display: block\9;
    height: 0\9;
}

.pe_none {
    pointer-events: none;
}

/*--------------------------------------------
  WordPress Native Styles
--------------------------------------------*/
strong {
    font-weight: bold;
}

em {
    font-style: italic;
}

img.alignleft {
    margin: 0 auto 0 0;
}

img.aligncenter {
    display: block;
    margin: 0 auto;
}

img.alignright {
    display: block;
    margin: 0 0 0 auto;
}

img[class*="wp-image-"],
img[class*="attachment-"] {
    height: auto;
    max-width: 100%;
}


/*--------------------------------------------
  google map
--------------------------------------------*/
.ggmap {
    /*position: absolute;
  top: 0;
  left: 0;
  right: 0;
  bottom: 0;
  height: 100%;
  overflow: hidden;*/
    position: relative;
    padding-bottom: 28%;
    padding-top: 3rem;
    height: 0;
    overflow: hidden;
}

.ggmap_under {
    position: relative;
    padding-bottom: 50%;
    padding-top: 3rem;
    height: 0;
    overflow: hidden;
}

.ggmap iframe,
.ggmap object,
.ggmap embed,
.ggmap_under iframe,
.ggmap_under object,
.ggmap_under embed {
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
}


/*--------------------------------------------
  GLOBAL CSS
--------------------------------------------*/
.ofi {
    width: 100%;
    height: 100%;
    max-width: none;
    max-height: none;
}

.ofi.cover {
    object-fit: cover;
    object-position: center center;
    font-family: 'object-fit: cover;object-position:center center;';
}

/* table レスポンシブ */
.table_wrap {
    min-height: .01%;
    overflow-x: auto;
}

@media screen and (max-width: 991px) {
    .table_wrap {
        width: 100%;
        margin-bottom: 15px;
        overflow-y: hidden;
        -ms-overflow-style: -ms-autohiding-scrollbar;
        border: 1px solid #ddd;
    }

    .table_wrap>table {
        margin-bottom: 0;
    }

    .table_wrap>table>thead>tr>th,
    .table_wrap>table>tbody>tr>th,
    .table_wrap>table>tfoot>tr>th,
    .table_wrap>table>thead>tr>td,
    .table_wrap>table>tbody>tr>td,
    .table_wrap>table>tfoot>tr>td {
        white-space: nowrap;
    }

    .scroll_nav {
        position: relative;
        margin-top: -.2em;
        padding-right: 2.5em;
        text-align: right;
        font-size: 1.8rem;
    }

    .scroll_nav::before {
        content: '';
        display: block;
        position: absolute;
        top: 0;
        right: .2em;
        bottom: 0;
        width: 1.8em;
        height: 1.8em;
        background: url('../Image/common/icon_swipe.png') center/contain no-repeat;
    }
}

/* table レスポンシブ END */

.ul_deco>li {
    position: relative;
    padding-left: 3rem;
    font-size: 1.8rem;
}

.ul_deco>li:not(:first-child) {
    margin-top: .5rem;
}

.ul_deco>li>span {
    position: absolute;
    left: 0;
}

.img_responsive {
    display: block;
    max-width: 100%;
    height: auto;
}

.img_full {
    display: block;
    width: 100%;
    height: auto;
}

.center_block {
    display: block;
    margin-right: auto;
    margin-left: auto;
}

.ta_center {
    text-align: center;
}

.ta_right {
    text-align: right;
}

.bold {
    font-weight: 700;
}

.mgb_sm {
    margin-bottom: 1rem;
}

.mgt_md {
    margin-top: 2rem;
}

.mgl_md {
    margin-left: 2rem;
}

@media screen and (max-width: 991px) {
    .sp_event {
        color: #25b4e0;
    }
}

@media screen and (min-width: 992px) {
    .sp_event {
        pointer-events: none;
        cursor: default;
    }
}

.noto_serif {
    font-weight: 900;
    font-family: 'Noto Serif JP', serif;
}

.roboto {
    font-weight: 700;
    font-family: 'Roboto', sans-serif;
}


.gra_text {
    background: rgb(177, 173, 255);
    background: -moz-linear-gradient(top, rgba(177, 173, 255, 1) 0%, rgba(140, 134, 217, 1) 100%);
    background: -webkit-linear-gradient(top, rgba(177, 173, 255, 1) 0%, rgba(140, 134, 217, 1) 100%);
    background: linear-gradient(to bottom, rgba(177, 173, 255, 1) 0%, rgba(140, 134, 217, 1) 100%);
    filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#b1adff', endColorstr='#8c86d9', GradientType=0);
    -webkit-background-clip: text;
    background-clip: text;
    -webkit-text-fill-color: transparent;
    color: #a29def;
}

@media all and (-ms-high-contrast: none) {
    .gra_text {
        background: none;
    }
}

.bg_pat {
    background: url(../Image/common/bg_pat01.png);
}


.ttl_sec {
    margin-bottom: 4rem;
    text-align: center;
    line-height: 1.3;
}

.ttl_sec.mgb0 {
    margin-bottom: 0;
}

.ttl_sec.ta_left {
    text-align: left;
}

.ttl_sec .main {
    font-weight: 900;
    font-family: 'Noto Serif JP', serif;
    font-size: 4rem;
    color: #a29def;
    letter-spacing: .2rem;
}

.ttl_sec .sub {
    margin-top: .8rem;
    font-weight: 500;
    font-size: 1.8rem;
    letter-spacing: .1rem;
}

.ttl_subsec {
    margin-bottom: 4rem;
    text-align: center;
    font-weight: 900;
    font-family: 'Noto Serif JP', serif;
    font-size: 3rem;
    color: #333;
    letter-spacing: .2rem;
    line-height: 1.3;
}

.ttl_subsec.mgb0 {
    margin-bottom: 0;
}

.ttl_subsec.ta_left {
    text-align: left;
}

.ttl_subsec>span {
    display: inline-block;
    padding-bottom: 1rem;
    border-bottom: 1px solid #ccc;
}

.ttl_gchildsec {
    margin-top: 4rem;
    margin-bottom: 4rem;
    text-align: center;
    font-weight: 900;
    font-family: 'Noto Serif JP', serif;
    font-size: 2.4rem;
    color: #555;
    letter-spacing: .1rem;
    line-height: 1.3;
}

.ttl_gchildsec.mgb0 {
    margin-bottom: 0;
}

.ttl_gchildsec.ta_left {
    text-align: left;
}

.ttl_underbar {
    position: relative;
    margin-bottom: 2rem;
    padding-bottom: 1.5rem;
    font-weight: 500;
    font-size: 1.8rem;
    color: #333;
    line-height: 1.3;
    letter-spacing: .1rem;
}

.ttl_underbar::before {
    content: '';
    display: block;
    position: absolute;
    left: 0;
    right: 0;
    bottom: 0;
    height: 4px;
    background-color: #dddddd;
}

.ttl_underbar::after {
    content: '';
    display: block;
    position: absolute;
    left: 0;
    bottom: 0;
    width: 9rem;
    height: 4px;
    background-color: #6d9702;
}

.text_sec_under {
    text-align: center;
    font-weight: 500;
    font-size: 1.8rem;
    letter-spacing: .1rem;
}

.text_sec_under02 {
    margin-bottom: 4rem;
    max-width: 900px;
    margin-left: auto;
    margin-right: auto;
    font-size: 1.8rem;
    letter-spacing: .1rem;
}


.separate_bar {
    margin-top: 3rem;
    margin-bottom: 3rem;
    width: 100%;
    height: 4px;
    border-top: 1px solid #d1c9ee;
    border-bottom: 2px solid #d1c9ee;
}

.separate_bar.lg {
    margin-top: 5rem;
    /*margin-bottom: 6rem;*/
}

.fx_2col {
    display: -webkit-flex;
    display: -moz-flex;
    display: -ms-flex;
    display: -o-flex;
    display: flex;
}

.fx_2col>* {
    flex-basis: auto;
}

.fx_2col>*:first-child {
    padding-right: 3rem;
}

.fx_2col>*:last-child {
    padding-left: 3rem;
    border-left: 1px dashed #CACACA;
}

.ul_arrow li {
    position: relative;
    padding: .5rem;
    padding-left: 0;
    border-bottom: 1px dashed #CACACA;
    font-weight: 500;
    font-size: 1.8rem;
    line-height: 1.5;
    letter-spacing: .1rem;
}

.ul_arrow li+li {
    margin-top: 1rem;
}

.ul_arrow li>a {
    position: relative;
    display: inline-block;
    padding-left: 2.5rem;
}

.ul_arrow li>a::before {
    content: '';
    display: block;
    position: absolute;
    top: 0;
    left: 0;
    bottom: 0;
    margin: auto;
    width: 1.4rem;
    height: 1.4rem;
    border-radius: 50%;
    background-color: #98c131;
}

.ul_arrow li>a::after {
    content: '';
    display: block;
    position: absolute;
    top: 0;
    left: .55rem;
    bottom: 0;
    margin: auto;
    width: 0;
    height: 0;
    border-style: solid;
    border-width: .3rem 0 .3rem .4rem;
    border-color: transparent transparent transparent #fff;
}

.ul_arrow li>a:hover,
.ul_arrow li>a:focus {
    opacity: .7;
}

.ul_check li {
    position: relative;
    padding: .5rem;
    padding-left: 3rem;
    border-bottom: 1px dashed #CACACA;
    font-weight: 500;
    font-size: 1.8rem;
    line-height: 1.5;
    letter-spacing: .1rem;
}

.ul_check.pdb_md li {
    padding-bottom: 1.5rem;
}

.ul_check li::before {
    content: '';
    display: block;
    position: absolute;
    top: 1rem;
    left: 0;
    width: 2rem;
    height: 1.8rem;
    background: url('../Image/common/icon_check.png') center/cover;
}

.ul_check li+li {
    margin-top: 1rem;
}

.ul_check li .sm {
    display: block;
    font-weight: 400;
    font-size: 1.6rem;
    letter-spacing: 0;
}

.ul_check li>a {
    position: relative;
    display: inline-block;
    padding-right: 2rem;
}

.ul_check li>a::before {
    content: '';
    display: block;
    position: absolute;
    top: 0;
    right: 0;
    bottom: 0;
    margin: auto;
    width: 1.2rem;
    height: 1.2rem;
    border-radius: 50%;
    background-color: #7f77e6;
}

.ul_check li>a::after {
    content: '';
    display: block;
    position: absolute;
    top: 0;
    right: .3rem;
    bottom: 0;
    margin: auto;
    width: 0;
    height: 0;
    border-style: solid;
    border-width: .3rem 0 .3rem .4rem;
    border-color: transparent transparent transparent #fff;
}

.ul_check li>a:hover,
.ul_check li>a:focus {
    opacity: .7;
}

.ul_book li {
    position: relative;
    padding: .5rem;
    padding-bottom: 1.5rem;
    padding-left: 3.4rem;
    border-bottom: 1px dashed #CACACA;
    font-weight: 500;
    font-size: 1.8rem;
    line-height: 1.5;
    letter-spacing: .1rem;
}

.ul_book li::before {
    content: '';
    display: block;
    position: absolute;
    top: 1rem;
    left: 0;
    width: 2.4rem;
    height: 1.8rem;
    background: url('../Image/common/icon_book.png') center/cover;
}

.ul_book li+li {
    margin-top: 1rem;
}

.ul_book li>a {
    text-decoration: underline;
}

.ul_book li>a:hover,
.ul_book li>a:focus {
    opacity: .7;
}

.label_text {
    display: inline-block;
    padding: .5rem 1rem;
    background-color: #8f89dc;
    text-align: center;
    font-weight: 500;
    font-size: 1.6rem;
    color: #fff;
    line-height: 1;
}

.wrap_btn {
    margin-top: 6rem;
    text-align: center;
}

.btn_green,
.btn_gray {
    display: inline-block;
    padding: 1rem 4rem 1.1rem;
    border: none;
    border-radius: 2rem;
    background-color: #98c131;
    text-align: center;
    font-size: 1.6rem;
    color: #fff;
    line-height: 1.3;
    letter-spacing: .2rem;
    box-shadow: 0 0.1rem 0.2rem rgba(0, 0, 0, .2);
    cursor: pointer;
    transition: .4s;
}

.btn_gray {
    background-color: #ddd;
    color: #333;
}

.btn_purple {
    background-color: #8f89dc;
}

.btn_green.lg,
.btn_gray.lg {
    padding: 1.4rem 6rem 1.5rem;
    border-radius: 3rem;
}

a.btn_green:hover,
a.btn_green:focus,
button.btn_green:hover,
button.btn_green:focus,
a.btn_gray:hover,
a.btn_gray:focus,
button.btn_gray:hover,
button.btn_gray:focus {
    opacity: .7;
}

.wrap_2col {
    margin-top: 4.5rem;
}

.wrap_2col>a+a,
.wrap_2col>button+button {
    margin-left: 2rem;
}

.wrap_2col>a,
.wrap_2col>button {
    min-width: 16rem;
}

.tbl_2col>tbody>tr {
    border-top: 1px solid #e6e6e6;
}

.tbl_2col>tbody>tr:last-child {
    border-bottom: 1px solid #e6e6e6;
}

.tbl_2col>tbody>tr>th,
.tbl_2col>tbody>tr>td {
    padding: 2rem;
    font-size: 1.8rem;
}

.tbl_2col>tbody>tr>th {
    width: 25rem;
    background-color: #f5f6ff;
    text-align: left;
    font-weight: normal;
    vertical-align: top;
    white-space: nowrap;
}



/*--------------------------------------------
  CONTENTS BOX
--------------------------------------------*/
@media screen and (max-width: 991px) {
    .inner {
        width: 92%;
        margin-left: auto;
        margin-right: auto;
    }

    .box_pd {
        padding-top: 4rem;
        padding-bottom: 4.5rem;
    }

    .box_pdt_sm {
        padding-top: 2rem;
    }

    .box_pdt0 {
        padding-top: 0;
    }
}

@media screen and (min-width: 992px) {
    .inner {
        width: 100%;
        max-width: 1200px;
        margin-left: auto;
        margin-right: auto;
        padding-left: 2rem;
        padding-right: 2rem;
    }

    .inner.full {
        max-width: 100%;
    }

    .box_pd {
        padding-top: 9rem;
        padding-bottom: 10rem;
    }

    .box_pdt_sm {
        padding-top: 4rem;
    }

    .box_pdt0 {
        padding-top: 0;
    }
}



/*--------------------------------------------
  HEADER
--------------------------------------------*/
.header {
    padding: 1rem 0;
    background-color: #fff;
    border-top: 4px solid #8f89dc;
    border-bottom: 3px solid #d1c9ee;
}

.header .hd_row01 {
    margin-bottom: .5rem;
    text-align: right;
    line-height: 1.3;
}

.header .hd_row01>a,
.header .hd_row01>span {
    font-weight: 700;
    font-family: 'Roboto', sans-serif;
    font-size: 1.6rem;
    color: #afafaf;
}

.header .hd_row01>span {
    color: #8f89dc;
}

.header .hd_row01>a:hover,
.header .hd_row01>a:focus {
    opacity: .7;
}

.header .hd_row01>span+a,
.header .hd_row01>a+span {
    position: relative;
    margin-left: 1rem;
    padding-left: 1rem;
}

.header .hd_row01>a+span::before,
.header .hd_row01>span+a::before {
    content: '';
    display: block;
    position: absolute;
    top: .2rem;
    left: 0;
    bottom: .2rem;
    width: 1px;
    background-color: #afafaf;
}

.header .hd_row02 {
    display: table;
    width: 100%;
}

.header .hd_row02>* {
    display: table-cell;
    vertical-align: middle;
}

@media screen and (max-width: 1199px) {

    .header .hd_row01,
    .header .hd_row02 .hd02_station,
    .header .hd_row02 .hd02_tel,
    .header .hd_row02 .hd02_contact,
    .header .hd_row02 .hd02_recruit,
    .header .hd_row03 {
        display: none;
    }
}

@media screen and (min-width: 1200px) {
    .header .hd_row02 .hd02_menu {
        display: none;
    }
}

@media screen and (min-width: 992px) {
    .header .hd_row02 .hd02_tel_sp {
        display: none;
    }

    .header .hd_row02 .hd02_contact_sp {
        display: none;
    }
}

.header .hd_row02 .hd02_logo {
    width: 100%;
    padding-right: 2rem;
    font-size: 0;
}

.header .hd_row02 .hd02_logo>a {
    display: inline-block;
}

.header .hd_row02 .hd02_logo>a:hover {
    opacity: .7;
}

.header .hd_row02 .hd02_station {
    white-space: nowrap;
}

.header .hd_row02 .hd02_station .info_station {
    padding: .8rem 2rem;
    border-radius: 3rem;
    background: #ca5bc3;
    font-size: 1.3rem;
    color: #fff;
    line-height: 1.3;
    letter-spacing: .1rem;
}

.header .hd_row02 .hd02_tel {
    padding-left: 1.5rem;
    padding-right: 1.5rem;
    white-space: nowrap;
}

.btn_tel {
    display: inline-block;
}

.btn_tel:hover,
.btn_tel:focus {
    opacity: .7;
}

.btn_tel .sub {
    display: block;
    font-size: 1.3rem;
    color: #333;
    line-height: 1.3;
    letter-spacing: .1rem;
}

.btn_tel .number {
    position: relative;
    display: block;
    padding-left: 2.5rem;
    font-weight: 500;
    font-family: 'Roboto', sans-serif;
    font-size: 2.8rem;
    color: #a29def;
    line-height: 1.3;
    letter-spacing: -.1rem;
}

.btn_tel .number::before {
    content: '';
    display: block;
    position: absolute;
    top: 0;
    left: 0;
    bottom: 0;
    margin: auto;
    width: 16px;
    height: 28px;
    background: url(../Image/common/icon_tel.png) center/contain no-repeat;
}

.header .hd_row02 .hd02_contact {
    white-space: nowrap;
}

.btn_mail {
    display: inline-block;
    padding: 1.3rem 2rem;
    border-radius: 3rem;
    background-color: #98c131;
    color: #fff;
    line-height: 1.3;
    letter-spacing: .1rem;
    box-shadow: 0 .1rem .2rem rgba(0, 0, 0, .2);
}

.btn_mail:hover,
.btn_mail:focus {
    opacity: .7;
}

.btn_mail>span {
    position: relative;
    padding-left: 2.5rem;
}

.btn_mail>span::before {
    content: '';
    display: block;
    position: absolute;
    top: .2rem;
    left: 0;
    bottom: 0;
    margin: auto;
    width: 18px;
    height: 14px;
    background: url('../Image/common/icon_mail.png') center/cover;
}

.header .hd_row02 .hd02_recruit {
    padding-left: 1.5rem;
    white-space: nowrap;
}

.btn_recruit {
    display: inline-block;
    padding: 1.3rem 2rem;
    border-radius: 3rem;
    background-color: #8f89dc;
    color: #fff;
    line-height: 1.3;
    letter-spacing: .1rem;
    box-shadow: 0 .1rem .2rem rgba(0, 0, 0, .2);
}

.btn_recruit:hover,
.btn_recruit:focus {
    opacity: .7;
}

.btn_recruit>span {
    position: relative;
    padding-left: 2.5rem;
}

.btn_recruit>span::before {
    content: '';
    display: block;
    position: absolute;
    top: .2rem;
    left: 0;
    bottom: 0;
    margin: auto;
    width: 18px;
    height: 18px;
    background: url('../Image/common/icon_recruit.png') center/cover;
}

.hd_row03 .fx_gmenu {
    margin-top: 2rem;
    display: -webkit-flex;
    display: -moz-flex;
    display: -ms-flex;
    display: -o-flex;
    display: flex;
    align-items: center;
}

.hd_row03 .fx_gmenu>li {
    position: relative;
    flex-basis: auto;
    width: calc(100% / 6);
}

.hd_row03 .fx_gmenu.nav_en>li {
    width: calc(100% / 4);
}

.hd_row03 .fx_gmenu>li::before,
.hd_row03 .fx_gmenu>li::after {
    content: '';
    display: block;
    position: absolute;
    top: 0;
    left: 0;
    bottom: 0;
    margin: auto;
    width: 1px;
    height: 2rem;
    background-color: #D4D9DC;
}

.hd_row03 .fx_gmenu>li:last-child::before {
    left: auto;
    right: 0;
}

.hd_row03 .fx_gmenu>li>a {
    display: block;
    padding: .5rem 1rem;
    text-align: center;
    font-weight: 500;
    font-size: 1.8rem;
    line-height: 1.3;
    letter-spacing: .1rem;
}

.hd_row03 .fx_gmenu>li>a:hover,
.hd_row03 .fx_gmenu>li>a:focus {
    background-color: #f7f7ff;
}

.hd_row03 .fx_gmenu>li>a .en {
    display: block;
    margin-top: .5rem;
    font-family: 'Roboto', sans-serif;
    font-size: 1.2rem;
    color: #8f89dc;
}



/*--------------------------------------------
  GOOGLE MAP
--------------------------------------------*/
.sec_map {
    position: relative;
    width: 100%;
    overflow: hidden;
}

.sec_map .ggmap {
    margin-left: -60rem;
    margin-right: -60rem;
}

.sec_map .map_info {
    position: absolute;
    top: 4rem;
    left: 4rem;
    display: inline-block;
    z-index: 1;
    padding: 3rem;
    background: #fff;
    box-shadow: 0 0 10px rgba(0, 0, 0, .2);
}

.sec_map .map_info .d_name {
    margin-bottom: 1.5rem;
    font-weight: 500;
    font-size: 1.8rem;
    color: #6259cd;
    line-height: 1.3;
}

.sec_map .map_info .d_address {
    margin-bottom: 1.5rem;
    font-size: 1.4rem;
    line-height: 1.5;
}

.sec_map .map_info .d_access {
    margin-bottom: 1.5rem;
    font-size: 1.4rem;
    line-height: 1.3;
}

.sec_map .map_info .d_open {
    font-size: 1.4rem;
    line-height: 1.3;
}

.sec_map .map_info .btn_ggmap {
    margin-top: 2rem;
}

.sec_map .map_info .btn_ggmap>a {
    display: inline-block;
    padding: .8rem 3rem 1rem;
    border-radius: 2rem;
    background-color: #98c131;
    text-align: center;
    font-size: 1.4rem;
    color: #fff;
    line-height: 1.3;
    box-shadow: 0 0.1rem 0.2rem rgba(0, 0, 0, .2);
}

.sec_map .map_info .btn_ggmap>a:hover,
.sec_map .map_info .btn_ggmap>a:focus {
    opacity: .7;
}

.sec_map .map_info .btn_ggmap>a>span {
    position: relative;
    display: block;
    padding-right: 2rem;
}

.sec_map .map_info .btn_ggmap>a>span::before {
    content: '';
    display: block;
    position: absolute;
    top: 0;
    right: 0;
    bottom: 0;
    margin: auto;
    width: 14px;
    height: 14px;
    background: url('../Image/common/icon_box.png') center/cover;
}



/*--------------------------------------------
  FOOT CONTACT
--------------------------------------------*/
.sec_contact {
    background: url('../Image/common/bg_pat02.png');
    overflow: hidden;
}

.sec_contact .illust_lr {
    position: relative;
    max-width: 55%;
    margin-left: auto;
    margin-right: auto;
}

.sec_contact .illust_lr::before,
.sec_contact .illust_lr::after {
    content: '';
    display: block;
    position: absolute;
    bottom: 0;
    width: 58%;
    height: 58%;
}

.sec_contact .illust_lr::before {
    left: -52%;
    width: 55%;
    background: url('../Image/common/foot_contact01.png') center bottom/contain no-repeat;
}

.sec_contact .illust_lr::after {
    right: -55%;
    background: url('../Image/common/foot_contact02.png') center bottom/contain no-repeat;
}

.sec_contact .illust_lr .contactbtn_tbl {
    margin-top: 3.5rem;
    display: table;
    width: 100%;
    table-layout: fixed;
    text-align: center;
}

.sec_contact .illust_lr .contactbtn_tbl>* {
    display: table-cell;
    vertical-align: middle;
}


/*--------------------------------------------
  FOOTER
--------------------------------------------*/
#page_top {
    z-index: 1;
    position: fixed;
    right: 2rem;
    bottom: 2rem;
}

#page_top>a {
    display: block;
    opacity: .8;
}

#page_top>a:hover,
#page_top>a:focus {
    opacity: 1;
}

.footer {
    border-top: 4px solid #8f89dc;
}

.footer .inner {
    padding-top: 3.5rem;
    padding-bottom: 3.5rem;
}

.ul_foot {
    display: -webkit-flex;
    display: -moz-flex;
    display: -ms-flex;
    display: -o-flex;
    display: flex;
    justify-content: center;
}

.ul_foot+.ul_foot {
    margin-top: 2rem;
}

.ul_foot>li {
    flex-basis: auto;
    width: auto;
    border-left: 1px solid #D4D9DC;
}

.ul_foot>li:last-child {
    border-right: 1px solid #D4D9DC;
}

.ul_foot>li>a {
    display: block;
    padding: .2em 2rem;
    font-weight: 500;
    font-size: 1.6rem;
    line-height: 1.3;
    letter-spacing: .1rem;
}

.ul_foot>li>a:hover,
.ul_foot>li>a:focus {
    color: #8f89dc;
}

.ft_copyright {
    padding: 2.5rem 1rem;
    border-top: 1px solid #D5D9DC;
    text-align: center;
    font-weight: 500;
    font-family: 'Roboto', sans-serif;
    font-size: 1.4rem;
    line-height: 1.3;
    letter-spacing: .1rem;
}





.header {
    position: sticky;
    top: 0;
    z-index: 999;
}

.header .hd_row03 {
    transition: opacity .4s ease, max-height .4s ease;
    overflow: hidden;
    max-height: 200px;
    /* 想定の高さより少し大きめ */
    opacity: 1;
}

.header .hd_row03.is-hidden {
    opacity: 0;
    max-height: 0;
}