@charset "UTF-8";

.lAbout {
    color: #fff
}

.lAbout-catch {
    font-family: Jokker, sans-serif;
    font-weight: 600;
    text-align: center
}

.lAbout-content {
    position: relative
}

.lAbout-copy {
    font-weight: 600
}

.bAndroid .lAbout-copy {
    font-weight: 700
}

.lAbout-image {
    overflow: hidden;
    isolation: isolate;
    height: -moz-fit-content;
    height: fit-content
}

.lAbout-image img {
    width: 100%;
    height: 100%;
    display: none
}

.lAbout-image img.-current {
    display: block
}

.lAbout-video {
    width: 100%;
    height: 100%;
    display: none
}

.lAbout-video.-current {
    display: block
}

.lAbout-text {
    display: inline-block;
    color: transparent;
    background-image: linear-gradient(#fff, transparent 10%);
    -webkit-background-clip: text;
    background-clip: text;
    -webkit-text-fill-color: transparent
}

.lAbout-text .paragraph {
    width: 100%;
    display: inline-block
}

.lCareer-inner {
    background-color: hsla(0, 0%, 100%, .9);
    -webkit-backdrop-filter: blur(5px);
    backdrop-filter: blur(5px);
    overflow: hidden;
    isolation: isolate
}

.lCareer-catch {
    font-weight: 600
}

.bAndroid .lCareer-catch {
    font-weight: 700
}

.lCareer-linkArea {
    position: relative
}

.lCareer-linkArea:before {
    content: "";
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    background-color: rgba(8, 49, 81, .05);
    border-radius: 2px
}

.lCatch-text {
    text-align: center;
    color: #fff
}

.lCatch-text,
.lKv {
    font-family: Jokker, sans-serif;
    font-weight: 600
}

.lKv {
    display: flex;
    flex-direction: column
}

.lKv,
.lKv-conceptList {
    position: relative
}

.lKv-conceptItem {
    position: absolute;
    bottom: 0;
    left: 0
}

.lKv-item,
.lKv-text {
    opacity: 0;
    visibility: hidden
}

.lKv-text {
    font-family: 游ゴシック体 Pr6N B, Yu Gothic Pr6N B, Yu Gothic Bold, 游ゴシック Bold, YuGothic, 游ゴシック体, sans-serif;
    font-weight: 600;
    color: transparent;
    background-image: url(../img/common/background.png.webp);
    background-repeat: no-repeat;
    background-size: cover;
    background-clip: text;
    -webkit-background-clip: text;
    
    animation: animationGradient 6s linear infinite
    
}

.bAndroid .lKv-text {
    font-weight: 700
}

.lKv-textWrapper {
    -webkit-mask-image: url(../img/common/mask.png);
    mask-image: url(../img/common/mask.png);
    mask-mode: alpha;
    -webkit-mask-repeat: no-repeat;
    mask-repeat: no-repeat;
    -webkit-mask-size: 250% 250%;
    mask-size: 250% 250%;
    -webkit-mask-position: 100% 100%;
    mask-position: 100% 100%
}

.lKv-bottom {
    display: flex;
    align-items: flex-end;
    justify-content: space-between
}

.lKv-scrollDown {
    right: auto;
    bottom: auto
}

.lKv-scrollDown,
.lLinkArea {
    position: relative
}

.lLinkArea:before {
    content: "";
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    background-color: hsla(0, 0%, 100%, .3);
    border-radius: 2px
}

.lNews-title {
    color: #fff
}

.lNews-imageInner {
    overflow: hidden;
    isolation: isolate;
    width: 100%;
    aspect-ratio: 280/168
}

.lNews-imageInner img {
    width: 100%;
    height: 100%;
    object-fit: fill;
}

.lNews-inner {
    position: relative;
    display: block;
    background-color: #fff
}

[data-whatintent=mouse] .lNews-inner:hover .lNews-iconBg {
    scale: 1.25
}

.lNews-inner:before {
    content: "";
    position: absolute;
    display: inline-block;
    background-color: #fff
}

.lNews-head {
    display: flex;
    align-items: center
}

.lNews-head .category,
.lNews-head .date {
    font-family: Jokker, sans-serif;
    font-weight: 600
}

.lNews-head .date {
    color: #38a1db
}

.lNews-icon {
    position: relative;
    display: flex;
    align-items: center;
    justify-content: center;
    margin-left: auto;
    border-radius: 50%;
    background-color: #e8f0f7
}

.lNews-iconBg {
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    border-radius: 50%;
    display: block;
    background: #e8f0f7;
    transition: scale .3s cubic-bezier(.23, 1, .32, 1)
}

.lNews-arrowWrap {
    width: 80%;
    height: 80%;
    display: flex;
    align-items: center;
    justify-content: center;
    overflow: hidden;
    isolation: isolate
}

.lNews-arrow {
    fill: #38a1db
}

.lNews-articleTitle {
    font-weight: 600;
    position: relative
}

.bAndroid .lNews-articleTitle {
    font-weight: 700
}

.lNews-articleTitle:before {
    content: "";
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    background-color: #f4f7f9;
    border-radius: 2px
}

.lNews-buttonArea {
    display: flex
}

.lService {
    position: relative;
    color: #fff
}

.lService-bg {
    position: sticky;
    background-color: rgba(8, 49, 81, .8)
}

.lService-inner {
    position: relative
}

.lService-catch {
    font-weight: 600
}

.bAndroid .lService-catch {
    font-weight: 700
}

.lService-image {
    overflow: hidden;
    isolation: isolate;
    clip-path: circle(0 at 50% 50%)
}

.lService-img,
.lService-video {
    width: 100%;
    height: 100%;
    object-fit: cover;
    display: none
}

.lService-img.-current,
.lService-video.-current {
    display: block
}

.lService-button {
    display: flex;
    align-items: center;
    background: linear-gradient(180deg, #e8f0f7, #b7cee1);
    overflow: hidden;
    isolation: isolate
}

[data-whatintent=mouse] .lService-button:hover .lService-buttonBg {
    transform: rotate(-10deg) scale(1.5)
}

[data-whatintent=mouse] .lService-button:hover .lService-buttonText {
    color: #38a1db;
    transition: color 0s
}

[data-whatintent=mouse] .lService-button:hover .lService-arrow {
    transform: translateX(5px) translateY(-5px) rotate(-45deg)
}

.lService-buttonImage {
    position: relative;
    overflow: hidden;
    isolation: isolate
}

.lService-buttonBg {
    width: 100%;
    height: 100%;
    background: linear-gradient(45deg, #d9d200, #8dbf9c 25%, #24a29a 50%, #06768a 72%, #171c61);
    transition: transform 1.2s cubic-bezier(.23, 1, .32, 1)
}

.lService-logo {
    position: absolute;
    top: 50%;
    left: 50%;
    transform: translate(-50%, -50%)
}

.lService-buttonText {
    font-family: Jokker, sans-serif;
    font-weight: 600;
    font-size: 20px !important;
    color: #083151
}

.lService-icon {
    display: flex;
    align-items: center;
    justify-content: center;
    margin-left: auto
}

.lService-arrow {
    fill: #083151;
    transform: rotate(-45deg);
    width: 100%;
    height: 100%;
    transition: transform .3s cubic-bezier(.23, 1, .32, 1)
}

.lLink {
    margin-top: 0
}

@media screen and (min-width:1024px) {
    .lAbout {
        width: calc(100% - 16px);
        margin-left: 8px;
        margin-right: 8px;
        padding-left: 12px;
        padding-right: 68px;
        padding-top: 14.8125rem
    }

    .lAbout-catch {
        font-size: 80px;
        letter-spacing: -.025em;
        line-height: 1.5;
        margin: 13.1875rem auto 0
    }

    .lAbout-content {
        display: flex;
        justify-content: space-between;
        margin: 12.5rem auto 0;
        padding-bottom: 19.75rem
    }

    .lAbout-head {
        position: sticky;
        top: calc(50% - 12.0625rem);
        width: 24.125rem;
        height: -moz-fit-content;
        height: fit-content
    }

    .lAbout-copy {
        font-size: 40px;
        line-height: 1.2
    }

    .lAbout-right {
        width: 24.625rem
    }

    .lAbout-image {
        width: 100%;
        border-radius: .75rem
    }

    .lAbout-text {
        font-size: 20px;
        line-height: 1.8;
        margin-top: 4.375rem
    }

    .lAbout-text .paragraph:not(:first-of-type) {
        margin-top: 2.25rem
    }

    .lCareer {
        height: 230vh
    }

    .lCareer-inner {
        margin-left: 8px;
        margin-right: 8px;
        padding-left: 12px;
        padding-right: 68px;
        position: sticky;
        display: flex;
        top: 8px;
        left: -8px;
        width: calc(100% - 16px);
        height: calc(100vh - 16px);
        border-radius: 2rem
    }

    .bPortraitTablet .lCareer-inner {
        height: 75rem
    }

    .lCareer-content {
        display: flex;
        flex-direction: column;
        justify-content: center
    }

    .lCareer-catch {
        font-size: 40px;
        line-height: 1.24;
        margin-top: 12vh
    }

    .lCareer-linkArea:before {
        height: 4px
    }

    .lCareer-linkArea {
        margin-top: 3.375rem;
        padding-top: 3.375rem
    }

    .lCareer-photos {
        height: 100%
    }

    .lCareer-photosInner {
        width: 100%;
        height: -moz-fit-content;
        height: fit-content
    }

    .-no01 .lCareer-photosInner {
        margin-top: 5rem
    }

    .lCareer-image {
        width: 100%;
        height: auto;
        border-radius: .75rem;
        margin-top: 1.125rem
    }

    .lCatch {
        width: calc(100% - 16px);
        margin-left: 8px;
        margin-right: 8px;
        padding-left: 12px;
        padding-right: 68px;
        padding-block: 25.125rem 27.75rem
    }

    .lCatch-text {
        font-size: 80px;
        letter-spacing: -.025em;
        line-height: 1.5
    }

    .lKv {
        width: calc(100% - 16px);
        margin-right: 8px;
        padding-left: 12px;
        padding-right: 68px;
        height: calc(100vh - 16px)
    }

    .bPortraitTablet .lKv,
    .lKv {
        margin-top: 8px;
        margin-left: 8px;
        padding-bottom: 46px
    }

    .bPortraitTablet .lKv {
        height: calc(var(--height) - 16px)
    }

    .lKv-concept {
        margin-bottom: -9px
    }

    .lKv-conceptList {
        width: 420px;
        height: 92px
    }

    .lKv-item {
        font-size: 14px
    }

    .lKv-text {
        font-size: 24px;
        line-height: 1
    }

    .lKv-textWrapper {
        margin-top: 1rem
    }

    .lKv-bottom {
        margin-top: auto
    }

    .lLinkArea:before {
        height: 4px
    }

    .lLinkArea {
        margin-top: 3.5625rem;
        padding-top: calc(3rem + 4px)
    }

    .lNews {
        display: flex;
        justify-content: space-between;
        padding: 20rem 76px 20rem 20px;
        -webkit-backdrop-filter: blur(5px);
        backdrop-filter: blur(5px)
    }

    .lNews-title {
        position: absolute;
        top: 19.625rem;
        left: 20px
    }

    .lNews-content {
        width: 100%
    }

    .lNews-item {
        display: flex
    }

    .lNews-item+.lNews-item {
        margin-top: 4rem
    }

    .lNews-imageInner {
        border-radius: .625rem
    }

    .lNews-inner {
        border-radius: .75rem;
        padding: 3rem 4rem 2.5rem
    }

    .lNews-inner:before {
        top: 3.5rem;
        left: -.4375rem;
        width: 1rem;
        height: 1rem;
        clip-path: polygon(50% 0, 50% 100%, 0 50%)
    }

    .lNews-head .category,
    .lNews-head .date {
        font-size: 14px
    }

    .lNews-head .date {
        margin-left: .4375rem
    }

    .lNews-icon {
        width: 2rem;
        height: 2rem
    }

    .lNews-arrow {
        width: .625rem;
        height: .625rem
    }

    .lNews-articleTitle:before {
        height: 4px
    }

    .lNews-articleTitle {
        font-size: 20px;
        line-height: 1.8;
        margin-top: 1.25rem;
        padding-top: calc(1rem + 4px)
    }

    .lNews-buttonArea {
        margin-top: 4rem
    }

    .lNews-button {
        margin-left: auto
    }

    .lService {
        width: calc(100% - 16px);
        margin-left: 8px;
        margin-right: 8px;
        padding-left: 12px;
        padding-right: 68px;
        height: -moz-fit-content;
        height: fit-content
    }

    .lService-bg {
        top: 8px;
        margin-left: -12px;
        width: calc(100% + 80px);
        height: calc(100vh - 16px);
        border-radius: 2rem;
        -webkit-backdrop-filter: blur(5px);
        backdrop-filter: blur(5px)
    }

    .lService-inner {
        display: flex;
        padding: 9.375rem 0 10rem;
        margin-top: -98.4vh
    }

    .lService-catch {
        font-size: 40px;
        line-height: 1.2;
        margin-top: 8.875rem;
        width: calc(100% + 8px)
    }

    .lService-imageArea {
        width: 30.125rem;
        margin: 14rem 0 0
    }

    .lService-image {
        width: 30.125rem;
        height: 30.125rem;
        margin-left: -48px
    }

    .lService-text {
        font-size: 20px;
        line-height: 1.8;
        margin-top: 37.5rem
    }

    .lService-button {
        width: 20rem;
        height: 7.5rem;
        border-radius: .75rem;
        padding-right: 1.5rem
    }

    .lService-buttonImage {
        width: 7.5rem;
        height: 7.5rem
    }

    .lService-logo {
        width: 3.6875rem;
        height: 2.625rem
    }

    .lService-buttonText {
        transition: color .3s cubic-bezier(.23, 1, .32, 1);
        font-size: 10px;
        line-height: 1.25;
        margin-left: 1.5rem
    }

    .lService-icon {
        width: .875rem;
        height: .875rem
    }
}

@media screen and (max-width:1023px) {
    .lAbout {
        margin-left: .5rem;
        margin-right: .5rem;
        padding: 5.375rem 1.5rem 0
    }

    .lAbout-catch {
        font-size: 3rem;
        line-height: 1.2083333333;
        margin-top: 6.75rem
    }

    .lAbout-content {
        padding: 7.5rem 1.625rem 0
    }

    .lAbout-copy {
        font-size: 1.5rem;
        line-height: 1.2083333333
    }

    .lAbout-image {
        width: 16.75rem;
        border-radius: .5rem;
        margin-top: 2.625rem
    }

    .lAbout-text {
        font-size: 1rem;
        line-height: 1.8;
        margin-top: 2.625rem
    }

    .lAbout-text .paragraph:not(:first-of-type) {
        margin-top: 1.75rem
    }

    .lCareer-inner {
        margin-left: .5rem;
        margin-right: .5rem;
        border-radius: 1.5rem
    }

    .lCareer-content {
        padding: 7.375rem 1.5rem 0
    }

    .lCareer-catch {
        font-size: 1.5rem;
        line-height: 1.2083333333;
        margin-top: 4.875rem;
        padding: 0 1.8125rem
    }

    .lCareer-linkArea:before {
        height: 3px
    }

    .lCareer-linkArea {
        margin: 3rem 1.5rem 0;
        padding: calc(3rem + 3px) 0 7.5rem;
        display: flex;
        justify-content: center
    }

    .lCareer-photos {
        width: 100%;
        height: 11.75rem
    }

    .lCareer-photosInner {
        display: flex;
        width: -moz-fit-content;
        width: fit-content
    }

    .-no01 .lCareer-photosInner {
        margin-top: 2.5625rem
    }

    .-no02 .lCareer-photosInner {
        margin-top: 1.5rem
    }

    .lCareer-image {
        width: auto;
        height: 11.75rem;
        border-radius: .75rem;
        margin-left: .5rem
    }

    .lCatch {
        margin-left: .5rem;
        margin-right: .5rem;
        display: flex;
        justify-content: center;
        padding-block: 11.875rem 11.875rem
    }

    .lCatch-text {
        font-size: 3rem;
        line-height: 1.2083333333;
        width: 18.75rem
    }

    .lKv {
        margin-left: .5rem;
        margin-right: .5rem;
        width: calc(100% - 2rem);
        height: calc(var(--height) - 2rem);
        margin-top: 1rem;
        margin-left: 1rem;
        padding: 3rem 0 2.5rem
    }

    .lKv-conceptList {
        width: 17.5rem;
        height: 3.25rem
    }

    .lKv-item {
        font-size: .75rem
    }

    .lKv-text {
        font-size: 1.5rem;
        line-height: 1.2083333333
    }

    .lKv-textWrapper {
        margin-top: 1rem
    }

    .lKv-bottom {
        margin: auto 1rem 0
    }

    .lLinkArea:before {
        height: 3px
    }

    .lLinkArea {
        margin-top: 2.5rem;
        padding-top: calc(3rem + 3px);
        display: flex;
        justify-content: center
    }

    .lNews {
        padding: 12.375rem 2rem 15.4375rem
    }

    .lNews-content {
        width: calc(100% + 4rem);
        margin-top: 5rem;
        margin-left: -2rem;
        overflow: hidden
    }

    .lNews-list {
        display: flex;
        padding: 0 2rem
    }

    .lNews-item {
        width: 16.75rem
    }

    .lNews-item+.lNews-item {
        margin-left: 1.5rem
    }

    .lNews-imageInner {
        width: 16.75rem;
        border-radius: .5rem
    }

    .lNews-inner {
        min-height: 12.125rem;
        margin-top: .75rem;
        border-radius: .5rem;
        padding: 1rem 1.5rem 1.5rem
    }

    .lNews-inner:before {
        top: -.5rem;
        left: 1.5rem;
        width: 2rem;
        height: 1rem;
        clip-path: polygon(50% 0, 0 100%, 100% 100%)
    }

    .lNews-head .category,
    .lNews-head .date {
        font-size: .6875rem
    }

    .lNews-head .date {
        margin-left: .25rem
    }

    .lNews-icon {
        width: 2rem;
        height: 2rem
    }

    .lNews-arrow {
        width: .625rem;
        height: .625rem
    }

    .lNews-articleTitle:before {
        height: 3px
    }

    .lNews-articleTitle {
        font-size: .75rem;
        line-height: 1.8333333333;
        margin-top: .75rem;
        padding-top: calc(1.25rem + 3px)
    }

    .lNews-buttonArea {
        position: relative;
        padding-block: calc(3rem + 3px) 2rem;
        margin: 3rem 2rem 0
    }

    .lNews-buttonArea:before {
        content: "";
        position: absolute;
        top: 0;
        left: 0;
        width: 100%;
        background-color: hsla(0, 0%, 100%, .2);
        border-radius: 2px
    }

    .lNews-button {
        margin: 0 auto
    }

    .lService {
        margin-left: .5rem;
        margin-right: .5rem;
        margin-top: 12.5rem
    }

    .lService-bg {
        top: .5rem;
        width: 100%;
        height: calc(100vh - 1rem);
        border-radius: 1.5rem
    }

    .lService-inner {
        padding: 7.5rem 1.5rem;
        margin-top: -98vh
    }

    .lService-catch {
        font-size: 1.5rem;
        line-height: 1.2083333333;
        margin-top: 5rem;
        padding-inline: 1.75rem 1.75rem
    }

    .lService-imageArea {
        width: 16.75rem;
        margin: 2.5rem auto 0
    }

    .lService-image {
        width: 16.75rem;
        height: 16.75rem
    }

    .lService-text {
        font-size: 1rem;
        line-height: 1.8125;
        margin-top: 2.5rem;
        padding-inline: 1.75rem 1.75rem
    }

    .lService-button {
        width: 16.75rem;
        height: 6rem;
        border-radius: .5rem;
        padding-right: 1.5rem
    }

    .lService-buttonImage {
        width: 6rem;
        height: 6rem
    }

    .lService-logo {
        width: 2.875rem;
        height: 2.0625rem
    }

    .lService-buttonText {
        font-size: .875rem !important ;
        line-height: 1;
        margin-left: 1.5rem
    }

    .lService-icon {
        width: .625rem;
        height: .625rem
    }
}

@media (orientation:landscape) {
    .-tablet .lKv {
        height: calc(var(--height) - 16px);
        margin-top: 8px;
        margin-left: 8px;
        padding-bottom: 46px
    }
}

@media screen and (max-width:1023px) and (min-width:1024px) {
    .lNews-buttonArea:before {
        height: 4px
    }
}

@media screen and (max-width:1023px) and (max-width:1023px) {
    .lNews-buttonArea:before {
        height: 3px
    }
}