@charset "UTF-8";
@import url("https://fonts.googleapis.com/css2?family=Noto+Sans+JP:wght@100;300;400;500&family=Roboto:wght@300;400;500;700&display=swap");

html,
body,
div,
span,
object,
iframe,
h1,
h2,
h3,
h4,
h5,
h6,
p,
blockquote,
pre,
abbr,
address,
cite,
code,
del,
dfn,
em,
img,
ins,
kbd,
q,
samp,
small,
strong,
sub,
sup,
var,
b,
i,
dl,
dt,
dd,
ol,
ul,
li,
fieldset,
form,
label,
legend,
table,
caption,
tbody,
tfoot,
thead,
tr,
th,
td,
article,
aside,
dialog,
figure,
footer,
header,
hgroup,
menu,
nav,
section,
menu,
time,
mark,
audio,
video {
    margin: 0;
    padding: 0;
    border: 0;
    outline: 0;
    font-size: 100%;
    font-weight: inherit;
    vertical-align: baseline;
    background: transparent;
}

body {
    line-height: 1;
    font-size: 10px;
    -webkit-text-size-adjust: 100%;
    -ms-text-size-adjust: 100%;
    -o-text-size-adjust: 100%;
    text-size-adjust: 100%;
}

section,
article,
aside,
main,
dialog,
figure,
footer,
header,
hgroup,
nav,
section,
img {
    display: block;
}

address {
    font-style: normal;
}

ul {
    list-style: none;
}

blockquote,
q {
    quotes: none;
}

blockquote:before,
blockquote:after,
q:before,
q:after {
    content: "";
    content: none;
}

a {
    margin: 0;
    padding: 0;
    border: 0;
    font-size: 100%;
    vertical-align: baseline;
    background: transparent;
}

ins {
    background-color: #ff9;
    color: #000;
    text-decoration: none;
}

mark {
    background-color: #ff9;
    color: #000;
    font-style: italic;
    font-weight: bold;
}

del {
    text-decoration: line-through;
}

abbr[title],
dfn[title] {
    border-bottom: 1px dotted #000;
    cursor: help;
}

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

hr {
    display: block;
    height: 1px;
    border: 0;
    border-top: 1px solid #cccccc;
    margin: 1em 0;
    padding: 0;
}

input,
select {
    vertical-align: middle;
}

select::-ms-expand {
    display: none;
}

input[type="text"],
input[type="tel"],
input[type="email"],
input[type="radio"],
input[type="submit"],
button,
textarea,
select {
    font-family: inherit;
    margin: 0;
    padding: 0;
    background: none;
    border: none;
    -webkit-border-radius: 0;
    border-radius: 0;
    outline: none;
    -webkit-appearance: none;
    -moz-appearance: none;
    appearance: none;
}

*:after,
*:before {
    font-family: inherit;
    color: inherit;
}

*,
*:after,
*:before {
    -webkit-box-sizing: border-box;
    -ms-box-sizing: border-box;
    -o-box-sizing: border-box;
    box-sizing: border-box;
    outline: none;
}

.cf:before,
.cf:after {
    content: "";
    display: table;
}

.cf:after {
    clear: both;
}

.cf::after {
    content: "";
    display: table;
    clear: both;
}

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

a {
    color: #000;
}

a:visited {
    text-decoration: none;
}

a:active {
    text-decoration: none;
}

a:link {
    text-decoration: none;
}

span {
    font-weight: inherit;
    line-height: inherit;
    letter-spacing: inherit;
}

.wrapper {
    position: relative;
    min-height: 100vh;
    overflow-x: hidden;
}

.font_en {
    font-family: "Roboto", sans-serif;
    font-weight: 400;
    letter-spacing: 0.03em;
}

.font_fu {
    font-family: futura-pt, sans-serif;
    font-weight: 400;
    font-style: normal;
    font-size: 16px;
}

.font_fu.bold {
    font-weight: 600 !important;
}

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

.font_yu {
    font-family: "游ゴシック", "Yu Gothic", "游ゴシック", YuGothic, "ヒラギノ角ゴ Pro W3", "Hiragino Kaku Gothic Pro", "メイリオ", "Meiryo";
}

.font_noto {
    font-family: "Noto Sans JP", sans-serif;
    font-weight: 400;
    letter-spacing: 0.03em;
}

.bold {
    font-weight: 500 !important;
}

html {
    font-size: 10px;
    background: #fff;
}

body {
    width: 100%;
    background-color: #fff;
    overflow-x: hidden;
    -webkit-text-size-adjust: 100%;
    -moz-osx-font-smoothing: grayscale;
    -webkit-font-smoothing: antialiased;
    -webkit-tap-highlight-color: transparent;
    font-weight: 300;
    font-size: 15px;
    line-height: 1.7;
    letter-spacing: 0.05em;
    font-family: "Noto Sans JP", sans-serif;
}

* {
    box-sizing: border-box;
    -webkit-box-sizing: border-box;
}

figure {
    margin: 0;
    padding: 0;
    border: 0;
    outline: 0;
    font-size: 100%;
    vertical-align: baseline;
    background: transparent;
}

.js-link:hover {
    cursor: pointer;
}

.pagetop {
    position: fixed;
    bottom: 13px;
    right: 13px;
    z-index: 10;
    width: 71px;
}

@media only screen and (max-width: 768px) {
    .pagetop {
        display: none;
    }
}

.pagetop a {
    display: block;
}

.img-wrap {
    overflow: hidden;
    position: relative;
}

.img-wrap:before {
    animation: img-wrap 2s cubic-bezier(0.4, 0, 0.2, 1) forwards;
    background: #fff;
    bottom: 0;
    content: "";
    left: 0;
    pointer-events: none;
    position: absolute;
    right: 0;
    top: 0;
    z-index: 1;
}

@keyframes img-wrap {
    100% {
        transform: translateX(100%);
    }
}

.img-animation {
    animation: img-opacity 2s cubic-bezier(0.4, 0, 0.2, 1);
    overflow: hidden;
    position: relative;
}

.img-animation:before {
    animation: img-animation 2s cubic-bezier(0.4, 0, 0.2, 1) forwards;
    background: #fff;
    bottom: 0;
    content: "";
    left: 0;
    pointer-events: none;
    position: absolute;
    right: 0;
    top: 0;
    z-index: 1;
}

@keyframes img-opacity {
    0% {
        opacity: 0;
    }
}

@keyframes img-animation {
    100% {
        transform: translateX(100%);
    }
}

.col_white {
    color: #fff !important;
}

.col_black {
    color: #000 !important;
}

.col_blue {
    color: #4c6479 !important;
}

.col_yellow {
    color: #cc9c30 !important;
}

.col_gray {
    color: #686868 !important;
}

.bg_green {
    background-color: #05987a !important;
}

.bg_orange {
    background-color: #e56b04 !important;
}

.ttl_level1 {
    position: relative;
    font-size: 66px;
    font-style: normal;
    font-weight: 500;
    line-height: 1;
    letter-spacing: 0.01em;
    text-align: left;
}

@media only screen and (max-width: 768px) {
    .ttl_level1 {
        font-size: 46px;
    }
}

.ttl_level1 span {
    display: block;
    margin-bottom: 8px;
    font-size: 16px;
}

.ttl_level1a {
    position: relative;
    font-size: 50px;
    font-style: normal;
    font-weight: 500;
    line-height: 1.3;
    letter-spacing: -0.01em;
}

@media only screen and (max-width: 768px) {
    .ttl_level1a {
        font-size: 40px;
    }
}

.ttl_level1a span {
    display: block;
    margin-bottom: -2px;
    font-size: 14px;
}

.ttl_level2 {
    position: relative;
    padding-right: 10px;
    font-size: 66px;
    font-style: normal;
    font-weight: 400;
    line-height: 1.3;
    letter-spacing: 0.01em;
}

@media only screen and (max-width: 768px) {
    .ttl_level2 {
        font-size: 38px;
        line-height: 1;
    }
}

.ttl_level2.jp {
    font-size: 48px;
    padding-bottom: 10px;
}

.ttl_level2.jp span {
    margin-bottom: 2px;
}

@media only screen and (max-width: 768px) {
    .ttl_level2.jp {
        font-size: 26px;
    }

    .ttl_level2.jp span {
        margin-bottom: 8px;
    }
}

.ttl_level2:after {
    content: "";
    position: absolute;
    top: calc(50% + 8px);
    left: -320px;
    transform: translateY(-50%);
    z-index: 0;
    width: 300px;
    height: 1px;
    background-color: #4c6479;
}

.ttl_level2 span {
    display: block;
    margin-bottom: -6px;
    font-size: 16px;
}

@media only screen and (max-width: 768px) {
    .ttl_level2 span {
        margin-bottom: 6px;
        font-size: 14px;
    }
}

.ttl_level3 {
    font-size: 60px;
    font-style: normal;
    font-weight: 400;
    line-height: 1.4;
    letter-spacing: 0.01em;
}

@media only screen and (max-width: 768px) {
    .ttl_level3 {
        font-size: 48px;
    }
}

.ttl_level3 span {
    display: block;
    margin-bottom: -12px;
    font-size: 16px;
}

@media only screen and (max-width: 768px) {
    .ttl_level3 span {
        margin-bottom: -6px;
        font-size: 13px;
    }
}

.ttl_level3a {
    font-size: 60px;
    font-style: normal;
    font-weight: 500;
    line-height: 1.2;
    letter-spacing: 0.01em;
}

@media only screen and (max-width: 768px) {
    .ttl_level3a {
        font-size: 48px;
    }
}

.ttl_level3b {
    font-size: 54px;
    font-style: normal;
    font-weight: 500;
    line-height: 1.2;
    letter-spacing: -0.01em;
}

@media only screen and (max-width: 768px) {
    .ttl_level3b {
        font-size: 42px;
    }
}

.ttl_level3c {
    margin-top: 180px;
    font-size: 34px;
    font-style: normal;
    font-weight: 500;
    line-height: 1.2;
    letter-spacing: -0.01em;
    margin-bottom: 50px;
}

@media only screen and (max-width: 768px) {
    .ttl_level3c {
        font-size: 20px;
        margin-top: 100px;
    }

    .sp {
        display: none;
    }
}

.ttl_middle {
    font-size: 17px;
    font-style: normal;
    font-weight: 500;
    line-height: 1.5;
    letter-spacing: 0.01em;
}

.ttl_service {
    font-size: 22px;
    font-style: normal;
    font-weight: 400;
    line-height: 1.3;
    letter-spacing: 0.01em;
}

.ttl_service.font_fu {
    font-size: 34px;
    font-style: normal;
    font-weight: 400;
    line-height: 1.5;
    letter-spacing: 0.01em;
}

.ttl_service.font_fu small {
    margin-top: -6px;
}

.ttl_service small {
    display: block;
    margin-top: 3px;
    font-size: 14px;
}

.ttl_lower_level1 {
    position: relative;
    font-size: 90px;
    font-style: normal;
    font-weight: 500;
    line-height: 1;
    letter-spacing: 0.01em;
}

.customer_title {
    font-size: 56px;
}

@media only screen and (max-width: 768px) {
    .ttl_lower_level1 {
        font-size: 62px;
    }

    .customer_title {
        font-size: 33px;
        line-height: 120%;
    }
}

.ttl_lower_level1 span {
    display: block;
    margin-bottom: 8px;
    font-size: 16px;
}

.titile_lower_middle {
    font-size: 26px;
    font-style: normal;
    font-weight: 500;
    line-height: 1.5;
    letter-spacing: -0.01em;
}

@media only screen and (max-width: 768px) {
    .titile_lower_middle {
        font-size: 24px;
    }
}

.titile_lower_middle span {
    display: block;
    margin-bottom: -2px;
    font-size: 16px;
    font-weight: 400;
    opacity: 0.4;
}

@media only screen and (max-width: 768px) {
    .titile_lower_middle span {
        font-size: 14px;
    }
}

.titile_lower_small {
    font-size: 18px;
    font-style: normal;
    font-weight: 500;
    line-height: 1.5;
    letter-spacing: 0.05em;
}

.text_read {
    font-size: 16px;
    font-style: normal;
    font-weight: 400;
    line-height: 1.7;
    letter-spacing: 0.04em;
}

@media only screen and (max-width: 768px) {
    .text_read {
        font-size: 14px;
    }
}

@media only screen and (max-width: 480px) {
    .text_read {
        font-size: 13px;
    }
}

