:root {
    --base-color: #2a2625;
    --enfont-color: #201d1e;
    --accent-color: #d18566;
    --gray: #949291;
    --bg-color: #f6f5f5;
    --jp-font:
        "游ゴシック Medium", "Yu Gothic Medium", "游ゴシック体", YuGothic,
        "ヒラギノ角ゴ Pro W3", "Hiragino Kaku Gothic Pro", メイリオ, Meiryo,
        sans-serif;
    --font-evolve: "EvolveSans", sans-serif;
    --font-madecanvas: "MADE Canvas", serif;
    --base-vw: 1920;
    --vw: 1920px;
    --section-scale: calc(1320 / 1920);
}
@media (max-width: 768px) {
    :root {
        --base-vw: 768;
    }
}

html {
    scroll-behavior: smooth;
    font-size: calc(100vw / var(--base-vw));
}
body {
    font-size: 20rem;
    font-family: var(--jp-font);
    color: var(--base-color);
}
section {
    padding: 0;
}
a {
    margin: 0;
    padding: 0;
    text-decoration: none;
    color: inherit;
    -webkit-transition: all 0.3s ease;
    transition: all 0.3s ease;
}
a:hover {
    opacity: 0.5;
}
.l-container {
    display: flex;
    flex-direction: column;
    min-height: 100vh;
    overflow: hidden;
}
.container {
    width: calc(var(--vw, 100vw) * var(--section-scale));
    max-width: none;
    margin-inline: auto;
    box-sizing: border-box;
}
.section_inner {
    margin-top: 100px;
}
.section_heading-en {
    font-family: var(--font-madecanvas);
    font-size: 30px;
    /* font-size: 34rem; */
    /* font-size: 40.78rem; */
    font-weight: 400;
    letter-spacing: 0.1em;
    line-height: 35rem;
}
span.spacer {
    display: block;
    padding-top: 40rem;
}
.text-bold {
    font-weight: bold;
}
.f21 {
    font-size: 21px;
}
.br-pc {
    display: inline;
}
.br-sp {
    display: none;
}
#concept,
#features,
#lineup,
#stores,
#story {
    scroll-margin-top: 60rem;
}
#serum,
#mask,
#trial,
#mist,
#sachet {
    scroll-margin-top: 100rem;
}
.animation,
.animation02,
.animation03 {
    animation-timing-function: ease-in-out;
    animation-iteration-count: infinite;
    animation-direction: alternate;
}
.animation {
    animation-duration: 1.5s;
}
.animation02 {
    animation-duration: 2s;
}
.animation03 {
    animation-duration: 2.5s;
}
@keyframes anim_v {
    0% {
        transform: translate(0, 0px);
    }
    100% {
        transform: translate(0, -15px);
    }
}
.keyframe {
    animation-name: anim_v;
}
.header .sns_list a {
    font-size: 25px;
    color: #523d24;
}
@media (max-width: 768px) {
    /* html {
        font-size: 0.7px;
    } */
    .container {
        width: calc(290 / 380 * 100%);
    }
    .section_inner {
        margin: 60px auto;
    }
    .section_heading-en {
        font-size: 24px;
    }
    span.spacer {
        padding-top: 25px;
    }
    .br-pc {
        display: none;
    }
    .br-sp {
        display: inline;
    }
    .f21 {
        font-size: 18.648px;
    }
    @keyframes anim_v {
        0% {
            transform: translate(0, 0px);
        }
        100% {
            transform: translate(0, -10px);
        }
    }
}

