@charset "utf-8";

@media (min-width: 768px) {}

@media (min-width: 992px) {}

@media (min-width: 1200px) {}

a {
    text-decoration: none;
}

/* --------------------
astro設定
--------------------*/

body#top .ast-container,
body.page_body .ast-container {
    display: initial !important;
    max-width: initial !important;
    margin: initial !important;
    padding: initial !important;
}

body#top .ast-container-fluid,
body.page_body .ast-container-fluid {
    margin: initial !important;
    padding: initial !important;
}

body#top #wrapper,
body.page_body #wrapper {
    height: auto;
}

body#top #primary,
body.page_body #primary {
    margin: 0 !important;
    padding: 0 !important;
}

#top .entry-header,
body.page_body .entry-header {
    margin-bottom: 0 !important;
}

#top dd,
body.page_body dd {
    margin: 0;
}

#top ol,
body.page_body ol,
#top ul,
body.page_body ul {
    margin: 0;
}




/* --------------------
フォント設定
--------------------*/

body,
div,
p,
a,
h1,
h2,
h3,
h4,
h5,
h6,
input,
select,
textarea,
button {
    color: #000;
    letter-spacing: 0.05em;
    font-family: "Noto Sans JP", sans-serif;
    font-optical-sizing: auto;
    font-weight: 400;
    font-style: normal;
}

.font_jost {
    font-family: "Jost", sans-serif;
    font-optical-sizing: auto;
    font-weight: 400;
    font-style: normal;
}





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

メインの外枠

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

#wrapper {
    background-color: #F5F5F5;
}

#main_wrapper {
    position: relative;
}

#main_wrapper:before {
    position: absolute;
    content: '';
    width: 100%;
    height: 100%;
    display: block;
    border: min(30px, 2vw) solid #fff;
    pointer-events: none;
    border-top: none;
}

@media (max-width: 750px) {
    #main_wrapper:before {
        display: none;
    }
}

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

トップページ

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

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

メインビジュアル

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

#main_visual {
    height: min(886px, 60vw);
    background-color: #fff;
    padding: min(80px, 5.4vw) 0 min(150px, 10vw);
}

#main_visual .inner {
    height: 100%;
    max-width: min(1480px, 100vw);
    margin: 0px auto;
}

#main_visual .card {
    width: 50%;
    height: 100%;
    text-align: center;
    display: flex;
    align-items: center;
    justify-content: center;
    position: relative;
    overflow: hidden;
}

#main_visual .card:after {
    content: '';
    position: absolute;
    display: block;
    width: 100%;
    height: 100%;
    background: url(../img/main1.jpg) center center no-repeat;
    background-size: cover;
    /* z-index: -1; */
}

#main_visual .txt {
    position: relative;
    z-index: 1;
}

#main_visual .card.right:after {
    background-image: url(../img/main2.jpg);
}

#main_visual .copy {
    font-size: min(16px, 1.2vw);
    letter-spacing: 0.25em;
    font-weight: 700;
    color: #fff;
    margin: 4em 0 5.5em;
}

#main_visual .logo_img {
    height: min(35px, 2.4vw);
}

#main_visual .logo_img img {
    height: 100%;
    object-fit: contain;
}

#main_visual .button {
    color: #fff;
    font-size: min(15px, 1.1vw);
    width: min(320px, 21.6vw);
    height: min(70px, 4.7vw);
    font-weight: 500;
    border: 1px solid #fff;
    border-radius: 5em;
    display: flex;
    align-items: center;
    justify-content: center;
    margin: 3.25em auto 0;
    letter-spacing: 0.2em;
}

#main_visual .button:after {
    content: '';
    width: 0.75em;
    height: 0.75em;
    background: url(../img/icon_arrow_white.png) center center no-repeat;
    background-size: contain;
    display: inline-block;
    margin-left: 0.25em;
}

/* hover */

#main_visual .card .button:after,
#main_visual .card:after {
    transition: all 0.5s;
}

#main_visual .card:hover {
    opacity: 1;
}

#main_visual .card:hover:after {
    opacity: .95;
    -moz-transform: scale(1.025);
    -webkit-transform: scale(1.025);
    -ms-transform: scale(1.025);
    transform: scale(1.025);
}

#main_visual .card .button:after {
    top: 0;
    right: 0;
    transition: all 0.25s;
    position: relative;
}

#main_visual .card:hover .button:after {
    top: -0.2em;
    right: -0.2em;
    
}

@media (max-width: 750px) {
    #main_visual {
        padding: 0;
        height: auto;
        padding-bottom: 15vw;
    }

    #main_visual .inner {
        height: initial;
    }

    #main_visual .card {
        width: calc(100% - 5.333vw);
        /* width: 100%; */
        /* height: 82.333vw; */
        height: 90vw;
        margin: 0 auto;
        position: relative;
    }

    #main_visual .card:first-of-type {
        margin-bottom: 2.666vw;
        /* margin-bottom: 8.666vw; */
    }

    #main_visual .txt {
        position: initial;
    }

    #main_visual .copy {
        font-size: 3.2vw;
        line-height: 2;
        margin: 0 0 9vw;
    }

    #main_visual .logo_img {
        height: 6.4vw;
        /* margin-bottom: 10vw; */
        margin-bottom: 15vw;
    }

    #main_visual .button {
        font-size: 2.86666vw;
        width: 41.666vw;
        height: 7.5vw;
        margin-top: 7.2vw;
        position: absolute;
        /* right: -2em; */
        left: 50%;
        transform: translateX(-50%);
        bottom: 5em;

    }
}



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

h2

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

.h2 {
    font-weight: 700;
    font-size: min(50px, 3.4vw);
    letter-spacing: 0.15em;
    font-family: "Jost", sans-serif;
    font-style: normal;
}

@media (max-width: 750px) {
    .h2 {
        font-size: 7.4666vw;
    }
}

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

リンクボタン

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

.btn_link {
    font-family: "Jost", sans-serif;
    font-weight: 400;
    font-style: normal;
    font-size: min(14px, 1.1vw);
    padding: 1em 0;
    width: min(240px, 16vw);
    text-align: right;
    display: inline-block;
    border-bottom: 2px solid #000;
}

.btn_link:after {
    content: '';
    width: 0.8em;
    height: 0.8em;
    background: url(../img/icon_arrow.png) center center no-repeat;
    background-size: contain;
    display: inline-block;
    margin-left: 0.8em;
    position: relative;
    transition: 0.25s;
    top: 0;
    left: 0;
}

.btn_link:hover:after {
    top: -0.25em;
    right: -0.75em;
}

@media (max-width: 750px) {
    .btn_link {
        font-size: 3.46666vw;
        width: 100%;
        border-width: 1px;
    }
}


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

WORKS

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

#works {
    padding-top: min(120px, 8vw);
    background-color: #F5F5F5;
}

#works .h2 {
    margin-bottom: 2em;
}

.works_list_wrapper {
    display: flex;
}

.works_list_wrapper:first-of-type {
    margin-bottom: min(60px, 4vw);
}

.works_list {
    display: flex;
}

.works_list:first-child {
    animation: loop 90s linear infinite;
}

.works_list:nth-child(2) {
    animation: loop2 90s -60s linear infinite;
}

