.legal-modal-overlay {
    position: fixed; inset: 0; z-index: 9999;
    background: rgba(15,20,40,.35);
    backdrop-filter: blur(4px);
    display: flex; align-items: center; justify-content: center;
    opacity: 0; pointer-events: none; transition: opacity .25s;
}
.legal-modal-overlay.open { opacity: 1; pointer-events: all; }

.legal-modal {
    width: 620px; max-width: calc(100% - 32px);
    height: 75vh;
    background: rgba(255,255,255,.88);
    border: 1.5px solid rgba(255,255,255,.95);
    border-radius: 20px;
    backdrop-filter: blur(24px);
    box-shadow: 0 20px 60px rgba(30,40,80,.18);
    display: flex; flex-direction: column;
    transform: translateY(20px) scale(.97);
    transition: transform .3s cubic-bezier(.22,.68,0,1.2);
}
.legal-modal-overlay.open .legal-modal { transform: translateY(0) scale(1); }

.legal-modal-head {
    display: flex; align-items: center; justify-content: space-between;
    padding: 20px 24px 14px;
    border-bottom: 1px solid rgba(180,190,220,.2);
    flex-shrink: 0;
}
.legal-modal-head h3 {
    font-family: 'Cormorant Garamond', serif;
    font-size: 1.2rem; font-weight: 400; color: var(--text); margin: 0;
}
.legal-modal-close {
    width: 30px; height: 30px; border-radius: 8px;
    background: rgba(0,0,0,.05); border: none; cursor: pointer;
    display: flex; align-items: center; justify-content: center;
    transition: background .2s;
}
.legal-modal-close:hover { background: rgba(255,107,138,.12); }
.legal-modal-close svg { width: 13px; height: 13px; stroke: var(--muted); fill: none; stroke-width: 2; }

.legal-modal-body {
    padding: 20px 24px 24px;
    overflow-y: auto; flex: 1;
    font-size: .85rem; color: var(--text); line-height: 1.75; font-weight: 300;
}
.legal-modal-body h2 { font-family: 'Cormorant Garamond', serif; font-size: 1.15rem; font-weight: 400; margin: 20px 0 10px; }
.legal-modal-body h3 { font-size: .95rem; font-weight: 500; margin: 16px 0 8px; }
.legal-modal-body p { margin-bottom: 8px; }
.legal-modal-body ul, .legal-modal-body ol { padding-left: 20px; margin: 8px 0; }
.legal-modal-body li { margin-bottom: 4px; }
.legal-modal-body a { color: var(--accent); }
.legal-modal-body table { width: 100%; border-collapse: collapse; margin: 10px 0; font-size: .82rem; }
.legal-modal-body th, .legal-modal-body td { border: 1px solid rgba(180,190,220,.3); padding: 6px 10px; text-align: left; }
.legal-modal-body th { background: rgba(124,158,255,.06); font-weight: 500; }

.legal-modal-loading {
    display: flex; align-items: center; justify-content: center;
    padding: 40px; color: var(--muted); font-size: .85rem;
}