.hero_visual {
    position: relative;
}
.hero_visual_image {
    width: 100%;
    height: 100%;
}
.hero_visual_logo {
    position: absolute;
    top: 47.5%;
    left: 50%;
    transform: translate(-50%, -50%);
    width: 267rem;
    width: 302.5rem;
    /*height: 225rem;*/
    height: fit-content;
    object-fit: cover;
    animation: welcomeFadeIn 3s ease 0.15s both;
}
.hero_visual_catch {
    position: absolute;
    top: 15%;
    left: 50%;
    transform: translateX(-50%);
    font-size: clamp(15px, 34rem, 30px);
    font-family: var(--font-madecanvas);
    letter-spacing: 0.075em;
    line-height: 35rem;
    animation: welcomeFadeIn 3s ease 0.15s both;
}
.hero_visual_text {
    position: absolute;
    bottom: 32%;
    left: 50%;
    transform: translateX(-50%);
    min-width: 360px;
    width: 566.4rem;
    display: flex;
    justify-content: center;
    align-items: center;
    padding: 10px 20px;
    /* font-size: 20rem; */
    font-size: clamp(13px, 22.66rem, 20px);
    font-size: 22.66rem;
    font-family: var(--font-evolve);
    font-weight: 500;
    letter-spacing: 0.075em;
    line-height: 1.5;
    border: 1px solid var(--base-color);
    text-align: center;
    animation: welcomeFadeIn 3s ease 0.15s both;
}
@keyframes welcomeFadeIn {
    from {
        opacity: 0;
    }
    to {
        opacity: 1;
    }
}
.hero_nav {
    position: absolute;
    left: 300rem;
    bottom: 140rem;
}
.hero_nav_item {
    line-height: 1;
}
.hero_nav_item + .hero_nav_item {
    margin-top: 20rem;
}
.hero_nav_link {
    /* font-size: 20.39rem; */
    font-size: 20.39rem;
    font-family: var(--font-evolve);
    font-weight: 500;
    letter-spacing: 0.1em;
    color: var(--enfont-color);
}
@media (max-width: 990px) {
    .hero_visual_image {
        height: 100dvh;
        object-fit: cover;
    }
    .hero_visual_logo {
        top: 45%;
        width: fit-content;
        max-width: 39.2%;
/*        height: fit-content;*/
        object-fit: contain;
    }
    .hero_visual_catch {
        top: 25%;
        width: calc(100% - 90rem);
        text-align: center;
        font-size: 24px;
    }
    .hero_visual_text {
        bottom: 36%;
        font-size: 14px;
    }
    .hero_nav {
        width: calc(290 / 380 * 100%);
        left: 50%;
        transform: translateX(-50%);
        bottom: 300rem;
    }
    .hero_nav_link {
        font-size: 14px;
    }
    .hero_nav_item + .hero_nav_item {
        margin-top: 16px;
    }
}
@media (max-width: 768px) {
    .hero_nav {
        bottom: 140px;
    }
    .hero_visual_text {
        padding: 10px 20px;
        min-width: 240px;
        width: calc(290 / 380 * 100%);
    }
    .hero_visual_image {
        object-position: center bottom;
    }
}
@media (max-width: 599px) {
    /* .hero_visual_logo {
        top: 45%;
        max-width: calc(147 / 375 * 100%);
        height: fit-content;
        object-fit: contain;
    }
    .hero_visual_catch {
        top: 25%;
        width: calc(100% - 90rem);
        text-align: center;
    }
    .hero_visual_text {
        width: calc(290 / 380 * 100%);
        bottom: 36%;
    } */
    .hero_visual_catch {
        font-size: 18px;
    }
    .hero_nav {
        bottom: 70px;
    }
    .hero_nav_link {
        font-size: 14px;
    }
    .hero_nav_item + .hero_nav_item {
        margin-top: 16px;
    }
    .hero_visual_text {
        font-size: 12px;
    }
}

.concept .section_inner {
    margin-bottom: 100rem;
}
.concept_wrap {
    margin-top: 40px;
}
.concept_heading {
    font-size: 20px;
    /* font-size: 22.66rem; */
    font-weight: 500;
    letter-spacing: 0.05em;
    line-height: 1.5;
}
.concept_desc {
    margin-top: 40rem;
    font-size: 18px;
    /* font-size: 20.39rem; */
    letter-spacing: 0.05em;
}
@media (max-width: 990px) {
    .concept_heading {
        font-size: 18px;
        /* font-size: 20.39rem; */
    }
    .concept_wrap,
    .concept_desc {
        font-size: 16px;
        margin-top: 24px;
    }
}
@media (max-width: 460px) {
    .concept_heading {
        font-size: 16px;
    }
    .concept_wrap,
    .concept_desc {
        margin-top: 16px;
        font-size: 14px;
    }
}

