/*   
Theme Name: musuhi_202602
*/
@charset "UTF-8";

/* Repeatable Patterns
----------------------------------------------------*/

html {
    font-size: 62.5%;
}

html.is-scroll-prevent {
    height: 100%;
    overflow: hidden;
}

* {
    box-sizing: border-box;
}

body {
    background: #fff;
    color: #61005f;
    font-family: "Midashi Go MB31", sans-serif;
    line-height: 1;
    letter-spacing: .1rem;
    position: relative;
    -webkit-font-smoothing: antialiased;
    -moz-osx-font-smoothing: grayscale;
    font-feature-settings: "palt";
}

.all_container {
    position: relative;
    overflow: hidden;
}

/* print setting */
@media print {
    html {
        font-size: 38%;
    }

    body {
        -webkit-print-color-adjust: exact;
    }
}

h1,
h2,
h3,
h4,
h5,
h6,
p {
    font-weight: inherit;
    margin: 0;
}

ul {
    margin: 0;
}

a {
    color: #61005f;
    text-decoration: none;
    transition: 0.5s ease-out;
}

a:hover {
    opacity: .7;
}

a img {
    transition: 0.5s ease-out;
}

a:hover img {
    opacity: .7;
}

::-moz-selection {
    background: #61005f;
    color: #fff;
    text-shadow: none;
}

::selection {
    background: #61005f;
    color: #fff;
    text-shadow: none;
}

figure {
    margin: 0;
}

img {
    width: 100%;
    height: auto;
    -webkit-backface-visibility: hidden;
    backface-visibility: hidden;
}

svg {
    fill: currentcolor;
    vertical-align: middle;
}

svg + * {
    vertical-align: middle;
}


ul {
    list-style-type: none;
    padding: 0;
}

input,
textarea,
button {
    font-family: YuGothic, "游ゴシック体", "Yu Gothic Bold", "游ゴシック Bold", "Hiragino Kaku Gothic ProN", "Hiragino Sans", "Noto Sans JP", sans-serif;
    font-weight: 700;
    letter-spacing: .1rem;
    -moz-appearance: none;
    -webkit-appearance: none;
    appearance: none;
    background: none;
    border-radius: 0;
    transition: 0.3s ease-out;
    cursor: pointer;
    color: #61005f;
    border: none;
}

.wrapper {
    width: calc(920 / 1280 * 100%);
    max-width: 920px;
    margin-left: auto;
    margin-right: auto;
}

.sub_wrapper {
    max-width: 77rem;
    margin-left: auto;
    margin-right: auto;
}

.contact_sub_wrapper {
    max-width: 90rem;
    margin-left: auto;
    margin-right: auto;
}

.flex {
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    -ms-flex-wrap: wrap;
    flex-wrap: wrap;
}


/*テキスト*/
.text_01 {
    font-size: 2.2rem;
    line-height: 2.2;
    text-align: justify;
}

.text_02 {
    font-size: 1.7rem;
    line-height: 2.2;
    text-align: justify;
}

/*リンク*/
.link_button {
    position: relative;
    width: 26rem;
    display: block;
    aspect-ratio: 260 / 45;
}

.link_button img {
    position: absolute;
    top: 50%;
    left: 50%;
    transform: translate(-50%, -50%);
    display: block;
    transition: 0.5s ease-in-out;
}

.link_button .normal {
    opacity: 1;
}

.link_button .hover {
    opacity: 0;
}

.link_button:hover .normal {
    opacity: 0;
}

.link_button:hover .hover {
    opacity: 1;
}

/*アニメーション*/
.fadein {
    opacity: 0;
    transition: 2s ease-out;
}

.fadein.scrollin {
    opacity: 1;
}

@media print {
    .fadein, .zoomIn {
        opacity: 1;
    }
}

/* 拡大 */
.zoomIn {
    opacity: 0;
}

.zoomIn.scrollin {
    opacity: 1;
    animation-name: zoomInAnime;
    animation-duration: .5s;
    animation-fill-mode: forwards;
}

@keyframes zoomInAnime {
    from {
        transform: scale(0.6);
    }

    to {
        transform: scale(1);
    }
}