.text_read_l {
    font-size: 17px;
    font-style: normal;
    font-weight: 400;
    line-height: 1.7;
    letter-spacing: 0.04em;
}

@media only screen and (max-width: 768px) {
    .text_read_l {
        font-size: 15px;
    }
}

@media only screen and (max-width: 480px) {
    .text_read_l {
        font-size: 14px;
    }
}

.text_name {
    margin-top: 20px;
    font-size: 27px;
    font-style: normal;
    font-weight: 400;
    line-height: 1.7;
    letter-spacing: 0.04em;
}

.text_name small {
    display: inline-block;
    margin-right: 16px;
    font-size: 13px;
}

.text_read_m {
    font-size: 17px;
    font-style: normal;
    font-weight: 400;
    line-height: 2;
    letter-spacing: 0.04em;
}

@media only screen and (max-width: 768px) {
    .text_read_m {
        font-size: 14px;
    }
}

@media only screen and (max-width: 480px) {
    .text_read_m {
        font-size: 13px;
    }
}

.text_read_s {
    font-size: 15px;
    font-style: normal;
    font-weight: 400;
    line-height: 1.6;
    letter-spacing: 0.03em;
}

@media only screen and (max-width: 768px) {
    .text_read_s {
        font-size: 14px;
    }
}

@media only screen and (max-width: 480px) {
    .text_read_s {
        font-size: 13px;
        text-align: left;
    }
}

.text_read_s strong {
    display: block;
    font-weight: 500;
}

.text_read_s strong small {
    position: relative;
    top: -2px;
    vertical-align: baseline;
    font-size: 11px;
    font-style: normal;
    font-weight: 400;
    line-height: 1.5;
    letter-spacing: 0.05em;
}

.text_read_ss {
    font-size: 13px;
    font-style: normal;
    font-weight: 400;
    line-height: 1.6;
    letter-spacing: 0.03em;
}

@media only screen and (max-width: 768px) {
    .text_read_ss {
        font-size: 12px;
    }
}

@media only screen and (max-width: 480px) {
    .text_read_ss {
        font-size: 11px;
        text-align: left;
    }
}

.text_link {
    font-size: 18px;
    font-style: normal;
    font-weight: 400;
    line-height: 1.5;
    letter-spacing: 0.02em;
    color: #39729b;
    text-decoration: underline;
}

