.clearfix:after {
    content: "";
    display: block;
    clear: both
}

li {
    list-style: none
}

img {
    max-width: 100%;
    height: auto
}

a {
    color: inherit;
    text-decoration: none
}

.min {
    font-family: "游明朝", YuMincho, "ヒラギノ明朝 ProN W3", "Hiragino Mincho ProN", "HG明朝E", "ＭＳ Ｐ明朝", "ＭＳ 明朝", serif
}

table {
    table-layout: fixed;
    border-collapse: collapse;
    border-spacing: 0
}

td input {
    max-width: 100%
}

i,
em {
    font-style: normal
}

.inner {
    width: 100%;
    position: relative
}

@media(min-width: 1200px) {
    .inner {
        max-width: 1120px;
        padding: 0 20px;
        margin: 0 auto
    }
}

@media(min-width: 768px)and (max-width: 1199px) {
    .inner {
        padding: 0 5vw
    }
}

@media(max-width: 767px) {
    .inner {
        padding: 0 5%
    }
}

.pc-only {
    display: inherit
}

@media(min-width: 768px)and (max-width: 1199px) {
    .pc-only {
        display: none
    }
}

@media(max-width: 767px) {
    .pc-only {
        display: none
    }
}

.tab-only {
    display: none
}

@media(min-width: 768px)and (max-width: 1199px) {
    .tab-only {
        display: inherit
    }
}

@media(max-width: 767px) {
    .tab-only {
        display: none
    }
}

.sp-only {
    display: none
}

@media(min-width: 768px)and (max-width: 1199px) {
    .sp-only {
        display: none
    }
}

@media(max-width: 767px) {
    .sp-only {
        display: inherit
    }
}

.pctab-only {
    display: inherit
}

@media(min-width: 768px)and (max-width: 1199px) {
    .pctab-only {
        display: inherit
    }
}

@media(max-width: 767px) {
    .pctab-only {
        display: none
    }
}

.tabsp-only {
    display: none
}

@media(min-width: 768px)and (max-width: 1199px) {
    .tabsp-only {
        display: inherit
    }
}

@media(max-width: 767px) {
    .tabsp-only {
        display: inherit
    }
}

a.tellink {
    pointer-events: none
}

@media(max-width: 767px) {
    a.tellink {
        pointer-events: inherit
    }
}

@media(max-width: 767px) {
    :root {
        font-size: 4.26666vw !important
    }
}

html,
body {
    font-size: 1rem;
    line-height: 2;
    color: #333;
    font-family: "游ゴシック", "游ゴシック体", "ヒラギノ角ゴ Pro W3", "メイリオ", sans-serif
}

html {
    overflow: auto
}

body {
    overflow: hidden
}

.noto {
    font-family: "Noto Sans JP", sans-serif;
    font-optical-sizing: auto
}

.din {
    font-family: "din-2014", sans-serif
}

header {
    width: 100%;
    height: 75px;
    background-color: #fff;
    display: flex;
    flex-wrap: wrap;
    justify-content: space-between;
    align-items: stretch;
    padding-left: 2vw;
    position: fixed;
    top: 0;
    left: 0;
    z-index: 4
}

@media(min-width: 768px)and (max-width: 1199px) {
    header {
        height: 60px;
        justify-content: flex-start
    }
}

@media(max-width: 767px) {
    header {
        height: 12vw;
        justify-content: flex-start;
        position: relative
    }
}

header .head_logo {
    z-index: 12
}

@media(min-width: 768px)and (max-width: 1199px) {
    header .head_logo {
        width: 30vw
    }
}

@media(max-width: 767px) {
    header .head_logo {
        width: 84vw
    }
}

header .head_logo a {
    height: 100%;
    display: flex;
    flex-wrap: wrap;
    justify-content: flex-start;
    align-items: center;
    align-content: unset
}

header .head_logo a:hover {
    opacity: .8
}

@media(min-width: 768px)and (max-width: 1199px) {
    header .head_logo img {
        width: 20vw
    }
}

@media(max-width: 767px) {
    header .head_logo img {
        width: 44.5333333333vw
    }
}

header .gnav {
    display: flex;
    flex-wrap: wrap;
    justify-content: flex-end;
    align-items: center
}

@media(min-width: 768px)and (max-width: 1199px) {
    header .gnav {
        display: none;
        width: 100%;
        background-color: #f87259;
        padding-top: 60px;
        position: absolute;
        top: 0px;
        left: 0;
        z-index: 11
    }
}

@media(max-width: 767px) {
    header .gnav {
        display: none;
        width: 100%;
        background-color: #f87259;
        padding-top: 16vw;
        position: absolute;
        top: 0vw;
        left: 0;
        z-index: 11
    }
}

@media(min-width: 768px)and (max-width: 1199px) {
    header .gnav.open {
        display: block
    }
}

@media(max-width: 767px) {
    header .gnav.open {
        display: block
    }
}

@media(min-width: 1200px) {
    header .gnav .right {
        display: flex;
        flex-wrap: nowrap;
        justify-content: space-between;
        align-items: center;
        gap: 0 2vw
    }
}

.btn_head {
    width: -moz-fit-content;
    width: fit-content;
    max-width: 100%
}

.btn_head a {
    width: 228px;
    height: 75px;
    max-width: 100%;
    display: flex;
    flex-wrap: wrap;
    justify-content: center;
    align-items: center
}

@media(min-width: 768px)and (max-width: 1199px) {
    .btn_head a {
        width: 90vw;
        height: 3rem
    }
}

@media(max-width: 767px) {
    .btn_head a {
        width: 90vw;
        height: 3rem
    }
}

.btn_head a>i {
    font-size: 1.125rem;
    margin-right: .4em;
    position: relative;
    top: .1em
}

.btn_head a p {
    font-size: 1.25rem;
    font-weight: 700;
    line-height: 1.3
}

.btn_head a p i {
    font-size: 1.125rem;
    margin-inline: .5em
}

