@charset "UTF-8";

/* font */
@import url('https://fonts.googleapis.com/css2?family=Noto+Sans+JP:wght@100..900&display=swap');


/*--------------------------------
	ページ全体
--------------------------------*/
html {
    scroll-behavior: smooth;
    background: #EEE0CA;
    font-size: 16px;
    font-family: "Noto Sans JP", sans-serif;
}

img {
    max-width: 100%;
    height: auto;
}

a:hover,
button:hover {
    opacity: .7;
}

button {
    cursor: pointer;
}

input[type="checkbox"],
input[type="radio"] {
    display: none;
}

/*--------------------------------
	layout
--------------------------------*/
.l_main {
    background: #EEE0CA;
    color: #3D0B0B;
    position: relative;
    z-index: 1;

    &::after {
        content: "";
        width: 100%;
        height: 100%;
        display: block;
        position: fixed;
        top: 0;
        left: 0;
        z-index: -1;
    }
}


.l_content {
    display: flex;
    flex-direction: column;

}


.l_content-inner {
    width: 82%;
    max-width: 78.25rem;
    margin-inline: auto;
    display: flex;
    flex-direction: column;

    &:not(:last-child) {
        border-bottom: 1px solid #BC9F64;
    }
}

@media (min-width: 769px) {
    .l_main {
        width: calc(100% - min(30vw, 314px));

        &::after {
            background: no-repeat center top /cover url(../images/bg-pc.webp);
        }
    }

    .l_content {
        gap: 5rem;
    }

    .l_content-inner {
        gap: 2rem;

        &:not(:last-child) {
            padding-bottom: 5rem;
        }
    }
}

@media (max-width: 768px) {
    .l_main {
        width: 100%;

        &::after {
            background: no-repeat center top /cover url(../images/bg-sp.webp);
        }
    }

    .l_content {
        gap: 2rem;
    }

    .l_content-inner {
        gap: 1.5rem;

        &:not(:last-child) {
            padding-bottom: 2rem;
        }
    }

}

/* nav--------------------------- */
@media screen and (max-width:768px) {
    html:has(#nav_btn:checked) {
        overflow: hidden;
    }
}

/* spメニュー開くボタン */
@media screen and (max-width:768px) {
    .nav-toggle-wrap {
        padding-bottom: 1.5rem;
        position: fixed;
        bottom: 0;
        left: 0;
        width: 100%;
        z-index: 12;
        transition: background 0.5s
    }

    .nav-toggle-btn {
        width: 92%;
        display: flex;
        height: 3.5rem;
        justify-content: center;
        align-items: center;
        gap: 1rem;
        border-radius: 0.375rem;
        background: #BD0003;
        box-shadow: 0 4px 6px 0 rgba(0, 0, 0, 0.25);
        color: #FFF;
        font-size: 1rem;
        font-weight: 800;
        margin-inline: auto;


        &::before {
            content: "";
            width: 1em;
            height: 1em;
            display: block;
            /* transform: rotate(0); */
            background: no-repeat center/contain url(../images/icon-menu-line.svg);
            /* transition: background 0.5s,transform 0.5s; */
        }

        &::after {
            content: "MENU";
        }
    }

    #nav_btn:checked~.nav-toggle-wrap {
        background: #B71200;
        border-top: 1px solid rgba(255, 255, 255, 0.50);
    }

    #nav_btn:checked~.nav-toggle-wrap .nav-toggle-btn {
        box-shadow: none;

        &::before {
            /* transform: rotate(1turn); */
            background: no-repeat center/contain url(../images/icon-close-line.svg);
        }

        &::after {
            content: "閉じる";
        }
    }
}


.l_nav {
    height: 100dvh;
    width: min(30vw, 314px);
    position: fixed;
    right: 0;
    top: 0;
    box-sizing: border-box;
    padding: 2rem;
    display: flex;
    flex-direction: column;
    align-items: center;
    overflow-y: auto;
    -ms-overflow-style: none;
    scrollbar-width: none;
    z-index: 10;

    &::after {
        content: "";
        width: min(30vw, 314px);
        height: 100%;
        display: block;
        position: fixed;
        top: 0;
        right: 0;
        z-index: -1;
        background: repeat left/12% url(../images/bg-side.svg), #BD0003;
    }
}

