/*---------------------------------------------------------
                共通css
---------------------------------------------------------*/
* {
    margin: 0;
    padding: 0;
    box-sizing: border-box;
    background-repeat: no-repeat;
}

a {
    display: inline-block;
    text-decoration: none;
}

html {
    color: #111111;
    font-family: "Noto Sans JP", sans-serif;
    font-style: normal;
    /* scroll-behavior: smooth; */
    line-height: normal;
    letter-spacing: 0.1em;
}

body {
    background-color: #000;
    display: flex;
    flex-direction: column;
    min-height: 100vh;
}

ul {
    list-style: none;
}


.subfont {
    font-family: "Poppins", sans-serif;
    font-style: normal;
}

.numberfont {
    font-family: "dunbar-tall", sans-serif;
    font-style: normal;
}

.container {
    flex: 1;
}

:root {
    --base-color--: #FFF;
    --main-color01: #EDEFF2;
    --main-color02: #FE5040;
    --sub-color01: #5C4F49;
    --sub-color02: #FE7266;
    --sub-color03: #FFE6E4;
    --accent_color: #FFDB10;
    --text-color01: #443D3A;
    --text-color02: #A69E9D;
    --text-color03: #FFF;
    --text-color04: #FE5040;
    --border-color01: #FE5040;
    --border-color02: #EAEAEA;
    --border-color03: #FFF;
    --border-color04: #EAEAEA;
    --border-color05: #000;
    --main-btn-bg-color: #FE5040;
    --main-btn-text-color: #FFF;
}

br.sp {
    display: none;
}

@media screen and (max-width:990px) {
    br.sp {
        display: block;
    }
}

/*---------------------------------------------------------
                トップ　背景
---------------------------------------------------------*/
.bg canvas {
    position: fixed;
    z-index: -1;
    width: 100vw;
    height: 100vh;
}

::-webkit-full-page-media,
:future,
:root .bg canvas {
    transform: translateZ(0);
    filter: blur(0);
    -webkit-filter: blur(10px);
}

/*---------------------------------------------------------
                アイキャッチ
---------------------------------------------------------*/
.eyecatch {
    width: 100vw;
    height: 100vh;
}

.eyecatch h1 {
    position: absolute;
    top: 50%;
    right: 5%;
    transform: translateY(-50%);
    color: #fff;
    font-size: 36px;
    font-weight: bold;
    letter-spacing: 0.2rem;
}

.eyecatch h1 span {
    position: absolute;
    top: -210px;
    right: 0;
    line-height: 100px;
}

.eyecatch h1 span.sp {
    display: none;
}

.eyecatch h1 span.sp02 {
    display: none;
}

.eyecatch h1 span svg.demo {
    font-family: "Poppins", sans-serif;
    letter-spacing: 0.1rem;
    width: 838px;
    display: block;
}

.eyecatch h1 span text.demo {
    fill: #fff;
    font-weight: 900;
    stroke: #fff;
    stroke-width: 0.5px;
    stroke-dasharray: 500;
    animation: demo_kururi ease 8s;
}

@keyframes demo_kururi {
    0% {
        stroke-dashoffset: 500;
        fill: rgb(0, 0, 0, 0);
    }

    70% {
        fill: #fff;
    }

    100% {
        stroke-dashoffset: 0;
        fill: #fff;
    }
}

@media screen and (max-width:990px) {
    .eyecatch h1 {
        top: 70%;
    }

    .eyecatch h1 span {
        top: -310px;
    }

    .eyecatch h1 span.pc {
        display: none;
    }

    .eyecatch h1 span.sp {
        display: block;
    }
}

@media screen and (max-width:650px) {
    .eyecatch h1 {
        font-size: 20px;
    }

    .eyecatch h1 span {
        top: -240px;
    }

    .eyecatch h1 span.sp {
        display: none;
    }

    .eyecatch h1 span.sp02 {
        display: block;
    }

    .eyecatch h1 span text.demo {
        font-size: 32px;
    }

}

.eyecatch .img_box {
    position: absolute;
    bottom: 0;
    left: 0;
    width: 75%;
    height: auto;
}

.eyecatch .img_box img {
    width: 100%;
}

/*---------------------------------------------------------
                トップ　メッセージ
---------------------------------------------------------*/
#message {
    position: relative;
    padding: 230px 0 300px;
    width: 100%;
}

#message::before {
    position: absolute;
    bottom: 0;
    z-index: -1;
    display: block;
    content: "";
    width: 100%;
    height: 80%;
    background: rgb(236, 240, 245);
    background: linear-gradient(0deg, rgba(236, 240, 245, 1) 0%, rgba(236, 240, 245, 0) 100%);
}

#message .inner {
    width: 90%;
    margin: 0 auto;
}

#message .inner h2 {
    color: #FFF;
    font-size: 40px;
    font-weight: bold;
    line-height: 1.45;
    letter-spacing: 0.2em;
    text-align: center;
}

#message .inner h2 span {
    font-size: 42px;
    font-weight: bold;
    line-height: 1.5;
    letter-spacing: 0.2em;
}

#message .inner p {
    margin: 20px auto 0;
    width: 80%;
    color: #FFF;
    font-size: 24px;
    font-weight: 500;
    line-height: 1.6;
    letter-spacing: 0.1em;
    text-align: center;
    word-break: keep-all;
}

#message .inner p:nth-of-type(1) {
    margin-top: 60px;
}

@media screen and (max-width:990px) {
    #message .inner p {
        width: 90%;
        word-break: normal;
    }
}


@media screen and (max-width:768px) {
    #message .inner h2 {
        font-size: 32px;
    }

    #message .inner h2 span {
        font-size: 38px;
    }

    #message .inner p {
        width: 100%;
        text-align: left;
    }
}

@media screen and (max-width:500px) {
    #message .inner h2 {
        font-size: 28px;
    }

    #message .inner h2 span {
        font-size: 30px;
    }

    #message .inner p {
        font-size: 16px;
    }
}

/*---------------------------------------------------------
                トップ　受託開発
---------------------------------------------------------*/
#development {
    padding: 80px 0;
    width: 100vw;
    background: linear-gradient(-45deg, #ECF0F5, #D4DDEA);
}

#development .bg_img_box {
    padding: 200px 0;
    background: url(../img/img_deve_bg01.png), url(../img/img_deve_bg02.png);
    background-repeat: no-repeat;
    background-position: top left 5%, bottom right 5%;
    background-size: 35%;
}

#development .development_content {
    margin: 0 auto;
    width: 80%;
    background-color: rgba(255, 255, 255, 0.95);
    border-radius: 30px;
}

#development .development_content .inner {
    display: flex;
    justify-content: center;
    gap: 9%;
    margin: 0 auto;
    padding: 100px 0;
    width: 90%;
}

#development .development_content .left_box {
    width: 27vw;
}

#development .development_content .left_box .typing01,
#development .development_content .left_box .typing02,
#development .development_content .left_box .typing03 {
    position: relative;
    display: flex;
    height: 4.6vw;
}

#development .development_content .left_box .typing01 .border {
    display: inline-block;
    content: "";
    width: 3px;
    height: 100%;
    background: #000;
    animation: typing-border01 2s steps(7) infinite;
}

#development .development_content .left_box .typing02 .border {
    display: none;
    content: "";
    width: 3px;
    height: 100%;
    background: #000;
    animation: typing-border02 2s steps(6) infinite;
}

#development .development_content .left_box .typing03 .border {
    display: none;
    content: "";
    width: 3px;
    height: 100%;
    background: #000;
    animation: typing-border03 2s steps(6) infinite;
}

@keyframes typing-border01 {
    0% {
        display: none;
    }

    100% {
        display: inline-block;
    }
}

@keyframes typing-border02 {
    0% {
        display: none;
    }

    100% {
        display: inline-block;
    }
}

@keyframes typing-border03 {
    0% {
        display: none;
    }

    100% {
        display: inline-block;
    }
}

#development .development_content .left_box .typing01 span,
#development .development_content .left_box .typing02 span,
#development .development_content .left_box .typing03 span {
    display: none;
    font-size: 4.6vw;
    font-weight: bold;
    line-height: 1.1;
    letter-spacing: 0.1em;
}

#development .development_content .left_box .typing01 span:nth-of-type(5) {
    margin-left: 1rem;
}

#development .development_content .left_box .typing02 span:nth-of-type(4) {
    margin-left: 1rem;
}

#development .development_content .left_box .typing03 span:nth-of-type(5) {
    margin-left: 1rem;
}

#development .development_content .left_box h2 {
    margin-top: 10px;
    margin-left: 10px;
    font-size: 22px;
    font-weight: 600;
    letter-spacing: 0.2em;
}

#development .development_content .left_box .btn_box {
    display: flex;
    flex-direction: column;
    gap: 15px;
    margin-top: 40px;
}

#development .development_content .left_box .btn_box a {
    display: flex;
    align-items: center;
    gap: 20px;
    padding: 18px 26px;
    width: fit-content;
    background-color: #000;
    color: #FFF;
    font-size: 18px;
    font-weight: bold;
    letter-spacing: 0.1em;
    border-radius: 50px;
}

#development .development_content .left_box .btn_box a .arrow_item {
    position: relative;
    width: 18px;
    height: 2px;
    background-color: #FFF;
    border-radius: 50px;
}

#development .development_content .left_box .btn_box a .arrow_item::before {
    position: absolute;
    top: -2px;
    right: -0.5px;
    transform: translateY(-50%) rotate(45deg);
    display: block;
    content: "";
    width: 9px;
    height: 2px;
    background-color: #FFF;
    border-radius: 50px;
}

#development .development_content .left_box .btn_box a .arrow_item::after {
    position: absolute;
    bottom: -4px;
    right: -0.5px;
    transform: translateY(-50%) rotate(-45deg);
    display: block;
    content: "";
    width: 9px;
    height: 2px;
    background-color: #FFF;
    border-radius: 50px;
}

#development .development_content .right_box {
    width: calc(100% - 27vw - 9%);
}

#development .development_content .right_box ul {}

#development .development_content .right_box ul li {
    display: flex;
    align-items: center;
    gap: 15px;
    padding: 20px;
    width: 100%;
    border-bottom: 1px solid #C7C7C7;
}

#development .development_content .right_box ul li .img {
    min-width: 53px;
    text-align: center;
}

#development .development_content .right_box ul li .img img .img01 {
    width: 28px;
}

#development .development_content .right_box ul li .img img .img02 {
    width: 45px;
}

#development .development_content .right_box ul li .img img .img03 {
    width: 53px;
}

#development .development_content .right_box ul li .img img .img04 {
    width: 45px;
}

#development .development_content .right_box ul li .img img .img05 {
    width: 45px;
}

