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

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

html {
    color: #131313;
    font-family: "noto-sans-cjk-jp", sans-serif;
    font-style: normal;
    font-weight: 500;
    line-height: normal;
    letter-spacing: normal;
}

body {
    background-color: #FFF;
    background-size: contain;
    display: flex;
    flex-direction: column;
    min-height: 100vh;
    overflow-x: hidden;
}

main.top {
    margin-top: 98px;
    padding: 22px 0 200px;
}

@media screen and (max-width:990px) {
    main.top {
        margin-top: 70px;
    }
}

@media screen and (max-width:768px) {
    main.top {
        padding: 22px 0 100px;
    }
}

ul {
    list-style: none;
}

p {
    font-family: "noto-sans-cjk-jp", sans-serif;
    font-style: normal;
    font-size: 18px;
    font-weight: 500;
    line-height: 1.9;
    letter-spacing: 0.1em;
}

.subfont {
    font-family: "Montserrat", serif;
    font-weight: 900;
    font-style: normal;
}

/*---------------------------------------------------------
                タイトル
---------------------------------------------------------*/
.page_ttl p {
    margin-left: -14px;
    font-size: max(9.5vw, 60px);
    line-height: 0.7;
    letter-spacing: 0.05em;
}

.page_ttl h1 {
    margin: 15px 0 0 5%;
    font-size: 30px;
    font-weight: 800;
    line-height: normal;
    letter-spacing: 0.1em;
}

@media screen and (max-width:990px) {
    .page_ttl h1 {
        font-size: max(3vw, 20px);
    }
}

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

    .page_ttl p {
        margin-left: -10px;
    }

    .page_ttl h1 {
        font-size: max(4vw, 20px);
    }
}



/*---------------------------------------------------------
                ボタン
---------------------------------------------------------*/
.btn {
    display: flex;
    align-items: center;
    justify-content: flex-end;
    gap: 53px;
    padding: 8px 12px 8px 54px;
    width: fit-content;
    font-size: 24px;
    font-weight: 600;
    line-height: normal;
    letter-spacing: 0.1em;
    border-radius: 90px;
    transition: 0.3s;
}

.btn .arrow {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 102px;
    height: 49.5px;
    background-color: #FFF;
    border-radius: 35px;
    transition: 0.3s;
}

.btn .arrow svg path {
    transition: 0.3s;
}

.btn.green {
    color: #FFF;
    background-color: #00C911;
    border: 5px solid #00C911;
}

.btn.green:hover {
    color: #00C911;
    background-color: #FFF;
}

.btn.green .arrow {
    background-color: #FFF;
}

.btn.green:hover .arrow {
    background-color: #00C911;
}

.btn.green:hover .arrow svg path {
    fill: #FFF;
}

.btn.darkgreen {
    color: #FFF;
    background-color: #00A76B;
    border: 5px solid #00A76B;
}

.btn.darkgreen:hover {
    color: #00A76B;
    background-color: #FFF;
}

.btn.darkgreen .arrow {
    background-color: #FFF;
}

.btn.darkgreen:hover .arrow {
    background-color: #00A76B;
}

.btn.darkgreen:hover .arrow svg path {
    fill: #FFF;
}

.btn.black {
    color: #FFF;
    background-color: #131313;
    border: 5px solid #131313;
}

.btn.black:hover {
    color: #131313;
    background-color: #FFF;
}

.btn.black .arrow {
    background-color: #FFF;
}

.btn.black:hover .arrow {
    background-color: #131313;
}

.btn.black:hover .arrow svg path {
    fill: #FFF;
}

.btn.white {
    color: #131313;
    background-color: #FFF;
    border: 5px solid #FFF;
}

.btn.white:hover {
    color: #FFF;
    background-color: #131313;
}

.btn.white .arrow {
    background-color: #131313;
}

.btn.white:hover .arrow {
    background-color: #FFF;
}

.btn.white:hover .arrow svg path {
    fill: #131313;
}

@media screen and (max-width:768px) {
    .btn {
        padding: 2px 2px 2px 30px;
        font-size: 18px;
    }

    .btn .arrow {
        width: 72px;
        height: 46px;
    }

    .btn .arrow svg {
        width: 24px;
    }
}

@media screen and (max-width:500px) {
    .btn {
        width: 90vw !important;
        justify-content: space-between;
    }

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

/*---------------------------------------------------------
                ページネーション
---------------------------------------------------------*/
.wp-pagenavi {
    margin-top: 97px;
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 37px;
}

.wp-pagenavi a.page {
    display: flex;
    align-items: center;
    justify-content: center;
    margin: unset !important;
    padding: unset !important;
    width: 48px;
    height: 48px;
    background-color: #E8E8E8;
    color: #131313;
    font-family: "Montserrat", serif;
    font-size: 20px;
    font-weight: 600;
    line-height: 1;
    border: none !important;
    border-radius: 50%;
}

.wp-pagenavi span.current {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 60px;
    height: 60px;
    background-color: #00C911;
    color: #FFF;
    font-family: "Montserrat", serif;
    font-size: 24px;
    font-weight: 600;
    line-height: 1;
    letter-spacing: 0.05em;
    border: none;
    border-radius: 50%;
}

.wp-pagenavi a.nextpostslink,
.wp-pagenavi a.previouspostslink {
    position: relative;
    width: 16px;
    height: 28px;
    border: none !important;
    margin: unset !important;
    padding: unset !important;
}

.wp-pagenavi a.previouspostslink:before {
    position: absolute;
    top: 6.5px;
    left: 0;
    transform: rotate(-45deg);
    content: "";
    display: inline-block;
    width: 19px;
    height: 4px;
    background-color: #131313;
    border-radius: 10px;
}

.wp-pagenavi a.previouspostslink:after {
    position: absolute;
    bottom: 6.5px;
    left: 0;
    transform: rotate(45deg);
    content: "";
    display: inline-block;
    width: 19px;
    height: 4px;
    background-color: #131313;
    border-radius: 10px;
}

.wp-pagenavi a.nextpostslink::before {
    position: absolute;
    top: 6.5px;
    left: 0;
    transform: rotate(45deg);
    content: "";
    display: inline-block;
    width: 19px;
    height: 4px;
    background-color: #131313;
    border-radius: 10px;
}

.wp-pagenavi a.nextpostslink::after {
    position: absolute;
    bottom: 6.5px;
    left: 0;
    transform: rotate(-45deg);
    content: "";
    display: inline-block;
    width: 19px;
    height: 4px;
    background-color: #131313;
    border-radius: 10px;
}

@media screen and (max-width:768px) {
    .wp-pagenavi {
        margin-top: 50px;
    }

    .wp-pagenavi span.current {
        width: 40px;
        height: 40px;
        font-size: 18px;
    }

    .wp-pagenavi a.page {
        width: 30px;
        height: 30px;
        font-size: 16px;
    }

    .wp-pagenavi a.nextpostslink,
    .wp-pagenavi a.previouspostslink {
        height: 24px;
    }

    .wp-pagenavi a.nextpostslink::before,
    .wp-pagenavi a.nextpostslink::after,
    .wp-pagenavi a.previouspostslink:before,
    .wp-pagenavi a.previouspostslink:after {
        width: 14px;
    }
}

/*---------------------------------------------------------
                loading
---------------------------------------------------------*/
.loader {
    position: fixed;
    top: 0;
    left: 0;
    overflow: hidden;
    width: 100%;
    height: 100vh;
    background: #fff;
    z-index: 99;
}

.loader .loading_logo {
    position: absolute;
    top: 0;
    left: 0;
    z-index: 2;
    display: none;
    width: 100%;
    height: 100%;
}

.loader .loading_logo .logo_group {
    position: absolute;
    top: 52.5%;
    left: 50%;
    transform: translate(-50%, -50%);
    width: 148px;
    height: auto;
    aspect-ratio: 148 / 216;
}

.loader .loading_logo .logo_mark {
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
}

.loader .loading_logo .logo {
    position: absolute;
    bottom: 0;
    left: 0;
    width: 100%;
}

.loader .loading_logo #mask {
    position: absolute;
    top: 50%;
    left: 50%;
    transform: translate(-50%, -50%);
    width: 148px;
    height: auto;
    transform-origin: center;
    transition: all 0.8s ease-in-out;
}

.loader .loading_logo #mask.on {
    top: -500px;
    left: -650px;
    transform: translate(0, 0);
    width: 4500px;
    opacity: .3;
}

.loader #mask path {
    transition: fill 0.8s ease-in-out;
}

.loader .loading_bg {
    position: fixed;
    top: 0;
    left: 0;
    opacity: 0;
    width: 100vw;
    height: auto;
    object-fit: cover;
    mask-image: url("../img/mark.svg");
    mask-repeat: no-repeat;
    mask-position: -650px -500px;
    mask-size: 4500px;
    /* Chrome, Safari用 */
    -webkit-mask-image: url("../img/mark.svg");
    -webkit-mask-repeat: no-repeat;
    -webkit-mask-position: -650px -500px;
    -webkit-mask-size: 4500px;
}

.loader .loading_bg.sp {
    display: none;
}

.loader .loading_txt {
    position: absolute;
    top: 880px;
    left: 140px;
    z-index: 3;
    opacity: 0;
    line-height: 1.4;
    letter-spacing: 0.05em;
    color: #fff;
    font-size: clamp(60px, 5vw, 96px);
    font-weight: 900;
    transition: all 0.5s ease-in-out;
    text-wrap: balance;
    word-break: auto-phrase;
}

.loader .loading_txt.on {
    opacity: 1;
}

.loader .loading_txt br.sp_only {
    display: none;
}

@media screen and (max-width:500px) {
    .loader .loading_logo .logo_group {
        width: 100px;
    }
}

/*---------------------------------------------------------
                アイキャッチ
---------------------------------------------------------*/
.eyecatch {
    position: relative;
    overflow: hidden;
    width: 100%;
    height: auto;
    aspect-ratio: 1470/1152.46;
    background: #fff;
    background-image: url(../img/img_top_mv_bg.png);
    background-position: top left;
    background-size: 100% 100%;
    background-repeat: no-repeat;
}

/* .eyecatch .eyecatch_bg {
    position: relative;
    width: 100%;
    height: auto;
    object-fit: cover;
    mask-image: url("../img/mark.svg");
    mask-repeat: no-repeat;
    mask-size: 100%; */
/* Chrome, Safari用 */
/* -webkit-mask-image: url("../img/mark.svg");
    -webkit-mask-repeat: no-repeat;
    -webkit-mask-size: 100%;
}

.eyecatch .eyecatch_bg.sp {
    display: none;
} */

.eyecatch .main_txt {
    position: absolute;
    top: 20%;
    left: 5%;
    z-index: 3;
    line-height: 1.2;
    letter-spacing: 0.05em;
    color: #131313;
    font-size: clamp(60px, 7vw, 150px);
    font-weight: 900;
    text-wrap: balance;
    word-break: auto-phrase;
}

.eyecatch .main_txt br.sp_only {
    display: none;
}

.eyecatch .sub_txt {
    position: absolute;
    top: 50%;
    right: 5%;
    z-index: 3;
}

.sub_txt p {
    font-size: clamp(20px, 2.2vw, 28px);
    font-weight: 900;
    line-height: 1.5;
    letter-spacing: 0.2em;
    text-align: right;
}

@media screen and (max-width:990px) {
    .eyecatch {
        width: 100%;
        height: 110vh;
        background-image: url(../img/img_top_mv_bg_sp.png);
        background-repeat: no-repeat;
        background-position: top center;
        background-size: cover;
    }

    .eyecatch .main_txt {
        top: unset;
        bottom: 33%;
        color: #FFF;
        font-size: clamp(42px, 6vw, 60px);
    }

    .eyecatch .sub_txt {
        top: unset;
        left: 5%;
        bottom: 24%;
        color: #fff;
    }
}

/*---------------------------------------------------------
                TOPページ
---------------------------------------------------------*/
/*バナースライダー*/
.banner_slider {
    position: relative;
    margin: -20% 0 0 auto;
    padding: 80px 0 60px;
    width: 89.5%;
    background-color: #00A76B;
    border-radius: 50px 0 0 50px;
    overflow: hidden;
}

.banner_slider .swiper {
    margin: 0 auto;
    width: 77%;
    overflow: visible;
}

.banner_slider .inner .img_box {
    width: 53%;
    background-color: #FFF;
    border-radius: 20px;
}

.banner_slider .img_box img {
    width: 100%;
    aspect-ratio: 520/300;
    border-radius: 20px;
    object-fit: contain;
}

.banner_slider p.en_txt {
    position: absolute;
    top: -10px;
    left: 50%;
    transform: translateX(-50%);
    font-family: "impetus", sans-serif;
    font-size: max(27vw, 128px);
    line-height: 0.7;
    color: #3CC996;
    opacity: 0.6;
    letter-spacing: 0;
    margin-top: -10px;
}

.banner_slider .bottom_box {
    display: flex;
    align-items: center;
    justify-content: space-between;
    margin-top: 38px;
}

.banner_slider .swiper-button_box {
    display: flex;
    align-items: center;
    gap: 63px;
}

.banner_slider .swiper-button-next,
.banner_slider .swiper-button-prev {
    position: relative;
    top: unset;
    right: unset;
    bottom: unset;
    left: unset;
    color: #FFF;
    margin-top: unset;
    width: 25px;
    height: 42px;
}

.banner_slider .swiper-button-next::before {
    position: absolute;
    top: -4.7px;
    left: 50%;
    transform: rotate(-45deg) translateX(-50%);
    content: "";
    display: inline-block;
    width: 6px;
    height: 29.8px;
    border-radius: 10px;
    background-color: #FFF;
}

.banner_slider .swiper-button-next::after {
    position: absolute;
    bottom: -4.7px;
    left: 50%;
    transform: rotate(45deg) translateX(-50%);
    content: "";
    display: inline-block;
    width: 6px;
    height: 29.8px;
    border-radius: 10px;
    background-color: #FFF;
}

.banner_slider .swiper-button-prev::before {
    position: absolute;
    top: -0.5px;
    left: 50%;
    transform: rotate(45deg) translateX(-50%);
    content: "";
    display: inline-block;
    width: 6px;
    height: 29.8px;
    border-radius: 10px;
    background-color: #FFF;
}

.banner_slider .swiper-button-prev::after {
    position: absolute;
    bottom: -0.5px;
    left: 50%;
    transform: rotate(-45deg) translateX(-50%);
    content: "";
    display: inline-block;
    width: 6px;
    height: 29.8px;
    border-radius: 10px;
    background-color: #FFF;
}