#splash {
    position: fixed;
    width: 100%;
    height: 100%;
    z-index: 9999;
    background: #fff;
    text-align: center;
}

#splash_logo {
    width: 53rem;
    position: absolute;
    top: 50%;
    left: 50%;
    transform: translate(-50%, -50%);
    animation-name: splashAnime;
    animation-duration: 2s;
    animation-fill-mode: forwards;
    opacity: 0;
}

@keyframes splashAnime {
    from {
        opacity: 0;
    }

    to {
        opacity: 1;
    }
}

/* メインヘッダー
----------------------------------------------------*/

.header_container {
    width: 100%;
}

body:not(.home) .header_inner {
    padding-top: 5rem;
}

.header_logo {
    width: calc(230 / 1280 * 100%);
    margin: auto;
    max-width: 23rem;
}

.main_nav{
    transition: .3s ease-out;
    opacity: 0;
}

.is-display.main_nav{
    opacity: 1;
}

.main_nav_list {
    position: fixed;
    top: 0;
    right: 4.6%;
    z-index: 9;
    flex-direction: column;
    align-items: flex-start;
    justify-content: center;
    height: 100vh;
}

.main_nav_item + .main_nav_item {
    margin-top: 2.5vh;
}

.main_nav_link img {
    width: 1.45rem;
}

.main_nav_item:nth-child(4) img,
.main_nav_item:nth-child(5) img {
    width: 1.3rem;
}

.nav_img {
    display: block;
    -webkit-mask-size: contain;
    -webkit-mask-repeat: no-repeat;
    -webkit-mask-position: center;
    mask-size: contain;
    mask-repeat: no-repeat;
    mask-position: center;
    background-color: #61005f;
}

.home .main_nav .nav_img,
.top_mission_container .nav_img {
    background-color: #fff;
}

.is-color.main_nav .nav_img{
    background-color: #61005f !important;
}

.nav_mission {
    width: 1.5rem;
    height: 7.6rem;
    -webkit-mask-image: url(img/nav_mission.svg);
    mask-image: url(img/nav_mission.svg);
}

.nav_about {
    width: 1.5rem;
    height: 5.6rem;
    -webkit-mask-image: url(img/nav_about.svg);
    mask-image: url(img/nav_about.svg);
}

.nav_services {
    width: 1.5rem;
    height: 8.2rem;
    -webkit-mask-image: url(img/nav_services.svg);
    mask-image: url(img/nav_services.svg);
}

.nav_team {
    width: 1.3rem;
    height: 4.9rem;
    -webkit-mask-image: url(img/nav_team.svg);
    mask-image: url(img/nav_team.svg);
}

.nav_contact {
    width: 1.3rem;
    height: 7.5rem;
    -webkit-mask-image: url(img/nav_contact.svg);
    mask-image: url(img/nav_contact.svg);
}

/* メインフッター 
----------------------------------------------------*/

.footer_container {
    position: relative;
    padding-top: 15rem;
    padding-bottom: 15rem;
}

.footer_logo {
    width: calc(294 / 770 * 100%);
    margin: auto;
}

.footer_copyright {
    position: absolute;
    bottom: 13rem;
    left: 4.6%;
    width: 1.7rem;
}

.footer_pattern {
    width: calc(1150 / 1280 * 100%);
    max-width: 1150px;
    position: absolute;
    bottom: 0;
    left: 0;
    right: 0;
    margin: auto;
}

/* メインコンテナー .main_container
----------------------------------------------------*/

/* ----- トップページ ----- */

/*メインビジュアル*/
.home .header_container {
    margin-top: -2.8rem;
    margin-bottom: .6rem;
}

.top_visual_container {
    position: relative;
    width: 100%;
    height: 100vh;
    height: 100svh;
    background: #61005f;
    flex-direction: column;
    justify-content: center;
    align-items: center;
}

.top_visual_tagline {
    width: calc(320 / 1280 * 100%);
    margin: .5rem auto 0;
    max-width: 32rem;
}

.top_main_slider {
    width: calc(940 / 1280 * 100%);
}