#development .development_content .right_box ul li p {
    font-size: 22px;
    font-weight: 600;
    letter-spacing: 0.15em;
}

#development .development_content .right_box ul li p span {
    display: block;
    margin-top: 10px;
    color: #747474;
    font-size: 15px;
    line-height: 1.4;
    font-weight: 600;
    letter-spacing: 0.15em;
}

@media screen and (max-width:1200px) {
    #development .development_content {
        width: 90%;
    }

    #development .bg_img_box {
        background-position: top left 5%, bottom right 5%;
    }
}

@media screen and (max-width:990px) {
    #development .development_content .inner {
        flex-direction: column;
        gap: 30px;
    }

    #development .development_content .left_box {
        width: 100%;
    }

    #development .development_content .left_box .typing01,
    #development .development_content .left_box .typing02,
    #development .development_content .left_box .typing03 {
        height: 7.6vw;
    }

    #development .development_content .left_box .typing01 span,
    #development .development_content .left_box .typing02 span,
    #development .development_content .left_box .typing03 span {
        font-size: max(7.5vw, 32px);
    }

    #development .development_content .right_box {
        width: 100%;
    }
}

@media screen and (max-width:768px) {
    #development .bg_img_box {
        background-position: top left -5%, bottom right -5%;
    }
}

@media screen and (max-width:500px) {
    #development {
        padding: 50px 0;
    }

    #development .development_content .inner {
        padding: 50px 0;
    }

    #development .bg_img_box {
        padding: 110px 0;
    }

    #development .development_content .left_box h2 {
        margin-top: 10px;
        margin-left: 0;
        font-size: 14px;
    }

    #development .development_content .left_box h2 span {
        margin: 0;
    }

    #development .development_content .left_box .btn_box {
        margin-top: 25px;
    }

    #development .development_content .left_box .btn_box a {
        font-size: 14px;
    }

    #development .development_content .right_box ul li {
        padding: 20px 10px;
    }

    #development .development_content .right_box ul li p {
        font-size: 20px;
    }

    #development .development_content .right_box ul li p span {
        font-size: 14px;
    }
}

@media screen and (max-width:500px) {
    #development .development_content .inner {
        width: 80%;
    }
}

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

    #development .development_content .left_box .typing01,
    #development .development_content .left_box .typing02,
    #development .development_content .left_box .typing03 {
        height: 32px;
    }
}

/*---------------------------------------------------------
                トップ　メンバー
---------------------------------------------------------*/
#member {
    position: relative;
    z-index: 1;
    margin-top: -40px;
    padding: 10% 0;
    background-color: #384EDF;
    border-radius: 40px;
}

#member::before {
    position: absolute;
    top: 0;
    right: 0;
    z-index: 2;
    display: block;
    content: "";
    width: calc(((100vw - 60px) / 3.5)/3.5);
    height: 100%;
    background-image: linear-gradient(270deg, rgba(56, 78, 223, 1), rgba(56, 78, 223, 0));
    border-radius: 40px;
}

#member .inner {
    width: 90%;
    margin: 0 auto;
}

#member h2 {
    color: #FFF;
    font-size: 22px;
    font-weight: bold;
    letter-spacing: 0.2em;
}

#member h2 span {
    margin-right: 38px;
    color: #FFF;
    font-size: 67px;
    font-weight: bold;
    letter-spacing: 0.1em;
}

#member .member_content {
    margin-top: 40px;
}

#member .member_content .member_list {
    width: calc(100% + (100vw - 100%) / 2);
}

#member .member_content .member_list .slide-arrow {
    position: absolute;
    top: 50%;
    z-index: 3;
    width: 30px;
    height: 55px;
    cursor: pointer;
}

#member .member_content .member_list .slide-arrow.slick-disabled {
    display: none !important;
}

#member .member_content .member_list .slide-arrow::before {
    position: absolute;
    top: 14px;
    display: block;
    content: "";
    width: 36px;
    height: 4px;
    background-color: #FFF;
    border-radius: 50px;
}

#member .member_content .member_list .slide-arrow::after {
    position: absolute;
    bottom: 14px;
    display: block;
    content: "";
    width: 36px;
    height: 4px;
    background-color: #FFF;
    border-radius: 50px;
}

#member .member_content .member_list .slide-arrow.prev-arrow {
    left: -3.5%;
}

#member .member_content .member_list .slide-arrow.prev-arrow::before {
    transform: rotate(-45deg);
}

#member .member_content .member_list .slide-arrow.prev-arrow::after {
    transform: rotate(45deg);
}

#member .member_content .member_list .slide-arrow.next-arrow {
    right: 3.5%;
}

#member .member_content .member_list .slide-arrow.next-arrow::before {
    transform: rotate(45deg);
}

#member .member_content .member_list .slide-arrow.next-arrow::after {
    transform: rotate(-45deg);
}


#member .member_content .member_list .member_box {
    position: relative;
    display: flex;
    align-items: center;
    gap: 5%;
    padding: 60px 30px;
    width: calc((100vw - 60px) / 3.5);
    margin-right: 30px;
    background: #fff;
    border-radius: 30px;
    transition: .3s;
}

#member .member_content .member_list .member_box.blank {
    visibility: hidden;
}

#member .member_content .member_list .member_box.open {
    width: calc(((100vw - 60px) / 3.5)* 3 + 60px);
}

#member .member_content .member_list .member_box .member_close {
    position: relative;
    width: calc(((100vw - 60px) / 3.5) - 60px);
}

#member .member_content .member_list .member_box .member_close .img_item {
    position: relative;
    width: 80%;
    margin: 100px auto 0;
}

#member .member_content .member_list .member_box .member_close .img_item img {
    width: 100%;
}

#member .member_content .member_list .member_box .member_close .img_item .bubble01 {
    position: absolute;
    top: -30%;
    right: 0%;
    width: 100%;
}

#member .member_content .member_list .member_box .member_close .img_item .bubble02 {
    position: absolute;
    top: -20%;
    right: -3%;
    width: 42%;
}

#member .member_content .member_list .member_box .member_close .img_item .bubble03 {
    position: absolute;
    top: -19%;
    left: -11%;
    width: 53%;
}

#member .member_content .member_list .member_box .member_close .img_item .bubble04 {
    position: absolute;
    top: -22%;
    left: -8%;
    width: 56%;
}

#member .member_content .member_list .member_box .member_close .img_item .bubble05 {
    position: absolute;
    top: -27%;
    left: -3%;
    width: 83%;
}

#member .member_content .member_list .member_box .member_close .img_item .bubble06 {
    position: absolute;
    top: -30%;
    right: -20px;
    width: 90%;
}

#member .member_content .member_list .member_box .member_close .bubble img {
    width: 100%;
}


#member .member_content .member_list .member_box .txt_item {
    width: 80%;
    margin: 24px auto 90px;
}

#member .member_content .member_list .member_box .txt_item p {
    font-size: 18px;
    font-weight: bold;
    letter-spacing: 0.1em;
}

#member .member_content .member_list .member_box .txt_item p:nth-last-of-type(2) {
    margin-top: 5px;
}

#member .member_content .member_list .member_box .txt_item p span {
    font-size: 24px;
    font-weight: bold;
    letter-spacing: 0.05em;
}

#member .member_content .member_list .member_box .txt_item p span.year {
    font-size: 32px;
}

#member .member_content .member_list .member_box .txt_item p.name_txt {
    margin-top: 15px;
    font-size: 18px;
    font-weight: bold;
    letter-spacing: 0.1em;
}

#member .member_content .member_list .member_box .txt_item p.name_txt span {
    font-size: 40px;
    font-weight: bold;
    letter-spacing: 0.2em;
}

#member .member_content .member_list .member_box button {
    position: absolute;
    bottom: 60px;
    left: 50%;
    transform: translateX(-50%);
    display: flex;
    align-items: center;
    justify-content: space-between;
    padding: 20px;
    width: 80%;
    background-color: #000;
    color: #FFF;
    font-size: 16px;
    font-weight: bold;
    letter-spacing: 0.06em;
    border-radius: 50px;
    cursor: pointer;
    overflow: hidden;
}

#member .member_content .member_list .member_box button p {
    white-space: nowrap;
    transition: 0.3s;
}

#member .member_content .member_list .member_box button .arrow {
    display: flex;
    align-items: center;
    justify-content: center;
    position: absolute;
    right: 20px;
    width: 18px;
    height: auto;
    background-color: #000;
    border-radius: 50px;
    transition: 0.3s all;
}

#member .member_content .member_list .member_box button .arrow svg {
    width: 100%;
    transition: transform 0.3s;
}

@media (hover: hover) {
    #member .member_content .member_list .member_box button:hover p {
        transform: translateX(-200%);
    }

    #member .member_content .member_list .member_box button:hover .arrow {
        width: calc(100% - 40px);
    }

    #member .member_content .member_list .member_box button:hover .arrow svg {
        transform: translateX(0.1em);
    }
}

#member .member_content .member_list .member_box .member_open {
    display: none;
    opacity: 0;
    width: calc(100% - 5% - ((100vw - 60px) / 3.5));
    animation: member-accordion 0.3s ease 0.3s forwards;
    margin-bottom: 90px;
}

#member .member_content .member_list .member_box.open .member_open {
    display: block;
}

@keyframes member-accordion {
    0% {
        opacity: 0;
    }

    100% {
        opacity: 1;
    }

}

#member .member_content .member_list .member_box .member_open .item {
    margin-top: 40px;
}

#member .member_content .member_list .member_box .member_open .item:nth-of-type(1) {
    margin-top: 0;
}

#member .member_content .member_list .member_box .member_open .item h3 {
    color: #384EDF;
    font-size: 24px;
    font-weight: bold;
    letter-spacing: 0.1em;
}

#member .member_content .member_list .member_box .member_open .item p {
    margin-top: 10px;
    font-size: 18px;
    font-weight: 600;
    line-height: 1.4;
    letter-spacing: 0.1em;
}

@media screen and (max-width:990px) {
    #member::before {
        display: none;
    }

    #member .member_content .member_list {
        width: 100%;
    }

    #member .member_content .member_list .slide-arrow.next-arrow {
        right: -3.5%;
    }

    #member .member_content .member_list .member_box {
        flex-direction: column;
        align-items: flex-start;
        margin: 0 15px;
    }

    #member .member_content .member_list .member_box.open {
        width: calc(862vw/9.9) !important;
    }

    #member .member_content .member_list .member_box .member_close {
        width: 90%;
    }

    #member .member_content .member_list .member_box .member_close .img_item {
        width: 100%;
    }

    #member .member_content .member_list .member_box.open .member_close {
        width: 50%;
        margin: 0 auto;
    }

    #member .member_content .member_list .member_box .member_open {
        width: 90%;
        margin: 0 auto 120px;
    }

    #member .member_content .member_list .member_box.open button {
        width: 300px;
    }

    #member .member_content .member_list .member_box button .arrow {
        transform: rotate(90deg);
    }

    #member .member_content .member_list .member_box button .arrow.active {
        transform: rotate(-90deg);
    }
}