.btn_head.bg_bg a {
    background-color: #339f9b;
    color: #fff
}

.btn_head.bg_bg a:hover {
    background-color: #1a5250;
    transition: .3s ease
}

.btn_head.right {
    margin-inline: auto 0
}

.main_home {
    height: calc(100vh - 75px);
    background: #f8f6f2;
    position: relative;
    margin-top: 75px;
    z-index: 0
}

@media(min-width: 768px)and (max-width: 1199px) {
    .main_home {
        height: calc(100vh - 60px);
        margin-top: 60px
    }
}

@media(max-width: 767px) {
    .main_home {
        height: calc(100vh - 12vw);
        margin-top: 0
    }
}

.main_home::before {
    content: "";
    width: 35vw;
    height: 100%;
    background-color: #efebe2;
    border-radius: 0 100px 0 0;
    position: absolute;
    left: 0;
    top: 35%;
    z-index: 1
}

@media(max-width: 767px) {
    .main_home::before {
        width: 50vw
    }
}

.main_home::after {
    content: "";
    width: 42.6vw;
    height: 100%;
    background: url(../images/main01.png) center center/cover no-repeat;
    border-radius: 0 0 0 50%;
    position: absolute;
    right: 0;
    overflow: hidden;
    z-index: 2
}

@media(min-width: 1200px) {
    .main_home::after {
        top: 0
    }
}

@media(min-width: 768px)and (max-width: 1199px) {
    .main_home::after {
        width: 95vw;
        height: 50%;
        background: url(../images/main01_sp@2x.png) center center/cover no-repeat;
        bottom: 0
    }
}

@media(max-width: 767px) {
    .main_home::after {
        width: 95vw;
        height: 50%;
        background: url(../images/main01_sp@2x.png) center center/cover no-repeat;
        bottom: 0
    }
}

.main_home .inner {
    height: 100%;
    place-content: center;
    z-index: 3
}

.main_home p.txt_sub {
    width: -moz-fit-content;
    width: fit-content;
    border: 1px solid currentColor;
    border-radius: 100vmax;
    padding: .2em 1em;
    margin-bottom: 1.2em
}

@media(max-width: 767px) {
    .main_home p.txt_sub {
        font-size: 0.75rem
    }
}

.main_home .ttl01 {
    font-size: 2.625rem;
    font-weight: 700;
    line-height: 1.3;
    margin-bottom: .5em
}

@media(max-width: 767px) {
    .main_home .ttl01 {
        font-size: 1.75rem
    }
}

.main_home .ttl01 em {
    color: #f87259
}

.main_home p.txt01 {
    margin-bottom: 1.5em
}

.main_home .circlewrap {
    display: flex;
    flex-wrap: nowrap;
    justify-content: flex-start;
    align-items: center;
    gap: 0 1rem;
    margin-bottom: 2.2rem
}

@media(min-width: 768px)and (max-width: 1199px) {
    .main_home .circlewrap {
        margin-bottom: 20vh
    }
}

@media(max-width: 767px) {
    .main_home .circlewrap {
        margin-bottom: 24vh
    }
}

.main_home .circlewrap .circle {
    place-content: center;
    width: 162px;
    aspect-ratio: 1/1;
    border: 1px solid #fa9582;
    background-color: #fff;
    border-radius: 100vmax;
    font-size: 0.875rem;
    font-weight: 900;
    line-height: 1.5;
    text-align: center;
    position: relative
}

@media(max-width: 767px) {
    .main_home .circlewrap .circle {
        width: 27vw;
        font-size: 0.6875rem
    }
}

.main_home .circlewrap .circle::before {
    content: "";
    width: 100%;
    height: 100%;
    background-color: #f87259;
    border-radius: 100vmax;
    position: absolute;
    top: 4%;
    left: -4%;
    z-index: -1
}

.main_home .circlewrap .circle em {
    font-size: 1.625rem;
    color: #f87259;
    line-height: 1.2
}

@media(max-width: 767px) {
    .main_home .circlewrap .circle em {
        font-size: 1rem
    }
}

.main_home .circlewrap .circle strong {
    font-size: 2.375rem;
    color: #f87259;
    line-height: 1.1
}

@media(max-width: 767px) {
    .main_home .circlewrap .circle strong {
        font-size: 1.5rem
    }
}

.main_home .circlewrap .circle b {
    font-size: 1.125rem
}

@media(max-width: 767px) {
    .main_home .circlewrap .circle b {
        font-size: 0.6875rem
    }
}

.fix_right {
    display: none;
    position: fixed;
    top: 50%;
    right: 0;
    transform: translateY(-50%);
    z-index: 6;
    opacity: 0
}

@media(max-width: 767px) {
    .fix_right {
        width: 100%;
        display: flex;
        flex-wrap: wrap;
        justify-content: space-between;
        align-items: stretch;
        align-content: unset;
        top: unset;
        bottom: 0;
        right: 0;
        transform: unset
    }
}

@media(max-width: 767px) {
    .fix_right .btn {
        width: 50vw
    }
}

.fix_right .btn a {
    width: 100px;
    display: flex;
    flex-wrap: nowrap;
    justify-content: center;
    align-items: center;
    align-content: unset;
    padding: .2rem 0
}

@media(min-width: 1200px) {
    .fix_right .btn a {
        height: 80px
    }
}

@media(min-width: 768px)and (max-width: 1199px) {
    .fix_right .btn a {
        height: 70px
    }
}

@media(max-width: 767px) {
    .fix_right .btn a {
        width: 100%;
        height: 100%;
        border-radius: 0;
        padding: 1rem 0
    }
}

.fix_right .btn a i {
    font-size: 1.375rem;
    line-height: 1;
    margin-right: .2em;
    position: relative;
    top: 1px
}

@media(max-width: 767px) {
    .fix_right .btn a i {
        font-size: 1.375rem
    }
}

.fix_right .btn a p {
    font-size: 1rem;
    font-weight: 700;
    line-height: 1.2
}