.features {
    background-color: var(--bg-color);
}
.features .section_inner {
    padding: 70px 0;
    margin-top: 0;
}
.feature_cont {
    margin-top: 50px;
}
.feature_item {
    display: grid;
    grid-template-columns: 100px 1fr;
    gap: 60px;
}
.feature_item:nth-child(n + 2) {
    margin-top: 40px;
}
.features_thumb {
    aspect-ratio: 1 / 1;
    width: 100px;
    height: 100px;
}
.features_thumb_image {
    width: 100%;
    height: 100%;
    object-fit: cover;
}
.feature_heading {
    display: flex;
    align-items: center;
    flex-wrap: wrap;
    /* gap: 22.66rem; */
    gap: 15px;
    padding-bottom: 8px;
    border-bottom: 1px solid var(--gray);
    /* font-size: 20.39rem; */
    font-size: 18px;
    font-weight: 600;
    letter-spacing: 0.05em;
    line-height: 1.5;
}
.feature_heading_en {
    font-size: 22px;
    /* font-size: 24.93rem; */
    font-family: var(--font-evolve);
    font-weight: 500;
    color: var(--gray);
    line-height: 1;
}
.feature_text {
    padding-top: 20px;
    /* font-size: 20.39rem; */
    font-size: 18px;
    letter-spacing: 0.05em;
    line-height: 1.5;
}
@media (max-width: 990px) {
    .features .section_inner {
        padding-bottom: 40px;
    }
    .feature_item {
        grid-template-columns: 80px 1fr;
        gap: 40px;
    }
    .feature_heading {
        flex-direction: column;
        align-items: flex-start;
        font-size: 16.5px;
        gap: 10px;
    }
    .features_thumb {
        width: 80px;
        height: 80px;
    }
    .feature_heading_en {
        font-size: 15.5px;
    }
    .feature_text {
        padding-top: 10px;
        font-size: 16.5px;
        letter-spacing: inherit;
        /* line-height: 28rem; */
    }
}
@media (max-width: 460px) {
    .features .section_inner {
        padding-bottom: 0;
    }
    .feature_item {
        grid-template-columns: 60px 1fr;
        gap: 20px;
    }
    .feature_heading {
        font-size: 14px;
    }
    .features_thumb {
        width: 60px;
        height: 60px;
    }
    .feature_text {
        font-size: 14px;
    }
}

/* .products_detail {
    font-size: 16px;
}
.products_name,
.products_caption,
.lineup_product_price {
    font-size: 1em;
}
.products_detail .name.f21 {
    font-size: 1.3125em;
}
.lineup_product_price {
    margin-bottom: 1em;
}
@media (max-width: 1280px) {
    .products_detail,
    .lineup_product_price {
        font-size: 14.208px;
    }
    .products_detail .f21 {
        font-size: 18.648px;
    }
    .lineup_product_price {
        line-height: 1.6;
    }
} */