.underline.yellow {
    background: linear-gradient(transparent 50%, #fff500 50%);
}

.ellipsis {
    display: -webkit-box;
    -webkit-line-clamp: 3;
    -webkit-box-orient: vertical;
    overflow: hidden;
    /*IE対策*/
}

.l_fv {
    position: relative;
    -webkit-transition: all 0.5s;
    -moz-transition: all 0.5s;
    -ms-transition: all 0.5s;
    -o-transition: all 0.5s;
    transition: all 0.5s;
}

.l_fv.is_active {
    padding: 46px 40px 0;
}

@media only screen and (max-width: 768px) {
    .l_fv.is_active {
        padding: 20px 20px 0;
    }
}

.l_fv video {
    width: 830px;
}

@media only screen and (max-width: 768px) {
    .l_fv video {
        width: 840px;
        position: absolute;
        top: -120px;
        left: -300px;
        z-index: 1;
    }
}

.l_inner_fv {
    position: relative;
    height: 764px;
    background-image: url("../images/top/bg_fv@2x.png");
    background-repeat: no-repeat;
    background-position: center center;
    background-size: cover;
}

@media only screen and (max-width: 768px) {
    .l_inner_fv {
        height: 910px;
    }
}

.is_visible {
    opacity: 1 !important;
}

.wrap_text_fv {
    position: absolute;
    z-index: 2;
    left: 420px;
    bottom: 90px;
    opacity: 0;
    -webkit-transition: all 0.5s;
    -moz-transition: all 0.5s;
    -ms-transition: all 0.5s;
    -o-transition: all 0.5s;
    transition: all 0.5s;
}

@media only screen and (max-width: 768px) {
    .wrap_text_fv {
        left: 140px;
        bottom: 140px;
    }
}

@media only screen and (max-width: 768px) {
    .pc_only {
        display: none;
    }
}

.sp_only {
    display: none;
}

@media only screen and (max-width: 768px) {
    .sp_only {
        display: block;
    }
}

.text_fv {
    position: relative;
    font-size: 22px;
    font-style: normal;
    font-weight: 700;
    line-height: 1.7;
}

@media only screen and (max-width: 768px) {
    .text_fv {
        padding-right: 0;
        padding-left: 20px;
        font-size: 17px;
    }
}

.text_fv:before {
    content: "";
    position: absolute;
    z-index: 2;
    top: -80px;
    left: -30px;
    height: 120px;
    width: 1px;
    background-color: #000;
}

@media only screen and (max-width: 768px) {
    .text_fv:before {
        display: none;
    }
}

.text_fv:after {
    content: "";
    position: absolute;
    z-index: 2;
    bottom: -26px;
    right: -80px;
    height: 1px;
    width: 320px;
    background-color: #000;
}

.fv_bot {
    margin-top: 20px;
    max-width: 800px;
}

@media only screen and (max-width: 768px) {
    .fv_bot {
        position: relative;
        width: calc(100% + 65px);
        left: -60px;
    }
}

.fv_bot--title {
    font-family: "Yu Gothic Medium", "游ゴシック Medium", "Yu Gothic", "游ゴシック", YuGothic, "ヒラギノ角ゴ Pro W3", "Hiragino Kaku Gothic Pro", "メイリオ", "Meiryo";
    font-size: 42px;
    font-weight: 800;
    color: #41647b;
}

@media only screen and (max-width: 768px) {
    .fv_bot--title {
        font-size: 24px;
    }
}

.fv_bot--txt {
    font-family: "游ゴシック", "Yu Gothic", "游ゴシック", YuGothic, "ヒラギノ角ゴ Pro W3", "Hiragino Kaku Gothic Pro", "メイリオ", "Meiryo";
    font-size: 20px;
    font-weight: 800;
    color: #41647b;
}

@media only screen and (max-width: 768px) {
    .fv_bot--txt {
        font-size: 15px;
    }
}

.wrap_img_fv {
    position: absolute;
    top: calc(50% + 60px);
    left: 80px;
    transform: translateY(-50%);
    z-index: 1;
}

@media only screen and (max-width: 768px) {
    .wrap_img_fv {
        top: calc(50% + 60px);
        left: 10px;
    }
}

.wrap_img_fv img {
    width: 270px;
}

@media only screen and (max-width: 768px) {
    .wrap_img_fv img {
        width: 156px;
    }
}

.logo_header_nav {
    position: absolute;
    z-index: 10;
    top: 28px;
    left: 20px;
}

.fv_taeget_logo {
    position: absolute;
    z-index: 2;
    top: 0;
    left: 0;
}

@media only screen and (max-width: 768px) {
    .fv_taeget_logo {
        display: none;
    }
}

.fv_taeget_logo img {
    width: 158px;
}

.list_header_nav {
    margin-top: 60px;
}

.item_header_nav+.item_header_nav {
    margin-top: 24px;
}

.item_header_nav {
    font-size: 32px;
    font-style: normal;
    font-weight: 600;
    line-height: 1.5;
    letter-spacing: 0.01em;
}

.item_header_nav a {
    color: #fff !important;
}

.item_header_nav small {
    display: block;
    margin-top: -4px;
    font-size: 12px;
}

.wrap_movie {
    position: absolute;
    top: -40px;
    right: 0;
    z-index: 1;
}

@media only screen and (max-width: 768px) {
    .wrap_movie {
        overflow: hidden;
    }
}

.m_mask {
    position: absolute;
    top: 0;
    right: 0;
    z-index: 2;
    -webkit-clip-path: url(#svgPath);
    clip-path: url(#svgPath);
}

@media only screen and (max-width: 768px) {

    .m_mask,
    .svg_mask {
        display: none !important;
    }
}

.text_link {
    color: #4322b8;
    /* font-size: 14px; */
    font-size: 16px;
    font-style: normal;
    font-weight: 400;
    line-height: 1.5;
    letter-spacing: 0.05em;
}

.text_link.underline {
    text-decoration: underline;
}

.js_bg_left {
    position: relative;
}

.js_bg_left:before {
    background: #fff;
    pointer-events: none;
    z-index: 1;
    content: "";
    animation: img-wrap2 2s cubic-bezier(0.4, 0, 0.2, 1) forwards;
    bottom: 0;
    left: 0;
    position: absolute;
    right: 0;
    top: 0;
    z-index: 10;
}

.sec_news {
    position: relative;
    overflow: hidden;
    z-index: 2;
    width: 74%;
    margin: -60px 0 0 auto;
    padding: 38px 8% 48px 6.5%;
    background-color: #fff;
}

.sec_our-clients {
    margin-top: 8%;
}

.sec_our-clients h1 {
    margin: 2% auto;
    font-size: 2.8rem;
    font-weight: 600;
    color: #4c6479 !important;
}

@keyframes img-wrap {
    100% {
        transform: translateX(-100%);
    }
}

@media only screen and (max-width: 768px) {
    .sec_news {
        width: 90%;
        margin: -130px 0 0 auto;
    }
}

.sec_news .wrap_btn.sp_only {
    margin: 20px 0 80px;
}

.inner_news {
    position: relative;
    z-index: 2;
}

.full {
    display: block;
    width: 100%;
}

.wrap_ttl_news .wrap_btn {
    margin: 0 0 0 auto;
}

@media only screen and (max-width: 768px) {
    .wrap_ttl_news .wrap_btn {
        display: none;
    }
}

.m_news {
    margin-top: 20px;
    border-top: 1px solid #ddd;
}

.m_news .item_news {
    position: relative;
    border-bottom: 1px solid #ddd;
}

.m_news .item_news:before {
    content: "";
    position: absolute;
    top: 50%;
    left: 0;
    transform: translateY(-50%);
    z-index: 1;
    width: 0;
    height: 100%;
    background-color: #eee;
    -webkit-transition: all 0.3s;
    -moz-transition: all 0.3s;
    -ms-transition: all 0.3s;
    -o-transition: all 0.3s;
    transition: all 0.3s;
}

.m_news .item_news:hover:before {
    width: 100%;
}

.m_news .target_news {
    position: relative;
    z-index: 2;
    display: block;
    padding: 19px 18px;
    background-image: url("../images/top/ic_arrow_news.svg");
    background-repeat: no-repeat;
    background-position: right 20px center;
    background-size: 48px auto;
    -webkit-transition: all 0.5s;
    -moz-transition: all 0.5s;
    -ms-transition: all 0.5s;
    -o-transition: all 0.5s;
    transition: all 0.5s;
}

@media only screen and (max-width: 768px) {
    .m_news .target_news {
        background-size: 24px auto;
    }
}

.m_news .target_news:hover {
    background-position: right 10px center;
}

.m_news .target_news .date {
    display: inline-block;
    font-size: 14px;
    font-style: normal;
    font-weight: 400;
    line-height: 1.5;
    letter-spacing: 0.01em;
    vertical-align: baseline;
}

.m_news .target_news .ttl_news {
    display: inline-block;
    margin-left: 34px;
    font-size: 16px;
    font-style: normal;
    font-weight: 400;
    line-height: 1.5;
    letter-spacing: 0.03em;
    vertical-align: baseline;
}

@media only screen and (max-width: 768px) {
    .m_news .target_news .ttl_news {
        margin-left: 0;
        font-size: 13px;
    }
}

.l_right {
    width: 100%;
    margin: 0;
    margin-left: calc((100% - 1000px) / 2);
}

@media only screen and (min-width: 769px) and (max-width: 979px) {
    .l_right {
        margin: 0 0 0 10px;
    }
}

@media only screen and (max-width: 768px) {
    .l_right {
        margin: 0;
    }
}

.l_left {
    width: 100%;
    margin: 0;
    margin-right: calc((100% - 1000px) / 2);
}

.l_center {
    margin: 0 0 0 0;
    margin-right: calc((100% - 1000px) / 2);
    background-color: #fff;
}

@media only screen and (max-width: 768px) {
    .l_center {
        margin-right: 0;
    }
}

.l_center .inner {
    max-width: 1000px;
    margin: 0 0 0 auto;
    padding: 6% 9% 6% 0;
}

@media only screen and (max-width: 768px) {
    .l_center .inner {
        padding: 6% 20px 20px 0;
    }
}

.sec_topics {
    margin-top: 8%;
    padding-bottom: 40px;
}

.sec_topics .ttl_level2 {
    margin-bottom: 26px;
}

.cushion {
    padding: 0 20px !important;
}

@media only screen and (max-width: 768px) {
    .cushion {
        padding: 0 20px !important;
    }
}

.sec_service {
    position: relative;
    margin-top: 90px;
    padding-bottom: 88px;
    background-repeat: no-repeat;
    background-position: left -100px bottom 0;
}

.sec_service .l_inner_base {
    position: relative;
    z-index: 1;
}

.sec_service:after {
    content: "";
    position: absolute;
    z-index: 0;
    display: block;
    width: 100%;
    height: 100%;
    top: 0;
    background-image: url("../images/top/bg_onewedge@2x.png");
    background-position-x: -10%;
    background-position-y: 90%;
    background-repeat: repeat;
    background-size: 800px auto;
    background-repeat: no-repeat;
    -webkit-transition: all 0.3s ease-out;
    -moz-transition: all 0.3s ease-out;
    -ms-transition: all 0.3s ease-out;
    transition: all 0.3s ease-out;
    opacity: 0.7;
}

.content_service {
    margin-top: 34px;
}

@media only screen and (max-width: 768px) {
    .content_service {
        margin-top: 16px;
    }
}

.m_service {
    width: calc((100% / 3) - 2%);
    margin-left: 3%;
    margin-bottom: 20px;
    overflow: hidden;
}

@media only screen and (max-width: 768px) {
    .m_service {
        width: 100%;
        margin-left: 0;
    }
}

.m_service:first-child {
    margin-left: 0;
}

.m_service:nth-child(4n),
.m_service:nth-child(7n) {
    margin-left: 0;
}

.m_service:hover .img img {
    transform: scale(1.2);
    transition-duration: 2s;
}

.m_service:hover .img .btn_more {
    transform: scale(1);
}

.m_service a {
    display: block;
}

.m_service .img {
    position: relative;
    overflow: hidden;
}

.m_service .img img {
    width: 100%;
    transition-duration: 0.5s;
}

.m_service .img .t_content {
    position: absolute;
    top: 0;
    width: 100%;
    height: 100%;
    background-color: rgba(40, 36, 36, 0.66);
    padding: 10px;
    display: flex;
    align-items: flex-end;
}

.m_service .img .t_content h5 {
    font-size: 16px;
    color: #fff;
    margin-bottom: 5px;
    text-align: center;
}

.m_service .img .t_content p {
    position: relative;
    color: #fff;
    font-size: 14px;
    font-weight: 400;
    border: 2px solid #fff;
    text-align: center;
    padding: 5px 10px;
}

.m_service .img .btn_more {
    position: absolute;
    z-index: 1;
    right: 10px;
    bottom: 10px;
    width: 100px;
}

.m_service .ttl_service {
    min-height: 80px;
    margin-top: 10px;
}

.m_service .ttl_service.font_fu {
    min-height: 66px;
    margin-top: 6px;
}

.m_service .text_read_s {
    margin-top: 10px;
}

.sec_message {
    position: relative;
    z-index: 2;
    padding-left: 0 !important;
}

.sec_message .inner {
    padding-left: 20px;
}

@media only screen and (max-width: 768px) {
    .sec_message .inner {
        padding-left: 20px;
        padding-bottom: 60px;
    }
}

.content_message {
    margin-top: 22px;
}

@media only screen and (max-width: 768px) {
    .content_message {
        flex-direction: column;
    }
}

@media only screen and (max-width: 768px) {
    .content_message .img {
        order: 1;
        margin-top: 10px;
        margin-bottom: 20px;
        max-width: 200px;
        margin-right: auto;
        margin-left: auto;
    }
}

.content_message .text {
    max-width: 500px;
    margin-right: 48px;
}

@media only screen and (max-width: 768px) {
    .content_message .text {
        order: 2;
        width: 100%;
        max-width: unset;
        margin-right: 0;
    }
}

.wrap_ic {
    width: 100%;
    margin-top: 10px;
}

.wrap_ic .ic {
    width: 48%;
}

.wrap_ic .ic img {
    width: 100%;
}

.sec_mission {
    margin-top: -228px;
    padding-top: 310px;
    padding-bottom: 84px;
    background-color: #ddd;
    background-image: url("../images/top/bg_mission@2x.png");
    background-repeat: no-repeat;
    background-position: center center;
    background-size: cover;
    color: #fff;
}

.sec_mission .ttl_level1 {
    margin-bottom: 40px;
}

.sec_mission .wrap_ttl {
    margin-top: 40px;
}

.ttl_boreder {
    position: relative;
    overflow-x: hidden;
    max-width: 400px;
    margin: 0 auto 4px;
    font-size: 24px;
    font-style: normal;
    font-weight: 400;
    line-height: 1.5;
    letter-spacing: 0.05em;
}

.ttl_boreder span {
    position: relative;
}

.ttl_boreder span:before {
    content: "";
    position: absolute;
    top: 50%;
    left: -410px;
    transform: translateY(-50%);
    z-index: 1;
    width: 400px;
    height: 1px;
    background-color: #fff;
}

.ttl_boreder span:after {
    content: "";
    position: absolute;
    top: 50%;
    right: -410px;
    transform: translateY(-50%);
    z-index: 1;
    width: 400px;
    height: 1px;
    background-color: #fff;
}

.sec_about {
    padding-top: 86px;
    padding-bottom: 146px;
    margin-bottom: -50px;
}

@media only screen and (max-width: 768px) {
    .sec_about {
        padding-top: 110px;
    }
}

.m_about+.m_about {
    margin-top: 126px;
}

.m_about {
    position: relative;
}

.m_about:nth-child(2) {
    margin-top: 126px;
}

.m_about:nth-child(3) {
    margin-top: 190px;
}

.m_about:nth-child(4) {
    margin-top: 240px;
}

@media only screen and (max-width: 768px) {
    .m_about:nth-child(4) {
        margin-bottom: 80px;
    }
}

@media only screen and (max-width: 768px) {
    .m_about:not(:first-child) {
        margin-top: 160px !important;
    }
}

.m_about .img {
    position: relative;
    z-index: 1;
    width: 70%;
    max-width: 608px;
}

@media only screen and (min-width: 769px) {
    .m_about .img {
        min-width: 600px;
    }
}

@media only screen and (max-width: 768px) {
    .m_about .img {
        width: calc(100% - 20px);
        position: absolute;
        left: -20px;
    }
}

.m_about .txt {
    position: absolute;
    right: 0;
    top: 90px;
    z-index: 10;
    width: 70%;
    max-width: 530px;
    padding: 46px 60px 40px;
    background-color: #fff;
}

@media only screen and (max-width: 768px) {
    .m_about .txt {
        position: relative;
        width: calc(100% - 20px);
        margin: 0 0 0 auto;
    }
}

.m_about .txt .text_read {
    margin-top: 16px;
}

.m_about .txt .wrap_btn {
    margin-top: 44px;
}

.m_about.is_right .img {
    -webkit-box-ordinal-group: 2;
    -ms-flex-order: 2;
    -webkit-order: 2;
    order: 2;
    left: auto;
    right: -20px;
    margin: 0 0 0 auto;
}

.m_about.is_right .txt {
    -webkit-box-ordinal-group: 1;
    -ms-flex-order: 1;
    -webkit-order: 1;
    order: 1;
    z-index: 2;
    right: auto;
    left: 0;
    margin: 0 auto 0 0;
}

.autoplay_item+.autoplay_item {
    margin-left: 20px !important;
}

.autoplay_item a {
    display: block;
}

.autoplay_item .text_read_s {
    margin: 10px 0 16px;
}

.slick-prev,
.slick-next {
    position: absolute;
    top: -114px;
    z-index: 10;
    width: 80px;
    height: 80px;
    background-repeat: no-repeat;
    background-position: center center;
    background-size: contain;
    text-transform: capitalize;
    text-indent: -9999px;
}

@media only screen and (max-width: 768px) {

    .slick-prev,
    .slick-next {
        top: -94px;
        width: 70px;
        height: 70px;
    }
}

.slick-prev:hover,
.slick-next:hover {
    cursor: pointer;
}

.slick-prev {
    right: calc(((100% - 1000px) / 2) + 140px);
    background-image: url("../images/top/ic_arrow_l@2x.png");
}

@media only screen and (max-width: 768px) {
    .slick-prev {
        right: 80px;
    }
}

.slick-next {
    right: calc(((100% - 1000px) / 2) + 50px);
    background-image: url("../images/top/ic_arrow_r@2x.png");
}

@media only screen and (max-width: 768px) {
    .slick-next {
        right: 0;
    }
}

.autoplay_item .ttl_middle {
    margin: 10px 0;
}

.inner_autoplay {
    padding: 10px 16px;
}

.slick-slider .slick-track,
.slick-slider .slick-list {
    padding: 0 0 20px;
}

.slick-slide {
    margin: 0 24px;
}

.slick-slide img {
    max-width: 95%;
    margin: 0 auto;
}

.wrap_slide_mv {
    display: none;
}

@media only screen and (max-width: 768px) {
    .wrap_slide_mv {
        position: relative;
        z-index: 2;
        display: block;
        min-width: 800px;
    }
}

.slide_mv {
    display: flex !important;
}

.item_slide_mv img {
    width: 100%;
}

@media only screen and (max-width: 768px) {
    .l_fv {
        position: relative;
        z-index: 1;
        margin-top: -400px;
    }
}

.sec_movie {
    margin-top: 200px;
}

.movie-wrap {
    position: relative;
    padding-bottom: 56.25%;
    height: 0;
    margin-top: 30px;
    overflow: hidden;
}

.movie-wrap iframe {
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
}

#header {
    display: none;
    position: fixed;
    top: 20px;
    left: 0;
    z-index: 1000;
    width: 100%;
    -webkit-transition: all 0.5s;
    -moz-transition: all 0.5s;
    -ms-transition: all 0.5s;
    -o-transition: all 0.5s;
    transition: all 0.5s;
}

.page_lower #header {
    display: block;
}

#header.is-fixed {
    display: block;
}

@media only screen and (max-width: 768px) {
    #header {
        height: 60px;
        background-color: transparent;
    }
}

#header .header_inner {
    width: 98%;
    margin-right: 0;
    margin-left: auto;
    padding: 20px 0 20px 24px;
    background-color: #fff;
    overflow: hidden;
    -o-border-radius: 100px 0 0 100px;
    -webkit-border-radius: 100px 0 0 100px;
    -moz-border-radius: 100px 0 0 100px;
    -ms-border-radius: 100px 0 0 100px;
    border-radius: 100px 0 0 100px;
    -webkit-transition: all 0.5s;
    -moz-transition: all 0.5s;
    -ms-transition: all 0.5s;
    -o-transition: all 0.5s;
    transition: all 0.5s;
}

@media screen and (min-width: 1080px) {
    #header .header_inner {
        width: 96%;
        padding: 20px 24px;
    }
}

@media only screen and (max-width: 768px) {
    #header .header_inner {
        display: none;
    }
}

#header .wrap_btn_header {
    margin: 0 0 0 auto;
}

#header .wrap_btn_header a {
    white-space: nowrap;
}

#header .wrap_btn_header a:not(:first-child) {
    margin-left: 20px;
}

.page_lower.type1 .container_main {
    position: relative;
    z-index: 0;
    margin-bottom: -300px;
}

.page_lower.type1 .bg1 {
    padding-bottom: 100px;
}

.page_lower.type1 #footer {
    position: relative;
    z-index: 1;
}

.wrap_logo_header {
    display: flex;
    align-items: center;
    /* min-width: 120px; */
    height: 48px;
    margin-right: 4px;
}

@media screen and (min-width: 1080px) {
    .wrap_logo_header {
        /* min-width: 146px; */
        margin-right: 20px;
    }
}

.wrap_logo_header .header_logo {
    display: none;
    width: 146px;
}

@media screen and (min-width: 1300px) {
    .wrap_logo_header .header_logo {
        display: inline-block;
    }
}

.wrap_logo_header .header_logo--icon {
    display: inline-block;
    width: 48px;
    min-width: 32px;
}

@media screen and (min-width: 1300px) {
    .wrap_logo_header .header_logo--icon {
        display: none;
    }
}