.works_list:last-child {
    animation: loop3 90s -30s linear infinite;
}

.works_list_wrapper:hover .works_list:first-child,
.works_list_wrapper:hover .works_list:nth-child(2),
.works_list_wrapper:hover .works_list:last-child {
    animation-play-state: paused;
}

@keyframes loop {
    0% {
        transform: translateX(200%);
    }

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

@keyframes loop2 {
    0% {
        transform: translateX(100%);
    }

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

@keyframes loop3 {
    0% {
        transform: translateX(0%);
    }

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

.right .works_list:first-child {
    animation: loop_right 90s linear infinite;
}

.right .works_list:nth-child(2) {
    animation: loop2_right 90s -60s linear infinite;
}

.right .works_list:last-child {
    animation: loop3_right 90s -30s linear infinite;
}

@keyframes loop_right {
    0% {
        transform: translateX(-100%);
    }

    to {
        transform: translateX(200%);
    }
}

@keyframes loop2_right {
    0% {
        transform: translateX(-200%);
    }

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

@keyframes loop3_right {
    0% {
        transform: translateX(-300%);
    }

    to {
        transform: translateX(0%);
    }
}


.works_list .item {
    display: block;
    margin: 0 min(15px, 1vw);
    position: relative;
}

.works_list .item img {
    /* width: 100%; */
    width: min(440px, 30vw);
    min-width: min(440px, 30vw);
    height: min(520px, 35vw);
    object-fit: contain;
    background-color: #fff;
    border: min(20px, 1.35vw) solid #fff;
}

.works_list .item .detail {
    opacity: 0;
    position: absolute;
    width: 100%;
    top: 0;
    left: 0;
    height: 100%;
    background: rgba(0, 0, 0, 0.85);
    z-index: 99999;
    color: #fff;
    transition: 0.5s;
    display: block;
}

.works_list .item:hover .detail {
    opacity: 1;
}

.works_list .item .detail .txt {
    position: relative;
    top: 50%;
    left: 50%;
    transform: translate(-50%, -50%);
}

.works_list .item .detail .txt p,
.works_list .item .detail .txt .btn {
    text-align: center;
    color: #fff;
    display: block;
    letter-spacing: 0.1em;
    font-weight: 400;
}

.works_list .item .detail .txt p.ttl {
    font-size: min(16px, 1.2vw);
    margin-bottom: 1.25em;
}

.works_list .item .detail .txt p.author {
    font-size: min(14px, 1.1vw);
    margin-bottom: 3em;
}

.works_list .item .detail .btn {
    font-size: min(14px, 1.1vw);
    border: 1px solid #fff;
    padding: 0.5em 1em;
    border-radius: 2em;
    width: min(180px, 12vw);
    margin: 0 auto;
}

/*---------- ボタン ----------*/

#works .btn_wrapper {
    max-width: min(1480px, 100vw);
    margin: min(60px, 4vw) auto min(150px, 10vw);
    text-align: right;
    padding: 0 min(30px, 2vw);
}

/*---------- 新着作品 ----------*/

.latest_works {
    max-width: min(1396px, 94vw);
    margin: 0 auto;
    padding: 0 min(18px, 1.2vw);
}

.latest_works h3 {
    background-color: #000;
    color: #fff;
    display: inline-block;
    font-size: min(12px, 1vw);
    font-weight: 400;
    letter-spacing: 0.1em;
    padding: 0.375em 1em;
    line-height: 1;
    position: relative;
    left: max(-18px, -1.2vw);
    top: 0.5em;
}

.latest_works h3 span {
    font-size: min(24px, 2vw);
    font-weight: 500;
    letter-spacing: 0.1em;
    vertical-align: middle;
    margin-right: 1.5em;
}

.latest_works .item {
    width: calc(33.333% - 10px);
    display: block;
}

.latest_works .item:hover {
    opacity: 1;
}

.latest_works .item img {
    background-color: #fff;
    border: min(20px, 1.35vw) solid #fff;
    height: min(300px, 20vw);
    object-fit: contain;
}

.latest_works .ttl {
    text-align: center;
    margin-top: 1em;
    font-size: min(15px, 1.2vw);
    letter-spacing: 0.1em;
    font-weight: 500;
    display: block;
}

@media (max-width: 750px) {
    #works {
        padding-top: 15vw;
    }

    #works .h2 {
        margin-bottom: 1em;
    }

    .works_list_wrapper:first-of-type {
        margin-bottom: 5.333vw;
    }

    .works_list .item {
        margin: 0 2.666vw;
    }

    .works_list .item img {
        width: 60vw;
        min-width: 60vw;
        height: 106.666vw;
        height: 80vw;
        border-width: 2.666vw;
    }

    .works_list .item .detail .txt p.ttl {
        font-size: 3.5vw;
        margin-bottom: 2.25em;
    }

    .works_list .item .detail .btn {
        font-size: 3vw;
        width: 60%;
    }

    #works .btn_wrapper {
        padding: 0 14.6666vw;
        margin: 6vw 0 22vw;
    }

    .latest_works {
        max-width: initial;
        padding: 0;
    }

    .latest_works h3 {
        font-size: 2.666vw;
        position: initial;
        padding-left: 2em;
        margin-bottom: 7vw;
        line-height: 1;
    }

    .latest_works h3 span {
        font-size: 4.333vw;
    }

    .latest_works .content {
        padding: 0 10.6666vw;
    }

    .latest_works .item:not(:last-of-type) {
        margin-bottom: 8.333vw;
    }

    .latest_works .content img {
        height: 50.666vw;
        border-width: 2.6666vw;
    }

    .latest_works .ttl {
        font-size: 3.2vw;
        font-weight: 400;
        margin-top: 0.5em;
    }
}

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

SERVICE

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

#service {
    background-color: #F5F5F5;
    padding-top: min(280px, 19vw);
}

#service .h2 {
    margin-bottom: 1em;
}

#service .h2 img {
    height: min(20px, 1.35vw);
}

#service .item {
    position: relative;
}

#service .item:first-of-type {
    margin-bottom: min(160px, 10.8vw);
}

#service .txt {
    background-color: #fff;
    width: calc(50% + min(60px, 4vw));
    height: min(600px, 40vw);
    display: flex;
    align-items: center;
    z-index: 2;
    position: relative;
    justify-content: end;
    padding-left: min(20px, 1.35vw);
}

#service .item:last-of-type .txt {
    margin-right: 0;
    margin-left: auto;
    justify-content: start;
}

#service .txt>.inner {
    width: 100%;
    max-width: min(630px, 43vw);
}

#service .txt>.inner>.inner {
    max-width: min(410px, 34vw);
}

#service .item:last-of-type .txt>.inner>.inner {
    margin-right: 0;
    margin-left: auto;
}

#service .txt h3 {
    margin-bottom: min(40px, 2.7vw);
}

#service .txt h3 img {
    height: min(20px, 1.35vw);
    object-fit: contain;
    object-position: left;
}

#service .txt p {
    font-size: min(14px, 1.1vw);
    line-height: 2;
    font-weight: 400;
}

#service .txt p:not(:last-of-type) {
    margin-bottom: 1.5em;
}

#service .btn_link {
    width: min(400px, 27vw);
    margin-top: min(50px, 3.4vw);
}

