/* InvestorVault Legal Pages — intentionally scoped; no external requests. */
.ivl-legal {
  --ivl-ink: #1f2937;
  --ivl-copy: #505d65;
  --ivl-green: #31b099;
  --ivl-deep: #0e5c64;
  --ivl-mint: #def8f3;
  --ivl-line: #dce9e5;
  box-sizing: border-box;
  width: 100%;
  max-width: 1160px !important;
  margin: 36px auto 72px !important;
  padding: 0 20px;
  color: var(--ivl-copy);
  background: #fff;
  font-family: Mulish, Manrope, system-ui, -apple-system, "Segoe UI", sans-serif;
  font-size: 16px;
  line-height: 1.85;
  text-align: left;
}
.ivl-legal *, .ivl-legal *::before, .ivl-legal *::after { box-sizing: border-box; }
.ivl-legal .ivl-hero {
  position: relative;
  padding: 42px 44px 36px;
  margin: 0 0 32px;
  border: 1px solid var(--ivl-line);
  border-top: 4px solid var(--ivl-green);
  border-radius: 12px;
  background: linear-gradient(115deg, #f1fcf9 0%, #fff 76%);
}
.ivl-legal .ivl-eyebrow {
  margin: 0 0 14px;
  color: var(--ivl-deep);
  font-size: 12px;
  font-weight: 800;
  line-height: 1.5;
  letter-spacing: .16em;
  text-transform: uppercase;
}
.ivl-legal h1.ivl-title {
  margin: 0 0 15px;
  padding: 0;
  color: var(--ivl-ink);
  font-family: Mulish, Manrope, system-ui, sans-serif;
  font-size: clamp(36px, 4.7vw, 56px);
  font-weight: 750;
  line-height: 1.1;
  letter-spacing: -.045em;
  text-transform: none;
}
.ivl-legal .ivl-date {
  display: inline-block;
  margin: 0;
  padding: 5px 12px;
  border: 1px solid #cee9e1;
  border-radius: 6px;
  color: var(--ivl-deep);
  background: #fff;
  font-size: 12px;
  line-height: 1.7;
}
.ivl-legal .ivl-layout {
  display: grid !important;
  grid-template-columns: minmax(210px, 260px) minmax(0, 1fr);
  gap: 44px;
  align-items: start;
  margin: 0;
}
.ivl-legal .ivl-sidebar,
.ivl-legal .ivl-body { min-width: 0; margin: 0; width: auto !important; }
.ivl-legal .ivl-sidebar { position: sticky; top: 110px; }
.ivl-legal .ivl-toc {
  display: block;
  padding: 20px 18px;
  background: #f7fbfa;
  border: 1px solid var(--ivl-line);
  border-radius: 10px;
}
.ivl-legal .ivl-mobile-toc { display: none; }
.ivl-legal .ivl-mobile-toc summary {
  display: flex;
  align-items: center;
  gap: 12px;
  color: var(--ivl-deep);
  font-size: 13px;
  font-weight: 750;
  cursor: pointer;
  line-height: 1.6;
  list-style: none;
}
.ivl-legal .ivl-mobile-toc summary::-webkit-details-marker { display: none; }
.ivl-legal .ivl-mobile-toc summary span { color: #526761; font-size: 11px; font-weight: 500; }
.ivl-legal .ivl-mobile-toc summary::after { content: '+'; margin-left: auto; font-size: 21px; font-weight: 500; }
.ivl-legal .ivl-mobile-toc[open] summary::after { content: '−'; }
.ivl-legal .ivl-mobile-toc[open] summary { margin-bottom: 14px; }
.ivl-legal .ivl-mobile-toc summary:focus-visible { outline: 3px solid #0e5c64; outline-offset: 4px; }
.ivl-legal .ivl-toc-label {
  margin: 0 0 12px;
  color: var(--ivl-deep);
  font-size: 12px;
  line-height: 1.6;
  font-weight: 800;
  letter-spacing: .09em;
  text-transform: uppercase;
}
.ivl-legal .ivl-toc ol { margin: 0; padding: 0; list-style: none; }
.ivl-legal .ivl-toc li { margin: 0; padding: 0; }
.ivl-legal .ivl-toc a {
  display: block;
  padding: 7px 5px;
  border-radius: 4px;
  color: #43565a;
  font-size: 12px;
  font-weight: 600;
  line-height: 1.5;
  text-decoration: none;
}
.ivl-legal .ivl-toc a:hover { color: var(--ivl-deep); background: var(--ivl-mint); }
.ivl-legal .ivl-body > p:first-child { margin-top: 0; font-size: 18px; color: #41545b; line-height: 1.8; }
.ivl-legal .ivl-body h2 {
  margin: 38px 0 15px;
  padding: 23px 0 0;
  border-top: 1px solid var(--ivl-line);
  color: var(--ivl-ink);
  font-size: clamp(21px, 2vw, 25px);
  font-weight: 750;
  line-height: 1.35;
  letter-spacing: -.025em;
  text-transform: none;
  scroll-margin-top: 110px;
}
.ivl-legal .ivl-body h3 {
  margin: 24px 0 9px;
  color: var(--ivl-deep);
  font-family: Manrope, Mulish, system-ui, sans-serif;
  font-size: 17px;
  font-weight: 750;
  line-height: 1.45;
  letter-spacing: -.01em;
  text-transform: none;
}
.ivl-legal .ivl-body p { margin: 0 0 17px; }
.ivl-legal .ivl-body ul { margin: 8px 0 22px; padding: 0 0 0 23px; list-style: disc; }
.ivl-legal .ivl-body li { margin: 0 0 7px; padding-left: 3px; }
.ivl-legal .ivl-body li::marker { color: var(--ivl-deep); }
.ivl-legal strong { color: var(--ivl-ink); font-weight: 750; }
.ivl-legal a { color: var(--ivl-deep); text-underline-offset: 3px; overflow-wrap: anywhere; }
.ivl-legal a:hover { color: #08424a; }
.ivl-legal a:focus-visible { outline: 3px solid #0e5c64; outline-offset: 3px; border-radius: 3px; }
.ivl-legal .ivl-risk {
  padding: 17px 20px;
  border-left: 3px solid var(--ivl-green);
  border-radius: 0 7px 7px 0;
  background: var(--ivl-mint);
}
.ivl-legal .ivl-contact-details {
  padding: 18px 22px;
  border: 1px solid var(--ivl-line);
  border-radius: 8px;
  background: #f7fbfa;
  overflow-wrap: anywhere;
}
.ivl-legal .ivl-end {
  margin: 38px 0 0;
  padding: 17px 0 0;
  border-top: 1px solid var(--ivl-line);
  font-size: 13px;
}
.ivl-managed-page main .entry-title,
.ivl-managed-page .entry-header .entry-title,
.ivl-managed-page main .wp-block-post-title { display: none; }
@media (max-width: 800px) {
  .ivl-legal { margin: 22px auto 46px !important; padding: 0 16px; }
  .ivl-legal .ivl-hero { padding: 30px 25px 26px; margin-bottom: 22px; }
  .ivl-legal .ivl-layout { grid-template-columns: minmax(0, 1fr); gap: 28px; }
  .ivl-legal .ivl-sidebar { position: static; }
  .ivl-legal .ivl-desktop-toc { display: none; }
  .ivl-legal .ivl-mobile-toc { display: block; }
  .ivl-legal .ivl-toc ol { columns: 2; column-gap: 16px; }
  .ivl-legal .ivl-toc li { break-inside: avoid; }
  .ivl-legal .ivl-body h2 { scroll-margin-top: 90px; }
}
@media (max-width: 420px) {
  .ivl-legal { padding: 0 12px; font-size: 15px; }
  .ivl-legal .ivl-hero { padding: 27px 20px 24px; }
  .ivl-legal .ivl-toc { padding: 18px 14px; }
  .ivl-legal .ivl-toc ol { columns: 1; }
  .ivl-legal .ivl-body > p:first-child { font-size: 17px; }
}
@media print {
  .ivl-legal { max-width: none !important; margin: 0 !important; padding: 0; font-size: 10pt; color: #222; }
  .ivl-legal .ivl-sidebar, .ivl-legal .ivl-end { display: none; }
  .ivl-legal .ivl-layout { display: block !important; }
  .ivl-legal .ivl-hero { padding: 16px 0; border: 0; border-bottom: 1px solid #bbb; background: none; }
  .ivl-legal h1.ivl-title { font-size: 28pt; }
  .ivl-legal .ivl-body h2 { break-after: avoid; font-size: 15pt; }
  .ivl-legal .ivl-body h3 { break-after: avoid; font-size: 12pt; }
  .ivl-legal a { color: #222; }
}