.wrap_nav_header {
    margin: 0 8px 0 auto;
    font-size: 14px;
}

@media screen and (min-width: 800px) {
    .wrap_nav_header {
        font-size: 16px;
    }
}

@media screen and (min-width: 1024px) {
    .wrap_nav_header {
        font-size: 20px;
    }
}

.wrap_logo_header a {
    display: flex;
    align-items: center;
}

.item_header_menu {
    display: flex;
    align-items: center;
    width: 100%;
}

.item_header_menu:not(:first-child) {
    margin-left: 17px;
}

@media screen and (min-width: 1080px) {
    .item_header_menu:not(:first-child) {
        margin-left: 2.2vw;
    }
}

.item_header_menu:hover {
    opacity: 0.6;
    text-decoration: underline;
}

.item_header_menu a {
    font-style: normal;
    font-weight: 400;
    line-height: 1.5;
    letter-spacing: 0.02em;
    font-weight: 500;
    white-space: nowrap;
}

#navArea {
    display: none;
}

#navArea main {
    position: fixed;
    z-index: 1002;
    top: 0;
    left: 0;
    width: 100%;
    height: 60px;
}

#navArea main .wrap_logo_header {
    position: relative;
    z-index: 1001;
    display: inline-block;
    min-width: unset;
    margin-left: 20px;
}

#navArea main .wrap_logo_header a {
    display: block;
}

#navArea main .wrap_logo_header img {
    width: 136px;
}

@media only screen and (max-width: 768px) {
    #navArea {
        display: block;
    }
}

.wrap_btn_login {
    min-width: 30px;
    margin: 0;
}

.logo_header a {
    display: block;
}

.item_nav_main_sp {
    border-bottom: 1px solid #ddd;
}

.item_nav_main_sp a {
    font-size: 13px;
    font-style: normal;
    font-weight: bold;
    line-height: 1.5;
    letter-spacing: 0.05em;
}

.item_nav_main_sp small {
    display: inline-block;
    margin-left: 6px;
    font-size: 12px;
    font-style: normal;
    font-weight: 400;
    line-height: 1.5;
    letter-spacing: 0.05em;
}

.nav_header_sp {
    display: block;
    position: fixed;
    z-index: 1000;
    top: 0;
    right: 0px;
    bottom: 0;
    width: 100%;
    background-color: #646464;
    overflow-x: hidden;
    overflow-y: auto;
    -webkit-overflow-scrolling: touch;
    transition: 0.5s;
    display: none;
    opacity: 0;
}

.nav_header_sp.visible {
    display: block;
    opacity: 1;
    animation-duration: 0.5s;
    animation-name: fade-in;
    -moz-animation-duration: 0.5s;
    -moz-animation-name: fade-in;
    -webkit-animation-duration: 0.5s;
    -webkit-animation-name: fade-in;
}

.nav_header_sp .inner {
    margin-top: 60px;
    display: none;
    opacity: 0;
    -webkit-transition: all 0.5s;
    -moz-transition: all 0.5s;
    -ms-transition: all 0.5s;
    -o-transition: all 0.5s;
    transition: all 0.5s;
}

.nav_header_sp .wrap_contact_nav {
    margin-top: 40px;
    padding: 20px;
}

.nav_header_sp .wrap_contact_nav .btn_white {
    display: block;
    width: 100%;
}

.open .nav_header_sp {
    top: 0;
}

.open .nav_header_sp .inner.visible {
    display: block;
    opacity: 1;
    animation-duration: 0.5s;
    animation-name: fade-in;
    -moz-animation-duration: 0.5s;
    -moz-animation-name: fade-in;
    -webkit-animation-duration: 0.5s;
    -webkit-animation-name: fade-in;
}

.nav_header_sp .inner {
    position: relative;
    z-index: 1000;
    padding: 20px 0 0;
    color: #fff;
}

@media only screen and (max-width: 768px) {
    .nav_header_sp .inner {
        overflow-y: scroll;
    }
}

@keyframes fade-in {
    0% {
        display: none;
        opacity: 0;
    }

    1% {
        display: block;
        opacity: 0;
    }

    100% {
        display: block;
        opacity: 1;
    }
}

@-moz-keyframes fade-in {
    0% {
        display: none;
        opacity: 0;
    }

    1% {
        display: block;
        opacity: 0;
    }

    100% {
        display: block;
        opacity: 1;
    }
}

@-webkit-keyframes fade-in {
    0% {
        display: none;
        opacity: 0;
    }

    1% {
        display: block;
        opacity: 0;
    }

    100% {
        display: block;
        opacity: 1;
    }
}

.target_nav_main_sp {
    position: relative;
    display: block;
    padding: 18px 40px 18px 0;
    color: #fff;
    font-weight: 500;
}

.target_nav_main_sp:after {
    content: "";
    position: absolute;
    top: 50%;
    right: 8px;
    transform: translateY(-50%);
    z-index: 1;
    width: 20px;
    height: 20px;
    background-image: url("../images/ic_arrow_nav_sp.svg");
    background-repeat: no-repeat;
    background-position: center center;
    background-size: contain;
}

.close_nav_main_sp {
    position: relative;
    display: block;
    padding: 18px 40px 18px 0;
    background-color: #005c49;
    color: #fff;
    font-weight: 500;
    text-align: center;
}

.close_nav_main_sp span {
    position: relative;
    left: 24px;
}

.close_nav_main_sp span:after {
    content: "";
    position: absolute;
    top: 50%;
    left: -22px;
    transform: translateY(-50%);
    z-index: 1;
    width: 12px;
    height: 12px;
    background-image: url("../images/ic_x.svg");
    background-repeat: no-repeat;
    background-position: center center;
    background-size: contain;
}

.toggle_btn {
    display: block;
    position: fixed;
    top: 0px;
    right: 0px;
    width: 60px;
    height: 60px;
    background-color: #fff;
    transform: translate(0, 0);
    transition: all 0.5s;
    cursor: pointer;
    z-index: 1010;
}

.open .toggle_btn {
    right: 0px;
    background-color: #fff;
}

.toggle_btn span {
    display: block;
    position: absolute;
    right: 20px;
    width: 20px;
    height: 2px;
    z-index: 1010;
    background-color: #4c6479;
    transition: all 0.5s;
}

.toggle_btn span:nth-child(1) {
    top: 25px;
}

.toggle_btn span:nth-child(2) {
    top: 30px;
    opacity: 0;
}

.toggle_btn span:nth-child(3) {
    top: 35px;
}

.open .toggle_btn span:nth-child(1) {
    background-color: #4c6479;
    transform: translate(0, 5px) rotate(-45deg);
    animation: unset;
}

.open .toggle_btn span:nth-child(2) {
    background-color: #4c6479;
    opacity: 0;
    animation: unset;
}

.open .toggle_btn span:nth-child(3) {
    background-color: #4c6479;
    transform: translate(0, -5px) rotate(45deg);
    animation: unset;
}

#mask {
    display: none;
}

.open #mask {
    display: block;
    position: fixed;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    background-color: #4c6479;
    background-color: #4c6479;
    opacity: 1;
    z-index: 900;
    cursor: pointer;
    transition: all 0.5s;
}

.bg {
    position: fixed;
    top: 0;
    left: 0;
    z-index: 9999;
    width: 100vw;
    height: 100vh;
    overflow: hidden;
    cursor: wait;
    transition: opacity 0.4s cubic-bezier(0.39, 0.575, 0.565, 1) 0s,
        visibility 0.4s cubic-bezier(0.39, 0.575, 0.565, 1) 0s;
}

.bg:before {
    position: absolute;
    top: 0;
    left: -5%;
    z-index: -1;
    content: "";
    width: 110%;
    height: 180%;
    background: #01a6e7;
    transform-origin: left bottom;
    transform: skewY(-10deg) scale(1, 1);
    transition: transform 0.6s;
    -webkit-transition: all 0.5s;
    -moz-transition: all 0.5s;
    -ms-transition: all 0.5s;
    -o-transition: all 0.5s;
    transition: all 0.5s;
}

.bg:before {
    position: absolute;
    top: 0;
    left: -5%;
    z-index: -1;
    content: "";
    width: 110%;
    height: 180%;
    background: #01a6e7;
    transform-origin: left bottom;
    transform: skewY(-10deg) scale(1, 1);
    transition: transform 0.3s;
    -webkit-transition: all 0.6s;
    -moz-transition: all 0.6s;
    -ms-transition: all 0.6s;
    -o-transition: all 0.6s;
    transition: all 0.6s;
}

.bg.is_open1:before {
    transform-origin: left top;
    transform: skewY(-10deg) scale(1, 0);
    opacity: 0;
}

.bg.is_open2:after {
    transform-origin: left bottom;
    transform: skewY(-10deg) scale(1, 0);
    opacity: 0;
}

.is-fixed {
    position: fixed;
    top: 0;
    left: 0;
    z-index: 2;
    width: 100%;
}

/*keyframe*/
@keyframes textAnime1 {
    0% {
        transform: translateX(0);
    }

    100% {
        transform: translateX(100%);
    }
}

@keyframes textAnime2 {
    0% {
        transform: rotate(0);
    }

    100% {
        transform: rotate(-10deg);
    }
}

@keyframes bgAnime {
    0% {
        opacity: 1;
    }

    99% {
        opacity: 0;
    }

    100% {
        opacity: 0;
        display: none;
    }
}

@keyframes fadeIn {
    0% {
        opacity: 0;
    }

    100% {
        opacity: 1;
    }
}

#footer {
    width: 100%;
    padding: 78px 0 0 0;
    color: #fff;
    text-align: center;
}



#footer a {
    color: #fff;
}

#footer .inner_footer {
    background-color: #646464;
    padding-left: 9%;
    padding-right: 7.5%;
}

@media only screen and (max-width: 768px) {
    #footer .inner_footer {
        padding: 0 20px 0 5%;
    }
}

.content_footer {
    padding: 64px 0 34px;
}

@media only screen and (max-width: 768px) {
    .content_footer {
        flex-direction: column;
    }
}

.content_footer .wrap_btn.sp_only {
    margin-bottom: 30px;
}

@media only screen and (max-width: 768px) {
    .footer_logo {
        margin-bottom: 40px;
    }

    .footer_logo img {
        width: 180px;
    }
}

.footer_logo .wrap_btn {
    margin-top: 52px;
}

.footer_middle {
    margin-left: 11%;
    padding-right: 8vw;
}

@media only screen and (max-width: 768px) {
    .footer_middle {
        margin: 20px 0 40px;
        padding-right: 0;
    }
}

.footer_middle .text_read_l {
    margin-top: -4px;
}

.footer_middle .text_tel {
    margin-top: 2px;
    margin-bottom: 22px;
    text-align: left;
}

.footer_middle .text_tel img,
.footer_middle .text_tel span {
    display: inline-block;
}

.footer_middle .text_tel .ic_tel {
    position: relative;
    top: -2px;
}

.footer_middle .group {
    max-width: 240px;
    margin-top: 4px;
    margin-bottom: 8px;
    /*border: 1px solid #fff;*/
    background: #fff;
    text-align: center;
    padding: 20px 10px;
}

.footer_middle .group a {
    display: block;
}

.footer_middle .group img {
    margin-right: auto;
    margin-left: auto;
}

.footer_right {
    margin: 0 0 0 0;
}

@media only screen and (max-width: 768px) {
    .footer_right {
        width: 100%;
    }
}

@media only screen and (max-width: 768px) {
    .list_footer {
        width: 100%;
    }
}

.list_footer li+li {
    margin-top: 10px;
}

@media only screen and (max-width: 768px) {
    .list_footer li+li {
        margin-left: 20px;
    }
}

.list_footer li {
    text-align: left;
}

@media only screen and (max-width: 768px) {
    .list_footer li {
        display: inline-block;
    }
}

.list_footer li a {
    display: block;
    font-size: 18px;
    font-style: normal;
    font-weight: 400;
    line-height: 1.5;
    letter-spacing: 0.05em;
}

.list_footer li a span {
    position: relative;
}

.list_footer li a span:after {
    content: "";
    position: absolute;
    top: 50%;
    left: -18px;
    transform: translateY(-50%);
    z-index: 1;
    width: 10px;
    height: 1px;
    background-color: #fff;
}

@media only screen and (max-width: 768px) {
    .list_footer li a span:after {
        display: none;
    }
}

.foorer_sns {
    padding: 0 200px 30px 0;
    border-bottom: 1px solid #fff;
}

