@charset "UTF-8";
html {
    /*scroll-behavior: smooth;*/
    font-size: 62.5%;
    /* font-size 1em = 10px on default browser settings */
}
body {
    width: 100%;
    overflow-x: hidden;
}
*,
*::before,
*::after {
    box-sizing: border-box;
}

.sakuhin,
.kaimono {
    max-width: 1100px;
    margin: 0 auto;
}
p {
    font-size: 1.6rem;
    color: #333;
    font-family: "Noto Serif JP", serif;
    font-weight: 300;
    writing-mode: vertical-rl;
    -ms-writing-mode: tb-rl;
    letter-spacing: 0.2px;
    line-height: 150%;
}
@media screen and (max-width: 1023px) {
    .pc {
        display: none;
    }
}
@media screen and (min-width: 1024px) {
    .pc {
        display: block;
    }
}
.title {
    display: flex;
    justify-content: center;
}
/* header */
#slider {
    width: 100%;
    height: 100vh; /*スライダー全体の縦幅を画面の高さいっぱい（100vh）にする Fallback*/
    min-height: calc(var(--vh, 1vh) * 100); /*ios safari用*/
    position: relative;
}

header h1 {
    color: #fff;
    writing-mode: vertical-rl;
    -ms-writing-mode: tb-rl;
    margin: 0 45%;
    padding-top: 35vh;
    font-family: "Noto Serif JP", serif;
    font-size: 8vw;
    font-weight: 600;
    text-shadow: 2px 2px 5px #444;
    letter-spacing: 2px;
    line-height: 1;
}
header h1 > span {
    font-size: 4vw;
    font-weight: 300;
    letter-spacing: 1px;
}
@media screen and (min-width: 768px) and (max-width: 1023px) {
    header h1 {
        font-size: 5vw;
        margin: 0 48%;
    }
    header h1 > span {
        font-size: 2vw;
    }
}
@media screen and (min-width: 1024px) {
    header h1 {
        font-size: 3vw;
        margin: 0 48%;
    }
    header h1 > span {
        font-size: 1.5vw;
    }
}
/* //header */

/* .copy */
.copy {
    width: 100vw;
    overflow-x: hidden;
}
.copy-text {
    display: flex;
    flex-direction: row-reverse;
    justify-content: center;
    margin-top: 80px;
    margin-bottom: 80px;
}
.copy p {
    display: inline;
    font-size: 2rem;
    letter-spacing: 2px;
}
.copy_anime {
    min-height: 40vh;
}
.keitodama {
    width: 10vw;
    transform: rotatex(30deg);
}
.neruneko {
    width: 35vw;
}

.keitodamamove {
    animation-name: korokorotama;
    animation-duration: 3s;
    animation-delay: -0.8s;
    animation-fill-mode: forwards;
    animation-timing-function: linear;
}
@keyframes korokorotama {
    0% {
        transform: translate(0vw, 0%) rotate(30deg);
    }

    25% {
        transform: translate(25vw, 5vh) rotate(40deg);
    }
    30% {
        transform: translate(35vw, 10vh) rotate(30deg);
    }

    50% {
        transform: translate(60vw, 10vh) rotate(40deg);
    }

    75% {
        transform: translate(90vw, 10vh) rotate(30deg);
    }
    100% {
        transform: translate(110vw, 15vh) rotate(20deg);
    }
}

.nerunekomove {
    animation-name: korokoro;
    animation-duration: 5.5s;
    animation-fill-mode: forwards;
    animation-timing-function: linear;
}

@keyframes korokoro {
    0% {
        transform: translate(-50vw, 0vh);
    }

    25% {
        transform: translate(10vw, 10vh) rotate(0deg);
    }
    30% {
        transform: translate(20vw, 5vh) rotate(-5deg);
    }

    50% {
        transform: translate(40vw, 5vh) rotate(5deg);
    }

    75% {
        transform: translate(60vw, 10vh) rotate(0deg);
    }
    100% {
        transform: translate(150vw, 15vh) rotate(20deg);
    }
}
@media screen and (min-width: 1024px) {
    .copy_anime {
        min-height: 70vh;
    }
}

/* //.copy */
/* .sakuhin */
.sakuhin {
    max-width: 1000px;
    margin: 0 auto;
}

.sakuhin h2 {
    font-size: 2.8rem;
    color: #96c0d0;
    font-family: "Noto Serif JP", serif;
    font-weight: 600;
    writing-mode: vertical-rl;
    -ms-writing-mode: tb-rl;
    letter-spacing: 3px;
    margin: 30px auto;
}