#service .link {
    /* width: 920px; */
    width: calc(50% + min(100px, 6.8vw));
    height: min(600px, 40vw);
    position: absolute;
    /* background: url(../img/main1.jpg) center center no-repeat;
    background-size: cover; */
    right: 0;
    top: min(70px, 4.7vw);
    z-index: 1;
    /* position: relative; */
    overflow: hidden;
}

#service .link:after {
    content: '';
    width: 100%;
    height: 100%;
    position: absolute;
    background: url(../img/main1.jpg) center center no-repeat;
    background-size: cover;
    display: block;
    top: 0;
    left: 0;
    transition: 0.5s;
}

#service .item:last-of-type .link:after {
    background-image: url(../img/main2.jpg);
}

#service .link a:hover {
    opacity: 1;
}

#service .link:hover:after {
    /* opacity: .95; */
    -moz-transform: scale(1.025);
    -webkit-transform: scale(1.025);
    -ms-transform: scale(1.025);
    transform: scale(1.025);
}

#service .item:last-of-type .link {
    right: initial;
    left: 0;
}

#service .link a {
    width: 100%;
    height: 100%;
    text-align: center;
    color: #fff;
    font-weight: 700;
    font-size: min(20px, 1.6vw);
    letter-spacing: 0.25em;
    display: flex;
    align-items: center;
    justify-content: center;
    position: relative;
    z-index: 3;
}

#service .link a:after {
    content: '';
    width: 0.875em;
    height: 0.875em;
    background: url(../img/icon_arrow_white.png) center center no-repeat;
    background-size: contain;
    margin-left: 0.5em;
    position: relative;
    top: 0;
    right: 0;
    transition: all 0.5s;
}

#service .link:hover a:after {
    top: -0.2em;
    right: -0.2em;
}


@media (max-width: 750px) {
    #service {
        padding-top: 15vw;
        margin-top: 17.5vw;
        background-color: #fff;
        padding-bottom: 12vw;
    }

    #service .h2 {
        margin-bottom: 0.5em;
    }

    #service .item,
    #service .item:first-of-type {
        margin-bottom: -60vw;
    }

    #service .txt,
    #service .item:last-of-type .txt {
        height: initial;
        width: initial;
        padding-left: initial;
        display: block;
        padding: 10.6666vw 8vw 24vw 8.22666vw;
        padding-bottom: 10.6666vw;
        background-color: #fff;
        margin-left: 9.666vw;
    }

    #service .txt>.inner,
    #service .txt>.inner>.inner {
        width: initial;
        max-width: initial;
    }

    #service .txt h3 {
        margin-bottom: 7.5vw;
        position: relative;
        left: -7.2vw;
    }

    #service .item:last-of-type .txt h3 {
        margin-bottom: 9.5vw;
    }

    #service .txt h3 img {
        height: 3.86666vw;
    }

    #service .txt p {
        font-size: 3vw;
        line-height: 2.5;
    }

    #service .btn_wrapper {
        text-align: right;
    }


    #service .btn_link {
        margin-top: 4.5vw;
        width: 41.6vw;
    }

    #service .link {
        width: 90%;
        position: relative;
        top: -67vw;
        right: 0;
        height: 128vw;
    }

    #service .link a {
        font-size: 4vw;
        padding-top: 70vw;
    }

    #service .item, #service .item:first-of-type {
        pointer-events: none;
    }

    #service .btn_link,
    #service .link a {
        pointer-events: initial;
    }

}

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

NEWS

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

#news {
    padding-top: min(360px, 24vw);
    padding-bottom: min(160px, 11vw);
    max-width: min(1000px, 67vw);
    margin: 0 auto;
}

#news .h2 {
    width: min(280px, 19vw);
    line-height: 1;
    font-size: min(40px, 2.7vw);
}

#news .content {
    width: calc(100% - min(280px, 19vw));
}

#news .content>a {
    display: flex;
    padding: min(24px, 1.6vw) 0;
    border-bottom: 1px solid #E3E3E3;
}


#news .date {
    font-size: min(14px, 1.1vw);
    font-family: "Jost", sans-serif;
    font-optical-sizing: auto;
    font-weight: 400;
    font-style: normal;
    width: min(150px, 10vw);
    letter-spacing: 0.05em;
}

#news .ttl {
    font-size: min(16px, 1.2vw);
    font-weight: 400;
    letter-spacing: 0.05em;
    width: calc(100% - 150px);
}

#news .btn_wrapper {
    text-align: right;
    margin-top: min(30px, 2vw);
}

@media (max-width: 750px) {
    #news {
        padding: 15vw 10.66666vw 15vw;
        max-width: initial;
    }

    #news .h2 {
        width: initial;
        font-size: 7.46666vw;
        margin-bottom: 0.5em;
        position: relative;
        left: -0.875em;
    }

    #news .content {
        width: 100%;
    }

    #news .content>a {
        flex-direction: column;
        padding: 4.8vw 0;
    }

    #news .date,
    #news .ttl {
        font-size: 3.2vw;
        width: 100%;
    }

    #news .date {
        margin-bottom: 0.5em;
    }

    #news .btn_wrapper {
        margin: 5.3333vw 4vw 0;
    }
}

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

CONTACT

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

#contact {
    background-color: #fff;
    padding: min(60px, 4vw) 0 min(65px, 4.4vw);
}

#contact p {
    margin: min(15px, 1vw) 0 min(40px, 2.7vw);
    letter-spacing: 0.15em;
    line-height: 2;
    font-size: min(15px, 1.2vw);
}

#contact .h2 {
    font-size: min(40px, 2.7vw);
}

@media (max-width: 750px) {
    #contact {
        padding: 15vw 14.6666vw 17vw;
    }

    #contact .h2 {
        font-size: 8.53333vw;
    }

    #contact p {
        font-size: 3.2vw;
        margin: 1.25em 0 3em;
    }
}


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

下層ページ共通

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

#page_ttl,
.page_body main {
    background-color: #fff;
}

.page_body.form .main {
    background-color: #F5F5F5;
}


#page_ttl {
    padding-top: min(186px, 12.57vw);
    padding-bottom: min(120px, 8.1vw);
}

#page_ttl h2 {
    font-size: min(15px, 1.2vw);
    font-weight: 700;
    letter-spacing: 0.2em;
    text-align: center;
}

#page_ttl h2 span {
    font-size: min(40px, 2.7vw);
    display: block;
    font-family: "Jost", sans-serif;
    font-optical-sizing: auto;
    font-weight: 700;
    font-style: normal;
    letter-spacing: 0.15em;
    line-height: 1.75;
    margin: 0;
}

@media (max-width: 750px) {
    #page_ttl {
        padding-top: 24vw;
        padding-bottom: 16.4vw;
    }

    #page_ttl h2 {
        font-size: 3.46666vw;
    }

    #page_ttl h2 span {
        font-size: 6.4vw;
    }
}


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

会社概要

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

#company main>.inner {
    max-width: min(1000px, 67vw);
    margin: 0 auto;
}

#company .h3 {
    font-weight: 700;
    letter-spacing: 0.15em;
    background-color: #F5F5F5;
    font-size: min(18px, 1.4vw);
    padding: 0.375em 0.75em;
    margin-bottom: 1.6666em;
}

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