.lineup_product_inner {
    width: 90%;
    max-width: 1000px;
    margin: auto;
}
.lineup_list {
    position: relative;
}
.lineup_list_inner {
    position: relative;
    display: flex;
    justify-content: space-between;
    margin-top: 40px;
}
.lineup_list_sp {
    display: none;
}
.lineup_item {
    position: relative;
}
.lineup_type {
    font-family: var(--font-evolve);
    font-size: 24.93rem;
    letter-spacing: 0.05em;
    color: var(--gray);
    text-align: center;
}
.lineup_image {
    width: 100%;
    height: 100%;
    object-fit: cover;
}
.lineup_item.serum .lineup_type {
    transform: translate(130rem, 50rem);
}
/* .lineup_item.serum {
    transform: translateY(40rem);
} */
.lineup_item.serum .lineup_image {
    max-width: 130rem;
    height: 321rem;
}
.lineup_item.mask {
    align-self: flex-end;
}
.lineup_item.mask .lineup_image {
    max-width: 334rem;
    height: 187rem;
}
.lineup_item.outbath .lineup_image {
    max-width: 282rem;
    height: 304rem;
}
.lineup_item.outbath .lineup_type {
    margin-bottom: 40rem;
}
.lineup_item.sachet {
    display: block;
    transform: translateX(100rem);
}
.lineup_item.sachet .lineup_image {
    max-width: 289rem;
    height: 152rem;
}
.lineup_item.trial {
    display: block;
    transform: translateY(60rem);
}
.lineup_item.trial .lineup_image {
    max-width: 335rem;
    height: 143rem;
}
.lineup_item.sachet .lineup_type,
.lineup_item.trial .lineup_type {
    margin-bottom: 20rem;
}
.lineup_bg {
    position: absolute;
    top: 380rem;
}
.lineup_bg-sp {
    display: none;
}
.lineup_bg_image {
    width: 100%;
}
.lineup_product {
    margin-top: 320rem;
    margin-bottom: 200rem;
}
.lineup_product_item {
    display: grid;
    grid-template-columns: 1fr 2fr;
    gap: 80px;
}
.lineup_product_item:nth-child(n + 2) {
    margin-top: 100px;
}
.lineup_product_thumb {
    max-width: 300px;
    margin: auto;
    grid-column: 1 / 2;
    grid-row: 1 / 3;
}
.lineup_product_image {
    width: 100%;
    height: 100%;
    object-fit: contain;
}
.lineup_product_brand {
    font-family: var(--font-evolve);
    font-size: 18px;
    font-weight: 100;
    letter-spacing: 0.05rem;
}
.lineup_product_name_en {
    font-family: var(--font-madecanvas);
    font-size: 18px;
    font-weight: 400;
    letter-spacing: 0.75rem;
    color: var(--accent-color);
}
.lineup_product_name_jp {
    font-size: 24px;
    font-weight: 400;
    letter-spacing: 0.05rem;
    line-height: 1.5;
}
.lineup_product_type {
    padding-bottom: 20px;
    font-size: 18px;
    letter-spacing: 0.18rem;
    border-bottom: 1px solid var(--gray);
}
.lineup_product_price {
    margin-top: 15px;
    font-size: 17px;
    letter-spacing: 0.18rem;
    line-height: 1.75;
}
.lineup_product_desc {
    margin-top: 20px;
    font-size: 18px;
    letter-spacing: 0.5rem;
}
.lineup_product_flavor {
    margin-top: 24px;
    display: grid;
    grid-template-columns: 60px 1fr;
    align-items: center;
    gap: 20px;
}
.lineup_product_flavor_head {
    padding: 4px 0;
    line-height: 1;
    font-size: 18px;
    font-weight: 600;
    letter-spacing: 0.05rem;
    background-color: var(--accent-color);
    color: #fff;
    border-radius: 9999px;
    text-align: center;
}
.lineup_product_text {
    font-size: 18px;
    letter-spacing: 0.05rem;
    line-height: 1.5;
}
@media (max-width: 990px) {
    .lineup_product_item {
        grid-template-columns: 1fr;
        gap: 40px;
    }
    .lineup_product_name_jp {
        font-size: 20px;
    }
    .lineup_product_desc,
    .lineup_product_flavor_head,
    .lineup_product_text,
    .lineup_product_type,
    .lineup_product_brand,
    .lineup_product_name_en,
    .lineup_product_price {
        font-size: 16px;
    }
}
@media (max-width: 768px) {
    /* ここから */
    .lineup_product_item {
        grid-template-columns: 1fr;
    }
    .lineup_list_pc {
        display: none;
    }
    .lineup_bg {
        display: none;
    }
    .lineup_list_sp {
        display: grid;
        grid-template-columns: 1fr 1fr;
        margin-top: 4%;
        gap: 150px 40px;
    }
    .lineup_product_thumb {
        width: 70%;
        margin-inline: auto;
    }
    .lineup_product_flavor {
        gap: 10px;
        align-items: baseline;
        margin-top: 20px;
    }
    .lineup_product_flavor_head {
        padding: 2px 0;
        font-size: 18px;
    }
    .lineup_bg-sp {
        display: block;
        position: absolute;
    }
    .lineup_bg-sp.top {
        top: 35%;
    }
    .lineup_bg-sp.bottom {
        bottom: -25%;
    }
    .lineup_product_text {
        line-height: normal;
    }
    .lineup_item_wrap {
        display: grid;
    }
    .lineup_item .lineup_type {
        font-size: 18px;
    }
    /* ここまで */
    .lineup_list_pc {
        display: none;
    }
    .lineup_image {
        object-fit: contain;
    }
    .lineup_item.serum .lineup_image {
        max-width: 100%;
        height: 321rem;
    }
    .lineup_item.mask {
        transform: translateY(-20rem);
    }
    .lineup_item.mask .lineup_type {
        transform: translateY(-20rem);
    }
    .lineup_item.mask .lineup_image {
        max-width: 100%;
        height: 100%;
    }
    .lineup_item.outbath {
        transform: translate(0, 120rem);
    }
    .lineup_item.outbath .lineup_type {
        margin-bottom: 0;
        transform: translateY(-40rem);
    }
    .lineup_item.outbath .lineup_image {
        max-width: 100%;
        height: 100%;
    }
    .lineup_item.sachet {
        transform: translateX(40rem);
    }
    .lineup_item.sachet .lineup_type {
        margin-bottom: 0;
    }
    .lineup_item.sachet .lineup_image {
        max-width: 100%;
        height: 100%;
    }
    /* .lineup_item.trial {
        transform: translateY(120rem);
    } */
    .lineup_item.trial .lineup_type {
        margin-bottom: 0;
        transform: translateY(-20rem);
    }
    .lineup_item.trial .lineup_image {
        max-width: 100%;
        height: 100%;
    }
}
@media (max-width: 460px) {
    /* .lineup_bg-sp.top {
        top: 42%;
    }
    .lineup_bg-sp.bottom {
        bottom: -20%;
    }
    .lineup_list_sp {
        gap: 60px 40px;
    } */
    /* .lineup_item .lineup_type {
        font-size: 18px;
    } */
    .lineup_list_sp {
        gap: 60px 40px;
    }
    .lineup_item .lineup_type {
        font-size: 12px;
    }
    .lineup_item.serum .lineup_image {
        max-width: 100rem;
    }
    .lineup_item.serum .lineup_type {
        transform: translate(50rem, 60rem);
    }
    .lineup_item.sachet {
        transform: translateX(20rem);
    }
    .lineup_item.trial .lineup_type {
        transform: translateY(-10rem);
    }
    .lineup_item.outbath {
        transform: translate(0, 60rem);
    }
    .lineup_item.outbath .lineup_type {
        transform: translateY(-10rem);
    }
    .lineup_product_name_jp {
        font-size: 18.648px;
    }
    .lineup_product_type {
        padding-bottom: 16px;
    }
    .lineup_product_desc,
    .lineup_product_flavor_head,
    .lineup_product_text,
    .lineup_product_type,
    .lineup_product_brand,
    .lineup_product_name_en,
    .lineup_product_price {
        font-size: 14px;
    }
    .lineup_product_desc {
        margin-top: 10px;
    }
    .lineup_product_item {
        gap: 20px;
    }
    .lineup_product_flavor {
        grid-template-columns: 40px 1fr;
    }
    .lineup_product_flavor_head {
        font-size: 12px;
    }
}

