.willow-legal { padding: 0 !important; overflow: visible; color: var(--willow-ink); background: #f6fafc; }
.willow-legal *, .willow-legal *::before, .willow-legal *::after { box-sizing: border-box; }
.willow-legal > .container { width: 100%; max-width: none; padding: 0; }
.willow-legal > .container > .row { display: block; margin: 0; }

.legal-hero { position: relative; padding: 76px 0 70px; overflow: hidden; border: 0; background: linear-gradient(125deg, #f9fcfd 0%, #e8f5fb 100%); }
.legal-hero::before { position: absolute; width: 390px; height: 390px; top: -255px; right: -90px; border: 1px solid rgba(20,140,203,.13); border-radius: 50%; box-shadow: 0 0 0 70px rgba(20,140,203,.025), 0 0 0 140px rgba(20,140,203,.016); content: ""; }
.legal-hero > .container { position: relative; z-index: 1; max-width: 1180px; }
.legal-hero__copy { max-width: 820px; }
.legal-hero__icon { width: 55px; height: 55px; margin-bottom: 22px; display: grid; place-items: center; border-radius: 50%; color: var(--willow-blue-dark); background: #dceff8; font-size: 23px; }
.legal-hero__eyebrow { margin: 0 0 10px; color: var(--willow-blue-dark); font-size: 11px; font-weight: 900; letter-spacing: .15em; text-transform: uppercase; }
.legal-hero h1 { margin: 0 0 22px; color: var(--willow-navy); font-size: clamp(52px,6.2vw,76px); line-height: 1; letter-spacing: -.055em; }
.legal-hero .badge-soft { padding: 9px 14px !important; border: 1px solid #bfdce9; color: var(--willow-navy); background: rgba(255,255,255,.82); font-size: 11px; font-weight: 500; }
.legal-hero .small-muted { color: #526a7e; font-size: 13px; line-height: 1.55; }
.legal-hero__meta { min-width: 260px; margin-top: 103px; padding: 17px 19px; border: 1px solid rgba(179,211,225,.85); border-radius: 10px; background: rgba(255,255,255,.66); backdrop-filter: blur(8px); }
.legal-hero__meta .small-muted + .small-muted { margin-top: 4px; }
.legal-hero__meta .fw-semibold { color: var(--willow-navy); }

.legal-page { padding: 66px 0 86px; }
.legal-page > .container { max-width: 1180px; }
.legal-page > .container > .row { --bs-gutter-x: 28px; align-items: flex-start; }

.legal-sidebar { position: sticky; top: 105px; }
.legal-sidebar .content-card { overflow: hidden; border: 1px solid #cbdfe8; border-radius: 12px; background: #fff; box-shadow: 0 13px 38px rgba(17,47,79,.07) !important; }
.legal-sidebar .card-body { padding: 22px; }
.legal-sidebar .card-body > .d-flex { padding: 0 2px 14px; border-bottom: 1px solid #dbe8ee; }
.legal-sidebar h2 { color: var(--willow-navy); font-size: 13px; font-weight: 900 !important; letter-spacing: .04em; text-transform: uppercase; }
.legal-sidebar .badge { min-width: 29px; padding: 6px 8px; border: 0 !important; border-radius: 999px; color: var(--willow-blue-dark); background: var(--willow-pale) !important; }
.legal-sidebar .toc { max-height: min(58vh, 530px); margin: 5px -9px 0; overflow-y: auto; scrollbar-color: #b6d6e4 transparent; scrollbar-width: thin; }
.legal-sidebar .toc .list-group-item { padding: 9px 11px; border: 0; border-radius: 7px; color: #587082; background: transparent; font-size: 11px; line-height: 1.4; text-decoration: none; transition: .18s ease; }
.legal-sidebar .toc .list-group-item:hover, .legal-sidebar .toc .list-group-item:focus { padding-left: 15px; color: var(--willow-blue-dark); background: #edf7fb; }
.legal-sidebar .mt-3.small { margin-top: 17px !important; padding: 13px 14px; border-radius: 8px; color: #6a7f8d !important; background: #f5f9fb; font-size: 10px; line-height: 1.5; }
.legal-sidebar .sticky-toc { position: static; margin-top: 14px !important; }
.legal-sidebar .sticky-toc .alert { padding: 17px 18px; border: 0 !important; border-radius: 10px; color: rgba(255,255,255,.85); background: linear-gradient(125deg, #07577d, #0b83b3) !important; box-shadow: 0 12px 30px rgba(9,100,142,.15) !important; }
.legal-sidebar .sticky-toc .fw-semibold { color: #fff; font-size: 12px; }
.legal-sidebar .sticky-toc .text-muted { color: rgba(255,255,255,.76) !important; font-size: 10px; line-height: 1.5; }

.legal-document .content-card { border: 1px solid #cbdfe8; border-radius: 12px; background: #fff; box-shadow: 0 18px 48px rgba(17,47,79,.075) !important; }
.legal-document .card-body { padding: 48px 52px !important; color: #516878; font-size: 14px; line-height: 1.78; }
.legal-document .card-body > p:first-child { color: var(--willow-navy); font-size: 16px; line-height: 1.72; }
.legal-document p { margin-bottom: 17px; }
.legal-document strong { color: var(--willow-navy); }
.legal-document hr { margin: 31px 0 !important; border: 0; border-top: 1px solid #dbe8ee; opacity: 1; }
.legal-document .section-title { position: relative; margin: 42px 0 16px !important; padding: 17px 0 0 47px; border-top: 1px solid #dbe8ee; scroll-margin-top: 112px; color: var(--willow-navy); font-size: 23px; line-height: 1.3; letter-spacing: -.025em; }
.legal-document hr + .section-title, .legal-document .card-body > .section-title:first-of-type { margin-top: 0 !important; border-top: 0; }
.legal-document .section-title::before { position: absolute; top: 14px; left: 0; width: 34px; height: 34px; display: grid; place-items: center; border-radius: 50%; color: var(--willow-blue-dark); background: var(--willow-pale); font-size: 11px; font-weight: 900; content: "§"; }
.legal-document h3 { margin: 24px 0 9px !important; color: var(--willow-navy); font-size: 15px; line-height: 1.45; }
.legal-document ul { margin: 13px 0 20px; padding: 0; list-style: none; }
.legal-document li { position: relative; margin: 9px 0; padding-left: 26px; }
.legal-document li::before { position: absolute; top: 3px; left: 0; width: 17px; height: 17px; display: grid; place-items: center; border-radius: 50%; color: var(--willow-blue-dark); background: #e5f4fa; font-family: "Font Awesome 5 Pro"; font-size: 7px; font-weight: 400; content: "\f00c"; }
.legal-document .bg-light { margin-top: 18px; padding: 19px 21px !important; border: 1px solid #bcdbe8 !important; border-radius: 9px !important; color: #4c6576; background: #eff8fc !important; }
.legal-document .bg-light div + div { margin-top: 5px; }
.legal-document .small.text-muted { margin: 0; padding: 16px 18px; border-left: 3px solid #9dcddd; border-radius: 0 7px 7px 0; color: #697f8e !important; background: #f5f9fb; font-size: 10px; line-height: 1.6; }

@media (max-width: 991px) {
    .legal-hero { padding: 66px 0 60px; }
    .legal-hero__meta { margin-top: 10px; text-align: left !important; }
    .legal-sidebar { position: static; }
    .legal-sidebar .toc { max-height: 340px; }
    .legal-sidebar .sticky-toc { display: block !important; }
}
@media (max-width: 680px) {
    .legal-hero { padding: 56px 0 52px; }
    .legal-hero h1 { font-size: 47px; }
    .legal-hero .d-flex.flex-wrap { align-items: flex-start !important; flex-direction: column; }
    .legal-page { padding: 42px 0 68px; }
    .legal-page > .container { padding-right: 18px; padding-left: 18px; }
    .legal-document .card-body { padding: 30px 23px !important; font-size: 13px; }
    .legal-document .section-title { padding-left: 43px; font-size: 20px; }
}
