/* Melary Reserve v0.2.6 */

.melary-reserve {
    --mrv-ink: #292e38;
    --mrv-muted: #727b89;
    --mrv-soft-muted: #929aa7;
    --mrv-line: rgba(132, 151, 176, .24);
    --mrv-line-strong: rgba(118, 151, 191, .43);
    --mrv-surface: rgba(255, 255, 255, .94);
    --mrv-surface-soft: rgba(249, 251, 255, .88);
    --mrv-focus: rgba(91, 153, 211, .38);
    --mrv-shadow: 0 16px 46px rgba(66, 81, 111, .09);
    --mrv-pearl: linear-gradient(112deg, rgba(218, 243, 250, .98), rgba(230, 225, 248, .98) 54%, rgba(247, 225, 238, .97));
    --mrv-choice: linear-gradient(145deg, rgba(238, 246, 252, .98), rgba(250, 240, 247, .98));
    --mrv-action: linear-gradient(135deg, #456c91 0%, #715c84 55%, #a23f5e 100%);
    --mrv-action-hover: linear-gradient(135deg, #365b7f 0%, #614d74 55%, #8e354f 100%);
    --mrv-action-shadow: 0 11px 25px rgba(65, 69, 105, .24);
    --mrv-back: linear-gradient(135deg, rgba(235, 243, 249, .98), rgba(246, 238, 245, .98));
    position: relative;
    isolation: isolate;
    width: min(880px, calc(100% - 24px));
    margin: 28px auto 56px;
    color: var(--mrv-ink);
    background: rgba(252, 253, 255, .97);
    border: 1px solid rgba(128, 149, 178, .17);
    border-radius: 26px;
    box-shadow: var(--mrv-shadow);
    font-family: -apple-system, BlinkMacSystemFont, "Hiragino Kaku Gothic ProN", "Yu Gothic", "YuGothic", "Noto Sans JP", sans-serif;
    font-size: 16px;
    line-height: 1.7;
    -webkit-font-smoothing: antialiased;
    -webkit-text-size-adjust: 100%;
}

.melary-reserve *,
.melary-reserve *::before,
.melary-reserve *::after {
    box-sizing: border-box;
}

.melary-reserve button,
.melary-reserve input,
.melary-reserve textarea {
    font: inherit;
}

.melary-reserve button {
    -webkit-tap-highlight-color: transparent;
}

.melary-reserve button:focus-visible,
.melary-reserve input:focus-visible,
.melary-reserve textarea:focus-visible {
    outline: 3px solid var(--mrv-focus);
    outline-offset: 2px;
}

.melary-reserve [hidden] {
    display: none !important;
}

.melary-reserve__head {
    position: relative;
    overflow: hidden;
    margin: 0;
    padding: 30px 24px 18px;
    text-align: center;
    background:
        radial-gradient(circle at 16% 24%, rgba(197, 237, 247, .34), transparent 31%),
        radial-gradient(circle at 86% 31%, rgba(239, 214, 235, .28), transparent 34%),
        linear-gradient(128deg, rgba(248, 252, 255, .98), rgba(251, 249, 255, .96));
    border-radius: 25px 25px 0 0;
}

.melary-reserve__eyebrow {
    margin: 0 0 5px;
    color: #748295;
    font-size: 12px;
    font-weight: 700;
    letter-spacing: .15em;
    text-transform: uppercase;
}

.melary-reserve__title {
    margin: 0;
    color: #272c35;
    font-size: clamp(25px, 4vw, 32px);
    font-weight: 700;
    line-height: 1.4;
    letter-spacing: .03em;
}

.melary-reserve__steps {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 7px;
    margin: 0;
    padding: 0 20px 22px;
    background: linear-gradient(180deg, rgba(250, 250, 255, .96), rgba(252, 253, 255, .7));
    border-bottom: 1px solid rgba(132, 151, 176, .14);
}

.melary-reserve__steps > span {
    display: flex;
    align-items: center;
    justify-content: center;
    min-width: 0;
    min-height: 38px;
    padding: 7px 8px;
    color: #818a97;
    background: rgba(255, 255, 255, .76);
    border: 1px solid rgba(137, 155, 181, .22);
    border-radius: 999px;
    font-size: 12px;
    font-weight: 700;
    line-height: 1.3;
    text-align: center;
    transition: color .18s ease, background .18s ease, border-color .18s ease, box-shadow .18s ease;
}

.melary-reserve__steps > span.is-complete {
    color: #617487;
    background: rgba(232, 246, 250, .76);
    border-color: rgba(118, 173, 199, .28);
}

.melary-reserve__steps > span.is-active {
    color: #34404e;
    background: var(--mrv-pearl);
    border-color: rgba(105, 151, 203, .48);
    box-shadow: 0 7px 18px rgba(82, 103, 143, .09);
}

.melary-reserve__body {
    padding: 22px 20px 30px;
}

.melary-reserve__panel {
    display: none;
}

.melary-reserve__panel.is-active {
    display: block;
    animation: mrv-panel-in .24s ease both;
}

.melary-reserve__panel > h3 {
    margin: 0 0 18px;
    color: #303641;
    font-size: 21px;
    font-weight: 700;
    line-height: 1.5;
    letter-spacing: .02em;
    text-align: center;
}

.melary-reserve__note {
    margin: -7px 0 18px;
    color: var(--mrv-muted);
    font-size: 13px;
    line-height: 1.7;
    text-align: center;
}

.melary-reserve__note span {
    display: inline-block;
    margin-top: 5px;
    padding: 4px 10px;
    color: #607488;
    background: rgba(230, 244, 250, .76);
    border: 1px solid rgba(120, 170, 197, .23);
    border-radius: 999px;
    font-size: 12px;
    font-weight: 700;
    line-height: 1.45;
}

.melary-reserve__cards {
    display: grid;
    gap: 12px;
}

.melary-reserve[data-current-step="1"] .melary-reserve__cards {
    grid-template-columns: repeat(3, minmax(0, 1fr));
}

.mrv-settings-initial,
.mrv-settings-loading,
.mrv-settings-error {
    grid-column: 1 / -1;
}

.mrv-settings-initial {
    display: grid;
    justify-items: center;
}

.mrv-settings-initial .mrv-settings-loading {
    width: 100%;
}

.mrv-settings-fallback {
    margin-top: 10px;
    color: #607488;
    font-size: 13px;
    font-weight: 700;
    opacity: 0;
    visibility: hidden;
    animation: mrv-settings-fallback-in .18s ease 12s forwards;
}

.mrv-settings-error {
    padding: 18px;
    color: var(--mrv-muted);
    background: rgba(249, 251, 255, .9);
    border: 1px solid var(--mrv-line);
    border-radius: 15px;
    font-size: 13px;
    line-height: 1.7;
    text-align: center;
}

.mrv-settings-error p {
    margin: 0 0 12px;
}

.mrv-settings-retry {
    min-height: 42px;
    padding: 9px 18px;
    color: #34404e;
    background: var(--mrv-pearl);
    border: 1px solid rgba(105, 151, 203, .4);
    border-radius: 999px;
    font-size: 13px;
    font-weight: 700;
    cursor: pointer;
}

@keyframes mrv-settings-fallback-in {
    to {
        opacity: 1;
        visibility: visible;
    }
}

.melary-reserve[data-current-step="2"] .melary-reserve__cards {
    grid-template-columns: repeat(2, minmax(0, 1fr));
}

.melary-reserve__card {
    position: relative;
    width: 100%;
    min-height: 82px;
    padding: 16px 42px 16px 18px;
    color: var(--mrv-ink);
    background: var(--mrv-choice);
    border: 1px solid rgba(105, 137, 170, .46);
    border-radius: 16px;
    box-shadow: 0 8px 20px rgba(73, 89, 119, .09);
    text-align: left;
    cursor: pointer;
    transition: transform .14s ease, border-color .18s ease, background .18s ease, box-shadow .18s ease;
}

.melary-reserve__card::after {
    content: "";
    position: absolute;
    top: 50%;
    right: 20px;
    width: 8px;
    height: 8px;
    border-top: 2px solid #607b96;
    border-right: 2px solid #607b96;
    transform: translateY(-50%) rotate(45deg);
}

.melary-reserve__card strong {
    display: block;
    color: #313742;
    font-size: 17px;
    font-weight: 700;
    line-height: 1.5;
}

.melary-reserve__card span {
    display: block;
    margin-top: 4px;
    color: var(--mrv-muted);
    font-size: 12px;
    line-height: 1.55;
}

.mrv-menu-card {
    display: grid;
    grid-template-columns: 27px minmax(0, 1fr);
    gap: 13px;
    align-items: center;
    min-width: 0;
    padding: 15px;
    color: var(--mrv-ink);
    background: var(--mrv-choice);
    border: 1px solid rgba(105, 137, 170, .46);
    border-radius: 16px;
    box-shadow: 0 8px 20px rgba(73, 89, 119, .09);
    cursor: pointer;
    transition: transform .14s ease, border-color .18s ease, background .18s ease, box-shadow .18s ease;
}

.mrv-menu-card.is-selected {
    background: var(--mrv-pearl);
    border-color: rgba(69, 113, 158, .72);
    box-shadow: 0 0 0 3px rgba(72, 126, 172, .14), 0 10px 23px rgba(82, 103, 143, .13);
}

.mrv-menu-check {
    appearance: none;
    display: grid;
    place-items: center;
    width: 27px;
    height: 27px;
    margin: 0;
    background: rgba(255, 255, 255, .94);
    border: 2px solid #71879b;
    border-radius: 8px;
    cursor: pointer;
    transition: background .16s ease, border-color .16s ease;
}

.mrv-menu-check::after {
    content: "";
    width: 7px;
    height: 12px;
    margin-top: -2px;
    border-right: 2px solid #fff;
    border-bottom: 2px solid #fff;
    opacity: 0;
    transform: rotate(45deg) scale(.55);
    transition: opacity .14s ease, transform .14s ease;
}

.mrv-menu-check:checked {
    background: var(--mrv-action);
    border-color: #526f8c;
    box-shadow: 0 5px 12px rgba(65, 74, 111, .2);
}

.mrv-menu-check:checked::after {
    opacity: 1;
    transform: rotate(45deg) scale(1);
}

.mrv-menu-body {
    display: grid;
    gap: 6px;
    min-width: 0;
    width: 100%;
}

.mrv-menu-head {
    display: grid;
    grid-template-columns: minmax(0, 1fr) auto;
    gap: 8px;
    align-items: baseline;
    min-width: 0;
}

.mrv-menu-name {
    min-width: 0;
    color: #303641;
    font-size: 17px;
    font-weight: 700;
    line-height: 1.45;
}

.mrv-menu-duration {
    color: #7b8491;
    font-size: 11px;
    font-weight: 600;
    line-height: 1.4;
    white-space: nowrap;
}

.mrv-menu-bottom {
    display: grid;
    grid-template-columns: minmax(0, 1fr) auto;
    gap: 8px;
    align-items: center;
    min-width: 0;
}

.mrv-menu-price,
.mrv-price-line,
.mrv-amount,
.mrv-summary-price {
    display: inline-flex;
    align-items: baseline;
}

.mrv-menu-price,
.mrv-price-line,
.mrv-summary-price {
    min-width: 0;
    gap: 8px;
}

.mrv-price-line,
.mrv-summary-price,
.mrv-amount {
    white-space: nowrap;
}

.mrv-amount {
    gap: 1px;
}

.mrv-amount__num {
    letter-spacing: .01em;
}

.mrv-amount__unit {
    margin-left: 1px;
    font-size: .7em;
    font-weight: 700;
    line-height: 1;
}

.mrv-price-old {
    position: relative;
    display: inline-flex;
    align-items: baseline;
    color: #7c8490;
    font-size: .88em;
    font-weight: 600;
    opacity: .9;
}

.mrv-price-old::after {
    content: "";
    position: absolute;
    top: 52%;
    right: 0;
    left: 0;
    height: 1px;
    background: currentColor;
    transform: translateY(-50%);
}

.mrv-price-new {
    color: #bf4e62;
    font-size: 18px;
    font-weight: 800;
}

.mrv-price-current {
    color: #343a45;
    font-size: 18px;
    font-weight: 700;
}

.mrv-price-line.is-discount .mrv-price-old,
.mrv-summary-price.is-discount .mrv-price-old {
    order: 1;
}

.mrv-price-line.is-discount .mrv-price-new,
.mrv-summary-price.is-discount .mrv-price-new {
    order: 2;
}

.mrv-menu-price .mrv-price-line.is-discount .mrv-price-new {
    order: 1;
}

.mrv-menu-price .mrv-price-line.is-discount .mrv-price-old {
    order: 2;
}

.mrv-price-block {
    display: grid;
    justify-items: end;
    gap: 3px;
}

.mrv-price-block .mrv-price-new,
.mrv-price-block .mrv-price-current {
    font-size: 25px;
}

.mrv-summary-price .mrv-price-old {
    font-size: 14px;
}

.mrv-summary-price .mrv-price-new,
.mrv-summary-price .mrv-price-current {
    font-size: 26px;
}

.mrv-discount-badge {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-height: 24px;
    padding: 3px 8px;
    color: #a54458;
    background: rgba(252, 235, 241, .86);
    border: 1px solid rgba(202, 104, 132, .25);
    border-radius: 999px;
    font-size: 10px;
    font-weight: 800;
    line-height: 1.35;
    letter-spacing: .03em;
    white-space: nowrap;
}

.melary-reserve__summary-mini {
    margin-top: 28px;
}

.mrv-summary-title {
    margin: 0 0 10px;
    color: #515c69;
    font-size: 13px;
    font-weight: 700;
    line-height: 1.5;
    letter-spacing: .04em;
}

.mrv-summary-islands {
    display: grid;
    grid-template-columns: minmax(0, 1.25fr) minmax(250px, .75fr);
    gap: 12px;
}

.mrv-cost-island,
.mrv-time-island {
    padding: 16px;
    background:
        linear-gradient(rgba(255, 255, 255, .94), rgba(255, 255, 255, .9)) padding-box,
        linear-gradient(118deg, rgba(127, 196, 218, .36), rgba(160, 149, 218, .31), rgba(220, 157, 194, .28)) border-box;
    border: 1px solid transparent;
    border-radius: 17px;
    box-shadow: 0 8px 23px rgba(69, 84, 114, .055);
}

.mrv-cost-lines,
.mrv-time-lines {
    display: grid;
    gap: 9px;
}

.mrv-cost-row,
.mrv-time-lines > div {
    display: grid;
    grid-template-columns: minmax(0, 1fr) auto;
    gap: 10px;
    align-items: baseline;
}

.mrv-cost-row > span,
.mrv-time-lines span {
    color: #66717f;
    font-size: 13px;
    font-weight: 600;
    line-height: 1.5;
}

.mrv-cost-row strong,
.mrv-time-lines strong {
    color: #343b46;
    font-size: 15px;
    font-weight: 700;
    text-align: right;
    font-variant-numeric: tabular-nums;
}

.mrv-cost-row .mrv-price-line.is-compact .mrv-price-new,
.mrv-cost-row .mrv-price-line.is-compact .mrv-price-current {
    font-size: 15px;
}

.mrv-cost-row .mrv-price-line.is-compact .mrv-price-old {
    font-size: 12px;
}

.mrv-cost-total,
.mrv-time-total {
    display: grid;
    grid-template-columns: minmax(0, 1fr) auto;
    gap: 10px;
    align-items: baseline;
    margin-top: 13px;
    padding-top: 13px;
    border-top: 1px solid rgba(132, 151, 176, .21);
}

.mrv-cost-total > span,
.mrv-time-total > span {
    color: #454d59;
    font-size: 15px;
    font-weight: 700;
}

.mrv-cost-total strong,
.mrv-time-total strong {
    color: #303742;
    text-align: right;
}

.mrv-time-total strong {
    font-size: 25px;
    font-weight: 700;
}

.melary-reserve__actions {
    position: relative;
    z-index: 2;
    display: flex;
    align-items: center;
    justify-content: flex-end;
    gap: 10px;
    margin: 28px 0 0;
}

.melary-reserve__button,
.mrv-fixed-next {
    min-height: 52px;
    padding: 11px 22px;
    color: #fff;
    background: var(--mrv-action);
    border: 1px solid rgba(63, 77, 108, .52);
    border-radius: 15px;
    box-shadow: var(--mrv-action-shadow);
    font-weight: 800;
    line-height: 1.4;
    cursor: pointer;
    transition: transform .13s ease, filter .17s ease, box-shadow .17s ease;
}

.melary-reserve__button {
    min-width: 174px;
}

.melary-reserve__button.is-secondary {
    min-width: 104px;
    color: #4d5c6b;
    background: var(--mrv-back);
    border-color: rgba(102, 132, 161, .52);
    box-shadow: 0 5px 14px rgba(68, 82, 108, .08);
}

.melary-reserve__button[data-back],
.melary-reserve__button[data-price-menu-back],
.melary-reserve__button[data-price-back-to-simulator] {
    position: relative;
    padding-left: 42px;
}

.melary-reserve__button[data-back]::before,
.melary-reserve__button[data-price-menu-back]::before,
.melary-reserve__button[data-price-back-to-simulator]::before {
    content: "";
    position: absolute;
    top: 50%;
    left: 18px;
    width: 8px;
    height: 8px;
    border-bottom: 2px solid currentColor;
    border-left: 2px solid currentColor;
    transform: translateY(-50%) rotate(45deg);
}

.melary-reserve__button:disabled,
.mrv-fixed-next:disabled {
    opacity: .48;
    cursor: not-allowed;
}

.melary-reserve__fixed-summary {
    position: fixed;
    z-index: 9999;
    right: 50%;
    bottom: calc(14px + env(safe-area-inset-bottom));
    width: min(720px, calc(100% - 20px));
    padding: 10px 11px;
    background:
        linear-gradient(rgba(253, 254, 255, .94), rgba(251, 252, 255, .93)) padding-box,
        linear-gradient(108deg, rgba(103, 186, 215, .48), rgba(143, 135, 215, .43), rgba(217, 137, 181, .4)) border-box;
    border: 1px solid transparent;
    border-radius: 18px;
    box-shadow: 0 14px 36px rgba(57, 70, 99, .17);
    transform: translateX(50%);
    backdrop-filter: blur(18px);
    -webkit-backdrop-filter: blur(18px);
    transition: opacity .22s ease, transform .22s ease;
}

.melary-reserve__fixed-summary.is-hidden {
    opacity: 0;
    pointer-events: none;
    transform: translate(50%, 24px);
}

.mrv-fixed-inner {
    display: grid;
    grid-template-columns: minmax(0, 1fr) auto;
    gap: 10px;
    align-items: center;
}

.mrv-fixed-copy {
    display: flex;
    flex-wrap: wrap;
    align-items: baseline;
    gap: 3px;
    min-width: 0;
    color: #697482;
    font-size: 12px;
    font-weight: 600;
}

.mrv-fixed-copy strong {
    margin-left: 4px;
    color: #35404c;
    font-size: 14px;
    font-weight: 800;
    white-space: nowrap;
    font-variant-numeric: tabular-nums;
}

.mrv-fixed-separator {
    color: #9aa3af;
}

.mrv-fixed-next {
    min-height: 44px;
    padding: 9px 17px;
    border-radius: 13px;
    font-size: 13px;
    white-space: nowrap;
}

.melary-reserve__week-nav {
    display: grid;
    grid-template-columns: minmax(100px, 1fr) auto minmax(100px, 1fr);
    gap: 12px;
    align-items: center;
    margin: 0 0 16px;
}

.melary-reserve__week-label {
    min-width: 150px;
    color: #4b5562;
    font-size: 16px;
    font-weight: 700;
    text-align: center;
}

.melary-reserve__week-button {
    min-height: 44px;
    padding: 8px 15px;
    color: #4f5e6d;
    background: var(--mrv-back);
    border: 1px solid rgba(102, 132, 161, .48);
    border-radius: 13px;
    font-size: 13px;
    font-weight: 700;
    cursor: pointer;
    transition: background .16s ease, border-color .16s ease, transform .13s ease;
}

.melary-reserve__week-button:disabled {
    opacity: .36;
    cursor: not-allowed;
}

.melary-reserve__week-button[data-week-prev] {
    justify-self: start;
}

.melary-reserve__week-button[data-week-next] {
    justify-self: end;
}

.melary-reserve__week-grid-wrap {
    max-width: 100%;
    overflow: hidden;
    background: #fff;
    border: 1px solid rgba(129, 150, 178, .25);
    border-radius: 17px;
    box-shadow: 0 9px 26px rgba(67, 82, 111, .06);
    touch-action: pan-y;
}

.melary-reserve__week-grid {
    width: 100%;
    min-width: 0;
    background: #fff;
    border-collapse: separate;
    border-spacing: 0;
    table-layout: fixed;
}

.melary-reserve__week-grid th,
.melary-reserve__week-grid td {
    padding: 0;
    border-right: 1px solid rgba(132, 151, 176, .19);
    border-bottom: 1px solid rgba(132, 151, 176, .19);
    text-align: center;
    vertical-align: middle;
}

.melary-reserve__week-grid th:last-child,
.melary-reserve__week-grid td:last-child {
    border-right: 0;
}

.melary-reserve__week-grid tr:last-child th,
.melary-reserve__week-grid tr:last-child td {
    border-bottom: 0;
}

.melary-reserve__week-grid thead th {
    color: #4a5360;
    background: #f8faff;
}

.melary-reserve__month-row th {
    height: 36px;
    padding: 5px 8px;
    color: #697381;
    font-size: 13px;
    font-weight: 600;
    text-align: left;
}

.melary-reserve__day-row th {
    height: 62px;
    padding: 6px 2px;
    font-weight: 700;
}

.melary-reserve__day-row th span,
.melary-reserve__day-row th small {
    display: block;
    line-height: 1.3;
}

.melary-reserve__day-row th span {
    color: #3e4753;
    font-size: 17px;
}

.melary-reserve__day-row th small {
    margin-top: 2px;
    color: #727c89;
    font-size: 11px;
    font-weight: 600;
}

.melary-reserve__day-row th.is-saturday span,
.melary-reserve__day-row th.is-saturday small {
    color: #4f82b8;
}

.melary-reserve__day-row th.is-sunday span,
.melary-reserve__day-row th.is-sunday small {
    color: #bd6171;
}

.melary-reserve__time-head,
.melary-reserve__time-cell {
    position: sticky;
    left: 0;
    z-index: 5;
    width: 62px;
    min-width: 62px;
    color: #596370;
    background: #fbfcff !important;
    font-size: 13px;
    font-weight: 600;
    font-variant-numeric: tabular-nums;
}

.melary-reserve__month-row .melary-reserve__time-head,
.melary-reserve__day-row .melary-reserve__time-head {
    z-index: 7;
}

.melary-reserve__time-cell,
.melary-reserve__week-grid td,
.melary-reserve__week-slot {
    height: 52px;
}

.melary-reserve__week-grid td.is-closed {
    background: #f3f5f8;
}

.melary-reserve__week-slot {
    width: 100%;
    padding: 0;
    background: transparent;
    border: 0;
    cursor: pointer;
    transition: background .15s ease, transform .12s ease;
}

.melary-reserve__week-slot.is-available {
    background: linear-gradient(145deg, rgba(234, 244, 251, .96), rgba(243, 235, 248, .94));
    box-shadow: inset 0 0 0 1px rgba(91, 132, 174, .3);
}

.melary-reserve__week-slot:disabled {
    cursor: not-allowed;
}

.melary-reserve__mark {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-width: 25px;
    height: 28px;
    font-size: 23px;
    font-weight: 500;
    line-height: 1;
}

.melary-reserve__mark.is-on {
    color: #6e55a3;
    font-weight: 700;
}

.melary-reserve__mark.is-off {
    color: #b2b8c0;
    font-size: 27px;
    font-weight: 300;
}

.melary-reserve__mark.is-closed {
    color: #929aa4;
    font-size: 18px;
}

.melary-reserve__week-body {
    transition: opacity .18s ease, transform .18s ease;
}

.melary-reserve__week-grid-wrap.is-loading-week tbody {
    opacity: .45;
    transform: translateX(-4px);
}

.melary-reserve__loading,
.melary-reserve__empty {
    margin: 0;
    padding: 18px;
    color: var(--mrv-muted);
    background: rgba(249, 251, 255, .9);
    border: 1px solid var(--mrv-line);
    border-radius: 15px;
    font-size: 13px;
    line-height: 1.7;
    text-align: center;
}

.melary-reserve[data-current-step="3"] {
    width: min(980px, 100%);
    max-width: 980px;
}

.melary-reserve[data-current-step="3"] .melary-reserve__body {
    padding-right: 0;
    padding-left: 0;
}

.melary-reserve[data-current-step="3"] .melary-reserve__panel > h3,
.melary-reserve[data-current-step="3"] .melary-reserve__week-nav,
.melary-reserve[data-current-step="3"] .melary-reserve__actions {
    width: min(880px, calc(100% - 32px));
    margin-right: auto;
    margin-left: auto;
}

.melary-reserve[data-current-step="3"] .melary-reserve__week-grid-wrap {
    width: 100%;
    border-right: 0;
    border-left: 0;
    border-radius: 0;
}

.melary-reserve[data-current-step="4"] .melary-reserve__panel,
.melary-reserve[data-current-step="5"] .melary-reserve__panel {
    max-width: 640px;
    margin: 0 auto;
}

.melary-reserve__confirm {
    padding: 17px;
    background:
        linear-gradient(rgba(255, 255, 255, .94), rgba(255, 255, 255, .9)) padding-box,
        linear-gradient(118deg, rgba(127, 196, 218, .35), rgba(160, 149, 218, .3), rgba(220, 157, 194, .27)) border-box;
    border: 1px solid transparent;
    border-radius: 18px;
    box-shadow: 0 9px 25px rgba(69, 84, 114, .055);
}

.mrv-confirm-section,
.mrv-confirm-meta {
    margin: 0;
}

.mrv-confirm-section h4 {
    display: none;
}

.mrv-confirm-meta > div {
    display: grid;
    grid-template-columns: 92px minmax(0, 1fr);
    gap: 12px;
    align-items: baseline;
    padding: 10px 0;
    border-bottom: 1px solid rgba(132, 151, 176, .18);
}

.mrv-confirm-meta > div:last-child {
    border-bottom: 0;
}

.mrv-confirm-meta dt {
    color: #77818e;
    font-size: 13px;
    font-weight: 600;
}

.mrv-confirm-meta dd {
    min-width: 0;
    margin: 0;
    color: #343b46;
    font-size: 14px;
    font-weight: 700;
    text-align: right;
}

.mrv-confirm-meta dd strong,
.mrv-confirm-meta dd small {
    display: block;
}

.mrv-confirm-meta dd strong {
    font-size: 20px;
}

.mrv-confirm-meta dd small {
    margin-top: 2px;
    color: #818a96;
    font-size: 11px;
    font-weight: 500;
    line-height: 1.5;
}

.mrv-confirm-meta .is-payment-total {
    align-items: end;
    padding-top: 13px;
}

.mrv-confirm-meta .is-payment-total dt {
    color: #4d5662;
    font-weight: 700;
}

.mrv-confirm-meta .is-payment-total dd {
    display: grid;
    justify-items: end;
}

.mrv-confirm-breakdown-box {
    position: relative;
    margin-top: 17px;
    padding: 18px 13px 11px;
    background: rgba(248, 250, 254, .82);
    border: 1px solid rgba(129, 150, 178, .24);
    border-radius: 13px;
}

.mrv-confirm-breakdown-label {
    position: absolute;
    top: -11px;
    left: 12px;
    padding: 3px 9px;
    color: #687483;
    background: #fff;
    border: 1px solid rgba(129, 150, 178, .25);
    border-radius: 999px;
    font-size: 10px;
    font-weight: 700;
    line-height: 1.4;
}

.mrv-confirm-breakdown-list {
    display: grid;
    gap: 6px;
    margin: 0;
    padding: 0;
    list-style: none;
}

.mrv-confirm-breakdown-list li {
    display: grid;
    grid-template-columns: minmax(0, 1fr) auto;
    gap: 10px;
    align-items: baseline;
    color: #596472;
    font-size: 12px;
    line-height: 1.5;
}

.mrv-confirm-breakdown-list strong {
    color: #414a56;
    font-weight: 600;
    text-align: right;
}

.mrv-confirm-breakdown-list .mrv-price-line.is-compact .mrv-price-new,
.mrv-confirm-breakdown-list .mrv-price-line.is-compact .mrv-price-current {
    font-size: 13px;
}

.mrv-confirm-breakdown-list .mrv-price-line.is-compact .mrv-price-old {
    font-size: 11px;
}

.mrv-confirm-assurance {
    margin-top: 14px;
    padding: 15px;
    background: rgba(241, 248, 252, .76);
    border: 1px solid rgba(120, 164, 192, .22);
    border-radius: 16px;
}

.mrv-confirm-assurance__title {
    position: relative;
    margin: 0 0 8px;
    padding-left: 28px;
    color: #4c5b69;
    font-size: 13px;
    font-weight: 700;
    line-height: 1.6;
}

.mrv-confirm-assurance__title::before {
    content: "i";
    position: absolute;
    top: 50%;
    left: 0;
    display: grid;
    place-items: center;
    width: 19px;
    height: 19px;
    color: #6d879a;
    border: 1px solid #9eb8c9;
    border-radius: 50%;
    font-size: 11px;
    font-weight: 700;
    line-height: 1;
    transform: translateY(-50%);
}

.mrv-confirm-assurance__list {
    display: grid;
    gap: 0;
    margin: 0;
    padding: 0;
    list-style: none;
}

.mrv-confirm-assurance__list li {
    position: relative;
    margin: 0;
    padding: 7px 0 7px 24px;
    color: #687481;
    border-top: 1px dashed rgba(126, 157, 179, .22);
    font-size: 12px;
    font-weight: 500;
    line-height: 1.6;
}

.mrv-confirm-assurance__list li:first-child {
    border-top: 0;
}

.mrv-confirm-assurance__list li::before {
    content: "";
    position: absolute;
    top: 9px;
    left: 0;
    width: 16px;
    height: 16px;
    background: #8daabe;
    border-radius: 50%;
}

.mrv-confirm-assurance__list li::after {
    content: "";
    position: absolute;
    top: 12px;
    left: 5px;
    width: 5px;
    height: 8px;
    border-right: 1.5px solid #fff;
    border-bottom: 1.5px solid #fff;
    transform: rotate(45deg);
}

.mrv-confirm-assurance__list li.is-primary strong,
.mrv-confirm-assurance__list li.is-primary span {
    display: block;
}

.mrv-confirm-assurance__list li.is-primary strong {
    color: #4d5b68;
    font-size: 12px;
    font-weight: 700;
}

.mrv-confirm-assurance__list li.is-primary span {
    margin-top: 1px;
    color: #77828e;
    font-size: 11px;
}

.melary-reserve__form {
    display: grid;
    gap: 18px;
    margin-top: 22px;
}

.melary-reserve__form label {
    display: grid;
    gap: 7px;
    width: 100%;
    color: #414955;
    font-size: 13px;
    font-weight: 700;
}

.mrv-form-label {
    display: inline-flex;
    align-items: center;
    gap: 7px;
}

.mrv-required {
    display: none;
}

.melary-reserve input[type="text"],
.melary-reserve input[type="tel"] {
    width: 100%;
    min-height: 50px;
    margin: 0;
    padding: 11px 14px;
    color: #303641;
    background: rgba(255, 255, 255, .96);
    border: 1px solid rgba(128, 149, 177, .32);
    border-radius: 13px;
    font-size: 16px;
    line-height: 1.4;
    box-shadow: inset 0 1px 2px rgba(57, 69, 89, .025);
    transition: border-color .16s ease, box-shadow .16s ease, background .16s ease;
}

.melary-reserve input[type="text"]::placeholder,
.melary-reserve input[type="tel"]::placeholder {
    color: #a1a8b2;
}

.melary-reserve input[type="text"]:focus,
.melary-reserve input[type="tel"]:focus {
    background: #fff;
    border-color: rgba(91, 143, 196, .58);
    box-shadow: 0 0 0 4px rgba(117, 173, 219, .09);
}

.mrv-field-note {
    display: block;
    width: 100%;
    margin: 0;
    color: #828b97;
    font-size: 11px;
    font-weight: 500;
    line-height: 1.55;
    text-align: left;
}

.melary-reserve__error {
    margin-top: 12px;
    padding: 0 2px;
    color: #b14658;
    font-size: 13px;
    font-weight: 700;
    line-height: 1.6;
}

.mrv-complete {
    display: grid;
    justify-items: center;
    gap: 10px;
    padding: 8px 0 2px;
    text-align: center;
}

.mrv-complete__orb {
    position: relative;
    width: 66px;
    height: 66px;
    margin-bottom: 1px;
    background:
        radial-gradient(circle at 39% 35%, rgba(255, 255, 255, .98) 0 15%, rgba(207, 242, 248, .92) 35%, rgba(225, 220, 248, .88) 65%, rgba(248, 214, 233, .8) 100%);
    border: 1px solid rgba(137, 190, 222, .52);
    border-radius: 50%;
    box-shadow: inset 0 0 0 6px rgba(255, 255, 255, .27), 0 10px 24px rgba(91, 119, 159, .12);
}

.mrv-complete__orb::before,
.mrv-complete__orb::after {
    content: "";
    position: absolute;
    border-radius: 50%;
    background: rgba(157, 132, 202, .78);
}

.mrv-complete__orb::before {
    top: 3px;
    right: 0;
    width: 5px;
    height: 5px;
}

.mrv-complete__orb::after {
    bottom: 7px;
    left: -1px;
    width: 4px;
    height: 4px;
    background: rgba(104, 158, 194, .76);
}

.mrv-complete__orb span::before {
    content: "";
    position: absolute;
    top: 21px;
    left: 25px;
    width: 13px;
    height: 22px;
    border-right: 3px solid #6c8295;
    border-bottom: 3px solid #6c8295;
    transform: rotate(45deg);
}

.mrv-complete__kicker {
    margin: 0;
    color: #758496;
    font-size: 12px;
    font-weight: 700;
    line-height: 1.5;
    letter-spacing: .11em;
}

.mrv-complete h3 {
    margin: 0;
    color: #2d333d;
    font-size: clamp(23px, 5vw, 28px);
    font-weight: 700;
    line-height: 1.45;
    letter-spacing: .025em;
}

.mrv-complete__lead {
    margin: 2px 0 0;
    color: #707986;
    font-size: 13px;
    font-weight: 500;
    line-height: 1.75;
}

.mrv-complete__actions {
    width: min(100%, 500px);
    margin-top: 8px;
}

.mrv-line-button {
    position: relative;
    display: grid;
    grid-template-columns: minmax(0, 1fr) 36px;
    align-items: center;
    width: 100%;
    min-height: 60px;
    padding: 9px 9px 9px 44px;
    overflow: hidden;
    color: #343b48;
    background:
        var(--mrv-pearl) padding-box,
        linear-gradient(102deg, rgba(78, 176, 209, .75), rgba(130, 121, 208, .71), rgba(211, 118, 170, .65)) border-box;
    border: 1px solid transparent;
    border-radius: 17px;
    box-shadow: 0 10px 25px rgba(89, 107, 147, .12);
    font-size: 15px;
    font-weight: 700;
    letter-spacing: .02em;
}

.mrv-line-button::before {
    content: "";
    position: absolute;
    top: -42%;
    left: -35%;
    width: 24%;
    height: 184%;
    background: linear-gradient(90deg, transparent, rgba(255, 255, 255, .72), transparent);
    transform: rotate(18deg);
    animation: mrv-button-shine 5.2s ease-in-out infinite;
}

.mrv-button-arrow {
    display: grid;
    place-items: center;
    width: 36px;
    height: 36px;
    justify-self: end;
    background: rgba(255, 255, 255, .64);
    border: 1px solid rgba(131, 147, 173, .22);
    border-radius: 50%;
    font-size: 17px;
    font-weight: 400;
    line-height: 1;
}

.mrv-complete__note {
    margin: -1px 0 6px;
    color: #677280;
    font-size: 11px;
    font-weight: 600;
    line-height: 1.55;
}

.mrv-complete__note span {
    color: #8a929d;
    font-size: 10px;
    font-weight: 500;
}

.mrv-copy-card {
    width: min(100%, 500px);
    margin-top: 4px;
    overflow: hidden;
    background: rgba(250, 252, 255, .8);
    border: 1px solid rgba(132, 151, 176, .22);
    border-radius: 16px;
    text-align: left;
}

.mrv-copy-card__title {
    margin: 0;
    padding: 10px 13px;
    color: #66717f;
    background: rgba(244, 247, 252, .88);
    border-bottom: 1px solid rgba(132, 151, 176, .18);
    font-size: 11px;
    font-weight: 700;
    line-height: 1.5;
}

.mrv-copy-preview {
    display: grid;
    padding: 3px 13px;
}

.mrv-copy-row {
    display: grid;
    grid-template-columns: 104px minmax(0, 1fr);
    gap: 10px;
    padding: 9px 0;
    border-bottom: 1px solid rgba(132, 151, 176, .16);
}

.mrv-copy-row:last-child {
    border-bottom: 0;
}

.mrv-copy-row > span {
    color: #848d99;
    font-size: 11px;
    font-weight: 600;
}

.mrv-copy-row > strong {
    min-width: 0;
    color: #46505c;
    font-size: 12px;
    font-weight: 700;
    line-height: 1.55;
    overflow-wrap: anywhere;
}

.mrv-copy-row.is-full {
    grid-template-columns: 1fr;
}

.melary-reserve__copy {
    position: fixed;
    top: 0;
    left: -9999px;
    width: 1px;
    height: 1px;
    opacity: 0;
    pointer-events: none;
}

.mrv-sp-only {
    display: none;
}

.melary-reserve[data-current-step="2"] .melary-reserve__panel.is-active {
    padding-bottom: 92px;
}

.mrv-reserve-hidden-bottom-menu {
    display: none !important;
}

.melary-reserve[data-entry-mode="price"] [data-direct-steps] {
    display: none;
}

.melary-reserve [data-price-steps] {
    grid-template-columns: repeat(3, minmax(0, 1fr));
}

.melary-reserve[data-entry-mode="direct"] [data-price-steps] {
    display: none;
}

.mrv-prefill-message {
    width: min(880px, 100%);
    margin: 0 auto 14px;
    padding: 13px 15px;
    color: #6c4c55;
    background: rgba(255, 246, 248, .96);
    border: 1px solid rgba(190, 112, 137, .28);
    border-radius: 14px;
    font-size: 13px;
    font-weight: 600;
    line-height: 1.7;
}

.mrv-prefill-card {
    width: min(880px, 100%);
    margin: 0 auto 20px;
    padding: 18px;
    background: #eee;
    border: 1px solid transparent;
    border-radius: 18px;
    box-shadow: 0 9px 25px rgba(69, 84, 114, .06);
}

.mrv-prefill-card > h3 {
    margin: 0 0 13px;
    color: #34404d;
    font-size: 17px;
    line-height: 1.55;
}

.mrv-prefill-card__menus {
    display: flex;
    flex-wrap: wrap;
    gap: 6px;
    margin: 0 0 14px;
    padding: 0;
    list-style: none;
}

.mrv-prefill-card__menus li {
    padding: 5px 10px;
    color: #536679;
    background: rgba(232, 244, 250, .82);
    border: 1px solid rgba(112, 166, 196, .24);
    border-radius: 999px;
    font-size: 12px;
    font-weight: 700;
}

.mrv-prefill-card__totals {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 8px;
    margin: 0;
}

.mrv-prefill-card__totals > div {
    min-width: 0;
    padding: 10px 11px;
    background: rgba(248, 250, 255, .9);
    border: 1px solid rgba(131, 151, 180, .2);
    border-radius: 13px;
}

.mrv-prefill-card__totals dt {
    margin: 0 0 3px;
    color: var(--mrv-muted);
    font-size: 11px;
    font-weight: 600;
}

.mrv-prefill-card__totals dd {
    min-width: 0;
    margin: 0;
    color: #34404d;
    font-size: 15px;
    font-weight: 800;
}

.mrv-prefill-card__note {
    margin: 11px 0 0;
    color: #77818e;
    font-size: 11px;
}

.mrv-prefill-edit {
    min-width: 0;
    min-height: 44px;
    margin-top: 13px;
    padding: 8px 15px;
    font-size: 13px;
}

.melary-reserve[data-current-step="price-location-datetime"] {
    width: min(980px, 100%);
    max-width: 980px;
}

.melary-reserve[data-current-step="price-location-datetime"] .melary-reserve__body {
    padding-right: 0;
    padding-left: 0;
}

.melary-reserve[data-current-step="price-location-datetime"] .mrv-prefill-message,
.melary-reserve[data-current-step="price-location-datetime"] .mrv-prefill-card,
.melary-reserve[data-current-step="price-location-datetime"] [data-location-panel] {
    width: min(880px, calc(100% - 40px));
    margin-right: auto;
    margin-left: auto;
}

.melary-reserve[data-current-step="price-location-datetime"] [data-location-panel] {
    padding-bottom: 4px;
}

.melary-reserve[data-current-step="price-location-datetime"][data-price-slots-expanded="true"] [data-location-panel] {
    margin-bottom: 42px;
    padding: 16px;
    background: #eee;
    border: 1px solid rgba(130, 151, 180, .2);
    border-radius: 17px;
}

.melary-reserve[data-current-step="price-location-datetime"][data-price-slots-expanded="true"] [data-location-panel] > h3 {
    margin-bottom: 10px;
    font-size: 16px;
}

.melary-reserve[data-current-step="price-location-datetime"] [data-slots-panel] > h3,
.melary-reserve[data-current-step="price-location-datetime"] [data-slots-panel] .melary-reserve__week-nav,
.melary-reserve[data-current-step="price-location-datetime"] [data-slots-panel] .melary-reserve__actions {
    width: min(880px, calc(100% - 32px));
    margin-right: auto;
    margin-left: auto;
}

.melary-reserve[data-entry-mode="price"][data-current-step="price-location-datetime"] .melary-reserve__fixed-summary {
    display: none !important;
}

.mrv-selected-location {
    display: grid;
    grid-template-columns: auto minmax(0, 1fr) auto;
    gap: 10px;
    align-items: center;
    min-height: 56px;
    padding: 9px 11px 9px 14px;
    background: #fff;
    border: 1px solid rgba(117, 154, 194, .34);
    border-radius: 14px;
}

.mrv-selected-location > span {
    color: var(--mrv-muted);
    font-size: 11px;
    font-weight: 600;
}

.mrv-selected-location > strong {
    min-width: 0;
    color: #34404d;
    font-size: 16px;
}

.mrv-location-change {
    min-height: 44px;
    padding: 8px 13px;
    color: #5d6876;
    background: rgba(249, 251, 255, .95);
    border: 1px solid rgba(128, 148, 175, .32);
    border-radius: 12px;
    font-size: 12px;
    font-weight: 700;
    cursor: pointer;
}

.is-location-card.is-selected {
    background: var(--mrv-pearl);
    border-color: rgba(69, 113, 158, .72);
    box-shadow: 0 0 0 3px rgba(72, 126, 172, .14), 0 10px 23px rgba(82, 103, 143, .13);
}

.is-location-card.is-selected::after {
    width: 10px;
    height: 6px;
    border-top: 0;
    border-right: 2px solid #5d7e9e;
    border-bottom: 2px solid #5d7e9e;
    transform: translateY(-65%) rotate(45deg);
}

.mrv-price-flow-actions {
    justify-content: space-between;
}

.mrv-no-availability {
    width: min(880px, calc(100% - 32px));
    margin: 16px auto 0;
    padding: 16px;
    color: var(--mrv-muted);
    background: rgba(249, 251, 255, .94);
    border: 1px solid var(--mrv-line);
    border-radius: 15px;
    text-align: center;
}

.mrv-no-availability > p {
    margin: 0;
}

.mrv-no-availability__actions {
    display: flex;
    justify-content: center;
    gap: 9px;
    margin-top: 13px;
}

.melary-reserve__week-slot.is-selected {
    background: var(--mrv-action);
    box-shadow: inset 0 0 0 2px rgba(255, 255, 255, .42), 0 5px 13px rgba(64, 70, 108, .22);
}

.melary-reserve__week-slot.is-selected .melary-reserve__mark.is-on {
    color: #fff;
}

@keyframes mrv-panel-in {
    from {
        opacity: 0;
        transform: translateY(5px);
    }
    to {
        opacity: 1;
        transform: translateY(0);
    }
}

@keyframes mrv-button-shine {
    0%, 65% {
        left: -35%;
        opacity: 0;
    }
    70% {
        opacity: 1;
    }
    84%, 100% {
        left: 116%;
        opacity: 0;
    }
}

@media (hover: hover) {
    .melary-reserve__card:hover,
    .mrv-menu-card:hover {
        border-color: rgba(73, 120, 166, .66);
        box-shadow: 0 12px 25px rgba(73, 89, 119, .14);
        transform: translateY(-2px);
    }

    .melary-reserve__button:hover:not(:disabled),
    .mrv-fixed-next:hover:not(:disabled) {
        background: var(--mrv-action-hover);
        box-shadow: 0 13px 29px rgba(55, 59, 97, .3);
    }

    .melary-reserve__button.is-secondary:hover:not(:disabled),
    .melary-reserve__week-button:hover:not(:disabled) {
        color: #3f5366;
        background: linear-gradient(135deg, #e4eff7, #f1e5ef);
        border-color: rgba(79, 122, 164, .68);
        box-shadow: 0 7px 16px rgba(68, 82, 108, .12);
    }

    .melary-reserve__week-slot.is-available:hover {
        background: linear-gradient(145deg, rgba(218, 238, 249, .98), rgba(233, 220, 244, .98));
    }
}

.melary-reserve__card:active,
.mrv-menu-card:active,
.melary-reserve__button:active:not(:disabled),
.mrv-fixed-next:active:not(:disabled),
.melary-reserve__week-button:active:not(:disabled),
.melary-reserve__week-slot:active:not(:disabled) {
    transform: scale(.985);
}

@media (max-width: 768px) {
    .melary-reserve {
        width: calc(100% - 16px);
        margin: 10px auto 38px;
        border-radius: 21px;
    }

    .melary-reserve__head {
        padding: 24px 16px 15px;
        border-radius: 20px 20px 0 0;
    }

    .melary-reserve__title {
        font-size: 25px;
    }

    .melary-reserve__steps {
        gap: 5px;
        padding: 0 10px 17px;
    }

    .melary-reserve__steps > span {
        min-height: 35px;
        padding: 6px 4px;
        font-size: 10px;
        letter-spacing: -.01em;
    }

    .melary-reserve__body {
        padding: 17px 12px 24px;
    }

    .melary-reserve__panel > h3 {
        margin-bottom: 10px;
        font-size: 21px;
    }

    .melary-reserve__note {
        font-size: 12px;
    }

    .melary-reserve[data-current-step="1"] .melary-reserve__cards,
    .melary-reserve[data-current-step="2"] .melary-reserve__cards {
        grid-template-columns: 1fr;
        gap: 9px;
    }

    .melary-reserve__card {
        min-height: 70px;
        padding: 13px 40px 13px 16px;
        border-radius: 14px;
    }

    .mrv-menu-card {
        padding: 14px 13px;
        border-radius: 14px;
    }

    .mrv-menu-name {
        font-size: 16px;
    }

    .mrv-summary-islands {
        grid-template-columns: 1fr;
        gap: 10px;
    }

    .melary-reserve__actions {
        flex-direction: column-reverse;
        gap: 9px;
        margin-top: 24px;
    }

    .melary-reserve__button {
        width: 100%;
        min-width: 0;
    }

    .melary-reserve__fixed-summary {
        bottom: calc(8px + env(safe-area-inset-bottom));
        width: calc(100% - 14px);
        padding: 8px 9px;
        border-radius: 16px;
    }

    .mrv-fixed-inner {
        gap: 7px;
    }

    .mrv-fixed-copy {
        font-size: 11px;
    }

    .mrv-fixed-copy strong {
        font-size: 12px;
    }

    .mrv-fixed-next {
        min-height: 42px;
        padding: 8px 13px;
        font-size: 12px;
    }

    .melary-reserve[data-current-step="3"] {
        width: 100%;
        max-width: none;
        margin-right: 0;
        margin-left: 0;
        border-right: 0;
        border-left: 0;
        border-radius: 0;
    }

    .melary-reserve[data-current-step="3"] .melary-reserve__head {
        border-radius: 0;
    }

    .melary-reserve[data-current-step="3"] .melary-reserve__panel > h3,
    .melary-reserve[data-current-step="3"] .melary-reserve__week-nav,
    .melary-reserve[data-current-step="3"] .melary-reserve__actions {
        width: calc(100% - 24px);
    }

    .melary-reserve[data-current-step="3"] .melary-reserve__week-grid-wrap {
        width: 100vw;
        max-width: 100vw;
        margin-left: 50%;
        transform: translateX(-50%);
    }

    .melary-reserve__week-nav {
        grid-template-columns: 1fr 1fr;
        gap: 8px;
    }

    .melary-reserve__week-label {
        grid-row: 1;
        grid-column: 1 / -1;
        justify-self: center;
        font-size: 15px;
    }

    .melary-reserve__week-button[data-week-prev] {
        grid-row: 2;
        grid-column: 1;
    }

    .melary-reserve__week-button[data-week-next] {
        grid-row: 2;
        grid-column: 2;
    }

    .melary-reserve__week-button {
        min-height: 42px;
        padding: 7px 12px;
        font-size: 12px;
    }

    .melary-reserve__month-row th {
        height: 32px;
        padding: 4px 5px;
        font-size: 11px;
    }

    .melary-reserve__day-row th {
        height: 57px;
    }

    .melary-reserve__day-row th span {
        font-size: 15px;
    }

    .melary-reserve__day-row th small {
        font-size: 10px;
    }

    .melary-reserve__time-head,
    .melary-reserve__time-cell {
        width: 53px;
        min-width: 53px;
        font-size: 11px;
    }

    .melary-reserve__time-cell,
    .melary-reserve__week-grid td,
    .melary-reserve__week-slot {
        height: 49px;
    }

    .melary-reserve__mark {
        font-size: 21px;
    }

    .melary-reserve__mark.is-off {
        font-size: 25px;
    }

    .melary-reserve__confirm {
        padding: 14px;
        border-radius: 16px;
    }

    .mrv-confirm-meta > div {
        grid-template-columns: 78px minmax(0, 1fr);
        gap: 9px;
    }

    .mrv-confirm-assurance {
        padding: 13px;
    }

    .mrv-complete {
        padding-top: 4px;
    }

    .mrv-complete__orb {
        width: 61px;
        height: 61px;
    }

    .mrv-complete__orb span::before {
        top: 19px;
        left: 23px;
        width: 12px;
        height: 20px;
    }

    .mrv-complete h3 {
        font-size: 23px;
    }

    .mrv-complete__actions {
        margin-top: 7px;
    }

    .mrv-line-button {
        min-height: 58px;
    }

    .mrv-copy-row {
        grid-template-columns: 88px minmax(0, 1fr);
        gap: 8px;
    }

    .mrv-sp-only {
        display: inline;
    }

    .melary-reserve[data-current-step="price-location-datetime"] {
        width: 100%;
        max-width: none;
        margin-right: 0;
        margin-left: 0;
        border-right: 0;
        border-left: 0;
        border-radius: 0;
    }

    .melary-reserve[data-current-step="price-location-datetime"] .melary-reserve__head {
        border-radius: 0;
    }

    .melary-reserve[data-current-step="price-location-datetime"] .mrv-prefill-message,
    .melary-reserve[data-current-step="price-location-datetime"] .mrv-prefill-card,
    .melary-reserve[data-current-step="price-location-datetime"] [data-location-panel] {
        width: calc(100% - 24px);
    }

    .mrv-prefill-card {
        padding: 14px;
        border-radius: 16px;
    }

    .mrv-prefill-card__totals {
        grid-template-columns: 1fr;
    }

    .mrv-prefill-card__totals > div {
        display: grid;
        grid-template-columns: minmax(0, 1fr) auto;
        gap: 8px;
        align-items: baseline;
    }

    .mrv-prefill-card__totals dt {
        margin: 0;
    }

    .mrv-selected-location {
        grid-template-columns: minmax(0, 1fr) auto;
    }

    .mrv-selected-location > span {
        grid-column: 1 / -1;
        margin-bottom: -7px;
    }

    .melary-reserve[data-current-step="price-location-datetime"] [data-slots-panel] .melary-reserve__week-grid-wrap {
        width: 100vw;
        max-width: 100vw;
        margin-left: 50%;
        transform: translateX(-50%);
    }

    .mrv-price-flow-actions,
    .mrv-no-availability__actions {
        flex-direction: column;
    }

    .mrv-no-availability__actions .melary-reserve__button {
        width: 100%;
    }
}

@media (max-width: 390px) {
    .mrv-menu-head {
        grid-template-columns: minmax(0, 1fr);
        gap: 1px;
    }

    .mrv-menu-duration {
        white-space: normal;
    }

    .mrv-menu-bottom {
        grid-template-columns: minmax(0, 1fr) auto;
        gap: 5px;
    }

    .mrv-discount-badge {
        padding: 3px 6px;
        font-size: 9px;
    }

    .mrv-price-line,
    .mrv-summary-price {
        gap: 5px;
    }

    .mrv-price-new,
    .mrv-price-current {
        font-size: 16px;
    }

    .mrv-fixed-copy {
        display: grid;
        gap: 0;
    }

    .mrv-fixed-separator {
        display: none;
    }

    .mrv-fixed-copy strong {
        margin-left: 2px;
    }

    .mrv-complete__break {
        display: none;
    }

    .mrv-copy-row {
        grid-template-columns: 78px minmax(0, 1fr);
    }

    .mrv-selected-location {
        grid-template-columns: 1fr;
    }

    .mrv-selected-location > span {
        grid-column: auto;
        margin-bottom: -5px;
    }

    .mrv-location-change {
        width: 100%;
    }
}

@media (max-width: 340px) {
    .melary-reserve [data-price-steps] > span {
        min-height: 42px;
        padding-right: 3px;
        padding-left: 3px;
        font-size: 9px;
    }

    .mrv-prefill-card__menus {
        gap: 4px;
    }

    .mrv-prefill-card__menus li {
        padding: 4px 7px;
        font-size: 11px;
    }

    .mrv-prefill-card__totals dd {
        font-size: 14px;
    }
}

@media (prefers-reduced-motion: reduce) {
    .melary-reserve *,
    .melary-reserve *::before,
    .melary-reserve *::after {
        animation-duration: .01ms !important;
        animation-iteration-count: 1 !important;
        scroll-behavior: auto !important;
        transition-duration: .01ms !important;
    }
}