.stores {
    background-color: var(--bg-color);
}
.stores .section_inner {
    padding: 70px 0;
    margin-top: 0;
}
.stores_cont {
    margin-top: 50px;
}
.stores_brand:nth-child(2) {
    margin-top: 50px;
}
.stores_head {
    padding-bottom: 16px;
    font-size: 22px;
    /* font-size: 24.93rem; */
    font-family: var(--font-evolve);
    font-weight: 600;
    letter-spacing: 0.05em;
    line-height: 30rem;
    border-bottom: 1px solid var(--gray);
}
.stores_list {
    margin-top: 15px;
}
.stores_item {
    display: flex;
    align-items: center;
    gap: 20px;
    /* font-size: 20.39rem; */
    font-size: 18px;
    letter-spacing: 0.05rem;
    line-height: 1.5;
}
.stores_item:nth-child(n + 2) {
    margin-top: 20rem;
}
.stores_link {
    /* margin-left: 20rem; */
    padding-bottom: 4px;
    /* font-size: 16rem; */
    font-size: 16px;
    letter-spacing: 0.01em;
    line-height: 1;
    color: var(--gray);
    border-bottom: 1px solid var(--gray);
}
@media (max-width: 990px) {
    .stores_item:nth-child(n + 2) {
        margin-top: 15px;
    }
    .stores_item {
        justify-content: space-between;
    }
    .stores_head {
        font-size: 18px;
        padding-bottom: 10px;
    }
    .stores_item {
        font-size: 16px;
    }
    .stores_link {
        font-size: 14px;
    }
}
@media (max-width: 599px) {
    .stores_head {
        font-size: 16px;
        padding-bottom: 10px;
    }
    .stores_item {
        font-size: 14px;
    }
    .stores_link {
        font-size: 14px;
    }
    .stores_list {
        margin-top: 10px;
    }
    .stores .section_inner {
        padding-bottom: 0;
    }
}

