@charset "utf-8";


/**
 * スマホ用設定
 */
@media ( width < 768px ) {

    #mv {
        margin: 0 auto;
        width: 100%;
        z-index: 1;
    }
    #mv .mv-bg {
        position: relative;
        margin: 0;
        padding: 0;
        width: 100%;
        height: auto;
        aspect-ratio: 732 / 1100;
        z-index: 0;
    }
    #mv .mv-bg img {
        margin: 0;
        padding: 0;
        width: 100%;
        height: 100%;
        object-fit: cover;
    }
    #mv .mv-bg::before {
        position: absolute;
        content: "";
        top: 0;
        left: 0;
        width: 100%;
        height: 100%;
        background: linear-gradient( to right, #00021dff, #00021d00 );
        z-index: 1;
    }
    #mv .mv-bg::after {
        position: absolute;
        content: "";
        top: 60px;
        left: 0;
        width: 16%;
        height: auto;
        aspect-ratio: 1 / 1;
        background: linear-gradient( 224deg, #b90000, #ff0000 );
        clip-path: polygon( 0 0, 100% 0, 0 100% );
        z-index: 2;
    }
    #mv .mv-logo {
        position: absolute;
        margin: 0;
        padding: 0;
        bottom: 45%;
        left: 15%;
        width: 70%;
        height: auto;
        z-index: 0;
    }
    #mv .mv-txt {
        position: absolute;
        top: 60%;
        left: 10%;
        width: 80%;
    }
    #mv .mv-txt .txt1 {
        margin: 0;
        color: #fff;
        font-size: 8.0vw;
        font-weight: 700;
        text-align: center;
        line-height: calc( 76 / 60 );
    }
    #mv .mv-txt .txt2 {
        margin: 0.8em 0 0;
        color: #fff;
        font-size: 4.0vw;
        font-weight: 500;
        font-family: var(--font-alphabet);
        text-align: center;
        line-height: calc( 33 / 24 );
    }
    #mv .mv-wrap {
        position: absolute;
        top: 0;
        left: 0;
        width: 100%;
        height: calc( 100% + 5.0vw );
        overflow: hidden;
        z-index: 1;
    }
    #mv .mv-parallelogram1 {
        display: none;
    }
    #mv .mv-parallelogram2 {
        position: absolute;
        right: -25%;
        bottom: 0;
        width: 25%;
        height: auto;
        aspect-ratio: 1 / 2;
        background: linear-gradient( 240deg, var(--color-theme), #f00 );
        transform-origin: right top;
        transform: skewX( -45deg );
        z-index: 1;
    }

    main {
        margin: 0 auto;
        padding: 0;
        width: 100%;
    }

    #achievements {
        margin: 0 auto;
        padding: 12.0vw 0 20.0vw;
        width: 100%;
        background:
            url(../images/icon-wire-web.svg) no-repeat 100% 0% / 50% auto,
            url(../images/icon-wire-web.svg) no-repeat 0% 100% / 50% auto,
            #f0f0f0;
        z-index: 0;
    }
    #achievements .common-h2 {
        margin: 0 auto;
        padding: 0;
        width: 90%;
        font-size: 10.0vw;
        font-weight: 500;
        font-family: var(--font-alphabet);
        text-align: left;
        line-height: 1.2;
        letter-spacing: 0.1em;
    }
    #achievements .subtitle {
        margin: 0 auto;
        padding: 0;
        width: 90%;
        color: var(--color-theme);
        font-size: 4.8vw;
        font-weight: 700;
        text-align: left;
        letter-spacing: 0.1em;
    }
    #achievements .common-h3 {
        margin: 0.5em auto 0;
        padding: 0;
        width: 90%;
        font-size: 8.0vw;
        font-weight: 700;
        text-align: left;
        line-height: calc( 61 / 46 );
    }
    #achievements .common-p {
        margin: 1.5em auto 0;
        padding: 0;
        width: 90%;
        font-size: 3.6vw;
        font-weight: 400;
        text-align: left;
        line-height: calc( 33 / 16 );
    }
    #achievements .common-btn {
        margin: 8.0vw auto 0;
        padding: 0;
        width: 90%;
        display: flex;
        align-items: center;
        justify-content: flex-end;
        gap: 0 1.0em;
        color: var(--color-theme);
        font-size: 4.0vw;
        font-weight: 700;
        line-height: 1.0;
        white-space: nowrap;
    }
    #achievements .common-btn::after {
        display: block;
        content: "";
        width: 2.8em;
        height: auto;
        aspect-ratio: 1 / 1;
        background: url(../images/icon-arrow-r-red.svg) no-repeat center / contain;
    }
    #achievements .achievements-grid {
        margin: 8.0vw auto 0;
        width: 90%;
        display: grid;
        grid-template-columns: 1fr;
        gap: 6.0vw 0;
    }
    #achievements .achievements-grid .achievements-item {
        position: relative;
        margin: 0;
        padding: 0 0 20px;
        width: 100%;
        background: #fff;
        box-shadow: 1.0vw 1.0vw 2.0vw rgba( 0, 0, 0, 0.1 );
    }
    #achievements .achievements-grid .achievements-item .pic {
        margin: 0;
        padding: 0;
        width: 100%;
        height: auto;
        aspect-ratio: 400 / 236;
    }
    #achievements .achievements-grid .achievements-item .pic img {
        margin: 0;
        padding: 0;
        width: 100%;
        height: 100%;
        object-fit: cover;
    }
    #achievements .achievements-grid .achievements-item .no {
        position: relative;
        margin: -6.0vw auto 0;
        padding: 0;
        width: 16.0vw;
        height: auto;
        aspect-ratio: 1 / 1;
        font-size: 4.8vw;
        font-weight: 900;
        font-family: var(--font-alphabet);
        background: #fff;
        border-radius: 100%;
        display: grid;
        place-items: center;
        z-index: 1;
    }
    #achievements .achievements-grid .achievements-item p {
        margin: 0 auto;
        padding: 0;
        width: 100%;
        font-size: 4.8vw;
        font-weight: 700;
        text-align: center;
    }

    #service {
        margin: -5.0vw auto 0;
        padding: 4.0vw 0 24.0vw;
        width: 100%;
        height: auto;
        background: linear-gradient( to bottom, transparent 50%, #f0f0f0 50% );
        z-index: 0;
    }
    #service .service-bg1 {
        position: absolute;
        top: 4.0vw;
        left: 0;
        margin: 0;
        padding: 0;
        width: 100%;
        height: calc( 100% - 16.0vw );
        background: var(--color-theme);
        z-index: 1;
    }
    #service .service-bg2 {
        position: absolute;
        top: 0;
        right: 0;
        margin: 0;
        padding: 0;
        width: calc( 100% - 4.0vw );
        height: calc( 100% - 16.0vw );
        background: url(../images/top-service-bg-sp.png) no-repeat center / cover;
        z-index: 2;
    }
    #service .service-wrap {
        position: relative;
        z-index: 3;
    }
    #service .common-h2 {
        margin: 0 auto;
        padding: 0;
        width: 90%;
        color: #fff;
        font-size: 10.0vw;
        font-weight: 500;
        font-family: var(--font-alphabet);
        text-align: center;
        line-height: 1.2;
        letter-spacing: 0.1em;
    }
    #service .subtitle {
        margin: 0 auto;
        padding: 0;
        width: 90%;
        color: #fff;
        font-size: 4.8vw;
        font-weight: 700;
        text-align: center;
        letter-spacing: 0.1em;
    }
    #service .common-h3 {
        margin: 0.5em auto 0;
        padding: 0;
        width: 90%;
        color: #fff;
        font-size: 8.0vw;
        font-weight: 700;
        text-align: center;
        line-height: calc( 61 / 46 );
    }
    #service .common-p {
        margin: 1.5em auto 0;
        padding: 0;
        width: 80%;
        color: #fff;
        font-size: 3.6vw;
        font-weight: 400;
        text-align: left;
        line-height: calc( 33 / 16 );
    }
    #service .service-grid {
        margin: 6.0vw auto 0;
        width: 80%;
        display: grid;
        grid-template-columns: 1fr;
        gap: 2.0vw 0;
    }
    #service .service-grid .service-item {
        margin: 0;
        padding: 4.0vw;
        width: 100%;
        background: #fff;
        display: flex;
        flex-direction: row-reverse;
        align-items: center;
        justify-content: space-between;
    }
    #service .service-grid .service-item h4 {
        position: relative;
        margin: 0 auto;
        padding: 0;
        width: 60%;
        font-size: 4.0vw;
        font-weight: 700;
        text-align: left;
    }
    #service .service-grid .service-item h4 span {
        font-size: 75%;
        font-weight: 400;
    }
    #service .service-grid .service-item h4::after {
        position: absolute;
        content: "";
        top: calc( 100% + 0.5em );
        left: 0;
        width: 6.0vw;
        height: 2px;
        background: var(--color-theme);
    }
    #service .service-grid .service-item .icon {
        margin: 0;
        padding: 0;
        width: 30%;
        height: auto;
        aspect-ratio: 1 / 1;
    }
    #service .service-grid .service-item .icon img {
        margin: 0;
        padding: 0;
        width: 100%;
        height: 100%;
        object-fit: contain;
    }

    #company {
        margin: 0 auto;
        padding: 0; 
        width: 100%;
        display: flex;
        flex-direction: column;
        align-items: center;
        justify-content: center;
        gap: 8.0vw 0;
        background: #fff;
    }
    #company .company-l {
        margin: 0;
        padding: 12.0vw 0 8.0vw;
        width: 90%;
    }
    #company .common-h2 {
        margin: 0 auto;
        padding: 0;
        width: 100%;
        font-size: 10.0vw;
        font-weight: 500;
        font-family: var(--font-alphabet);
        text-align: left;
        line-height: 1.2;
        letter-spacing: 0.1em;
    }
    #company .subtitle {
        margin: 0 auto;
        padding: 0;
        width: 100%;
        color: var(--color-theme);
        font-size: 4.8vw;
        font-weight: 700;
        text-align: left;
        letter-spacing: 0.1em;
    }
    #company .common-h3 {
        margin: 0.5em auto 0;
        padding: 0;
        width: 100%;
        font-size: 8.0vw;
        font-weight: 700;
        text-align: left;
        line-height: calc( 61 / 46 );
    }
    #company .common-p {
        margin: 1.5em auto 0;
        padding: 0;
        width: 100%;
        font-size: 3.6vw;
        font-weight: 400;
        text-align: left;
        line-height: calc( 33 / 16 );
    }
    #company .common-btn {
        margin: 6.0vw auto 0;
        padding: 0;
        width: 100%;
        display: flex;
        align-items: center;
        justify-content: flex-start;
        gap: 0 1.0em;
        color: var(--color-theme);
        font-size: 4.0vw;
        font-weight: 700;
        line-height: 1.0;
        white-space: nowrap;
    }
    #company .common-btn::after {
        display: block;
        content: "";
        width: 2.8em;
        height: auto;
        aspect-ratio: 1 / 1;
        background: url(../images/icon-arrow-r-red.svg) no-repeat center / contain;
    }
    #company .company-pic {
        margin: 0;
        padding: 0;
        width: 100%;
        height: auto;
    }
    #company .company-pic img {
        margin: 0;
        padding: 0;
        width: 100%;
        height: 100%;
        object-fit: cover;
    }

    #case {
        margin: 0 auto;
        padding: 16.0vw 0 12.0vw;
        width: 100%;
        background:
            url(../images/icon-wire-web.svg) no-repeat 100% 0% / 30% auto,
            #f0f0f0;
    }
    #case .case-box {
        position: relative;
        margin: 0 auto;
        padding: 8.0vw 4.0vw;
        width: 90%;
        background: url(../images/top-case-bg.png) no-repeat center / cover;
        display: flex;
        flex-direction: column;
        align-items: flex-start;
        justify-content: center;
    }
    #case .common-h2 {
        margin: 0 auto;
        padding: 0;
        width: 100%;
        color: #fff;
        font-size: 10.0vw;
        font-weight: 500;
        font-family: var(--font-alphabet);
        text-align: left;
        line-height: 1.2;
        letter-spacing: 0.1em;
    }
    #case .subtitle {
        margin: 0 auto;
        padding: 0;
        width: 100%;
        color: #fff;
        font-size: 4.8vw;
        font-weight: 700;
        text-align: left;
        letter-spacing: 0.1em;
    }
    #case .common-h3 {
        margin: 0.5em auto 0;
        padding: 0;
        width: 100%;
        color: #fff;
        font-size: 8.0vw;
        font-weight: 700;
        text-align: left;
        line-height: calc( 61 / 46 );
    }
    #case .common-p {
        margin: 1.5em auto 0;
        padding: 0;
        width: 100%;
        color: #fff;
        font-size: 3.6vw;
        font-weight: 400;
        text-align: left;
        line-height: calc( 33 / 16 );
    }
    #case .common-btn {
        margin: 4.0vw auto 0;
        padding: 0;
        width: 100%;
        display: flex;
        align-items: center;
        justify-content: flex-end;
        gap: 0 1.0em;
        color: #fff;
        font-size: 4.0vw;
        font-weight: 700;
        line-height: 1.0;
        white-space: nowrap;
    }
    #case .common-btn::after {
        display: block;
        content: "";
        width: 2.8em;
        height: auto;
        aspect-ratio: 1 / 1;
        background: #fff;
        -webkit-mask-image: url(../images/icon-arrow-r-red.svg);
        -webkit-mask-repeat: no-repeat;
        -webkit-mask-size: contain;
        -webkit-mask-position: center;
        mask-image: url(../images/icon-arrow-r-red.svg);
        mask-repeat: no-repeat;
        mask-size: contain;
        mask-position: center;
    }

}