@media screen and (max-width:768px) {
    #member h2 span {
        display: block;
        margin-bottom: 8px;
    }

    #member .member_content .member_list .member_box .member_close .img_item {
        width: 80%;
    }

    #member .member_content .member_list .member_box.open .member_close {
        width: 70%;
    }
}

@media screen and (max-width:500px) {
    #member {
        border-radius: 20px;
    }

    #member h2 {
        font-size: 16px;
    }

    #member h2 span {
        font-size: 40px;
    }

    #member .member_content .member_list .slide-arrow {
        width: 20px;
        height: 19px;
    }

    #member .member_content .member_list .slide-arrow::before {
        top: 0;
        width: 24px;
    }

    #member .member_content .member_list .slide-arrow::after {
        bottom: 0;
        width: 24px;
    }

    #member .member_content .member_list .member_box {
        padding: 25px;
    }

    #member .member_content .member_list .member_box .member_close {
        width: 100%;
    }

    #member .member_content .member_list .member_box .member_close .flex_box {
        display: flex;
        align-items: flex-end;
        gap: 20px;
        margin-bottom: 93px;
    }

    #member .member_content .member_list .member_box.open .member_close {
        width: 100%;
    }

    #member .member_content .member_list .member_box .member_close .img_item {
        width: calc(100% - 123px - 20px);
    }

    #member .member_content .member_list .member_box .member_close .img_item .bubble01 {
        top: -110px;
        right: -140px;
        width: 150%;
        min-width: 266px;
    }

    #member .member_content .member_list .member_box .member_close .img_item .bubble02 {
        top: -110px;
        right: -30px;
        width: 52%;
        min-width: 86px;
    }

    #member .member_content .member_list .member_box .member_close .img_item .bubble03 {
        top: -112px;
        left: unset;
        right: -100px;
        width: 83%;
        min-width: 140px;
    }

    #member .member_content .member_list .member_box .member_close .img_item .bubble04 {
        top: -110px;
        right: -70px;
        left: unset;
        width: 76%;
        min-width: 131px;
    }

    #member .member_content .member_list .member_box .member_close .img_item .bubble05 {
        top: -110px;
        left: unset;
        right: -100px;
        width: 120%;
        min-width: 200px;
    }

    #member .member_content .member_list .member_box .member_close .img_item .bubble06 {
        top: -110px;
        right: -130px;
        width: 130%;
        min-width: 230px;
    }

    #member .member_content .member_list .member_box .txt_item {
        width: 123px;
        margin: unset;
    }

    #member .member_content .member_list .member_box .txt_item p {
        font-size: 14px;
    }

    #member .member_content .member_list .member_box .txt_item p span {
        font-size: 18px;
    }

    #member .member_content .member_list .member_box .txt_item p span.year {
        font-size: 24px;
    }

    #member .member_content .member_list .member_box .txt_item p.name_txt {
        margin-top: 5px;
    }

    #member .member_content .member_list .member_box .txt_item p.name_txt span {
        font-size: 28px;
    }

    #member .member_content .member_list .member_box .member_open {
        width: 90%;
        margin-bottom: 93px;
    }

    #member .member_content .member_list .member_box .member_open .item {
        margin-top: 25px;
    }

    #member .member_content .member_list .member_box .member_open .item h3 {
        font-size: 18px;
    }

    #member .member_content .member_list .member_box .member_open .item p {
        font-size: 16px;
    }

    #member .member_content .member_list .member_box button {
        bottom: 25px;
        width: 200px;
    }

    #member .member_content .member_list .member_box.open button {
        width: 200px;
    }
}



/*---------------------------------------------------------
                トップ　コンタクト
---------------------------------------------------------*/
#contact {
    margin-top: -40px;
    padding: 200px 0 300px;
    width: 100vw;
    background-color: #FFF;
}

#contact .inner {
    width: 90%;
    margin: 0 auto;
}

#contact .inner h2 {
    font-size: 22px;
    letter-spacing: 0.2em;
}

#contact .inner h2 span {
    display: block;
    margin-bottom: 8px;
    font-size: 67px;
    letter-spacing: 0.1em;
}

#contact .inner .btn_container {
    display: flex;
    gap: 35px;
    margin-top: 80px;
}

#contact .inner .btn_container a {
    display: flex;
    align-items: center;
    justify-content: space-between;
    padding: 40px 60px;
    width: calc((100% - 35px)/2);
    background-color: #3A3A3A;
    border-radius: 30px;
}

#contact .inner .btn_container a p {
    color: #FFF;
    font-size: 2.7vw;
    font-weight: 900;
    line-height: 1.4;
    letter-spacing: 0.1em;
}

#contact .inner .btn_container a .img_box01 {
    width: 27%;
}

#contact .inner .btn_container a .img_box02 {
    width: 22%;
}

#contact .inner .btn_container a .img_box01 img,
#contact .inner .btn_container a .img_box02 img {
    width: 100%;
}

@media screen and (max-width:990px) {
    #contact .inner .btn_container {
        flex-direction: column;
        align-items: center;
        justify-content: space-between;
    }

    #contact .inner .btn_container a {
        width: 100%;
        padding: 40px 50px;
    }

    #contact .inner .btn_container a p {
        font-size: max(5.7vw, 23px);
    }
}

@media screen and (max-width:500px) {
    #contact {
        padding: 120px 0 80px;
    }

    #contact .inner .btn_container {
        margin-top: 40px;
    }

    #contact .inner h2 {
        font-size: 16px;
    }

    #contact .inner h2 span {
        font-size: 40px;
    }

    #contact .inner .btn_container a {
        padding: 35px 30px;
    }
}



/*---------------------------------------------------------
                トップ 代表挨拶
---------------------------------------------------------*/
#greeting {
    position: relative;
    padding: 100px 0;
    width: 100vw;
}

#greeting .mask_box {
    position: absolute;
    z-index: 1;
    display: block;
    width: 30px;
    height: 30px;
}

#greeting .mask_box.mask_box01 {
    top: 0;
    left: 0;
}

#greeting .mask_box.mask_box02 {
    top: 0;
    right: 0;
}

#greeting .mask_box.mask_box03 {
    bottom: 0;
    left: 0;
}

#greeting .mask_box.mask_box04 {
    bottom: 0;
    right: 0;
}

#greeting .mask_box img {
    width: 100%;
    height: auto;
}

#greeting h2 {
    margin-left: 5%;
    color: #FFF;
    font-size: 22px;
    letter-spacing: 0.2em;
}

#greeting h2 span {
    color: #FFF;
    display: block;
    margin-bottom: 8px;
    font-size: 67px;
    letter-spacing: 0.1em;
}

#greeting .greetion_content {
    display: flex;
    align-items: center;
    gap: 70px;
    margin: 50px auto 0;
    width: 90%;
}

#greeting .greetion_content .person_box {
    display: flex;
    flex-direction: column-reverse;
    align-items: center;
    gap: 40px;
    width: 380px;
}

#greeting .greetion_content .name_txt {
    width: 309px;
    color: #FFF;
    text-align: center;
}

#greeting .greetion_content .name_txt p:nth-of-type(1) {
    font-size: 20px;
    font-weight: bold;
    letter-spacing: 0.2em;
}

#greeting .greetion_content .name_txt p:nth-of-type(2) {
    margin-top: 10px;
    font-size: 36px;
    font-weight: bold;
    letter-spacing: 0.2em;
}

#greeting .greetion_content .img_box {
    width: 380px;
}

#greeting .greetion_content .img_box img {
    width: 100%;
}

#greeting .greetion_content .txt_box {
    width: calc(100% - 380px - 70px);
    color: #FFF;
}

#greeting .greetion_content .txt_box p {
    margin-top: 20px;
    font-size: 20px;
    font-weight: bold;
    line-height: 2.4;
    letter-spacing: 0.1em;
}

#greeting .greetion_content .txt_box p:nth-of-type(1) {
    margin-top: 0;
}

@media screen and (max-width:990px) {
    #greeting .greetion_content {
        flex-direction: column;
    }

    #greeting .greetion_content .person_box {
        margin: 0 auto;
        flex-direction: column-reverse;
        align-items: center;
        width: 350px;
    }

    #greeting .greetion_content .txt_box {
        width: 100%;
    }
}

@media screen and (max-width:500px) {
    #greeting {
        padding: 100px 0;
    }

    #greeting h2 {
        margin-left: 10%;
        font-size: 16px;
    }

    #greeting h2 span {
        font-size: 40px;
    }

    #greeting .greetion_content {
        width: 80%;
    }

    #greeting .greetion_content .person_box {
        width: 100%;
    }

    #greeting .greetion_content .img_box {
        width: 80%;
    }

    #greeting .mask_box {
        display: none;
    }

    #greeting .greetion_content {
        gap: 40px;
    }

    #greeting .greetion_content .name_txt p:nth-of-type(1) {
        font-size: 14px;
    }

    #greeting .greetion_content .name_txt p:nth-of-type(2) {
        font-size: 26px;
    }

    #greeting .greetion_content .txt_box p {
        font-size: 16px;
    }
}

/*---------------------------------------------------------
                TOP　会社概要
---------------------------------------------------------*/
#company {
    padding: 150px 0;
    width: 100vw;
    background-color: #ECF0F5;
}

#company h2 {
    margin-left: 5%;
    font-size: 22px;
    letter-spacing: 0.2em;
}

#company h2 span {
    display: block;
    margin-bottom: 8px;
    font-size: 67px;
    letter-spacing: 0.1em;
}

#company .company_content {
    display: flex;
    align-items: center;
    gap: 50px;
    margin: 30px auto 0;
    width: 85%;
}

#company .company_content dl {
    display: flex;
    flex-wrap: wrap;
    width: 450px;
    font-size: 16px;
    font-weight: bold;
    line-height: 1.4;
    letter-spacing: 0.1em;
}

#company .company_content dl dt {
    padding: 20px 0;
    width: 128px;
    border-bottom: 1px solid #B5B5B5;
}

#company .company_content dl dd {
    padding: 20px 0;
    width: calc(100% - 128px);
    border-bottom: 1px solid #B5B5B5;
}

#company .company_content dl dd a {
    color: #111;
}

#company .company_content .img_box {
    width: calc(100% - 450px - 50px);
    opacity: 0;
    visibility: hidden;
    transition: 1s;
    transform: translateY(30px);
}