.fix_right .btn a p span {
    display: block;
    font-size: 0.875rem
}

.fix_right .btn.phone a {
    background-color: #f87259;
    color: #fff
}

.fix_right .btn.mail a {
    background-color: #339f9b;
    color: #fff
}

.fix_right.active {
    opacity: .8
}

.section_cmn {
    padding: 5rem 0
}

@media(max-width: 767px) {
    .section_cmn {
        padding: 3rem 0
    }
}

.section_cmn.t_narrow {
    padding-top: 3.5rem
}

@media(max-width: 767px) {
    .section_cmn.t_narrow {
        padding-top: 2.5rem
    }
}

.section_cmn.b_narrow {
    padding-bottom: 3.5rem
}

@media(max-width: 767px) {
    .section_cmn.b_narrow {
        padding-bottom: 2.5rem
    }
}

.section_cmn.t_wide {
    padding-top: 7.5rem
}

@media(max-width: 767px) {
    .section_cmn.t_wide {
        padding-top: 3.5rem
    }
}

.section_cmn.b_wide {
    padding-bottom: 7.5rem
}

@media(max-width: 767px) {
    .section_cmn.b_wide {
        padding-bottom: 3.5rem
    }
}

.section_cmn.b_none {
    padding-bottom: 0
}

.ttl_cmn {
    font-size: 2.25rem;
    font-weight: 900;
    line-height: 1.5;
    margin-bottom: .8em
}

@media(min-width: 768px)and (max-width: 1199px) {
    .ttl_cmn {
        font-size: 1.625rem
    }
}

@media(max-width: 767px) {
    .ttl_cmn {
        font-size: 1.5rem
    }
}

.ttl_cmn span {
    display: block;
    font-size: 1.25rem;
    font-weight: 700;
    line-height: 1.5
}

@media(max-width: 767px) {
    .ttl_cmn span {
        font-size: 1rem
    }
}

.ttl_cmn span.color_gr {
    color: #b4b4b4
}

.ttl_cmn b {
    color: #f87259
}

.ttl_cmn.bdb {
    padding-bottom: .6em;
    position: relative
}

.ttl_cmn.bdb::before {
    content: "";
    width: 3em;
    height: .1em;
    background-color: #f87259;
    position: absolute;
    bottom: 0;
    left: 0
}

.ttl_cmn.mdl {
    font-size: 1.75rem
}

@media(min-width: 768px)and (max-width: 1199px) {
    .ttl_cmn.mdl {
        font-size: 1.5rem
    }
}

@media(max-width: 767px) {
    .ttl_cmn.mdl {
        font-size: 1.375rem
    }
}

.ttl_cmn.tac {
    text-align: center;
    margin-inline: auto
}

.ttl_cmn.tac.bdb::before {
    left: 50%;
    transform: translateX(-50%)
}

.ttl_cmn.color_cr {
    color: #f87259
}

.ttl_cmn.color_w {
    color: #fff
}

.ttl_cmn.mb_w {
    margin-bottom: 1.5em
}

.ttl_cmn.mb0 {
    margin-bottom: 0
}

.ttl_cmn2 {
    font-size: 1.75rem;
    font-weight: 700;
    line-height: 1.5;
    margin-bottom: .6em
}

@media(min-width: 768px)and (max-width: 1199px) {
    .ttl_cmn2 {
        font-size: 1.375rem
    }
}

@media(max-width: 767px) {
    .ttl_cmn2 {
        font-size: 1.25rem
    }
}

.ttl_cmn2.bold {
    font-weight: 700
}

.ttl_cmn2.bdb {
    padding-bottom: .6em;
    position: relative
}

.ttl_cmn2.bdb::before {
    content: "";
    width: 3em;
    height: .1em;
    background-color: #f87259;
    position: absolute;
    bottom: 0;
    left: 0
}

.ttl_cmn2.bg_cr b {
    display: inline-block;
    background-color: #f87259;
    padding: .3em .8em
}

@media(max-width: 767px) {
    .ttl_cmn2.bg_cr b {
        padding: .1em .4em
    }
}

.ttl_cmn2.bg_cr b:not(:last-child) {
    margin-bottom: .4em
}

.ttl_cmn2.tac {
    text-align: center
}

.ttl_cmn2.tac.bdb::before {
    left: 50%;
    transform: translateX(-50%)
}

.ttl_cmn2.color_w {
    color: #fff
}

.ttl_cmn2.color_cr {
    color: #f87259
}

.ttl_cmn2.small {
    font-size: 1.25rem
}

@media(max-width: 767px) {
    .ttl_cmn2.small {
        font-size: 1rem
    }
}

.ttl_cmn2.mdl {
    font-size: 1.5rem
}

@media(min-width: 768px)and (max-width: 1199px) {
    .ttl_cmn2.mdl {
        font-size: 1.375rem
    }
}

@media(max-width: 767px) {
    .ttl_cmn2.mdl {
        font-size: 1.3125rem
    }
}

.ttl_cmn2.mb_w {
    margin-bottom: 1.2em
}

.ttl_cmn2.mb0 {
    margin-bottom: 0
}

.txt_cmn {
    font-size: 1rem;
    font-weight: 400;
    line-height: 1.9
}

@media(max-width: 767px) {
    .txt_cmn {
        font-size: 0.875rem
    }
}

.txt_cmn.lh_w {
    line-height: 2.4
}

@media(max-width: 767px) {
    .txt_cmn.lh_w {
        line-height: 2.2
    }
}

.txt_cmn.lh_n {
    line-height: 1.5
}

.txt_cmn.tac {
    text-align: center
}

.txt_cmn.tar {
    text-align: right
}

.txt_cmn.bold {
    font-weight: 700
}

.txt_cmn.color_cr {
    color: #f87259
}

.txt_cmn.color_w {
    color: #fff
}

.txt_cmn.large {
    font-size: 1.125rem
}