.sakuhin img {
    width: 100%;
    object-fit: contain;
}
.sakuhin-text {
    display: flex;
    flex-direction: row-reverse;
    height: 230px;
    margin-top: 30px;
    margin-bottom: 30px;
    margin-right: 20px;
}
.sakuhin-text h3 {
    font-size: 2rem;
    color: #333;
    font-family: "Noto Serif JP", serif;
    font-weight: 400;
    writing-mode: vertical-rl;
    -ms-writing-mode: tb-rl;
    letter-spacing: 1.5px;
}
.sakuhin-text {
    font-size: 1.2rem;
}
.sakuhin-text span {
    font-size: 1.5rem;
}
@media screen and (min-width: 1024px) {
    .sakuhin h2 {
        font-size: 8rem;
        margin: 60px auto;
    }
    .sakuhin h3 {
        font-size: 2.4rem;
    }
    .sakuhin-text {
        justify-content: center;
        padding-top: 40px;
        height: 260px;
    }
    .sakuhin img {
        width: 70%;
    }

    .sakuhin-text span {
        font-size: 1.4rem;
    }

    .mubyosokusai1,
    .geta1,
    .ichirin1,
    .ichirin2,
    .cup1,
    .dish1,
    .dish2,
    .dish3,
    .shuki1,
    .oinori {
        display: block;
        margin: 0 auto;
        border-top-right-radius: 0%;
        border-bottom-right-radius: 0%;
    }
    img.mubyosokusai2,
    img.shuki2 {
        width: 50%;
    }
    .mubyosokusai2,
    .geta2,
    .cup3 {
        display: block;
        border-top-left-radius: 0%;
        border-bottom-left-radius: 0%;
        margin: 40px 0px 40px auto;
    }
    img.mubyosokusai3 {
        width: 60%;
    }
    .mubyosokusai3,
    .shuki2 {
        display: block;
        margin: 0 auto 0 100px;
        border-radius: 0%;
    }
    .ichirin1,
    .cup1,
    .dish1,
    .dish2,
    .shuki1 {
        margin-bottom: 40px;
    }
}
/* //.sakuhin */

/* .kaimono */

.kaimono-btn {
    display: flex;
    flex-direction: column;
    align-items: center;
    margin: 80px auto 100px;
}

a.kaimono-btn-border {
    display: inline-block;
    font-size: 1.5rem;
    font-family: "Noto Serif JP", serif;
    font-weight: 400;
    padding: 1rem 2rem;
    text-decoration: none;
    color: #0b276e;
    border: solid 0.8px #0b276e;
    transition: 0.4s;
}

a.kaimono-btn-border:hover {
    background: #0b276e;
    color: white;
}
.nekotati img {
    display: block;
}

.tumetateneko {
    width: 40%;
    margin-bottom: -5px;
}
.osuwarineko {
    width: 20%;
    margin-left: 10%;
}
.osuwarinekomove {
    animation: dosun 1.3s ease-out 0s 1;
    animation-delay: 1s;
    animation-iteration-count: 1;
}

@keyframes dosun {
    0% {
        transform: scale(0.8, 1.4) translate(0%, -100%);
    }
    10% {
        transform: scale(0.8, 1.4) translate(0%, -15%);
    }
    20% {
        transform: scale(1.4, 0.6) translate(0%, 30%);
    }
    30% {
        transform: scale(0.9, 1.1) translate(0%, -10%);
    }
    40% {
        transform: scale(0.95, 1.2) translate(0%, -30%);
    }
    50% {
        transform: scale(0.95, 1.2) translate(0%, -10%);
    }
    60% {
        transform: scale(1.1, 0.9) translate(0%, 5%);
    }
    70% {
        transform: scale(1, 1) translate(0%, 0%);
    }
    100% {
        transform: scale(1, 1) translate(0%, 0%);
    }
}
@media screen and (min-width: 768px) {
    .tumetateneko {
        width: 20%;
    }
    a.kaimono-btn-border {
        font-size: 2rem;
    }
    .osuwarineko {
        width: 10%;
    }
}

/*// .kaimono */