#company .company_content .img_box.active {
    opacity: 1;
    visibility: visible;
    transform: translateY(0);
}

#company .company_content .img_box img {
    width: 100%;
}

#company .company_content dl dd br.sp {
    display: none;
}

@media screen and (max-width:990px) {
    #company .company_content {
        width: 90%;
        flex-direction: column;
    }

    #company .company_content dl {
        margin-top: 40px;
        width: 90%;
    }

    #company .company_content .img_box {
        width: 80%;
    }
}

@media screen and (max-width:768px) {
    #company .company_content dl {
        width: 100%;
    }

    #company .company_content .img_box {
        width: 100%;
    }
}

@media screen and (max-width:500px) {
    #company {
        padding: 75px 0 105px;
    }

    #company h2 {
        font-size: 16px;
    }

    #company h2 span {
        font-size: 40px;
    }

    #company .company_content dl {
        flex-direction: column;
    }

    #company .company_content dl dt,
    #company .company_content dl dd {
        width: 100%;
        border: none;
    }

    #company .company_content dl dt {
        padding: 20px 0 0;
        font-weight: 900;
    }

    #company .company_content dl dd {
        padding: 5px 0 20px;
        border-bottom: 1px solid #B5B5B5;
    }

    #company .company_content dl dd br.sp {
        display: block;
    }
}

/*---------------------------------------------------------
                下層ページメインビュー
---------------------------------------------------------*/
.under_mv {
    width: 100vw;
    height: 60vh;
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    background: url(../img/img_umv_bg.png);
    background-size: cover;
    background-repeat: no-repeat;
}

.under_mv h1 {
    color: #FFF;
    font-size: 36px;
    font-weight: bold;
    line-height: 1.4;
    letter-spacing: 0.2em;
    text-align: center;
}

.under_mv h1 span {
    display: block;
    font-size: 96px;
    font-weight: bold;
    line-height: 1;
    letter-spacing: 0;
}

@media screen and (max-width:500px) {
    .under_mv {
        height: 40vh;
    }

    .under_mv h1 {
        font-size: 20px;
    }

    .under_mv h1 span {
        font-size: 56px;
    }
}

/*---------------------------------------------------------
                タイトル
---------------------------------------------------------*/
.ttl_main {
    font-size: 22px;
    font-weight: bold;
    line-height: 1.4;
    letter-spacing: 0.2em;
}

.ttl_main span {
    margin-right: 40px;
    font-size: 66px;
    font-weight: bold;
    line-height: 1;
    letter-spacing: 0.1em;
}

@media screen and (max-width:990px) {
    .ttl_main span {
        display: block;
        margin-right: 0;
    }
}

@media screen and (max-width:500px) {
    .ttl_main {
        font-size: 16px;
    }

    .ttl_main span {
        font-size: 40px;
    }
}

/*---------------------------------------------------------
                開発依頼について
---------------------------------------------------------*/
/*開発事例*/
.cs_container {
    padding: 140px 0 240px;
    background-color: #ECF0F5;
}

.cs_container h2 {
    margin: 0 auto;
    width: 90%;
}

.cs_container p.main_txt {
    margin: 28px auto 0;
    padding: 0;
    width: 90%;
    font-size: 20px;
    font-weight: 500;
    line-height: 1.6;
    letter-spacing: 0.1em;
}

.cs_container .content {
    position: relative;
    margin: 224px 0 0 auto;
    padding: 90px 0 178px;
    width: 95%;
    background-color: #FFF;
    border-radius: 128px 0 0 128px;
}

.cs_container .content.content02 {
    margin: 223px 0 0 0;
    border-radius: 0 128px 128px 0;
}

.cs_container .content p.number_txt {
    position: absolute;
    top: -60px;
    left: 60px;
    color: #CBDAF7;
    font-size: 112px;
    font-weight: 600;
    letter-spacing: 0.1em;
}

.cs_container .content.content02 p.number_txt {
    top: -50px;
    right: 30px;
    left: unset;
}

.cs_container .content .inner {
    margin: 0 0 0 auto;
    width: 90%;
}

.cs_container .content.content02 .inner {
    margin: 0;
}

.cs_container .content .top_area {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 100px;
}

.cs_container .content.content02 .top_area {
    flex-direction: row-reverse;
}

.cs_container .content .top_area .txt_box {
    width: 467px;
}

.cs_container .content .top_area .txt_box p.case_txt {
    position: relative;
    color: #384EDF;
    font-size: 20px;
    font-weight: 600;
    line-height: 2;
    letter-spacing: 0.1em;
}

.cs_container .content .top_area .txt_box p.case_txt::before {
    position: absolute;
    top: 50%;
    left: -14px;
    transform: translateY(-50%);
    display: inline-block;
    content: "";
    width: 6px;
    height: 6px;
    background-color: #384EDF;
    border-radius: 50%;
}

.cs_container .content .top_area .txt_box h3 {
    margin-top: 20px;
}

.cs_container .content .top_area .txt_box h3 img {
    width: 100%;
}

.cs_container .content .top_area .txt_box p:nth-of-type(2) {
    margin-top: 32px;
    font-weight: 500;
    line-height: 1.8;
}

.cs_container .content .top_area .img_box {
    margin-top: 40px;
    width: calc(100% - 467px - 100px);
}

.cs_container .content .top_area .img_box img {
    width: 100%;
}

.cs_container .content.content01 .top_area .img_box img {
    border-radius: 30px 0 0 30px;
}

.cs_container .content.content02 .top_area .img_box img {
    border-radius: 0 30px 30px 0;
}

.cs_container .content .bottom_area {
    margin-top: 112px;
}

.cs_container .content.content02 .bottom_area {
    margin: 112px 0 0 auto;
    width: 80%;
}

.cs_container .content .bottom_area h4 {
    width: 190px;
    font-size: 22px;
    font-weight: bold;
    line-height: 1.6;
    letter-spacing: 0, 1em;
    background: rgb(30, 42, 121);
    background: linear-gradient(0deg, rgba(30, 42, 121, 1) 0%, rgba(56, 78, 223, 1) 100%);
    background: -webkit-linear-gradient(0deg, rgba(30, 42, 121, 1) 0%, rgba(56, 78, 223, 1) 100%);
    -webkit-background-clip: text;
    -webkit-text-fill-color: transparent;
}

.cs_container .content.content02 .bottom_area h4:nth-of-type(1) {
    width: 310px;
}

.cs_container .content .bottom_area p.txt_area {
    margin-top: 24px;
    width: 70%;
    font-weight: 500;
    line-height: 1.6;
}

.cs_container .content .bottom_area .box {
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
    margin-top: 40px;
    width: 80%;
}

.cs_container .content.content02 .bottom_area .box {
    gap: 11px;
    width: 100%;
}

.cs_container .content .bottom_area .box .item {
    padding: 66px 32px;
    width: calc((100% - 8px)/2);
    background-color: #ECF0F5;
    border-radius: 15px;
}

.cs_container .content.content.content02 .bottom_area .box .item {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 100px;
    padding: 63px 43px;
    width: 100%;
}


.cs_container .content .bottom_area .box .item p:nth-of-type(1) {
    position: relative;
    margin-left: 14px;
    font-size: 18px;
    font-weight: 500;
    line-height: 1.6;
    letter-spacing: 0.1em;
}

.cs_container .content .bottom_area .box .item p:nth-of-type(1)::before {
    position: absolute;
    top: 50%;
    left: -14px;
    transform: translateY(-50%);
    display: inline-block;
    content: "";
    width: 6px;
    height: 6px;
    background-color: #384EDF;
    border-radius: 50%;
}

.cs_container .content .bottom_area .box .item p:nth-of-type(2) {
    color: #707280;
    margin-top: 8px;
    line-height: 1.6;
}

.cs_container .content.content.content02 .bottom_area .box .item .text {
    width: calc(100% - 100px - 298px);
}

.cs_container .content .deco_img {
    position: absolute;
    right: 88px;
    bottom: -41px;
    width: 128px;
}

.cs_container .content.content02 .deco_img {
    bottom: -66px;
    left: 66px;
    width: 168px;
}

.cs_container .content .deco_img img {
    width: 100%;
}

.cs_container .content.content.content02 .bottom_area .box .item .table {
    width: 298px;
}

.cs_container .content.content.content02 .bottom_area .box .item .table dl {
    display: flex;
    align-items: center;
    gap: 14px;
    padding: 16px 0;
    color: #707280;
    font-size: 14px;
    font-weight: 400;
    line-height: 1.8;
    letter-spacing: 0.08em;
    border-bottom: 1px solid #CCCEDD;
}

.cs_container .content.content.content02 .bottom_area .box .item .table dl:nth-of-type(1) {
    padding: 0 0 16px 0;
}

.cs_container .content.content.content02 .bottom_area .box .item .table dl dt {
    width: 24px;
    text-align: center;
}

.cs_container .content.content.content02 .bottom_area .box .item .table dl dt .ic01 {
    width: 24px;
}

.cs_container .content.content.content02 .bottom_area .box .item .table dl dt .ic02 {
    width: 20px;
}

.cs_container .content.content.content02 .bottom_area .box .item .table dl dt .ic03 {
    width: 24px;
}

.cs_container .content.content.content02 .bottom_area .box .item .table dl dt .ic04 {
    width: 19.75px;
}

.cs_container .content.content.content02 .bottom_area .box .item .table dl dt .ic05 {
    width: 24px;
}

.cs_container .content.content.content02 .bottom_area .box .item .table dl dt .ic06 {
    width: 20px;
}

.cs_container .content.content.content02 .bottom_area .box .item .table dl dt .ic07 {
    width: 24px;
}

.cs_container .content.content.content02 .bottom_area .box .item .table dl dt .ic08 {
    width: 24px;
}

.cs_container .content.content.content02 .bottom_area .box .item .table dl dt .ic09 {
    width: 20px;
}

.cs_container .content.content.content02 .bottom_area .box .item .table dl dd {
    width: calc(100% - 24px - 14px);
}

.cs_container .content.content.content02 .bottom_area .box02 {
    margin-top: 112px;
}

.cs_container .content.content.content02 .bottom_area .box02 ul {
    margin-top: 32px;
}

.cs_container .content.content.content02 .bottom_area .box02 ul li {
    display: flex;
    align-items: center;
    gap: 24px;
    padding: 26px 0;
    border-bottom: 1px solid #B8CCE5;
}

.cs_container .content.content.content02 .bottom_area .box02 ul li:nth-of-type(1) {
    padding: 0 0 26px 0;
}

.cs_container .content.content.content02 .bottom_area .box02 ul li:nth-last-of-type(1) {
    border-bottom: none;
}