@media only screen and (max-width: 768px) {
    .foorer_sns {
        padding: 0 0 20px 0;
    }
}

.inner_foorer_sns {
    display: table;
    margin: 0 0 0 auto;
}

@media only screen and (max-width: 768px) {
    .inner_foorer_sns {
        margin: 0 auto 0;
    }
}

.inner_foorer_sns .sns {
    display: inline-block;
    margin: 0 0 0 auto;
    vertical-align: middle;
}

.inner_foorer_sns .sns+.sns {
    margin-left: 30px;
}

.footer_bottom {
    padding: 20px 0px;
}

@media only screen and (max-width: 768px) {
    .footer_bottom {
        flex-direction: column;
    }
}

.text_link+.text_link {
    margin-left: 40px;
}

.text_link a {
    font-size: 14px;
    font-style: normal;
    font-weight: 400;
    line-height: 1.5;
    letter-spacing: 0.05em;
    text-decoration: underline;
}

@media only screen and (max-width: 768px) {
    .text_link a {
        font-size: 12px;
    }

    .footer_bottom .text_link+.text_link {
        margin-left: 15px;
    }
}

.text_link a.en {
    display: inline-block;
    vertical-align: baseline;
    margin-bottom: 4px;
    font-size: 18px;
    letter-spacing: 0.02em;
    line-height: 1.5;
}

@media only screen and (max-width: 768px) {
    .text_cor {
        margin-top: 20px;
    }
}

.text_cor a {
    font-size: 12px;
    font-style: normal;
    font-weight: 400;
    line-height: 1.5;
    letter-spacing: 0.01em;
}

#logo_loader {
    display: block;
    position: fixed;
    top: 0;
    left: 0;
    width: 100%;
    height: 100vh;
    z-index: 1001;
    background-color: #646464;
}

#logo_loader.is_none {
    display: none !important;
}

#logo_loader .f_logo {
    position: absolute;
    top: 0;
    left: 0;
    right: 0;
    bottom: 0;
    margin: auto;
    width: 238px;
    height: 84px;
    text-align: center;
    color: #fff;
    font-size: 30px;
}

#logo_loader .f_logo img {
    width: 100%;
    height: auto;
}

#logo_loader .f_logo:before {
    content: "";
    display: block;
    width: 100%;
    height: 120%;
    background-color: #646464;
    position: absolute;
    top: 0;
    left: 100%;
    animation: loadLogo 1.5s;
}

@keyframes loadLogo {
    0% {
        left: 0;
    }

    50% {
        left: 0;
    }

    100% {
        left: 100%;
    }
}

#logo_loader .f_logo:before {
    animation: loadLogo 1.5s;
}

#logo_loader.open {
    animation-name: slideOut;
    animation-fill-mode: forwards;
    animation-duration: 1.2s;
    animation-delay: 2s;
}

@keyframes slideOut {
    0% {
        transform: translateX(0%);
    }

    50% {
        transform: translateX(0%);
    }

    100% {
        opacity: 0;
    }
}

.wrap_serveice_sub {
    margin-top: 20px;
    padding-bottom: 20px;
    border-bottom: 1px dotted #949494;
}

.wrap_serveice_sub .text_read_ss {
    max-width: 780px;
}

.content_inner {
    max-width: calc(1020px + 2%);
    margin-right: auto;
    margin-left: auto;
    padding-left: 4%;
    padding-right: 4%;
}

.content_inner_l {
    max-width: calc(860px + 2%);
    margin-right: auto;
    margin-left: auto;
    padding-left: 2%;
    padding-right: 2%;
}

.is_visible {
    opacity: 1;
}

.l_inner_base {
    max-width: 1000px;
    margin-right: auto;
    margin-left: auto;
}

.p-index-kv__scroll {
    width: 1px;
    overflow: hidden;
    position: absolute;
    bottom: 0;
    right: 0;
    left: 0;
    z-index: 10;
    margin-right: auto;
    margin-left: auto;
    margin-bottom: -1.66667%;
    padding-top: 5%;
}

.p-index-kv__scroll:before {
    content: "";
    display: block;
    position: absolute;
    top: 0;
    right: 0;
    bottom: 0;
    left: 0;
    background-color: #6d6d6d;
}

.p-index-kv__scroll.is-shown:before {
    -webkit-animation-name: loopScrollBar;
    animation-name: loopScrollBar;
    -webkit-animation-duration: 1s;
    animation-duration: 1s;
    -webkit-animation-iteration-count: infinite;
    animation-iteration-count: infinite;
}

.text_scroll_down {
    margin-top: 56px;
    font-size: 11px;
    font-style: normal;
    font-weight: 400;
    line-height: 1.5;
    letter-spacing: 0.05em;
    text-align: cetner;
}

@media only screen and (max-width: 480px) {
    .text_scroll_down {
        margin-top: 26px;
    }
}

@-webkit-keyframes loopScrollBar {
    0% {
        -webkit-transform: translateY(-100.5%);
        transform: translateY(-100.5%);
    }

    100% {
        -webkit-transform: translateY(100.5%);
        transform: translateY(100.5%);
    }
}

@keyframes loopScrollBar {
    0% {
        -webkit-transform: translateY(-100.5%);
        transform: translateY(-100.5%);
    }

    100% {
        -webkit-transform: translateY(100.5%);
        transform: translateY(100.5%);
    }
}

@-webkit-keyframes showKvImage {
    0% {
        z-index: 2;
        opacity: 0;
        -webkit-transform: scale(1.08);
        transform: scale(1.08);
    }

    10% {
        opacity: 1;
    }

    100% {
        z-index: 1;
        opacity: 1;
        -webkit-transform: scale(1);
        transform: scale(1);
    }
}

@keyframes showKvImage {
    0% {
        z-index: 2;
        opacity: 0;
        -webkit-transform: scale(1.08);
        transform: scale(1.08);
    }

    10% {
        opacity: 1;
    }

    100% {
        z-index: 1;
        opacity: 1;
        -webkit-transform: scale(1);
        transform: scale(1);
    }
}

*,
:after,
:before {
    -webkit-box-sizing: border-box;
    -o-box-sizing: border-box;
    -ms-box-sizing: border-box;
    box-sizing: border-box;
}

.js_bg_red,
.js_bg_blue {
    position: relative;
}

.js_bg_red::before,
.js_bg_blue::before {
    position: absolute;
}

.js_bg_red::before {
    background-color: #ed1d25;
}

.js_bg_blue::before {
    position: absolute;
    background-color: #01a6e7;
}

.js_bg_grey {
    position: relative;
}

.js_bg_grey::before {
    position: absolute;
    background-color: #f5f5f5;
}

.js_bg_white {
    position: relative;
}

.js_bg_white::before {
    position: absolute;
    background-color: #fff;
}

.js_bg_blue::before,
.js_bg_grey::before,
.js_bg_red::before,
.js_bg_white::before {
    height: 100%;
    z-index: 0;
    width: 100%;
    content: "";
    display: block;
}

.js_bg_grey::before,
.js_bg_red::before,
.js_bg_white::before {
    height: 100%;
    z-index: 0;
    width: 100%;
    content: "";
    display: block;
}

.js_split_txt .s_t {
    display: inline-block;
}

.js_split_txt.fadetxt .s_t {
    -webkit-transition: all 1s;
    transition: all 1s;
    opacity: 0;
}

.js_split_txt.fadetxt.txt_show {
    visibility: visible;
}

.js_split_txt.fadetxt.txt_show .s_t {
    opacity: 1;
}

.js_split_txt.fadetxt_up {
    visibility: hidden;
}

.js_split_txt.fadetxt_up .s_t {
    -webkit-transition: all 1s;
    transition: all 1s;
    opacity: 0;
    -webkit-transform: translateY(40px);
    -ms-transform: translateY(40px);
    transform: translateY(40px);
}

.js_split_txt.fadetxt_up.txt_show {
    visibility: visible;
}

.js_split_txt.fadetxt_up.txt_show .s_t {
    -webkit-transform: translateY(0);
    -ms-transform: translateY(0);
    transform: translateY(0);
    opacity: 1;
}

.js_bg_left::before {
    -webkit-transition: -webkit-transform 0.5s cubic-bezier(0.41, 0.05, 0.94, 0.65);
    transition: -webkit-transform 0.5s cubic-bezier(0.41, 0.05, 0.94, 0.65);
    transition: transform 0.5s cubic-bezier(0.41, 0.05, 0.94, 0.65);
    transition: transform 0.5s cubic-bezier(0.41, 0.05, 0.94, 0.65),
        -webkit-transform 0.5s cubic-bezier(0.41, 0.05, 0.94, 0.65);
    -webkit-transform-origin: left;
    -ms-transform-origin: left;
    transform-origin: left;
    -webkit-transform: scaleX(1);
    -ms-transform: scaleX(1);
    transform: scaleX(1);
}

.js_bg_right::before,
.js_bg_top::before {
    -webkit-transition: -webkit-transform 0.8s cubic-bezier(0.41, 0.05, 0.94, 0.65);
}

.js_bg_left.js_bg_done::before {
    -webkit-transform: scaleX(0);
    -ms-transform: scaleX(0);
    transform: scaleX(0);
}

.js_bg_right::before {
    transition: -webkit-transform 0.8s cubic-bezier(0.41, 0.05, 0.94, 0.65);
    transition: transform 0.8s cubic-bezier(0.41, 0.05, 0.94, 0.65);
    transition: transform 0.8s cubic-bezier(0.41, 0.05, 0.94, 0.65),
        -webkit-transform 0.8s cubic-bezier(0.41, 0.05, 0.94, 0.65);
    -webkit-transform-origin: right;
    -ms-transform-origin: right;
    transform-origin: right;
    -webkit-transform: scaleX(1);
    -ms-transform: scaleX(1);
    transform: scaleX(1);
}

.js_bg_right.js_bg_done::before {
    -webkit-transform: scaleX(0);
    -ms-transform: scaleX(0);
    transform: scaleX(0);
}

.js_bg_top::before {
    transition: -webkit-transform 0.8s cubic-bezier(0.41, 0.05, 0.94, 0.65);
    transition: transform 0.8s cubic-bezier(0.41, 0.05, 0.94, 0.65);
    transition: transform 0.8s cubic-bezier(0.41, 0.05, 0.94, 0.65),
        -webkit-transform 0.8s cubic-bezier(0.41, 0.05, 0.94, 0.65);
    -webkit-transform-origin: top;
    -ms-transform-origin: top;
    transform-origin: top;
    -webkit-transform: scaleY(0);
    -ms-transform: scaleY(0);
    transform: scaleY(0);
}

.js_bg_top.js_bg_done::before {
    -webkit-transform: scaleY(1);
    -ms-transform: scaleY(1);
    transform: scaleY(1);
}

.js_bg_bottom::before {
    -webkit-transition: -webkit-transform 0.8s cubic-bezier(0.41, 0.05, 0.94, 0.65);
    transition: -webkit-transform 0.8s cubic-bezier(0.41, 0.05, 0.94, 0.65);
    transition: transform 0.8s cubic-bezier(0.41, 0.05, 0.94, 0.65);
    transition: transform 0.8s cubic-bezier(0.41, 0.05, 0.94, 0.65),
        -webkit-transform 0.8s cubic-bezier(0.41, 0.05, 0.94, 0.65);
    -webkit-transform-origin: bottom;
    -ms-transform-origin: bottom;
    transform-origin: bottom;
    -webkit-transform: scaleY(0);
    -ms-transform: scaleY(0);
    transform: scaleY(0);
}

.js_bg_bottom.js_bg_done::before {
    -webkit-transform: scaleY(1);
    -ms-transform: scaleY(1);
    transform: scaleY(1);
}

.fademove {
    opacity: 0;
    -webkit-transition: all 1.2s cubic-bezier(0.3, 0.1, 0.3, 1);
    transition: all 1.2s cubic-bezier(0.3, 0.1, 0.3, 1);
    -webkit-transform: translate3d(0, 40px, 0);
    transform: translate3d(0, 40px, 0);
    backface-visibility: hidden;
}

.fademove1 {
    opacity: 0;
    -webkit-transition: all 1.2s cubic-bezier(0.3, 0.1, 0.3, 1);
    transition: all 1.2s cubic-bezier(0.3, 0.1, 0.3, 1);
    -webkit-transform: translate3d(0, -40px, 0);
    transform: translate3d(0, -40px, 0);
    backface-visibility: hidden;
}

