/*-----------------------------------------------------------------------

    header

-----------------------------------------------------------------------*/
.aside-info {
    align-items: center;
    justify-content: center;
}
.aside-info li {
    box-shadow: 3.5px 6.062px 6px 0px rgba(0, 0, 0, 0.07);
}
.aside-info_telSub {
    font-size: 1.6rem;
    letter-spacing: 0.04em;
    text-align: center;
}
.aside-info_tel {
    font-size: 2.6rem;
    line-height: 1;
    letter-spacing: 0.075em;
    font-weight: 700;
}
.aside-info_tel::before {
    content: '';
    width: 20px;
    height: 20px;
    margin: 0 10px 0 0;
    background: url(../images/common/ico_tel.png) no-repeat center / contain;
    display: inline-block;
    vertical-align: -1px;
}
.aside-info_open {
    font-size: 1.2rem;
    letter-spacing: 0.08em;
}
.aside-info_open span {
    font-size: 1rem;
}
.aside-contact {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 194px;
    padding: 20px 0;
    color: #818181;
    background-image: url(../images/common/pattern01.jpg);
    font-size: 1.7rem;
    font-weight: 700;
    letter-spacing: 0.04em;
}
@media screen and (max-width: 767px) {
    .aside-contact {
        width: 224px;
    }
}
.header-info_adr {
    text-align: center;
    line-height: 1.3;
}
@media screen and (min-width: 768px) {
    header {
        width: 100%;
        height: 130px;
        padding: 10px 0;
        background-color: rgba(255, 255, 255, .6);
        position: fixed;
        top: 0; left: 0;
        z-index: 100;
    }
    header .header-main {
        margin: 0 50px 0 0;
    }
    header .page-ttl {
        margin: 0 0 15px;
    }
    header .page-ttl h1 {
        font-size: 1.1rem;
        line-height: 1;
        text-align: right;
    }
    header .header-info {
        align-items: center;
    }
    header .aside-info li {
        margin-left: 20px;
    }
    /* ▼nav */
    .g_nav {
        width: 100%;
        margin: 15px 0 0;
    }
    .g_nav .h_nav {
        align-items: center;
        width: 100%;
        margin: 0 auto;
        font-weight: 700;
        font-size: 1.6rem;
        line-height: 1;
    }
    .g_nav .h_nav li a {
        position: relative;
    }
    .g_nav .h_nav li a::after {
        position: absolute;
        bottom: -5px;
        left: -3px;
        content: '';
        width: 0;
        height: 12px;
        background-color: rgba(121, 169, 177, .5);
        transition: .3s;
        z-index: -1;
        pointer-events: none;
    }
    .g_nav .h_nav li a:hover {
        opacity: 1;
    }
    .g_nav .h_nav li a:hover::after {
        width: calc(100% + 6px);
    }
}
@media screen and (max-width: 767px) {
    /*▼sp_nav*/
    .h_main h1 {
        line-height: 1;
    }
    .h_logo img {
        height: 40px;
    }
    .h_wrap {
        align-items: center;
        flex-direction: row;
        width: 100%;
        height: 60px;
        padding: 0 20px;
        background-color: rgba(255, 255, 255, .6);
        position: relative;
        z-index: 999;
    }
    header {
        position: fixed;
        top: 0; left: 0; right: 0;
        z-index: 999;
        transition: .3s all;
    }
    #nav_toggle {
        position: fixed;
        top: 0; right: 0;
        padding: 19px 20px;
    }
    #nav_toggle span {
        display: block;
        width: 30px;
        height: 2px;
        margin: 0 auto;
        background-color: #5a4421;
        transition: .3s;
    }
    #nav_toggle span:not(:last-child) {
        margin-bottom: 8px;
    }
    #nav_toggle.active span:nth-of-type(1) {
        -webkit-transform: translate3d(0px, 10px, 0) rotate(45deg);
        transform: translate3d(0px, 10px, 0) rotate(45deg);
    }
    #nav_toggle.active span:nth-of-type(2) {
        opacity: 0;
    }
    #nav_toggle.active span:nth-of-type(3) {
        -webkit-transform: translate3d(0px, -10px, 0) rotate(-45deg);
        transform: translate3d(0px, -10px, 0) rotate(-45deg);
    }
    .g_nav {
        overflow-y: scroll;
        visibility: hidden;
        width: 100%;
        height: 100%;
        padding: 90px 20px 50%;
        background-image: url(../images/common/pattern01.jpg);
        background-color: #fff;
        position: fixed;
        top: 0; bottom: 0; left: 0; right: 0;
        transition: 0.5s ease-in-out;
        z-index: -1;
        -webkit-overflow-scrolling: touch;
    }
    .g_nav .partition {
        border-bottom: 1px solid;
        margin: 0 0 10px;
        padding: 0 0 10px;
    }
    .h_nav li {
        width: 100%;
    }
    .h_nav li a {
        padding: 5px 0 5px 20px;
    }
    .g_nav .header-info {
        text-align: center;
        margin: 30px 0 0;
    }
    .aside-info li {
        margin: 20px 10px 0;
    }
    .g_nav .aside-contact br {
        display: block;
    }
    .g_nav .top-sns_wrap {
        width: 100%;
        margin: 20px 0 0;
    }
    .g_nav .header-info_adr {
        margin: 15px 0 0;
    }
    .g_nav .header-info_adr br {
        display: block;
    }
    .g_nav {
        opacity: 0;
        pointer-events: none;
    }
    .g_nav.open {
        visibility: visible;
        opacity: 1;
        pointer-events: all;
    }
    .g_nav .h_nav {
        transform: translateX(30vw);
        transition: all .4s;
        opacity: 0;
    }
    .g_nav.open ul {
        transform: translateX(0);
        opacity: 1;
    }
}

