svg,
img {
    vertical-align: middle;
}
body {
    overflow-x: hidden;
}
.page_title.center span {
    margin-left: auto;
    margin-right: auto;
}
.container_sp_max {
    position: relative;
}

.tree_wrap,
.tree_wrap_sp {
    position: absolute;
    width: 100%;
	height: 0;
	padding-top: 164%;
    top: 3rem;
    left: 0
}
.concept_container {
    overflow: hidden;
}

.concept_first_view_wrapper {
    position: relative;
    width: 100%;
    margin-bottom: 6.6rem;
}
.concept_first_view_wrapper::before {
    content:"";
    display: block;
    padding-top: 63.4%;
}
.concept_first_view {
    position: absolute;
    top: 52%;
    left: 0;
    bottom: 0;
    right: 0;
    text-align: center;
}
.concept_first_view .page_title {
    margin-top: 0;
    margin-bottom: 1.6rem;
}
.concept_first_view .concept_title {
    background-size: 100%;
    height: 43px;
    width: 154px;
    margin-bottom: .4rem;
}
.concept_text {
    font-weight: bold;
    font-size: 2.1875rem;
    letter-spacing: .21875rem;
    text-indent: 2.1875rem;
    margin-bottom: 1.6rem;
}

.concept_description_wrapper {
    margin: 0 auto 6rem;
    width: fit-content;
}

.concept_description_text {
    background-color: rgba(255,255,255,0.9);
    padding: 4rem;
    max-width: 1000px;
    margin: 0 auto;
}
.concept_description_text p {
    font-weight: bold;
    display: inline-block;
    text-align: left;
    font-size: 17px;
    letter-spacing: .16rem;
    line-height: 2.5;
}
.concept_description_text .yocado_logo {
    margin: 4rem auto 0;
    max-width: 350px;
}

.concept_photo {
    position: relative;
    overflow: hidden;
}
.concept_photo:before {
    content:"";
    display: block;
}

.concept_photo img {
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    transition: opacity 1.4s ease;
    opacity: 0;
}
.concept_photo img.show {
    opacity: 1;
}

.first_photo {
    width: 84%;
}
.first_photo:before {
    padding-top: 72.5%;
}
.second_photo {
    width: 92%;
    margin-left: auto;
}
.second_photo:before {
    padding-top: 87%;
}
.third_photo.first {
    width: 100%;
}
.third_photo.first:before {
    padding-top: 66.7%;
}
.third_photo.second {
    width: 28%;
    margin-left: 3.2rem;
    margin-top: 2rem;
}
.third_photo.second:before {
    padding-top: 100%;
}
.description_image {
    position: absolute;
    height: 0;
    transform: translate3d(0, 50px, 0);
}
.description_image svg {
    position: absolute;
    display: block;
    width: 100%;
    height: 100%;
    top: 0;
    left: 0;
    stroke-dasharray: 1500px;
    stroke-dashoffset: 1500px;
}
.segodon {
    width: 39.5%;
    padding-top: 16.4715%;
    right: 0;
    bottom: 0;
}
.noodle {
    width: 10.9%;
    padding-top: 11.6303%;
    top: 6.5rem;
    left: 28%;
}
.two-human {
    left: 0;
    bottom: 0;
    margin-bottom: 7rem;
    width: 30.6%;
    padding-top: 25.5816%;
}
.sake {
    left: calc(40% - 7rem);
    width: 7.8%;
    padding-top: 8.5332%;
    bottom: 3rem;
}
.bread {
    position: absolute;
    width: 13%;
    padding-top: 8.814%;
    bottom: 0;
    right: 1rem;
}
.human_bread {
    position: absolute;
    left: 0;
    bottom: 4rem;
    width: 100%;
    display: flex;
    justify-content: flex-end;
}
.dish_bread {
    position: absolute;
    left: 51.9%;
    bottom: 16%;
    width: 18.1%;
    padding-top: 11.0953%;
    vertical-align: top;
}
.coffee {
    position: absolute;
    left: 65.6%;
    top: 4%;
    width: 9.1%;
    padding-top: 12.649%;
}
.human {
    position: relative;
    width: 22.2%;
    padding-top: 31.191%;
    margin-left: 2.6%;
}
.yocado_greeting {
    margin-top: 7rem;
    margin-bottom: 11rem;
}
.yocado_greeting .yocado_logo {
    width: 32%;
    margin: auto;
}
.greeting_text {
    margin-top: 4.125rem;
    font-size: 1.5625rem;
    font-weight: bold;
    text-align: center;
    margin-bottom: 4.125rem;
    letter-spacing: 0.05rem;
}
.greeting_video {
    position: relative;
    overflow: hidden;
    width: 70%;
    margin: auto;
    margin-bottom: 4.125rem;
}
.greeting_video::before {
    content:"";
    display: block;
    padding-top: 56.25%;
}
.greeting_video iframe {
    position: absolute;
    top: 0;
    left: 0;
    bottom: 0;
    right: 0;
    width: 100%;
    height: 100%;
}
.tree_wrap_sp {
    display: none;
}