#sec_1

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

#company #sec_1 {
    margin-bottom: min(120px, 8vw);
}

#company #sec_1 dl {
    display: flex;
    flex-wrap: wrap;
}

#company #sec_1 dl dt,
#company #sec_1 dl dd {
    font-size: min(15px, 1.2vw);
    padding: 0.5em;
    letter-spacing: 0.1em;
}

#company #sec_1 dl dt {
    font-weight: 500;
    width: 20%;
    padding-left: 1em;
}

#company #sec_1 dl dd {
    width: 80%;
    margin: 0;
}

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

#sec_2

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

#company #sec_2 {
    padding-bottom: min(16vw, 236px);
}

#company #sec_2 .h3 {
    margin-bottom: min(80px, 5.4vw);
}

#company #sec_2 .item {
    align-items: end;
}

#company #sec_2 .item:not(:last-of-type) {
    margin-bottom: min(175px, 11.8vw);
}

#company #sec_2 .item:nth-of-type(2n) {
    flex-direction: row-reverse;
}

#company #sec_2 .item img {
    width: 48%;
    /* height: min(567px,38vw); */
    height: 35em;
    font-size: min(16px, 1.4vw);
}

#company #sec_2 .item .txt {
    width: 52%;
    background-color: #fff;
    padding: min(50px, 3.4vw) min(30px, 2vw);
    position: relative;
    left: max(-66px, -4.5vw);
}

#company #sec_2 .item:nth-of-type(2n) .txt {
    left: initial;
    right: max(-66px, -4.5vw);
}

#company #sec_2 .item .txt h4 {
    font-size: min(24px, 2vw);
    font-weight: 700;
    letter-spacing: 0.1em;
    margin-bottom: 0.675em;
}

#company #sec_2 .item .txt p {
    padding-left: min(50px, 3.4vw);
}

#company #sec_2 .item .txt h4+p {
    font-family: "Jost", sans-serif;
    font-optical-sizing: auto;
    font-weight: 400;
    font-style: normal;
    font-size: min(16px, 1.4vw);
    color: #598797;
    font-style: italic;
    margin-bottom: 3em;
}

#company #sec_2 .item .txt h4+p:before {
    content: '';
    width: calc(100% - 13em);
    height: 1px;
    display: inline-block;
    background-color: #598797;
    vertical-align: middle;
    margin-right: 1em;
}

#company #sec_2 .item .txt h4+p+p {
    font-size: min(15px, 1.2vw);
    line-height: 2.5;
    letter-spacing: 0.1em;
}

@media (max-width: 750px) {
    #company main>.inner {
        max-width: initial;
        margin: 0 5.3333vw;
    }

    #company .h3 {
        font-size: 3.73333vw;
    }


    #company #sec_1 {
        margin-bottom: 13.333vw;
    }

    #company #sec_1 dl dt,
    #company #sec_1 dl dd {
        font-size: 3.46666vw;
    }

    #company #sec_1 dl dt {
        padding-left: 0.875em;
    }

    #company #sec_2 {
        padding-bottom: 3vw;
    }

    #company #sec_2 .h3 {
        margin-bottom: 2.25em;
    }

    #company #sec_2 .item {
        align-items: start;
    }

    #company #sec_2 .item:not(:last-of-type) {
        margin-bottom: 2vw;
    }

    #company #sec_2 .item img {
        height: 77.3333vw;
        width: 66.1333vw;
    }

    #company #sec_2 .item .txt {
        width: 72.8vw;
        margin-right: 0;
        margin-left: auto;
        padding: 4.2666vw 5.3333vw;
        left: initial;
        right: initial;
        top: -18.6666vw;
    }

    #company #sec_2 .item .txt h4 {
        font-size: 4.26666vw;
    }

    #company #sec_2 .item .txt h4+p {
        font-size: 2.666vw;
    }

    #company #sec_2 .item .txt h4+p+p {
        font-size: 3.2vw;
        line-height: 2;
    }

    #company #sec_2 .item:last-of-type img {
        margin-right: 0;
        margin-left: auto;
    }

    #company #sec_2 .item:last-of-type .txt {
        margin-left: 0;
    }
}


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

サービス

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

#page_service .ttl_box {
    position: relative;
    max-width: min(1480px, 100vw);
    margin: 0 auto min(140px, 9.5vw);
}

#page_service section>.content {
    max-width: min(1000px, 67vw);
    margin: 0 auto;
}

#page_service .h3 {
    height: min(372px, 25vw);
    background: url(../img/main1.jpg) center center no-repeat;
    background-size: cover;
    display: flex;
    align-items: center;
    padding-left: min(12.57vw, 186px);
}

#page_service #sec_2 .h3 {
    background-image: url(../img/main2.jpg);
}

#page_service .h3 img {
    height: min(35px, 2.36vw);
    object-fit: contain;
    object-position: left;
}

#page_service .ttl_box p {
    color: #fff;
    font-size: min(20px, 1.6vw);
    font-weight: 700;
    display: inline-block;
    position: absolute;
    right: 2em;
    bottom: -1em;
}

#page_service .ttl_box p:nth-of-type(2) {
    display: none;
}

#page_service .ttl_box p span {
    background-color: #000;
    padding: 0.25em 0.25em;
    display: inline-block;
    letter-spacing: 0.2em;
}

#page_service .ttl_box p span:not(:last-of-type) {
    margin-bottom: 0.5em;
}

#page_service .note {
    border: 1px solid #2D2D2D;
    padding: min(2vw, 30px) min(3.4vw, 50px);
}

#page_service .note h5 {
    text-align: center;
    font-size: min(16px, 1.4vw);
    font-weight: 700;
    margin-bottom: 2.5em;
    letter-spacing: 0.1em;
}

#page_service .note dl dt,
#page_service .note dl dd,
#page_service .note ul li {
    font-size: min(14px, 1.1vw);
    letter-spacing: 0.05em;
    color: #2D2D2D;
}

#page_service .note dl {
    display: flex;
    flex-wrap: wrap;
}

#page_service .note dl dt {
    width: 20%;
    font-weight: 500;
}

#page_service .note dl dt:first-of-type,
#page_service .note ul li:not(:last-of-type) {
    margin-bottom: 1.25em;
}

#page_service .note ul li {
    position: relative;
    padding-left: 1em;
}

#page_service .note ul li:before {
    content: '-';
    position: absolute;
    top: 0;
    left: 0;
}

#page_service .note dl dd {
    width: 80%;
}

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

#sec_1

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

#page_service #sec_1,
#page_service #sec_2 {
    padding-bottom: min(180px, 12.2vw);
}

#page_service #sec_1 .item {
    width: 50%;
}

#page_service #sec_1 h4 {
    font-weight: 700;
    font-size: min(13px, 1.1vw);
    margin-bottom: 1.5em;
}

#page_service #sec_1 h4 span {
    font-size: 2.25em;
    margin-left: 0.25em;
}

#page_service #sec_1 .content>.flex {
    padding: 0 min(75px, 5vw);
    /* padding-bottom: min(100px,26.666vw); */
    /* margin-bottom:  min(100px,26.666vw); */
    margin-bottom: 5em;
    padding-bottom: 5em;
    font-size: min(20px, 1.6vw);
}