/*-----------------------------------------------------------------------

    key

-----------------------------------------------------------------------*/
.key_wrap {
    justify-content: center;
    align-items: center;
    width: 100%;
    height: 100%;
    background-image: url(../images/top/main_vis.png);
    background-repeat: no-repeat;
    background-position: center;
    background-size: cover;
}
#top .key_wrap {
    background-image: url(../images/top/main_vis.png);
}
.key_ttl-sub {
    display: inline-block;
    width: auto;
    background-color: rgba(255, 255, 255, .7);
    border: 1px solid #595959;
    font-weight: bold;
}
@media screen and (min-width: 768px) {
    .key {
        height: 350px;
        /* margin-top: 170px; */
        position: relative;
    }
    .key_wrap {
        padding: 130px 0 0;
    }
    #top .key {
        height: 880px;
        text-align: left;
    }
    #top .key_wrap {
        align-items: flex-end;
        padding: 0 0 70px;
    }
    #top .key_ttl {
        width: 1080px;
        text-align: center;
    }
   .key_ttl-sub {
        padding: 10px 20px;
        font-size: 3.6rem;
    }
}
@media screen and (max-width: 767px) {
    .key {
        width: 100%;
        height: 150px;
        position: relative;
    }
    .key br {
        display: block;
    }
    #top .key {
        height: 60vh;
        min-height: 430px;
    }
    #top .key_wrap {
        padding: 45px 0 0;
    }
    .key_ttl {
        width: 300px;
        margin: 0 auto;
    }
    .key_ttl-sub {
        font-size: 2.4rem;
        color: #fff;
    }
}

/*-----------------------------------------------------------------------

    main

-----------------------------------------------------------------------*/
/*
    top-greeting
--------------------*/
.top-greeting {
    position: relative;
}
.top-greeting::before {
    content: '';
    width: 100%;
    height: 100%;
    background: url(../images/top/greeting_shape.png) no-repeat bottom / cover;
    position: absolute;
    left: 0; bottom: 0;
    pointer-events: none;
    z-index: 10;
}
.top-greeting_wrap {
    position: relative;
    z-index: 10;
}
.top-greeting_ttl {
    color: #fff;
    background-color: #79a9b1;
    text-align: center;
    position: relative;
    font-weight: 700;
}
.top-greeting_ttl span {
    display: inline-block;
    padding: 0 0 4px;
    border-bottom: 3px solid #fff;
}
.top-greeting_ttl::before {
    content: '';
    background: url(../images/top/greeting_ttl_deco01.png) no-repeat center / contain;
    position: absolute;
}
.top-greeting_ttl::after {
    content: '';
    background: url(../images/top/greeting_ttl_deco02.png) no-repeat center / contain;
    position: absolute;
}
.top-greeting_list li {
    color: #cd88a9;
    background-color: #fff;
    border-radius: 47%;
    text-align: center;
    font-weight: 700;
    box-shadow: 0px 3px 10px 0px rgba(0, 0, 0, 0.09);
    letter-spacing: 0;
}
@media screen and (min-width: 768px) {
    .top-greeting {
        padding: 88px 0 127px;
        background: url(../images/top/greeting_bg01.png) no-repeat top 103px right,
        url(../images/top/greeting_bg02.png) no-repeat bottom 187px left;
        text-align: center;
    }
    .top-greeting_ttl {
        width: 824px;
        margin: 0 auto 52px;
        padding: 20px 0 13px;
        font-size: 3.6rem;
    }
    .top-greeting_ttl::before {
        width: 192px;
        height: 129px;
        top: -64px; right: -128px;
    }
    .top-greeting_ttl::after {
        width: 128px;
        height: 130px;
        top: 20px; left: -95px;
    }
    .top-greeting_list {
        width: 893px;
        margin: 26px auto 0;
    }
    .top-greeting_list li {
        display: inline-flex;
        align-items: center;
        justify-content: center;
        width: 421px;
        height: 161px;
        font-size: 1.9rem;
    }
    .top-greeting_list li:nth-child(2n) {
        margin: 60px 0 -20px;
    }
    .top-greeting_list li:last-child {
        margin-bottom: 0;
    }
}
@media screen and (max-width: 767px) {
    .top-greeting {
        background: url(../images/top/greeting_bg01.png) no-repeat top 103px right / 330px auto,
        url(../images/top/greeting_bg02.png) no-repeat top 340px left / 330px auto;
    }
    .top-greeting_ttl {
        width: 280px;
        margin: 0 auto 26px;
        padding: 20px 0 13px;
        font-size: 2rem;
    }
    .top-greeting_ttl::before {
        width: 192px;
        height: 129px;
        top: -64px; right: -128px;
    }
    .top-greeting_ttl::after {
        width: 128px;
        height: 130px;
        top: 20px; left: -95px;
    }
    .top-greeting_list {
        display: block;
        width: 100%;
        max-width: 380px;
        margin: 16px auto 0;
    }
    .top-greeting_list li {
        display: flex;
        align-items: center;
        justify-content: center;
        width: 260px;
        height: 90px;
        margin: 0 auto 0 0;
    }
    .top-greeting_list li:nth-child(n+2) {
        margin: 20px 0 0;
    }
    .top-greeting_list li:nth-child(2n) {
        margin-left: auto;
    }
}