.cs_container .content.content.content02 .bottom_area .box02 ul li p.number {
    color: #384EDF;
    font-size: 20px;
    font-weight: 600;
    line-height: 2;
    letter-spacing: 0.1em;
}

.cs_container .content.content.content02 .bottom_area .box02 ul li .text {
    width: calc(100% - 9.24px - 24px);
}

.cs_container .content.content.content02 .bottom_area .box02 ul li .text p:nth-of-type(1) {
    font-size: 18px;
    font-weight: 500;
    line-height: 1.6;
    letter-spacing: 0.1em;
}

.cs_container .content.content.content02 .bottom_area .box02 ul li .text p:nth-of-type(2) {
    margin-top: 2px;
    color: #707280;
    font-size: 14px;
    font-weight: 500;
    line-height: 1.8;
    letter-spacing: 0.1em;
}

/*フロー*/
.flow_container {
    position: relative;
    z-index: 1;
    margin-top: -40px;
    padding: 100px 0;
    background-color: #384EDF;
    border-radius: 40px;
}

.flow_container .inner {
    width: 90%;
    margin: 0 auto;
}

.flow_container .inner h2 {
    color: #FFF;
}

.flow_container .inner .content {
    display: flex;
    flex-wrap: wrap;
    gap: 30px;
    margin-top: 40px;
}

.flow_container .inner .content .box {
    padding: 40px 0;
    width: calc((100% - 60px)/3);
    background-color: #FFF;
    border-radius: 30px;
}

.flow_container .inner .content .box .inner {
    width: 85%;
    margin: 0 auto;
}

.flow_container .inner .content .box .inner .ttl_area {
    display: flex;
    justify-content: space-between;
}

.flow_container .inner .content .box .inner .ttl_area p:nth-of-type(1) {
    color: #384EDF;
    font-size: 48px;
    font-weight: bold;
    line-height: 1.4;
    letter-spacing: 0.1em;
}

.flow_container .inner .content .box .inner .ttl_area p:nth-of-type(2) {
    font-size: 24px;
    font-weight: bold;
    line-height: 1.4;
    letter-spacing: 0.1em;
}

.flow_container .inner .content .box .inner .ttl_area .img {
    width: 85px;
    height: auto;
}

.flow_container .inner .content .box .inner .ttl_area .img img {
    width: 100%;
    height: auto;
}

.flow_container .inner .content .box .inner .txt_area {
    margin-top: 10px;
    font-size: 16px;
    line-height: 1.4;
    letter-spacing: 0.1em;
}

/*FAQ*/
.faq_container {
    margin-top: -40px;
    padding: 240px 0 200px;
    background: url(../img/img_faq_bg01.svg), url(../img/img_faq_bg02.svg), #ECF0F5;
    background-repeat: no-repeat;
    background-position: top 170px right 2%, bottom 60px left 2%;
    background-size: 40%, 22%;
}

.faq_container .inner {
    width: 90%;
    margin: 0 auto;
}

.faq_container .inner .faq_content {
    width: 80%;
    margin: 90px auto 0;
}

.faq_container .inner .faq_content p.ttl_txt {
    padding: 50px 60px;
    background-color: #000;
    border-radius: 30px 30px 0 0;
    color: #FFF;
    font-size: 44px;
    font-weight: bold;
    line-height: 1.5;
    letter-spacing: 0.1em;
}

.faq_container .inner .faq_content .box {
    padding: 50px 40px;
    background-color: #FFF;
    border: 5px solid #3A3A3A;
    border-top: none;
    border-radius: 0 0 30px 30px;
}

.faq_container .inner .faq_content .box p.click_txt {
    margin: 0 auto 50px;
    padding: 0 50px;
    width: fit-content;
    background-color: #E2E2E2;
    border-radius: 50px;
    color: #000;
    font-size: 22px;
    font-weight: bold;
    line-height: 2.2;
    letter-spacing: 0.1em;
}

.faq_container .inner .faq_content .box p.question_txt {
    position: relative;
    margin: 0 0 70px auto;
    padding: 30px;
    width: 70%;
    background-color: #3A3A3A;
    color: #FFF;
    border-radius: 14px;
    font-size: 20px;
    font-weight: bold;
    line-height: 1.5;
    letter-spacing: 0.1em;
    cursor: pointer;
}

.faq_container .inner .faq_content .box p.question_txt::before {
    position: absolute;
    top: -15px;
    right: -11px;
    display: block;
    content: "";
    width: 42px;
    height: 44px;
    background-image: url(../img/speech_bubble_gr.svg);
    background-repeat: no-repeat;
    background-size: cover;
}

.faq_container .inner .faq_content .box p.question_txt.open {
    background-color: #384EDF;
}

.faq_container .inner .faq_content .box p.question_txt.open::before {
    background-image: url(../img/speech_bubble_bl.svg);
}

.faq_container .inner .faq_content .box .answer_txt {
    display: none;
    margin-bottom: 70px;
}

.faq_container .inner .faq_content .box .answer_txt:nth-last-of-type(1) {
    margin-bottom: 0;
}

.faq_container .inner .faq_content .box .answer_txt .answer_inner {
    display: flex;
    gap: 30px;
}

.faq_container .inner .faq_content .box .answer_txt img {
    width: 74px;
    height: 74px;
}

.faq_container .inner .faq_content .box .answer_txt p {
    position: relative;
    margin: 45px 0;
    padding: 30px;
    width: 70%;
    background-color: #384EDF;
    color: #FFF;
    border-radius: 14px;
    font-size: 20px;
    font-weight: bold;
    line-height: 1.5;
    letter-spacing: 0.1em;
}

.faq_container .inner .faq_content .box .answer_txt p::before {
    position: absolute;
    top: -15px;
    left: -11px;
    transform: rotate(280deg);
    display: block;
    content: "";
    width: 42px;
    height: 44px;
    background-image: url(../img/speech_bubble_bl.svg);
    background-repeat: no-repeat;
    background-size: cover;
}

@media screen and (max-width:1200px) {
    .cs_container .content.content02 .bottom_area {
        width: 90%;
    }

    .cs_container .content .bottom_area p.txt_area {
        width: 75%;
    }

    .cs_container .content .bottom_area .box {
        width: 85%;
    }

    .cs_container .content.content.content02 .bottom_area .box .item {
        gap: 60px;
    }

    .cs_container .content.content.content02 .bottom_area .box .item .text {
        width: calc(100% - 60px - 298px);
    }

}

@media screen and (max-width:1024px) {
    .cs_container .content .top_area {
        gap: 60px;
    }

    .cs_container .content .top_area .txt_box {
        width: 50%;
    }

    .cs_container .content .top_area .img_box {
        width: calc(100% - 50% - 60px);
    }

    .cs_container .content .bottom_area p.txt_area {
        width: 90%;
    }

    .cs_container .content .bottom_area .box {
        width: 90%;
    }

}

@media screen and (max-width:990px) {
    .main_txt {
        font-size: 20px;
    }

    /*開発事例*/
    .cs_container .content .top_area,
    .cs_container .content.content02 .top_area {
        flex-direction: column-reverse;
        gap: 70px;
    }

    .cs_container .content .top_area .txt_box {
        width: 90%;
    }

    .cs_container .content.content02 .top_area .txt_box {
        margin: 0 0 0 auto;
    }

    .cs_container .content .top_area .txt_box h3 {
        margin-top: 16px;
    }

    .cs_container .content .top_area .img_box {
        margin: 0 0 0 auto;
        width: 100%;
        max-width: 600px;
    }

    .cs_container .content.content02 .top_area .img_box {
        margin: 0;
    }

    .cs_container .content .top_area .txt_box h3 img {
        max-width: 500px;
    }

    .cs_container .content .bottom_area,
    .cs_container .content.content02 .bottom_area {
        margin-top: 88px;
    }

    .cs_container .content .bottom_area p.txt_area {
        margin-top: 10px;
    }

    .cs_container .content .bottom_area .box {
        flex-direction: column;
        margin-top: 32px;
    }

    .cs_container .content.content02 .bottom_area .box {
        gap: 8px;
        margin-top: 16px;
    }

    .cs_container .content .bottom_area .box .item {
        padding: 45px 24px;
        width: 100%;
    }

    .cs_container .content.content.content02 .bottom_area .box .item {
        padding: 45px 24px;
        flex-direction: column;
        gap: 40px;
    }

    .cs_container .content.content.content02 .bottom_area .box .item .text,
    .cs_container .content.content.content02 .bottom_area .box .item .table {
        width: 100%;
    }

    .cs_container .content.content.content02 .bottom_area .box02 {
        margin-top: 64px;
    }

    .cs_container .content.content.content02 .bottom_area .box02 ul {
        margin-top: 16px;
    }

    /*フロー*/
    .flow_container .inner .content .box {
        width: calc((100% - 30px) / 2);
    }

    /*FAQ*/
    .faq_container .inner .faq_content {
        width: 100%;
    }

    .faq_container .inner .faq_content .box p.click_txt {
        width: 90%;
        font-size: 20px;
        text-align: center;
    }
}


@media screen and (max-width:768px) {
    .main_txt {
        padding: 100px 0 80px;
        text-align: left;
    }

    /*開発事例*/
    .cs_container .content {
        padding: 124px 0 162px;
    }

    .cs_container .content.content02 {
        margin: 156px 0 0 0;
    }

    .cs_container .content .deco_img {
        right: 5%;
    }

    .cs_container .content.content02 .deco_img {
        left: 5%;
    }


    /*フロー*/
    .flow_container .inner .content {
        flex-direction: column;
    }

    .flow_container .inner .content .box {
        width: 100%;
    }

    /*FAQ*/
    .faq_container {
        background-position: top 170px right 2%, bottom 10px left 2%;
        background-size: 50%, 32%;
    }

    .faq_container .inner .faq_content p.ttl_txt {
        padding: 40px 30px;
        font-size: 32px;
    }

    .faq_container .inner .faq_content .box {
        padding: 30px 20px;
    }

    .faq_container .inner .faq_content .box p.click_txt {
        padding: 10px 20px;
        width: 100%;
        line-height: 1.6;
        font-size: 14px;
    }

    .faq_container .inner .faq_content .box p.question_txt {
        margin: 0 0 40px auto;
        padding: 15px 20px;
        font-size: 16px;
    }

    .faq_container .inner .faq_content .box .answer_txt p {
        margin-bottom: 50px;
        padding: 15px 20px;
        font-size: 16px;

    }
}

