/* Legal documents (includes/legal.php). Same palette as the blog and service pages. */
.im-legal-view #primary { float: none !important; width: 100% !important; max-width: none !important; }
.im-legal { --iml-panel: #0b1230; --iml-panel-2: #101a42; --iml-line: rgba(160, 180, 255, .16); --iml-ink: #eef1ff; --iml-muted: #b4bddf; --iml-cyan: #22d3ee;
	display: grid; grid-template-columns: minmax(0, 1fr); gap: 24px; max-width: 1180px; margin: 8px auto 48px; padding: 0 20px; box-sizing: border-box; }
@media (min-width: 1024px) {
	.im-legal { grid-template-columns: 280px minmax(0, 1fr); gap: 40px; align-items: start; }
	.im-legal__toc { position: sticky; top: 110px; max-height: calc(100vh - 140px); overflow: auto; }
	.im-legal__toc summary { pointer-events: none; }
	.im-legal__toc summary::marker, .im-legal__toc summary::-webkit-details-marker { content: ""; display: none; }
}

.im-legal__toc { border: 1px solid var(--iml-line); border-radius: 16px; background: linear-gradient(180deg, var(--iml-panel-2), var(--iml-panel)); padding: 18px 20px; }
.im-legal__toc summary { color: #fff; font-weight: 700; font-size: 13px; letter-spacing: .08em; text-transform: uppercase; cursor: pointer; list-style: none; }
.im-legal__toc summary { display: flex; align-items: center; justify-content: space-between; min-height: 28px; }
.im-legal__toc summary::-webkit-details-marker { display: none; }
.im-legal__toc summary::after { content: "+"; color: var(--iml-cyan); font-size: 20px; font-weight: 400; line-height: 1; }
.im-legal__toc[open] summary::after { content: "\2212"; }
@media (min-width: 1024px) { .im-legal__toc summary::after { display: none; } }
.im-legal__toc summary:focus-visible { outline: 2px solid var(--iml-cyan); outline-offset: 3px; border-radius: 4px; }
.im-legal__toc ol { margin: 14px 0 0; padding: 0; list-style: none; counter-reset: legal; }
.im-legal__toc li { margin: 0; padding: 0; }
.im-legal__toc a { display: block; padding: 7px 10px; border-radius: 8px; color: var(--iml-muted) !important; font-size: 14.5px; line-height: 1.4; text-decoration: none !important; }
.im-legal__toc a:hover { background: rgba(91, 140, 255, .12); color: #fff !important; }
.im-legal__toc a:focus-visible { outline: 2px solid var(--iml-cyan); outline-offset: 1px; }

.im-legal__doc { min-width: 0; max-width: 820px; padding: clamp(22px, 4vw, 44px); border: 1px solid var(--iml-line); border-radius: 20px; background: rgba(255, 255, 255, .025); color: var(--iml-ink); font-size: 17px; line-height: 1.75; }
.im-legal__doc > :first-child { margin-top: 0 !important; }
.im-legal__doc h2 { margin: 2.2em 0 .6em !important; padding-top: .9em; border-top: 1px solid var(--iml-line); color: #fff; font-size: clamp(21px, 2.2vw, 25px) !important; line-height: 1.3; scroll-margin-top: 120px; }
.im-legal__doc h2:first-child { padding-top: 0; border-top: 0; }
.im-legal__doc h3 { margin: 1.6em 0 .4em !important; color: #fff; font-size: 18.5px !important; line-height: 1.35; }
.im-legal__doc p, .im-legal__doc li { color: var(--iml-ink); }
.im-legal__doc p { margin: 0 0 1em; }
.im-legal__doc ul, .im-legal__doc ol { margin: 0 0 1.1em; padding-left: 1.3em; }
.im-legal__doc li { margin: .3em 0; }
.im-legal__doc li::marker { color: var(--iml-cyan); }
.im-legal__doc a { color: #8eeaf8 !important; text-decoration: underline; text-underline-offset: 2px; }
.im-legal__doc a:focus-visible { outline: 2px solid var(--iml-cyan); outline-offset: 2px; }
.im-legal__doc strong { color: #fff; }
@media (max-width: 639px) { .im-legal { padding: 0 16px; } .im-legal__doc { font-size: 16.5px; border-radius: 16px; } }