.fademove_show {
    opacity: 1;
    -webkit-transform: translate3d(0, 0, 0);
    transform: translate3d(0, 0, 0);
}

.transparent {
    opacity: 0;
}

.lower_base {
    position: relative;
}

.l-mv_lower {
    position: relative;
    z-index: 1;
    width: 100%;
    max-width: 1200px;
    min-height: 460px;
    overflow: hidden;
}

@media only screen and (max-width: 768px) {
    .l-mv_lower {
        min-height: 250px;
    }
}

.img_mv_lower {
    position: absolute;
    top: 0;
    right: 0;
    z-index: 0;
    width: 68%;
    min-width: 720px;
    max-width: 816px;
}

@media only screen and (max-width: 768px) {
    .img_mv_lower {
        width: 74%;
        min-width: 260px;
        max-width: 290px;
        height: auto;
    }
}

.l-wrap_content_lower {
    position: relative;
    height: 100%;
    width: calc(100% - 95px);
    margin: 0 0 0 auto;
}

@media only screen and (max-width: 768px) {
    .l-wrap_content_lower {
        width: calc(100% - 20px);
    }
}

.l-wrap_content_lower.bg1 {
    background-image: url("../images/news/bg_news@2x.jpg");
    background-repeat: no-repeat;
    background-position: center center;
    background-size: cover;
}

.l-wrap_content_lower.base {
    position: relative;
    z-index: 2;
    top: -80px;
}

@media only screen and (max-width: 768px) {
    .l-wrap_content_lower.base {
        top: -48px;
    }
}

.l-wrap_content_lower.is_sample {
    min-height: 900px;
    background-color: #fff;
}

.wrapper_content_lower {
    padding: 34px 12% 0 6%;
}

@media only screen and (max-width: 768px) {
    .wrapper_content_lower {
        padding: 34px 8% 0 4%;
    }
}

.wrapper_content_lower.narrow {
    max-width: 1180px;
    padding: 34px 0 0 6%;
}

@media only screen and (max-width: 768px) {
    .wrapper_content_lower.narrow {
        padding: 34px 8% 0 4%;
    }
}

.wrapper_content_narrow {
    max-width: calc(700px + 2%);
    margin-right: auto;
    margin-left: auto;
    padding: 0 2%;
}

@media only screen and (max-width: 768px) {
    .m-body_news {
        flex-direction: column;
    }
}

.m-body_news .title {
    min-width: 320px;
    max-width: 320px;
}

.m-body_news .detail {
    width: 100%;
    padding-top: 24px;
    padding-left: 40px;
}

@media only screen and (max-width: 768px) {
    .m-body_news .detail {
        padding-left: 0;
    }
}

.m-body_news .detail .text_read {
    margin-bottom: 24px;
}

@media only screen and (max-width: 768px) {
    .m-body_news .detail iframe {
        width: 100%;
    }
}

.list_news .item_news {
    padding: 60px 0 60px;
}

@media only screen and (max-width: 768px) {
    .list_news .item_news {
        padding: 0;
    }
}

.list_news .item_news+.item_news {
    margin-top: 40px;
    padding-top: 40px;
    border-top: 1px dotted #ddd;
}

.m-pager {
    display: table;
    margin-top: 40px;
    margin-right: auto;
    margin-left: auto;
}

.m-pager .list_pager .item_pager {
    margin: 0 5px;
}

.m-pager .list_pager .item_pager a {
    height: 40px;
    width: 40px;
    border: 1px solid #78899a;
    color: #78899a;
    -o-border-radius: 100px;
    -webkit-border-radius: 100px;
    -moz-border-radius: 100px;
    -ms-border-radius: 100px;
    border-radius: 100px;
    white-space: nowrap;
    font-size: 15px;
    font-style: normal;
    font-weight: 400;
    line-height: 1.5;
    letter-spacing: 0.05em;
}

.m-pager .list_pager .item_pager a:hover,
.m-pager .list_pager .item_pager a.is_active {
    background-color: #78899a;
    color: #fff;
}

.content_base {
    padding-top: 40px;
    padding-bottom: 80px;
}

@media only screen and (max-width: 768px) {
    .content_base {
        padding-top: 0;
    }
}

.content_base .intro .list_privacy {
    margin-top: 20px;
}

.content_base .wrap_text_corp {
    margin-top: 32px;
    margin-bottom: 60px;
}

.content_base .text_read {
    display: block;
}

.content_base .titile_lower_middle {
    margin-bottom: 20px;
}

.list_privacy {
    margin-left: 40px;
}

.list_privacy li+li {
    margin-top: 6px;
}

.list_privacy_main {
    margin-left: 40px;
    color: #4c6479;
    font-size: 26px;
    font-style: normal;
    font-weight: 400;
    line-height: 1.5;
    letter-spacing: 0.05em;
}

@media only screen and (max-width: 768px) {
    .list_privacy_main {
        font-size: 24px;
    }
}

.list_privacy_main li+li {
    margin-top: 32px;
}

.list_privacy_main li .titile_lower_middle {
    margin-bottom: 8px;
}

.list_privacy_main .text_read {
    line-height: 1.5;
}

.list_privacy_main .text_read+.text_read {
    margin-top: 12px;
}

.text_read.border_bottom {
    display: block;
    margin-top: 26px;
    margin-bottom: 10px;
    padding-bottom: 8px;
    border-bottom: 1px dotted #c2c2c2;
}

.content_contact .intro .titile_lower_small {
    margin-top: 30px;
    margin-bottom: -20px;
    text-align: center;
}

.content_contact .intro .img_intro {
    display: table;
    margin: 0 auto;
    text-align: center;
}

@media only screen and (max-width: 768px) {
    .content_contact .intro .img_intro {
        margin: 40px auto 0;
    }
}

.content_contact .intro .img_intro img {
    margin-right: auto;
    margin-left: auto;
}

@media only screen and (max-width: 768px) {
    .content_contact .intro .img_intro img {
        width: 106px;
    }
}

.content_contact .intro .text_read {
    margin: 60px 0 80px;
    text-align: center;
}

.wrap_des {
    margin-bottom: 6px;
}

.wrap_des span {
    vertical-align: middle;
    font-size: 13px;
    font-style: normal;
    font-weight: 400;
    line-height: 1.4;
    letter-spacing: 0.05em;
    white-space: nowrap;
}

.wrap_des .text_label {
    min-width: 150px;
    font-weight: 500;
    opacity: 0.5;
}

.wrap_des .text_req {
    font-size: 12px;
    padding: 1px 8px;
    background-color: #e24a4a;
    color: #fff;
}

.wrap_form {
    margin-bottom: 60px;
}

.wrap_form .wrap_check {
    margin: 20px;
    text-align: center;
}

.wrap_form .wrap_check a {
    color: #437eb9;
    text-decoration: underline;
}

.wrap_form .wrap_btn {
    margin-top: 60px;
}

.wrap_form .btn_st {
    width: 100%;
    padding-top: 14px;
    padding-bottom: 14px;
    font-size: 15px;
    font-style: normal;
    font-weight: 400;
    line-height: 1.5;
    letter-spacing: 0.05em;
}

.text_checkbox {
    font-size: 13px;
    font-style: normal;
    font-weight: 400;
    line-height: 1.5;
    letter-spacing: 0.05em;
}

.line_input .text_error {
    display: none;
    margin-top: 6px;
    color: #e24a4a;
    font-size: 12px;
    font-style: normal;
    font-weight: 400;
    line-height: 1.5;
    letter-spacing: 0.05em;
}

.line_input.error .text_error {
    display: block;
}

.line_input input,
.line_input textarea,
.line_input .text_confirm {
    width: 100%;
    padding: 16px;
    background-color: #fff;
    font-size: 15px;
    font-style: normal;
    font-weight: 400;
    line-height: 1.5;
    letter-spacing: 0.05em;
}

.line_input+.line_input {
    margin-top: 40px;
}

::placeholder {
    color: #bfbfbf;
}

.bg_none {
    padding-left: 0 !important;
    background: none !important;
    border-bottom: 1px solid #ddd;
}

button:hover {
    cursor: pointer;
}

.btn_back {
    display: table !important;
    width: auto !important;
    min-width: 220px;
    margin: 20px auto 0;
    padding: 12px !important;
    background-image: url("../images/contact/ic_arrow_l@2x.png");
    background-repeat: no-repeat;
    background-position: center left 20px;
    background-size: 32px auto;
    border: 1px solid #232323;
    font-size: 14px !important;
    font-style: normal;
    font-weight: 400;
    line-height: 1.5;
    letter-spacing: 0.05em;
}

.content_company {
    margin-bottom: 60px;
}

.content_company .table_base {
    margin-top: 50px;
}

.table_base {
    width: 100%;
}

.table_base tr {
    border-bottom: 1px solid #ddd;
}

.table_base th,
.table_base td {
    padding: 20px 20px;
    font-size: 16px;
    font-style: normal;
    font-weight: 400;
    line-height: 1.5;
    letter-spacing: 0.05em;
    text-align: left;
}

.table_base th small,
.table_base td small {
    font-size: 14px;
    display: inline-block;
    vertical-align: middle;
    opacity: 0.8;
}

.table_base th {
    width: 18%;
    min-width: 60px;
    max-width: 120px;
    font-weight: 500;
    white-space: nowrap;
}

.table_base .client {
    position: relative;
    padding-right: 60px;
}

@media only screen and (max-width: 768px) {
    .table_base .client {
        padding-right: 0;
    }
}

.table_base .client ul {
    display: flex;
    flex-wrap: wrap;
}

.table_base .client ul li {
    width: 50%;
    padding-left: 10px;
    position: relative;
}

@media only screen and (max-width: 768px) {
    .table_base .client ul li {
        width: 100%;
    }
}

.table_base .client ul li:before {
    content: "";
    width: 2px;
    height: 2px;
    border-radius: 50%;
    background: #000;
    position: absolute;
    left: 0;
    top: 13px;
}

.table_base .client .client--com {
    position: absolute;
    bottom: 20px;
    right: 0;
}

@media only screen and (max-width: 768px) {
    .table_base .client .client--com {
        position: static;
        margin-top: 20px;
    }
}

.table_base .client .client--com small {
    display: block;
}

.content_pri {
    margin-top: 20px;
    padding: 10px;
    border: 1px solid #eee;
    background-color: #fff;
}

@media only screen and (max-width: 768px) {
    .content_pri {
        flex-direction: column;
    }
}

.content_pri .text {
    margin-left: 40px;
}

@media only screen and (max-width: 768px) {
    .content_pri .text {
        margin-left: 0;
    }
}

.sec_office {
    margin-top: 180px;
}

@media only screen and (max-width: 768px) {
    .sec_office .wrap_title {
        flex-direction: column;
    }
}

.sec_office .wrap_title .text_read {
    margin-top: 28px;
    margin-left: 60px;
}

@media only screen and (max-width: 768px) {
    .sec_office .wrap_title .text_read {
        margin-top: 4px;
        margin-left: 0;
        margin-bottom: 12px;
    }
}

.gmap {
    height: 0;
    overflow: hidden;
    padding-bottom: 56.25%;
    position: relative;
}

.gmap iframe {
    position: absolute;
    left: 0;
    top: 0;
    height: 100%;
    width: 100%;
}

.content_business .intro .text_read_l {
    text-align: center;
}

.m-business {
    margin-bottom: 60px;
}

.m-business .wrapper_content_lower {
    padding: 34px 12% 60px 40px;
    margin-left: 6%;
    background-color: #fff;
}

@media only screen and (max-width: 768px) {
    .m-business .wrapper_content_lower {
        padding: 34px 6% 60px 4%;
        margin-left: 4%;
    }
}

.m-business .wrapper_content_lower .inner {
    position: relative;
    background-color: #fff;
}

.m-business .wrapper_content_lower .inner .ttl_level2 {
    position: relative;
    display: table;
    width: auto;
    margin: 0 auto -40px 0;
    background-color: #fff;
}

.m-business .wrapper_content_lower .inner img {
    width: 100%;
}

.m-business .wrapper_content_lower .inner .text_read {
    margin-top: 16px;
}

.wrap_m-business {
    margin-bottom: 160px;
}

@media only screen and (max-width: 768px) {
    .wrap_m-business {
        margin-top: -40px;
    }
}