/*
    top-answer
--------------------*/
.top-answer_emphasis {
    background-color: #fff;
    border: 1px solid #cd88a9;
    text-align: center;
}
.top-answer_ttl {
    display: inline-block;
    width: auto;
    border-bottom: 3px solid #cd88a9;
    font-weight: 700;
}
.top-answer_ttl span {
    color: #79a9b1;
    line-height: 1;
}
.top-answer_cnt {
    background: url(../images/top/answer_cnt.jpg) no-repeat right bottom / cover;
    position: relative;
}
.top-answer_cnt::before {
    content: '';
    border: 1px solid rgba(0, 0, 0, .3);
    position: absolute;
    z-index: 10;
    pointer-events: none;
}
.top-answer_cnt-ttl {
    color: #fff;
    background-color: #79a9b1;
    text-align: center;
}
.top-answer_cnt-lead {
    border-bottom: 1px solid #9e9e9e;
    text-align: center;
    letter-spacing: 0.08em;
}
.top-answer_cnt-lead span.color {
    color: #79a9b1;
}
.top-answer_list {
    justify-content: center;
}
.top-answer_btn {
    width: 330px;
    color: #fff;
    background-image: url(../images/common/pattern02.jpg);
    text-align: center;
    box-shadow: 1.5px 2.598px 13px 0px rgba(0, 0, 0, 0.2);
}
@media screen and (min-width: 768px) {
    .top-answer {
        padding-top: 243px;
        margin-top: -167px;
        background: url(../images/top/answer_bg01.png) no-repeat left bottom 27px,
        url(../images/top/answer_bg02.png) no-repeat right bottom 37px;
    }
    .top-answer_emphasis {
        margin: 0 0 75px;
        padding: 55px 0 64px;
    }
    .top-answer_ttl {
        padding: 0 0 7px;
        font-size: 4.8rem;
    }
    .top-answer_ttl span {
        font-size: 6.6rem;
    }
    .top-answer_cnt {
        padding: 70px 165px 80px;
    }
    .top-answer_cnt::before {
        top: 20px; bottom: 20px; left: 20px; right: 20px;
    }
    .top-answer_cnt-ttl {
        margin: 0 0 22px;
        padding: 2px 0 3px;
        font-size: 1.8rem;
    }
    .top-answer_cnt-lead {
        margin: 0 0 30px;
        padding: 0 0 9px;
        font-size: 3.2rem;
    }
    .top-answer_cnt-lead span {
        font-size: 4.1rem;
        line-height: 1;
    }
    .top-answer_list {
        align-items: center;
    }
    .top-answer_list .aside-info_tel {
        font-size: 3.5rem;
    }
    .top-answer_list .aside-info_tel::before {
        width: 29px;
        height: 29px;
    }
    .top-answer_list .aside-info_telSub {
        margin: 7px 0 0;
    }
    .top-answer_btn {
        margin: 0 0 0 50px;
        padding: 20px 0;
        font-size: 1.9rem;
    }
}
@media screen and (max-width: 767px) {
    .top-answer {
        margin-top: -30px;
        background: url(../images/top/answer_bg01.png) no-repeat left top / 280px auto,
        url(../images/top/answer_bg02.png) no-repeat right bottom 37px / 250px auto;
    }
    .top-answer_emphasis {
        width: 280px;
        margin: 0 auto 30px;
        padding: 20px;
    }
    .top-answer_ttl {
        padding: 0 0 7px;
        font-size: 2.4rem;
    }
    .top-answer_ttl span {
        font-size: 3rem;
    }
    .top-answer_cnt {
        padding: 30px;
    }
    .top-answer_cnt::before {
        top: 10px; bottom: 10px; left: 10px; right: 10px;
    }
    .top-answer_cnt-ttl {
        margin: 0 0 22px;
        padding: 2px 0 3px;
        font-size: 1.6rem;
    }
    .top-answer_cnt-lead {
        margin: 0 0 30px;
        padding: 0 0 9px;
        font-size: 2rem;
    }
    .top-answer_cnt-lead span {
        font-size: 2.4rem;
        line-height: 1;
    }
    .top-answer_list {
        flex-flow: column;
        align-items: center;
    }
    .top-answer_list .aside-info_telSub {
        margin: 7px 0 0;
        font-size: 1.4rem;
    }
    .top-answer_btn {
        width: 270px;
        margin: 20px auto 0;
        padding: 20px 0;
        font-size: 1.5rem;
    }
}