.l_nav::-webkit-scrollbar {
    display: none;
}


@media screen and (max-width:768px) {
    .l_nav {
        z-index: 11;
        width: 100%;
        visibility: hidden;
        opacity: 0;
        transition: all 0.5s;
        display: flex;
        justify-content: space-evenly;
        padding-top: 2rem;
        padding-bottom: calc(3rem + 3.5rem + 1.5rem);

        &::after {
            width: 100%;
        }
    }

    #nav_btn:checked~.l_nav {
        opacity: 1;
        visibility: visible;
    }

}


.l_nav_content {
    display: flex;
    flex-direction: column;
    width: 100%;
}

@media (min-width: 769px) {
    .l_nav_content {
        height: 100%;
        justify-content: space-between;
        gap: 1rem;
    }

}

@media screen and (max-width:768px) {

    .l_nav_content {
        gap: 3rem;
    }
}

.l_nav_list {
    color: #fff;
    font-weight: 900;
    letter-spacing: 0.05em;
    font-size: min(1.8vw, 20px);
    display: flex;
    flex-direction: column;
    gap: 1.5em;
    width: 100%;
}

@media screen and (max-width:768px) {

    .l_nav_list {
        font-size: 20px;
        gap: 48px;
    }
}

.l_nav_item {
    padding-left: 1.5em;

    &.active {
        color: #dbc870;
        background: no-repeat left center/1em url(../images/nav-icon.svg);
    }
}

.l_nav_link {
    display: flex;
    flex-direction: column;
}

@media screen and (max-width:768px) {

    .l_nav_link {
        gap: 48px;
    }
}

.l_nav_btn-wrap {
    display: flex;
    flex-direction: column;
    gap: 1rem;
}

.l_nav_b-logo {
    display: flex;
    flex-direction: column;
    gap: 1.5rem;
    max-width: 9.375rem;
    width: 100%;
    margin-inline: auto;
}

.l_nav_link .p_sns-btn_wrap {
    justify-content: center;
}

/* header--------------------------- */

@media (min-width: 769px) {
    .l_header {
        padding-bottom: 2rem;
    }
}

@media (max-width: 768px) {
    .l_header {
        padding-block: 1.5rem;
    }
}



/* modal--------------------------- */

html:has(dialog[open]) {
    overflow: hidden;
}

dialog:has(.l_modal) {
    padding: 0;
    max-width: 62.5rem;
    width: fit-content;
    background: transparent;
    opacity: 0;
    transform: translateY(20px);
    transition: opacity 0.5s, transform 0.5s, overlay 1s allow-discrete,
        display 1s allow-discrete;
}

dialog[open] {
    opacity: 1;
    transform: translateY(0);
}

dialog::backdrop {
    background-color: rgba(0, 0, 0, 0.5);
    backdrop-filter: blur(3px);
    opacity: 0;
    transition: opacity 0.5s ease-out, overlay 1s allow-discrete,
        display 1s allow-discrete;
}

dialog[open]::backdrop {
    opacity: 1;
}

.l_modal__content {
    background: #fff;
    border-radius: 0.75rem;
    color: #121212;
    z-index: 20;
    top: 50%;
    left: 50%;
    margin: 0;
    max-width: 90vw;
    max-height: 90vh;
    max-height: 90dvh;
    overflow-y: auto;
}


@starting-style {
    dialog[open] {
        opacity: 0;
        transform: translateY(20px);
    }

    dialog[open]::backdrop {
        opacity: 0;
    }

}

/* 閉じるボタン */
.l_modal_close-btn-text {
    display: flex;
    width: fit-content;
    font-size: 16px;
    margin-inline: auto;
    padding: 0.5rem 1.5rem;
    border: 1px solid #121212;
    font-weight: bold;
    border-radius: 9999px;
    font-weight: 800;
    gap: 0.1875rem;
    align-items: center;

    &::before {
        content: "";
        display: block;
        width: 1em;
        height: 1em;
        background: no-repeat left center/1em url('../images/icon-close-line-02.svg');
    }

}