@media(max-width: 767px) {
    .txt_cmn.large {
        font-size: 0.875rem
    }
}

.txt_cmn.mdl {
    font-size: 0.875rem
}

@media(max-width: 767px) {
    .txt_cmn.mdl {
        font-size: 0.75rem
    }
}

.txt_cmn.small {
    font-size: 0.75rem
}

@media(max-width: 767px) {
    .txt_cmn.small {
        font-size: 0.625rem
    }
}

.side_cmn {
    display: flex;
    flex-wrap: wrap;
    justify-content: space-between;
    align-items: center;
    align-content: unset
}

.side_cmn figure {
    width: 47.7777777778%;
    text-align: center
}

@media(max-width: 767px) {
    .side_cmn figure {
        width: 100%;
        margin-bottom: 1rem
    }
}

.side_cmn .txt {
    width: 47.7777777778%
}

@media(max-width: 767px) {
    .side_cmn .txt {
        width: 100%
    }
}

.side_cmn.reverse {
    flex-direction: row-reverse
}

.side_cmn.a_start {
    align-items: flex-start
}

.side_cmn.alt figure {
    width: 50%
}

@media(max-width: 767px) {
    .side_cmn.alt figure {
        width: 100%;
        margin-bottom: 1rem
    }
}

.side_cmn.alt .txt {
    width: 46.2962962963%
}

@media(max-width: 767px) {
    .side_cmn.alt .txt {
        width: 100%
    }
}

.over_cmn {
    display: flex;
    flex-wrap: wrap;
    justify-content: space-between;
    align-items: center;
    align-content: unset;
    padding: 0rem calc(50vw - 50%) 0rem 0;
    margin: 0 calc(50% - 50vw);
    position: relative
}

@media(max-width: 767px) {
    .over_cmn {
        padding: 0
    }
}

.over_cmn figure {
    width: calc(100% - 540px);
    text-align: right
}

@media(min-width: 768px)and (max-width: 1199px) {
    .over_cmn figure {
        width: 49.0740740741%
    }
}

@media(max-width: 767px) {
    .over_cmn figure {
        width: 100%;
        margin-bottom: 1rem
    }
}

.over_cmn .txt {
    width: 500px
}

@media(min-width: 768px)and (max-width: 1199px) {
    .over_cmn .txt {
        width: 47.2222222222%
    }
}

@media(max-width: 767px) {
    .over_cmn .txt {
        width: 100%;
        padding: 0 8%
    }
}

@media(max-width: 767px) {
    .over_cmn:not(.reverse) figure {
        margin-right: 8vw
    }
}

.over_cmn.reverse {
    flex-direction: row-reverse;
    padding: 0rem 0 0rem calc(50vw - 50%)
}

@media(max-width: 767px) {
    .over_cmn.reverse {
        padding: 0
    }
}

.over_cmn.reverse figure {
    text-align: left
}

@media(max-width: 767px) {
    .over_cmn.reverse figure {
        margin-left: 8vw
    }
}

.over_cmn.a_start {
    align-items: flex-start
}

.btn_cmn {
    width: -moz-fit-content;
    width: fit-content;
    max-width: 100%
}

.btn_cmn a {
    max-width: 100%;
    width: 326px;
    height: 58px;
    display: flex;
    flex-wrap: wrap;
    justify-content: center;
    align-items: center;
    align-content: unset;
    border-radius: 100vmax;
    box-shadow: 0 3px 6px rgba(0, 0, 0, .16);
    position: relative;
    overflow: hidden
}

@media(max-width: 767px) {
    .btn_cmn a {
        width: 90vw;
        height: 3rem
    }
}

.btn_cmn a p {
    font-size: 1.125rem;
    font-weight: 700;
    line-height: 1.5;
    position: relative
}

@media(max-width: 767px) {
    .btn_cmn a p {
        font-size: 1rem
    }
}

.btn_cmn a p i {
    font-size: 1rem;
    margin-inline: .66em
}

.btn_cmn a>i {
    font-size: 0.75rem;
    position: absolute;
    top: 50%;
    transform: translateY(-50%);
    right: 8%
}

@media(max-width: 767px) {
    .btn_cmn a>i {
        font-size: 0.625rem
    }
}

.btn_cmn a::before {
    content: "";
    width: 100%;
    height: 100%;
    position: absolute;
    top: 0;
    left: 0;
    z-index: 0;
    transition: transform .6s cubic-bezier(0.8, 0, 0.2, 1) 0s;
    transform: scale(0, 1);
    transform-origin: left top
}

.btn_cmn a:hover p {
    transition: .5s ease
}

.btn_cmn a:hover::before {
    transform: scale(1, 1)
}

.btn_cmn.large a {
    width: 410px;
    height: 68px
}

@media(max-width: 767px) {
    .btn_cmn.large a {
        width: 90vw;
        height: 3.5rem
    }
}

.btn_cmn.large a p {
    font-size: 1.5rem
}

@media(max-width: 767px) {
    .btn_cmn.large a p {
        font-size: 1.125rem
    }
}

.btn_cmn.center {
    margin: 0 auto
}

.btn_cmn.bg_bg a {
    background-color: #339f9b;
    color: #fff
}

.btn_cmn.bg_bg a::before {
    background-color: #1a5250
}

.btn_cmn.bg_bg a:hover {
    background-color: #1a5250
}

.btn_consult {
    width: -moz-fit-content;
    width: fit-content
}

.btn_consult a {
    max-width: 100%;
    width: 444px;
    height: 124px;
    border-radius: 100vmax;
    display: flex;
    flex-wrap: wrap;
    justify-content: center;
    align-items: center;
    align-content: unset;
    position: relative
}

@media(max-width: 767px) {
    .btn_consult a {
        width: 80vw;
        height: 4rem
    }
}

.btn_consult a p {
    font-size: 1.875rem;
    font-weight: 700;
    line-height: 1.2;
    text-align: center
}

@media(max-width: 767px) {
    .btn_consult a p {
        font-size: 1.25rem
    }
}