.tree_wrap_sp svg,
.tree_wrap svg {
	width: 100%;
    height: 100%;
	position: absolute;
    top: 0;
    left: 0;
    display: block;
    stroke-dasharray: 1500px;
    stroke-dashoffset: 1500px;
}
.page_title,
.concept_text,
.scroll_down_button {
    animation: fade .6s ease-in;
    opacity: 0;
    animation-fill-mode: forwards;
}
.page_title,
.concept_text {
    animation-delay: .8s;
}
.scroll_down_button {
    animation-delay: 1.6s;
    display: inline-block;
    text-align: center;
}
.scroll_down {
    width: 1.0625rem;
    margin: auto;
    position: relative;
    height: 0;
    padding-top: 2.125rem;
}
.scroll_text {
    width: 3.3rem;
    margin-top: .36rem;
}

.scroll_down_button svg {
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    overflow: visible;
}
#stroke_down {
    z-index: 100;
    animation: scrollDownButton 1s infinite;
}
@keyframes scrollDownButton {
    from {
        opacity: 1;
        transform: translateY(0);
    }
    to {
        opacity: 0;
        transform: translateY(10px);
    }
}
@keyframes fade {
    from {
        opacity: 0;
        transform: translateY(10px);
    }
    to {
        transform: translateY(0);
        opacity: 1;
    }
}
@keyframes draw {
    from {
        opacity: 0;
    }
    50% {
        opacity: 1;
    }
    to {
        opacity: 1;
        stroke-dashoffset: 0px;
    }
}
.js-fade-in {
    opacity: 0;
    transform: translate3d(0, 50px, 0) scale3d(.98, .98, 1);
}
.js-left-in {

    opacity: 0;
    transform: translate3d(-300px, 200px, 300px) rotate3d(-1, 1, 0, 45deg);
}
.js-right-in {
    opacity: 0;
    transform: translate3d(300px, 200px, 300px) rotate3d(1, 1, 0, 45deg);
}

@media only screen and (max-width: 767px) {
    .container_sp_max {
        width: 100%;
        margin-right: 0;
        margin-left: 0;
    }
    .tree_wrap {
        display: none;
    }
    .tree_wrap_sp {
        position: relative;
        display: block;
        width: 100%;
        padding-top: 163.7%;
        height: 0;
        top: 0;
        margin-top: 0.6rem;
        margin-bottom: 2rem;
    }
    .concept_first_view_wrapper {
        margin-bottom: 0;
    }
    .concept_first_view_wrapper::before {
        content: initial;
    }
    .concept_first_view {
        top: 35%;
    }
    .concept_first_view .concept_title {
        width: 115px;
        height: 32px;
    }
    .concept_text {
        font-size: 1.5625rem;
        letter-spacing: .15625rem;
        text-indent: 1.5625rem;
    }
    .scroll_down_button svg {
        /*
        width: 17px !important;
        height: 36px !important;
        */
    }
    .scroll_down_button p {
        font-size: 0.8125rem;
    }
    .description_image {
        position: relative;
    }

    .segodon {
        margin-top: 1.25rem;
        width: 87.73333333%;
        padding-top: 36.5847999986%;
        margin-left: auto;
    }
    .noodle {
        position: absolute;
        right: 1rem;
        width: 25.8666666667%;
        padding-top: 27.5997333326%;
        left: initial;
        top: 5.8rem;
    }
    .two-human {
        margin-left: 1rem;
        width: 72.8%;
        padding-top: 60.8608%;
        margin-bottom: 0;
        margin-top: .4rem;
    }
    .sake {
        position: absolute;
        top: 20.8rem;
        width: 20.8%;
        padding-top: 22.7552%;
        right: 8%;
        left: inherit;
    }
    .bread {
        display: none;
    }
    .concept_description_wrapper {
        margin: 0;
    }
    .concept_description_text {
        padding: 0 0 3rem;
        max-width: 90.6666666667%;
    }
    .concept_description_text p {
        margin-top: 0;
        letter-spacing: 0.15rem;
        line-height: 2;
        font-size: 14px;
    }
    .concept_description_text .yocado_logo {
        margin: 2rem auto 0;
        max-width: 250px;
    }
    .human_bread {
        position: relative;
        top: initial;
        bottom: initial;
        margin-top: 2.8rem;
        margin-bottom: 2rem;
    }
    .human {
        width: 44.8%;
        height: 0;
        padding-top: 62.9888%;
    }
    .dish_bread {
        position: absolute;
        left: 7.46%;
        bottom: 23.5%;
        width: 35.2%;
        height: 0;
        padding-top: 21.5776%;
    }
    .coffee {
        position: absolute;
        top: -9.7%;
        left: 34.13%;
        width: 17%;
        height: 0;
        padding-top: 23.63%;
    }
    .first_photo,
    .second_photo,
    .third_photo.first {
        width: 85.3333333333%;
    }
    .third_photo.second {
        position: absolute;
        margin: 0;
		bottom: -4.3rem;
        right: 4.66667%;
        width: 24%;
    }
    .yocado_greeting .yocado_logo {
        width: 56%;
    }
    .yocado_greeting .greeting_text {
        font-size: 1.125rem;
    }
    .yocado_greeting .greeting_text span {
        display: block;
    }
    .greeting_video {
        width: 94%;
    }
    .js-right-in,
    .js-left-in,
    .js-fade-in {
        opacity: 0;
        transform: translate3d(0, 50px, 0);
    }
}
