:root {
    --roxo-950: #22103f;
    --roxo-800: #4c1d95;
    --roxo-700: #5b21b6;
    --roxo-600: #6d28d9;
    --roxo-100: #ede9fe;
    --texto: #3f4657;
    --muted: #687084;
    --borda: #e5dff0;
}

* { box-sizing: border-box; }

html { overflow-x: clip; scroll-behavior: smooth; scrollbar-color: var(--roxo-600) transparent; }
html::-webkit-scrollbar { width: 8px; }
html::-webkit-scrollbar-track { background: transparent; }
html::-webkit-scrollbar-button { display: none; width: 0; height: 0; }
html::-webkit-scrollbar-thumb { border: 2px solid transparent; border-radius: 999px; background: linear-gradient(var(--roxo-600), var(--roxo-800)); background-clip: padding-box; }

body {
    margin: 0;
    overflow-x: clip;
    color: var(--texto);
    background: #211037;
    font-family: Inter, Arial, sans-serif;
    line-height: 1.65;
    -webkit-font-smoothing: antialiased;
}


a { color: inherit; text-decoration: none; }

:focus-visible { outline: 3px solid rgba(109, 40, 217, .42); outline-offset: 3px; }

.container { width: min(1060px, calc(100% - 48px)); margin-inline: auto; }