.l_modal:has(.l_modal_close-btn) {
    padding-top: 0.375rem;
    padding-right: 0.375rem;
}

.l_modal_close-btn {
    position: absolute;
    width: 1.875rem;
    height: 1.875rem;
    background: no-repeat center /contain url(../images/icon-close-circle-fill.svg);
    right: 0;
    top: 0;
    z-index: 1;
}

.modal_close-btn-area {
    position: sticky;
    bottom: 0;
    padding-block: 1rem;
    background: #fff;

}

/* タイトル */
.l_modal .c_ttl {
    font-size: 1.25rem;
    line-height: 180%
}



/*--------------------------------
	component
--------------------------------*/


/* タイトル--------------------------- */
.c_ttl {
    word-break: keep-all;
    overflow-wrap: break-word;
}


.c_ttl {
    font-weight: 900;
    text-align: center;
}

@media (min-width: 769px) {
    .c_ttl {
        font-size: 2rem;
    }
}

@media (max-width: 768px) {
    .c_ttl {
        font-size: 1.25rem;
    }
}

/* テキスト--------------------------- */
.c_text {
    font-weight: 600;
}

@media (min-width: 769px) {
    .c_text {
        font-size: 1.125rem;
        line-height: 177.778%;
    }
}

@media (max-width: 768px) {
    .c_text {
        font-size: 0.75rem;
        line-height: 130%;
    }
}

.c_text_em {
    color: #b72514;
}

/* ボタン--------------------------- */
.c_btn {
    width: fit-content;
    margin-inline: auto;
    text-align: center;
    font-weight: 900;
    color: #FFF;
    background: #BD0003;
    ;
    letter-spacing: 0.05em;
    border-radius: 9999px;
    display: flex;
    justify-content: center;
    align-items: center;
    line-height: 1;
}

@media (min-width: 769px) {
    .c_btn {
        font-size: 2rem;
        padding: 1.5rem 4.5rem;
    }
}

@media (max-width: 768px) {
    .c_btn {
        font-size: 1rem;
        padding: 0.75rem 2.25rem;
    }
}

/* スクロール--------------------------- */

.c_scroll_area {
    display: flex;
    flex-wrap: nowrap;
}

@media screen and (max-width:768px) {

    .c_scroll_area {
        max-width: 100%;
        overflow-x: auto;
        overflow-y: hidden;
        scroll-snap-type: x;
    }

    .c_scroll_item {
        min-width: min(60vw, 280px);
        scroll-snap-align: start;
    }
}

/*--------------------------------
	project
--------------------------------*/



/* nav--------------------------- */
.p_nav_btn {
    display: flex;
    font-size: 0.8125rem;
    text-align: center;
    font-weight: 900;
    color: #BD0003;
    background: #FFEA00;
    letter-spacing: 0.05em;
    min-height: 2.25rem;
    padding: 0.875rem 0;
    border-radius: 9999px;
    width: 100%;
    max-width: 12.5rem;
    margin-inline: auto;
    align-items: center;
    justify-content: center;
    gap: 0.5rem;
}

.p_nav_btn-second {
    background: #BD0003;
    color: #FFEA00;
    border: 1px solid;
}

.p_nav_btn--shop {
    background: #fff;
    color: #BD0003;

    &::before {
        content: "";
        display: inline-block;
        width: 1.2em;
        height: 1.2em;
        background: no-repeat center/contain url(../images/icon-time-fill.svg);
    }
}

.p_sns-btn_wrap {
    display: flex;
    gap: 0.5rem;
    flex-direction: column;
}

.p_sns-btn {
    background: #000000;
    color: #fff;
    padding: 0.25rem 1rem;
    font-weight: bold;
    font-size: 0.6875rem;
    display: flex;
    gap: 0.375rem;
    border-radius: 9999px;
    width: 100%;
    max-width: 12.5rem;
    margin-inline: auto;
    align-items: center;
    justify-content: center;
    min-height: 2rem;

    &::before {
        content: "";
        display: block;
        width: 1em;
        height: 1em;
        background: no-repeat center/contain url('../images/x_logo.svg');
        background-size: contain;
    }
}