.btn_consult a p em {
    font-size: 2.125rem
}

@media(max-width: 767px) {
    .btn_consult a p em {
        font-size: 1.5rem
    }
}

.btn_consult a p span {
    display: block;
    font-size: 1rem;
    line-height: 1.5
}

@media(max-width: 767px) {
    .btn_consult a p span {
        font-size: 0.75rem
    }
}

.btn_consult a p i {
    font-size: 2rem;
    margin-inline: .3em;
    position: relative;
    top: .1em
}

@media(max-width: 767px) {
    .btn_consult a p i {
        font-size: 1.5rem
    }
}

.btn_consult a>i {
    font-size: 1rem;
    position: absolute;
    top: 50%;
    transform: translateY(-50%);
    right: 8%
}

@media(max-width: 767px) {
    .btn_consult a>i {
        font-size: 0.625rem
    }
}

.btn_consult.center {
    margin-inline: auto
}

.btn_consult.bg_w a {
    background-color: #fff
}

.btn_consult.bg_w a p i {
    color: #f87259
}

.btn_tel {
    width: -moz-fit-content;
    width: fit-content
}

.btn_tel a {
    max-width: 100%;
    display: flex;
    flex-wrap: wrap;
    justify-content: center;
    align-items: center;
    align-content: unset;
    position: relative
}

.btn_tel a>i {
    font-size: 2.25rem;
    color: #f87259;
    margin-right: .1em;
    position: relative
}

.btn_tel a p {
    font-size: 1.8125rem;
    font-weight: 700;
    line-height: 1
}

.btn_tel a p span {
    display: block;
    font-size: 0.875rem;
    line-height: 1.5
}

.btn_tel.center {
    margin-inline: auto
}

.btn_tel.color_cr a {
    color: #f87259
}

.btn_tel.color_w a {
    color: #fff
}

.home_trouble {
    background-color: #f8f6f2;
    position: relative
}

.home_trouble::before {
    content: "";
    width: 35vw;
    height: 80%;
    background-color: #efebe2;
    border-radius: 0 0 0 100px;
    position: absolute;
    right: 0;
    top: 35%;
    z-index: 1
}

@media(max-width: 767px) {
    .home_trouble::before {
        width: 40vw
    }
}

.home_trouble::after {
    content: "";
    width: 148px;
    height: 35px;
    background-color: #f8f6f2;
    -webkit-clip-path: polygon(0 0, 100% 0, 50% 100%);
    clip-path: polygon(0 0, 100% 0, 50% 100%);
    position: absolute;
    top: 100%;
    left: 50%;
    transform: translateX(-50%)
}

@media(max-width: 767px) {
    .home_trouble::after {
        width: 8vw;
        height: 4vw
    }
}

.home_trouble .colwrap {
    display: flex;
    flex-wrap: wrap;
    justify-content: space-between;
    align-items: flex-start;
    gap: 3rem 8%;
    max-width: 912px;
    margin-inline: auto;
    position: relative;
    z-index: 2
}

.home_trouble .colwrap .col {
    width: 46%
}

@media(min-width: 768px)and (max-width: 1199px) {
    .home_trouble .colwrap .col {
        width: 100%
    }
}

@media(max-width: 767px) {
    .home_trouble .colwrap .col {
        width: 100%
    }
}

.home_trouble .colwrap .col .ttl01 {
    width: -moz-fit-content;
    width: fit-content;
    background-color: #f87259;
    border-radius: 100vmax;
    padding: .3em 2em .5em;
    margin-inline: auto;
    margin-bottom: 1em;
    position: relative
}

.home_trouble .colwrap .col .ttl01::after {
    content: "";
    width: 1rem;
    height: 1rem;
    background-color: #f87259;
    -webkit-clip-path: polygon(0 0, 100% 0, 50% 100%);
    clip-path: polygon(0 0, 100% 0, 50% 100%);
    position: absolute;
    top: 100%;
    left: 50%;
    transform: translateX(-50%)
}

.home_trouble .colwrap .col ul li {
    display: flex;
    flex-wrap: nowrap;
    justify-content: flex-start;
    align-items: center;
    background-color: #fff;
    border-radius: 10px;
    padding: 1rem 5%;
    box-shadow: 0 3px 10px rgba(0, 0, 0, .16)
}

@media(min-width: 1200px) {
    .home_trouble .colwrap .col ul li {
        min-height: 5em
    }
}

.home_trouble .colwrap .col ul li:not(:last-child) {
    margin-bottom: 10px
}

.home_trouble .colwrap .col ul li i {
    font-size: 1.5rem;
    color: #f87259;
    margin-right: 1.2em
}

@media(max-width: 767px) {
    .home_trouble .colwrap .col ul li i {
        font-size: 1rem;
        margin-right: .4em
    }
}

.home_trouble .colwrap .col ul li p {
    font-size: 1.125rem;
    font-weight: 700;
    line-height: 1.5
}

@media(max-width: 767px) {
    .home_trouble .colwrap .col ul li p {
        font-size: 0.8125rem
    }
}

.home_solution {
    position: relative
}

.home_solution::before {
    content: "";
    width: 100%;
    height: 65%;
    background-color: #f8f6f2;
    position: absolute;
    bottom: 0;
    left: 0;
    z-index: -1
}

.home_solution::after {
    content: "";
    width: 35vw;
    height: 50%;
    background-color: #efebe2;
    border-radius: 0 100px 100px 0;
    position: absolute;
    left: 0;
    bottom: -10%;
    z-index: 0
}

@media(max-width: 767px) {
    .home_solution::after {
        width: 40vw
    }
}

.home_solution .inner {
    z-index: 1
}

.home_solution p.txt01 {
    margin-bottom: 2.5em
}

.home_solution .area_consult_cmn {
    margin-bottom: 7rem
}

@media(min-width: 768px)and (max-width: 1199px) {
    .home_solution .area_consult_cmn {
        margin-bottom: 3.5rem
    }
}

