/* Shared upgrades for the location card and ordering dialog. */
span[lang="ja"] {
    font-size: clamp(1rem, 1.8vw, 1.12rem);
    font-weight: 600;
    line-height: 1.2;
    letter-spacing: 0.16em !important;
}

.location-card {
    isolation: isolate;
    border-radius: 1.4rem !important;
    border-color: rgb(248 13 31 / 0.16) !important;
    background:
        linear-gradient(135deg, rgb(255 253 242 / 0.98), rgb(250 244 214 / 0.92)) !important;
    box-shadow: 0 26px 70px rgb(23 23 23 / 0.11) !important;
}

.location-card::after {
    content: "場所";
    position: absolute;
    z-index: 0;
    left: 1.25rem;
    bottom: -1.25rem;
    color: rgb(248 13 31 / 0.055);
    font-family: "Noto Sans JP", sans-serif;
    font-size: clamp(6rem, 15vw, 11rem);
    line-height: 1;
    pointer-events: none;
}

.location-card > * {
    position: relative;
    z-index: 1;
}

.location-japanese-label {
    display: inline-flex;
    align-items: center;
    border: 1px solid rgb(248 13 31 / 0.45) !important;
    border-radius: 0.65rem !important;
    background: rgb(255 255 255 / 0.88);
    padding: 0.65rem 0.9rem !important;
    color: #d80b1b !important;
    box-shadow: 0 8px 18px rgb(248 13 31 / 0.1);
    transform: rotate(-1deg);
}

.location-japanese-label span {
    font-size: clamp(1rem, 2vw, 1.15rem);
    font-weight: 600;
    line-height: 1;
}

.location-card address {
    border: 1px solid rgb(248 13 31 / 0.13) !important;
    border-left: 5px solid #f80d1f !important;
    border-radius: 0.75rem;
    background: rgb(255 255 255 / 0.72);
    padding: 1rem 1.1rem !important;
    box-shadow: 0 10px 24px rgb(23 23 23 / 0.05);
}

.location-card address p:first-child {
    margin-bottom: 0.25rem;
    font-size: clamp(1.75rem, 3vw, 2.25rem) !important;
}

.location-card a[data-i18n="directions"] {
    min-height: 3rem;
    border-radius: 0.65rem !important;
    padding: 0.75rem 1.1rem !important;
    font-size: 1.15rem;
    box-shadow: 0 12px 26px rgb(248 13 31 / 0.18);
}

.location-card iframe {
    min-height: 25rem;
    filter: saturate(0.88) contrast(1.04);
}

#orderModal {
    overflow-y: auto;
    padding-top: 1.5rem;
    padding-bottom: 1.5rem;
}

#orderModal > div {
    isolation: isolate;
    max-width: 52rem !important;
    border: 1px solid rgb(248 13 31 / 0.18) !important;
    border-radius: 1.25rem !important;
    padding: clamp(1.25rem, 3vw, 2rem) !important;
    box-shadow: 0 30px 90px rgb(0 0 0 / 0.28) !important;
}

#orderModal > div::after {
    content: "注文";
    position: absolute;
    z-index: -1;
    right: 3.5rem;
    top: -0.5rem;
    color: rgb(248 13 31 / 0.055);
    font-family: "Noto Sans JP", sans-serif;
    font-size: 8rem;
    line-height: 1;
    transform: rotate(-7deg);
    pointer-events: none;
}

#orderModal div:has(> span[lang="ja"]) {
    display: none !important;
}

#orderModal .order-close {
    display: inline-flex;
    width: 2.6rem;
    height: 2.6rem;
    align-items: center;
    justify-content: center;
    border: 1px solid rgb(23 23 23 / 0.08);
    border-radius: 999px;
    background: rgb(255 255 255 / 0.9);
    box-shadow: 0 8px 20px rgb(23 23 23 / 0.08);
}

#orderModal h2 {
    font-size: clamp(2.75rem, 6vw, 4rem) !important;
}

#orderModal section {
    position: relative;
    overflow: hidden;
    min-height: 12rem;
    border-radius: 0.9rem !important;
    padding: 1.25rem !important;
    box-shadow: 0 14px 34px rgb(23 23 23 / 0.07) !important;
}

#orderModal section::before {
    content: "";
    position: absolute;
    inset: 0 0 auto;
    height: 5px;
    background: #f80d1f;
}

#orderModal section:nth-child(2)::before {
    background: #171717;
}

#orderModal section h3 {
    font-size: 1.75rem !important;
}

#orderModal section > .grid a {
    min-height: 3rem;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    border-radius: 0.6rem !important;
    font-family: "Outfit", sans-serif;
    font-size: 1rem;
    font-weight: 600;
    letter-spacing: 0;
}

@media (max-width: 639px) {
    .location-card {
        border-radius: 1rem !important;
        padding: 0.5rem !important;
    }

    .location-card iframe {
        min-height: 19rem;
    }

    #orderModal {
        align-items: flex-start !important;
        padding: 1rem 0.75rem;
    }

    #orderModal > div {
        margin: auto 0;
        padding: 1.1rem !important;
    }

    #orderModal > div::after {
        right: 1rem;
        font-size: 5.5rem;
    }

    #orderModal section {
        min-height: 0;
        padding: 1rem !important;
    }
}