.banner_slider .progress_bar {
    position: relative;
    width: 70.5%;
    height: 14px;
    background: #3CC996;
    border-radius: 10px;
}

.banner_slider .progress_bar span {
    position: absolute;
    background: #FFF;
    border-radius: 10px;
    height: 100%;
    transform-origin: left;
    transition: 0.3s;
}

.banner_slider .progress_bar .icon {
    position: absolute;
    top: 50%;
    transform: translate(-50%, -50%);
    width: 30px;
    height: 30px;
    background-image: url(../img/ic_progressbar.svg);
    background-repeat: no-repeat;
    background-size: 100%;
    z-index: 10;
    transition: 0.3s;
}

@media screen and (max-width:990px) {
    .banner_slider {
        margin-top: -10vh;
        width: 100%;
    }
}

@media screen and (max-width:768px) {
    .banner_slider {
        padding: 63px 0 40px;
        border-radius: 20px 0 0 20px;
    }

    .banner_slider .swiper {
        width: 90%;
    }

    .banner_slider .inner .img_box {
        width: 100%;
    }

    .banner_slider .img_box img{
        aspect-ratio: 640 / 570;
    }

    .banner_slider .bottom_box {
        flex-direction: column;
        align-items: flex-start;
        gap: 30px;
    }

    .banner_slider .progress_bar {
        width: calc(100% - 60px);
        margin-left: 30px;
        height: 8px;
    }

    .banner_slider .swiper-button_box {
        gap: 30px;
        margin: 0 0 0 auto;
    }

    .banner_slider .swiper-button-next,
    .banner_slider .swiper-button-prev {
        height: 25px;
    }

    .banner_slider .swiper-button-prev::before,
    .banner_slider .swiper-button-prev::after,
    .banner_slider .swiper-button-next::before,
    .banner_slider .swiper-button-next::after {
        height: 19.8px;
    }

    .banner_slider p.en_txt {
        top: 2px;
        letter-spacing: 0;
    }

    .banner_slider .img_box img {
        border-radius: 10px;
    }
}


/* 私たちについて */
#about {
    padding: 150px 0 300px;
    width: 100%;
    background: url(../img/img_top_about_bg.png);
    background-repeat: no-repeat;
    background-size: auto 100%;
    background-position: top right;
}

#about .ttl p {
    color: #9AE11D;
    font-size: max(10.4vw, 60px);
    line-height: 0.7em;
    letter-spacing: 0.05em;
    margin-left: -2rem;
}

#about .ttl h2 {
    margin-top: 2em;
    margin-left: 7.5%;
    font-size: 40px;
    font-weight: 900;
    line-height: normal;
    letter-spacing: 0.1em;
}

#about .text {
    margin: 30px 0 0 7.5%;
    width: 50%;
}

.topslideTrigger {
    opacity: 0;
}

.topslideTrigger.topSlideAnime {
    animation-name: topSlide;
    animation-duration: 0.8s;
    animation-delay: 0.3s;
    animation-fill-mode: forwards;
}

@keyframes topSlide {
    0% {
        transform: translateY(100%);
        opacity: 0;
    }

    100% {
        transform: translateX(0);
        opacity: 1;
    }
}

#about .text p {
    font-size: 20px;
    font-weight: bold;
    line-height: 3;
    letter-spacing: 0.02em;
}

#about .text p:not(:first-of-type) {
    margin-top: 30px;
}

#about .btn {
    margin: 85px 0 0 0;
}

/* エムズショップの強み */
#strength {
    position: relative;
    margin-top: -100px;
    background: url(../img/img_top_strength_bg.png);
    background-position: top;
    background-repeat: no-repeat;
    background-size: cover;
    border-radius: 50px 50px 0 0;
    overflow: hidden;
}

#strength .text_scroll_area {
    display: flex;
    align-items: center;
    overflow: hidden;
}

#strength .text_scroll_area .inner {
    display: flex;
    align-items: center;
    gap: 180px;
    animation: loop-slide 50s infinite linear both;
}

#strength .text_scroll_area.scroll02 .inner {
    animation: loop-slide02 50s infinite linear both;
}

#strength .text_scroll_area p {
    color: #FFF;
    font-size: max(6.9vw, 36px);
    line-height: 1.2;
    letter-spacing: 0.05em;
    white-space: nowrap;
}

#strength h2 {
    margin-top: 64px;
    color: #FFF;
    font-size: 36px;
    font-weight: 900;
    line-height: normal;
    letter-spacing: 0.1em;
    text-align: center;
}

#strength .point_box {
    margin-top: 60px;
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 20px;
}

#strength .point_box .point_item {
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    gap: 20px;
    width: 20vw;
    height: 20vw;
    background-color: #FFF;
    border-radius: 50%;
}

#strength .point_box .point_item p:nth-of-type(1) {
    color: #FFDA47;
    font-size: max(3.3vw, 24px);
    font-weight: 900;
    line-height: 0.8em;
    margin-top: -20px;
}

#strength .point_box .point_item p:nth-of-type(2) {
    font-size: max(2vw, 20px);
    font-weight: bold;
    line-height: normal;
}

#strength .point_box .plus {
    width: 53px;
}

#strength .point_box .plus svg {
    width: 100%;
    height: 100%;
}

#strength .btn {
    margin: 58px auto 42px;
}

@keyframes loop-slide {
    from {
        transform: translateX(0);
    }

    to {
        transform: translateX(-100%);
    }
}

@keyframes loop-slide02 {
    from {
        transform: translateX(-100%);
    }

    to {
        transform: translateX(0);
    }
}

/* サービス */
#service {
    margin-top: 200px;
}


#service .ttl p {
    font-size: max(10.4vw, 60px);
    line-height: 0.7em;
    letter-spacing: 0.05em;
    margin-left: -2rem;
}

#service .ttl h2 {
    margin: 40px 0 0 7.5%;
    font-size: 40px;
    font-weight: 900;
    line-height: normal;
    letter-spacing: 0.1em;
}

#service .btn_box {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    justify-content: center;
    gap: 40px;
    margin: 110px auto 0;
    width: 70%;
}

#service .btn_box a {
    display: flex;
    align-items: center;
    justify-content: center;
    padding: 80px 0;
    width: calc((100% - 40px)/2);
    background-position: center;
    background-repeat: no-repeat;
    background-size: cover;
    color: #FFF;
    font-size: 28px;
    font-weight: 700;
    line-height: 1.8;
    letter-spacing: 0.1em;
    border-radius: 180px;
}

#service .btn_box a:nth-of-type(1) {
    background-image: url(../img/img_top_service_btn01_before.png);
}

#service .btn_box a:nth-of-type(2) {
    background-image: url(../img/img_top_service_btn02_before.png);
}

#service .btn_box a:nth-of-type(3) {
    background-image: url(../img/img_top_service_btn03_before.png);
}

#service .btn_box a:nth-of-type(4) {
    background-image: url(../img/img_top_service_btn04_before.png);
}

#service .btn_box a:hover:nth-of-type(1) {
    background-image: url(../img/img_top_service_btn01_after.png);
}

#service .btn_box a:hover:nth-of-type(2) {
    background-image: url(../img/img_top_service_btn02_after.png);
}

#service .btn_box a:hover:nth-of-type(3) {
    background-image: url(../img/img_top_service_btn03_after.png);
}

#service .btn_box a:hover:nth-of-type(4) {
    background-image: url(../img/img_top_service_btn04_after.png);
}

#service .btn {
    margin: 82px auto 0;
}

/* 取り扱い商品 */
#products {
    margin-top: 192px;
}

#products .ttl p {
    font-size: max(10.4vw, 60px);
    line-height: 0.7em;
    letter-spacing: 0.05em;
    text-align: right;
    margin-right: -2rem;
}

#products .ttl h2 {
    margin-left: 10%;
    font-size: 40px;
    font-weight: 900;
    line-height: normal;
    letter-spacing: 0.1em;
}

#products .btn_box {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 41px;
    margin: 109px auto 0;
    width: 80%;
}

#products .btn_box a {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 22px;
    width: calc((100% - 82px)/3);
    color: #131313;
}

#products .btn_box a .img_box {
    position: relative;
    width: 100%;
}

#products .btn_box a .img_box img {
    width: 100%;
    height: auto;
    aspect-ratio: 1/1;
    object-fit: cover;
    border-radius: 30px;
}

#products .btn_box a p.text {
    font-size: 24px;
    line-height: normal;
    letter-spacing: 0.1em;
    font-weight: 700;
}

#products .btn_box a .hover_box {
    position: absolute;
    top: 50%;
    left: 50%;
    transform: translate(-50%, -50%) scale(0);
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    gap: 15px;
    width: 90%;
    height: 90%;
    background-color: rgba(0, 0, 0, 0.6);
    border-radius: 18px;
    opacity: 0;
    transition: 0.3s;
}

#products .btn_box a .hover_box p.pro_txt {
    display: none;
}

#products .btn_box a .hover_box p.more_txt {
    color: #FFF;
    font-size: 36px;
    line-height: 1.2;
    letter-spacing: 0.05em;
    text-align: center;
}

#products .btn_box a:hover .hover_box {
    opacity: 1;
    transform: translate(-50%, -50%) scale(1);
}

#products .btn {
    margin: 78px auto 0;
}

/* 会社での取り組み */
#initiative {
    position: relative;
    margin: 200px auto 0;
    padding: 59px 0 108px;
    width: 90%;
    background-color: #91DA12;
    border-radius: 50px;
    overflow: hidden;
}

#initiative .ttl p {
    margin-left: -10px;
    color: #FFF;
    font-size: max(9vw, 60px);
    line-height: 0.8;
    letter-spacing: 0.05em;
    opacity: 0.5;
}

#initiative .ttl h2 {
    margin: 20px 0 0 8%;
    color: #FFF;
    font-size: 36px;
    font-weight: 900;
    line-height: normal;
    letter-spacing: 0.1em;
}

#initiative p.text {
    color: #FFF;
    margin: 22px 0 0 8%;
    font-size: 20px;
    line-height: 1.8;
    letter-spacing: 0.06em;
}

#initiative .initiative_slider {
    position: relative;
    width: 67%;
    margin: 40px 0 0 8%;
}

#initiative .initiative_slider .swiper02 {
    overflow: hidden;
}

#initiative .initiative_slider .swiper02 .content {
    display: flex;
    align-items: center;
}

#initiative .initiative_slider .swiper02 .content .item {
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    gap: 20px;
    aspect-ratio: 1/1;
    background-color: #FFF;
    border-radius: 20px;
}

#initiative .initiative_slider .swiper02 .content .item .img_box {
    width: 43.6%;
}

#initiative .initiative_slider .swiper02 .content .item .img_box img {
    width: 100%;
    height: auto;
}

#initiative .initiative_slider .swiper02 .content .item p {
    font-size: 20px;
    line-height: normal;
    letter-spacing: 0.05em;
}


#initiative .swiper-button-next {
    right: -50px;
    color: #FFF;
}

#initiative .swiper-button-prev {
    left: -50px;
    color: #FFF;
}

#initiative .swiper-button-prev.swiper-button-disabled,
#initiative .swiper-button-next.swiper-button-disabled {
    opacity: 0;
}

#initiative .bg_box {
    position: absolute;
    right: 0;
    bottom: 0;
    width: 469px;
}

#initiative .bg_box img {
    width: 100%;
}

/* ニュース */
#news {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 8vw;
    margin: 140px auto 0;
    width: 76.5%;
}

#news .left_box {
    width: 367px;
}

#news .left_box .ttl {
    display: flex;
    flex-direction: column;
    align-items: center;
    color: #00C911;
}

#news .left_box .ttl p {
    font-size: max(6.6vw, 60px);
    line-height: 1.14;
    letter-spacing: 0.05em;
}

#news .left_box .ttl h2 {
    font-size: 32px;
    line-height: normal;
    letter-spacing: 0.1em;
}

#news .left_box .btn {
    margin-top: 69px;
}

#news .right_box {
    width: calc(100% - 8vw - 367px);
}

#news .right_box li {
    padding: 39px 0;
    border-bottom: 3px solid #131313;
}

#news .right_box li:first-of-type {
    padding: 0 0 39px 0;
}

#news .right_box li a {
    display: flex;
    align-items: flex-end;
    justify-content: space-between;
    color: #131313;
}

#news .right_box li a .main_text {
    width: calc(100% - 40px - 20px);
    transition: 0.3s;
    display: flex;
    align-items: center;
}


#news .right_box li a .main_text p.date_txt {
    width: 200px;
    color: #00C911;
    font-size: 28px;
    line-height: 1.3;
    letter-spacing: 0;
    transition: 0.3s;
}

#news .right_box li a .main_text p.date_txt span {
    display: block;
    color: #131313;
    font-size: 16px;
}

#news .right_box li a:hover p.date_txt {
    color: #131313;
}

#news .right_box li a .main_text p.ttl_txt {
    margin-top: 15px;
    font-size: 18px;
    font-weight: bold;
    line-height: 1.5;
    letter-spacing: 0.05em;
    display: -webkit-box;
    -webkit-box-orient: vertical;
    -webkit-line-clamp: 2;
    overflow: hidden;
}

#news .right_box li a .arrow {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 43px;
    height: 43px;
    background-color: #00C911;
    /*border: 3px solid #00C911;*/
    border-radius: 35px;
    transition: 0.3s;
    margin-left: 18px;
}


#news .right_box li a:hover .arrow {
    background-color: #131313;
}

#news .right_box li a .arrow svg {
    width: 14px;
}

#news .right_box li a .arrow svg path {
    transition: 0.3s;
}

#news .right_box li a:hover .arrow svg path {
    fill: #FFF;
}

#news .right_box .btn {
    display: none;
}

#partner {
    position: relative;
    z-index: 2;
    margin: 200px auto 0;
    padding: 129px 0 137px;
    width: 90%;
    border-radius: 30px;
    background-image: url(../img/img_partner_bg.png);
    background-position: center;
    background-repeat: no-repeat;
    background-size: cover;
    color: #FFF;
    overflow: hidden;
}

#partner::before {
    position: absolute;
    top: 0;
    left: 0;
    content: "";
    background-color: #000;
    width: 100%;
    height: 100%;
    opacity: 0.8;
    border-radius: 30px;
}

#partner p.en_text {
    position: absolute;
    top: 58px;
    left: -10px;
    color: #FFF;
    font-size: max(10.4vw, 60px);
    line-height: 0.9;
    letter-spacing: 0.05em;
    opacity: 0.1;
}

#partner .inner {
    margin: 0 auto;
    width: 85%;
}