/* フェアリスト--------------------------- */
/* 変数 */
:root {
    --fair-text-color: #121212;
    --fair-end-color: #888888;
    --badge-bg-color-new: #FF0000;
    --badge-text-color-new: #fff;
    --badge-bg-color-notice: #378A40;
    --badge-text-color-notice: #fff;
    --badge-bg-color-update: #1A2BEB;
    --badge-text-color-update: #fff;
    --badge-bg-color-end-up-close: #FFCC00;
    --badge-text-color-end-up-close: #300505;
    --tag-color: #343434;
    --tag-color-shop: #378A40;
    --tag-color-limited: #914A17;
    --tag-color-adult: #DA0078;
    --tag-color-fair: #FF3C00;
    --tag-color-point: #1070FF;
    --tag-color-coupon: #5516C0;
    --tag-color-other: #343434;
}

/* リスト */

.fair-list {
    display: grid;
}

@media (min-width: 769px) {
    .fair-list {
        grid-template-columns: repeat(auto-fill, minmax(min(calc((100% - 2.5rem) / 3), 18.625rem), 1fr));
        gap: 1.25rem;
    }
}

@media (max-width: 768px) {
    .fair-list {
        grid-template-columns: repeat(2, 1fr);
        gap: 1rem 0.5rem;
    }
}

/* カード */
.fair-card {
    background: #FFFFFF;
    border-radius: 0.75rem;
    color: var(--fair-text-color);
    box-shadow: 0 4px 5px 0 rgba(0, 0, 0, 0.16);
    display: grid;
    grid-template-rows: subgrid;
    grid-row: 4 span;
    gap: 0.75rem;
    padding-bottom: 0.75rem;
    position: relative;
}

.fair-card--new::after {
    content: "新着";
    background: var(--badge-bg-color-new);
    color: var(--badge-text-color-new);
}

.fair-card--notice::after {
    content: "予告";
    background: var(--badge-bg-color-notice);
    color: var(--badge-text-color-notice);
}

.fair-card--update::after {
    content: "更新";
    background: var(--badge-bg-color-update);
    color: var(--badge-text-color-update);
}

.fair-card--end-up-close::after {
    content: "終了間近";
    background: var(--badge-bg-color-end-up-close);
    color: var(--badge-text-color-end-up-close);
}

.fair-card--new,
.fair-card--notice,
.fair-card--update,
.fair-card--end-up-close {
    &::after {
        position: absolute;
        top: -0.3rem;
        left: -0.3rem;
        display: flex;
        padding: 0.375rem;
        justify-content: center;
        align-items: center;
        font-size: 0.625rem;
        font-weight: 600;
        line-height: 100%;
        border-radius: 999px;
        z-index: 2;
    }
}

/* 終了 */
.fair-card--end {
    --fair-text-color: var(--fair-end-color);
    --tag-color: var(--fair-end-color);
    --tag-color-shop: var(--fair-end-color);
    --tag-color-limited: var(--fair-end-color);
    --tag-color-adult: var(--fair-end-color);
    --tag-color-fair: var(--fair-end-color);
    --tag-color-point: var(--fair-end-color);
    --tag-color-coupon: var(--fair-end-color);
    --tag-color-other: var(--fair-end-color);
    pointer-events: none;
}

.fair-card__banner {
    overflow: hidden;
    border-radius: 0.75rem 0.75rem 0 0;
    aspect-ratio: 632 / 340;
    position: relative;
    z-index: 1;
}

.fair-card__banner-bg {
    display: block;
    position: absolute;
    top: -10%;
    left: -10%;
    height: 120%;
    width: 120%;
    z-index: -1;
    filter: blur(5px) opacity(0.5);
}


.fair-card__banner-bg-img{
    width: 100%;
    height: 100%;
    object-fit: cover;
    object-position: center;
}

.fair-card__img {
    position: relative;
    width: 100%;
    height: 100%;
    object-fit: contain;
}