.sec_service.service {
    margin-top: 0;
    margin-bottom: 40px;
}

@media only screen and (max-width: 768px) {
    .sec_service.service {
        padding: 0 !important;
    }
}

.sec_service.service .content_service {
    justify-content: space-between;
    align-items: flex-start;
}

.sec_service.service .m_service {
    width: calc((100% / 2) - 30px);
    margin-left: 0;
}

@media only screen and (max-width: 768px) {
    .sec_service.service .m_service {
        width: 100%;
    }
}

/*.sec_service.service .m_service:nth-child(even) {
  margin-top: 80px;
}*/

@media only screen and (max-width: 768px) {
    .sec_service.service .m_service:nth-child(even) {
        margin-top: 0;
    }
}

.content_recruite {
    margin-bottom: 80px;
}

.content_recruite .catch .ttl_level3a {
    margin-bottom: 20px;
}

.content_recruite .intro1 {
    margin-top: 60px;
}

@media only screen and (max-width: 768px) {
    .content_recruite .intro1 {
        flex-direction: column;
    }
}

@media only screen and (max-width: 768px) {
    .content_recruite .intro1 .content_box_l iframe {
        width: 100% !important;
    }
}

.content_recruite .intro1 .content_box_l .ttl_level2 {
    margin-bottom: 16px;
}

.content_recruite .intro1 .content_box_r {
    margin: 0 auto 0 40px;
}

@media only screen and (max-width: 768px) {
    .content_recruite .intro1 .content_box_r {
        margin: 30px auto 60px;
    }
}

.mt_20 {
    margin-top: 20px !important;
}

.mt_32 {
    margin-top: 32px !important;
}

.text_read small {
    font-size: 12px;
    font-style: normal;
    font-weight: 400;
    line-height: 1.5;
    letter-spacing: 0.05em;
}

.opacity0 {
    opacity: 0;
    visibility: hidden;
}

a:hover,
button:hover {
    cursor: pointer !important;
}

.wrap_contact {
    display: flex;
    align-items: center;
    margin-left: 8px;
}

@media screen and (min-width: 1080px) {
    .wrap_contact {
        display: flex;
        align-items: center;
        margin-left: 16px;
    }
}

.wrap_contact .btn_black {
    padding: 4px 24px;
    font-size: 14px;
}

@media screen and (min-width: 800px) {
    .wrap_contact .btn_black {
        padding: 4px 24px;
        font-size: 16px;
    }
}

@media screen and (min-width: 1024px) {
    .wrap_contact .btn_black {
        padding: 8px 32px;
        font-size: 20px;
    }
}

.wrap_header_snsicon {
    display: flex;
    align-items: center;
    margin-left: 8px;
    width: 19px;
    height: auto;
}

@media screen and (min-width: 1080px) {
    .wrap_header_snsicon {
        margin-left: 32px;
    }
}

.wrap_header_snsicon img {
    min-width: 24px;
}

@media screen and (min-width: 800px) {
    .wrap_header_snsicon img {
        min-width: 24px;
    }
}

@media screen and (min-width: 1024px) {
    .wrap_header_snsicon img {
        min-width: 32px;
    }
}

.btn_black {
    padding: 12px 54px;
    background-color: #000;
    color: #fff;
    -o-border-radius: 100px;
    -webkit-border-radius: 100px;
    -moz-border-radius: 100px;
    -ms-border-radius: 100px;
    border-radius: 100px;
    font-size: 20px;
    font-style: normal;
    font-weight: 400;
    line-height: 1.5;
    letter-spacing: 0.01em;
    -webkit-transition: all 0.5s;
    -moz-transition: all 0.5s;
    -ms-transition: all 0.5s;
    -o-transition: all 0.5s;
    transition: all 0.5s;
}

.btn_black:hover {
    background-color: #838383;
}

.btn_white {
    padding: 12px 54px;
    background-color: #fff;
    color: #000;
    -o-border-radius: 100px;
    -webkit-border-radius: 100px;
    -moz-border-radius: 100px;
    -ms-border-radius: 100px;
    border-radius: 100px;
    font-size: 20px;
    font-style: normal;
    font-weight: 400;
    line-height: 1.5;
    letter-spacing: 0.01em;
    -webkit-transition: all 0.5s;
    -moz-transition: all 0.5s;
    -ms-transition: all 0.5s;
    -o-transition: all 0.5s;
    transition: all 0.5s;
}

.btn_white:hover {
    background-color: #838383;
}

.btn_st {
    display: block;
    padding: 10px 20px;
    -o-border-radius: 100px;
    -webkit-border-radius: 100px;
    -moz-border-radius: 100px;
    -ms-border-radius: 100px;
    border-radius: 100px;
    white-space: nowrap;
    text-align: center;
    color: #fff;
}

.btn_st:disabled {
    opacity: 0.4;
}

.btn_st.bg_yellow {
    background-color: #cc9c30;
    -webkit-transition: all 0.5s;
    -moz-transition: all 0.5s;
    -ms-transition: all 0.5s;
    -o-transition: all 0.5s;
    transition: all 0.5s;
}

.btn_st.bg_yellow:hover {
    background-color: #eaaf2b;
}

.btn_st.bg_white {
    width: 100%;
    background-color: #fff;
    color: #000 !important;
    -webkit-transition: all 0.5s;
    -moz-transition: all 0.5s;
    -ms-transition: all 0.5s;
    -o-transition: all 0.5s;
    transition: all 0.5s;
    font-size: 20px;
    font-style: normal;
    font-weight: 400;
    line-height: 1.5;
    letter-spacing: 0.02em;
}

.btn_st.bg_white:hover {
    background-color: #bfbebd;
}

.btn_st.arrow {
    position: relative;
}

.btn_st.arrow:after {
    content: "";
    position: absolute;
    top: 50%;
    right: 20px;
    transform: translateY(-50%);
    z-index: 1;
    width: 36px;
    height: 12px;
    background-image: url("../images/top/ic_arrow.svg");
    background-repeat: no-repeat;
    background-position: center center;
    background-size: contain;
    -webkit-transition: all 0.5s;
    -moz-transition: all 0.5s;
    -ms-transition: all 0.5s;
    -o-transition: all 0.5s;
    transition: all 0.5s;
}

.btn_st.arrow:hover:after {
    right: 10px;
}

/* Common button styles */
.btn_base {
    float: left;
    min-width: 200px;
    display: block;
    margin: 1em;
    border: none;
    background: none;
    color: inherit;
    position: relative;
    z-index: 1;
    white-space: nowrap;
    text-align: center;
    -webkit-backface-visibility: hidden;
    -moz-osx-font-smoothing: grayscale;
}

.btn_base:hover {
    cursor: pointer;
}

.btn_base:focus {
    outline: none;
}

.btn_base>span {
    vertical-align: middle;
}

/* Text color adjustments (we could stick to the "inherit" but that does not work well in Safari) */
.bg-1.btn_base {
    color: #cc9c30;
    border-color: #cc9c30;
}

/* Sizes */
.button--size-s {
    font-size: 14px;
}

.button--size-m {
    font-size: 16px;
}

.button--size-l {
    font-size: 18px;
}

/* Typography and Roundedness */
.button--text-upper {
    letter-spacing: 2px;
    text-transform: uppercase;
}

.button--text-thin {
    font-weight: 300;
}

.button--text-medium {
    font-weight: 500;
}

.button--text-thick {
    font-weight: 600;
}

.button--round-s {
    border-radius: 5px;
}

.button--round-m {
    border-radius: 15px;
}

.button--round-l {
    border-radius: 40px;
}

/* Borders */
.button--border-thin {
    border: 1px solid;
}

.button--border-medium {
    border: 2px solid;
}

.button--border-thick {
    border: 3px solid;
}

/* Individual button styles */
/* Winona */
.button--winona {
    overflow: hidden;
    padding: 0;
    -webkit-transition: border-color 0.3s, background-color 0.3s;
    transition: border-color 0.3s, background-color 0.3s;
    -webkit-transition-timing-function: cubic-bezier(0.2, 1, 0.3, 1);
    transition-timing-function: cubic-bezier(0.2, 1, 0.3, 1);
}

.button--winona::after {
    content: attr(data-text);
    position: absolute;
    width: 100%;
    height: 100%;
    top: 0;
    left: 0;
    opacity: 0;
    color: #cc9c30;
    -webkit-transform: translate3d(0, 25%, 0);
    transform: translate3d(0, 25%, 0);
}

.button--winona>span {
    display: block;
}

.button--winona.button--inverted {
    color: #fff;
}

.button--winona.button--inverted:after {
    color: #fff;
}

.button--winona::after,
.button--winona>span {
    padding: 1em 2em;
    -webkit-transition: -webkit-transform 0.3s, opacity 0.3s;
    transition: transform 0.3s, opacity 0.3s;
    -webkit-transition-timing-function: cubic-bezier(0.2, 1, 0.3, 1);
    transition-timing-function: cubic-bezier(0.2, 1, 0.3, 1);
}

.button--winona:hover {
    border-color: #cc9c30;
    background-color: #cc9c30;
    color: #fff;
}

.button--winona.button--inverted:hover {
    border-color: #cc9c30;
    background-color: #cc9c30;
}

.button--winona:hover::after {
    color: #fff;
    opacity: 1;
    -webkit-transform: translate3d(0, 0, 0);
    transform: translate3d(0, 0, 0);
}

.button--winona:hover>span {
    opacity: 0;
    -webkit-transform: translate3d(0, -25%, 0);
    transform: translate3d(0, -25%, 0);
}

/* Ujarak */
.button--ujarak {
    -webkit-transition: border-color 0.4s, color 0.4s;
    transition: border-color 0.4s, color 0.4s;
}

.button--ujarak::before {
    content: "";
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    background: #cc9c30;
    z-index: -1;
    opacity: 0;
    -webkit-transform: scale3d(0.7, 1, 1);
    transform: scale3d(0.7, 1, 1);
    -webkit-transition: -webkit-transform 0.4s, opacity 0.4s;
    transition: transform 0.4s, opacity 0.4s;
    -webkit-transition-timing-function: cubic-bezier(0.2, 1, 0.3, 1);
    transition-timing-function: cubic-bezier(0.2, 1, 0.3, 1);
}

.button--ujarak.button--round-s::before {
    border-radius: 2px;
}

.button--ujarak.button--inverted::before {
    background: #7986cb;
}

.button--ujarak,
.button--ujarak::before {
    -webkit-transition-timing-function: cubic-bezier(0.2, 1, 0.3, 1);
    transition-timing-function: cubic-bezier(0.2, 1, 0.3, 1);
}

.button--ujarak:hover {
    color: #fff;
    border-color: #37474f;
}

.button--ujarak.button--inverted:hover {
    color: #fff;
    border-color: #fff;
}

.button--ujarak:hover::before {
    opacity: 1;
    -webkit-transform: translate3d(0, 0, 0);
    transform: translate3d(0, 0, 0);
}

.bg_blue {
    background-color: #002060;
}

.bg_white {
    background-color: #fff;
}

.bg_black {
    background-color: #000;
}

.flex {
    display: flex;
}

.wrap {
    flex-wrap: wrap;
}

.nowrap {
    flex-wrap: nowrap;
}

.center-x {
    -webkit-box-pack: center;
    -ms-flex-pack: center;
    justify-content: center;
}

.center-y {
    -webkit-box-align: center;
    -ms-flex-align: center;
    align-items: center;
}

.between {
    justify-content: space-between;
}

.start {
    -webkit-box-align: start;
    -ms-flex-align: start;
    align-items: flex-start;
}

.align-center {
    align-self: center;
}

.justify-center {
    justify-content: center;
    -webkit-box-pack: center;
    -ms-flex-pack: center;
}

.column {
    flex-direction: column;
}

.justify-between {
    justify-content: space-between;
}

.push-r {
    margin-right: auto;
}

.ellipsis {
    position: relative;
    height: 3em;
    overflow: hidden;
}

.ellipsis:before {
    content: "･･";
    bottom: 0;
    right: 0;
}

.ellipsis:after {
    content: "";
    width: 100%;
    height: 100%;
}

.ellipsis:before,
.ellipsis:after {
    position: absolute;
    background: #fff;
}

.cf {
    zoom: 1;
}

.cf:after {
    content: "";
    display: table;
    clear: both;
    visibility: hidden;
}

.text_center {
    text-align: center;
}

.text_left {
    text-align: left;
}

.text_right {
    text-align: right;
}