#partner .inner h2 {
    position: relative;
    font-size: 39px;
    font-weight: bold;
    line-height: 1.8;
    letter-spacing: 0.1em;
}


#partner .inner .main_text {
    position: relative;
    margin-top: 40px;
    width: 656px;
    font-size: 20px;
    line-height: 2;
    letter-spacing: 0.06em;
}

#partner .inner .btn {
    position: relative;
    margin: 74px 0 0 auto;
}

@media screen and (max-width:1500px) {
    .loader .loading_bg {
        mask-size: 3200px;
        -webkit-mask-size: 3200px;
        mask-position: -500px -500px;
        -webkit-mask-position: -500px -500px;
    }

    .loader .loading_logo #mask.on {
        top: -500px;
        left: -500px;
        width: 3200px;
    }

    .loader .loading_txt {
        position: absolute;
        top: 520px;
        left: 50px;
    }

    /* .eyecatch {
        min-height: 2880px;
    } */


    #about .text {
        width: 60%;
        min-width: 810px;
    }
}

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

    /* 私たちについて */
    #about .ttl p,
    #service .ttl p,
    #products .ttl p {
        margin-left: -1rem;
    }

    #about .ttl h2 {
        font-size: 32px;
    }

    /* サービス */
    #service .ttl h2 {
        font-size: 32px;
    }

    #service .btn_box {
        width: 90%;
    }

    /* 取扱商品 */
    #products .ttl h2 {
        margin-left: 5%;
        font-size: 32px;
    }

    #products .btn_box {
        width: 90%;
    }

    /* ニュース */
    #news {
        width: 85%;
    }
}

@media screen and (max-width:990px) {
    /* .loader .loading_mask {
        width: 100%;
        height: 100%;
    }

    .loader .loading_bg {
        display: none;
        mask-image: none;
        -webkit-mask-image: none;
    }

    .loader .loading_logo #mask.on {
        top: -28vw;
        left: -37vw;
        width: 240vw;
    } */

    /* .loader .loading_bg.sp {
        display: block;
        width: 100vw;
        height: 110vh;
        object-fit: cover;
        object-position: center;
    }

    .loader .loading_txt {
        top: 55vh;
        left: 20px;
        font-size: clamp(42px, 6vw, 60px);
    } */

    /* .eyecatch {
        width: 100%;
        height: 110vh;
        min-height: auto;
    } */

    /* .eyecatch .mask {
        width: 100%;
        height: 100%;
    }

    .eyecatch .eyecatch_bg {
        display: none;
        mask-image: none;
        -webkit-mask-image: none;
        width: 100vw;
        height: 110vh;
        object-fit: cover;
        object-position: center;
    }

    .eyecatch .eyecatch_bg.sp {
        display: block;
    }

    .eyecatch .mask_cover {
        position: absolute;
        top: 0;
        left: 0;
        width: 100%;
        height: 100%;
        mask-image: url(../img/mask_sp.svg);
        -webkit-mask-image: url(../img/mark_sp.svg);
        mask-repeat: no-repeat;
        -webkit-mask-repeat: no-repeat;
    } */


    /* 私たちについて */
    #about {
        padding: 80px 0;
        background-image: none;
    }

    #about .text {
        width: 80%;
        min-width: auto;
    }

    #about .btn {
        margin: 85px auto 0;
    }

    /* エムズショップの強み */
    #strength {
        margin-top: 0;
    }

    #strength h2 {
        margin-top: 50px;
    }

    #strength .point_box .point_item {
        width: 25vw;
        height: 25vw;
    }

    #strength .point_box {
        gap: 15px;
    }

    #strength .point_box .point_item {
        width: 25vw;
        height: 25vw;
    }

    #strength .point_box .plus {
        width: 25px;
        height: 25px;
    }

    /* サービス */
    #service .btn_box {
        flex-direction: column;
    }

    #service .btn_box a {
        padding: 40px 0;
        width: 100%;
        font-size: 36px;
    }

    /* 取り扱い商品 */

    #products .ttl p {
        text-align: left;
        margin-right: 0;
    }

    #products .btn_box {
        flex-direction: column;
    }

    #products .btn_box a {
        width: 100%;
    }

    #products .btn_box a .img_box img {
        aspect-ratio: 330/230;
        border-radius: 18px;
    }

    #products .btn_box a p.text {
        display: none;
    }

    #products .btn_box a .hover_box {
        transform: translate(-50%, -50%) scale(1);
        opacity: 1;
    }

    #products .btn_box a .hover_box p.pro_txt {
        display: block;
        color: #FFF;
        font-size: 48px;
        font-weight: 900;
        line-height: normal;
        letter-spacing: 0.1em;
    }

    /* 会社での取り組み */
    #initiative {
        margin-top: 80px;
        width: 100%;
    }

    #initiative .ttl h2 {
        margin: 15px 0 0 5%;
    }

    #initiative p.text {
        margin: 20px 0 0 5%;
        width: calc(100% - 10%);
    }

    #initiative .initiative_slider {
        margin: 40px 0 0 5%;
        width: 90%;
    }

    /* ニュース */
    #news {
        flex-direction: column;
        align-items: flex-start;
        width: 100%;
    }

    #news .left_box .ttl {
        align-items: flex-start;
        margin-left: -1em;
    }

    #news .left_box .ttl h2 {
        margin-left: 5%;
    }

    #news .left_box {
        width: 100%;
    }

    #news .left_box .btn {
        display: none;
    }

    #news .right_box {
        width: 90%;
        margin: 0 auto;
    }

    #news .right_box .btn {
        display: flex;
        margin-top: 60px;
    }

    /* パートナー募集 */
    #partner .inner .main_text {
        width: 100%;
    }
}

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

    #about .ttl p,
    #service .ttl p,
    #products .ttl p {
        margin-left: -0.5rem;
    }

    .eyecatch .main_txt {
        line-height: 1.2;
        bottom: 40%;
    }

    .eyecatch .sub_txt {
        bottom: 27%;
    }

    /* 私たちについて */
    #about .ttl h2 {
        margin: 12px 0 0 12%;
        font-size: max(5vw, 20px);
    }

    #about .text p {
        font-size: 16px;
        line-height: 1.5;
    }

    #about .btn {
        /* width: 80% !important; */
        margin: 40px auto 0px 0px;
    }

    /* エムズショップの強み */
    #strength {
        border-radius: 20px 20px 0 0;
    }

    #strength h2 {
        font-size: max(5vw, 20px);
    }

    #strength .text_scroll_area .inner {
        gap: 100px;
    }

    #strength .point_box {
        margin-top: 45px;
    }

    /* サービス */
    #service {
        margin-top: 80px;
    }

    #service .ttl {
        margin-left: -0.5em;
    }

    #service .ttl h2 {
        margin-top: 15px;
        font-size: max(5vw, 20px);
    }

    #service .btn_box {
        margin-top: 30px;
    }

    #service .btn {
        margin: 60px auto 0;
    }

    /* 取扱商品 */
    #products {
        margin-top: 80px;
    }

    #products .ttl {
        margin-left: -0.5em;
    }

    #products .ttl h2 {
        margin-top: 15px;
        font-size: max(5vw, 20px);
    }

    #products .btn_box {
        gap: 20px;
        margin: 30px auto 0;
    }

    #products .btn_box a .hover_box p.pro_txt {
        font-size: max(6vw, 24px);
    }

    #products .btn_box a .hover_box p.more_txt {
        font-size: max(5vw, 20px);
    }

    #products .btn {
        margin: 60px auto 0;
    }

    /* 会社での取り組み */
    #news .left_box .ttl {
        margin-left: -0.5em;
    }

    #initiative {
        border-radius: 20px;
    }

    #initiative .ttl h2 {
        margin-top: 15px;
        font-size: max(5vw, 20px);
    }

    #initiative p.text {
        font-size: 16px;
    }

    #initiative .initiative_slider .swiper02 .content {
        flex-direction: column;
        align-items: flex-start;
    }

    #initiative .initiative_slider .swiper02 .content .item {
        flex-direction: row;
        justify-content: flex-start;
        padding: 10px 15px;
        width: 80% !important;
        height: auto !important;
        aspect-ratio: unset;
    }

    #initiative .initiative_slider .swiper02 .content .item .img_box {
        width: 65px;
    }

    #initiative .initiative_slider .swiper02 .content .item p {
        font-size: 16px;
    }

    #initiative .bg_box {
        top: 170px;
        width: 280px;
    }

    /* ニュース */
    #news {
        margin-top: 80px;
        gap: 36px;
    }

    #news .left_box .ttl h2 {
        margin-top: 15px;
        font-size: max(5vw, 20px);
    }

    #news .right_box li {
        padding: 20px 0;
    }

    #news .right_box li:first-of-type {
        padding: 0 0 20px 0;
    }

    #news .right_box li a {
        align-items: center;
    }

    #news .right_box li a .main_text {
        width: calc(100% - 40px - 5px);
        align-items: baseline;
        gap: 5px;
    }

    #news .right_box li a .main_text p.date_txt {
        width: 180px;
        display: flex;
        align-items: flex-start;
        font-size: 16px;
        line-height: 1.5;
        flex-direction: column;
    }

    #news .right_box li a .main_text p.ttl_txt {
        margin-top: 5px;
        font-size: 16px;
    }

    #news .right_box li a .main_text p.date_txt span {
        font-size: 12px;
    }

    #news .right_box li a .arrow {
        width: 30px;
        height: 30px;
    }


    /* パートナー募集 */
    #partner {
        margin-top: 80px;
        padding: 100px 0;
        width: 100%;
    }

    #partner .inner h2 {
        font-size: max(5vw, 20px);
    }

    #partner .inner .main_text {
        margin-top: 20px;
        font-size: 16px;
    }

    #partner .inner .btn {
        margin-top: 60px;
    }

    #partner::before {
        border-radius: 20px;
    }
}

@media screen and (max-width:600px) {
    #strength .point_box {
        flex-direction: column;
    }

    #strength .point_box .point_item {
        flex-direction: row;
        justify-content: flex-start;
        padding: 20px 20px;
        width: 265px;
        height: auto;
        border-radius: 10px;
    }

    #service .btn_box a {
        padding: 25px 0;
        font-size: 24px;
    }
}

@media screen and (max-width:500px) {
    .loader .loading_txt br.sp_only {
        display: block;
    }

    .eyecatch .main_txt br.sp_only {
        display: block;
    }

    #about .ttl h2 {
        margin: 12px 0 0 8%;
    }

    #about .text {
        width: 90%;
        margin: 30px auto 0;
    }

    #service .ttl {
        margin-left: -0.3em;
    }

    #products .ttl {
        margin-left: -0.3em;
    }

    #initiative .bg_box {
        width: 200px;
    }

    #news .right_box .btn {
        width: 100% !important;
    }

    #partner .inner .btn {
        justify-content: space-between;
        gap: 0;
        width: 100% !important;
    }


}

/*---------------------------------------------------------
                私たちについて
---------------------------------------------------------*/
.about {
    overflow-x: hidden;
}

.about .page_ttl {
    position: relative;
    z-index: 2;
}

.about .page_ttl p {
    color: #9AE11D;
}

.about .img_box {
    position: relative;
    z-index: 1;
    margin: -70px auto 0;
    width: 62.7vw;
}

.about .img_box img {
    width: 100%;
    aspect-ratio: 922/499;
    object-fit: cover;
}

.about .text_scroll_area {
    position: relative;
    z-index: 1;
    display: flex;
    align-items: center;
    margin-top: -3.5%;
    overflow: hidden;
}

.about .text_scroll_area .inner {
    display: flex;
    align-items: center;
    animation-timeline: auto;
    animation-range-start: normal;
    animation-range-end: normal;
    gap: 51px;
    animation: 50s linear 0s infinite normal both running loop-slide;
}

.about .text_scroll_area .inner p {
    font-size: max(5.4vw, 36px);
    line-height: 1.3;
    letter-spacing: 0.05em;
    white-space: nowrap;
}

.mission {
    margin-top: 130px;
}

.mission .inner {
    margin: 0 auto;
    width: 80%;
}

.mission .flex_area {
    display: flex;
    justify-content: space-between;
    width: 100%;
}

.mission .flex_area .left_box {
    margin-top: 5%;
    width: 51.9vw;
}

.mission .flex_area .left_box .mission_ttl p {
    color: #00A76B;
    font-size: max(7.48vw, 50px);
    line-height: 1;
    letter-spacing: 0.05em;
}

.mission .flex_area .left_box .mission_ttl h2 {
    margin-left: 1.5em;
    font-size: max(1.9vw, 18px);
    font-weight: 900;
    line-height: normal;
    letter-spacing: 0.1em;
}

.mission .flex_area .left_box p.main_text {
    margin-top: 50px;
    color: #00A76B;
    font-size: max(2.7vw, 20px);
    font-weight: 900;
    line-height: 1.4;
    letter-spacing: 0.1em;
}

.mission .list_box {
    margin-top: -40px;
}

.mission .list_box dl {
    display: flex;
    align-items: center;
    gap: 3.2vw;
}

.mission .list_box dl:not(:first-of-type) {
    margin-top: 20px;
}

.mission .list_box dl dt {
    width: 64.7px;
    color: rgb(0, 167, 107);
    font-size: max(2.7vw, 24px);
    font-weight: 900;
    line-height: 1;
    letter-spacing: 0.1em;
    text-align: center;
}

.mission .list_box dl dt span {
    display: block;
    color: #131313;
    font-size: 15px;
    font-weight: bold;
    line-height: 1;
    letter-spacing: 0.05em;
}

.mission .list_box dl dd {
    width: calc(100% - 3.2vw - 64.7px);
    font-size: 20px;
    font-weight: bold;
    line-height: 1.5;
    letter-spacing: 0.05em;
}

.mission .flex_area .img_box {
    width: 25.8vw;
}

.mission .flex_area .img_box img {
    width: 100%;
    aspect-ratio: 379.92 / 508.9;
    object-fit: cover;
}

/* 代表挨拶 */
.message {
    margin-top: 130px;
    background-image: url(../img/img_message_bg.png);
    background-position: top center;
    background-repeat: no-repeat;
    background-size: cover;
    color: #FFF;
    border-radius: 50px 50px 0 0;
}

.message .inner {
    margin: 0 auto;
    padding: 85px 0;
    width: 85%;
}

.message .message_ttl p {
    font-size: max(7.48vw, 50px);
    line-height: 1;
    letter-spacing: 0.05em;
}