.fair-card__ttl,
.fair-card__date,
.fair-tag-list {
    padding-inline: 0.75rem;
}

.fair-card__ttl {
    height: 2.6em;
    display: -webkit-box;
    -webkit-box-orient: vertical;
    -webkit-line-clamp: 2;
    align-self: stretch;
    overflow: hidden;
    text-overflow: ellipsis;
    font-size: 0.875rem;
    font-weight: 800;
    line-height: 130%;
}

.fair-card__date {
    font-size: 0.625rem;
    font-weight: 600;
    line-height: 100%;
    display: flex;
    gap: 0.25rem;
    flex-wrap: wrap;

    &::before {
        content: "";
        background: var(--fair-text-color);
        width: 1em;
        height: 1em;
        -webkit-mask-image: url("../images/icon-calendar-line.svg");
        mask-image: url("../images/icon-calendar-line.svg");
        -webkit-mask-size: contain;
        mask-size: contain;
    }
}


/* タグリスト */
.fair-tag-list {
    display: flex;
    flex-wrap: wrap;
    gap: 0.375rem;
    align-content: flex-start;
}

.fair-tag {
    color: var(--tag-color);
    display: flex;
    min-height: 1.375rem;
    padding: 0.375rem;
    justify-content: center;
    align-items: center;
    border-radius: 0.1875rem;
    border: 1px solid;
    font-size: 0.625rem;
    font-weight: 600;
    line-height: 100%;
}

.fair-tag--shop {
    color: var(--tag-color-shop);
}

.fair-tag--limited {
    color: var(--tag-color-limited);
}

.fair-tag--adult {
    color: var(--tag-color-adult);
}

.fair-tag--fair {
    color: var(--tag-color-fair);
}

.fair-tag--point {
    color: var(--tag-color-point);
}

.fair-tag--other {
    color: var(--tag-color-other);
}

.fair-tag--coupon {
    color: var(--tag-color-coupon);
}


/* フェアモーダル--------------------------- */
.modal-fair {
    position: relative;
    width: 90vw;
    max-width: 56.25rem;
}

.modal-fair__content {
    display: flex;
    flex-direction: column;
    padding: 1.5rem;
    gap: 1.5rem;
}

.modal-fair__header {
    display: flex;
    flex-direction: column;
    gap: 0.5rem;
}

.modal-fair__ttl {
    color: #121212;
    font-weight: 700;
    line-height: 130%;
}

.modal-fair .fair-tag-list {
    padding-inline: 0;
}

.modal-fair__banner {
    width: fit-content;
    margin-inline: auto;
}

.modal-fair__img {
    width: 100%;
    max-width: 17.1875rem;
    height: auto;
}

.modal-fair__info {
    color: #121212;
    font-weight: 500;
    line-height: 130%;
    word-break: break-word;
}

.modal-fair__text:not(:last-child) {
    padding-bottom: 1em;
}


@media (min-width: 769px) {
    .modal-fair__ttl {
        font-size: 1.25rem;
    }

    .modal-fair__info {
        font-size: 0.9375rem;
    }
}

@media (max-width: 768px) {
    .modal-fair__ttl {
        font-size: 1.125rem;
    }

    .modal-fair__info {
        font-size: 0.8125rem;
    }
}

/* ボタン */
.modal-fair__btn-area {
    width: 100%;
    overflow-x: auto;
    padding: 1rem;
    position: sticky;
    bottom: 0;
    border-top: 1px solid #BCBCBC;
    background: #fff;
}

.modal-fair__btn-area-inner {
    display: flex;
    flex-wrap: nowrap;
    width: fit-content;
    gap: 0.625rem;
    margin-inline: auto;
}

.modal-fair-btn {
    min-width: 12.5rem;
    width: fit-content;
    flex: 0 0 auto;
    display: flex;
    justify-content: center;
    background: no-repeat center right 0.75rem/ 1em url(../images/icon-arrow-right-s-line.svg), #BD0003;
    color: #fff;
    text-align: center;
    font-weight: 900;
    line-height: 1;
    display: flex;
    min-height: 2.25rem;
    padding: 0.875rem 1.75rem;
    align-items: center;
    border-radius: 999px;
}

