:root {
    color-scheme: light;
    font-family: 'Inter', sans-serif;
    color: #333;
    background: #fff;
    line-height: 1.75;
    --accent: #5745a0;
}

* { box-sizing: border-box; }
body { margin: 0; }
a { color: var(--accent); text-underline-offset: 0.2em; }
a:hover { text-decoration-thickness: 2px; }
a:focus-visible, button:focus-visible {
    outline: 3px solid #5745a0;
    outline-offset: 5px;
    border-radius: 3px;
}

.skip-link {
    position: absolute;
    top: -6rem;
    left: 1rem;
    padding: 0.75rem 1rem;
    background: white;
    z-index: 10;
}
.skip-link:focus { top: 1rem; }
.container { width: min(1200px, 100%); margin-inline: auto; padding-inline: 2rem; }
.header { border-bottom: 1px solid #e9e7ef; }
.header-content {
    min-height: 80px;
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 1.5rem;
    padding-block: 1rem;
}
.logo { display: flex; align-items: center; gap: 1rem; text-decoration: none; }
.logo img { height: 40px; width: auto; }
.logo-text {
    font-size: 1.8rem;
    font-weight: 800;
    color: var(--accent);
    background: linear-gradient(135deg, #667eea, #764ba2);
    background-clip: text;
    -webkit-background-clip: text;
    -webkit-text-fill-color: transparent;
}
.header-nav { display: flex; align-items: center; gap: 2rem; }
.header-nav a { color: #333; font-weight: 500; text-decoration: none; }
.header-nav .btn-login {
    color: white;
    background: linear-gradient(135deg, #566acb, #764ba2);
    border-radius: 25px;
    padding: 0.65rem 1.5rem;
    font-weight: 600;
}
.legal-intro { background: #f7f7fc; border-bottom: 1px solid #e9e7ef; padding-block: 3rem; }
.breadcrumb { font-size: 0.875rem; margin-bottom: 1.5rem; }
.breadcrumb a { color: #5b566e; }
.eyebrow { color: var(--accent); font-weight: 600; margin: 0 0 0.5rem; }
h1 { font-size: clamp(2rem, 5vw, 3.25rem); letter-spacing: -0.035em; line-height: 1.15; margin: 0 0 1.25rem; }
.lead { max-width: 48rem; color: #5b566e; font-size: 1.125rem; margin: 0; }
.document-meta { display: flex; gap: 0.75rem 1.5rem; align-items: center; flex-wrap: wrap; margin-top: 1.5rem; font-size: 0.875rem; color: #5b566e; }
.draft-label { border: 1px solid #d4cbed; border-radius: 6px; padding: 0.15rem 0.6rem; color: #574080; }
.print-button { font: inherit; color: var(--accent); background: none; border: 0; padding: 0; text-decoration: underline; text-underline-offset: 0.2em; cursor: pointer; }
.legal-layout { display: grid; grid-template-columns: 15rem minmax(0, 1fr); gap: 4rem; align-items: start; padding-block: 3.5rem 5rem; }
.contents { position: sticky; top: 2rem; font-size: 0.9375rem; }
.contents h2 { font-size: 1rem; margin: 0 0 1rem; }
.contents ol { padding-left: 1.25rem; margin: 0; }
.contents li { padding: 0.25rem 0 0.25rem 0.25rem; }
.contents a { color: #5b566e; text-decoration: none; }
.contents a:hover { color: var(--accent); text-decoration: underline; }
.related-page { border-top: 1px solid #e9e7ef; padding-top: 1rem; margin-top: 1.5rem; }
.related-page a { color: var(--accent); text-decoration: underline; }
.legal-document { max-width: 46rem; min-width: 0; overflow-wrap: anywhere; }
.legal-document section { scroll-margin-top: 2rem; margin-bottom: 2.5rem; }
.legal-document section:last-child { margin-bottom: 0; }
.legal-document h2 { font-size: 1.375rem; line-height: 1.4; letter-spacing: -0.02em; margin: 0 0 1rem; }
.legal-document h3 { font-size: 1.0625rem; margin: 1.5rem 0 0.5rem; }
.legal-document p { margin: 0 0 1rem; }
.legal-document ul { margin: 0 0 1rem; padding-left: 1.25rem; }
.legal-document li { margin-bottom: 0.5rem; padding-left: 0.25rem; }
.contact-details { font-style: normal; padding-left: 1.25rem; border-left: 3px solid #d9d2ef; }
.notice { padding: 1.25rem 1.5rem; background: #f7f7fc; border-left: 3px solid #9a87c6; margin-bottom: 2.5rem; }
.notice p:last-child { margin-bottom: 0; }
.footer { background: #333; color: white; padding: 3rem 0 1.5rem; }
.footer-content { display: grid; grid-template-columns: 1fr 1fr 1fr; gap: 2rem; }
.footer h2 { font-size: 1.125rem; margin: 0 0 0.75rem; }
.footer p { margin: 0 0 0.5rem; color: #ddd; }
.footer a { color: #ddd; }
.footer [aria-current="page"] { color: white; font-weight: 600; }
.footer a:focus-visible { outline-color: #d9d2ef; }
.footer-bottom { border-top: 1px solid #555; margin-top: 2rem; padding-top: 1.5rem; font-size: 0.875rem; }

@media (max-width: 900px) {
    .legal-layout { grid-template-columns: 1fr; gap: 2.5rem; }
    .contents { position: static; border-bottom: 1px solid #e9e7ef; padding-bottom: 1.5rem; }
    .contents ol { columns: 2; column-gap: 2.5rem; }
    .contents li { break-inside: avoid; }
    .legal-document { max-width: none; }
    .footer-content { grid-template-columns: 1fr 1fr; }
}
@media (max-width: 540px) {
    .container { padding-inline: 1.25rem; }
    .header-content { flex-wrap: wrap; gap: 1rem; }
    .header-nav { width: 100%; justify-content: space-between; gap: 1rem; }
    .legal-intro { padding-block: 2rem; }
    .legal-layout { padding-block: 2rem 3rem; }
    .contents ol { columns: 1; }
    .footer-content { grid-template-columns: 1fr; }
}
@media (prefers-reduced-motion: no-preference) {
    html { scroll-behavior: smooth; }
}
@media print {
    @page { margin: 18mm; }
    :root { color: black; font-family: Arial, sans-serif; font-size: 11pt; }
    .header, .breadcrumb, .contents, .footer, .skip-link, .print-button { display: none; }
    .container { width: 100%; padding: 0; }
    .legal-intro { background: none; padding: 0 0 1.5rem; }
    .legal-layout { display: block; padding: 1.5rem 0 0; }
    .legal-document { max-width: none; }
    .legal-document h2, .legal-document h3 { break-after: avoid; }
    .legal-document p, .legal-document li { orphans: 3; widows: 3; }
    .notice { background: none; border: 1px solid #aaa; }
    a { color: black; }
    h1 { font-size: 26pt; }
}