.message .message_ttl h2 {
    margin-left: 1.5em;
    font-size: max(1.9vw, 20px);
    font-weight: 900;
    line-height: normal;
    letter-spacing: 0.1em;
}

.message .text_content {
    margin: 32px auto 0;
    width: 93%;
}

.message .text_content p {
    font-size: 18px;
    font-weight: 700;
    line-height: 2;
    letter-spacing: 0.06em;
}

.message .text_content p:not(:first-of-type) {
    margin-top: 32px;
}

.message .name {
    width: 93%;
    text-align: right;
    font-size: 38px;
    font-weight: 900;
    line-height: 1.9;
    letter-spacing: 0.1em;
}

.message .name span {
    margin-right: 40px;
    font-size: 18px;
}

/* 会社概要 */
.overview {
    padding: 143px 0;
    background-color: #FFF;
}

.overview .inner {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    margin: 0 auto;
    width: 85%;
}

.overview .inner .left_box {
    width: calc(100% - 32vw - 50px);
}

.overview .overview_ttl p {
    font-size: max(7.48vw, 50px);
    line-height: 1;
    letter-spacing: 0.05em;
}

.overview .overview_ttl h2 {
    margin-left: 1.5em;
    font-size: max(1.9vw, 20px);
    font-weight: 900;
    line-height: normal;
    letter-spacing: 0.1em;
}

.overview .overview_content {
    margin-top: 60px;
}

.overview .overview_content dl {
    display: flex;
    gap: 50px;
    padding: 18px 0;
    border-bottom: 1px solid #E0E0E0;
}

.overview .overview_content dl dt {
    width: 120px;
    font-size: 18px;
    font-weight: 900;
    line-height: 1.4;
    letter-spacing: 0.1em;
}

.overview .overview_content dl dd {
    width: calc(100% - 120px - 50px);
    font-size: 18px;
    font-weight: 500;
    line-height: 1.4;
    letter-spacing: 0.1em;
}

.overview .map_box {
    margin-top: 140px;
    width: 32vw;
    aspect-ratio: 471/654.51;
    -webkit-filter: grayscale(100%);
    -moz-filter: grayscale(100%);
    -o-filter: grayscale(100%);
    -ms-filter: grayscale(100%);
    filter: grayscale(100%);
}

.overview .map_box iframe {
    width: 100%;
    height: 100%;
    border-radius: 30px;
}

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

    /* 経営理念 */
    .mission {
        position: relative;
    }

    .mission .flex_area .left_box {
        width: 100%;
    }

    .mission .flex_area .img_box {
        position: absolute;
        top: 0;
        right: 0;
        z-index: -1;
        width: 45vw;
        opacity: 0.7;
    }

    .mission .list_box {
        margin-top: 60px;
    }

    .mission .list_box dl {
        flex-direction: column;
        align-items: baseline;
        gap: 10px;
    }

    .mission .list_box dl:not(:first-of-type) {
        margin-top: 25px;
    }

    .mission .list_box dt {
        display: flex;
        align-items: center;
        gap: 5px;
        width: 100%;
    }

    .mission .list_box dl dt span {
        display: inline-block;
    }

    .mission .list_box dd {
        width: 100% !important;
    }

    .message .name {
        width: 90%;
        margin: 50px auto 0;
    }

    .overview .inner {
        flex-direction: column;
    }

    .overview .inner .left_box {
        width: 100%;
    }

    .overview .inner .left_box dt,
    .overview .inner .left_box dd {
        width: 100%;
    }

    .overview .map_box {
        margin-top: 50px;
        width: 100%;
        aspect-ratio: 334/255;
    }
}

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

    .about .img_box img {
        aspect-ratio: 393/499;
        border-radius: 20px;
    }

    .about .text_scroll_area {
        z-index: 2;
    }

    .mission {
        margin-top: 70px;
    }

    .mission .inner {
        width: 100%;
    }

    .mission .flex_area .left_box .mission_ttl h2 {
        margin-left: 5%;
    }

    .mission .flex_area .left_box p.main_text {
        margin-left: 5%;
    }

    .mission .list_box {
        margin-left: 5%;
        width: 90%;
    }

    .mission .list_box dl dd {
        font-size: 16px;
    }

    .message {
        margin-top: 70px;
        border-radius: 20px 20px 0 0;
    }

    .message .inner {
        padding: 70px 0;
        width: 100%;
    }

    .message .message_ttl h2 {
        margin-left: 5%;
    }

    .message .text_content {
        width: 90%;
    }

    .message .text_content p {
        font-size: 16px;
        line-height: 1.5rem;
    }

    .message .name {
        font-size: 28px;
    }

    .message .name span {
        font-size: 16px;
    }

    .overview {
        padding: 80px 0;
    }

    .overview .inner {
        width: 90%;
    }

    .overview .overview_ttl h2 {
        margin-left: 5%;
    }

    .overview .overview_content {
        margin-top: 36px;
    }

    .overview .overview_content dl {
        flex-direction: column;
        gap: 5px;
    }

    .overview .overview_content dl dt {
        font-size: 16px;
    }

    .overview .overview_content dl dd {
        font-size: 16px;
    }
}

@media screen and (max-width:600px) {
    .mission .list_box dl dd br {
        display: none;
    }
}

@media screen and (max-width:500px) {
    .about .page_ttl {
        margin-top: 20px;
    }

    .about .img_box {
        margin-top: -50px;
        width: 100%;
    }

    .about .text_scroll_area {
        margin-top: -6.5%;
    }

    .mission .flex_area .left_box p.main_text {
        margin-top: 30px;
    }

    .mission .list_box {
        margin-top: 30px;
    }

    .mission .list_box dl {
        gap: 5px;
    }

    .mission .list_box dl:not(:first-of-type) {
        margin-top: 20px;
    }

    .overview .inner {
        width: 100%;
    }

    .overview .overview_content {
        width: 90%;
        margin: 36px auto 0;
    }

    .overview .map_box {
        width: 90%;
        margin: 50px auto 0;
    }
}

/*---------------------------------------------------------
                ニュース　アーカイブ
---------------------------------------------------------*/
.news_container {
    margin-top: 120px;
}

.news_container .page_ttl p {
    color: #00C911;
}

.news_content {
    margin: 78px auto 0;
    width: 80%;
}

.news_content article {
    padding: 30px 0;
    border-bottom: 2px solid #333333;
}

.news_content article a {
    display: flex;
    justify-content: space-between;
    align-items: center;
    color: #131313;
}

.news_content article a .text_box {
    display: flex;
    gap: 5px;
    width: calc(100% - 50px - 43px);
    align-items: center;
}

.news_content article a .text_box p.date_text {
    width: 200px;
    color: #00C911;
    font-size: 28px;
    line-height: 1.3;
    letter-spacing: 0;
    transition: 0.3s;
}

.news_content article a:hover .text_box p.date_text {
    color: #131313;
}

.news_content article a .text_box p.date_text span {
    display: block;
    margin-bottom: 3px;
    color: #131313;
    font-size: 15px;
    font-weight: 900;
    line-height: 1.2;
    letter-spacing: 0.05em;
}

.news_content article a .text_box p.ttl_text {
    font-size: 18px;
    font-weight: bold;
    line-height: 1.9;
    letter-spacing: 0.1em;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.news_content article a .arrow {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 43px;
    height: 43px;
    background-color: #00C911;
    /* border: 3px solid #00C911; */
    border-radius: 35px;
    transition: 0.3s;
    margin-left: 18px;
}

.news_content article a:hover .arrow {
    background-color: #131313;
    border: 2px solid #131313;
}

.news_content article a .arrow svg {
    width: 13px;
}

.news_content article a:hover .arrow svg path {
    transition: 0.3s;
}

.news_content article a:hover .arrow svg path {
    fill: #FFF;
}

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

@media screen and (max-width:768px) {
    .news_content {
        margin-top: 30px;
    }

    .news_content article a .text_box p.date_text {
        font-size: 16px;
    }

    .news_content article a .text_box p.ttl_text {
        font-size: 16px;
    }

    #news .right_box li a .main_text p.date_txt {
        width: 180px;
    }

    .news_content article a .arrow {
        width: 30px;
        height: 30px;
    }
}


/*---------------------------------------------------------
                ニュース　シングル
---------------------------------------------------------*/
.news_detail_container {
    margin-top: 98px;
}

.news_detail_container main {
    margin: 125px auto 200px auto;
    width: 70%;
}

.news_detail_container main .date_txt {
    display: flex;
    align-items: baseline;
    gap: 19px;
    color: #00C911;
    font-size: 48px;
    font-weight: 900;
    line-height: 1;
    letter-spacing: 0;
}

.news_detail_container main .date_txt span {
    color: #131313;
    font-size: 30px;
}

.news_detail_container main .ttl_txt {
    margin-top: 10px;
    font-size: 24px;
    font-weight: 800;
    line-height: 1.8;
    letter-spacing: 0.1em;
}

.news_detail_container main .content {
    margin-top: 70px;
}

.news_detail_container main .content p {
    font-size: 18px;
    font-weight: bold;
    line-height: 1.9;
    letter-spacing: 0.1em;
}

.news_detail_container main .content .img_box {
    width: 100%;
    margin-bottom: 20px;
}

.news_detail_container main .content .img_box img {
    width: 100%;
    height: auto;
}

.news_detail_container main .content .detail_text_box img {
    width: 100%;
}

.news_detail_container a.btn {
    margin: 100px auto 0;
}

@media screen and (max-width:1200px) {
    .news_detail_container main {
        width: 80%;
    }
}

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

    .news_detail_container main .content {
        margin-top: 50px;
    }
}

@media screen and (max-width:768px) {
    .news_detail_container main .date_txt {
        font-size: 16px;
    }

    .news_detail_container main .ttl_txt {
        font-size: 18px;
    }

    .news_detail_container main .content p {
        font-size: 16px;
    }
}

/*---------------------------------------------------------
                エムズショップの強み
---------------------------------------------------------*/
.strengths_container {
    background: #F6F6F6 url(../img/img_strength_bg.png);
    background-position: center;
    background-repeat: no-repeat;
    background-size: cover;
}

.strengths_container .page_ttl p {
    color: #FFA62B;
}

.strengths_container .content {
    margin-top: 50px;
}

.strengths_container .content .box {
    position: relative;
    margin-top: 70px;
    padding: 50px 140px 100px 100px;
    width: 65vw;
    background-color: #FFFFFFDB;
    border-radius: 0 50px 50px 0;
}

.strengths_container .content .box.right {
    margin: 70px 0 0 auto;
    border-radius: 50px 0 0 50px;
}

.strengths_container .content .box h2 {
    font-size: 24px;
    font-weight: 900;
    line-height: 1.3;
    letter-spacing: 0.1em;
}

.strengths_container .content .box p.number_txt {
    position: absolute;
    top: 32px;
    right: 45px;
    color: #FFDA47;
    font-size: 64px;
    font-weight: 900;
    line-height: 0.625;
    letter-spacing: 0;
}

.strengths_container .content .box h2 span {
    color: #FFA62B;
}

.strengths_container .content .box p.textarea {
    margin-top: 20px;
    font-size: 16px;
    font-weight: bold;
    line-height: 1.75;
    letter-spacing: 0.1em;
}

@media screen and (max-width:1200px) {
    .strengths_container .content .box {
        width: 80vw;
    }
}

@media screen and (max-width:990px) {
    .strengths_container .content .box {
        width: 90%;
    }
}

@media screen and (max-width:768px) {
    #strength .btn {
        /* width: 70% !important; */
    }

    .strengths_container .content .box p.number_txt {
        position: relative;
        top: 0;
        right: 0;
    }

    .strengths_container .content .box h2 {
        margin-top: 20px;
    }

    .strengths_container .content .box {
        padding: 50px 20px 50px 30px;
        width: 95%;
    }

    .strengths_container .content .box {
        border-radius: 0 30px 30px 0;
    }
}

@media screen and (max-width:600px) {
    .strengths_container .content .box p.number_txt {
        position: unset;
        font-size: 40px;
    }

    .strengths_container .content .box h2 {
        margin-top: 20px;
        font-size: 20px;
    }

}

@media screen and (max-width:500px) {
    .strengths_container .content .box h2 br.pc_only {
        display: none;
    }

}

/*---------------------------------------------------------
                パートナー
---------------------------------------------------------*/
.partner_container {
    margin: 140px 0 200px;
}

.partner_container .content {
    display: flex;
    flex-direction: column;
    gap: 72px;
    margin: 92px auto 0;
    width: 76.5%;
}

.partner_container .content h2 {
    position: relative;
    font-size: 40px;
    font-weight: 900;
    line-height: 1.8;
    letter-spacing: 0.1em;
}

.partner_container .content h2::before {
    position: absolute;
    bottom: 0;
    left: 0;
    content: "";
    display: block;
    width: 419px;
    height: 8px;
    background-color: #9AE11D;
    border-radius: 10px;
}

.partner_container .content p {
    margin-top: 24px;
    font-size: 20px;
    font-weight: bold;
    line-height: 1.9;
    letter-spacing: 0.1em;
}

.partner_container .flow {
    margin-top: 190px;
    background-image: url(../img/img_partner_flow_bg.png);
    background-position: center;
    background-repeat: no-repeat;
    background-size: cover;
    border-radius: 50px 50px 0 0;
}

.partner_container .flow .text_scroll_area {
    display: flex;
    align-items: center;
    overflow: hidden;
}

.partner_container .flow .text_scroll_area.scroll02 {
    margin-top: 136px;
}

.partner_container .flow .text_scroll_area .inner {
    display: flex;
    align-items: center;
    gap: 180px;
    animation: loop-slide 50s infinite linear both;
}

.partner_container .flow .text_scroll_area.scroll02 .inner {
    animation: loop-slide02 50s infinite linear both;
}

.partner_container .flow .text_scroll_area .inner p {
    color: #FFF;
    font-size: 100px;
    line-height: 1.1;
    letter-spacing: 0.05em;
    white-space: nowrap;
    opacity: 0.2;
}

.partner_container .flow h2 {
    margin-top: 64px;
    color: #FFF;
    font-size: 36px;
    font-weight: 900;
    line-height: normal;
    letter-spacing: 0.1em;
    text-align: center;
}

.partner_container .flow .flex {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 40px;
    margin-top: 83px;
}

.partner_container .flow .flex p {
    display: flex;
    align-items: center;
    gap: 14px;
    padding: 30px;
    background-color: #FFF;
    font-size: 24px;
    font-weight: 900;
    line-height: 1;
    letter-spacing: 0.1em;
    border-radius: 5px;
}