.top_main_slider img {
    -webkit-mask-size: contain;
    -webkit-mask-repeat: no-repeat;
    -webkit-mask-position: center;
    mask-size: contain;
    mask-repeat: no-repeat;
    mask-position: center;
    -webkit-mask-image: url(img/fv_frame_pc.svg);
    mask-image: url(img/fv_frame_pc.svg);
}

.animation_scroll {
    position: absolute;
    left: 4.6%;
    bottom: 6rem;
    z-index: 9;
    flex-direction: column;
    align-items: center;
}

.animation_scroll span {
    width: 1px;
    height: 6.7rem;
    background: #fff;
    display: block;
    animation: scroll 1.8s cubic-bezier(1, 0, 0, 1) infinite;
    margin-left: -.4rem;
}

@keyframes scroll {
    0% {
        transform: scale(1, 0);
        transform-origin: 0 0;
    }

    50% {
        transform: scale(1, 1);
        transform-origin: 0 0;
    }

    50.1% {
        transform: scale(1, 1);
        transform-origin: 0 100%;
    }

    100% {
        transform: scale(1, 0);
        transform-origin: 0 100%;
    }
}

.animation_scroll img {
    width: 1.4rem;
    padding-top: 1.2rem;
}

/*ミッション*/
.top_mission_container {
    background: #61005f;
    color: #fff;
    padding-top: 20rem;
    margin-top: -1px;
}

.top_section_inner {
    position: relative;
}

.top_section_name {
    position: absolute;
    top: 0;
    right: 4.6%;
}

.top_section_name span {
    width: 1px;
    height: 16rem;
    background: #61005f;
    display: block;
    margin-left: .4rem;
    margin-bottom: 1rem;
}

.top_mission_container .top_section_name span {
    background: #fff;
}

.top_mission_inner {
    flex-direction: row-reverse;
}

.top_mission_heading {
    width: 5.9rem;
}

.top_mission_text {
    width: calc(100% - 5.9rem);
}

.top_mission_video {
    width: 100%;
    padding-top: 15rem;
}

/*ミッション*/
.top_about_container {
    padding-top: 15rem;
}

.top_about_intro {
    padding-bottom: 12rem;
}

.top_about_intro_heading {
    width: 22.3rem;
    margin-bottom: 8rem;
}

.top_about_tech {
    background: #f6f4ef;
    padding-top: 11rem;
    padding-bottom: 10rem;
}

.top_about_tech_heading {
    font-size: 4.1rem;
    letter-spacing: .1rem;
    margin-bottom: 7.4rem;
}

.top_about_phase {
    overflow: hidden;
}

.top_about_phase_header {
    padding-top: 6.4rem;
    padding-bottom: 6.4rem;
}

.top_about_phase_heading {
    font-size: 3rem;
    letter-spacing: .1rem;
}

.top_about_phase_block {
    position: relative;
    padding-top: 8rem;
}

.top_about_phase-1 {
    background: #f5eded;
    padding-bottom: 10rem;
}

.top_about_phase-2 {
    background: #eee6e5;
    padding-bottom: 10rem;
}

.top_about_phase-3 {
    background: #e2d7d7;
    padding-bottom: 6.8rem;
}

.top_about_phase-1::after,
.top_about_phase-2::after {
    content: "";
    position: absolute;
    bottom: 0;
    left: 0;
    right: 0;
    width: 0;
    height: 0;
}

.top_about_phase-1::after {
    border-left: 50vw solid #eee6e5;
    border-right: 50vw solid #eee6e5;
    border-top: 8rem solid #f5eded;
}

.top_about_phase-2::after {
    border-left: 50vw solid #e2d7d7;
    border-right: 50vw solid #e2d7d7;
    border-top: 8rem solid #eee6e5;
}


.top_about_phase_inner {
    position: relative;
    padding-left: 10rem;
}

.phase_number {
    position: absolute;
    top: 0;
    bottom: 0;
    left: 0;
    margin: auto;
    width: 3rem;
}

.phase_img {
    width: 18.3rem;
}

.phase_body {
    width: calc(100% - 18.3rem);
    padding-left: 6rem;
    margin-top: -.6rem;
}