/* .tukurite */
.tukurite {
    background-color: #0b276e;
    padding-top: 50px;
    padding-bottom: 0.1px;
}
.tukurite h2 {
    font-size: 2.8rem;
    color: rgba(255, 255, 255, 0.7);
    font-family: "Noto Serif JP", serif;
    font-weight: 600;
    writing-mode: vertical-rl;
    -ms-writing-mode: tb-rl;
    letter-spacing: 3px;
    margin: 0 auto;
    margin-bottom: 50px;
}
.tukurite h3 {
    font-size: 1.7rem;
    color: #fff;
    font-family: "Noto Sans JP", sans-serif;
    font-weight: 400;
    letter-spacing: 1.5px;
    text-align: center;
    margin-bottom: 50px;
}
.tukurite p {
    color: #fff;
}
.makeneko {
    display: block;
    width: 150px;
    margin: 50px auto;
}
.tukurite-text {
    display: flex;
    flex-direction: row-reverse;
    justify-content: center;
    letter-spacing: 2.4px;
}
.tukurite-text2 {
    font-size: 1.9rem;
    vertical-align: baseline;
}
.tukurite-text3 {
    vertical-align: bottom;
}
.toreki {
    display: flex;
    flex-direction: row-reverse;
    justify-content: center;
}
.toreki p {
    margin: 0 7px;
}
.toreki-title {
    padding-top: 50px;
}
.seireki {
    font-size: 1.2rem;
    padding-top: 10px;
}
.toreki-content {
    padding-top: 10px;
}
.mubyosokusai {
    display: block;
    width: 250px;
    margin: 50px auto;
}

@media screen and (min-width: 1024px) {
    .pc_tukurite {
        display: flex;
        flex-direction: row-reverse;
        align-items: center;
        justify-content: center;
    }

    .tukurite h2 {
        font-size: 3.8rem;
    }
    .tukurite-text {
        transform: scale(1.15);
        padding-left: 45px;
    }
    .pc_tukurite_image {
        padding-right: 45px;
    }
    .toreki {
        padding-top: 30px;
        padding-bottom: 30px;
    }
    .toreki p {
        transform: scale(1.15);
    }
}
/* //.tukurite */
/* .seisaku */
.seisaku-text {
    display: flex;
    justify-content: center;
}
.seisaku p {
    font-size: 1.8rem;
    margin: 40px auto;
    line-height: 150%;
}
.seisaku img {
    display: block;
    width: 100%;
    height: 270px;
    object-fit: cover;
}

@media screen and (min-width: 1024px) {
    .seisaku p {
        font-size: 2rem;
        margin: 80px auto;
    }
    img.sometuke {
        width: 60%;
        height: 400px;
        margin: 0 auto;
    }
    .seisaku2 {
        display: flex;
    }
    img.rokuro,
    img.kezuri,
    img.sketch {
        width: 33.33333%;
        width: calc(100% / 3);
    }
}

/* //.seisaku */

/* footer */
footer {
    background-color: #0b276e;
    color: #fff;
    height: 350px;
    padding-top: 30px;
    font-family: "Noto Sans JP", sans-serif;
}
footer h3 {
    font-size: 2rem;
    margin-top: 0px;
    padding-left: 20px;
    font-weight: 300;
}
footer ul {
    list-style: none;
    padding-left: 20px;
    margin-bottom: 80px;
}
footer li {
    margin-bottom: 5px;
}
footer a {
    text-decoration: none;
    font-size: 1.6rem;
    color: #fff;
    display: inline-flex;
    align-items: center;
}

.rink {
    font-weight: 100;
}
footer a::before {
    content: "";
    display: block;
    width: 1.84rem;
    margin-right: 2rem;
    background-color: #fff;
    font-weight: 100;
    height: 1px;
}

footer a:hover {
    opacity: 0.5;
}

footer a:hover::before {
    opacity: 0.5;
}

.copyright {
    color: #fff;
    writing-mode: horizontal-tb;
    -ms-writing-mode: lr-tb;
    font-family: "Noto Sans JP", sans-serif;
    text-align: center;
}

/*//footer */

.loop_wrap {
    display: flex;
    width: 100vw;
    overflow-x: hidden;
    margin-top: 0;
    margin-bottom: 0;
    background-color: #fff;
}

.loop_wrap img {
    width: auto;
    height: 100%;
}

.loop_wrap img:first-child {
    animation: loop 50s linear -25s infinite;
}

.loop_wrap img:last-child {
    animation: loop2 50s linear infinite;
}
@keyframes loop {
    0% {
        transform: translateX(100%);
    }
    100% {
        transform: translateX(-100%);
    }
}

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