.partner_container .flow .flex p span {
    font-size: 32px;
    font-weight: 900;
    line-height: 1;
    letter-spacing: 0.05em;
}

.partner_container .flow .flex .arrow {
    width: 35px;
}

.partner_container .flow .flex .arrow svg {
    width: 100%;
}

.partner_container .contact_container {
    margin-top: 100px;
}

.partner_container .contact_container p.main_txt {
    margin: 0 auto;
    width: 90%;
    font-size: 20px;
    line-height: 1.9;
    letter-spacing: 0.1em;
    text-align: center;
}

.partner_container .contact_container .contact_box .form_box dl.flex {
    gap: 30px;
}

.partner_container .contact_container .contact_box dl dt p {
    width: 253px;
}

::placeholder {
    color: #ccc;
}

@media screen and (max-width:1200px) {
    .partner_container .content {
        width: 85%;
    }

    .partner_container .flow .flex {
        gap: 10px;
    }

    .partner_container .flow .flex p {
        padding: 30px 20px;
    }
}

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

    .partner_container .flow .flex {
        flex-direction: column;
        gap: 20px;
    }

    .partner_container .flow .flex p {
        width: 70%;
    }

    .partner_container .flow .flex .arrow {
        transform: rotate(90deg);
    }
}

@media screen and (max-width:768px) {
    .partner_container .content {
        gap: 50px;
        margin: 80px auto 0;
    }

    .partner_container .content h2 {
        font-size: max(5vw, 24px);
    }

    .partner_container .content h2::before {
        width: 320px;
    }

    .partner_container .content p {
        font-size: 16px;
    }

    .partner_container .flow {
        margin-top: 80px;
    }

    .partner_container .flow h2 {
        font-size: max(5vw, 20px);
    }

    .partner_container .flow .text_scroll_area .inner p {
        font-size: max(6.9vw, 36px);
    }

    .partner_container .flow .text_scroll_area.scroll02 {
        margin-top: 60px;
    }

    .partner_container .flow .flex {
        gap: 10px;
        margin-top: 50px;
    }

    .partner_container .flow .flex p {
        padding: 20px;
        font-size: 18px;
    }

    .partner_container .flow .flex p span {
        font-size: 28px;
    }

    .partner_container .contact_container p.main_txt {
        font-size: 16px;
        text-align: left;
    }

    .partner_container .contact_container p.main_txt br.pc_only {
        display: none;
    }
}

/*---------------------------------------------------------
                サービス共通
---------------------------------------------------------*/
.page_ttl.service p {
    color: #9AE11D;
}

/*---------------------------------------------------------
                サービスTOP
---------------------------------------------------------*/
.service_container .content {
    margin-top: 100px;
}

.service_container .content .box {
    display: flex;
    gap: 8vw;
    width: 95vw;
}

.service_container .content .box:not(:first-child) {
    margin-top: 150px;
}

.service_container .content .box.right {
    flex-direction: row-reverse;
    margin: 150px 0 0 auto;
}

.service_container .content .box .img_item {
    width: 542px;
}

.service_container .content .box .img_item img {
    width: 100%;
}

.service_container .content .box .text_item {
    width: calc(100% - 8vw - 542px);
}

.service_container .content .box .text_item h2 {
    color: #00A76B;
    font-size: 32px;
    font-weight: 900;
    line-height: 1.8;
    letter-spacing: 0.1em;
}

.service_container .content .box .text_item p {
    font-size: 20px;
    font-weight: bold;
    line-height: 1.6;
    letter-spacing: 0.1em;
}

.service_container .content .box .text_item a.btn {
    margin: 30px 0 0 auto;
}

@media screen and (max-width:1200px) {
    .service_container .content .box {
        gap: 50px;
    }

    .service_container .content .box .img_item {
        width: 450px;
    }

    .service_container .content .box .text_item {
        width: calc(100% - 50px - 450px);
    }
}

@media screen and (max-width:990px) {
    .service_container .content .box {
        width: 100%;
        flex-direction: column;
        gap: 20px;
    }

    .service_container .content .box.right {
        flex-direction: column;
    }

    .service_container .content .box .img_item {
        width: 70%;
    }

    .service_container .content .box.right .img_item {
        margin: 0 0 0 auto;
    }

    .service_container .content .box .text_item {
        width: 90%;
        margin: 0 auto;
    }
}

@media screen and (max-width:768px) {
    .service_container .content {
        margin-top: 50px;
    }

    .service_container .content .box:not(:first-child) {
        margin: 80px 0 0 auto;
    }

    .service_container .content .box .img_item {
        width: 90%;
    }

    .service_container .content .box .text_item h2 {
        font-size: 28px;
    }

    .service_container .content .box .text_item p {
        font-size: 16px;
    }
}

@media screen and (max-width:500px) {
    .service_container .content .box .text_item h2 {
        font-size: 24px;
    }
}

/*---------------------------------------------------------
                サービス　詳細
---------------------------------------------------------*/
.service_detail_container {
    padding: 22px 0 0 !important;
}

.service_detail_container .content {
    margin: 70px auto 0;
    width: 80vw;
}

.service_detail_container .content h2 {
    font-size: max(2.5vw, 24px);
    font-weight: 900;
    line-height: 1.45;
    letter-spacing: 0.1em;
}

.service_detail_container .content h2 span {
    color: #00A76B;
}

.service_detail_container .content .inner {
    display: flex;
    gap: 60px;
    margin-top: 45px;
}

.service_detail_container .content .inner .img_box {
    width: 432px;
}

.service_detail_container .content .inner .img_box img {
    width: 100%;
    height: auto;
    aspect-ratio: 1/1;
    object-fit: cover;
    border-radius: 30px;
}

.service_detail_container .content .inner .text_box {
    width: calc(100% - 60px - 432px);
}

.service_detail_container .content .inner .text_box p {
    font-size: 20px;
    font-weight: bold;
    line-height: 1.8;
    letter-spacing: 0.1em;
}

.service_detail_container .content .inner .text_box p:not(:first-of-type) {
    margin-top: 20px;
}

.service_detail_container .content .inner .text_box a.btn {
    margin-top: 47px;
}

.service_detail_container .product_content {
    margin-top: 117px;
}

.service_detail_container .product_content .ttl {
    display: flex;
    align-items: baseline;
    justify-content: space-between;
    margin: 0 0 0 auto;
    width: 95%;
}

.service_detail_container .product_content .ttl h2 {
    font-size: 30px;
    font-weight: bold;
    line-height: normal;
    letter-spacing: 0.1em;
}

.service_detail_container .product_content .ttl p {
    font-size: max(9.5vw, 60px);
    line-height: 1.2;
    letter-spacing: 0.05em;
}

.service_detail_container .product_content ul.products_list {
    display: flex;
    justify-content: space-between;
    gap: 48px;
    margin: 75px auto 0;
    width: 80vw;
}

.service_detail_container .product_content ul.products_list li {
    width: calc((100% - 96px)/3);
}

.service_detail_container .product_content ul.products_list li a {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 10px;
    width: 100%;
    color: #131313;
}

.service_detail_container .product_content ul.products_list li a .img_box {
    position: relative;
    width: 100%;
}

.service_detail_container .product_content ul.products_list li a .img_box img {
    width: 100%;
    height: auto;
    aspect-ratio: 1/1;
    object-fit: cover;
    border-radius: 30px;
}

.service_detail_container .product_content ul.products_list li a .img_box .hover_box {
    position: absolute;
    top: 50%;
    left: 50%;
    transform: translate(-50%, -50%) scale(0);
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    gap: 15px;
    width: 90%;
    height: 90%;
    background-color: rgba(0, 0, 0, 0.6);
    border-radius: 18px;
    opacity: 0;
    transition: 0.3s;
}

.service_detail_container .product_content ul.products_list li a:hover .img_box .hover_box {
    opacity: 1;
    transform: translate(-50%, -50%) scale(1);
}

.service_detail_container .product_content ul.products_list li a .img_box .hover_box p.pro_txt {
    display: none;
}

.service_detail_container .product_content ul.products_list li a .img_box .hover_box p.more_txt {
    color: #FFF;
    font-size: 36px;
    line-height: 1.2;
    letter-spacing: 0.05em;
}

.service_detail_container .product_content ul.products_list li a p.text {
    font-size: 25px;
    font-weight: bold;
    line-height: 1.8;
    letter-spacing: 0.1em;
}

.service_detail_container .product_content a.btn {
    margin: 80px auto 0;
}

.service_detail_container .flow_content {
    margin-top: 150px;
    padding: 60px 0 150px;
    background-image: url(../img/img_serviceflow_bg.png);
    background-position: top center;
    background-repeat: no-repeat;
    background-size: cover;
}

.service_detail_container.rental .flow_content,
.service_detail_container.solution .flow_content,
.service_detail_container.homepage .flow_content {
    padding: 60px 0 200px;
}

.service_detail_container .flow_content .ttl {
    margin-left: -1em;
}

.service_detail_container .flow_content .ttl p {
    color: #FFFFFF;
    font-size: max(9.5vw, 60px);
    line-height: 0.8;
    letter-spacing: 0.05em;
    opacity: 0.5;
}

.service_detail_container .flow_content .ttl h2 {
    margin: 20px 0 0 5vw;
    color: #FFF;
    font-size: 30px;
    line-height: normal;
    letter-spacing: 0.1em;
}

.service_detail_container .flow_content .textarea {
    margin: 22px auto 0;
    width: 90%;
    color: #FFF;
    font-size: 20px;
    line-height: 1.8;
    letter-spacing: 0.06em;
}

.service_detail_container .flow_content .inner {
    display: flex;
    align-items: center;
    flex-wrap: wrap;
    gap: 25px;
    margin: 60px auto 0;
    width: 90%;
}

.service_detail_container .flow_content .inner .box {
    padding: 30px 20px;
    width: calc((100% - 100px - 42px)/3);
    background-color: #FFF;
    border-radius: 5px;
    height: 200px;
}

.service_detail_container .flow_content .inner .box h3 {
    display: flex;
    align-items: center;
    gap: 15px;
    font-size: 18px;
    font-weight: 900;
    line-height: 1.2;
    letter-spacing: 0.1em;
}

.service_detail_container .flow_content .inner .box h3 span {
    color: #9AE11D;
    font-size: 24px;
    line-height: 1.3;
    letter-spacing: 0.05em;
}

.service_detail_container .flow_content .inner .box p {
    margin-top: 8px;
    font-size: 16px;
    font-weight: bold;
    line-height: 1.3;
    letter-spacing: 0.06em;
}

.service_detail_container .flow_content .inner svg {
    width: 21px;
}

.service_detail_container .flow_content .inner svg.sp_only {
    display: none;
}

.service_detail_container .support_content {
    padding: 60px 0 200px;
    background: url(../img/img_service_support_bg.png) #9AE11D;
    background-position: top 80px right;
    background-repeat: no-repeat;
    background-size: 598px;
}

.service_detail_container .support_content .ttl {
    margin-left: -1em;
}

.service_detail_container .support_content .ttl p {
    color: #FFFFFF;
    font-size: max(9.5vw, 60px);
    line-height: 0.8;
    letter-spacing: 0.05em;
    opacity: 0.5;
}

.service_detail_container .support_content .ttl h2 {
    margin: 20px 0 0 5vw;
    color: #FFF;
    font-size: 30px;
    line-height: normal;
    letter-spacing: 0.1em;
}

.service_detail_container .support_content .main_txt {
    margin: 22px auto 0;
    width: 90%;
    color: #FFF;
    font-size: 20px;
    line-height: 1.8;
    letter-spacing: 0.06em;
}

.service_detail_container .support_content .inner {
    margin: 60px auto 0;
    display: flex;
    gap: 40px;
    width: 90%;
}

.service_detail_container .support_content .inner .box {
    padding: 50px 40px;
    width: calc((100% - 80px)/3);
    background-color: #FFF;
    border-radius: 30px;
}

.service_detail_container .support_content .inner .box h3 {
    padding-bottom: 20px;
    font-size: 22px;
    line-height: 1.3;
    letter-spacing: 0.1em;
    border-bottom: 5px solid #9AE11D;
}

.service_detail_container .support_content .inner .box p {
    margin-top: 20px;
    font-size: 16px;
    line-height: 1.8;
    letter-spacing: 0.06em;
}

.service_detail_container .price_content {
    margin-top: 200px;
}

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

.service_detail_container .price_content .inner .ttl p {
    color: #00A76B;
    font-size: max(9.5vw, 60px);
    line-height: 1;
    letter-spacing: 0.05em;
}

.service_detail_container .price_content .inner .ttl h2 {
    margin: 10px 0 0 7.5%;
    font-size: 30px;
    font-weight: 900;
    line-height: normal;
    letter-spacing: 0.1em;
}

.service_detail_container .price_content .inner .area {
    margin: 50px auto 0 auto;
    padding: 70px 0;
    width: 80vw;
    background-color: #00A76B;
    color: #FFF;
    border-radius: 40px;
}

.service_detail_container .price_content .inner .area .box {
    margin: 0 auto;
    width: 80%;
}

.service_detail_container .price_content .inner .area .price_txt {
    font-size: 24px;
    font-weight: 900;
    line-height: 1.3;
    letter-spacing: 0.1em;
    display: flex;
    align-items: center;
}

.service_detail_container .price_content .inner .area .price_txt br {
    display: none;
}

.service_detail_container .price_content .inner .area .price_txt span {
    margin: 0 22px 0 30px;
    font-size: 64px;
    line-height: 1;
    letter-spacing: 0.05em;
}

.service_detail_container .price_content .inner .area .composition_txt {
    display: flex;
    align-items: center;
    gap: 25px;
    margin-top: 10px;
    padding-bottom: 35px;
    border-bottom: 5px solid #FFF;
}

.service_detail_container .price_content .inner .area .composition_txt p:nth-of-type(1) {
    padding: 0 20px;
    width: fit-content;
    background-color: #FFF;
    color: #00A76B;
    font-size: 16px;
    font-weight: 700;
    line-height: 2;
    letter-spacing: 0.1em;
    border-radius: 90px;
}

.service_detail_container .price_content .inner .area .composition_txt p:nth-of-type(2) {
    font-size: 24px;
    font-weight: bold;
    line-height: 1.3;
    letter-spacing: 0.1em;
}

.service_detail_container .price_content .inner .area .composition_txt p:nth-of-type(3) {
    display: none;
}

.service_detail_container .price_content .inner .area .detail_txt {
    margin: 30px 20px 0 20px;
    font-size: 20px;
    line-height: 1.8;
    letter-spacing: 0.06em;
}