#page_service #sec_1 .item>p {
    font-size: min(15px, 1.2vw);
    line-height: 2.8;
    letter-spacing: 0.1em;
    white-space: nowrap;
}

#page_service #sec_1 .item:last-of-type {
    position: relative;
    /* top: min(100px,26.666vw); */
    font-size: min(20px, 1.6vw);
    top: 5em;
}

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

#sec_2

---------------------------------------- */
#page_service #sec_2 .content>p {
    font-size: min(20px, 1.6vw);
    font-weight: 700;
    line-height: 2.3;
    text-align: center;
    margin-bottom: 6em;
    letter-spacing: 0.2em;
}

@media (max-width: 750px) {
    #page_service .h3 {
        height: 60.6666vw;
        padding-left: 0;
    }

    #page_service .h3 img {
        height: 6.1333vw;
        object-position: center;
    }

    #page_service .ttl_box {
        margin-bottom: 13.3333vw;
    }

    #page_service .ttl_box p {
        font-size: 3.7333vw;
        right: initial;
        left: 1em;
        position: relative;
        bottom: initial;
        top: -1em;
    }

    #page_service .ttl_box p:first-of-type {
        display: none;
    }

    #page_service .ttl_box p:nth-of-type(2) {
        display: inline;
    }

    #page_service section>.content {
        max-width: initial;
        margin: 0 5.3333vw;
    }

    #page_service .note {
        padding: 4vw 5.3333vw;
    }

    #page_service .note h5 {
        font-size: 3.73333vw;
        margin-bottom: 1em;
    }

    #page_service .note dl {
        flex-direction: column;
    }

    #page_service .note dl dt,
    #page_service .note dl dd,
    #page_service .note ul li {
        font-size: 3vw;
        line-height: 2;
    }

    #page_service .note dl dt,
    #page_service .note dl dd {
        width: 100%;
    }

    #page_service .note dl dt:first-of-type,
    #page_service .note ul li:not(:last-of-type) {
        margin-bottom: 0;
    }

    #page_service .note ul li:not(:last-of-type) {
        margin-bottom: 3vw;
    }

    #page_service .note dl dd:first-of-type {
        margin-bottom: 3vw;
    }

    #page_service #sec_1,
    #page_service #sec_2 {
        padding-bottom: 20vw;
    }

    #page_service #sec_1 .content>.flex {
        padding: 0;
    }

    #page_service #sec_1 h4 {
        font-size: 2.666vw;
    }

    #page_service #sec_1 h4 span {
        font-size: 5.333vw;
    }

    #page_service #sec_1 .item>p {
        font-size: 3.4666vw;
    }

    #page_service #sec_1 .item:last-of-type {
        top: 0;
        left: 25.0666vw;
        width: calc(100% - 25.0666vw) !important;
    }

    #page_service #sec_1 .item:first-of-type {
        margin-bottom: 10.666vw;
        position: relative;
        left: 6vw;
    }

    #page_service #sec_1 .item>p {
        white-space: initial;
    }

    #page_service #sec_1 .content>.flex {
        margin-bottom: 16vw;
    }

    #page_service #sec_2 .content>p {
        font-size: 3.73333vw;
    }

    #page_service #sec_2 .content>p {
        margin-bottom: 5em;
    }
}

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

フォーム共通

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

body.form form,
body.form input,
body.form dt,
body.form dd,
body.form h4,
body.form p,
body.form button,
body.form div {
    color: #000;
    letter-spacing: 0.05em;
    font-family: "Noto Sans JP", sans-serif;
    font-optical-sizing: auto;
    font-weight: 400;
    font-style: normal;
}

body.form form dl {
    display: flex;
    flex-wrap: wrap;
    background-color: #fff;
    max-width: min(1000px, 67vw);
    margin: 0 auto min(120px, 8vw);
}

body.form form dl dt,
body.form form dl dd {
    padding: 0 1.25em;
    display: flex;
    align-items: center;
    border-bottom: 1px solid #DFDFDF;
}

body.form form dl dt:last-of-type,
body.form form dl dd:last-of-type {
    border-bottom: none;
}

body.form form dl dt {
    width: 27%;
    border-right: 1px solid #DFDFDF;
    position: relative;
}

body.form form dl dt,
body.form form dl dd,
body.form form dl dt p,
body.form form dl dd p {
    font-size: min(16px, 1.4vw);
    margin: 0;
}

body.form form dl dt p {
    font-weight: 500;
}

body.form form dl dt.need:before {
    content: '必須';
    position: absolute;
    right: 1em;
    top: 50%;
    transform: translateY(-50%);
    font-size: min(12px, 1vw);
    color: #fff;
    background-color: #DE5241;
    font-weight: 700;
    padding: 0 0.375em;
    border-radius: 1em;
    display: block;
    line-height: 1.5;
}

body.form form dl dd {
    width: 73%;
    padding: 1.875em;
}

body.form form dl dd>.inner {
    width: 100%;
}

body.form form {
    padding-top: min(120px, 8.1vw);
}

/* placeholder] */
body.form ::placeholder {
    color: #A5A5A5;
    font-size: min(15px, 1.1vw);
}


/* 枠のスタイル */
body.form form .frame_style {
    width: 18.75em;
    background-color: #F7F7F7;
    border: 1px solid #DFDFDF;
    height: 3.125em;
    padding: 0.25em 0.5em !important;
    font-size: min(16px, 1.4vw);
    box-shadow: none;
}

/* 送信ボタン */
body.form input[type="submit"] {
    background-color: #2D2D2D;
    color: #fff;
    width: 18.75em;
    border: none;
    padding: 1em 0;
    font-size: min(16px, 1.4vw);
    margin: min(100px, 6.76vw) auto 0;
    display: block;
    border-radius: 0;
    line-height: 1.75;
    font-weight: 500;
}

.wpcf7 form.invalid .wpcf7-response-output,
.wpcf7 form.unaccepted .wpcf7-response-output,
.wpcf7 form.payment-required .wpcf7-response-output {
    font-size: min(16px, 1.4vw);
    /* text-align: center; */
    max-width: min(1000px, 67vw);
    margin-right: auto;
    margin-left: auto;
    border: none;
    color: #DC2626;
    padding: 0;
}

.wpcf7 .wpcf7-not-valid-tip {
    font-size: min(14px, 1.1vw);
}

.entry-content[ast-blocks-layout]>* {
    max-width: initial;
}


@media (max-width: 750px) {
    body.form form dl {
        flex-direction: column;
        max-width: initial;
        margin-bottom: 0;
    }

    body.form form dl dt,
    body.form form dl dd {
        width: 100%;
        border: none;
    }

    body.form form dl dt,
    body.form form dl dd,
    body.form form dl dt p,
    body.form form dl dd p {
        font-size: 3.73333vw;
    }

    body.form form dl dt {
        background-color: #f2f2f2;
        padding: 0.5em 1.25em;
    }

    body.form form dl dd {
        padding: 2em 1.25em;
    }

    body.form form dl dt.need:before {
        content: '※必須';
        font-size: 2.66666vw;
        background-color: transparent;
        color: #DE5241;
        right: 1.52em;
    }

    body.form ::placeholder {
        font-size: 3.2vw;
    }

    body.form form .frame_style {
        font-size: 3.73333vw;
        background-color: #fff;
        height: 2.5em;
        width: 100%;
    }

    body.form input[type="submit"] {
        font-size: 3.733333vw;
        margin-top: 2em;
        padding: 1.25em 0;
    }

    .wpcf7 form.invalid .wpcf7-response-output,
    .wpcf7 form.unaccepted .wpcf7-response-output,
    .wpcf7 form.payment-required .wpcf7-response-output {
        font-size: 3.733333vw;
        max-width: initial;
        margin-right: 5.3333vw;
        margin-left: 5.3333vw;
    }

    .wpcf7 .wpcf7-not-valid-tip {
        font-size: 3vw;
    }
}


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