@media(max-width: 767px) {
    .home_solution .area_consult_cmn {
        margin-bottom: 2.5rem
    }
}

.home_solution ul {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(220px, 1fr));
    gap: 3.2rem 2.3148148148%
}

@media(max-width: 767px) {
    .home_solution ul {
        grid-template-columns: repeat(2, 1fr);
        gap: 2rem 4%
    }
}

.home_solution ul li figure {
    margin-bottom: .8rem
}

.home_solution ul li figure img {
    width: 100%;
    -o-object-fit: cover;
    object-fit: cover
}

@media(min-width: 1200px) {
    .area_consult_cmn.jailbreak {
        margin-inline: calc(50% - 50vw)
    }
}

@media(max-width: 767px) {
    .area_consult_cmn h3.ttl_cmn {
        letter-spacing: -0.08em
    }
}

.area_consult_cmn .area_in {
    background: url(../images/bg_consult01.png) center center/cover no-repeat;
    border-radius: 1.2rem;
    padding: 4rem 8% 5rem;
    margin-inline: auto
}

@media(min-width: 1200px) {
    .area_consult_cmn .area_in {
        max-width: 1264px
    }
}

@media(max-width: 767px) {
    .area_consult_cmn .area_in {
        padding: 2rem 4% 2.5rem
    }
}

.area_consult_cmn .area_in .btnwrap {
    display: flex;
    flex-wrap: wrap;
    justify-content: space-between;
    align-items: center;
    gap: 1rem 0
}

@media(min-width: 768px)and (max-width: 1199px) {
    .area_consult_cmn .area_in .btnwrap .btn_consult {
        margin-inline: auto
    }
}

.home_cando {
    position: relative
}

.home_cando::after {
    content: "";
    width: 35vw;
    height: 70%;
    background-color: #efebe2;
    border-radius: 100px 0 0 100px;
    position: absolute;
    right: 0;
    bottom: -10%;
    z-index: 1
}

@media(max-width: 767px) {
    .home_cando::after {
        width: 40vw
    }
}

.home_cando .inner {
    z-index: 2
}

.home_cando ul {
    display: flex;
    flex-wrap: wrap;
    justify-content: center;
    align-items: flex-start;
    gap: 2rem 2.7777777778%
}

@media(max-width: 767px) {
    .home_cando ul {
        gap: 2rem 4%
    }
}

.home_cando ul li {
    width: 31.4814814815%
}

@media(max-width: 767px) {
    .home_cando ul li {
        width: 48%
    }
}

.home_cando ul li figure {
    margin-bottom: .6rem
}

.home_cando ul li figure img {
    width: 100%;
    -o-object-fit: cover;
    object-fit: cover
}

.home_cando ul li h3 {
    margin-bottom: .3em
}

.home_reason {
    background-color: #f8f6f2;
    position: relative
}

.home_reason::before {
    content: "";
    width: 35vw;
    height: 20%;
    background-color: #efebe2;
    border-radius: 0 100px 100px 0;
    position: absolute;
    left: 0;
    bottom: -5%;
    z-index: 1
}

@media(max-width: 767px) {
    .home_reason::before {
        width: 40vw
    }
}

.home_reason .inner {
    z-index: 2
}

@media(max-width: 767px) {
    .home_reason .side_cmn:not(:last-child) {
        margin-bottom: 2.5rem
    }
}

.home_cost {
    position: relative
}

.home_cost::before {
    content: "";
    width: 100%;
    height: 20%;
    background-color: #f8f6f2;
    position: absolute;
    bottom: 0;
    left: 0;
    z-index: -1
}

.home_cost .colwrap {
    display: flex;
    flex-wrap: wrap;
    justify-content: space-between;
    align-items: flex-start;
    gap: 2.5rem 5.5555555556%;
    margin-bottom: 2.2rem
}

.home_cost .colwrap .col {
    width: 47.2222222222%
}

@media(min-width: 768px)and (max-width: 1199px) {
    .home_cost .colwrap .col {
        width: 100%
    }
}

@media(max-width: 767px) {
    .home_cost .colwrap .col {
        width: 100%
    }
}

.home_cost .colwrap .col figure {
    margin-bottom: 2rem
}

@media(max-width: 767px) {
    .home_cost .colwrap .col figure {
        margin-bottom: .8rem
    }
}

.home_cost .colwrap .col figure img {
    width: 100%;
    -o-object-fit: cover;
    object-fit: cover
}

.home_cost p.txt01 {
    margin-bottom: 1em
}

.home_cost .col ul {
    margin-bottom: 1rem
}

.home_cost .col ul li {
    display: flex;
    flex-wrap: nowrap;
    justify-content: flex-start;
    align-items: center;
    font-size: 0.9375rem;
    font-weight: 500;
    line-height: 1.5
}

@media(max-width: 767px) {
    .home_cost .col ul li {
        font-size: 0.8125rem
    }
}

.home_cost .col ul li:not(:last-child) {
    margin-bottom: 6px
}

.home_cost .col ul li i {
    font-size: 1.125rem;
    color: #f87259;
    margin-right: .7em
}

@media(max-width: 767px) {
    .home_cost .col ul li i {
        font-size: 0.9375rem;
        margin-right: .4em
    }
}

.home_cost .price {
    font-size: 1.5rem;
    line-height: 1.3;
    font-weight: 700
}

.home_cost .price b {
    font-size: 2.25rem;
    color: #f87259;
    font-weight: 600;
    line-height: 1
}

.home_cost .btn_cmn {
    margin-bottom: 2.5rem
}

.home_cost p.txt02 {
    margin-bottom: 1em
}

.home_flow {
    background-color: #f8f6f2;
    position: relative
}

.home_flow::before {
    content: "";
    width: 35vw;
    height: 60%;
    background-color: #efebe2;
    border-radius: 100px 0 0 100px;
    position: absolute;
    right: 0;
    bottom: -10%;
    z-index: 1
}