.topo-legal { padding: 15px 0; background: rgba(255,255,255,.91); border-bottom: 1px solid rgba(109,40,217,.1); }
.nav-legal { display: flex; align-items: center; justify-content: space-between; gap: 20px; }
.marca-legal img { width: 160px; height: auto; display: block; }
.voltar-inicio { padding: 10px 14px; display: inline-flex; align-items: center; gap: 8px; border: 1px solid #ddd1f0; border-radius: 11px; color: var(--roxo-700); background: #faf8ff; font-size: .78rem; font-weight: 800; transition: transform .2s, border-color .2s; }
.voltar-inicio:hover { border-color: #c3aae8; transform: translateX(-2px); }

.hero-legal { position: relative; overflow: hidden; padding: 88px 0 82px; color: #fff; background: radial-gradient(circle at 85% 16%, rgba(196,181,253,.25), transparent 26%), linear-gradient(140deg, #210d3c, #4b1b91 58%, #251047); }
.hero-legal::before, .hero-legal::after { content: ""; position: absolute; pointer-events: none; }
.hero-legal::before { top: -100px; right: 6%; width: 230px; aspect-ratio: 1; border: 1px solid rgba(255,255,255,.17); border-radius: 42px; box-shadow: 0 0 0 42px rgba(255,255,255,.025); transform: rotate(24deg); }
.hero-legal::after { left: -30px; bottom: -50px; width: 180px; height: 180px; opacity: .55; background-image: radial-gradient(rgba(255,255,255,.42) 1px, transparent 1px); background-size: 14px 14px; mask-image: radial-gradient(circle, #000 25%, transparent 70%); }
.hero-legal .container { position: relative; z-index: 1; }
.hero-legal small { color: #dfcffc; font-size: .7rem; font-weight: 850; letter-spacing: .13em; }
.hero-legal h1 { max-width: 770px; margin: 12px 0 13px; font-size: clamp(2.35rem, 5vw, 4.2rem); line-height: 1.05; letter-spacing: -.06em; }
.hero-legal p { max-width: 670px; margin: 0; color: #e5daf6; font-size: 1rem; }

.conteudo-legal { position: relative; overflow: hidden; padding: 76px 0 92px; }
.conteudo-legal::before { content: ""; position: absolute; top: 80px; right: -55px; width: 170px; aspect-ratio: 1; border: 1px solid rgba(109,40,217,.11); border-radius: 36px; box-shadow: 0 0 0 30px rgba(109,40,217,.025); transform: rotate(22deg); }
.documento-legal { position: relative; max-width: 850px; margin-inline: auto; padding: clamp(25px, 5vw, 54px); border: 1px solid var(--borda); border-radius: 26px; background: #fff; box-shadow: 0 24px 65px rgba(51,25,80,.09); }
.documento-legal > p:first-child { margin-top: 0; color: var(--muted); }
.documento-legal section + section { margin-top: 34px; padding-top: 31px; border-top: 1px solid #eee9f4; }
.documento-legal h2 { margin: 0 0 10px; color: #2d164f; font-size: clamp(1.2rem, 2vw, 1.45rem); line-height: 1.25; letter-spacing: -.025em; }
.documento-legal p, .documento-legal li { color: var(--texto); font-size: .91rem; }
.documento-legal p { margin: 0; }
.documento-legal p + p { margin-top: 12px; }
.documento-legal ul { margin: 15px 0 0; padding: 0; list-style: none; }
.documento-legal li { position: relative; margin: 9px 0; padding-left: 22px; }
.documento-legal li::before { content: ""; position: absolute; top: .63em; left: 0; width: 8px; height: 8px; border-radius: 50%; background: var(--roxo-600); box-shadow: 0 0 0 4px rgba(109,40,217,.09); }
.documento-legal a { color: var(--roxo-700); font-weight: 750; text-decoration: underline; text-underline-offset: 3px; }
.atualizacao-legal { margin-top: 34px !important; padding: 13px 15px; border-radius: 12px; color: #62577a !important; background: #f7f3ff; font-size: .77rem !important; }

.rodape-legal { padding: 27px 0; color: #d5cbe4; background: linear-gradient(145deg, #1d0c37, #32105f); }
.rodape-legal .container { display: flex; justify-content: space-between; align-items: center; gap: 18px; font-size: .76rem; }
.rodape-legal a { color: #fff; font-weight: 750; }

@media (max-width: 620px) {
    .container { width: min(100% - 28px, 1060px); }
    .topo-legal { padding: 10px 0; }
    .marca-legal img { width: 136px; }
    .voltar-inicio { padding: 9px 11px; font-size: .7rem; }
    .hero-legal { padding: 67px 0 62px; }
    .hero-legal h1 { font-size: clamp(2.25rem, 12vw, 3.25rem); }
    .hero-legal p { font-size: .9rem; }
    .conteudo-legal { padding: 55px 0 62px; }
    .documento-legal { border-radius: 20px; }
    .documento-legal p, .documento-legal li { font-size: .84rem; }
    .rodape-legal .container { align-items: flex-start; flex-direction: column; gap: 7px; }
}
/* Shared legal layout: opaque reading cards over a continuous purple canvas. */
body {
    background-image: radial-gradient(ellipse at 0 0, #6934a866, transparent 48%),
        radial-gradient(ellipse at 100% 45%, #713bad44, transparent 45%),
        linear-gradient(160deg, #28133f, #190b2b 65%, #35154e);
}
body::before {
    content: "";
    position: fixed;
    inset: 0;
    pointer-events: none;
    background-image: radial-gradient(ellipse at 0 20%, #9954e830, transparent 45%),
        radial-gradient(ellipse at 100% 85%, #ac66ee26, transparent 45%),
        linear-gradient(#d3b8ff09 1px, transparent 1px),
        linear-gradient(90deg, #d3b8ff09 1px, transparent 1px);
    background-size: auto, auto, 72px 72px, 72px 72px;
}
body::after {
    content: "";
    position: fixed;
    inset: 0;
    pointer-events: none;
    background:
        radial-gradient(circle at 0 35%, transparent 115px, #cfabff24 116px, transparent 117px, transparent 145px, #cfabff14 146px, transparent 147px),
        radial-gradient(circle at 100% 80%, transparent 150px, #cfabff24 151px, transparent 152px, transparent 185px, #cfabff14 186px, transparent 187px),
        radial-gradient(circle, #d3b8ff55 1px, transparent 2px) 18px 32px / 137px 173px;
    z-index: -1;
}
body { isolation: isolate; }
.topo-legal {
    position: relative;
    padding: 26px 0;
    background: transparent;
    border: 0;
}
.nav-legal { padding-bottom: 22px; border-bottom: 1px solid #e0caff22; }
.marca-legal img { width: 174px; }
.voltar-inicio { color: #fff; background: #ffffff0c; border-color: #dcc5ff40; border-radius: 999px; padding: 12px 18px; }
.voltar-inicio:hover { background: #ffffff16; border-color: #dcc5ff80; }
:focus-visible { outline-color: #b887ff; }
.hero-legal { padding: 58px 0 38px; background: transparent; text-align: center; }
.hero-legal h1 { margin: 16px auto 20px; font-size: clamp(2.3rem, 5vw, 4rem); letter-spacing: -.045em; }
.hero-legal p { margin-inline: auto; line-height: 1.8; }
.hero-legal::before { opacity: .45; right: -60px; }
.conteudo-legal { overflow: visible; padding: 12px 0 64px; }
.conteudo-legal::before { display: none; }
.documento-legal {
    max-width: 850px;
    padding: 0;
    background: none;
    border: 0;
    border-radius: 0;
    box-shadow: none;
    isolation: isolate;
    display: grid;
    gap: 26px;
    align-items: start;
}
.documento-legal > p:first-child {
    color: #d9cce9;
    text-align: center;
    max-width: 730px;
    margin: 0 auto 12px;
    line-height: 1.8;
}
.documento-legal > section,
.documento-legal section + section {
    position: relative;
    margin: 0;
    padding: clamp(26px, 4.5vw, 44px);
    border: 1px solid #e2d5f4;
    border-top: 4px solid #8b42dc;
    border-radius: 24px;
    background: radial-gradient(ellipse at 100% 0, #ede2fb 0, transparent 55%),
        radial-gradient(ellipse at 0 100%, #f1e9fc, transparent 55%), #fff;
    box-shadow: 0 -8px 28px #16062616, 0 18px 42px #0e041b22;
}
.documento-legal > .card-medido {
    min-height: var(--altura-card);
    display: flex;
    flex-direction: column;
    justify-content: center;
    align-items: center;
}
.legal-card-conteudo {
    position: relative;
    z-index: 1;
    display: flow-root;
    flex: 0 0 auto;
    width: 100%;
    text-align: center;
}
.legal-card-conteudo h2 { padding-right: 0; }
.legal-card-conteudo li { padding-left: 0; }
.legal-card-conteudo li::before {
    position: static;
    display: inline-block;
    margin-right: 10px;
    vertical-align: middle;
}
.documento-legal > section::after {
    content: "";
    position: absolute;
    right: 14px;
    bottom: 14px;
    width: 150px;
    height: 150px;
    border-radius: 0 0 16px 0;
    pointer-events: none;
    background: repeating-radial-gradient(circle at 100% 100%, transparent 0 23px, #9961ce12 24px 25px, transparent 26px 40px);
}
.documento-legal > section::before {
    content: "";
    position: absolute;
    top: 16px;
    right: 22px;
    width: 30px;
    height: 30px;
    border: 1px solid #9056c51c;
    transform: rotate(45deg);
    pointer-events: none;
}
.documento-legal h2 { padding-right: 16px; margin-bottom: 18px; line-height: 1.4; }
.documento-legal p, .documento-legal li { font-size: .95rem; line-height: 1.85; overflow-wrap: anywhere; }
.documento-legal li { margin: 12px 0; }
.atualizacao-legal {
    position: relative;
    margin: 8px 0 0 !important;
    padding: 22px 0 0;
    border-top: 1px solid #dcc5ff25;
    border-radius: 0;
    color: #cbb8df !important;
    background: transparent;
    text-align: center;
}
@supports (overflow: clip) {
    @media (min-height: 600px) and (prefers-reduced-motion: no-preference) {
        .documento-legal > .card-medido {
            position: sticky;
            top: min(calc(24px + var(--ordem-card) * 7px + env(safe-area-inset-top, 0px)), calc(100svh - var(--altura-card) - 24px));
        }
        /* Keyboard navigation must not leave a focused link behind another card. */
        .documento-legal:focus-within > .card-medido { position: relative; top: auto; }
    }
}
@media (max-width: 620px) {
    .topo-legal { padding: 18px 0 0; }
    .nav-legal { gap: 12px; padding-bottom: 18px; }
    .marca-legal img { width: 136px; }
    .voltar-inicio { padding: 10px 12px; font-size: .7rem; white-space: nowrap; }
    .hero-legal { padding: 42px 0 30px; }
    .hero-legal small { font-size: .62rem; letter-spacing: .1em; }
    .hero-legal h1 { font-size: clamp(2.1rem, 10vw, 3rem); }
    .conteudo-legal { padding: 8px 0 40px; }
    .documento-legal { gap: 22px; }
    .documento-legal > section, .documento-legal section + section { padding: 26px 23px; border-radius: 20px; }
    .documento-legal p, .documento-legal li { font-size: .88rem; }
}
@media (prefers-reduced-motion: reduce) {
    html { scroll-behavior: auto; }
    .voltar-inicio { transition: none; }
}
@media print {
    body { background: #fff; }
    body::before, body::after, .topo-legal, .hero-legal::before, .hero-legal::after,
    .documento-legal > section::before, .documento-legal > section::after { display: none; }
    .container { width: 100%; }
    .hero-legal { padding: 0 0 24px; }
    .hero-legal h1, .hero-legal p, .hero-legal small,
    .documento-legal > p:first-child, .atualizacao-legal { color: #222 !important; }
    .documento-legal { display: block; }
    .documento-legal > section, .documento-legal section + section {
        position: static !important;
        min-height: 0 !important;
        margin: 16px 0;
        padding: 20px;
        background: #fff;
        box-shadow: none;
        break-inside: avoid;
    }
}
