@charset "utf-8";
@import "anime.css";

/*
------------
home.css
------------
*/
/* kv_area */
#kv_area {
    width: 100vw;
    height: 100vh;
    display: flex;
    justify-content: center;
    align-items: center;
}
#kv_area::before {
    content: "";
    width: 100vw;
    height: 100vh;
    background-image: url(../../images/global/bg_yellow.webp);
    background-repeat: no-repeat;
    background-size: cover;
    background-position: center;
    position: absolute;
    top: 0;
    left: 0;
    opacity: 0;
    animation-name: opacity_anime01;
    animation-duration: 0.1s;
    animation-timing-function: ease;
    animation-delay: 1s;
    animation-fill-mode: forwards;
}
#kv_area .inner {
    width: 100%;
    height: 100%;
    position: relative;
    display: flex;
    justify-content: flex-start;
    align-items: flex-end;
}
#kv_area .inner::before {
    content: "";
    width: calc(100% - 40px);
    height: calc(100% - 40px);
    background-image: url(../../images/content/home/kv_img.webp);
    background-repeat: no-repeat;
    background-size: cover;
    background-position: right center;
    position: absolute;
    top: 50%;
    left: 50%;
    transform: translate(-50%, -50%);
    opacity: 0;
    animation-name: opacity_anime01;
    animation-duration: 0.1s;
    animation-timing-function: ease;
    animation-delay: 1s;
    animation-fill-mode: forwards;
}
#kv_area .inner::after {
    content: "";
    width: 100%;
    height: 100%;
    background-image: url(../../images/global/bg_yellow.webp);
    background-repeat: no-repeat;
    background-size: cover;
    position: absolute;
    top: 0;
    left: -100vw;
    animation-name: kvFadeSlide;
    animation-duration: 1s;
    animation-timing-function: ease;
    animation-delay: .3s;
    animation-fill-mode: forwards;
}
#kv_area .inner h2 {
    width: calc(100vw * 925 / 1400);
    max-width: 925px;
    height: auto;
    position: relative;
    top: -20px;
    left: 20px;
    animation-name: kvFadeCopy;
    animation-duration: 1.2s;
    animation-timing-function: cubic-bezier(.25, .8, .25, 1);
    animation-delay: 1s;
    animation-fill-mode: forwards;
    opacity: 0;
}
#kv_area .inner h2 img {
    width: 100%;
}
@media only screen and (max-width: 768px) {
    #kv_area {
        height: 100dvh;
    }
    #kv_area .inner::before {
        width: calc(100% - 20px);
        height: calc(100% - 20px);
        background-image: url(../../images/content/home/kv_imgSP.webp);
    }
    #kv_area .inner h2 {
        width: calc(100% - 20px);
        max-width: calc(100% - 20px);
        top: -10px;
        left: 10px;
    }
}
/* intro_area */
#intro_area {
    margin: 150px 0 0 0;
    border-bottom: 1px solid #E8E8E8;
}
#intro_area .inner {
    position: relative;
}
#intro_area .inner::before {
    content: "";
    width: calc(100vw *  630 / 1400);
    height: auto;
    aspect-ratio: 1 / 1;
    background-image: url(../../images/global/bg_yellow.webp);
    background-repeat: no-repeat;
    background-size: cover;
    border-radius: 50%;
    position: absolute;
    top: calc(100vw * 250 / 1400);
    right: calc((100vw * 180 / 1400) * -1);
}
#intro_area .inner figure.img01 {
    width: calc(100vw * 467 / 1400);
    height: auto;
    aspect-ratio: 467 / 435;
}
#intro_area .inner figure.img02 {
    width: calc(100vw * 372 / 1400);
    height: auto;
    aspect-ratio: 372 / 466;
    margin: 200px 0 0 calc(100vw * 230 / 1400);
}
#intro_area .inner figure {
    position: relative;
    z-index: 1;
}
#intro_area .inner figure::before {
    content: "";
    background-image: url(../../images/global/bg_yellow.webp);
    background-repeat: no-repeat;
    background-size: cover;
    background-position: center;
    position: absolute;
    z-index: -1;
}
#intro_area .inner figure.img01::before {
    width: calc(100vw * 467 / 1400);
    height: auto;
    aspect-ratio: 467 / 435;
    bottom: calc((100vw * 30 / 1400) * -1);
    right: calc((100vw * 30 / 1400) * -1);
}
#intro_area .inner figure.img02::before {
    width: calc(100vw * 220 / 1400);
    height: auto;
    aspect-ratio: 1 / 1;
    bottom: calc((100vw * 110 / 1400) * -1);
    right: calc((100vw * 110 / 1400) * -1);
}
#intro_area .inner .fx_box {
    display: flex;
    gap: calc(100vw * 155 / 1400);
}
#intro_area .inner .item {
    margin: calc(100vw * 160 / 1400) 0 0 0;
    position: relative;
    z-index: 2;
}
#intro_area .inner .item p {
    font-size: min(calc(100vw * 16 / 1400), 1.6rem);
    font-weight: 500;
    letter-spacing: 0.15em;
    line-height: 2;
}
#intro_area .inner .item p:nth-of-type(n + 2) {
    margin: 20px 0 0 0;
}
#intro_area .inner p.en {
    font-size: min(calc(100vw * 126 / 1400), 12.6rem);
    white-space: nowrap;
    color: rgba(0, 0, 0, .1);
    margin: 250px 0 0 0;
}
@media only screen and (max-width: 768px) {
    #intro_area {
        margin: 100px 0 0 0;
    }
    #intro_area .inner::before {
        content: none;
        width: calc(100vw *  630 / 375);
        top: calc(100vw * 250 / 375);
        right: calc((100vw * 180 / 375) * -1);
    }
    #intro_area .inner figure.img01 {
        width: calc(100vw * 250 / 375);
    }
    #intro_area .inner figure.img02 {
        width: calc(100vw * 175 / 375);
        margin: 85px 0 0 calc(100vw * 55 / 375);
    }
    #intro_area .inner figure.img01::before {
        width: calc(100vw * 250 / 375);
        bottom: calc((100vw * 20 / 375) * -1);
        right: calc((100vw * 20 / 375) * -1);
    }
    #intro_area .inner figure.img02::before {
        width: calc(100vw * 120 / 375);
        bottom: calc((100vw * 60 / 375) * -1);
        right: calc((100vw * 60 / 375) * -1);
    }
    #intro_area .inner .fx_box {
        display: block;
    }
    #intro_area .inner .item {
        width: 85vw;
        margin: 100px auto 0 auto;
    }
    #intro_area .inner .item p {
        font-size: min(calc(100vw * 16 / 375), 1.6rem);
    }
    #intro_area .inner .item p:nth-of-type(n + 2) {
        margin: 15px 0 0 0;
    }
    #intro_area .inner p.en {
        font-size: min(calc(100vw * 60 / 375), 6rem);
        margin: 150px 0 0 0;
    }
}
/* works_area */
#works_area {
    padding: 150px 0;
    border-bottom: 1px solid #E8E8E8;
    position: relative;
}
#works_area .inner {
    display: flex;
    justify-content: flex-start;
    gap: 30px;
}
#works_area .inner .element {
    margin: 0 0 0 calc((100vw - min(calc(100vw * 1100 / 1400), 1100px)) / 2);
}
#works_area .inner .instagram_area {
    width: calc(100vw * 700 / 1400);
    margin: 0 0 0 auto;
}
#works_area .inner .instagram_area .slider .slick-list {
    margin: 0 calc(-1 * min(calc(100vw * 10 / 1400), 10px));
}
#works_area .inner .instagram_area .slider .slick-slide {
    margin: 0 min(calc(100vw * 10 / 1400), 10px);
}
#works_area .inner .instagram_area .slider_ui {
    display: flex;
    justify-content: flex-end;
    gap: 50px;
    margin: 30px 50px 0 0;
}
#works_area .inner .instagram_area .slider_ui p.slide_count {
    font-size: 1.6rem;
    letter-spacing: 0.05em;
    display: flex;
    justify-content: center;
    align-items: center;
    gap: 25px;
}
#works_area .inner .instagram_area .slider_ui p.slide_count span.current {
    position: relative;
}
#works_area .inner .instagram_area .slider_ui p.slide_count span.current::before {
    content: "";
    width: 1px;
    height: 1.2em;
    background-color: var(--black);
    position: absolute;
    top: 50%;
    right: -12px;
    transform: translateY(-50%) rotate(40deg);
}
#works_area .inner .instagram_area .slider_ui ul {
    display: flex;
    justify-content: flex-start;
    gap: 10px;
}
#works_area .inner .instagram_area .slider_ui ul li button {
    appearance: none;
    -webkit-appearance: none;
    background: none;
    padding: 0;
    margin: 0;
    font: inherit;
    color: inherit;
    text-align: inherit;
    line-height: inherit;
    cursor: pointer;
    border: 1px solid var(--black);
    background-color: var(--white);
    border-radius: 500px;
    width: 64px;
    height: 24px;
    display: flex;
    justify-content: center;
    align-items: center;
    transition: background-color .3s ease;
}
#works_area .inner .instagram_area .slider_ui ul li button:focus {
    outline: none;
}
#works_area .inner .instagram_area .slider_ui ul li button svg {
    width: 17px;
    height: 8px;
}
#works_area .inner .instagram_area .slider_ui ul li button svg .arrow {
    fill: var(--black);
    transition: fill .3s ease;
}
#works_area .inner .instagram_area .slider_ui ul li button:hover {
    background-color: var(--black);
}
#works_area .inner .instagram_area .slider_ui ul li button:hover svg .arrow {
    fill: var(--white);
}
@media only screen and (max-width: 768px) {
    #works_area {
        padding: 65px 0;
    }
    #works_area .inner {
        display: block;
    }
    #works_area .inner .element {
        width: 85vw;
        margin: 0 auto;
    }
    #works_area .inner .instagram_area {
        width: 100vw;
        margin: 45px 0 0 0;
    }
    #works_area .inner .instagram_area .slider .slick-list {
        margin: 0 calc(-1 * min(calc(100vw * 5 / 375), 5px));
    }
    #works_area .inner .instagram_area .slider .slick-slide {
        margin: 0 min(calc(100vw * 5 / 375), 5px);
    }
    #works_area .inner .instagram_area .slider_ui {
        justify-content: center;
        margin: 30px 0 0 0;
    }
    #works_area .inner .instagram_area .slider_ui p.slide_count {
        font-size: 1.4rem;
    }
    #works_area .inner .instagram_area .slider_ui ul li button {
        transition: none;
    }
    #works_area .inner .instagram_area .slider_ui ul li button svg .arrow {
        transition: none;
    }
    #works_area .inner .instagram_area .slider_ui ul li button:hover {
        background-color: var(--white);
    }
    #works_area .inner .instagram_area .slider_ui ul li button:hover svg .arrow {
        fill: var(--black);
    }
    #works_area .inner p.link_btn {
        width: 85vw;
        margin: 65px auto 0 auto;
    }
}
/* cs_area */
#cs_area {
    margin: 150px 0 0 0;
}
#cs_area .inner {
    width: calc(100vw * 1100 / 1400);
    max-width: 1100px;
    margin: 0 auto;
    display: flex;
    justify-content: flex-start;
    flex-wrap: wrap;
    gap: min(calc(100vw * 140 / 1400), 140px);
}
#cs_area .inner article {
    width: calc(100vw * 480 / 1400);
    max-width: 480px;
}
#cs_area .inner article:nth-child(2) {
    margin: 250px 0 0 0;
}
#cs_area .inner article figure {
    position: relative;
    z-index: 1;
    width: 100%;
    height: auto;
    aspect-ratio: 480 / 320;
}
#cs_area .inner article figure::before {
    content: "";
    width: 100%;
    height: 100%;
    background-image: url(../../images/global/bg_yellow.webp);
    background-repeat: no-repeat;
    background-size: cover;
    position: absolute;
    top: 20px;
    right: -20px;
    z-index: -1;
}
#cs_area .inner article .stit_box {
    margin: 45px 0 0 0;
}
@media only screen and (max-width: 768px) {
    #cs_area {
        margin: 65px 0 0 0;
    }
    #cs_area .inner {
        width: 85vw;
        max-width: 85vw;
        display: block;
    }
    #cs_area .inner article {
        width: 100%;
        max-width: 100%;
    }
    #cs_area .inner article:nth-child(2) {
        margin: 65px 0 0 0;
    }
    #cs_area .inner article figure::before {
        top: 10px;
        right: -10px;
    }
    #cs_area .inner article .stit_box {
        margin: 45px 0 0 0;
    }
}
/* initiative_area */
#initiative_area {
    margin: 150px 0 0 0;
    width: 100vw;
    height: auto;
    aspect-ratio: 1400 / 628;
    position: relative;
}
#initiative_area .inner {
    width: calc(100vw * 1100 / 1400);
    max-width: 1100px;
    height: 100%;
    margin: 0 auto;
    display: flex;
    align-items: center;
}
#initiative_area .inner figure {
    width: 100%;
    height: 100%;
    position: absolute;
    top: 0;
    left: 0;
}
#initiative_area .inner figure::before {
    content: "";
    width: 100%;
    height: 100%;
    background-color: rgba(0, 0, 0, .7);
    position: absolute;
    top: 0;
    left: 0;
    z-index: 1;
}
#initiative_area .inner .item {
    position: relative;
    z-index: 2;
}
#initiative_area .inner .item .stit_box span,
#initiative_area .inner .item p.lead,
#initiative_area .inner .item p.link_btn a {
    color: var(--white);
}
@media only screen and (max-width: 768px) {
    #initiative_area {
        margin: 65px 0 0 0;
        height: 100%;
        padding: 65px 0;
        aspect-ratio: initial;
    }
    #initiative_area .inner {
        width: 85vw;
        max-width: 85vw;
    }
}
/* recruit_area */
#recruit_area {
    margin: 150px 0 0 0;
}
#recruit_area .inner {
    width: calc(100vw * 1100 / 1400);
    max-width: 1100px;
    margin: 0 auto;
    display: flex;
    justify-content: flex-start;
    align-items: flex-end;
    gap: min(calc(100vw * 125 / 1400), 125px);
}
#recruit_area .inner figure {
    width: calc(100vw * 440 / 1400);
    max-width: 440px;
    height: auto;
    aspect-ratio: 440 / 660;
    position: relative;
}
#recruit_area .inner figure::before {
    content: "";
    width: 100%;
    height: 100%;
    background-image: url(../../images/global/bg_yellow.webp);
    background-repeat: no-repeat;
    background-size: cover;
    position: absolute;
    top: 20px;
    right: -20px;
    z-index: -1;
}
#recruit_area .inner figure img {
    left: auto;
    right: 0;
}
@media only screen and (max-width: 768px) {
    #recruit_area {
        margin: 65px 0 0 0;
    }
    #recruit_area .inner {
        width: 85vw;
        max-width: 85vw;
        display: block;
    }
    #recruit_area .inner figure {
        width: calc(100vw * 200 / 375);
        max-width: 200px;
    }
    #recruit_area .inner figure::before {
        top: 10px;
        right: -10px;
    }
    #recruit_area .inner .element {
        margin: 45px 0 0 0;
    }
}
/* product_area */
#product_area {
    margin: 150px 0 0 0;
}
#product_area .inner {
    width: calc(100vw - min(calc(100vw * 40 / 1400), 40px));
    margin: 0 auto;
}
#product_area .inner article {
    display: flex;
    justify-content: flex-start;
    align-items: stretch;
    gap: min(calc(100vw * 20 / 1400), 20px);
    margin: min(calc(100vw * 20 / 1400), 20px) 0 0 0;
}
#product_area .inner article:nth-child(2) {
    flex-direction: row-reverse;
}
#product_area .inner article figure {
    width: calc(100vw * 545 / 1400);
    max-width: 545px;
    height: auto;
    aspect-ratio: 545 / 478;
}
#product_area .inner article .element {
   width: calc(100% - min(calc(100vw * 545 / 1400), 545px) - min(calc(100vw * 20 / 1400), 20px));
   background-color: #f7f7f7;
   display: flex;
   align-items: center;
}
#product_area .inner article .element .item {
    padding: 0 min(calc(100vw * 80 / 1400), 80px);
}
#product_area .inner article .element .item h2 {
    font-size: 3rem;
    font-weight: 600;
    letter-spacing: 0.15em;
    line-height: 1.5;
}
@media only screen and (max-width: 768px) {
    #product_area {
        margin: 65px 0 0 0;
    }
    #product_area .inner {
        width: calc(100vw - min(calc(100vw * 20 / 375), 20px));
    }
    #product_area .inner article {
        display: block;
        margin: min(calc(100vw * 20 / 375), 20px) 0 0 0;
    }
    #product_area .inner article:nth-child(2) {
        flex-direction: row;
    }
    #product_area .inner article figure {
        width: 100%;
        max-width: 100%;
    }
    #product_area .inner article .element {
        width: 100%;
        display: block;
    }
    #product_area .inner article .element .item {
        padding: 30px;
    }
    #product_area .inner article .element .item h2 {
        font-size: 2rem;
    }
    #product_area .inner article .element .item p.lead {
        margin: 15px 0 0 0;
    }
}
/* news_area */
#news_area {
    margin: 150px 0 0 0;
}
#news_area .inner {
    width: calc(100vw * 1100 / 1400);
    max-width: 1100px;
    margin: 0 auto;
}
#news_area .inner .list {
    margin: 45px 0 0 0;
    display: flex;
    justify-content: flex-start;
    gap: min(calc(100vw * 20 / 1400), 20px);
}
#news_area .inner .list article {
    width: calc(100% / 4 - (min(calc(100vw * 15 / 1400), 15px)));
}
#news_area .inner .list article figure {
    width: 100%;
    height: auto;
    aspect-ratio: 1 / 1;
    overflow: hidden;
    background-color: #c3c3c3;
}
#news_area .inner .list article figure img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    transition: transform .3s ease;
}
#news_area .inner .list article a:hover figure img {
    transform: scale(1.05);
}
#news_area .inner .list article p.date {
    font-size: 1.6rem;
    letter-spacing: 0.05em;
    margin: 20px 0 0 0;
}
#news_area .inner .list article h3 {
    font-size: 1.6rem;
    letter-spacing: 0.15em;
    line-height: 1.6;
    margin: 10px 0 0 0;
    text-align: justify;
}
#news_area .inner .list article a {
    transition: opacity .3s ease;
}
#news_area .inner .list article a:hover {
    opacity: .6;
}
@media only screen and (max-width: 768px) {
    #news_area {
        margin: 65px 0 0 0;
    }
    #news_area .inner {
        width: 100vw;
        max-width: 100vw;
    }
    #news_area .inner .stit_box {
        width: 85vw;
        margin: 0 auto;
    }
    #news_area .inner .list {
        margin: 35px 0 0 0;
        display: block;
    }
    #news_area .inner .list .slick-list {
        padding: 0 0 0 7.5vw;
    }
    #news_area .inner .list article {
        width: calc(100vw * 260 / 375) !important;
        margin: 0 20px 0 0;
    }
    #news_area .inner .list article figure img {
        transition: none;
    }
    #news_area .inner .list article a:hover figure img {
        transform: scale(1);
    }
    #news_area .inner .list article p.date {
        font-size: 1.4rem;
    }
    #news_area .inner .list article a {
        transition: none;
    }
    #news_area .inner .list article a:hover {
        opacity: 1;
    }
    #news_area .inner .link_btn {
        margin: 45px 0 0 7.5vw;
    }
}