@media(max-width: 767px) {
    .home_flow::before {
        width: 40vw
    }
}

.home_flow .inner {
    z-index: 2
}

.home_flow p.txt01 {
    text-decoration: underline;
    margin-bottom: 2em
}

.home_flow ul {
    display: flex;
    flex-wrap: wrap;
    justify-content: flex-start;
    align-items: flex-start;
    gap: 3.4rem 2.2222222222%
}

@media(min-width: 768px)and (max-width: 1199px) {
    .home_flow ul {
        gap: 2.5rem 6%
    }
}

@media(max-width: 767px) {
    .home_flow ul {
        gap: 1.5rem 0%
    }
}

.home_flow ul li {
    width: 23.3333333333%
}

@media(min-width: 768px)and (max-width: 1199px) {
    .home_flow ul li {
        width: 47%
    }
}

@media(max-width: 767px) {
    .home_flow ul li {
        width: 100%
    }
}

.home_flow ul li figure {
    margin-bottom: .8rem
}

.home_flow ul li figure img {
    width: 100%;
    -o-object-fit: cover;
    object-fit: cover
}

.home_flow ul li:not(:last-child) {
    position: relative
}

@media(max-width: 767px) {
    .home_flow ul li:not(:last-child)::after {
        content: "";
        width: 6vw;
        aspect-ratio: 1/1;
        background-color: #f87259;
        border-radius: 100vmax;
        place-content: center;
        place-items: center;
        font-size: 1.125rem;
        color: #fff;
        font-weight: 900;
        line-height: 1;
        font-family: "Font Awesome 5 Free";
        text-align: center;
        position: absolute;
        left: 50%;
        top: calc(100% + .7rem);
        translate: -50% 0%;
        z-index: 1
    }
}

.home_flow ul li:not(:last-child) figure {
    position: relative
}

.home_flow ul li:not(:last-child) figure::after {
    content: "";
    width: 50px;
    aspect-ratio: 1/1;
    background-color: #f87259;
    border-radius: 100vmax;
    place-content: center;
    place-items: center;
    font-size: 1.375rem;
    color: #fff;
    font-weight: 900;
    line-height: 1;
    font-family: "Font Awesome 5 Free";
    text-align: center;
    position: absolute;
    top: 50%;
    left: calc(100% + .8rem);
    translate: -50% -50%;
    z-index: 1
}

@media(max-width: 767px) {
    .home_flow ul li:not(:last-child) figure::after {
        content: none
    }
}

.home_case .inner {
    z-index: 1
}

@media(max-width: 767px) {
    .home_case .side_cmn:not(:last-child) {
        margin-bottom: 2.5rem
    }
}

.home_faq {
    background-color: #f8f6f2;
    position: relative
}

.home_faq::before,
.home_faq::after {
    content: "";
    width: 35vw;
    height: 32vw;
    background-color: #efebe2;
    border-radius: 100px 0 0 100px;
    position: absolute;
    z-index: 0;
}

@media(max-width: 767px) {

    .home_faq::before,
    .home_faq::after {
        width: 40vw
    }
}

.home_faq::before {
    border-radius: 0 100px 100px 0;
    left: 0;
    top: -8%
}

.home_faq::after {
    border-radius: 100px 0 0 100px;
    right: 0;
    bottom: -8%
}

.home_faq .inner {
    z-index: 2
}

.home_faq .wrap_faq .unit_faq:not(:last-child) {
    margin-bottom: 2rem
}

@media(max-width: 767px) {
    .home_faq .wrap_faq .unit_faq:not(:last-child) {
        margin-bottom: 1.2rem
    }
}

.home_faq .wrap_faq .unit_faq .q1 {
    cursor: pointer;
}

.home_faq .wrap_faq .unit_faq .q1,
.home_faq .wrap_faq .unit_faq .a1 {
    display: flex;
    flex-wrap: nowrap;
    justify-content: space-between;
    align-items: flex-start;
    padding: 1rem 3%
}

@media(max-width: 767px) {

    .home_faq .wrap_faq .unit_faq .q1,
    .home_faq .wrap_faq .unit_faq .a1 {
        padding: .7rem 3%
    }
}

.home_faq .wrap_faq .unit_faq .q1 .mark,
.home_faq .wrap_faq .unit_faq .a1 .mark {
    font-size: 1.25rem;
    color: #fff;
    font-weight: 700;
    line-height: 1.5
}

@media(max-width: 767px) {

    .home_faq .wrap_faq .unit_faq .q1 .mark,
    .home_faq .wrap_faq .unit_faq .a1 .mark {
        font-size: 1rem
    }
}

.home_faq .wrap_faq .unit_faq .q1 p,
.home_faq .wrap_faq .unit_faq .a1 p {
    width: calc(100% - 20px - 10px);
    font-size: 1rem;
    font-weight: 500;
    line-height: 1.8rem
}

@media(max-width: 767px) {

    .home_faq .wrap_faq .unit_faq .q1 p,
    .home_faq .wrap_faq .unit_faq .a1 p {
        width: calc(100% - 4vw - 2vw);
        font-size: 0.875rem;
        line-height: 1.5rem
    }
}

.home_faq .wrap_faq .unit_faq .q1 {
    background-color: #f87259;
    border-radius: 10px;
    position: relative
}

.home_faq .wrap_faq .unit_faq .q1::before,
.home_faq .wrap_faq .unit_faq .q1::after {
    content: "";
    width: 16px;
    height: 2px;
    /*background: #f87259;*/
    background: #fff;
    position: absolute;
    top: 50%;
    right: 3%;
    translate: 0 -50%
}

@media(max-width: 767px) {

    .home_faq .wrap_faq .unit_faq .q1::before,
    .home_faq .wrap_faq .unit_faq .q1::after {
        width: 12px
    }
}

.home_faq .wrap_faq .unit_faq .q1::after {
    rotate: -90deg;
    transition: .3s ease
}