.service_detail_container .works_content {
    margin: 200px 0;
}

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

.service_detail_container .works_content .inner .ttl p {
    font-size: max(9.5vw, 60px);
    line-height: 1;
    letter-spacing: 0.05em;
}

.service_detail_container .works_content .inner .ttl h2 {
    margin: 10px 0 0 5vw;
    font-size: 30px;
    font-weight: 900;
    line-height: normal;
    letter-spacing: 0.1em;
}

.service_detail_container .works_content .inner .area {
    display: flex;
    flex-wrap: wrap;
    gap: 40px;
    margin: 60px auto 0;
    width: 85vw;
}

.service_detail_container .works_content .inner .area .box {
    width: calc((100% - 80px)/3);
    box-shadow: 1px 1px 6px rgba(0, 0, 0, 0.15);
}

.service_detail_container .works_content .inner .area .box img {
    width: 100%;
    height: auto;
    aspect-ratio: 359.23/283;
    object-fit: cover;
}

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

    .service_detail_container .product_content ul.products_list {
        width: 90%;
    }

    .service_detail_container .flow_content .inner {
        gap: 10px;
    }

    .service_detail_container .flow_content .inner .box {
        width: calc((100% - 40px - 42px) / 3);
    }

    .service_detail_container .support_content .inner {
        gap: 20px;
    }

    .service_detail_container .support_content .inner .box {
        padding: 40px 20px;
        width: calc((100% - 40px) / 3);
    }

    .service_detail_container .price_content .inner .area .box {
        width: 85%;
    }

    .service_detail_container .works_content .inner .area {
        width: 100%;
    }

    .service_detail_container .works_content .inner .area {
        gap: 20px;
    }

    .service_detail_container .works_content .inner .area .box {
        width: calc((100% - 40px) / 3);
    }
}

@media screen and (max-width:990px) {
    .service_detail_container .flow_content .ttl h2 {
        font-size: max(3vw, 20px);
    }

    .service_detail_container .content .inner {
        flex-direction: column;
        gap: 30px;
    }

    .service_detail_container .content .inner .img_box {
        width: 100%;
    }

    .service_detail_container .content .inner .img_box img {
        aspect-ratio: 2/1;
    }

    .service_detail_container .content .inner .text_box {
        width: 100%;
    }

    .service_detail_container .product_content .ttl {
        flex-direction: column-reverse;
        align-items: flex-start;
        margin: 0;
        width: 100%;
    }

    .service_detail_container .product_content .ttl h2 {
        font-size: max(3vw, 20px);
        margin-left: 5%;
    }

    .service_detail_container .product_content ul.products_list {
        flex-direction: column;
    }

    .service_detail_container .product_content ul.products_list li {
        width: 100%;
    }

    .service_detail_container .product_content ul.products_list li a .img_box img {
        aspect-ratio: 330 / 230;
        border-radius: 18px;
    }

    .service_detail_container .product_content ul.products_list li a .img_box .hover_box {
        opacity: 1;
        transform: translate(-50%, -50%) scale(1);
    }

    .service_detail_container .product_content ul.products_list li a .img_box .hover_box p.pro_txt {
        display: block;
        color: #FFF;
        font-size: 48px;
        font-weight: 900;
        line-height: normal;
        letter-spacing: 0.1em;
    }

    .service_detail_container .product_content ul.products_list li a p.text {
        display: none;
    }

    .service_detail_container .flow_content .inner {
        flex-direction: column;
        width: 70%;
    }

    .service_detail_container .flow_content .inner .box {
        width: 100%;
    }

    .service_detail_container .flow_content .inner svg {
        transform: rotate(90deg);
    }

    .service_detail_container .flow_content .inner svg.sp_only {
        display: block;
    }

    .service_detail_container .support_content .ttl h2 {
        font-size: max(3vw, 20px);
    }

    .service_detail_container .support_content .inner {
        flex-direction: column;
    }

    .service_detail_container .support_content .inner .box {
        width: 100%;
    }

    .service_detail_container .price_content .inner .ttl h2 {
        font-size: max(3vw, 20px);
        margin-left: 0;
    }

    .service_detail_container .price_content .inner .area {
        width: 100%;
    }

    .service_detail_container .price_content .inner .area .composition_txt {
        flex-direction: column;
        align-items: flex-start;
        gap: 10px;
        margin-top: 20px;
    }

    .service_detail_container .works_content .inner .ttl h2 {
        font-size: max(3vw, 20px);
    }

    .service_detail_container .works_content .inner .area .box {
        width: calc((100% - 20px) / 2);
    }
}

@media screen and (max-width:768px) {
    .service_detail_container .content {
        margin: 30px auto 0;
    }

    .service_detail_container .content h2 br {
        display: none;
    }

    .service_detail_container .content .inner {
        margin-top: 20px;
    }

    .service_detail_container .content .inner .text_box p {
        font-size: 16px;
    }

    .service_detail_container .content .inner .text_box a.btn {
        margin-top: 30px;
    }

    .service_detail_container .product_content {
        margin-top: 80px;
    }

    .service_detail_container .product_content ul.products_list {
        gap: 20px;
        margin: 50px auto 0;
    }

    .service_detail_container .product_content ul.products_list li a .img_box .hover_box p.pro_txt {
        font-size: max(6vw, 24px);
    }

    .service_detail_container .product_content ul.products_list li a .img_box .hover_box p.more_txt {
        font-size: max(5vw, 20px);
    }

    .service_detail_container .product_content a.btn {
        margin: 40px auto 0;
    }

    .service_detail_container .flow_content {
        margin-top: 80px;
        padding: 40px 0 80px;
    }

    .service_detail_container.rental .flow_content,
    .service_detail_container.solution .flow_content,
    .service_detail_container.homepage .flow_content {
        padding: 60px 0 130px;
    }

    .service_detail_container .flow_content .ttl {
        margin-left: -0.5em;
    }

    .service_detail_container .flow_content .ttl h2 {
        margin-top: 15px;
    }

    .service_detail_container .flow_content .textarea {
        font-size: 16px;
    }

    .service_detail_container .flow_content .inner {
        margin: 30px auto 0;
        width: 90%;
    }

    .service_detail_container .support_content {
        padding: 40px 0 120px;
    }

    .service_detail_container .support_content .inner {
        margin: 30px auto 0;
    }

    .service_detail_container .support_content .main_txt {
        font-size: 16px;
    }

    .service_detail_container .support_content .inner .box h3 {
        padding-bottom: 10px;
        font-size: 20px;
    }

    .service_detail_container .support_content .inner .box p {
        margin-top: 10px;
    }

    .service_detail_container .price_content {
        margin-top: 80px;
    }

    .service_detail_container .price_content .inner .area {
        margin-top: 30px;
    }

    .service_detail_container .price_content .inner .area .price_txt {
        font-size: 20px;
    }

    .service_detail_container .price_content .inner .area .price_txt br {
        display: block;
    }

    .service_detail_container .price_content .inner .area .price_txt span {
        margin: 0;
        font-size: 48px;
        line-height: 1.3;
    }

    .service_detail_container .price_content .inner .area .composition_txt {
        padding-bottom: 20px;
    }

    .service_detail_container .price_content .inner .area .composition_txt p:nth-of-type(2) {
        display: none;
    }

    .service_detail_container .price_content .inner .area .composition_txt p:nth-of-type(3) {
        display: block;
        font-size: 20px;
        font-weight: bold;
        line-height: 1.6;
        letter-spacing: 0.1em;
    }

    .service_detail_container .price_content .inner .area .detail_txt {
        margin-top: 20px;
        font-size: 16px;
    }

    .service_detail_container .works_content .inner .area {
        margin-top: 30px;
    }

    .service_detail_container .works_content .inner .area .box {
        width: 100%;
    }
}

@media screen and (max-width:500px) {
    .service_detail_container .content .inner .text_box a.btn {
        margin: 30px auto 0;
    }
}

/*---------------------------------------------------------
                取り扱い製品
---------------------------------------------------------*/
.products_container p.main_txt {
    margin: 100px auto 0;
    width: 90%;
    font-size: 24px;
    font-weight: 900;
    line-height: 1.9;
    letter-spacing: 0.1em;
    text-align: center;
}

.products_container .tab_area {
    margin-top: 70px;
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 50px;
}

.products_container .tab_area a {
    display: block;
    padding: 10px 20px;
    background-color: #FFF;
    color: #00A76B;
    border: 5px solid #00A76B;
    border-radius: 50px;
    transition: 0.3s;
}

.products_container .tab_area a.active {
    background-color: #00A76B;
    color: #FFF;
}

.products_container .tab_area a:hover {
    opacity: 0.7;
}

.products_container .tab_area a p {
    font-size: 24px;
    font-weight: 900;
    line-height: normal;
    letter-spacing: 0.1em;
}

.products_container .products_list {
    margin: 88px auto 0;
    width: 80vw;
}

.products_container .products_list ul {
    display: flex;
    flex-wrap: wrap;
    justify-content: flex-start;
    gap: 48px;
}

.products_container .products_list ul li {
    width: calc((100% - 96px)/3);
}

.products_container .products_list ul li a {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 10px;
    color: #131313;
}

.products_container .products_list ul li a .img_box {
    position: relative;
    width: 100%;
}

.products_container .products_list ul li a .img_box img {
    width: 100%;
    height: auto;
    aspect-ratio: 1/1;
    object-fit: cover;
    border-radius: 18px;
}

.products_container .products_list ul li a .img_box .hover_box {
    position: absolute;
    top: 50%;
    left: 50%;
    transform: translate(-50%, -50%) scale(0);
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    gap: 15px;
    width: 90%;
    height: 90%;
    background-color: rgba(0, 0, 0, 0.6);
    border-radius: 18px;
    opacity: 0;
    transition: 0.3s;
}

.products_container .products_list ul li a:hover .img_box .hover_box {
    opacity: 1;
    transform: translate(-50%, -50%) scale(1);
}

.products_container .products_list ul li a .img_box .hover_box p.pro_txt {
    display: none;
}

.products_container .products_list ul li a .img_box .hover_box p.more_txt {
    color: #FFF;
    font-size: 36px;
    line-height: 1.2;
    letter-spacing: 0.05em;
    text-align: center;
}

.products_container .products_list ul li a .img_box .hover_box .products_container .products_list ul li a p {
    color: #131313;
    font-size: 24px;
    font-weight: bold;
    line-height: 1.8;
    letter-spacing: 0.1em;
}

@media screen and (max-width:1200px) {
    .products_container .products_list {
        width: 90%;
    }

    .products_container .products_list ul {
        gap: 20px;
    }

    .products_container .products_list ul li {
        width: calc((100% - 40px) / 3);
    }
}

@media screen and (max-width:990px) {
    .products_container .products_list ul li {
        width: calc((100% - 20px) / 2);
    }
}

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

    .products_container p.main_txt {
        margin: 50px auto 0;
        font-size: 20px;
        text-align: left;
    }

    .products_container .tab_area {
        gap: 20px;
    }

    .products_container .tab_area a p {
        font-size: 20px;
    }

    .products_container .products_list {
        margin: 50px auto 0;
    }

    .products_container .products_list ul li {
        width: 100%;
    }

    /* .products_container .products_list ul li a .img_box {
        max-width: 500px;
    } */

    .products_container .products_list ul li a .img_box img {
        aspect-ratio: 330 / 230;
        border-radius: 18px;
    }

    .products_container .products_list ul li a .img_box .hover_box {
        transform: translate(-50%, -50%) scale(1);
        opacity: 1;
    }

    .products_container .products_list ul li a .img_box .hover_box p.pro_txt {
        display: block;
        color: #FFF;
        font-size: max(6vw, 24px);
        font-weight: 900;
        line-height: normal;
        letter-spacing: 0.1em;
    }

    .products_container .products_list ul li a .img_box .hover_box p.more_txt {
        font-size: max(5vw, 20px);
    }

    .products_container .products_list ul li a p.name_txt {
        display: none;
    }


}

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

    .products_container .products_list ul li a {
        gap: 5px;
    }

    .products_container .tab_area a p {
        font-size: 18px;
    }

    .products_container .products_list ul li a p {
        font-size: 18px;
    }
}

/*---------------------------------------------------------
                取り扱い製品　詳細
---------------------------------------------------------*/
.products_detail_container .content {
    margin: 80px auto 0;
    width: 80%;
}

.products_detail_container .content h2 {
    padding-left: 10px;
    font-size: 28px;
    border-left: 5px solid #00C911;
}

.products_detail_container .content .area {
    display: flex;
    gap: 50px;
    margin-top: 50px;
}

.products_detail_container .content .area .img_box {
    width: 400px;
}

.products_detail_container .content .area .img_box img {
    width: 100%;
    height: auto;
    aspect-ratio: 1/1;
    object-fit: cover;
    border-radius: 30px;
}

.products_detail_container .content .area .txt_area {
    flex: 1;
    width: calc(100% - 400px - 50px);
}

.products_detail_container .content .area .txt_area a.detail_link {
    display: block;
    color: #131313;
    font-size: 16px;
    font-weight: 400;
    text-align: right;
    text-decoration: underline;
}

.products_detail_container .content .area .txt_area p.point_txt {
    margin-top: 20px;
    padding: 10px 20px;
    font-size: 20px;
    font-weight: bold;
    line-height: 1.5;
    letter-spacing: 0.1em;
    border: 3px solid #00C911;
    border-radius: 10px;

}

.products_detail_container .content .area .txt_area .content_txt {
    margin-top: 30px;
}

.products_detail_container .content .area .txt_area .content_txt p {
    font-size: 18px;
    font-weight: bold;
    line-height: 1.75;
    letter-spacing: 0.1em;
}

.products_detail_container .content .area .txt_area a.recommend_link {
    margin-top: 30px;
}

.products_detail_container .return_btn {
    margin: 80px auto 0;
}

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

    .products_detail_container .content .area .img_box {
        width: 300px;
    }

    .products_detail_container .content .area .txt_area {
        width: calc(100% - 300px - 50px);
    }
}

@media screen and (max-width:990px) {
    .products_detail_container .content .area {
        flex-direction: column;
    }

    .products_detail_container .content .area .img_box {
        width: 100%;
        max-width: 500px;
    }

    .products_detail_container .content .area .txt_area {
        width: 100%;
    }
}