.modal-fair-btn--preparing {
    position: relative;
    overflow: hidden;
    pointer-events: none;


    &::after {
        content: "準備中";
        display: flex;
        justify-content: center;
        align-items: center;
        width: 100%;
        height: 100%;
        position: absolute;
        background: #626262d4;
        color: #fff;
        font-weight: 700;
        font-size: 1em;
    }
}

@media (min-width: 769px) {
    .modal-fair-btn {
        font-size: 0.8125rem;
    }
}

@media (max-width: 768px) {
    .modal-fair-btn {
        font-size: 0.8125rem;
    }
}

/* 営業時間--------------------------- */

.schedule__table {
    width: 100%;
    border-collapse: separate;
    border-spacing: 0;
}

.schedule__frame {
    text-align: left;
    border-top: none;
    width: 100%;
    display: grid;
    /* padding: 1rem; */
    grid-template-columns: 1fr 2fr 2fr;
    gap: 2.7rem;
    padding: 0.5rem 0 0.5625rem 0;
    align-items: center;
    min-height: 4.375rem;

    @media screen and (max-width: 900px) {
        padding: 0.5rem;
        flex-direction: column;
        gap: 0.375rem;
        grid-template-columns: 1fr;
    }

    &:not(:last-child) {
        border-bottom: 1px solid #a8b7c5;
    }
}

.schedule__item {
    width: auto;
    display: grid;
    gap: 1rem;
    align-items: center;
    grid-template-columns: 1fr 1fr;

    @media screen and (max-width: 900px) {
        justify-content: flex-start;
        width: 100%;
    }
}

.schedule__shop-name,
.schedule__time-ttl,
.schedule__time,
.schedule__exception-ttl,
.schedule__exception {
    color: #121212;
    font-size: 1rem;
    font-style: normal;
    font-weight: 700;
    line-height: normal;
}

.schedule__exception-ttl,
.schedule__exception {
    color: #BD0003;
}

.modal-shop-schedule {
    padding-top: 1rem;
    padding-inline: 1.5rem;
    display: flex;
    flex-direction: column;
    gap: 1rem;
}

/* ショップ情報--------------------------- */
.p_shop {
    display: flex;
    justify-content: center;
}

@media (min-width: 769px) {
    .p_shop {
        width: 100%;
        max-width: 78.25rem;
        padding-inline: 0.2rem;
        gap: 2rem;
    }
}

@media (max-width: 768px) {
    .p_shop {
        flex-direction: column;
        width: 100%;
        max-width: 20.1875rem;
        margin-inline: auto;
        gap: 0.75rem;
    }
}

/* ボタン */
.p_shop_btn {
    display: flex;

    flex-direction: column;
    justify-content: center;
    align-items: center;
    background: no-repeat left top / 10% url(../images/bg-shop-l.svg), no-repeat right -1% bottom -1% / 10% url(../images/bg-shop-r.svg), #378A40;
    color: #FFF2C9;
    font-weight: 900;
    box-sizing: border-box;
    text-align: center;
    padding: 0.5em;
}


.p_shop_btn--secondary {
    background: no-repeat left top / 10% url(../images/bg-shop-l.svg), no-repeat right -1% bottom -1% / 10% url(../images/bg-shop-r.svg), #BD0003;
}


.p_shop_btn-inner {
    display: flex;
    flex-wrap: wrap;
    justify-content: center;
    align-items: center;
    gap: 1.2em;
}


.p_shop_btn-icon {
    width: 2.5em;
    aspect-ratio: 1/1;

    img {
        width: 100%;
        height: 100%;
        object-fit: contain;
    }
}

.p_shop_btn--icon-portrait {
    width: 3em;
}

.p_shop_btn-inner:has(.p_shop_btn--icon-portrait) {
    gap: 0.5em;
}


@media (min-width: 769px) {
    .p_shop_btn {
        flex: 1;
        max-width: 35.8125rem;
        min-height: 11.25rem;
        font-size: 1.73488rem;
    }
}