.phase_title {
    width: 130%;
    font-size: 3rem;
    line-height: 1.3;
    letter-spacing: .07rem;
    margin-bottom: 4.5rem;
}

.top_about_phase-3 .phase_title {
    margin-bottom: 7.5rem;
}

.phase_text {
    font-size: 2.5rem;
    line-height: 2;
}

.top_about_slide img {
    width: 50vw;
}

/*事業*/

.top_services_container {
    padding-top: 14rem;
}

.top_services_intro_heading {
    width: 26.2rem;
    margin-bottom: 7.2rem;
}

.top_services_intro_img {
    width: calc(1182 / 1280 * 100%);
    margin: 7.6rem auto 0;
    display: block;
    background-image: url(img/services_img_ballon_pc.svg);
    background-repeat: no-repeat;
    background-position: center;
    background-size: contain;
}

.top_services_intro_img img{
    -webkit-transform: translateZ(0);
    transform: translateZ(0);
    will-change: transform;
}

.top_services_consulting {
    padding-top: 13rem;
}

.top_services_consulting_heading,
.top_services_ecosystem_heading {
    width: 29.3rem;
    margin-bottom: 6rem;
}

.top_services_consulting_midashi,
.top_services_ecosystem_midashi {
    font-size: 4.4rem;
    line-height: 1.5;
    margin-bottom: 7.2rem;
}

.top_services_consulting_midashi span,
.top_services_ecosystem_midashi span {
    font-size: 3.5rem;
}

.services_list {
    margin-top: 5rem;
    padding: 20rem 28% 12rem;
    list-style-type: none;
}

.top_services_consulting_list {
    background-image: url(img/consulting_ballon_pc.svg);
    background-repeat: no-repeat;
    background-position: center;
    background-size: contain;
    margin-left: -24%;
    margin-right: -24%;
}

.services_list_item {
    font-size: 3.6rem;
}

.services_list_item + .services_list_item {
    margin-top: 6rem;
}

.services_list_inner {
    padding-bottom: 1px;
}

.services_list_heading {
    line-height: 1.3;
    margin-bottom: 2rem;
}

.services_list_text {
    font-size: 2.4rem;
    line-height: 1.5;
    margin-left: 4.8rem;
}

.services_list_link {
    margin: 2.6rem 0 0 auto;
}

.top_services_slide img {
    width: 33.33vw;
}

.top_services_ecosystem {
    padding-top: 11rem;
}

.top_services_ecosystem_list {
    background-image: url(img/ecosystem_ballon_pc.svg);
    background-repeat: no-repeat;
    background-position: center;
    background-size: contain;
    margin-left: -24%;
    margin-right: -24%;
}

/*アニメーション*/
.slide-in {
    overflow: hidden;
    display: block;
}

.slide-in_inner {
    display: block;
}

.leftAnime {
    opacity: 0;
    /*事前に透過0にして消しておく*/
}

.slideAnimeLeftRight {
    animation-name: slideTextX100;
    animation-duration: 1.4s;
    animation-fill-mode: forwards;
    opacity: 0;
}

@keyframes slideTextX100 {
    from {
        transform: translateX(-100%);
        /*要素を左の枠外に移動*/
        opacity: 0;
    }

    to {
        transform: translateX(0);
        /*要素を元の位置に移動*/
        opacity: 1;
    }
}

.slideAnimeRightLeft {
    animation-name: slideTextX-100;
    animation-duration: 1.4s;
    animation-fill-mode: forwards;
    opacity: 0;
}


@keyframes slideTextX-100 {
    from {
        transform: translateX(100%);
        /*要素を右の枠外に移動*/
        opacity: 0;
    }

    to {
        transform: translateX(0);
        /*要素を元の位置に移動*/
        opacity: 1;
    }
}

.top_services_slider {
    padding-top: 13rem;
}

/*チーム*/
.top_team_container {
    padding-top: 14rem;
}

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

.top_team_item {
    width: calc(100% / 3);
    padding-bottom: 9.8rem;
}

.top_team_position {
    height: 8rem;
    font-size: 1.8rem;
    line-height: 1.25;
    color: #000000;
}

