:root {
    --legal-wine: #5b1425;
    --legal-gold: #c9a45c;
    --legal-ink: #24191b;
    --legal-paper: #fffaf0;
}

.legal-page {
    min-height: 100vh;
    margin: 0;
    color: var(--legal-ink);
    background: #f3eadb;
}

.legal-page__inner {
    width: min(920px, calc(100% - 32px));
    margin: 0 auto;
    padding: 32px 0 72px;
}

.legal-page__back,
.legal-document a {
    color: var(--legal-wine);
    text-decoration-thickness: 1px;
    text-underline-offset: 0.18em;
}

.legal-page__back {
    display: inline-block;
    margin-bottom: 24px;
    font-weight: 700;
}

.legal-document {
    padding: clamp(24px, 5vw, 56px);
    border: 1px solid rgb(91 20 37 / 22%);
    border-top: 5px solid var(--legal-wine);
    border-radius: 8px;
    background: var(--legal-paper);
    box-shadow: 0 18px 48px rgb(55 22 28 / 12%);
    font-family: "Cormorant Garamond", Georgia, serif;
    font-size: 1.1rem;
    line-height: 1.55;
}

.legal-document h1,
.legal-document h2 {
    color: var(--legal-wine);
    line-height: 1.15;
}

.legal-document h1 { margin-top: 0; font-size: clamp(2rem, 5vw, 3.25rem); }
.legal-document h2 { margin-top: 1.8em; font-size: clamp(1.4rem, 3vw, 1.8rem); }
.legal-document li + li { margin-top: 0.45em; }
.legal-document table { width: 100%; border-collapse: collapse; margin: 24px 0; }
.legal-document th,
.legal-document td { padding: 12px; border: 1px solid rgb(91 20 37 / 22%); text-align: left; vertical-align: top; }
.legal-document th { background: rgb(91 20 37 / 8%); }

.legal-document__meta {
    display: flex;
    flex-wrap: wrap;
    gap: 8px 20px;
    padding-bottom: 20px;
    border-bottom: 1px solid rgb(91 20 37 / 18%);
    color: #6f5b5f;
}

.legal-operator {
    display: grid;
    gap: 5px;
    margin: 24px 0;
    padding: 18px;
    border-left: 4px solid var(--legal-gold);
    background: rgb(201 164 92 / 10%);
    font-style: normal;
}

.legal-consent-row { display: grid; gap: 8px; grid-column: 1 / -1; color: inherit; }
.legal-consent-row .contact-form__consent,
.legal-consent-row .contact-form__consent span { color: inherit; }
.legal-consent-actions { display: flex; flex-wrap: wrap; align-items: center; gap: 10px 16px; padding-left: 30px; color: inherit; }
.legal-consent-actions a {
    max-width: 100%;
    color: currentColor;
    font: inherit;
    font-size: 0.88rem;
    overflow-wrap: anywhere;
    text-decoration: underline;
    text-decoration-thickness: 1px;
    text-underline-offset: 0.18em;
}
.legal-consent-link {
    display: inline-flex;
    min-height: 44px;
    align-items: center;
    justify-content: center;
    padding: 8px 14px;
    border: 1px solid currentColor;
    border-radius: 4px;
    color: currentColor;
    background: rgb(255 255 255 / 6%);
    line-height: 1.3;
    text-align: center;
    text-decoration: none;
    white-space: normal;
    transition: background-color 0.2s ease;
}
.legal-consent-link:hover,
.legal-consent-link:focus-visible {
    color: currentColor;
    background: rgb(255 255 255 / 12%);
}
.legal-consent-actions a:not(.legal-consent-link):hover,
.legal-consent-actions a:not(.legal-consent-link):focus-visible {
    color: currentColor;
    text-decoration-thickness: 2px;
}

.legal-dialog {
    width: min(880px, calc(100% - 24px));
    max-height: min(88vh, 920px);
    padding: 0;
    border: 0;
    border-radius: 8px;
    color: var(--legal-ink);
    background: var(--legal-paper);
    box-shadow: 0 24px 80px rgb(0 0 0 / 42%);
}

.legal-dialog::backdrop { background: rgb(18 5 9 / 72%); backdrop-filter: blur(3px); }
.legal-dialog__surface { display: grid; grid-template-rows: auto minmax(0, 1fr); max-height: inherit; }
.legal-dialog__head { display: flex; align-items: center; justify-content: space-between; gap: 20px; padding: 18px 22px; border-bottom: 1px solid rgb(91 20 37 / 18%); }
.legal-dialog__head h2 { margin: 0; color: var(--legal-wine); font-size: clamp(1.15rem, 3vw, 1.55rem); }
.legal-dialog__body { overflow: auto; padding: 4px 28px 32px; font-family: "Cormorant Garamond", Georgia, serif; font-size: 1.05rem; line-height: 1.55; }
.legal-dialog__body > h1 { display: none; }
.legal-dialog__body h2 { margin-top: 1.6em; color: var(--legal-wine); }
.legal-dialog__body table { width: 100%; border-collapse: collapse; }
.legal-dialog__body th,
.legal-dialog__body td { padding: 9px; border: 1px solid rgb(91 20 37 / 22%); text-align: left; vertical-align: top; }
.legal-dialog__close { min-height: 42px; flex: 0 0 auto; padding: 0 16px; border: 1px solid rgb(91 20 37 / 30%); border-radius: 999px; color: var(--legal-wine); background: transparent; font: 700 0.95rem/1 sans-serif; cursor: pointer; }

.legal-page a:focus-visible,
.legal-dialog__close:focus-visible { outline: 3px solid var(--legal-gold); outline-offset: 3px; }
.legal-consent-actions a:focus-visible { outline: 3px solid currentColor; outline-offset: 3px; }
.legal-consent-link:focus-visible { outline: 3px solid currentColor; outline-offset: 3px; }

@media (max-width: 640px) {
    .legal-page__inner { width: min(100% - 20px, 920px); padding-top: 18px; }
    .legal-document { padding: 22px 18px 36px; }
    .legal-document__table-wrap { overflow-x: auto; }
    .legal-dialog__head { padding: 12px 14px; }
    .legal-dialog__body { padding: 2px 16px 24px; }
    .legal-consent-actions { padding-left: 0; }
}

@media (prefers-reduced-motion: reduce) {
    .legal-consent-link { transition: none; }
}
