:root {
    --legal-ink: #241b22;
    --legal-muted: #746b73;
    --legal-line: rgba(95, 62, 77, .20);
    --legal-paper: #fffafa;
    --legal-wash: #fff2f6;
    --legal-accent: #9d3f64;
    --legal-header-height: var(--veloq-header-height);
}

* { box-sizing: border-box; }
html { scroll-behavior: smooth; }
body {
    min-height: 100vh;
    margin: 0;
    display: flex;
    flex-direction: column;
    color: var(--legal-ink);
    background:
        radial-gradient(circle at 88% 3%, rgba(237, 173, 196, .22), transparent 28rem),
        linear-gradient(135deg, #fffdfd 0%, var(--legal-paper) 54%, #fff4f7 100%);
    font-family: Manrope, sans-serif;
}

.site-header {
    position: fixed;
    inset: 0 0 auto;
    z-index: 50;
    display: block;
    border-bottom: 1px solid rgba(28, 24, 29, .12);
    background: rgba(255, 255, 255, .76);
    box-shadow: 0 9px 30px rgba(49, 30, 39, .07);
    -webkit-backdrop-filter: blur(18px) saturate(150%);
    backdrop-filter: blur(18px) saturate(150%);
}
.site-header .header-inner { display: flex; align-items: center; justify-content: space-between; width: 100%; }
.site-header .header-brand { color: transparent; text-decoration: none; font-weight: 900; letter-spacing: -.07em; }
.site-header .header-navigation { display: flex; align-items: center; }
.site-header .header-navigation a { color: #463b42; font-size: .9rem; font-weight: 600; text-decoration: none; transition: color .2s ease; }
.site-header .header-navigation a:hover { color: var(--legal-accent); }
.site-header .header-actions { display: flex; align-items: center; }
.header-icon, .lang-button { border: 0; padding: .3rem; color: #2e272d; background: transparent; cursor: pointer; font: inherit; }
.header-icon { font-family: 'Material Symbols Outlined'; font-size: 1.35rem; line-height: 1; }
.lang-wrap { position: relative; }
.lang-button { font-size: 1.45rem; line-height: 1; }
.lang-menu { position: absolute; top: calc(100% + .65rem); right: 0; z-index: 60; display: none; width: 9rem; overflow: hidden; border: 1px solid var(--legal-line); background: #fff; box-shadow: 0 16px 30px rgba(48, 24, 36, .14); }
.lang-menu.is-open { display: block; }
.lang-menu:not(.hidden) { display: block; }
.lang-menu button { display: flex; align-items: center; width: 100%; gap: .65rem; padding: .8rem .9rem; border: 0; color: var(--legal-ink); background: transparent; text-align: left; font: 600 .8rem Manrope, sans-serif; cursor: pointer; }
.lang-menu button:hover { background: var(--legal-wash); }
.header-cta { margin-left: .35rem; padding: .78rem 1.1rem; border: 1px solid #2c2027; color: #fff; background: #2c2027; font-size: .69rem; font-weight: 800; letter-spacing: .1em; text-decoration: none; text-transform: uppercase; transition: background .2s ease, color .2s ease; }
.header-cta:hover { color: #2c2027; background: #fff; }

.legal-main { width: min(100% - 3rem, 1120px); margin: 0 auto; padding: calc(var(--legal-header-height) + 5.5rem) 0 7rem; }
.legal-hero { display: grid; grid-template-columns: minmax(0, 1fr) minmax(14rem, .48fr); gap: 3rem; align-items: end; padding-bottom: 3.6rem; border-bottom: 1px solid var(--legal-line); }
.legal-kicker { margin: 0 0 1rem; color: var(--legal-accent); font-size: .68rem; font-weight: 800; letter-spacing: .16em; text-transform: uppercase; }
.legal-hero h1 { max-width: 52rem; margin: 0; font-size: clamp(2.55rem, 6vw, 5.2rem); font-weight: 800; letter-spacing: -.075em; line-height: .93; }
.legal-hero h1 span { color: var(--legal-accent); }
.legal-intro { margin: 0; color: var(--legal-muted); font-size: 1rem; line-height: 1.75; }
.legal-meta { justify-self: end; width: 100%; padding: 1.45rem; border: 1px solid var(--legal-line); background: rgba(255,255,255,.56); }
.legal-meta strong, .legal-meta span { display: block; }
.legal-meta strong { margin-bottom: .45rem; font-size: .69rem; letter-spacing: .12em; text-transform: uppercase; }
.legal-meta span { color: var(--legal-muted); font-size: .82rem; line-height: 1.5; }

.legal-layout { display: grid; grid-template-columns: minmax(0, 1fr) 15.5rem; gap: 5rem; padding-top: 4.5rem; }
.legal-content { min-width: 0; }
.legal-section { padding: 0 0 2.85rem; margin-bottom: 2.85rem; border-bottom: 1px solid var(--legal-line); }
.legal-section:last-child { margin-bottom: 0; }
.legal-section h2 { margin: 0 0 1.15rem; font-size: clamp(1.3rem, 2vw, 1.7rem); letter-spacing: -.045em; line-height: 1.1; }
.legal-section h3 { margin: 1.9rem 0 .55rem; font-size: 1rem; letter-spacing: -.025em; }
.legal-section p, .legal-section li { color: #554b53; font-size: .94rem; line-height: 1.78; }
.legal-section p { margin: 0 0 1rem; }
.legal-section ul { margin: .7rem 0 0; padding-left: 1.15rem; }
.legal-section li + li { margin-top: .55rem; }
.legal-section a { color: #823453; text-decoration-color: rgba(130,52,83,.36); text-underline-offset: .18em; }
.legal-section a:hover { color: #401b2a; }
.legal-card { margin-top: 1.45rem; padding: 1.45rem; border-left: 2px solid var(--legal-accent); background: linear-gradient(120deg, rgba(255, 234, 241, .7), rgba(255,255,255,.58)); }
.legal-card p:last-child { margin-bottom: 0; }
.legal-aside { align-self: start; position: sticky; top: calc(var(--legal-header-height) + 2rem); }
.legal-aside h2 { margin: 0 0 1rem; font-size: .68rem; letter-spacing: .14em; text-transform: uppercase; }
.legal-aside a { display: block; padding: .66rem 0; border-bottom: 1px solid var(--legal-line); color: #625760; font-size: .78rem; font-weight: 700; text-decoration: none; }
.legal-aside a:hover { color: var(--legal-accent); }
.legal-aside .legal-aside-contact { margin-top: 2.2rem; padding: 1.15rem; border: 1px solid var(--legal-line); color: #5c5159; font-size: .77rem; line-height: 1.65; }
.legal-aside-contact strong { display: block; margin-bottom: .45rem; color: var(--legal-ink); font-size: .67rem; letter-spacing: .1em; text-transform: uppercase; }
.legal-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 1rem; margin-top: 1.45rem; }
.legal-grid > div { padding: 1.15rem; border: 1px solid var(--legal-line); background: rgba(255,255,255,.45); }
.legal-grid strong { display: block; margin-bottom: .42rem; font-size: .69rem; letter-spacing: .1em; text-transform: uppercase; }
.legal-grid span { color: #5f545c; font-size: .88rem; line-height: 1.6; }

html.dark body { --legal-ink: #fff5f8; --legal-muted: #d4bdc7; --legal-line: rgba(255, 230, 239, .18); --legal-paper: #171015; --legal-wash: #2b1820; color: var(--legal-ink); background: radial-gradient(circle at 88% 3%, rgba(157, 63, 100, .22), transparent 29rem), #130e11; }
html.dark .site-header { border-bottom-color: rgba(255, 235, 243, .12); background: rgba(22, 15, 19, .76); box-shadow: 0 9px 30px rgba(0,0,0,.21); }
html.dark .site-header .header-navigation a, html.dark .header-icon, html.dark .lang-button { color: #faedf2; }
html.dark .site-header .header-navigation a:hover { color: #ffbdd2; }
html.dark .lang-menu { border-color: var(--legal-line); background: #24171d; }
html.dark .lang-menu button { color: #fff2f6; }
html.dark .lang-menu button:hover { background: #371e29; }
html.dark .header-cta { border-color: #fff4f7; color: #25161d; background: #fff4f7; }
html.dark .header-cta:hover { color: #fff4f7; background: transparent; }
html.dark .legal-meta, html.dark .legal-grid > div { background: rgba(255,255,255,.035); }
html.dark .legal-section p, html.dark .legal-section li, html.dark .legal-grid span { color: #dfcad2; }
html.dark .legal-card { background: linear-gradient(120deg, rgba(157, 63, 100, .19), rgba(255,255,255,.025)); }
html.dark .legal-section a { color: #ffb3cb; }
html.dark .legal-section a:hover { color: #fff; }
html.dark .legal-aside a, html.dark .legal-aside .legal-aside-contact { color: #d8c3cc; }
html.dark .legal-aside a:hover { color: #ffb3cb; }

@media (max-width: 860px) {
    .legal-main { width: min(100% - 2.4rem, 1120px); padding-top: calc(var(--legal-header-height) + 3.8rem); }
    .legal-hero, .legal-layout { grid-template-columns: 1fr; gap: 2rem; }
    .legal-meta { justify-self: stretch; }
    .legal-layout { padding-top: 3rem; }
    .legal-aside { position: static; order: -1; }
    .legal-aside nav { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); column-gap: 1.2rem; }
    .legal-aside .legal-aside-contact { display: none; }
}
@media (max-width: 620px) {
    .site-header .header-navigation { display: none; }
    .site-header .header-actions { gap: .45rem !important; }
    .header-cta { padding: .68rem .72rem; font-size: .61rem; }
    .legal-main { width: min(100% - 2rem, 1120px); padding-bottom: 4rem; }
    .legal-hero { padding-bottom: 2.5rem; }
    .legal-grid { grid-template-columns: 1fr; }
    .legal-aside nav { grid-template-columns: 1fr; }
}
