.legal-shell {
    padding: clamp(2rem, 6vw, 5rem) 0;
    background: #f1ede7;
    color: #171313;
}

.legal-layout {
    display: grid;
    grid-template-columns: minmax(12rem, 16rem) minmax(0, 48rem);
    justify-content: center;
    gap: clamp(2rem, 6vw, 6rem);
}

.legal-sidebar {
    align-self: start;
    padding: 1rem 0;
    border-top: 3px solid #9f1730;
}

.legal-sidebar-title,
.legal-kicker {
    color: #9f1730;
    font-size: .68rem;
    font-weight: 900;
    letter-spacing: .12em;
    text-transform: uppercase;
}

.legal-sidebar nav {
    display: grid;
}

.legal-sidebar a {
    padding: .7rem 0;
    border-bottom: 1px solid #d6cec4;
    color: #6c625d;
    font-size: .78rem;
    font-weight: 750;
    text-decoration: none;
}

.legal-sidebar a[aria-current="page"],
.legal-sidebar a:hover {
    color: #9f1730;
}

.legal-document {
    min-width: 0;
}

.legal-document header {
    padding-bottom: 2rem;
    border-bottom: 1px solid #d6cec4;
}

.legal-document h1,
.legal-document h2 {
    font-family: Georgia, "Times New Roman", serif;
    font-weight: 500;
}

.legal-document h1 {
    margin: .5rem 0 1rem;
    font-size: clamp(2.35rem, 7vw, 4.7rem);
    letter-spacing: -.045em;
    line-height: .98;
}

.legal-lead {
    max-width: 42rem;
    color: #4f4642;
    font-size: 1.05rem;
}

.legal-version {
    margin: 1rem 0 0;
    color: #81756e;
    font-size: .72rem;
}

.legal-review-notice {
    display: grid;
    gap: .25rem;
    margin-bottom: 1.5rem;
    padding: .9rem 1rem;
    border-left: 3px solid #9f1730;
    background: #f1dce0;
    font-size: .78rem;
}

.legal-section,
.legal-contact,
.cookie-settings {
    padding: 2rem 0;
    border-bottom: 1px solid #d6cec4;
}

.legal-section h2,
.legal-contact h2,
.cookie-settings h2 {
    margin: 0 0 .85rem;
    font-size: clamp(1.35rem, 3vw, 1.9rem);
}

.legal-section p,
.legal-section li,
.legal-contact p {
    color: #4f4642;
    font-size: .9rem;
}

.legal-section ul {
    padding-left: 1.2rem;
}

.legal-contact a,
.cookie-banner a {
    color: #9f1730;
    font-weight: 800;
}

.cookie-settings-copy p {
    color: #4f4642;
    font-size: .86rem;
}

.cookie-custom-form {
    display: grid;
    gap: .75rem;
}

.cookie-custom-form label {
    display: flex;
    align-items: flex-start;
    gap: .7rem;
    padding: .85rem;
    border: 1px solid #d6cec4;
    background: #fffdf9;
}

.cookie-cmp-control {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 1rem;
    padding: .85rem;
    border: 1px solid #d6cec4;
    background: #fffdf9;
}

.cookie-cmp-control .button {
    flex: 0 0 auto;
}

.cookie-custom-form input {
    margin-top: .25rem;
    accent-color: #9f1730;
}

.cookie-custom-form span,
.cookie-custom-form small {
    display: block;
}

.cookie-custom-form small {
    margin-top: .2rem;
    color: #6c625d;
}

.cookie-custom-form .is-disabled {
    opacity: .66;
}

@media (max-width: 36rem) {
    .cookie-cmp-control {
        align-items: stretch;
        flex-direction: column;
    }
}

.cookie-settings-success {
    color: #21633f;
    font-weight: 800;
}

.footer-legal-links {
    display: flex;
    flex-wrap: wrap;
    justify-content: flex-end;
    gap: .35rem .8rem;
    margin-block: .45rem .7rem;
}

.footer-legal-links a {
    color: inherit;
    text-decoration-thickness: .08em;
    text-underline-offset: .2em;
}

.footer-legal-links a:hover,
.footer-legal-links a:focus-visible {
    color: var(--text);
}

.cookie-banner {
    position: fixed;
    z-index: 90;
    right: 1rem;
    bottom: 1rem;
    left: 1rem;
    display: grid;
    grid-template-columns: minmax(0, 1fr) auto;
    align-items: center;
    gap: 1.5rem;
    width: min(calc(100% - 2rem), 62rem);
    max-height: calc(100dvh - 2rem);
    margin-inline: auto;
    padding: 1.2rem;
    overflow-y: auto;
    border: 1px solid #504743;
    background: #171313;
    box-shadow: 0 1rem 3rem rgba(0, 0, 0, .35);
    color: #fffaf3;
    overscroll-behavior: contain;
}

.cookie-banner h2 {
    margin: 0 0 .25rem;
    font-size: 1rem;
}

.cookie-banner p {
    margin: 0;
    color: #bfb4ac;
    font-size: .76rem;
}

.cookie-banner-actions {
    display: flex;
    align-items: center;
    gap: .55rem;
}

.cookie-banner-actions form {
    margin: 0;
}

.cookie-banner .button {
    min-height: 2.6rem;
    padding: .55rem .75rem;
    cursor: pointer;
    white-space: nowrap;
}

@media (max-width: 48rem) {
    .legal-layout,
    .cookie-banner {
        grid-template-columns: 1fr;
    }

    .legal-sidebar nav {
        grid-template-columns: repeat(2, minmax(0, 1fr));
        gap: 0 1rem;
    }

    .cookie-banner-actions {
        flex-wrap: wrap;
    }
}

@media (max-width: 30rem) {
    .footer-legal-links {
        justify-content: flex-start;
    }

    .legal-sidebar nav {
        grid-template-columns: 1fr;
    }

    .cookie-banner {
        right: .5rem;
        bottom: .5rem;
        left: .5rem;
        width: calc(100% - 1rem);
        max-height: calc(100dvh - 1rem);
    }
}