@media screen and (max-width:500px) {
    .main_txt {
        font-size: 16px;
    }

    /*開発事例*/
    .cs_container .content {
        margin: 150px 0 0 auto;
    }

    .cs_container .content p.number_txt {
        top: -35px;
        left: 50px;
        font-size: 80px;
    }

    .cs_container .content.content02 p.number_txt {
        top: -39px;
        right: 50px;
    }

    .cs_container .content .top_area .txt_box p.case_txt,
    .cs_container .content .top_area .txt_box p:nth-of-type(2),
    .cs_container .content .bottom_area p.txt_area,
    .cs_container .content .bottom_area .box .item p:nth-of-type(2) {
        font-size: 14px;
    }

    .cs_container .content .bottom_area h4 {
        font-size: 18px;
    }

    .cs_container .content .bottom_area .box .item p:nth-of-type(1) {
        font-size: 16px;
    }

    .cs_container .content.content.content02 .bottom_area .box .item .table dl {
        font-size: 12px;
    }

    .cs_container .content.content.content02 .bottom_area .box02 ul li {
        flex-direction: column;
        align-items: flex-start;
        gap: 0;
    }

    .cs_container .content.content.content02 .bottom_area .box02 ul li .text p:nth-of-type(1) span {
        display: block;
    }

    .cs_container .content .deco_img {
        width: 88px;
    }

    .cs_container .content.content02 .deco_img {
        width: 152px;
    }

    /*フロー*/
    .flow_container {
        margin-top: -20px;
        padding: 60px 0;
        border-radius: 20px;
    }

    .flow_container .inner .content .box .inner .ttl_area p:nth-of-type(2) {
        font-size: 22px;
    }

    /*FAQ*/
    .faq_container {
        padding: 140px 0 100px;
        background-position: top 110px right 2%, bottom 10px left 2%;
    }

    .faq_container .inner .faq_content {
        margin: 30px auto 0;
    }

    .faq_container .inner .faq_content .box p.question_txt {
        width: 90%;
    }

    .faq_container .inner .faq_content .box .answer_txt .answer_inner {
        gap: 20px;
    }

    .faq_container .inner .faq_content .box .answer_txt img {
        width: 45px;
        height: 45px;
    }

    .faq_container .inner .faq_content .box .answer_txt p {
        width: 90%;
    }
}


/*---------------------------------------------------------
                採用ページ
---------------------------------------------------------*/
/*働き方について*/
.work_container {
    padding: 200px 0;
    background-color: #ECF0F5;
}

.work_container .inner {
    width: 90%;
    margin: 0 auto;
}

.work_container .ttl_under_txt {
    margin-top: 60px;
    font-size: 20px;
    font-weight: 500;
    line-height: 1.4;
    letter-spacing: 0.1em;
}

.work_container .work_slider {
    margin-top: 90px;
}

.work_container .work_slider .slick-dots {
    top: -40px;
    bottom: unset;
    right: 15%;
    width: fit-content;
}

.work_container .work_slider .slick-dots li button:before {
    font-size: 14px;
}

.work_container .work_slider .slick-dots li.slick-active button:before {
    opacity: 1;
    color: #384EDF;
}

.work_container .work_slider .slide-arrow {
    cursor: pointer;
}

.work_container .work_slider .slide-arrow.prev-arrow {
    position: absolute;
    top: 50%;
    left: 3%;
    z-index: 1;
    display: block;
    width: 30px;
    height: 55px;
}

.work_container .work_slider .slide-arrow.prev-arrow::before {
    position: absolute;
    top: 14.5px;
    left: 0;
    display: inline-block;
    content: "";
    width: 34px;
    height: 5px;
    background-color: #FFF;
    transform: rotate(-45deg);
}

.work_container .work_slider .slide-arrow.prev-arrow::after {
    position: absolute;
    bottom: 14.5px;
    left: 0;
    display: inline-block;
    content: "";
    width: 34px;
    height: 5px;
    background-color: #FFF;
    transform: rotate(45deg);
}

.work_container .work_slider .slide-arrow.next-arrow {
    position: absolute;
    top: 50%;
    right: 3%;
    z-index: 1;
    display: block;
    width: 30px;
    height: 55px;
}

.work_container .work_slider .slide-arrow.next-arrow::before {
    position: absolute;
    top: 14.5px;
    left: 0;
    display: inline-block;
    content: "";
    width: 34px;
    height: 5px;
    background-color: #FFF;
    transform: rotate(45deg);
}

.work_container .work_slider .slide-arrow.next-arrow::after {
    position: absolute;
    bottom: 14.5px;
    left: 0;
    display: inline-block;
    content: "";
    width: 34px;
    height: 5px;
    background-color: #FFF;
    transform: rotate(-45deg);
}

.work_container .work_slider .content {
    position: relative;
    padding: 40px;
    width: 90%;
    background-color: #000;
    border-radius: 30px;
    scale: 0.9;
    transition: all 0.5s;
}

.work_container .work_slider .content::before {
    position: absolute;
    top: 0;
    left: 0;
    z-index: 1;
    display: inline-block;
    content: "";
    width: 100%;
    height: 100%;
    background-color: #000000;
    border-radius: 30px;
    opacity: 0.7;
}

.work_container .work_slider .content.slick-center {
    scale: 1;
    transform: scale(1);
}

.work_container .work_slider .content.slick-center::before {
    display: none;
}

.work_container .work_slider .content .top_txt {
    display: flex;
    align-items: center;
    gap: 15px;
    color: #FFF;
    font-size: 18px;
    font-weight: bold;
}

.work_container .work_slider .content .top_txt img {
    width: 58px;
}

.work_container .work_slider .content .top_txt br {
    display: none;
}

.work_container .work_slider .content .top_txt span:nth-of-type(1) {
    margin-right: 5px;
    font-size: 24px;
}

.work_container .work_slider .content .top_txt span:nth-of-type(2) {
    margin-right: 4px;
    margin-left: 7px;
    font-size: 32px;
}

.work_container .work_slider .content .top_txt span:nth-of-type(3) {
    margin-right: 5px;
    margin-left: 15px;
    font-size: 36px;
}

.work_container .work_slider .content .box {
    margin-top: 17px;
    padding: 25px 0;
    background-color: #FFF;
    border-radius: 20px;
}

.work_container .work_slider .content .box .inner {
    margin: 0 auto;
    width: 90%;
}

.work_container .work_slider .content .box .inner .workstyle_txt {
    padding: 20px 22px;
    background-color: #E9E9E9;
    font-size: 16px;
    font-weight: bold;
    line-height: 1.4;
    letter-spacing: 0.1em;
    border-radius: 10px;
}

.work_container .work_slider .content .box .inner .workstyle_txt.now {
    margin-top: 80px;
    background-color: #FFEFFD;
}

.work_container .work_slider .content .box .inner .workstyle_txt p:nth-of-type(1) {
    padding: 5px 10px;
    margin-bottom: 10px;
    width: fit-content;
    background-color: #3A3A3A;
    color: #FFf;
    font-size: 16px;
    font-weight: 900;
    line-height: 1.4;
    letter-spacing: 0.1em;
    border-radius: 50px;
}

.work_container .work_slider .content .box .inner .workstyle_txt.now p:nth-of-type(1) {
    background-color: #EE76CB;
}

.work_container .work_slider .content .box .inner .flex {
    display: flex;
    justify-content: center;
    gap: 5%;
    margin: 45px 0 40px;
}

.work_container .work_slider .content .box .inner .flex .item {
    position: relative;
    padding: 28px 0;
    width: calc((85% - 5%) / 2);
    border-radius: 10px;
}

.work_container .work_slider .content .box .inner .flex .item.item01 {
    position: relative;
    background-color: #FBC6F6;
}

.work_container .work_slider .content .box .inner .flex .item.item02 {
    background-color: #C0C0C0;
}

.work_container .work_slider .content .box .inner .flex .item p {
    padding: 2px 18px;
    position: absolute;
    top: -15px;
    left: 50%;
    transform: translateX(-50%);
    display: flex;
    align-items: center;
    width: 90px;
    background-color: #EE76CB;
    color: #FFF;
    font-size: 16px;
    font-weight: 900;
    line-height: 1.4;
    letter-spacing: 0.1em;
    border-radius: 50px;
}

.work_container .work_slider .content .box .inner .flex .item.item02 p {
    background-color: #3A3A3A;
}

.work_container .work_slider .content .box .inner .flex .item p span {
    font-size: 20px;
    font-weight: bold;
    line-height: 1.4;
    letter-spacing: 0.2em;
}

.work_container .work_slider .content .box .inner .flex .item ul {
    margin: 0 auto;
    width: 80%;
}

.work_container .work_slider .content .box .inner .flex .item ul li {
    margin: 5px 0;
    padding: 4px 12px;
    display: flex;
    gap: 15px;
    background-color: #FFF;
    font-size: 16px;
    font-weight: bold;
    line-height: 1.4;
    letter-spacing: 0.1em;
    border-radius: 5px;
}

.work_container .work_slider .content .box .inner .flex .item ul li:nth-last-of-type(1) {
    margin-bottom: 0;
}

.work_container .work_slider .content .box .inner .flex .item ul li span {
    display: block;
    width: fit-content;
}

.work_container .work_slider .content .box .inner .flex .item ul li span.circle {
    color: #EE76CB;
}

.work_container .work_slider .content .box .inner .flex .item ul li span.x {
    color: #3A3A3A;
}

.work_container .work_slider .content .box .inner .flex .item .arrow {
    position: absolute;
    bottom: -100px;
    left: 50%;
    transform: translateX(-50%);
    width: 129.84px;
    height: auto;
}

.work_container .work_slider .content .box .inner .flex .item .arrow img {
    width: 100%;
    aspect-ratio: 129.84/111.49;
}

@media screen and (max-width:1200px) {
    .work_container .work_slider .content .box .inner .flex .item {
        width: calc((100% - 5%) / 2);
    }
}

@media screen and (max-width:1024px) {
    .work_container .work_slider .content .box .inner .flex .item ul li {
        flex-direction: column;
        align-items: center;
        gap: 0;
    }
}

@media screen and (max-width:768px) {
    .work_container .work_slider .slide-arrow.prev-arrow {
        left: 1%;
    }

    .work_container .work_slider .slide-arrow.next-arrow {
        right: 1%;
    }

    .work_container .work_slider .content {
        padding: 15px 0 20px;
        border-radius: 20px;
    }

    .work_container .work_slider .content::before {
        border-radius: 20px;
    }

    .work_container .work_slider .content .top_txt {
        margin: 0 0 0 auto;
        width: 95%;
    }

    .work_container .work_slider .content .top_txt img {
        width: 40px;
    }

    .work_container .work_slider .content .top_txt span:nth-of-type(1) {
        margin-right: 4px;
        font-size: 17px;
    }

    .work_container .work_slider .content .top_txt span:nth-of-type(2) {
        margin-right: 3px;
        margin-left: 5px;
        font-size: 22px;
    }

    .work_container .work_slider .content .top_txt span:nth-of-type(3) {
        margin-left: 10px;
        font-size: 24px;
    }

    .work_container .work_slider .content .box {
        border-radius: 0;
    }

    .work_container .work_slider .content .box .inner .workstyle_txt p:nth-of-type(1) {
        font-size: 14px;
    }

    .work_container .work_slider .content .box .inner .flex {
        gap: 5px;
    }

    .work_container .work_slider .content .box .inner .flex .item ul {
        width: 90%;
    }

    .work_container .work_slider .content .box .inner .flex .item ul li {
        font-size: 13px;
    }

    .work_container .work_slider .content .box .inner .flex .item ul li span {
        font-size: 20px;
    }

    .work_container .work_slider .content .box .inner .flex .item .arrow {
        bottom: -60px;
        width: 80px;
    }

    .work_container .work_slider .content .box .inner .workstyle_txt.now {
        margin-top: 50px;
    }
}

