/* lp-components.css - components.css からLPに必要なパーツだけを抽出 */

.tmpl_page_mv {
    margin: 0 2rem;
    padding: 2rem 0;
    border-radius:var(--r-xl);
    overflow: hidden;
    min-height: 400px;
    display: flex;
    justify-content: flex-start;
    align-items: center;
    color: var(--c-text-invert);
    position: relative
}
@media only screen and (max-width: 768px) {
.tmpl_page_mv {
            border-radius:var(--r-sp-md);
            min-height: 360px
        }
}
.tmpl_page_mv .tmpl_inner {
    width: 100%
}
.tmpl_page_mv .tmpl_page_mv_image {
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    -o-object-fit: cover;
    object-fit: cover;
    -o-object-position: right center;
    object-position: right center;
    z-index: -1
}
.tmpl_page_mv .tmpl_page_mv_category {
    margin-bottom: .5rem;
    font-family: "Montserrat", sans-serif;
    font-size:var(--fs-lead)
}
@media only screen and (max-width: 768px) {
.tmpl_page_mv .tmpl_page_mv_category {
            font-size:var(--fs-base)
        }
}
.tmpl_page_mv .tmpl_page_mv_heading {
    font-size:var(--fs-mv);
    font-weight: 500
}
@media only screen and (max-width: 768px) {
.tmpl_page_mv .tmpl_page_mv_heading {
            font-size:var(--fs-mv-sp)
        }
}
.tmpl_page_mv .tmpl_page_mv_tx {
    margin-top: 3rem;
    max-width: 820px;
    font-size:var(--fs-lead)
}
@media only screen and (max-width: 768px) {
.tmpl_page_mv .tmpl_page_mv_tx {
            margin-top: 2rem;
            font-size:var(--fs-base)
        }
}
.tmpl_topicpath {
    padding: 15px 0;
    display: flex;
    justify-content: flex-start;
    align-items: flex-start;
    font-size: 1.5rem
}
@media only screen and (max-width: 768px) {
.tmpl_topicpath {
            padding: 1rem 0;
            font-size: 1.3rem;
            white-space: nowrap;
            overflow-x: scroll;
            overflow-y: hidden
        }
}
.tmpl_topicpath li {
    margin-right: 15px;
    padding-right: 21px;
    position: relative
}
@media only screen and (max-width: 768px) {
.tmpl_topicpath li {
            margin-right: 1rem;
            padding-right: 1.6rem
        }
}
.tmpl_topicpath li::after {
    content: " ";
    display: block;
    width: 6px;
    height: 12px;
    background: url("../img/common/link_arrow.svg") center no-repeat;
    position: absolute;
    top: 50%;
    right: 0;
    margin-top: -6px
}
.tmpl_topicpath li:last-child {
    margin-right: 0;
    padding-right: 0
}
.tmpl_topicpath li:last-child::after {
    display: none
}
.tmpl_topicpath li a {
    color: var(--c-text);
    text-decoration: none;
    opacity: 1
}
.tmpl_topicpath li a:hover {
    color: var(--c-brand-800)
}
.tmpl_btn {
    font-size:var(--fs-lead)
}
@media only screen and (max-width: 768px) {
.tmpl_btn {
            font-size:var(--fs-base)
        }
}
.tmpl_btn a {
    display: inline-block;
    padding: 15px 40px;
    min-width: 320px;
    border: 1px solid var(--c-brand-800);
    border-radius:var(--r-md);
    background-color: var(--c-brand-800);
    color: var(--c-text-invert);
    text-decoration: none;
    text-align: center;
    position: relative
}
@media only screen and (max-width: 768px) {
.tmpl_btn a {
            padding: 1.3rem 3rem
        }
}
.tmpl_btn a::after {
    content: " ";
    display: block;
    width: 12px;
    height: 12px;
    background: url("../img/common/btn_arrrow01.svg") center no-repeat;
    position: absolute;
    top: 50%;
    right: 24px;
    margin-top: -6px
}
@media only screen and (max-width: 768px) {
.tmpl_btn a::after {
            right: 1.4rem
        }
}
.tmpl_btn.tmpl_btn_secondary a {
    background-color: var(--c-brand-50);
    color: var(--c-brand-800)
}
.tmpl_btn.tmpl_btn_secondary a::after {
    background-image: url("../img/common/btn_arrrow02.svg")
}
.tmpl_btn.tmpl_btn_third a {
    border-color: var(--c-brand-300);
    background-color: var(--c-brand-300)
}
.tmpl_btn.tmpl_btn_ghost a {
    background-color: var(--c-text-invert);
    color: var(--c-brand-800)
}
.tmpl_btn.tmpl_btn_ghost a::after {
    background-image: url("../img/common/btn_arrrow02.svg")
}
.tmpl_btn.tmpl_btn--small {
    font-size:var(--fs-base)
}
@media only screen and (max-width: 768px) {
.tmpl_btn.tmpl_btn--small {
            font-size:var(--fs-small)
        }
}
.tmpl_btn.tmpl_btn--small a {
    padding: 12px 40px;
    min-width: 240px
}
@media only screen and (max-width: 768px) {
.tmpl_btn.tmpl_btn--small a {
            padding: 1rem 3rem
        }
}
.tmpl_btn.tmpl_btn--large {
    font-size:var(--fs-h4)
}
@media only screen and (max-width: 768px) {
.tmpl_btn.tmpl_btn--large {
            font-size:var(--fs-lead)
        }
}
.tmpl_btn.tmpl_btn--large a {
    padding: 22px 40px;
    min-width: 400px
}
@media only screen and (max-width: 768px) {
.tmpl_btn.tmpl_btn--large a {
            padding: 2rem 3rem;
            min-width: inherit;
            width: 100%
        }
}
.tmpl_cta-contact {
    margin-top: 8rem;
    padding: 1px 60px 65px;
    border-radius:var(--r-xl);
    background-color: var(--c-brand-800);
    color: var(--c-text-invert)
}
@media only screen and (max-width: 768px) {
.tmpl_cta-contact {
            padding: 1px 20px 20px
        }
}
.tmpl_cta-contact h2 {
    text-align: center;
    margin-top: -8rem
}
.tmpl_cta-contact .tmpl_cta-flow {
    margin: 3rem 0 4rem;
    border: 1px solid var(--c-text-invert);
    background-color: var(--c-text-invert)
}
.tmpl_cta-contact .tmpl_cta-flow .tmpl_cta-flow_item {
    background-color: var(--c-brand-800)
}
.tmpl_cta-contact .tmpl_cta-flow .tmpl_cta-flow_item .tmpl_cta-flow_number {
    color: var(--c-warning)
}
.tmpl_cta-contact .tmpl_cta-flow .tmpl_cta-flow_item h4 {
    color: var(--c-text-invert)
}
.tmpl_cta-flow {
    margin-top: 20px;
    display: flex;
    width: 100%;
    border: 1px solid var(--c-brand-800);
    background-color: var(--c-brand-800);
    border-radius:var(--r-lg);
    overflow: hidden
}
@media only screen and (max-width: 768px) {
.tmpl_cta-flow {
            display: block;
            border-radius:var(--r-sp)
        }
}
.tmpl_cta-flow .tmpl_cta-flow_item {
    background-color: var(--c-text-invert);
    flex: 1;
    position: relative;
    padding: 30px 40px 30px 60px;
    clip-path: polygon(0 0, calc(100% - 40px) 0, 100% 50%, calc(100% - 40px) 100%, 0 100%, 40px 50%);
    margin-left: -20px;
    margin-right: -19px;
    position: relative
}
@media only screen and (max-width: 768px) {
.tmpl_cta-flow .tmpl_cta-flow_item {
            margin: -19px 0 0 0;
            padding: 35px 20px 30px 50px;
            clip-path: polygon(0 0, 50% 20px, 100% 0, 100% calc(100% - 20px), 50% 100%, 0 calc(100% - 20px))
        }
}
.tmpl_cta-flow .tmpl_cta-flow_item:first-child {
    padding-left: 50px;
    clip-path: polygon(0 0, calc(100% - 40px) 0, 100% 50%, calc(100% - 40px) 100%, 0 100%)
}
@media only screen and (max-width: 768px) {
.tmpl_cta-flow .tmpl_cta-flow_item:first-child {
            margin-top: 0;
            padding: 20px 20px 30px 50px;
            clip-path: polygon(0 0, 100% 0, 100% calc(100% - 20px), 50% 100%, 0 calc(100% - 20px))
        }
.tmpl_cta-flow .tmpl_cta-flow_item:first-child .tmpl_cta-flow_number {
            top: 17px
        }
}
.tmpl_cta-flow .tmpl_cta-flow_item:last-child {
    clip-path: polygon(0 0, 100% 0, 100% 100%, 0 100%, 40px 50%)
}
@media only screen and (max-width: 768px) {
.tmpl_cta-flow .tmpl_cta-flow_item:last-child {
            padding: 35px 20px 20px 50px;
            clip-path: polygon(0 0, 50% 20px, 100% 0, 100% 100%, 0 100%)
        }
}
.tmpl_cta-flow .tmpl_cta-flow_item p {
    margin: 0
}
.tmpl_cta-flow .tmpl_cta-flow_item .tmpl_cta-flow_number {
    margin-bottom: .5rem;
    font-family: "Montserrat", sans-serif;
    font-size:var(--fs-h2);
    font-weight: 700;
    line-height: 1.1;
    color: var(--c-brand-800)
}
@media only screen and (max-width: 768px) {
.tmpl_cta-flow .tmpl_cta-flow_item .tmpl_cta-flow_number {
            font-size:var(--fs-h3);
            position: absolute;
            top: 32px;
            left: 20px;
            margin: 0
        }
}
.tmpl_cta-flow .tmpl_cta-flow_item h4 {
    margin-bottom: 1rem;
    color: var(--c-brand-800)
}
@media only screen and (max-width: 768px) {
.tmpl_cta-flow .tmpl_cta-flow_item h4 {
            margin-bottom: .8rem
        }
}
.tmpl_cta {
    padding: 65px 0;
    position: relative;
    z-index: 1;
    text-align: center;
    color: var(--c-text-invert)
}
@media only screen and (max-width: 768px) {
.tmpl_cta {
            padding: 4rem 0
        }
}
.tmpl_cta::before {
    content: " ";
    display: block;
    width: 100svw;
    height: 100%;
    position: absolute;
    top: 0;
    left: 50%;
    margin-left: -50svw;
    background: url("../img/common/cta_bg.jpg") center/cover no-repeat;
    z-index: -1
}
.tmpl_cta .tmpl_cta_inner {
    padding: 60px 20px;
    border: 1px solid var(--c-text-invert);
    border-radius:var(--r-lg)
}
@media only screen and (max-width: 768px) {
.tmpl_cta .tmpl_cta_inner {
            padding: 3rem 2rem
        }
}
.tmpl_cta .tmpl_columns--btns {
    margin-top: 4.5rem;
    justify-content: center
}
@media only screen and (max-width: 768px) {
.tmpl_cta .tmpl_columns--btns {
            margin-top: 3rem
        }
}
.tmpl_cta .tmpl_columns--btns .tmpl_btn {
    margin: 0 3rem 0 0
}
@media only screen and (max-width: 768px) {
.tmpl_cta .tmpl_columns--btns .tmpl_btn {
            margin: 0 0 1.5rem
        }
}
.tmpl_cta .tmpl_columns--btns .tmpl_btn:last-child {
    margin-right: 0
}
@media only screen and (max-width: 768px) {
.tmpl_cta .tmpl_columns--btns .tmpl_btn:last-child {
            margin-bottom: 0
        }
}
.tmpl_table-scrollable tr th,
.tmpl_table-scrollable tr td {
    white-space: nowrap
}
.tmpl_pagetop {
    position: fixed;
    bottom: 100px;
    right: 20px;
    z-index: 10;
    visibility: hidden;
    opacity: 0;
    transition: all .3s ease-out
}
@media only screen and (max-width: 768px) {
.tmpl_pagetop {
            bottom: 60px;
            right: 10px
        }
}
.tmpl_btn_center {
    text-align: center;
}
.tmpl_td_highlight {
    background-color: var(--c-brand-50);
}
table {
    border: 1px solid var(--c-brand-800);
    border-spacing: 0;
    border-collapse: separate;
    min-width: 100%
}
table tr th {
    padding: 14px 24px;
    border-right: 1px solid var(--c-border);
    border-bottom: 1px solid var(--c-border);
    vertical-align: middle;
    font-size:var(--fs-lead);
    font-weight: 700;
    background-color: var(--c-brand-50);
    color: var(--c-brand-800);
    text-align: left
}
@media only screen and (max-width: 768px) {
table tr th {
        padding: .9rem 1.4rem;
        font-size:var(--fs-base)
    }
}
table tr th:last-child {
    border-right: 0
}
table tr td {
    padding: 14px 24px;
    border-right: 1px solid var(--c-border);
    border-bottom: 1px solid var(--c-border);
    vertical-align: middle
}
@media only screen and (max-width: 768px) {
table tr td {
        padding: .9rem 1.4rem
    }
}
table tr td:last-child {
    border-right: 0
}
table tr:last-child th,
table tr:last-child td {
    border-bottom: 0
}
table thead tr th {
    background-color: var(--c-brand-800);
    color: var(--c-text-invert)
}