お問い合わせページ

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

#page_contact form {
    border-bottom: min(30px, 2vw) solid #fff;
    padding-bottom: min(120px, 8vw);
    border-left: min(30px, 2vw) solid #fff;
    border-right: min(30px, 2vw) solid #fff;
}

#page_contact form .form01 .frame_style,
#page_contact form .form03 .frame_style {
    width: 30em;
    max-width: 100%;
}

#page_contact form .form05 .frame_style {
    width: 100%;
    height: 15em;
}

#page_contact .note {
    max-width: min(1000px, 67vw);
    margin: 0 auto;
}

#page_contact .note h4 {
    font-weight: 700;
    font-size: min(16px, 1.4vw);
    letter-spacing: 0.15em;
    margin-bottom: 0;
    line-height: 1.75;
}

#page_contact .note h4+p {
    font-size: min(13px, 1.1vw);
    margin-bottom: 0;
    line-height: 1.75;
}

@media (max-width: 750px) {
    #page_contact form {
        padding-top: 0;
        border: none;
        padding-bottom: 20vw;
    }

    #page_contact form dl {
        margin-bottom: 5vw;
    }

    #page_contact .note {
        max-width: initial;
        margin: 0 5.3333vw;
    }

    #page_contact .note h4 {
        font-size: 3.73333vw;
        margin-bottom: 0.5em;
    }

    #page_contact .note h4+p {
        font-size: 3vw;
    }

    #page_contact .note input[type="submit"] {
        margin-top: 4em;
    }

    #page_contact form .form05 .frame_style {
        height: 10em;
    }
}


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

特注依頼ページ

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

#original #page_ttl {
    padding-bottom: min(42px, 2.84vw);
}

#original #page_ttl h2 img {
    height: min(40px, 2.7vw);
    object-fit: contain;
    margin-bottom: min(84px, 5.67vw);
}

#original #page_ttl .txt p {
    line-height: 2.8;
    font-size: min(15px, 1.2vw);
    letter-spacing: 0.15em;
}

#original #page_ttl .txt p:not(:last-of-type) {
    margin-bottom: 1em;
}

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

フォーム全体

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

#original main {
    background-color: #F5F5F5;
    border: min(30px, 2vw) solid #fff;
    border-bottom: none;
}

#original form>img {
    max-width: min(1000px, 67vw);
    margin: 0 auto;
}

#original form h3 {
    max-width: min(1000px, 67vw);
    margin: min(120px, 8vw) auto 0;
    background-color: #2D2D2D;
    color: #fff;
    font-size: min(18px, 1.4vw);
    font-weight: 700;
    letter-spacing: 0.1em;
    padding: 0.125em 0.5em;
    border-radius: 1em 1em 0 0;
}

/* アラート */
#original .alert {
    font-size: min(14px, 1.1vw);
    color: #DE5241;
    padding: 1em 2em;
    border: 2px solid #DE5241;
    background-color: #FDF0EF;
    max-width: min(1000px, 67vw);
    margin: 5em auto;
    margin-bottom: -4em;
}

@media (max-width: 750px) {
    #original main {
        background-color: #fff;
    }
    #original .alert {
        max-width: initial;
        font-size: 3vw;
        border: 1px solid #DE5241;
        padding: 0.75em 1em;
    }
}

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

input,select

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

#original form select:disabled {
    opacity: 1;
} 

#original option:disabled {
    color: #bbb;
}

/* サイズ画像 */
#original form .form04 .inner {
    display: flex;
    align-items: center;
}

#original form .form04 .frame_style {
    margin-right: 2em;
}

#original form .img_size {
    /* height: 8.75em; */
    height: 12em;
    /* width: auto; */
    width: 12em;
    object-fit: contain;
    object-position: left bottom;
}

.bl_selectCont {
    display: none;
}

/* .is_activeが付与されたらコンテンツを表示 */
.bl_selectCont.is_active {
    display: revert;
}


/* ラジオボタン */
#original form .radio-box label {
    width: 15em;
    display: inline-block;
    position: relative;
}

#original form .radio_btn {
    margin-right: 0.5em;
}

#original form .radio-box .img:after {
    content: '';
    display: inline-block;
    background: url(../img/form_square.png) left center no-repeat;
    background-size: contain;
    width: 3.125em;
    height: 2.625em;
    position: absolute;
    right: 6.5em;
    top: 50%;
    transform: translateY(-50%);
}

#original form .radio-box .img.tate:after {
    background-image: url(../img/form_tate.png);
    width: 3.125em;
    height: 3.125em;
}

#original form .radio-box .img.yoko:after {
    background-image: url(../img/form_yoko.png);
    width: 3.125em;
    height: 2.1875em;
}

/* 色選択のラジオボタン */

#original form .color-box input[type=radio] {
    display: none;
}

#original form .color-box label {
    text-align: center;
    display: inline-block;
    font-size: min(12px, 1vw);
    letter-spacing: 0;
    font-weight: 400;
    width: 4em;
    white-space: nowrap;
    position: relative;
    z-index: 5;
}

#original form .color-box label:before {
    content: '';
    width: 2.5em;
    height: 2.5em;
    display: block;
    background-color: #000;
    border-radius: 50%;
    margin: 0 auto;
    position: relative;
    z-index: 2;
}

#original form .color-box label:nth-of-type(1):before {
    background-color: #fff;
    outline: 1px solid #BBBBBB;
}

#original form .color-box label:nth-of-type(3):before {
    background-color: #BBBBBB;
}

#original form .color-box label:nth-of-type(4):before {
    background-color: #D32020;
}

#original form .color-box label:nth-of-type(5):before {
    background-color: #FD8319;
}

#original form .color-box label:nth-of-type(6):before {
    background-color: #FFD207;
}

#original form .color-box label:nth-of-type(7):before {
    background-color: #A7F281;
}

#original form .color-box label:nth-of-type(8):before {
    background-color: #4FA436;
}

#original form .color-box label:nth-of-type(9):before {
    background-color: #A8DCF0;
}

#original form .color-box label:nth-of-type(10):before {
    background-color: #2385E7;
}

#original form .color-box label:nth-of-type(11):before {
    background-color: #886AE4;
}

#original form .color-box label:nth-of-type(12):before {
    background-color: #9C6F51;
}

#original form .color-box input[type="radio"]:checked+label:after {
    content: '';
    width: 3.25em;
    height: 3.25em;
    display: block;
    border-radius: 50%;
    border: 1px solid #005CC8;
    position: absolute;
    left: 50%;
    transform: translateX(-50%);
    top: -0.375em;
    z-index: 1;
}