/*
    top-about
--------------------*/
.top-about {
    background: url(../images/top/about_bg01.png) no-repeat top left,
    url(../images/top/about_bg02.png) no-repeat bottom right,
    url(../images/top/about_bg03.png) no-repeat top right;
    background-color: #f4e1e1;
}
.top-about_txt {
    background-image: url(../images/common/pattern04.jpg);
    position: relative;
}
.top-about_txt-btn {
    content: '';
    display: inline-block;
    margin: 0 auto;
    width: 64px;
    height: 42px;
    box-shadow: 3.5px 6.062px 6px 0px rgba(0, 0, 0, 0.05);
    position: absolute;
    left: 0; right: 0; bottom: -16px;
    cursor: pointer;
}
.top-about_txt-btn.close {
    /* transform: rotate(180deg); */
    display: none;
}
.top-about_txt-body {
    overflow: hidden;
}
.top-about_fig:first-of-type {
    position: relative;
}
.top-about_fig:first-of-type::before {
    content: '';
    position: absolute;
}
.top-about_fig-img {
    position: relative;
}
.top-about_fig .common-ttl02 {
    position: absolute;
}
@media screen and (min-width: 768px) {
    .top-about_cnt {
        flex-direction: row-reverse;
        margin: 0 0 50px;
    }
    .top-about .common-ttl {
        display: inline-block;
        width: auto;
        margin: 0;
        height: 430px;
        padding: 20px 21px;
        -ms-writing-mode: tb-rl;
        writing-mode: vertical-rl;
        text-align: left;
        letter-spacing: 0.16em;
    }
    .top-about_txt {
        width: 940px;
        margin: 120px 0 0;
        padding: 35px 70px;
    }
    .top-about_txt-body {
        height: 240px;
    }
    .top-about_txt-body.open {
        height: auto;
    }
    .top-about_fig {
        width: 485px;
    }
    .top-about_fig-img {
        margin: 0 0 22px;
    }
    .top-about_fig .common-ttl02 {
        display: inline-block;
        margin: auto;
        top: 0; bottom: 0; left: 20px;
        text-align: center;
        letter-spacing: 0;
    }
    .top-about_fig:nth-of-type(1) .common-ttl02 {
        height: 122px;
    }
    .top-about_fig:nth-of-type(2) .common-ttl02 {
        height: 307px;
    }
    .top-about_fig:first-of-type::before {
        width: 30px;
        height: 320px;
        background: url(../images/top/about_fig_deco.png) no-repeat center,
        linear-gradient(#959595,#959595) no-repeat center / 1px 100%;
        left: calc(100% + 40px); top: 0;
    }
}
@media screen and (max-width: 767px) {
    .top-about_cnt {
        flex-direction: row-reverse;
        margin: 0 0 50px;
    }
    .top-about .common-ttl img {
        max-height: none;
        width: 26px;
    }
    .top-about_txt {
        width: 100%;
        padding: 20px 20px 35px;
    }
    .top-about_txt-body {
        height: 190px;
    }
    .top-about_txt-body.open {
        height: auto;
    }
    .top-about_fig {
        width: 100%;
    }
    .top-about_fig:not(:last-child) {
        margin-bottom: 80px;
    }
    .top-about_fig-img {
        max-width: 485px;
        margin: 0 auto 25px;
    }
    .top-about_fig .common-ttl02 {
        display: inline-block;
        margin: auto;
        padding: 6px 20px;
        left: 20px; bottom: -15px;
        text-align: center;
        letter-spacing: 0;
    }
    .top-about_fig:first-of-type::before {
        width: 100%;
        height: 29px;
        background: url(../images/top/about_fig_deco.png) no-repeat center,
        linear-gradient(#959595,#959595) no-repeat center / 100% 1px;
        left: 0; right: 0; top: calc(100% + 20px);
    }
}

/*
    top-funeral
--------------------*/
.top-funeral .block_cnt {
    background: url(../images/top/funeral_txt_bg.png) no-repeat center;
}
.top-funeral_block .common-ttl03 {
    display: block;
    width: 100%;
    -ms-writing-mode: unset;
    writing-mode: unset;
}
.top-funeral_about {
    background: #f8f1e4 url(../images/common/common_deco01.png) no-repeat bottom right;
    box-shadow: 3.5px 6.062px 13px 0px rgba(0, 0, 0, 0.08);
    position: relative;
}
.top-funeral_about .common-ttl02 {
    position: absolute;
}
.top-funeral_about-cnt {
    background-color: #fff;
}
.top-funeral_about-cnt dt {
    color: #fff;
    background-color: #595959;
    text-align: center;
    line-height: 1.3;
}
@media screen and (min-width: 768px) {
    .top-funeral {
        padding: 134px 0 100px;
        background: url(../images/top/funeral_bg01.png) no-repeat top left 20px,
        url(../images/top/funeral_bg02.png) no-repeat bottom right 317px;
        background-color: #f1f1f1;
    }
    .top-funeral .block_cnt {
        align-self: stretch;
        width: 490px;
        background-position: bottom 30px center;
    }
    .top-funeral_block .common-ttl03 {
        margin: 0 0 22px;
        padding: 6px 18px;
    }
    .top-funeral_about {
        justify-content: flex-start;
        margin: 120px 0 0;
        padding: 40px;
        font-size: 1.4rem;
    }
    .top-funeral_about .common-ttl02 {
        top: -68px; right: 49px;
    }
    .top-funeral_about-cnt {
        width: 390px;
        margin: 0 40px 0 0;
        padding: 27px 20px 20px;
    }
    .top-funeral_about-cnt dt {
        margin: 0 0 17px;
        font-size: 1.6rem;
    }
    .top-funeral_about-cnt dd {
        display: flex;
        justify-content: space-between;
    }
    .top-funeral_about-cnt dd span {
        font-size: 2.1rem;
        line-height: 1;
    }
    .top-funeral_about-note {
        width: 470px;
    }
}
@media screen and (max-width: 767px) {
    .top-funeral {
        background: url(../images/top/funeral_bg01.png) no-repeat top left / 200px auto,
        url(../images/top/funeral_bg02.png) no-repeat bottom right / 200px auto;
        background-color: #f1f1f1;
    }
    .top-funeral .block_cnt {
        width: 100%;
    }
    .top-funeral_block .common-ttl03 {
        margin: 0 0 22px;
        padding: 6px 18px;
    }
    .top-funeral_about {
        justify-content: flex-start;
        margin: 50px 0 0;
        padding: 40px 20px 20px;
        font-size: 1.4rem;
    }
    .top-funeral_about .common-ttl02 {
        top: -20px; left: 20px;
    }
    .top-funeral_about-cnt {
        width: 100%;
        max-width: 390px;
        margin: 0 auto 20px;
        padding: 24px 20px 20px;
    }
    .top-funeral_about-cnt dt {
        margin: 0 0 7px;
        font-size: 1.6rem;
    }
    .top-funeral_about-cnt dd {
        text-align: center;
    }
    .top-funeral_about-cnt dd span {
        display: block;
        width: 100%;
        font-size: 1.8rem;
    }
    .top-funeral_about-note {
        width: 100%;
    }
    .top-funeral_about-note br {
        display: block;
    }
}

/*
    top-message
--------------------*/
.top-message {
    overflow: hidden;
    background: url(../images/top/message_bg01.jpg) no-repeat center / cover;
}
.top-message.message-type02 {
    background: url(../images/top/message_bg02.jpg) no-repeat center / cover;
}
.top-message_cnt p {
    letter-spacing: 0.14em;
    font-weight: 700;
}
.top-message_cnt p span {
    background-color: rgba(244, 185, 223, .29);
}
@media screen and (min-width: 768px) {
    .top-message {
        height: 780px;
        padding: 100px 0 0;
    }
    .top-message_wrap {
        display: flex;
        justify-content: flex-end;
        height: 100%;
    }
    .top-message_cnt {
        -ms-writing-mode: tb-rl;
        writing-mode: vertical-rl;
        font-size: 2.2rem;
        line-height: 75px;
        text-shadow: 0 0 3px #fff, 0 0 3px #fff, 0 0 3px #fff, 0 0 3px #fff;
    }
    .top-message_cnt p span {
        padding: 0 5px;
        box-shadow: 0 0 20px rgba(244, 185, 223, .29), 0 0 20px rgba(244, 185, 223, .29);
        font-size: 3.2rem;
    }
    .top-message_cnt p:not(:last-child) {
        margin: 0 0 0 75px;
    }
    .top-message.message-type02 {
        padding-top: 135px;
    }
    .top-message.message-type02 .top-message_wrap {
        justify-content: flex-start;
    }
}
@media screen and (max-width: 767px) {
    .top-message_cnt {
        /* -ms-writing-mode: tb-rl;
        writing-mode: vertical-rl; */
        font-size: 1.4rem;
        line-height: 35px;
        text-shadow: 0 0 3px #fff, 0 0 3px #fff, 0 0 3px #fff, 0 0 3px #fff;
    }
    .top-message_cnt p br {
        display: block;
    }
    .top-message_cnt p span {
        padding: 0 5px;
        box-shadow: 0 0 20px rgba(244, 185, 223, .29), 0 0 20px rgba(244, 185, 223, .29);
        font-size: 1.8rem;
    }
    .top-message_cnt p:not(:last-child) {
        margin: 0 0 20px;
    }
    
}



/*
    top-bone
--------------------*/
.top-bone {
    background: url(../images/top/bone_bg.jpg) no-repeat top left / cover;
}
.top-bone_block .block_cnt {
    background: #fff url(../images/top/bone_cnt_deco.png) no-repeat bottom 5px right 5px;
}
.top-bone_block .block_img {
    position: relative;
}
.top-bone_block .block_img .common-ttl02 {
    position: absolute;
}
.top-bone_cnt {
    background: url(../images/common/common_deco01.png) no-repeat bottom right,
    url(../images/common/pattern03.jpg);
    box-shadow: 3.5px 6.062px 13px 0px rgba(0, 0, 0, 0.08);
}
.top-bone_cnt-ttl {
    text-align: center;
    position: relative;
    z-index: 10;
}
.top-bone_cnt-ttl span.background {
    display: block;
    color: #fff;
    background-color: #79a9b1;
}
.top-bone_cnt-ttl span.border {
    display: inline-block;
    border-bottom: 2px solid #79a9b1;
    font-weight: 700;
}
.top-bone_cnt-ttl span.radius {
    color: #fff;
    position: relative;
    line-height: 1;
}
.top-bone_cnt-ttl span.radius::after {
    content: '';
    background-color: #79a9b1;
    border-radius: 50%;
    position: absolute;
    z-index: -1;
}
.top-bone_cnt-note {
    background-color: rgba(255, 255, 255, .7);
    border: 1px solid #a6a6a6;
}
.top-bone_cnt-note .flex {
    justify-content: center;
    margin: 0 0 2px;
}
.top-bone_cnt-note dt {
    width: 100px;
    display: inline-block;
    color: #fff;
    background-color: #595959;
    line-height: 1.3;
}
@media screen and (min-width: 768px) {
    .top-bone_block .block_img .common-ttl02 {
        top: -22px; right: 25px;
        padding: 20px 6px;
    }
    .top-bone_block .block_cnt {
        width: 578px;
        padding: 20px;
    }
    .top-bone_block:nth-of-type(2) {
        margin-top: 100px;
    }
    .top-bone_block:nth-of-type(2) .common-ttl02 {
        top: -54px;
    }
    .top-bone_cnt {
        margin: 60px 0 0;
        padding: 34px 0 40px;
    }
    .top-bone_cnt-ttl {
        margin: 0 0 22px;
        font-size: 2.4rem;
    }
    .top-bone_cnt-ttl span.background {
        width: 135px;
        margin: 0 auto -5px;
        padding: 2px 0;
        font-size: 2rem;
    }
    .top-bone_cnt-ttl span.border {
        padding: 0 0 2px;
    }
    .top-bone_cnt-ttl span.radius {
        margin: 0 4px;
        font-size: 3.9rem;
    }
    .top-bone_cnt-ttl span.radius::after {
        width: 89px;
        height: 85px;
        left: -5px; top: -13px;
    }
    .top-bone_cnt-note {
        width: 650px;
        margin: 0 auto;
        padding: 19px 0 15px;
        text-align: center;
    }
    .top-bone_cnt-note dt {
        margin: 0 40px 0 0;
        font-size: 2.1rem;
    }
    .top-bone_cnt-note dd span {
        font-size: 2.1rem;
        line-height: 1;
    }
}
@media screen and (max-width: 767px) {
    .top-bone .common-ttl {
        margin-bottom: 50px;
    }
    .top-bone_block .block_img .common-ttl02 {
        top: -15px; left: 20px;
    }
    .top-bone_block .block_cnt {
        width: 100%;
        padding: 20px;
    }
    .top-bone_cnt {
        margin: 30px 0 0;
        padding: 30px 20px;
    }
    .top-bone_cnt-ttl {
        margin: 0 0 16px;
        font-size: 1.8rem;
    }
    .top-bone_cnt-ttl span.background {
        width: 115px;
        margin: 0 auto 15px;
        padding: 2px 0;
        font-size: 1.8rem;
    }
    .top-bone_cnt-ttl span.border {
        margin: 0 0 8px;
        padding: 0 0 2px;
        letter-spacing: 0.04em;
    }
    .top-bone_cnt-ttl span.radius {
        margin: 0 4px;
        font-size: 2rem;
    }
    .top-bone_cnt-ttl span.radius::after {
        width: 48px;
        height: 48px;
        left: -3px; top: -9px;
    }
    .top-bone_cnt-note {
        width: 100%;
        margin: 0 auto;
        padding: 19px 20px 15px;
        text-align: center;
    }
    .top-bone_cnt-note dt {
        margin: 0 20px 0 0;
        font-size: 1.8rem;
    }
    .top-bone_cnt-note dd span {
        font-size: 1.8rem;
        line-height: 1;
    }
}



/*
    top-info
--------------------*/
.top-info {
    background: url(../images/top/info_bg.jpg) no-repeat top / cover;
}
.top-info_greeting {
    padding: 20px;
    border: 1px solid rgba(0, 0, 0, .3);
    position: relative;
    z-index: 10;
}
.top-info_greeting::after {
    content: '';
    background: url(../images/top/info_img.png) no-repeat right / contain;
    position: absolute;
    top: 20px; right: 20px; bottom: 20px; left: 20px;
    z-index: -1;
}
.top-info_greeting-cnt {
    text-align: right;
    line-height: 1.7647;
    letter-spacing: 0.025em;
}
.top-info_greeting-cnt p:not([class]) {
    text-align: left;
}
.top-info_greeting-note {
    display: inline-block;
    padding: 0 10px 4px;
    border-bottom: 2px solid #595959;
}
.top-info_greeting-note span {
    margin: 0 10px 0 0;
    font-size: 1.5rem;
}
.top-info_greeting-note img {
    vertical-align: middle;
}
@media screen and (min-width: 768px) {
    .top-info_greeting-cnt {
        width: 490px;
        padding: 20px 0;
        font-size: 1.7rem;
    }
    .top-info_greeting-ttl {
        position: absolute;
        top: -24px; right: 31px;
    }
    .top-info_greeting-note {
        margin: 0 -50px 0 0;
    }
}
@media screen and (max-width: 767px) {
    .top-info .common-ttl {
        margin-bottom: 50px;
    }
    .top-info_greeting {
        padding: 20px;
    }
    .top-info_greeting::after {
        top: 10px;
        background-position: top right;
    }
    .top-info_greeting-cnt {
        width: 100%;
        padding: calc(66.0743vw - 48px) 0 0;
    }
    .top-info_greeting-ttl {
        position: absolute;
        top: -20px; right: 10px;
    }
    .top-info_greeting-note img {
        height: 35px;
    }
}
/* ▼top-info_cnt */
.top-info_cnt {
    background: url(../images/top/info_cnt.jpg) no-repeat center / cover;
}
.top-info_cnt .map {
    width: 100%;
}
@media screen and (min-width: 768px) {
    .top-info_cnt {
        margin: 60px 0 0;
        padding: 40px;
    }
    .top-info_cnt .c_table {
        width: 500px;
    }
    .top-info_cnt .c_table th {
        width: 110px;
    }
    .top-info_cnt .map {
        height: 370px;
        margin: 30px 0 0;
    }
}
@media screen and (max-width: 767px) {
    .top-info_cnt {
        justify-content: center;
        margin: 30px 0 0;
        padding: 20px;
    }
    .top-info_cnt .c_table {
        width: 100%;
        margin: 20px 0 0;
    }
    .top-info_cnt .map {
        height: 200px;
        margin: 20px 0 0;
    }
}




/*
    page-contact
--------------------*/
.contact-form-table th {
    background-color: #eee;
}
.contact-form-table td {
    background-color: #fff;
}
.contact-form-table tr:focus-within th {
    background-color: #ddd;
}
.input_big {
    width: 100%;
}
.input_mid {
    width: 70%;
}
.input_min {
    width: 28%;
    max-width: 85px;
}
.contact-form-table {
    font-size: 16px;
    line-height: 2;
    letter-spacing: 0;
}
.contact-form-table td,
.contact-form-table th{
    vertical-align: middle;
    font-weight: 400;
}
.contact-form-table th {
    font-weight: bold;
    text-align: left;
}
.contact-form-table td a {
    display: inline;
    text-decoration: underline;
}
/* ▼button */
.contact_submits input[type='button'],
.contact_submits input[type='submit'] {
    margin: 7px;
    padding: 1em 2em;
    font-size: 16px;
    border: none;
    -webkit-appearance: none;
    transition: all 0.4s ease;
    background-color: #eee;
    border: 1px solid #ddd;
}
.contact-form-table td div:not(:last-child) {
    margin: 0 0 5px;
}
.contact_submits.flex {
    display: flex;
    align-items: center;
    justify-content: center;
}
@media screen and (min-width: 768px) {
    .contact-form-table {
        border: 1px solid #ddd;
    }
    .contact-form-table tr:not(:last-child) {
        border-bottom: 1px solid #ddd;
    }
    .contact-form-table td,
    .contact-form-table th {
        padding: 30px;
    }
    .contact-form-table th {
        width: 360px;
    }
    .required-mark {
        padding: 2px;
        border-radius: 4px;
    }
}
@media screen and (max-width: 767px) {
    .contact-form-table,
    .contact-form-table tbody,
    .contact-form-table tr,
    .contact-form-table th,
    .contact-form-table td {
        width: auto;
        display: block;
    }
    .contact-form-table tr {
        margin: 0 0 20px;
        border: 1px solid #ddd;
    }
    .contact-form-table th {
        padding: 0 0 0 5%;
        line-height: 40px;
    }
    .contact-form-table td {
        padding: 10px;
    }
    .contact-form-table .input_table tr:last-child {
        text-align: center;
    }
    .required-mark {
        display: flex;
        align-items: center;
        justify-content: center;
        width: 20%;
        margin: 0 0 0 auto;
        top: 0; bottom: 0; right: 0;
    }
    .contact-form-table input[type='submit']:not(:last-child) {
        margin-bottom: 20px;
    }
    .contact_submits {
        font-size: 14px;
    }
}
/*-----------------------------------------------------------------------

    footer

-----------------------------------------------------------------------*/
footer .f_wrap {
    width: 100%;
    color: #fff;
}
footer .aside-info_tel {
    text-align: center;
}
footer .aside-info_tel::before {
    background-image: url(../images/common/ico_tel02.png);
}
footer .copyright {
    width: 100%;
    background-color: #fff;
}
@media screen and (min-width: 768px) {
    footer .f_wrap {
        height: 610px;
        padding: 132px 0 0;
        background: url(../images/common/footer_deco01.png) no-repeat left calc(50% - 600px) bottom,
        url(../images/common/footer_deco02.png) no-repeat right calc(50% - 600px) bottom,
        url(../images/common/footer_bg.png) no-repeat top,
        linear-gradient(#d3a7bc, #d3a7bc) no-repeat top 327px center / 100% 100%;
    }
    footer .footer-ttl {
        margin: 0 0 20px;
        text-align: center;
    }
    footer .footer-info {
        width: 480px;
        margin: 0 auto;
    }
    footer .aside-info {
        border-bottom: 1px solid #fff;
    }
    footer .aside-info {
        justify-content: space-between;
        margin: 20px 0 30px;
        padding: 0 0 30px;
    }
    footer .f_nav .flex {
        justify-content: center;
    }
    footer .f_nav li {
        line-height: 1;
        letter-spacing: 0;
    }
    footer .f_nav .flex:nth-child(n+2) {
        margin-top: 20px;
    }
    footer .f_nav li:not(:last-child) {
        margin-right: 15px;
    }
    footer .copyright {
        padding: 14px 0;
        text-align: center;
        font-size: 1.4rem;
    }
}
@media screen and (max-width: 767px) {
    footer .f_wrap {
        background: url(../images/common/footer_deco01.png) no-repeat left bottom / 170px auto,
        url(../images/common/footer_deco02.png) no-repeat right bottom / 170px auto,
        url(../images/common/footer_bg.png) no-repeat top / contain;
        background-color: #d3a7bc;
        padding: 40px 20px;
    }
    footer .footer-ttl {
        margin: 0 0 25px;
        text-align: center;
    }
    footer .footer-ttl img {
        height: 50px;
    }
    footer .aside-info {
        text-align: center;
    }
    footer .header-info_adr {
        margin: 11px 0 0;
    }
    footer .header-info_adr br {
        display: none;
    }
    footer .f_nav {
        margin: 25px 0 0;
    }
    footer .f_nav .flex {
        justify-content: center;
    }
    footer .f_nav li {
        padding: 0 20px;
        line-height: 1;
    }
    footer .f_nav li:not(:last-child) {
        border-right: 1px solid;
    }
    footer .copyright {
        padding: 5px 10px;
        text-align: center;
        font-size: 1.1rem;
    }
}