/* Cancellation policy: scoped to the reservation form. */
.mrv-policy__consent {
    display: flex;
    align-items: center;
    gap: 9px;
    min-height: 44px;
}

.mrv-policy__consent input[type="checkbox"] {
    flex: 0 0 20px;
    width: 20px;
    height: 20px;
    margin: 0;
    accent-color: #715c84;
    cursor: pointer;
}

.mrv-policy__label {
    color: #414955;
    font-size: 14px;
    line-height: 1.8;
}

.melary-reserve__form .mrv-policy__label label {
    display: inline;
    width: auto;
    font: inherit;
    cursor: pointer;
}

.melary-reserve .mrv-policy__open {
    display: inline;
    margin: 0;
    padding: 10px 0;
    color: #5e4774;
    background: none;
    border: 0;
    border-radius: 2px;
    font: inherit;
    font-weight: 600;
    text-decoration: underline;
    text-underline-offset: 3px;
    cursor: pointer;
}

.mrv-policy__error {
    margin: 4px 0 0;
    color: #b12d45;
    font-size: 13px;
    font-weight: 600;
    line-height: 1.7;
}

html.mrv-policy-is-open {
    overflow: hidden;
}

.melary-reserve .mrv-policy-dialog {
    position: fixed;
    inset: 0;
    width: min(620px, calc(100% - 28px));
    max-width: none;
    max-height: 86vh;
    max-height: 86dvh;
    margin: auto;
    padding: 0;
    overflow: hidden;
    color: #303641;
    background: #fff;
    border: 1px solid #dce0e8;
    border-radius: 18px;
    box-shadow: 0 20px 70px rgba(35, 32, 49, .22);
    font-family: inherit;
}

.melary-reserve .mrv-policy-dialog[open] {
    display: flex;
    flex-direction: column;
}

.mrv-policy-dialog::backdrop {
    background: rgba(27, 30, 42, .48);
}

.mrv-policy-dialog__header {
    display: flex;
    align-items: center;
    justify-content: space-between;
    flex: 0 0 auto;
    gap: 8px;
    padding: 12px 14px 12px 22px;
    border-bottom: 1px solid #e7e9ee;
}

.mrv-policy-dialog__header h2 {
    margin: 0;
    font-size: 18px;
    font-weight: 700;
    line-height: 1.5;
}

.melary-reserve .mrv-policy-dialog__close {
    flex: 0 0 44px;
    width: 44px;
    height: 44px;
    padding: 0;
    color: #515965;
    background: #f3f4f7;
    border: 0;
    border-radius: 50%;
    font-size: 26px;
    line-height: 1;
    cursor: pointer;
}

.mrv-policy-dialog__body {
    min-height: 0;
    padding: 20px 24px;
    overflow-y: auto;
    overscroll-behavior: contain;
    font-size: 14px;
    line-height: 1.9;
    overflow-wrap: anywhere;
}

.mrv-policy-dialog__body p {
    margin: 0 0 1em;
}

.melary-reserve .mrv-policy-dialog__body h3 {
    margin: 1.7em 0 .65em;
    font-size: 15px;
    line-height: 1.75;
    font-weight: 700;
}

.mrv-policy-dialog__body ul {
    margin: 0 0 1em;
    padding-left: 1.5em;
    list-style: disc;
}

.mrv-policy-dialog__body li {
    margin: .45em 0;
}

.mrv-policy-dialog__body > :last-child {
    margin-bottom: 0;
}

.mrv-policy-dialog__footer {
    flex: 0 0 auto;
    padding: 14px 20px;
    padding-bottom: max(14px, env(safe-area-inset-bottom));
    border-top: 1px solid #e7e9ee;
}

.mrv-policy-dialog__footer .melary-reserve__button {
    width: 100%;
    min-height: 48px;
}

@media (max-width: 380px) {
    .mrv-policy__label { font-size: 13px; }
    .mrv-policy-dialog__header { padding-left: 16px; }
    .mrv-policy-dialog__header h2 { font-size: 16px; }
    .mrv-policy-dialog__body { padding: 16px; }
}