#original form .color-sonota {
    padding-left: 0.75em;
    font-size: min(16px, 1.4vw);
    margin-top: 2em;
    display: flex;
    align-items: center;
    white-space: nowrap;
}

#original form .color-sonota label {
    margin-right: 1em;
}

#original form .color-sonota .frame_style {
    width: 100%;
}

/* 技法、テーマ、利用目的のテキスト入力 */

#original form dl .form08 input[type="text"],
#original form dl .form09 input[type="text"],
#original form dl .form10 input[type="text"] {
    width: 100%;
    margin-top: 1em;
}

#original form dl .form11 textarea {
    width: 100%;
    height: 10em;
}

/* ファイル選択 */

#original form dl .form06 {
    flex-direction: column;
    align-items: start;
}
#original form input[type="file"] {
    font-size: min(16px, 1.4vw);
}

#original form input[type="file"]:not(:last-of-type) {
    margin-bottom: 0.5em;
}

/* 価格 */

#priceSelect {
    border: none;
    background-color: transparent;
    font-weight: 500;
    appearance: none;
    background-image: none;
}

#original .form02 input[type="radio"]:disabled + label {
    color: #bbb;
} 

#original .form13 .frame_style {
    width: 30em;
}


@media (max-width: 750px) {
    .page_body.form main {
        background-color: #fff;
    }

    #original #page_ttl {
        padding-bottom: 14.93333vw;
    }

    #original #page_ttl h2 img {
        height: 5.86666vw;
        margin-bottom: 10.666vw;
    }

    #original #page_ttl .txt p {
        font-size: 2.93333vw;
        line-height: 1.9;
    }

    #original #page_ttl .txt p:not(:last-of-type) {
        margin-bottom: 1.5em;
    }

    #original form {
        padding-top: 0;
        margin: 0;
    }

    #original form>img {
        max-width: 82vw;
    }

    #original form h3 {
        margin-top: 16vw;
        max-width: initial;
        border-radius: 0;
        font-size: 3.73333vw;
        padding: 0.75em 0.75em;
        text-align: center;
    }

    #original form dl dd.form01,
    #original form dl dd.form02,
    #original form dl dd.form03 {
        padding: 1em 1.25em;
    }

    #original form .radio-box label {
        line-height: 3;
    }

    #original form .radio-box .img:after {
        margin-left: 1em;
        height: 8vw;
    }

    #original form .radio-box .img.tate:after {
        height: 10vw;
    }

    #original form .radio-box .img.yoko:after {
        height: 8vw;
    }

    #original form .form04 .inner {
        flex-direction: column;
        align-items: start;
    }

    #original form .img_size {
        margin-top: 5vw;
        /* height: auto;
        width: 10em; */
        width: 10em;
        height: 10em;
    }

    #original form input[type="file"],
    #original form .color-sonota {
        font-size: 3.73333vw;
    }

    #original form .color-box label {
        font-size: 3.2vw;
    }

    #original form .form04 .frame_style {
        margin-right: 0;
    }

    #original .form13 .frame_style {
        width: 100%;
    }

}


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

注意事項

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

#original .note {
    background-color: #fff;
    padding: min(100px, 6.75vw) 0 min(120px, 8.1vw);
}

#original .note>.inner {
    max-width: min(1000px, 67vw);
    margin: 0 auto;
    font-size: min(16px, 1.4vw);
    padding: 0 4em;
}

#original .note h4 {
    letter-spacing: 0.15em;
    font-weight: 700;
    font-size: min(16px, 1.4vw);
    text-align: center;
    padding: 0.75em 0;
    border-bottom: 1px solid #2D2D2D;
    color: #2D2D2D;
    margin-bottom: 2.5em;
}

#original .note ul li {
    font-size: min(15px, 1.2vw);
    line-height: 2;
    position: relative;
    padding-left: 1em;
    color: #2D2D2D;
}

#original .note ul li:before {
    content: '-';
    position: absolute;
    left: 0;
}

#original .note ul li:not(:last-of-type) {
    margin-bottom: 1.5625em;
}

#original .note label {
    border: 1px solid #2D2D2D;
    font-size: min(15px, 1.2vw);
    padding: 1em;
    display: block;
    background-color: #F5F5F5;
    margin-top: 3.125em;
    font-weight: 500;
    color: #2D2D2D;
}

#original .note label input {
    margin-right: 0.5em;
}


@media (max-width: 750px) {

    #original .note {
        padding-bottom: 20vw;
    }

    #original .note>.inner {
        max-width: initial;
        margin: 0 5.3333vw;
        padding: 0 2em;
    }

    #original .note h4 {
        font-size: 3.73333vw;
        margin-bottom: 1.5em;
    }

    #original .note ul li {
        font-size: 3vw;
    }

    #original .note label {
        font-size: 3.2vw;
    }

    #original .note ul li:not(:last-of-type) {
        margin-bottom: 0.75em;
    }
}

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

確認画面

---------------------------------------- */
#original #footer {
    border-top: min(30px, 2vw) solid #fff;
}

#original #btn_wrapper {
    display: flex;
    justify-content: space-around;
    max-width: min(1000px, 67vw);
    margin: 0 auto;
    padding-bottom: 10em;
}
#original #btn_wrapper input[type="submit"] {
   margin: 0;
}

@media (max-width: 750px) {
    #original #btn_wrapper {
        max-width: initial;
        background-color: #fff;
        padding-bottom: 6em;

    }

    #original #btn_wrapper input[type="submit"]:first-of-type {
        margin-right: 1em;
     }

     #original #btn_wrapper input[type="submit"] {
        padding: 1em 0;
     }
}

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

ニュース

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

#page_news dl {
    max-width: min(1000px, 67vw);
    margin: 0 auto;
    display: flex;
    flex-wrap: wrap;
    padding-bottom: min(180px, 12.2vw);
}

#page_news dl dt,
#page_news dl dd {
    font-size: min(16px, 1.4vw);
    height: 5em;
    display: flex;
    align-items: center;
    border-bottom: 1px solid #E3E3E3;
}

#page_news dl dt {
    width: 15%;
    font-family: "Jost", sans-serif;
    font-weight: 400;
    font-style: normal;
}

#page_news dl dd {
    width: 85%;
}

#page_news dl dd a {
    text-decoration: underline;
}

@media (max-width: 750px) {

    #page_news dl {
        max-width: initial;
        margin: 0 10vw;
        padding-bottom: 20vw;
    }

    #page_news dl dt,
    #page_news dl dd {
        width: 100%;
        font-size: 3.733333vw;
    }

    #page_news dl dt {
        border-bottom: none;
        height: auto;
        padding: 2em 0 0;
        margin-bottom: 0.5em;
    }

    #page_news dl dd {
        height: auto;
        padding: 0 0 2em;
    }
}

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

記事

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

#single main {
    padding: min(186px, 12.57vw) 0;

}

#single main>.inner {
    max-width: min(840px, 56.76vw);
    margin: 0 auto;
}

#single main h3 {
    font-size: min(18px, 1.4vw);
    font-weight: 700;
    letter-spacing: 0.1em;
    margin-bottom: 1.25em;
}

#single main p.date {
    font-size: min(14px, 1.1vw);
    font-weight: 400;
    margin-bottom: 5em;
}