.sp_only {
    display: none;
}

@media only screen and (max-width: 768px) {
    .sp_only {
        display: block;
    }
}

.pc_only {
    display: block;
}

@media only screen and (max-width: 768px) {
    .pc_only {
        display: none;
    }
}

.is_none {
    display: none;
    z-index: -1;
    pointer-events: none;
    opacity: 0;
    visibility: hidden;
}

.bg_base {
    background-repeat: no-repeat;
    background-position: center center;
    background-size: cover;
}

.hidden {
    overflow: hidden;
}

.shadow1 {
    -webkit-transition: all 0.5s;
    -moz-transition: all 0.5s;
    -ms-transition: all 0.5s;
    -o-transition: all 0.5s;
    transition: all 0.5s;
    box-shadow: 2px -1px 10px 6px #b5b5b51e;
    -moz-box-shadow: 2px -1px 10px 6px #b5b5b51e;
    -webkit-box-shadow: 2px -1px 10px 6px #b5b5b51e;
}

.shadow2 {
    box-shadow: 16px 8px 16px 2px #0000000e;
    -moz-box-shadow: 16px 8px 16px 2px #0000000e;
    -webkit-box-shadow: 16px 8px 16px 2px #0000000e;
}

.ic_blank {
    position: relative;
}

.ic_blank:after {
    content: "";
    position: relative;
    top: 2px;
    display: inline-block;
    vertical-align: baseline;
    width: 16px;
    height: 16px;
    margin-left: 4px;
    background-image: url("data:img/png;base64,iVBORw0KGgoAAAANSUhEUgAAABwAAAAWCAYAAADTlvzyAAAB90lEQVRIib2VO2sUYRSGn5nZbLKaoAYUG0FMk5Q2IWJnZSn4O/wr+38EGzsrLcQL2KQxCUElIeS2cWblDe+Bb1ezc0nigWF2v5lznu9c5v2y4XDIDHsCvAKeznrpAst85cAcUAD7vRqnM+AEOPb/cQugQIo/AJaABf2uA+4Cb4Hv3m3ZEFYaKNh9YB1Y1VrsINKvphwPgXfApyRQXVaqwqnvymrFJb2j+D2T+zMyKByIBiUtvGkB94Ffhuo+igyfA4uG5nbKEsC4Re9K93wT+AJse23keybgC+C2G5wn2QSwagGsPGifvekTx6sMLARZc4Y/gB33relwpCbAPeCRe/YV+ObNRsWIKT0C3gNvXI7TjsBnwEv37YbXJqoj4IHLoEl8DXzsAAvTHGwAd5N2TFieDEVp8GXsrK7feSI/81aEQUegYtz0lF842fm/Fq/T6qTtKix3bzVE/f8BjOH5HUqTLpZ+0MXCfzylzSOLv5RnLoDZ1NXVsql4pXX0g7/1CWDPCjGfKE1TeGX/fjL5Adyz1G2FtGV+cRl4YP07cmmKBv3B39+Cz75B8mzsw3vP0nku3svO6rEdd5LzrC1QMR56w/KN40pzcT4bAob86MVbzrBLSRVcp44+/p/O7K+TRkBlJFBMmPqoq43FZGoiBVNMlXFSKoE/lfiKIgfRbk0AAAAASUVORK5CYII=");
    background-repeat: no-repeat;
    background-position: center center;
    background-size: contain;
}

@media only screen and (max-width: 768px) {
    .ic_blank:after {
        width: 12px;
        height: 12px;
    }
}

.ml-auto {
    margin-left: auto !important;
}

.ml-0 {
    margin-left: 0 !important;
}

.pt-0 {
    padding-top: 0 !important;
}

.pt-40 {
    padding-top: 40px !important;
}

.mt-6 {
    margin-top: 6px;
}

.mt-20 {
    margin-top: 20px;
}

.mt-30 {
    margin-top: 30px;
}

.mb-10 {
    margin-bottom: 10px !important;
}

.list_base li {
    padding-left: 20px;
    background-image: url("../images/top/ic_tri@2x.png");
    background-repeat: no-repeat;
    background-position: top 6px left 0;
    background-size: 13px auto;
}

.list_base li+li {
    margin-top: 2px;
}

.list_base.white li {
    margin-bottom: 4px;
    background-image: url("../images/footer/ic_tri@2x.png");
    background-position: top 10px left 0;
    background-repeat: no-repeat;
    background-size: 13px auto;
    font-size: 28px;
    font-style: normal;
    font-weight: 400;
    line-height: 1.3;
    letter-spacing: 0.01em;
}

/* CSSアニメーションの指定 */
.js_bg_right {
    -webkit-transition: all 1.5s;
    -moz-transition: all 1.5s;
    -ms-transition: all 1.5s;
    -o-transition: all 1.5s;
    transition: all 1.5s;
}

.slidein {
    animation: SlideIn 1.2s linear;
    opacity: 1;
}

/* CSSアニメーションの設定 */
@keyframes SlideIn {
    0% {
        opacity: 0;
        /*初期状態では透明に*/
        transform: translateX(64px);
    }

    100% {
        opacity: 1;
        transform: translateX(0);
    }
}

.m-breadcomb {
    padding: 40px;
}

@media only screen and (max-width: 768px) {
    .m-breadcomb {
        padding: 40px 20px 0;
    }
}

.m-breadcomb .list_breadcomb {
    opacity: 0.3;
}

.m-breadcomb .list_breadcomb .item_breadcomb {
    font-size: 15px;
}

.m-breadcomb .list_breadcomb .item_breadcomb a {
    text-decoration: underline;
}

.corner-blog-link {
    position: fixed;
    bottom: 100px;
    right: 10px;
    z-index: 20;
}

@media only screen and (max-width: 768px) {
    .corner-blog-link {
        width: 100%;
        text-align: right;
        bottom: 20px;
    }
}

.corner-blog-link__block {
    display: inline-block;
    padding: 0;
    width: 200px;
    height: 137px;
    background-image: url("/images/blog_link_bg.png");
    background-size: contain;
    border-radius: 3rem;
}

@media only screen and (max-width: 768px) {
    .corner-blog-link__block {
        display: inline-block;
        padding: 0;
        width: 100px;
        height: 50px;
        background-image: url("/images/blog_link_bg_sp.png");
        background-size: contain;
        border-radius: 3rem;
    }
}

/* ===================================
   PC用フローティングバナー
   =================================== */
.pc-floating-banner {
    display: none;
}

@media only screen and (min-width: 769px) {
    .pc-floating-banner {
        position: fixed;
        bottom: 50px;
        right: 20px;
        z-index: 9999;
        display: flex;
        flex-direction: column;
        gap: 15px;
        opacity: 0;
        transform: translateX(400px);
        transition: all 0.5s ease-out;
    }

    .pc-floating-banner.show {
        opacity: 1;
        transform: translateX(0);
    }

    .pc-banner-item {
        display: block;
        width: 275px;
    }

    .onewedgeblog-banner-PC,
    .techblog-banner-PC {
        box-shadow: 0 4px 15px rgba(0, 0, 0, 0.2);
    }

    .recruit-banner-PC {
        overflow: visible;
    }

    .pc-banner-item img {
        width: 100%;
        height: auto;
        display: block;
        transition: transform 0.5s ease;
    }

    .pc-banner-item:hover img {
        transform: scale(1.05);
    }

    .pc-banner-close {
        position: absolute;
        top: -10px;
        right: -10px;
        width: 32px;
        height: 32px;
        border-radius: 50%;
        background: rgba(0, 0, 0, 0.7);
        color: white;
        border: 2px solid white;
        cursor: pointer;
        font-size: 20px;
        line-height: 1;
        display: flex;
        align-items: center;
        justify-content: center;
        opacity: 0;
        transition: opacity 0.3s ease, background 0.3s ease;
        z-index: 1;
    }

    .pc-floating-banner:hover .pc-banner-close {
        opacity: 1;
    }

    .pc-banner-close:hover {
        background: rgba(0, 0, 0, 0.9);
    }
}

/* ===================================
   SP用固定フッターバナー
   =================================== */
.sp-fixed-footer-banner {
    display: none;
}


@media only screen and (max-width: 768px) {
    .sp-fixed-footer-banner {
        display: flex;
        position: fixed;
        bottom: 0;
        left: 0;
        right: 0;
        box-shadow: 0 -2px 10px rgba(0, 0, 0, 0.15);
        z-index: 10000;
        height: 83px;
        opacity: 0;
        transform: translateY(100%);
        transition: all 0.5s ease-out;
    }

    .sp-fixed-footer-banner.show {
        opacity: 1;
        transform: translateY(0);
    }

    .sp-footer-btn {
        flex: 1;
        display: flex;
        flex-direction: column;
        align-items: center;
        justify-content: center;
        text-decoration: none;
        color: white;
        font-size: 15px;
        font-weight: bold;
        gap: 6px;
        transition: opacity 0.2s;
    }

    .sp-footer-btn-onewedge {
        font-size: 12px;
    }

    .sp-footer-btn:active {
        opacity: 0.7;
    }

    /* 採用サイトボタン（オレンジ） */
    .sp-footer-btn-recruit {
        background: #FF5C02;
    }

    /* TECH BLOGボタン（ブルー） */
    .sp-footer-btn-tech {
        background: #536F88;
    }

    /* ONE WEDGE BLOGボタン（ベージュ） */
    .sp-footer-btn-onewedge {
        background: #D9AB72;
    }

    /* SVGアイコンのスタイル */
    .sp-btn-icon {
        width: 30px;
        height: 30px;
        filter: brightness(0) invert(1);
        /* SVGを白色にする */
    }

    .sp-footer-btn-recruit .sp-btn-icon {
        margin-top: 6px;
    }

    .sp-footer-btn-tech .sp-btn-icon {
        width: 33px;
        height: 33px;
        margin-left: 3px;
        margin-top: 2px;
    }

    .sp-footer-btn-onewedge .sp-btn-icon {
        width: 38px;
        height: 38px;
        margin-left: 13px;
    }

    .sp-footer-btn span {
        line-height: 1.2;
        text-align: center;
    }

    /* コンテンツが隠れないように余白を追加 */
    body {
        padding-bottom: 83px !important;
    }
}

.corner-blog-link__text1 {
    color: white;
    font-size: 1.5rem;
    font-weight: bolder;
    text-align: center;
}

@media only screen and (max-width: 768px) {
    .corner-blog-link__text1 {
        font-size: 0.75rem;
    }
}

.corner-blog-link__text2 {
    color: white;
    font-size: 3rem;
    font-weight: bold;
    text-align: center;
}

@media only screen and (max-width: 768px) {
    .corner-blog-link__text2 {
        font-size: 1.5rem;
    }
}

.health_content .style3b {
    margin: 3em 0 1.5em;
    padding: 1.1em 0.9em 1em;
    font-size: 22px;
    font-weight: 400;
    border-bottom: 2px solid #222;
    box-shadow: 0px 1px 2px #f7f7f7;
}

.health_content .style4b {
    margin: 7px 0 7px 24px;
    text-align: right;
    font-size: 34px;
    font-weight: normal;
}

@media only screen and (max-width: 767px) {
    .health_content .style4b {
        font-size: 24px;
    }
}

.health_content p {
    line-height: 2;
    margin: 0 0 2em 0;
}

@media only screen and (max-width: 767px) {
    .health_content p {
        margin-bottom: 23px;
    }
}

.health_content .post_row {
    margin-left: -15px;
    margin-right: -15px;
    line-height: 2;
    overflow: hidden;
}

.health_content .post_col-2-2 {
    width: 70%;
    position: relative;
    min-height: 1px;
    padding-right: 15px;
    padding-left: 15px;
    float: left;
    -webkit-box-sizing: border-box;
    -moz-box-sizing: border-box;
    box-sizing: border-box;
    margin-bottom: 2em;
}

@media only screen and (max-width: 767px) {
    .health_content .post_col-2-2 {
        width: 100%;
    }
}

.health_content .post_col-2-1 {
    position: relative;
    min-height: 1px;
    width: 30%;
    padding-right: 15px;
    padding-left: 15px;
    float: left;
    -webkit-box-sizing: border-box;
    -moz-box-sizing: border-box;
    box-sizing: border-box;
    margin-bottom: 2em;
}

@media only screen and (max-width: 767px) {
    .health_content .post_col-2-1 {
        width: 100%;
    }
}