@media screen and (max-width:768px) {
    .products_detail_container .content {
        margin: 50px auto 0;
    }

    .products_detail_container .content h2 {
        font-size: 20px;
    }

    .products_detail_container .content .area {
        gap: 30px;
        margin-top: 30px;
    }

    .products_detail_container .content .area .txt_area p.point_txt {
        padding: 10px;
        font-size: 18px;
    }

    .products_detail_container .content .area .txt_area .content_txt p {
        font-size: 16px;
    }
}

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

    .products_detail_container .content .area .txt_area a.recommend_link {
        justify-content: space-between;
        gap: 0;
        width: 100%;
    }
}

/*---------------------------------------------------------
                プライバシーポリシー
---------------------------------------------------------*/
/* .privacy_container {
    margin: 120px auto 200px;
} */

.privacy_container .page_ttl p {
    color: #00A76B;
}

.privacy_container .main_txt {
    position: relative;
    margin: 80px auto 0;
    padding: 80px;
    width: 70%;
    background-color: #91DA12;
    color: #FFF;
    border-radius: 40px;
}

.privacy_container .main_txt p {
    font-size: 20px;
    font-weight: bold;
    line-height: 1.9;
    letter-spacing: 0.1em;
}

.privacy_container .main_txt .bg_img {
    position: absolute;
    top: 0;
    right: 0;
    width: 313px;
}

.privacy_container .main_txt .bg_img img {
    width: 100%;
}

.privacy_container .privacy_list {
    margin: 80px auto 0;
    width: 70%;
}

.privacy_container .privacy_list ul li.main_list {
    margin-top: 70px;
    font-size: 32px;
    font-weight: bold;
    line-height: 1.8;
    letter-spacing: 0.1em;
}

.privacy_container .privacy_list ul li.main_list .textarea {
    margin-top: 20px;
}

.privacy_container .privacy_list ul li.main_list p {
    font-size: 18px;
    line-height: 1.9;
    letter-spacing: 0.07em;
}

.privacy_container .privacy_list ul li.main_list ul.inner_list li {
    margin-top: 30px;
    font-size: 20px;
    font-weight: 900;
    line-height: 1.66;
    letter-spacing: 0.1em;
}

.privacy_container .privacy_list ul li.main_list ul.inner_list li p {
    font-size: 18px;
    font-weight: bold;
    line-height: 1.66;
    letter-spacing: 0.1em;
}

.privacy_container .privacy_list ul li.main_list ul.inner_list li ul li {
    margin: 0 0 0 1.5em;
    font-size: 18px;
    font-weight: bold;
    line-height: 1.66;
    letter-spacing: 0.1em;
    list-style: decimal;
}

.privacy_container .privacy_list ul li.main_list a {
    display: block;
    color: #131313;
    font-size: 18px;
    line-height: 1.9;
    letter-spacing: 0.07em;
    text-decoration: underline;
    word-wrap: break-word;
}

.privacy_container .privacy_list ul li.main_list p.address_txt {
    margin-top: 34px;
    font-weight: 700;
    letter-spacing: 0.1em;
}

.privacy_container .privacy_list ul li.main_list p.address_txt br.sp_only {
    display: none;
}

.privacy_container .btn {
    margin: 56px 0 0 15%;
}

@media screen and (max-width:1200px) {
    .privacy_container .main_txt {
        padding: 70px 50px;
        width: 80%;
    }

    .privacy_container .privacy_list {
        width: 80%;
    }
}

@media screen and (max-width:990px) {
    .privacy_container .privacy_list ul li.main_list {
        font-size: 26px;
    }
}

@media screen and (max-width:768px) {
    .privacy_container .main_txt {
        margin: 50px auto 0;
        padding: 50px 30px;
        width: 90%;
    }

    .privacy_container .main_txt p {
        font-size: 16px;
    }

    .privacy_container .privacy_list {
        width: 90%;
    }

    .privacy_container .privacy_list ul li.main_list {
        margin-top: 40px;
        font-size: 20px;
    }

    .privacy_container .privacy_list ul li.main_list .textarea {
        margin-top: 10px;
        font-size: 16px;
    }

    .privacy_container .privacy_list ul li.main_list ul.inner_list li {
        margin-top: 20px;
        font-size: 18px;
    }

    .privacy_container .privacy_list ul li.main_list p {
        font-size: 16px;
    }

    .privacy_container .privacy_list ul li.main_list ul.inner_list li p {
        font-size: 16px;
    }

    .privacy_container .privacy_list ul li.main_list ul.inner_list li ul li {
        font-size: 16px;
    }

    .privacy_container .privacy_list ul li.main_list a {
        font-size: 16px;
    }


    .privacy_container .btn {
        margin: 30px 0 0 5%;
    }
}

@media screen and (max-width:500px) {
    .privacy_container .page_ttl p {
        line-height: 1;
    }

    .privacy_container .main_txt {
        padding: 30px 20px;
    }

    .privacy_container .privacy_list ul li.main_list p.address_txt br.sp_only {
        display: block;
    }

    .privacy_container .btn {
        justify-content: space-between;
        gap: 0;
        margin: 30px auto 0;
        width: 90%;
    }
}

/*---------------------------------------------------------
                お問い合わせ
---------------------------------------------------------*/
/* .contact_container {
    margin: 132px 0 200px;
} */

.contact_container .page_ttl p {
    color: #9AE11D;
}

.contact_container .tel_box {
    position: relative;
    padding: 60px 0 78px;
    margin: 44px auto 0;
    width: 70%;
    /*width: 1005px;*/
    color: #FFF;
    background-image: url(../img/img_contact_tel_bg.png);
    background-position: center;
    background-repeat: no-repeat;
    background-size: cover;
    border-radius: 35px;
}

.contact_container .tel_box::before {
    position: absolute;
    top: 0;
    left: 0;
    content: "";
    display: block;
    width: 100%;
    height: 100%;
    background-color: #131313;
    opacity: 0.8;
    border-radius: 35px;
}

.contact_container .tel_box h2 {
    position: relative;
    font-size: 28px;
    font-weight: bold;
    line-height: 1.8;
    letter-spacing: 0.1em;
    text-align: center;
}

.contact_container .tel_box .content {
    position: relative;
    display: flex;
    flex-direction: column;
    gap: 17px;
    margin-top: 28px;
}

.contact_container .tel_box .content .tel01 {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 29px;
}

.contact_container .tel_box .content .tel01 p {
    font-size: 40px;
    font-weight: bold;
    line-height: 1.2;
    letter-spacing: 0.05em;
}

.contact_container .tel_box .content .tel01 a {
    color: #FFF;
    font-size: 48px;
    font-weight: bold;
    line-height: 1.2;
    letter-spacing: 0.05em;
}

.contact_container .tel_box .content .tel02 {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 29px;
}

.contact_container .tel_box .content .tel02 .icon {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 78.52px;
}

.contact_container .tel_box .content .tel02 svg {
    width: 43px;
}

.contact_container .tel_box .content .tel02 a {
    width: 363.77px;
    color: #FFF;
    font-size: 48px;
    font-weight: bold;
    line-height: 1.2;
    letter-spacing: 0.05em;
}

.contact_container .tel_box .time_text {
    position: relative;
    margin-top: 17px;
    font-size: 16px;
    font-weight: bold;
    line-height: 1.9;
    letter-spacing: 0.1em;
    text-align: center;
}

.contact_container .main_text {
    margin-top: 77px;
    font-size: 20px;
    font-weight: bold;
    line-height: 1.9;
    letter-spacing: 0.1em;
    text-align: center;
}

.contact_container .contact_flow {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 63px;
    margin-top: 65px;
}

.contact_container .contact_flow .item {
    display: flex;
    flex-direction: column;
    gap: 6px;
}

.contact_container .contact_flow .item.active {
    color: #00C911;
}

.contact_container .contact_flow .item p:nth-of-type(1) {
    font-size: 15px;
    line-height: 1;
    letter-spacing: 0.05em;
}

.contact_container .contact_flow .item p:nth-of-type(2) {
    font-size: 30px;
    font-weight: 900;
    line-height: 1;
    letter-spacing: 0.1em;
}

.contact_container .contact_box {
    margin: 150px auto 0;
    width: 60%;
    /*width: 866px;*/
}

.contact_container .contact_box .form_box dl.column {
    display: flex;
    flex-direction: column;
    align-items: baseline;
    gap: 38px;
    margin-bottom: 94px;
}

.contact_container .contact_box .form_box dl.flex {
    display: flex;
    gap: 70px;
    padding: 40px 30px;
    border-bottom: 2px solid #E0E0E0;
}

.contact_container .contact_box .form_box dl.flex.address_required {
    padding-bottom: 0;
    border-bottom: none;
}

.contact_container .contact_box .form_box dl.flex.address_optional {
    padding-top: 16px;
}


.contact_container .contact_box .form_box dl.flex dd {
    width: calc(100% - 231px - 70px);
}

.contact_container .contact_box dl dt p {
    width: 231px;
    font-size: 20px;
    font-weight: 700;
    line-height: 1.9;
    letter-spacing: 0.1em;
}

.contact_container .contact_box .form_box dl.column dt p {
    width: 100%;
}

.contact_container .contact_box .form_box dl.column dd .wpcf7-radio {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 18px 130px;
}

.contact_container .contact_box .form_box dl.column dd .wpcf7-radio span {
    width: 285px;
}

.contact_container .contact_box .form_box dl dt p span {
    margin-left: 20px;
    padding: 2px 13px;
    background-color: #00C911;
    color: #FFF;
    width: fit-content;
    font-size: 14px;
    line-height: 1;
    letter-spacing: 0.1em;
    border-radius: 10px;
}

.contact_container .contact_box .form_box dl dd.flex_box {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 34px;
}

.contact_container .contact_box .form_box dl dd.flex_box .flex {
    display: flex;
    align-items: center;
    gap: 17px;
    width: calc((100% - 34px)/2);
}

.contact_container .contact_box .form_box dl dd.flex_box .flex span.name_text {
    display: block;
    width: 53px;
}

.contact_container .contact_box .form_box dl dd.flex_box .flex .input_box {
    width: 100%;
}

.contact_container .contact_box .form_box dl dd.flex_box .flex .input_box span {
    display: block;
    width: 100%;
}

.contact_container .contact_box .form_box dl dd .adress_flex {
    display: flex;
    align-items: center;
    gap: 17px;
    margin-bottom: 38px;
}

.contact_container .contact_box .form_box dl dd .adress_flex .zip_mark {
    display: block;
    width: 53px;
}

.contact_container .contact_box .form_box dl dd .adress_flex .zip_text {
    display: block;
    width: 168px;
    font-size: 14px;
    font-weight: bold;
    line-height: 1.4;
    letter-spacing: 0.1em;
}

input[type="text"],
input[type="tel"],
input[type="email"],
textarea.wpcf7-form-control.wpcf7-textarea {
    padding: 14px 18px;
    width: 100%;
    background-color: #F4F4F4;
    border: none;
    font-weight: bold;
    line-height: 1.9;
    letter-spacing: 0.1em;
    font-size: 16px;
}

/* ラジオボタン */
.contact_container .contact_box .form_box input[type="radio"] {
    opacity: 0;
    visibility: hidden;
    position: absolute;
}

.contact_container .contact_box .form_box span.wpcf7-list-item-label {
    position: relative;
    display: flex;
    align-items: center;
    cursor: pointer;
    font-size: 18px;
    font-weight: bold;
    line-height: 1.9;
    letter-spacing: 0.1em;
}

.contact_container .contact_box .form_box span.wpcf7-list-item-label::before {
    display: block;
    content: "";
    border-radius: 50%;
    border: 2px solid #131313;
    width: 24px;
    height: 24px;
    margin-right: 19px;
}

.contact_container .contact_box .form_box span.wpcf7-list-item-label::after {
    display: block;
    position: absolute;
    content: "";
    border-radius: 50%;
    width: 14px;
    height: 14px;
    background-color: #131313;
    left: 7px;
    top: 50%;
    transform: translateY(-50%);
    display: none;
}

.contact_container .contact_box .form_box input[type="radio"]:checked+span.wpcf7-list-item-label::after {
    display: block;
}

.contact_container .contact_box .contact_txt {
    margin-top: 42px;
    font-size: 18px;
    font-weight: bold;
    line-height: 1.9;
    letter-spacing: 0.1em;
    text-align: center;
}

.contact_container .contact_box .contact_txt a {
    color: #131313;
    text-decoration: underline;
}

/* 同意チェック */
.contact_container .consent_box {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 10px;
    margin-top: 38px;
    word-break: keep-all;
    text-align: center;
}

.contact_container .consent_box span {
    flex: 0;
    display: flex;
    align-items: center;
    justify-content: center;
    margin: 0;
}

.contact_container .consent_box span::after {
    content: '';
    display: block;
    position: absolute;
    top: 50%;
    left: 50%;
    transform: translateX(-50%) rotate(45deg);
    opacity: 0;
    width: 6px;
    height: 14px;
    margin-top: -8px;
    border-right: 2px solid #333;
    border-bottom: 2px solid #333;
    transition: .3s;
}

.contact_container .consent_box span:has(:checked)::after {
    opacity: 1;
}

.consent_box input[type="checkbox"] {
    position: relative;
    appearance: none;
    width: 26px;
    height: 26px;
    border: 1px solid #333;
    cursor: pointer;
}

/* エラーメッセージ */
.wpcf7-not-valid-tip {
    font-size: 12px !important;
}

.wpcf7 form .wpcf7-response-output {
    width: 866px;
}

/* 確認画面遷移ボタン */
#btn_confirm {
    display: block;
    padding: 0;
    position: relative;
    margin: 150px auto 0;
    background-color: transparent;
    border: none;
}

#btn_confirm.disabled input[type="button"] {
    background-color: #ccc;
    border-color: #ccc;
}

#btn_confirm.disabled svg path {
    fill: #ccc;
}

#btn_confirm input[type="button"] {
    padding: 16.5px 12px 16.5px 54px;
    width: 340px;
    background-color: #131313;
    border: 2px solid #131313;
    color: #FFF;
    font-size: 24px;
    font-weight: 900;
    line-height: normal;
    letter-spacing: 0.1em;
    text-align: left;
    border: 2px solid #FFF;
    border-radius: 90px;
    transition: 0.3s;
    cursor: pointer;
}

#btn_confirm:hover input {
    background-color: #FFF;
    color: #131313;
    border-color: #131313;
}

#btn_confirm.btn.black .arrow {
    position: absolute;
    top: 50%;
    right: 10px;
    transform: translateY(-50%);
}

#btn_confirm.btn.black .arrow p {
    line-height: 16px;
}

input.wpcf7-form-control.wpcf7-submit.has-spinner {
    display: none !important;
}

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

.wpcf7-response-output {
    margin: 50px auto 0 !important;
    padding: 30px !important;
}