.home_faq .wrap_faq .unit_faq .q1 .mark {
    background-color: #f87259
}

.home_faq .wrap_faq .unit_faq .q1 p {
    color: #fff;
    font-weight: 700
}

.home_faq .wrap_faq .unit_faq .a1 {
    translate: 0 -1em;
    opacity: 0;
    transition: transform 1s, opacity 1s
}

.home_faq .wrap_faq .unit_faq .a1 .mark {
    color: #f87259
}

.home_faq .wrap_faq .unit_faq[open] .q1::after {
    rotate: 0deg
}

.home_faq .wrap_faq .unit_faq[open] .a1 {
    translate: 0;
    opacity: 1
}

.tbl_contact {
    width: 100%;
    table-layout: fixed;
    border-collapse: separate;
    border-spacing: 0 2rem;
    margin-inline: auto;
    margin-bottom: 10px
}

@media(max-width: 767px) {
    .tbl_contact {
        border-spacing: 0 1.5rem
    }
}

.tbl_contact .col_th {
    width: 30%
}

@media(max-width: 767px) {
    .tbl_contact .col_th {
        display: none
    }
}

.tbl_contact .col_td {
    width: 70%
}

@media(max-width: 767px) {
    .tbl_contact .col_td {
        display: none
    }
}

.tbl_contact th {
    font-size: 1rem;
    font-weight: 700;
    line-height: 1.3;
    text-align: left;
    position: relative
}

@media(max-width: 767px) {
    .tbl_contact th {
        display: block;
        width: 100%;
        font-size: 0.875rem;
        padding-bottom: .4rem
    }
}

.tbl_contact td {
    font-size: 1rem;
    line-height: 1.5
}

@media(max-width: 767px) {
    .tbl_contact td {
        display: block;
        width: 100%;
        font-size: 0.8125rem
    }
}

.tbl_contact .required::before,
.tbl_contact .any::before {
    border-radius: 5px;
    font-size: 0.75rem;
    font-weight: 400;
    line-height: 1;
    padding: .2rem .6rem .2rem;
    margin-right: .7rem;
    position: relative
}

@media(max-width: 767px) {

    .tbl_contact .required::before,
    .tbl_contact .any::before {
        padding: .1rem .5rem 0em;
        margin-right: .3rem
    }
}

.tbl_contact .required::before {
    content: "必須";
    background-color: #f87259;
    color: #fff
}

.tbl_contact .any::before {
    content: "任意";
    background-color: #efebe2
}

.tbl_contact .td_confirm {
    box-shadow: unset
}

.tbl_contact .td_confirm p.privacy01 {
    background-color: #efebe2;
    border-radius: 10px;
    padding: 2em 1.6em;
    font-size: 1rem;
    font-weight: 400;
    line-height: 1.4;
    margin-bottom: 2em
}

@media(max-width: 767px) {
    .tbl_contact .td_confirm p.privacy01 {
        font-size: 0.8125rem
    }
}

.tbl_contact .td_confirm p.privacy01 b {
    display: block;
    text-align: center;
    margin-bottom: 1em
}

.tbl_contact td input[type=text],
.tbl_contact td input[type=tel],
.tbl_contact td input[type=email] {
    background: #fff;
    border: 1px solid #707070;
    border-radius: 5px;
    box-shadow: 0 3px 6px rgba(0, 0, 0, .16);
    padding: 3px 5px
}

.tbl_contact td input[type=text],
.tbl_contact td input[type=email] {
    width: 100%
}

.tbl_contact td input[type=tel] {
    width: 70%
}

.tbl_contact td textarea {
    width: 100%;
    height: 200px;
    background: #fff;
    border: 1px solid #707070;
    border-radius: 5px;
    box-shadow: 0 3px 6px rgba(0, 0, 0, .16);
    padding: 5px
}

.tbl_contact td span.wpcf7-list-item {
    margin: 0 1em 0 0
}

.th_textarea,
.th_confirm {
    vertical-align: top
}

.th_textarea.required::before,
.th_textarea.any::before,
.th_confirm.required::before,
.th_confirm.any::before {
    top: .5rem
}

@media(max-width: 767px) {

    .th_textarea.required::before,
    .th_textarea.any::before,
    .th_confirm.required::before,
    .th_confirm.any::before {
        top: .3rem
    }
}

.check_confirm {
    font-size: 1rem;
    font-weight: 700;
    text-align: center;
    margin: 0px 0 20px
}

@media(max-width: 767px) {
    .check_confirm {
        font-size: 0.875rem;
        margin: 1rem 0 2rem
    }
}

.check_confirm label {
    padding: 0px
}

.check_confirm span {
    margin-right: 0px
}

.btn_submit {
    display: table;
    margin: 0 auto;
    position: relative;
    font-size: 1.125rem;
    color: #fff;
    font-weight: 700;
    line-height: 1.5
}

.btn_submit input[type=submit] {
    width: 326px;
    height: 58px;
    background-color: #339f9b;
    border-radius: 100vmax;
    text-align: center
}

@media(max-width: 767px) {
    .btn_submit input[type=submit] {
        width: 90vw;
        height: 3rem
    }
}

.btn_submit i {
    font-size: 0.625rem;
    position: absolute;
    right: 1.5rem;
    top: 50%;
    transform: translateY(-50%)
}

.btn_submit input[type=submit][disabled] {
    opacity: .3
}

.btn_submit input[type=submit]:not([disabled]):hover {
    cursor: pointer;
    opacity: .8
}

.ajax-loader {
    display: none !important
}

.wpcf7-spinner {
    display: none !important
}

.main_page {
    margin-top: 75px
}

@media(min-width: 768px)and (max-width: 1199px) {
    .main_page {
        margin-top: 60px
    }
}

@media(max-width: 767px) {
    .main_page {
        margin-top: 0
    }
}

.main_page .inner {
    display: none
}

.thanks_first {
    background-color: #f8f6f2
}

.thanks_first p.txt01 {
    margin-bottom: 4.5em
}