@media screen and (max-width:500px) {
    .work_container .work_slider .content .top_txt br {
        display: block;
    }

    .work_container .work_slider .content .top_txt span:nth-of-type(3) {
        margin-left: 0;
    }

    .work_container .work_slider .content .box .inner .workstyle_txt {
        padding: 12px 18px;
        font-size: 14px;
    }

}

/*年収アップのコツ*/
.point_container {
    padding: 200px 0 240px;
    background-color: #ECF0F5;
}

.point_container .inner {
    width: 90%;
    margin: 0 auto;
}

.point_container .ttl_under_txt {
    margin-top: 60px;
    font-size: 20px;
    font-weight: 500;
    line-height: 1.4;
    letter-spacing: 0.1em;
}

.point_container .content {
    display: flex;
    align-items: flex-end;
    gap: 50px;
}

.point_container .content .box {
    position: relative;
    display: flex;
    flex-direction: column;
    gap: 15px;
    width: calc((100% - 100px)/3);
}

.point_container .content .box .main_item {
    display: flex;
    flex-direction: column;
    gap: 8px;
}

.point_container .content .box .up_txt {
    position: absolute;
    top: -130px;
    right: 30px;
    color: #384EDF;
    font-size: 2.1vw;
    font-weight: 900;
    line-height: 1.4;
    letter-spacing: 0.1em;
}

.point_container .content .box .up_txt span {
    font-size: 3vw;
    font-weight: 800;
    line-height: 1.5;
    letter-spacing: 0.05em;
}

.point_container .content .box .main_item p.level_txt {
    padding: 10px 0;
    background-color: #000;
    color: #FFF;
    font-size: 40px;
    font-weight: 900;
    line-height: 1.5;
    letter-spacing: 0.1em;
    text-align: center;
    border-radius: 15px 15px 0 0;
}

.point_container .content .box .main_item .box_txt {
    position: relative;
    background-color: #FFF;
    border: 4px solid #000;
    border-radius: 0 0 15px 15px;
}

.point_container .content .box .main_item .box_txt p:nth-of-type(2) {
    padding: 30px 0;
    font-size: 14px;
    font-weight: 400;
    line-height: 1.4;
    letter-spacing: 0.1em;
}

.point_container .content .box.point1 .box_txt {
    padding: 30px 15px;
}

.point_container .content .box.point2 .box_txt {
    padding: 60px 15px;
}

.point_container .content .box.point3 .box_txt {
    padding: 100px 15px;
}

.point_container .content .box .income_txt {
    position: absolute;
    bottom: -70px;
    left: 50%;
    transform: translateX(-50%);
    width: 250px;
    color: #384EDF;
    font-size: 32px;
    font-weight: 900;
    line-height: 1.4;
    letter-spacing: 0.1em;
    text-align: center;
}

.point_container .content .box .income_txt span {
    margin: 0 5px;
    font-size: 46px;
    font-weight: 800;
    line-height: 1.5;
    letter-spacing: 0.05em;
}

.point_container .content .box.point3 .txt {
    color: #384EDF;
    font-size: 1.4vw;
    font-weight: 900;
    line-height: 1.7;
    letter-spacing: 0.1em;
    text-align: center;
}

.point_container .content .box.point3 .txt span {
    font-size: 3.5vw;
    font-weight: 800;
    line-height: 1.5;
    letter-spacing: 0.05em;
}

.point_container .content .box.point3 .txt span.big {
    font-size: 2.4vw;
    font-weight: 900;
    line-height: 1.4;
    letter-spacing: 0.1em;
}

.point_container .content .box.point1::before,
.point_container .content .box.point2::before {
    position: absolute;
    top: -80px;
    right: -30px;
    display: block;
    content: "";
    width: 90px;
    height: 72px;
    background-image: url(../img/img_point_arrow.svg);
    background-repeat: no-repeat;
    background-size: cover;
}


.recruite_faq {
    padding-top: 200px;
    background-color: #FFF;
}

.recruite_faq .content {
    position: relative;
    margin: 0 auto;
    padding: 50px 0;
    width: 81.2vw;
    max-width: 990px;
    background-color: #ECF0F5;
    border-radius: 40px;
}

.recruite_faq .content .ic_img {
    position: absolute;
    top: -10%;
    left: -5%;
    width: 133px;
}

.recruite_faq .content .ic_img img {
    width: 100%;
    height: auto;
}

.recruite_faq .content .inner {
    width: 77%;
    margin: 0 auto;
}

.recruite_faq .content .inner p.recruite_question_txt {
    padding-bottom: 28px;
    font-size: 22px;
    font-weight: 500;
    line-height: 1.6;
    border-bottom: 1px solid #B5B5B5;
}

.recruite_faq .content .inner p.recruite_question_txt span {
    color: #384EDF;
    font-size: 28px;
}

.recruite_faq .content .inner p.recruite_answer_txt {
    margin-top: 28px;
    font-size: 22px;
    font-weight: 500;
    line-height: normal;
    letter-spacing: 0.1em;
}

.recruite_faq .content .inner p.recruite_answer_txt span {
    display: block;
    color: #384EDF;
}

.recruite_faq .content .inner .tag_area {
    display: flex;
    align-items: center;
    gap: 16px;
    margin-top: 24px;
}

.recruite_faq .content .inner .tag_area p {
    padding: 5px 0;
    width: calc((100% - 48px)/3);
    background-color: #FFF;
    border-radius: 15px;
    color: #707280;
    font-size: 16px;
    font-weight: 400;
    line-height: 1.6;
    letter-spacing: 0.1em;
    text-align: center;
}

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

    /*ポイント*/
    .point_container .content {
        flex-direction: column;
        align-items: center;
        gap: 130px;
        margin-top: 50px;
    }

    .point_container .content .box {
        width: 80%;
        flex-direction: column-reverse;
    }

    .point_container .content .box.point1::before,
    .point_container .content .box.point2::before {
        top: unset;
        right: 60%;
        bottom: -100px;
        transform: scale(-1, 1) rotate(90deg);
    }

    .point_container .content .box .income_txt {
        position: unset;
        transform: unset;
        width: 100%;
    }

    .point_container .content .box.point1 .box_txt,
    .point_container .content .box.point2 .box_txt,
    .point_container .content .box.point3 .box_txt {
        padding: 20px 15px;
    }

    .point_container .content .box .main_item .box_txt p:nth-of-type(2) {
        padding: 20px 0;
        font-size: 18px;
    }

    .point_container .content .box .up_txt {
        top: unset;
        right: 140px;
        bottom: -80px;
        font-size: max(4vw, 20px);
    }

    .point_container .content .box .up_txt span {
        font-size: max(4.6vw, 28px);
    }

    .point_container .content .box.point3 .txt {
        font-size: max(3.4vw, 20px);
    }

    .point_container .content .box.point3 .txt span {
        font-size: max(6.5vw, 46px);
    }

    .point_container .content .box.point3 .txt span.big {
        font-size: max(4.8vw, 35px);
        vertical-align: text-bottom;
    }

    .recruite_faq .content {
        padding: 70px 0 50px;
    }

    .recruite_faq .content .inner .tag_area {
        flex-direction: column;
    }

    .recruite_faq .content .inner .tag_area p {
        width: 100%;
    }
}

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

    /*働き方*/
    .work_container {
        padding: 100px 0;
    }

    /*ポイント*/
    .point_container {
        padding: 100px 0 140px;
    }

    .point_container .content .box {
        width: 90%;
    }

    .point_container .content .box .income_txt {
        font-size: 26px;
    }

    .point_container .content .box .main_item p.level_txt {
        font-size: 32px;
    }

    .point_container .content .box .income_txt span {
        font-size: 37px;
    }

    .point_container .content .box .up_txt {
        right: 25%;
    }

    .recruite_faq .content .ic_img {
        top: -5%;
        width: 100px;
    }

    .recruite_faq .content .inner p.question_txt {
        padding-bottom: 15px;
        font-size: 16px;
    }

    .recruite_faq .content .inner p.recruite_question_txt span {
        font-size: 20px;
    }

    .recruite_faq .content .inner p.recruite_answer_txt {
        margin-top: 15px;
        font-size: 16px;
    }
}

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

    /*働き方*/
    .work_container {
        padding: 50px 0;
    }

    .work_container .ttl_under_txt {
        margin-top: 30px;
        font-size: 16px;
    }

    /*ポイント*/
    .point_container {
        padding: 50px 0 70px;
    }

    .point_container .ttl_under_txt {
        margin-top: 30px;
        font-size: 16px;
    }

    .point_container .content .box .main_item .box_txt p:nth-of-type(2) {
        padding: 10px 0;
    }

    .point_container .content .box.point1 .box_txt,
    .point_container .content .box.point2 .box_txt,
    .point_container .content .box.point3 .box_txt {
        padding: 10px 15px;
    }

    .recruite_faq .content {
        padding: 80px 0 50px;
        width: 90vw;
    }

    .recruite_faq .content .inner {
        width: 90%;
    }
}




/*---------------------------------------------------------
                お問い合わせフォーム
---------------------------------------------------------*/
/*お問い合わせフォーム*/
.contact_form {
    padding: 200px 0 250px;
    background-color: #FFF;
}

.contact_form h2.form_ttl {
    font-size: 22px;
    font-weight: bold;
    line-height: 1.4;
    letter-spacing: 0.2em;
    text-align: center;
}

.contact_form h2.form_ttl span {
    display: block;
    font-size: 67px;
    font-weight: bold;
    line-height: 1;
    letter-spacing: 0.1em;
}

.contact_form table {
    width: 85%;
    margin: 80px auto 100px;
}

.contact_form table tr {
    display: flex;
    gap: 50px;
    margin-bottom: 40px;
}

.contact_form table tr th {
    width: 280px;
    font-size: 24px;
    font-weight: 600;
    line-height: 2.3;
    letter-spacing: 0.1em;
    text-align: left;
}