@media screen and (max-width:1200px) {
    .contact_container .tel_box {
        width: 80%;
    }
}

@media screen and (max-width:990px) {
    .contact_container .tel_box {
        padding: 40px 0 58px;
        width: 90%;
    }

    .contact_container .tel_box h2 {
        font-size: 24px;
    }

    .contact_container .tel_box .content .tel01 {
        gap: 10px;
    }

    .contact_container .tel_box .content .tel01 p {
        font-size: 30px;
    }

    .contact_container .tel_box .content .tel01 a {
        font-size: 36px;
    }

    .contact_container .tel_box .content .tel02 {
        gap: 10px;
    }

    .contact_container .tel_box .content .tel02 .icon {
        width: 58.89px;
    }

    .contact_container .tel_box .content .tel02 a {
        width: 272.83px;
        font-size: 36px;
    }

    .contact_container .tel_box .content .tel02 svg {
        width: 38px;
    }

    .contact_container .tel_box .time_text {
        font-size: 14px;
    }

    .contact_container .contact_box {
        width: 90%;
    }

    .contact_container .contact_box .form_box dl.flex {
        gap: 40px;
    }

    .contact_container .contact_box dl dt p {
        width: 216px;
        font-size: 18px;
    }

    .contact_container .contact_box .form_box dl.flex dd {
        gap: 20px;
        width: calc(100% - 216px - 40px);
    }

    .contact_container .contact_box .form_box dl dd.flex_box .flex {
        gap: 10px;
        width: calc((100% - 20px) / 2);
    }

    .contact_container .contact_box .form_box dl dd.flex_box .flex span.name_text {
        width: 36px;
        font-size: 16px;
    }

    .contact_container .contact_box .form_box dl dd .adress_flex {
        gap: 10px;
    }

    .contact_container .contact_box .form_box dl dd .adress_flex .zip_mark {
        width: 36px;
        font-size: 16px;
    }

    .wpcf7-response-output {
        width: 90% !important;
    }
}

@media screen and (max-width:768px) {
    .contact_container .main_text {
        margin: 50px auto 0;
        width: 90%;
        font-size: 16px;
    }

    .contact_container .contact_flow {
        gap: 20px;
        margin-top: 50px;
    }

    .contact_container .contact_flow .item {
        align-items: center;
    }

    .contact_container .contact_flow .item p:nth-of-type(2) {
        font-size: 20px;
    }

    .contact_container .contact_box {
        margin: 80px auto 0;
    }

    .contact_container .contact_box .form_box dl.flex {
        flex-direction: column;
        gap: 20px;
        padding: 30px 10px;
    }

    .contact_container .contact_box .form_box dl.column {
        gap: 20px;
        margin-bottom: 20px;
    }

    .contact_container .contact_box .form_box dl.flex dd {
        width: 100%;
    }

    .contact_container .contact_box .form_box dl.column dd .wpcf7-radio {
        gap: 5px;
    }

    .contact_container .contact_box .form_box span.wpcf7-list-item-label {
        font-size: 16px;
    }

    .contact_container .contact_box .form_box span.wpcf7-list-item-label::before {
        width: 20px;
        height: 20px;
    }

    .contact_container .contact_box .form_box span.wpcf7-list-item-label::after {
        width: 12px;
        height: 12px;
        left: 6px;
    }

    .contact_container .contact_box .contact_txt {
        font-size: 16px;
    }

    #btn_confirm {
        margin-top: 80px;
        width: 280px;
    }

    #btn_confirm input[type="button"] {
        padding: 16.5px 12px 16.5px 34px;
        width: 100%;
        font-size: 18px;
    }
}

@media screen and (max-width:600px) {
    .contact_container .contact_box .contact_txt {
        text-align: left;
    }

    .wpcf7-response-output {
        padding: 20px 10px !important;
        line-height: 1.5;
    }
}

@media screen and (max-width:500px) {
    .contact_container .tel_box {
        padding: 20px 0 28px;
        width: 90%;
    }

    .contact_container .tel_box h2 {
        font-size: 18px;
    }

    .contact_container .tel_box .content {
        gap: 10px;
        margin-top: 15px;
    }

    .contact_container .tel_box .content .tel01 p {
        font-size: 22px;
    }

    .contact_container .tel_box .content .tel01 a {
        font-size: 28px;
    }

    .contact_container .tel_box .content .tel02 .icon {
        width: 43.19px;
    }

    .contact_container .tel_box .content .tel02 svg {
        width: 30px;
    }

    .contact_container .tel_box .content .tel02 a {
        width: 212.2px;
        font-size: 28px;
    }

    .contact_container .tel_box .time_text {
        margin-top: 10px;
        font-size: 12px;
    }

    .contact_container .main_text {
        margin-top: 30px;
        text-align: left;
    }

    .contact_container .main_text br.pc_only {
        display: none;
    }

    .contact_container .contact_box .form_box dl.column dd .wpcf7-radio span {
        width: 100%;
    }

    .wpcf7-form-control.wpcf7-radio .wpcf7-list-item {
        width: 100%;
    }

    .contact_container .contact_box .form_box span.wpcf7-list-item-label::before {
        margin-right: 14px;
        width: 14px;
        height: 14px;
    }

    .contact_container .contact_box .form_box span.wpcf7-list-item-label::after {
        width: 10px;
        height: 10px;
        left: 4px;
    }

    .contact_container .contact_box .form_box dl.flex {
        gap: 10px;
        padding: 20px 10px;
    }

    .contact_container .contact_box .form_box dl dd.flex_box {
        flex-direction: column;
        align-items: baseline;
        gap: 10px;
    }


    .contact_container .contact_box .form_box dl dd.flex_box .flex {
        width: 100%;
    }

    .contact_container .contact_box .form_box dl dd .adress_flex {
        flex-wrap: wrap;
        margin-bottom: 15px;
    }

    .contact_container .contact_box .form_box dl dd .adress_flex .input_box {
        width: calc(100% - 46px);
    }

    .contact_container .contact_box .form_box dl dd .adress_flex .zip_text {
        width: 100%;
        font-size: 12px;
    }

    .contact_container .contact_box .form_box dl dd .adress_flex .zip_text br {
        display: none;
    }

    .contact_container .contact_box .contact_txt {
        font-size: 14px;
    }

    .contact_container .consent_box {
        font-size: 16px;
    }

    .consent_box input[type="checkbox"] {
        width: 20px;
        height: 20px;
    }

    .contact_container .consent_box span::after {
        width: 4px;
        height: 10px;
    }

    #btn_confirm {
        margin-top: 50px;
    }

    #btn_confirm input[type="button"] {
        font-size: 16px;
    }
}

/*---------------------------------------------------------
                お問い合わせ 確認画面
---------------------------------------------------------*/
.contact_container.confirm .contact_box {
    margin-top: 80px;
    width: 780px;
}

.contact_container.confirm .contact_box .form_box dl {
    display: flex;
    padding: 30px 25px;
}

.contact_container.confirm .contact_box .form_box dl dd p {
    font-size: 18px;
    font-weight: bold;
    line-height: 1.9;
    letter-spacing: 0.1em;
}

.contact_container.confirm .btn_box {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 50px;
    margin-top: 120px;
}

#btn_back {
    display: block;
    padding: 0;
    position: relative;
    background-color: transparent;
    border: none;
}

#btn_back input[type="button"] {
    display: block !important;
    padding: 16.5px 12px 16.5px 54px;
    width: 280px;
    background-color: #131313;
    border: 2px solid #131313;
    color: #FFF;
    font-size: 24px;
    font-weight: 900;
    line-height: normal;
    letter-spacing: 0.1em;
    text-align: left;
    border: 2px solid #FFF;
    border-radius: 90px;
    transition: 0.3s;
    cursor: pointer;
}

#btn_back:hover input[type="button"] {
    background-color: #FFF;
    color: #131313;
    border: 2px solid #131313;
}

#btn_back.btn.black .arrow {
    position: absolute;
    top: 50%;
    right: 15px;
    transform: translateY(-50%);
}

#btn_back.btn.black .arrow p {
    line-height: 16px;
}

#btn_thanks {
    display: block;
    padding: 0;
    position: relative;
    background-color: transparent;
    border: none;
}

#btn_thanks input[type="button"] {
    padding: 16.5px 12px 16.5px 54px;
    width: 340px;
    background-color: #00C911;
    border: 2px solid #00C911;
    color: #FFF;
    font-size: 24px;
    font-weight: 900;
    line-height: normal;
    letter-spacing: 0.1em;
    text-align: left;
    border: 2px solid #FFF;
    border-radius: 90px;
    transition: 0.3s;
    cursor: pointer;
}

#btn_thanks:hover input[type="button"] {
    background-color: #FFF;
    color: #00C911;
    border: 2px solid #00C911;
}

#btn_thanks.btn.green .arrow {
    position: absolute;
    top: 50%;
    right: 10px;
    transform: translateY(-50%);
}

#btn_thanks.btn.green .arrow p {
    line-height: 16px;
}

@media screen and (max-width:990px) {
    .contact_container.confirm .contact_box {
        width: 80%;
    }
}

@media screen and (max-width:768px) {
    .contact_container.confirm .contact_box {
        margin-top: 50px;
    }

    .contact_container.confirm .contact_box .form_box dl {
        flex-direction: column;
        gap: 10px;
        padding: 20px 10px;
    }

    .contact_container.confirm .contact_box .form_box dl dd p {
        font-size: 16px;
    }

    .contact_container.confirm .btn_box {
        flex-direction: column;
        gap: 10px;
        margin-top: 50px;
    }

    #btn_back input[type="button"],
    #btn_thanks input[type="button"] {
        width: 100%;
        font-size: 18px;
    }
}

@media screen and (max-width:500px) {
    .contact_container.confirm .contact_box {
        width: 90%;
    }
}

/*---------------------------------------------------------
                完了画面
---------------------------------------------------------*/
.contact_container.thanks .content p.main_txt {
    margin-top: 80px;
    color: #00C911;
    font-size: max(2.8vw, 20px);
    font-weight: 900;
    line-height: 1.9;
    letter-spacing: 0.1em;
    text-align: center;
}

.contact_container.thanks .content .sub_txt {
    margin: 50px auto 0;
    width: 90%;
}

.contact_container.thanks .content .sub_txt p {
    font-size: 20px;
    font-weight: bold;
    line-height: 1.9;
    letter-spacing: 0.1em;
    text-align: center;
}

.contact_container.thanks .content .sub_txt p:not(:first-of-type) {
    margin-top: 38px;
}

.contact_container.thanks .content br.sp_only {
    display: none;
}

.contact_container.thanks a.btn {
    margin: 80px auto 0;
}

@media screen and (max-width:768px) {
    .contact_container.thanks .content p.main_txt {
        margin-top: 50px;
        font-size: 32px;
    }

    .contact_container.thanks .content .sub_txt {
        margin: 30px auto 0;
    }

    .contact_container.thanks .content .sub_txt p {
        font-size: 16px;
        text-align: left;
    }

    .contact_container.thanks .content .sub_txt p:not(:first-of-type) {
        margin-top: 30px;
    }


    .contact_container.thanks .content br.pc_only {
        display: none;
    }

    .contact_container.thanks .content br.sp_only {
        display: block;
    }

    .contact_container.thanks a.btn {
        margin: 50px auto 0;
    }

}

@media screen and (max-width:500px) {
    .contact_container.thanks .content p.main_txt {
        font-size: 24px;
    }

}

/*---------------------------------------------------------
                サイトマップ
---------------------------------------------------------*/
.sitemap_container .page_ttl p {
    color: #9AE11D;
}

.sitemap_container ul.content {
    display: flex;
    flex-wrap: wrap;
    gap: 50px;
    margin: 100px auto 0;
    width: 70%;
}

.sitemap_container ul.content li {
    position: relative;
    width: calc((100% - 90px)/2);
}

.sitemap_container ul.content li.max_item {
    width: 100%;
}

.sitemap_container ul.content li a {
    display: flex;
    align-items: center;
    justify-content: space-between;
    padding-bottom: 13px;
    width: 100%;
    color: #131313;
    font-size: 24px;
    font-weight: 900;
    line-height: 1.9;
    letter-spacing: 0.1em;
    border-bottom: 5px solid #181818;
    transform: 0.3s;
}

.sitemap_container ul.content li.max_item a {
    width: calc((100% - 90px)/2);
}

.sitemap_container ul.content li a:hover {
    color: #00C911;
    border-bottom: 5px solid #00C911;
}

.sitemap_container ul.content li ul.sub_list {
    margin-top: 20px;
}

.sitemap_container ul.content li ul.sub_list li {
    width: 100%;
}

.sitemap_container ul.content li ul.sub_list li a {
    padding-bottom: 0;
    width: 100%;
    font-size: 18px;
    border: none;
    font-weight: 700;
}

.sitemap_container ul.content li ul.sub_list li ul {
    margin-left: 1em;
}

.sitemap_container ul.content li a svg path {
    transform: 0.3s;
}

.sitemap_container ul.content li a:hover svg path {
    fill: #00C911;
}

@media screen and (max-width:990px) {
    .sitemap_container ul.content {
        width: 90%;
    }

    .sitemap_container ul.content {
        gap: 50px 60px;
    }

    .sitemap_container ul.content li {
        width: calc((100% - 60px) / 2);
    }

    .sitemap_container ul.content li a {
        font-size: 24px;
    }

}

@media screen and (max-width:768px) {
    .sitemap_container ul.content {
        gap: 20px;
        margin: 50px auto 0;
    }

    .sitemap_container ul.content li {
        width: 100%;
    }


    .sitemap_container ul.content li a {
        padding-bottom: 10px;
        font-size: 18px;
    }

    .sitemap_container ul.content li.max_item a {
        width: 100%;
    }

    .sitemap_container ul.content li ul.sub_list {
        margin-top: 10px;
    }

    .sitemap_container ul.content li ul.sub_list li a {
        font-size: 16px;
    }

    .sitemap_container ul.content li a svg {
        width: 24px;
    }
}

@media screen and (max-width:500px) {
    .sitemap_container ul.content li a svg {
        width: 20px;
    }
}

/*---------------------------------------------------------
                アニメーション
---------------------------------------------------------*/
.fadeup {
    animation: fadeup 1s cubic-bezier(0.33, 1, 0.68, 1) forwards;
}

@keyframes fadeup {
    0% {
        transform: translateY(30px);
        opacity: 0;
    }

    80% {
        opacity: 1;
    }

    100% {
        opacity: 1;
        transform: translateY(0);
    }
}