/**
 * PC用設定
 */
@media ( width >= 768px ) {

    #mv {
        margin: 0 auto;
        width: 100%;
        z-index: 1;
    }
    #mv .mv-bg {
        position: relative;
        margin: 0;
        padding: 0;
        width: 100%;
        height: auto;
        z-index: 0;
    }
    #mv .mv-bg img {
        margin: 0;
        padding: 0;
        width: 100%;
        height: auto;
    }
    #mv .mv-bg::before {
        position: absolute;
        content: "";
        top: 0;
        left: 0;
        width: 100%;
        height: 100%;
        background: linear-gradient( to right, #00021dff, #00021d00 );
        z-index: 1;
    }
    #mv .mv-bg::after {
        position: absolute;
        content: "";
        top: 0;
        left: 0;
        width: 280px;
        height: auto;
        aspect-ratio: 1 / 1;
        background: linear-gradient( 224deg, #b90000, #ff0000 );
        clip-path: polygon( 0 0, 100% 0, 0 100% );
        z-index: 2;
    }
    #mv .mv-logo {
        position: absolute;
        margin: 0;
        padding: 0;
        top: 50%;
        left: 50%;
        width: calc( 100vw * 499 / 1920 );
        height: auto;
        z-index: 0;
        translate: 0 -50%;
    }
    #mv .mv-txt {
        position: absolute;
        top: 50%;
        left: 10%;
        width: 80%;
        translate: 0 -50%;
    }
    #mv .mv-txt .txt1 {
        margin: 0;
        color: #fff;
        font-size: calc( 100vw * 60 / 1920 );
        font-weight: 700;
        text-align: center;
        line-height: calc( 76 / 60 );
    }
    #mv .mv-txt .txt2 {
        margin: 0.8em 0 0;
        color: #fff;
        font-size: calc( 100vw * 24 / 1920 );
        font-weight: 500;
        font-family: var(--font-alphabet);
        text-align: center;
        line-height: calc( 33 / 24 );
    }
    #mv .mv-wrap {
        position: absolute;
        top: 0;
        left: 0;
        width: 100%;
        height: calc( 100% + 100px );
        overflow: hidden;
        z-index: 1;
    }
    #mv .mv-wrap::before {
        position: absolute;
        content: "";
        top: calc( 100% - 100px );
        left: 0;
        width: 5%;
        height: 100px;
        background: var(--color-theme);
    }
    #mv .mv-parallelogram1 {
        position: absolute;
        left: -3%;
        bottom: 0;
        width: 15%;
        height: auto;
        aspect-ratio: 1 / 1;
        background: linear-gradient( 240deg, var(--color-theme), #f00 );
        transform-origin: left bottom;
        transform: skewX( -45deg );
        z-index: 1;
    }
    #mv .mv-parallelogram2 {
        position: absolute;
        right: -18%;
        bottom: 0;
        width: 15%;
        height: auto;
        aspect-ratio: 1 / 2;
        background: linear-gradient( 240deg, var(--color-theme), #f00 );
        transform-origin: right top;
        transform: skewX( -45deg );
        z-index: 1;
    }

    main {
        margin: 0 auto;
        padding: 0;
        width: 100%;
    }

    #achievements {
        margin: 0 auto;
        padding: 88px 0 calc( 120px + 5.0vw );
        width: 100%;
        background:
            url(../images/icon-wire-web.svg) no-repeat 115% -8% / 30% auto,
            url(../images/icon-wire-web.svg) no-repeat -20% 130% / 30% auto,
            #f0f0f0;
        z-index: 0;
    }
    #achievements .common-h2 {
        margin: 0 auto;
        padding: 0;
        width: 90%;
        max-width: 1200px;
        font-size: 60px;
        font-weight: 500;
        font-family: var(--font-alphabet);
        text-align: left;
        letter-spacing: 0.1em;
    }
    #achievements .subtitle {
        margin: 0 auto;
        padding: 0;
        width: 90%;
        max-width: 1200px;
        color: var(--color-theme);
        font-size: 20px;
        font-weight: 700;
        text-align: left;
        letter-spacing: 0.1em;
    }
    #achievements .common-h3 {
        margin: 0.5em auto 0;
        padding: 0;
        width: 90%;
        max-width: 1200px;
        font-size: 46px;
        font-weight: 700;
        text-align: left;
        line-height: calc( 61 / 46 );
    }
    #achievements .achievements-flex {
        margin: 1.5em auto 0;
        padding: 0;
        width: 90%;
        max-width: 1200px;
        display: flex;
        align-items: center;
        justify-content: space-between;
    }
    #achievements .common-p {
        margin: 2.0em auto 0;
        padding: 0;
        width: 90%;
        max-width: 1200px;
        font-size: 16px;
        font-weight: 400;
        text-align: left;
        line-height: calc( 33 / 16 );
    }
    #achievements .common-btn {
        margin: -2.0em auto 0;
        padding: 0;
        width: 90%;
        max-width: 1200px;
        display: flex;
        align-items: center;
        justify-content: flex-end;
        gap: 0 1.0em;
        color: var(--color-theme);
        font-size: 18px;
        font-weight: 700;
        line-height: 1.0;
        white-space: nowrap;
    }
    #achievements .common-btn::after {
        display: block;
        content: "";
        width: 2.8em;
        height: auto;
        aspect-ratio: 1 / 1;
        background: url(../images/icon-arrow-r-red.svg) no-repeat center / contain;
    }
    #achievements .achievements-grid {
        margin: 40px auto 0;
        width: 90%;
        max-width: 1200px;
        display: grid;
        grid-template-columns: repeat( 3, 1fr );
        gap: 0;
        box-shadow: 5px 5px 10px rgba( 0, 0, 0, 0.1 );
    }
    #achievements .achievements-grid .achievements-item {
        position: relative;
        margin: 0;
        padding: 0 0 20px;
        width: 100%;
        background: #fff;
    }
    #achievements .achievements-grid .achievements-item .pic {
        margin: 0;
        padding: 0;
        width: 100%;
        height: auto;
        aspect-ratio: 400 / 236;
    }
    #achievements .achievements-grid .achievements-item .pic img {
        margin: 0;
        padding: 0;
        width: 100%;
        height: 100%;
        object-fit: cover;
    }
    #achievements .achievements-grid .achievements-item .no {
        position: relative;
        margin: -15px auto 0;
        padding: 0;
        width: 40px;
        height: auto;
        aspect-ratio: 1 / 1;
        font-size: 16px;
        font-weight: 900;
        font-family: var(--font-alphabet);
        background: #fff;
        border-radius: 100%;
        display: grid;
        place-items: center;
        z-index: 1;
    }
    #achievements .achievements-grid .achievements-item p {
        margin: 0 auto;
        padding: 0;
        width: 100%;
        font-size: 22px;
        font-weight: 700;
        text-align: center;
    }

    #service {
        margin: -5.0vw auto 0;
        padding: 4.0vw 0 112px;
        width: 100%;
        height: auto;
        aspect-ratio: 1920 / 912;
        background: linear-gradient( to bottom, transparent 50%, #f0f0f0 50% );
        z-index: 0;
    }
    #service .service-bg1 {
        position: absolute;
        top: 5.0vw;
        left: 0%;
        margin: 0;
        padding: 0;
        width: calc( 100% * 1500 / 1920 );
        height: auto;
        aspect-ratio: 1500 / 721;
        background: var(--color-theme);
        z-index: 1;
    }
    #service .service-bg2 {
        position: absolute;
        top: 0%;
        right: 0%;
        margin: 0;
        padding: 0;
        width: calc( 100% * 1720 / 1920 );
        height: auto;
        aspect-ratio: 1720 / 721;
        background: url(../images/top-service-bg-pc.png) no-repeat center / cover;
        z-index: 2;
    }
    #service .service-wrap {
        position: relative;
        z-index: 3;
    }
    #service .common-h2 {
        margin: 0 auto;
        padding: 0;
        width: 90%;
        color: #fff;
        font-size: calc( 100vw * 60 / 1920 );
        font-weight: 500;
        font-family: var(--font-alphabet);
        text-align: center;
        letter-spacing: 0.1em;
    }
    #service .subtitle {
        margin: 0 auto;
        padding: 0;
        width: 90%;
        color: #fff;
        font-size: calc( 100vw * 20 / 1920 );
        font-weight: 700;
        text-align: center;
        letter-spacing: 0.1em;
    }
    #service .common-h3 {
        margin: 0.5em auto 0;
        padding: 0;
        width: 90%;
        color: #fff;
        font-size: calc( 100vw * 34 / 1920 );
        font-weight: 700;
        text-align: center;
        line-height: calc( 61 / 34 );
    }
    #service .common-p {
        margin: 1.5em auto 0;
        padding: 0;
        width: 90%;
        color: #fff;
        font-size: calc( 100vw * 16 / 1920 );
        font-weight: 400;
        text-align: center;
        line-height: calc( 33 / 16 );
    }
    #service .service-grid {
        margin: calc( 100vw * 40 / 1920 ) auto 0;
        width: calc( 100% * 1200 / 1920 );
        display: grid;
        grid-template-columns: repeat( 4, 1fr );
        gap: 0 calc( 100vw * 16 / 1920 );
    }
    #service .service-grid .service-item {
        margin: 0;
        padding: calc( 100vw * 40 / 1920 ) 0;
        width: 100%;
        background: #fff;
    }
    #service .service-grid .service-item h4 {
        position: relative;
        margin: 0 auto 2.0em;
        padding: 0;
        font-size: calc( 100vw * 20 / 1920 );
        font-weight: 700;
        text-align: center;
    }
    #service .service-grid .service-item h4 span {
        font-size: 75%;
        font-weight: 400;
    }
    #service .service-grid .service-item h4::after {
        position: absolute;
        content: "";
        top: calc( 100% + 0.5em );
        left: calc( 50% - 39px );
        width: 78px;
        height: 2px;
        background: var(--color-theme);
    }
    #service .service-grid .service-item .icon {
        margin: 0 auto;
        padding: 0;
        width: 35%;
        height: auto;
        aspect-ratio: 1 / 1;
    }
    #service .service-grid .service-item .icon img {
        margin: 0;
        padding: 0;
        width: 100%;
        height: 100%;
        object-fit: contain;
    }

    #company {
        margin: 0 auto;
        padding: 0; 
        width: 100%;
        display: flex;
        align-items: stretch;
        justify-content: center;
        background: #fff;
    }
    #company .company-l {
        margin: 0;
        padding: 40px 40px 40px max( 40px, calc( 50.0vw - 600px ) );
        width: 50%;
        align-self: center;
    }
    #company .common-h2 {
        margin: 0 auto;
        padding: 0;
        width: 100%;
        font-size: 60px;
        font-weight: 500;
        font-family: var(--font-alphabet);
        text-align: left;
        letter-spacing: 0.1em;
    }
    #company .subtitle {
        margin: 0 auto;
        padding: 0;
        width: 100%;
        color: var(--color-theme);
        font-size: 20px;
        font-weight: 700;
        text-align: left;
        letter-spacing: 0.1em;
    }
    #company .common-h3 {
        margin: 0.5em auto 0;
        padding: 0;
        width: 100%;
        font-size: 46px;
        font-weight: 700;
        text-align: left;
        line-height: calc( 61 / 46 );
    }
    #company .common-p {
        margin: 1.5em auto 0;
        padding: 0;
        width: 100%;
        font-size: 16px;
        font-weight: 400;
        text-align: left;
        line-height: calc( 33 / 16 );
    }
    #company .common-btn {
        margin: 40px 0 0;
        padding: 0;
        width: 100%;
        display: flex;
        align-items: center;
        justify-content: flex-start;
        gap: 0 1.0em;
        color: var(--color-theme);
        font-size: 18px;
        font-weight: 700;
        line-height: 1.0;
        white-space: nowrap;
    }
    #company .common-btn::after {
        display: block;
        content: "";
        width: 2.8em;
        height: auto;
        aspect-ratio: 1 / 1;
        background: url(../images/icon-arrow-r-red.svg) no-repeat center / contain;
    }
    #company .company-pic {
        margin: 0;
        padding: 0;
        width: 50%;
        height: auto;
    }
    #company .company-pic img {
        margin: 0;
        padding: 0;
        width: 100%;
        height: 100%;
        object-fit: cover;
    }

    #case {
        margin: 0 auto;
        padding: 120px 0 160px;
        width: 100%;
        background:
            url(../images/icon-wire-web.svg) no-repeat 100% 0% / 30% auto,
            #f0f0f0;
    }
    #case .case-box {
        position: relative;
        margin: 0 auto;
        padding: 56px 0 68px 56px;
        width: 90%;
        max-width: 1200px;
        background: url(../images/top-case-bg.png) no-repeat center / cover;
        display: flex;
        flex-direction: column;
        align-items: flex-start;
        justify-content: center;
    }
    #case .common-h2 {
        margin: 0 auto;
        padding: 0;
        width: 100%;
        color: #fff;
        font-size: 60px;
        font-weight: 500;
        font-family: var(--font-alphabet);
        text-align: left;
        letter-spacing: 0.1em;
    }
    #case .subtitle {
        margin: 0 auto;
        padding: 0;
        width: 100%;
        color: #fff;
        font-size: 20px;
        font-weight: 700;
        text-align: left;
        letter-spacing: 0.1em;
    }
    #case .common-h3 {
        margin: 0.5em auto 0;
        padding: 0;
        width: 100%;
        color: #fff;
        font-size: 46px;
        font-weight: 700;
        text-align: left;
        line-height: calc( 61 / 46 );
    }
    #case .common-p {
        margin: 1.5em auto 0;
        padding: 0;
        width: 100%;
        color: #fff;
        font-size: 16px;
        font-weight: 400;
        text-align: left;
        line-height: calc( 33 / 16 );
    }
    #case .common-btn {
        position: absolute;
        right: 40px;
        bottom: 40px;
        margin: 0;
        padding: 0;
        width: max-content;
        display: flex;
        align-items: center;
        justify-content: flex-start;
        gap: 0 1.0em;
        color: #fff;
        font-size: 18px;
        font-weight: 700;
        line-height: 1.0;
        white-space: nowrap;
    }
    #case .common-btn::after {
        display: block;
        content: "";
        width: 2.8em;
        height: auto;
        aspect-ratio: 1 / 1;
        background: #fff;
        -webkit-mask-image: url(../images/icon-arrow-r-red.svg);
        -webkit-mask-repeat: no-repeat;
        -webkit-mask-size: contain;
        -webkit-mask-position: center;
        mask-image: url(../images/icon-arrow-r-red.svg);
        mask-repeat: no-repeat;
        mask-size: contain;
        mask-position: center;
    }

}