#single main p.date span {
    font-family: "Jost", sans-serif;
    font-optical-sizing: auto;
    font-weight: 400;
}

#single main .content p {
    font-size: min(16px, 1.2vw);
    font-weight: 400;
    letter-spacing: 0.05em;
}

@media (max-width: 750px) {

    #single main {
        padding: 20vw 0;
    }

    #single main>.inner {
        max-width: initial;
        margin: 0 10vw;
    }

    #single main h3 {
        font-size: 4vw;
    }

    #single main p.date {
        font-size: 3.2vw;
    }


    #single main .content p {
        font-size: 3.7333vw;
    }
}


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

商品一覧 SHOP

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

#shop .main {
    background-color: #F5F5F5;
    padding-top: min(60px, 4vw);
    padding-bottom: min(120px, 8.1vw);
    border-bottom: min(30px, 2vw) solid #fff;
    border-left: min(30px, 2vw) solid #fff;
    border-right: min(30px, 2vw) solid #fff;
}

#shop .main>.inner {
    max-width: min(1480px, 100vw);
    margin: 0 auto;
    padding: 0 min(30px, 2vw);
}

#shop .custom-product-item {
    padding: 0;
}

#shop .custom-product-grid {
    gap: 15px;
}

#shop .custom-product-item img {
    height: min(520px, 35vw);
    object-fit: contain;
    background-color: #fff;
    border: min(20px, 1.35vw) solid #fff;
}

#shop .custom-product-grid {
    margin-bottom: min(60px, 4vw);
}

#shop button#loadMore {
    background-color: #2D2D2D;
    color: #fff;
    border-radius: 0;
    width: 18.75em;
    border: none;
    padding: 1em 0;
    font-size: min(16px, 1.4vw);
    line-height: 1.75;
    font-weight: 500;
    font-family: "Jost", sans-serif;
    font-style: normal;
    letter-spacing: 0.05em;
}

#shop .custom-product-filters {
    padding: 0;
    display: flex;
    justify-content: space-between;
    margin-bottom: min(40px, 2.7vw);
}

#shop .custom-product-filters>.left {
    display: flex;
    justify-content: start;
}

#shop .custom-product-filters>.left select:not(:last-of-type) {
    margin-right: 0.875em;
}

#shop .custom-product-filters select {
    width: 12.5em;
    font-size: min(14px, 1.1vw);
    font-weight: 700;
    color: #616161;
    border: 2px solid #fff;
    border-radius: 3em;
    background-color: transparent;
    height: 2.5em;
    padding: 0 0.75em;
    cursor: pointer;
    /* appearance: menulist; */
    background: url(../img/icon_arrow_dwn.png) calc( 100% - 0.875em ) center no-repeat;
    background-size: 1em;
    box-shadow: none;
}

#shop .custom-product-filters select.current {
    background-color: #fff;
}

#shop .custom-product-filters select#sortOrder {
    margin: 0;
    padding: 0;
    /* width: initial; */
    width: 7.25em;
    border: none;
    border-radius: 0;
    text-align: right;
    padding-right: 2.25em;
}

#shop .custom-product-item h2 {
    font-size: min(16px, 1.4vw) !important;
    margin-top: 1em;
    margin-bottom: 2em;
    font-family: "Noto Sans JP", sans-serif;
    font-weight: 500;
}

#shop .out-of-stock-overlay {
    background-color: rgba(0, 0, 0, 0.4);
    color: rgba(255, 255, 255, 0.5) !important;
}


@media (max-width: 750px) {
    #shop #footer {
        border-top: 3.5vw solid #fff
    }

    #shop .main {
        border: none;
    }

    #shop .main>.inner {
        padding: 0;
        margin: 0 5.3333vw;
    }

    #shop .custom-product-filters>.left {
        flex-wrap: wrap;
    }

    #shop .custom-product-filters {
        align-items: end;
        flex-direction: column;
    }

    #shop .custom-product-filters select {
        font-size: 3.2vw;
    }

    #shop .custom-product-grid {
        /* grid-template-columns: repeat(1, auto); */
        grid-template-columns: repeat(2, auto);
    }

    #shop .custom-product-item img {
        height: 56.666vw;
    }

    #shop .custom-product-item h2 {
        font-size: 3.73333vw !important;
        margin-bottom: 1em;
    }

    #shop .custom-product-filters select {
        width: 50%;
        height: 3em;
        margin: 2px 0;
    }

    #shop .custom-product-filters>.left select:not(:last-of-type) {
        margin-right: 0;
    }

    #shop .custom-product-filters select#sortOrder {
        width: 7em;
        height: auto;
        box-shadow: none;
    }

    #shop .um {
        background-color: transparent;
    }

    #shop button#loadMore {
        font-size: 3.733333vw;
        padding: 1.25em 0;
        margin-top: 2em;
    }
}



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

マイアカウント、カート、支払い情報

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


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

サンクスページ

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

/* body.thanks main {
    padding: 100px 0;
}

body.thanks main p {
    text-align: center;
}

body.thanks p.txt {
    text-align: center;
    font-size: 18px;
    font-weight: 700;
    line-height: 1.75;
    letter-spacing: 0.1em;
    margin-bottom: 4.5em;
} */

#thanks {
    background-color: #fff!important;
    padding: 100px 0;

}

#thanks a.button {
    background-color: #000;
    color: #fff;
    display: block;
    margin-left: 0;
    width: 250px;
    font-size: 16px;
    text-align: center;
    padding: 1em 0;
    font-weight: 700;
    margin: 0 auto !important;
}

#thanks  bdi,
#thanks bdi span {
    font-family: "Jost", sans-serif;
    font-optical-sizing: auto;
    font-weight: 700;
    font-size: 32px;
    margin-bottom: 0.5em;
    letter-spacing: 0;
}

@media (max-width: 1000px) {
    /* body.thanks main {
        padding: 60px 0;
    }

    body.thanks p.txt {
        font-size: 16px;
        margin-bottom: 3em;
    } */

    .note_thanks {
        text-align: left;
    }
}


/* 
#original form .radio-box label {
    width: initial;
}

#original form .radio-box .img:after {
    display: none;
}

#original form .radio-box input[readonly="readonly"],
#original form .radio-box input[readonly="readonly"] + label {
    pointer-events: none;
    opacity: 0.5;
} */
/* 
#original form .form04 #size1,
#original form .form04 #size2,
#original form .form04 #size3 {
    display: none;
}

#original form .form04 #size1.active,
#original form .form04 #size2.active,
#original form .form04 #size3.active {
    display: block;
} */

/* 
#canvas[type='radio']:checked + label + input,
#canvas[type='radio']:checked + label + input + label  {
    pointer-events: none;
    opacity: 0.5;
} */


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

  fadeUp

--------------------*/
/* fadeUp */
.fadeUp{
    animation-name:fadeUpAnime;
    animation-duration:1s;
    animation-fill-mode:forwards;
    opacity:0;
}

@keyframes fadeUpAnime{
    from {
    opacity: 0;
    transform: translateY(100px);
    }

    to {
    opacity: 1;
    transform: translateY(0);
    }
}
/* スクロールをしたら出現する要素にはじめに透過0を指定　*/
.fadeUpTrigger{
    opacity: 0;
}