.top_team_name {
    font-size: 3.3rem;
    letter-spacing: .15rem;
}

/*インフォメーション*/

.top_info_container {
    padding-top: 10rem;
}

.top_info_contact {
    width: calc(492 / 770 * 100%);
    margin: 0 auto 17rem;
    display: block;
}

.top_info_text {
    font-size: 2.2rem;
    line-height: 2.1;
    text-align: center;
}

.top_info_policy {
    margin: 3.4rem auto 0;
    width: 14rem;
    display: block;
}

/* ----- 固定ページ ----- */

body:not(.home) .main_container {
    padding-top: 13rem;
}

/*本文*/
.post_body > * + * {
    margin: 4rem 0;
}

.post_body figure {
    margin: 8rem 0;
}

.post_body figure:first-child {
    margin-top: 0;
}

.post_body h2 {
    font-size: 3.2rem;
    line-height: 1.5;
    margin-top: 9rem;
    margin-bottom: 6rem;
}

.post_body a {
    text-decoration: underline;
}

.post_body figure.is-type-video .wp-block-embed__wrapper {
    position: relative;
    width: 100%;
    padding-top: 56.25%;
}

.post_body figure.is-type-video iframe {
    position: absolute;
    top: 0;
    right: 0;
    width: 100% !important;
    height: 100% !important;
}

.post_body ul {
    list-style-type: disc;
    margin-left: 2rem;
}

.post_body ol {
    list-style-type: decimal;
    margin-left: 2rem;
}


/* ----- Contact ----- */

.page-contact .page_heading {
    width: 15.8rem;
    margin-bottom: 12rem;
}

.form_list {
    list-style-type: none !important;
    margin-left: 0 !important;
}

.form_item + .form_item {
    padding-top: 4rem;
}

.form_title {
    font-size: 2rem;
    line-height: 1.4;
    width: 25%;
    padding-top: 1.8rem;
}

.form_item:first-child .form_title {
    padding-top: .7rem;
}

.form_title span {
    color: #f5a200;
    font-size: 1.5rem;
    padding-left: .8rem;
}

.form_box {
    width: 75%;
}

.form_box input,
.form_box textarea {
    font-size: 1.8rem;
    line-height: 1.8;
    width: 100%;
    background: #fff;
    border: 1px solid #61005f;
}

.form_box input {
    padding: 1.2rem 1.4rem;
}

.form_box textarea {
    padding: 1.6rem 1.4rem;
}

.wpcf7-list-item-label {
    cursor: pointer;
    display: flex;
    align-items: center;
    font-size: 2rem;
}

.wpcf7-list-item {
    margin-left: 0 !important;
    margin-right: 2rem !important;
    margin-bottom: 0 !important;
}

input[type="radio"] {
    opacity: 0;
    position: absolute;
}

.wpcf7-list-item-label::before {
    background: #fff;
    border-radius: 100%;
    content: "";
    width: 2rem;
    height: 2rem;
    margin-bottom: auto;
    margin-right: 1.2rem;
    margin-top: auto;
    transition: background-color .5s;
    border: 1px solid #61005f;
}

input[type="radio"]:checked + .wpcf7-list-item-label::before {
    background-color: #61005f;
    box-shadow: inset 0 0 0 .6rem #fff;
}


.wpcf7-submit {
    display: flex;
    flex-wrap: nowrap;
    position: relative;
    width: 75%;
    height: 8rem;
    justify-content: center;
    align-items: center;
    font-size: 2.2rem;
    letter-spacing: .1rem;
    background: #fff;
    border: 1px solid #61005f;
    margin: 0 0 0 auto;
    font-family: "Midashi Go MB31", sans-serif;
}

.wpcf7-submit:hover {
    background: #61005f;
    color: #fff;
}

.wpcf7-not-valid-tip {
    font-size: 1.5rem !important;
    padding-top: .8rem;
}

.wpcf7-acceptance {
    text-align: center;
    font-size: 1.6rem;
    line-height: 1.5;
    margin: 0 auto 4.8rem;
    display: block;
}

.wpcf7-response-output {
    margin: 2.4em 0 0 !important;
    padding: 1.2rem 1rem !important;
    color: #333;
    font-size: 1.8rem;
    line-height: 1.5;
    text-align: center;
}