.ourstory .container {
    margin-bottom: 100px;
}
.ourstory .section_heading {
    text-align: center;
}
.outstory_desc {
    margin-top: 60px;
    /* font-size: 20rem; */
    font-size: 20px;
    line-height: 1.75;
    text-align: center;
}
@media (max-width: 990px) {
    .ourstory .section_inner {
        margin-top: 60px;
    }
    .ourstory .container {
        margin-bottom: 60px;
    }
    .outstory_desc {
        margin-top: 40px;
        font-size: 16px;
    }
}
@media (max-width: 599px) {
    .outstory_desc {
        margin-top: 40px;
        font-size: 14px;
    }
}

.footer {
    position: relative;
    font-size: 16px;
    line-height: 2;
}
.footer_image {
    width: 100%;
}
.footer .inner {
    max-width: 1000px;
}
.footer .sns_list a {
    font-size: 30px;
}
/* .footer .f21 {
    font-size: 21rem;
} */
.footer_inner {
    display: flex;
    padding: 120px 0;
    gap: 60px;
}
.footer .techno-logo {
    width: 190px;
}
.footer_map {
    display: flex;
    flex-direction: column;
    line-height: 2;
    letter-spacing: 0.05em;
}
.footer_map_link {
    color: var(--font-color);
}
.copyright {
    margin-top: 40px;
    /* font-size: 14rem; */
    font-size: 14px;
    font-family: var(--en-font);
    font-weight: 600;
    color: var(--font-color);
}
.footer .scroll {
    flex-direction: column-reverse;
    position: absolute;
    bottom: 120rem;
}
.footer .scroll-arrow {
    margin-top: 40px;
    transform: rotate(-90deg);
}
@media (max-width: 768px) {
    .footer_inner {
        padding: 80px 0;
        gap: 40px;
    }
    .footer .techno-logo {
        width: 140px;
    }
    .footer .scroll {
        right: 0;
    }
    .footer_map_link {
        /* font-size: 16rem; */
        font-size: 16px;
    }
    .footer .sns_list a {
        font-size: 20.43px;
    }
    .copyright {
        /* font-size: 12rem; */
        font-size: 12px;
    }
}