.contact_form table tr th span {
    margin-right: 15px;
    padding: 2px 10px;
    color: #FFF;
    font-size: 14px;
    font-weight: bold;
    line-height: 1.4;
    letter-spacing: 0.1em;
    border-radius: 50px;
}

.contact_form table tr th span.required {
    background-color: #384EDF;
}

.contact_form table tr th span.any {
    background-color: #000;
}

.contact_form table tr td {
    width: calc(100% - 50px - 280px);
}

.contact_form table tr td input {
    padding: 14px;
    width: 100%;
    border: 3px solid #000;
    border-radius: 15px;
    color: #000;
    font-size: 24px;
    font-weight: 600;
    letter-spacing: 0.1em;
}

::placeholder {
    color: #969696;
    font-size: 24px;
    font-weight: 600;
    letter-spacing: 0.1em;
}

.contact_form table tr td select {
    padding: 14px;
    width: 100%;
    border: 3px solid #000;
    border-radius: 15px;
    color: #000;
    font-size: 24px;
    font-weight: 600;
    letter-spacing: 0.1em;
}

.wpcf7-form-control {
    appearance: none;
}

.contact_form table tr td.select {
    position: relative;
}

.contact_form table tr td.select::before {
    position: absolute;
    top: 50%;
    right: 25px;
    z-index: 1;
    transform: translateY(-50%);
    display: inline-block;
    content: "";
    width: 25px;
    height: 22px;
    background-image: url(../img/ic_arrow.svg);
    background-repeat: no-repeat;
    background-size: cover;
    pointer-events: none;
}

.contact_form table tr td textarea {
    padding: 14px;
    width: 100%;
    border: 3px solid #000;
    border-radius: 15px;
    font-size: 24px;
    font-weight: 600;
    letter-spacing: 0.1em;
}

.contact_form p.note_txt {
    width: 90%;
    margin: 0 auto 40px;
    font-size: 24px;
    font-weight: 500;
    line-height: 1.4;
    letter-spacing: 0.1em;
    text-align: center;
}

.contact_form p.note_txt a {
    color: #000;
    text-decoration: underline;
}

.wpcf7-not-valid-tip {
    margin-top: 5px;
    font-size: 16px !important;
    font-weight: bold !important;
}

.contact_btn {
    display: block;
    flex: auto;
    margin: 0 auto;
    padding: 20px;
    width: 300px;
    background: #384EDF;
    border: none;
    border-radius: 10px;
    color: #fff;
    font-size: 24px;
    font-weight: bold;
    line-height: 1.8;
    letter-spacing: 0.1em;
    text-align: center;
    transition: 0.3s;
    cursor: pointer;
}

/*採用フォーム*/
.contact_form tr td.birth p {
    display: flex;
    align-items: center;
    font-size: 24px;
    font-weight: 600;
    line-height: 1.4;
    letter-spacing: 0.1em;
}

.contact_form tr td.birth p span {
    margin-right: 20px;
    margin-left: 20px;
}

.contact_form tr td.birth p span:nth-of-type(1) {
    margin-left: 0;
}

.codedropz-upload-handler {
    border: 3px solid #000 !important;
    border-radius: 15px !important;
}

.codedropz-upload-container {
    padding: 40px !important;
}

.codedropz-upload-inner {
    font-size: 20px;
    font-weight: bold !important;
    line-height: 1.4;
    letter-spacing: 0.1em;
}

.codedropz-upload-inner span:nth-of-type(1),
.codedropz-upload-inner span:nth-of-type(2) {
    color: #969696;
}

.codedropz-upload-inner span:nth-of-type(2) {
    margin-left: -0.5em;
}

.codedropz-upload-inner span:nth-of-type(3) {
    color: #384EDF;
}

.dnd-upload-counter {
    color: #969696;
}

.contact_form .min {
    display: block;
    color: #384EDF;
    font-size: 14px;
    margin-top: 4px;
    text-align: right;
    font-weight: 600;
}

.recaptcha_txt {
    margin-top: 10px;
    color: #969696;
    font-size: 11px;
}

.recaptcha_txt a {
    color: #384EDF;
}

@media screen and (max-width:768px) {
    .contact_form {
        padding: 100px 0 150px;
    }

    .contact_form table {
        margin: 50px auto;
    }

    .contact_form table tr {
        flex-direction: column;
        gap: 10px;
        margin-bottom: 20px;
    }

    .contact_form table tr th {
        width: 100%;
    }

    .contact_form table tr td {
        width: 100%;
    }

    .contact_form p.note_txt {
        font-size: 20px;
        text-align: left;
    }
}

@media screen and (max-width:500px) {
    .contact_form h2.form_ttl {
        font-size: 16px;
    }

    .contact_form h2.form_ttl span {
        font-size: 40px;
    }

    .contact_form table {
        margin: 40px auto 20px;
    }

    .contact_form table tr th {
        font-size: 18px;
    }

    .contact_form table tr td input {
        font-size: 18px;
    }

    .contact_form table tr td select {
        font-size: 18px;
    }

    .codedropz-upload-inner {
        font-size: 18px;
    }

    .contact_form tr td.birth p {
        font-size: 18px;
    }

    .contact_form tr td.birth p span {
        margin: 0 10px;
    }

    ::placeholder {
        font-size: 18px;
    }

    .contact_form p.note_txt {
        margin: 0 auto 20px;
        font-size: 16px;
    }

    .contact_btn {
        font-size: 16px;
    }
}

/*---------------------------------------------------------
                お問い合わせ確認画面
---------------------------------------------------------*/
.popup_contact_wrapper {
    display: none;
    height: 100%;
    position: fixed;
    top: 0;
    left: 0;
    z-index: 99;
    width: 100%;
    top: 50%;
    left: 50%;
    transform: translate(-50%, -50%);
}

.popup_contact_wrapper .popup_contact_bg {
    width: 100%;
    height: 100%;
    background-color: #000;
    opacity: 0.7;
    cursor: pointer;
}

.popup_contact_wrapper .container_popup {
    display: none;
    position: absolute;
    top: 50%;
    left: 50%;
    transform: translate(-50%, -50%);
    padding: 20px;
    width: 70%;
    min-width: 300px;
    height: calc(100% - 80px);
    background-color: #FFF;
    border: 5px solid #384EDF;
    border-radius: 40px;
    overflow-y: scroll;
}

.popup_contact_wrapper .container_popup .contact_h2 {
    color: #384EDF;
    font-size: 22px;
    font-weight: bold;
    line-height: 1.4;
    letter-spacing: 0.2em;
    text-align: center;
}

.popup_contact_wrapper .confirm_list li {
    margin-top: 40px;
}

.popup_contact_wrapper .confirm_item {
    margin-bottom: 10px;
    color: #384EDF;
    font-size: 18px;
    font-weight: bold;
    line-height: 1.4;
    letter-spacing: 0.1em;
}

.popup_contact_wrapper .form_input {
    font-size: 18px;
    font-weight: bold;
    line-height: 1.4;
    letter-spacing: 0.1em;
}

.btn_area p {
    display: flex;
    justify-content: center;
    flex-wrap: wrap;
    gap: 16px;
    margin-top: 56px;
}

.contact_back {
    display: block;
    flex: 1;
    padding: 20px;
    margin: 0 auto;
    min-width: 100px;
    background: #fff;
    border: 2px solid #E3E3E3;
    border-radius: 10px;
    font-size: 24px;
    font-weight: bold;
    line-height: 1.8;
    letter-spacing: 0.1em;
    text-align: center;
    transition: 0.3s;
    cursor: pointer;
}

.wpcf7-spinner {
    display: none !important;
}

.wpcf7 form .wpcf7-response-output {
    margin: 40px auto 0 !important;
    padding: 40px 20px !important;
    width: 90%;
    background: #fff;
}

@media screen and (max-width:500px) {
    .popup_contact_wrapper .container_popup {
        padding: 20px;
        width: 95%;
        border-radius: 20px;
    }

    .popup_contact_wrapper .container_popup .contact_h2 {
        font-size: 20px;
    }

    .contact_back {
        padding: 10px;
        font-size: 16px;
        line-height: 2.7;
    }

    .popup_contact_wrapper .confirm_item {
        font-size: 16px;
    }

    .popup_contact_wrapper .form_input {
        font-size: 16px;
    }

}

/*---------------------------------------------------------
                トップページ コンセプト
---------------------------------------------------------*/
.privacy_policy_content {
    background-color: #FFF;
}

.privacy_policy_container .under_mv h1 span {
    line-height: 1.4;
}

.privacy_policy_content .inner {
    width: 80%;
    margin: 0 auto;
    padding: 50px 0;
}

.privacy_policy_content .privacy_policy_main_txt {
    margin: 30px 0;
    font-weight: 500;
    line-height: 1.8;
}

.privacy_policy_content .privacy_policy_sbtitle {
    font-size: 24px;
    font-weight: bold;
    line-height: 1.4;
}

.privacy_policy_content .privacy_policy_txt {
    margin-top: 10px;
    margin-bottom: 30px;
    font-weight: 500;
    line-height: 1.8;
    letter-spacing: 0.1em;
}

.privacy_policy_content .privacy_policy_txt.none {
    margin-bottom: 10px;
}

.privacy_policy_content .privacy_policy_list {
    margin-left: 1.5rem;
    margin-top: 10px;
    margin-bottom: 30px;
}

.privacy_policy_content .privacy_policy_list.in {
    margin-bottom: 10px;
}

.privacy_policy_content .privacy_policy_list li {
    list-style: auto;
    margin-bottom: 5px;
    font-weight: 500;
    line-height: 1.4;
    letter-spacing: 0.1em;
}

.privacy_policy_content .privacy_policy_contact {
    margin-top: 20px;
}

.privacy_policy_content .privacy_policy_contact dl {
    display: flex;
    margin-bottom: 10px;
    font-weight: 500;
    line-height: 1.4;
}

@media screen and (max-width:1024px) {
    .under_mv h1 {
        font-size: 28px;
    }

    .privacy_policy_container .under_mv h1 span {
        font-size: 68px;
    }
}

@media screen and (max-width:990px) {
    .privacy_policy_content .inner {
        width: 90%;
    }
}

@media screen and (max-width:768px) {
    .privacy_policy_content .privacy_policy_sbtitle {
        font-size: 20px;
    }

    .privacy_policy_content .privacy_policy_contact dl {
        flex-direction: column;
    }
}

@media screen and (max-width:500px) {
    .privacy_policy_container .under_mv h1 span {
        font-size: 42px;
    }

    .privacy_policy_content .inner {
        width: 90%;
        padding: 30px 0;
    }
}