.cf7-cf-turnstile {
    margin-left: 25%;
    margin-top: 4rem !important;
}


/* ----- Privacy Policy ----- */

.page-policy .page_heading {
    width: 27.6rem;
    margin-bottom: 9rem;
}

/* ----- 404 ----- */

.error_intro_title {
    font-size: 3.4rem;
    line-height: 1.8;
    letter-spacing: .15rem;
    margin: 12rem auto;
}


/*----------------------------------------------------

PCのみ

----------------------------------------------------*/

@media print,
screen and (min-width: 768px) {
    .display_sp {
        display: none !important;
    }

    a[href^="tel:"] {
        pointer-events: none;
    }
}

@media screen and (max-width: 1299px) and (min-width: 1050px) {
    html {
        font-size: 58%;
    }

}

@media screen and (max-width: 1049px) and (min-width: 900px) {
    html {
        font-size: 52%;
    }
}

@media screen and (max-width: 899px) and (min-width: 768px) {
    html {
        font-size: 46%;
    }
}

/*----------------------------------------------------

スマートフォンのみ

----------------------------------------------------*/


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

    .wrapper {
        width: 100%;
        padding-left: 6%;
        padding-right: 6%;
    }

    .sub_wrapper {
        max-width: 100%;
    }

    .contact_sub_wrapper {
        max-width: 100%;
    }

    .display_pc {
        display: none !important;
    }

    /*リンク*/
    .link_button {
        width: 17rem;
    }

    /*テキスト*/
    .text_01 {
        font-size: 1.5rem;
    }

    .text_02 {
        font-size: 1.4rem;
    }

    /*アニメーション*/
    #splash_logo {
        width: 25rem;
    }


    /* メインヘッダー
    ----------------------------------------------------*/

    .header_container {
        width: 100%;
    }

    body:not(.home) .header_inner {
        padding-top: 3rem;
    }

    .header_logo {
        width: calc(168 / 480 * 100%);
    }
    
    .main_nav{
        display: none !important;
    }

    /* メインフッター 
    ----------------------------------------------------*/

    .footer_container {
        padding-top: 11rem;
        padding-bottom: 8rem;
    }

    .footer_logo {
        width: 19rem;
    }

    .footer_copyright {
        bottom: 6rem;
        left: unset;
        right: 6%;
        width: 1.1rem;
    }

    .footer_pattern {
        width: calc(440 / 480 * 100%);
    }

    /* メインコンテナー .main_container
    ----------------------------------------------------*/

    /* ----- トップページ ----- */

    /*メインビジュアル*/
    .home .header_container {
        margin-top: -1.2rem;
        margin-bottom: -1rem;
    }

    .top_visual_tagline {
        width: calc(240 / 480 * 100%);
        margin-top: -1rem;
    }

    .top_main_slider {
        width: 82%;
    }
    
    .top_main_slider img {
        -webkit-mask-image: url(img/fv_frame_sp.svg);
        mask-image: url(img/fv_frame_sp.svg);
    }
    
    /*ミッション*/
    .top_mission_container {
        padding-top: 10rem;
    }

    .top_section_name {
        margin-bottom: .5rem;
        position: relative;
        top: unset;
        right: unset;
        height: 1.5rem;
    }

    .top_section_name span {
        display: none;
        margin-left: 0;
        margin-bottom: 0;
    }

    .top_section_name .nav_img {
        transform: rotate(-90deg);
        transform-origin: left top;
    }

    .top_mission_inner {
        flex-direction: column;
    }

    .top_mission_heading {
        width: 100%;
        font-size: 3.5rem;
        margin-bottom: 6.4rem;
    }

    .top_mission_text {
        width: 100%;
    }

    .top_mission_video {
        padding-top: 10rem;
    }

    /*ミッション*/
    .top_about_container {
        padding-top: 8rem;
    }

    .top_about_intro {
        padding-bottom: 8rem;
    }

    .top_about_intro_heading {
        width: 13rem;
        margin-bottom: 7rem;
    }

    .top_about_tech {
        padding-top: 8rem;
        padding-bottom: 8rem;
    }

    .top_about_tech_heading {
        font-size: 3rem;
        margin-bottom: 6rem;
    }

    .top_about_phase_header {
        padding-top: 6rem;
        padding-bottom: 6rem;
    }

    .top_about_phase_heading {
        font-size: 2.6rem;
        line-height: 1.6;
    }

    .top_about_phase_block {
        padding-top: 5rem;
    }

    .top_about_phase-1 {
        padding-bottom: 8rem;
    }

    .top_about_phase-2 {
        padding-bottom: 8rem;
    }

    .top_about_phase-3 {
        padding-bottom: 6rem;
    }

    .top_about_phase-1::after {
        border-top: 4rem solid #f5eded;
    }

    .top_about_phase-2::after {
        border-top: 4rem solid #eee6e5;
    }

    .top_about_phase_inner {
        position: relative;
        padding-left: 4.4rem;
        padding-right: 4.4rem;
        flex-direction: column;
        align-items: center;
    }

    .phase_number {
        width: 2.1rem;
        top: 5.8rem;
        bottom: unset;
    }

    .phase_img {
        width: 15rem;
    }

    .phase_body {
        width: 100%;
        padding-left: 0;
        margin-top: 4rem;
    }

    .phase_title {
        position: absolute;
        top: 0;
        right: -.6rem;
        width: auto;
        font-size: 2.3rem;
        line-height: 1.4;
        margin-bottom: 0;
        -ms-writing-mode: tb-rl;
        writing-mode: vertical-rl;
        font-feature-settings: initial;
    }

    .top_about_phase-1 .phase_title {
        right: 1rem;
    }

    .top_about_phase-3 .phase_title {
        margin-bottom: 0;
    }

    .phase_text {
        width: 130%;
        font-size: 1.8rem;
        line-height: 2;
    }

    .top_about_slide img {
        width: 72vw;
    }

    /*事業*/

    .top_services_container {
        padding-top: 8rem;
    }

    .top_services_intro_heading {
        width: 23.4rem;
        margin-bottom: 7rem;
    }

    .top_services_intro_img {
        width: 100%;
        margin-top: 7.6rem;
        background-image: url(img/services_img_ballon_sp.svg);
    }
    
    .top_services_intro_img img{
        padding: 0;
    }

    .top_services_consulting {
        padding-top: 8rem;
    }

    .top_services_consulting_heading,
    .top_services_ecosystem_heading {
        width: 18rem;
        margin-bottom: 5rem;
    }

    .top_services_consulting_midashi,
    .top_services_ecosystem_midashi {
        font-size: 2.8rem;
        margin-bottom: 6rem;
    }

    .top_services_consulting_midashi span,
    .top_services_ecosystem_midashi span {
        font-size: 2.2rem;
    }

    .services_list_container {
        position: relative;
        width: 100vw;
    }

    .services_list {
        margin-top: 3rem;
        padding: 10rem 0 6rem;
    }

    .top_services_consulting_list {
        background-image: none;
        margin-left: 0;
        margin-right: 0;
    }

    .services_list_bg {
        position: absolute;
        z-index: -1;
        margin: auto calc(50% - 50vw);
        top: 0;
        bottom: 0;
        left: -6%;
        right: 6%;
        width: 100vw;
        display: block;
    }

    .services_list {
        padding-right: 12%;
    }

    .services_list_item {
        font-size: 2rem;
    }

    .services_list_item + .services_list_item {
        margin-top: 2.4rem;
    }

    .services_list_heading {
        line-height: 1.3;
        margin-bottom: 1rem;
    }

    .services_list_heading span {
        padding-left: 2.6rem;
    }

    .services_list_text {
        font-size: 1.4rem;
        margin-left: 2.6rem;
    }

    .services_list_link {
        margin: 1rem 0 0 auto;
    }

    .top_services_slide img {
        width: 57vw;
    }

    .top_services_ecosystem {
        padding-top: 6rem;
    }

    .top_services_ecosystem_list {
        background-image: none;
        margin-left: 0;
        margin-right: 0;
    }

    /*アニメーション*/
    .slide-in {
        overflow: hidden;
        display: block;
    }

    .slide-in_inner {
        display: block;
    }

    .leftAnime {
        opacity: 0;
        /*事前に透過0にして消しておく*/
    }

    .slideAnimeLeftRight {
        animation-name: slideTextX100;
        animation-duration: 0.8s;
        animation-fill-mode: forwards;
        opacity: 0;
    }

    @keyframes slideTextX100 {
        from {
            transform: translateX(-100%);
            /*要素を左の枠外に移動*/
            opacity: 0;
        }

        to {
            transform: translateX(0);
            /*要素を元の位置に移動*/
            opacity: 1;
        }
    }

    .slideAnimeRightLeft {
        animation-name: slideTextX-100;
        animation-duration: 0.8s;
        animation-fill-mode: forwards;
        opacity: 0;
    }


    @keyframes slideTextX-100 {
        from {
            transform: translateX(100%);
            /*要素を右の枠外に移動*/
            opacity: 0;
        }

        to {
            transform: translateX(0);
            /*要素を元の位置に移動*/
            opacity: 1;
        }
    }

    .top_services_slider {
        padding-top: 3rem;
    }

    /*チーム*/
    .top_team_container {
        padding-top: 7.8rem;
    }

    .top_team_item {
        width: calc(100% / 2);
        padding-bottom: 5rem;
    }

    .top_team_item:nth-child(odd) {
        padding-right: 2%;
    }

    .top_team_position {
        height: 6rem;
        font-size: 1.2rem;
    }

    .top_team_name {
        font-size: 2.3rem;
    }

    /*インフォメーション*/

    .top_info_container {
        padding-top: 4rem;
    }

    .top_info_contact {
        width: 100%;
        margin-bottom: 6.6rem;
    }

    .top_info_text {
        font-size: 1.7rem;
        line-height: 1.8;
    }

    .top_info_policy {
        width: 11rem;
    }

    /* ----- 固定ページ ----- */

    body:not(.home) .main_container {
        padding-top: 8rem;
    }

    /*本文*/
    .post_body > * + * {
        margin: 2rem 0;
    }

    .post_body figure {
        margin: 4rem 0;
    }

    .post_body h2 {
        font-size: 2.4rem;
        margin-top: 6rem;
        margin-bottom: 3rem;
    }

    /* ----- Contact ----- */

    .page-contact .page_heading {
        width: 11rem;
        margin-bottom: 5rem;
    }

    .form_item + .form_item {
        padding-top: 1.6rem;
    }

    .form_title {
        font-size: 1.8rem;
        width: 100%;
        padding-right: 0;
        padding-bottom: 1.4rem;
    }

    .form_item:first-child .form_title {
        padding-top: 0;
    }

    .form_box {
        width: 100%;
    }

    .form_box input,
    .form_box textarea {
        font-size: 1.6rem;
    }

    .form_box input {
        padding: 1rem 1rem;
    }

    .form_box textarea {
        padding: 1.2rem 1rem;
    }

    .wpcf7-list-item-label {
        font-size: 1.5rem;
    }

    .wpcf7-list-item {
        margin-right: 1.6rem !important;
    }

    input[type="radio"] {
        opacity: 0;
        position: absolute;
    }

    .wpcf7-list-item-label::before {
        width: 1.5rem;
        height: 1.5rem;
        margin-right: .8rem;
    }

    input[type="radio"]:checked + .wpcf7-list-item-label::before {
        background-color: #61005f;
        box-shadow: inset 0 0 0 .3rem #fff;
    }

    .wpcf7-submit {
        width: 100%;
        height: 6rem;
        font-size: 1.8rem;
    }

    .cf7-cf-turnstile {
        margin-left: 0;
        text-align: center;
        margin-top: 4rem !important;
    }


    /* ----- Privacy Policy ----- */

    .page-policy .page_heading {
        width: 16rem;
        margin-bottom: 5rem;
    }

    /* ----- 404 ----- */

    .error_intro_title {
        font-size: 2.2rem;
        margin: 6rem auto;
    }

}


@media screen and (max-width: 320px) {
    html {
        font-size: 56%;
    }
}