@media (max-width: 768px) {
    .p_shop_btn {
        max-width: 20.1875rem;
        min-height: 6.34163rem;
        font-size: 0.9375rem;
    }
}

/* 通信販売説明--------------------------- */
.online-shop-info {
    gap: 1.5rem;
}

@media (min-width: 769px) {
    .online-shop-info {
        justify-content: center;
    }
}

/* shop-info-card */
.shop-info-card {
    display: flex;
    flex-direction: column;
    align-items: center;
    background: #FFFCF4;
}

.shop-info-card__ttl {
    display: flex;

    flex-direction: column;
    justify-content: center;
    align-self: stretch;
    color: #25792D;
    text-align: center;
    font-weight: 900;
    line-height: 130%
}

.shop-info-card__detail {
    display: flex;
    justify-content: center;
    align-items: center;
    align-self: stretch;
    color: #121212;
    font-weight: 900;
    line-height: 140%;
}

@media (min-width: 769px) {
    .shop-info-card {
        width: 17.5rem;
        min-height: 20.625rem;
        padding: 2rem 1.25rem;
        gap: 1.5rem;
    }

    .shop-info-card__ttl {
        min-height: 2.5625rem;
        font-size: 1.25rem;
    }

    .shop-info-card__detail {
        gap: 0.25rem;
        font-size: 0.8125rem;
    }
}

@media (max-width: 768px) {

    .shop-info-card {
        min-width: 13.125rem;
        min-height: 15.46875rem;
        padding: 1.5rem 0.9375rem;
        gap: 1.125rem;
    }

    .shop-info-card__ttl {
        min-height: 1.92188rem;
        font-size: 0.9375rem;
    }

    .shop-info-card__detail {
        gap: 0.1875rem;
        font-size: 0.625rem;
    }
}

/* check-list */
.check-list {
    display: flex;
    flex-direction: column;
    align-items: flex-start;

    align-self: stretch;
}

.check-list__item {
    display: flex;

    &::before {
        content: "";
        width: 1.4em;
        height: 1.4em;
        display: block;
        flex: 0 0 auto;
        background: no-repeat center/1em url(../images/icon-checkbox-circle-line.svg);
    }
}

@media (min-width: 769px) {
    .check-list {
        gap: 0.75rem;
    }
}

@media (max-width: 768px) {
    .check-list {
        gap: 0.5625rem;
    }
}

/* 海外--------------------------- */

.p_overseas {
    gap: min(3vw, 40px);
    text-align: center;
}

.p_overseas_description {
    font-weight: 700;
    font-size: clamp(0.875rem, 0.825rem + 0.25vw, 1.125rem);
    padding-top: 1rem;
}

@media screen and (max-width:768px) {

    .p_overseas .c_scroll_item {
        min-width: 72vw;
    }

}


/* 注意事項--------------------------- */



.p_attention {
    background: #ffffff66;
    display: flex;
    flex-direction: column;

}

@media (min-width: 769px) {
    .p_attention {
        padding-block: 3.375rem;
        gap: 3rem;
        margin-bottom: 5rem;
    }
}

@media screen and (max-width:768px) {

    .p_attention {
        padding: 1.5rem;
        gap: 1rem;
        margin-bottom: 4rem;
    }

    .l_content-inner:has(.p_attention) {
        width: 100%;
    }
}

.p_attention .c_ttl {
    text-align: left;

}

.p_attention :where(.c_ttl, .c_text) {
    width: 100%;
    max-width: 30.5625rem;
    margin-inline: auto;
}


/*--------------------------------
	アニメーション
--------------------------------*/



/*紙吹雪 */

.confetti {
    width: 100vw;
    height: 100vh;
    height: 100dvh;
    position: fixed;
    z-index: 5;
    pointer-events: none;
}

.confetti canvas {
    height: 100%;
    width: 100%;
    position: absolute;
}

/*--------------------------------
	レスポンシブ対応
--------------------------------*/
@media (min-width: 769px) {
    .sp {
        display: none;
    }
}


@media (max-width: 768px) {
    .pc {
        display: none;
    }
}