.legal-page { background: var(--sf-page-bg); }
.legal-page-header { padding: clamp(34px, 5vw, 58px) 0 28px; border-bottom: 1px solid var(--sf-line); }
.legal-page-header-inner, .legal-page-section > .storefront-shell { width: min(100% - 32px, 1040px); margin-inline: auto; }
.legal-page-header h1 { margin: 0 0 12px; font-size: clamp(2rem, 4.6vw, 3.55rem); line-height: 1.05; letter-spacing: -.045em; }
.legal-page-header p, .legal-updated, .legal-document p, .legal-document li { color: var(--sf-muted); line-height: 1.75; }
.legal-page-header p { max-width: 760px; margin: 0; }
.legal-updated { display: block; margin-top: 14px; font-size: .84rem; font-weight: 750; }
.legal-page-section { padding: 34px 0 76px; }
.legal-document { width: 100%; margin-inline: auto; padding: clamp(24px, 4vw, 52px); border: 1px solid var(--sf-line); border-radius: var(--sf-radius-large); background: var(--sf-surface); box-shadow: var(--sf-shadow-sm); }
.legal-document section { padding-bottom: 28px; border-bottom: 1px solid var(--sf-line); }
.legal-document section + section { padding-top: 28px; }
.legal-document section:last-child { padding-bottom: 0; border-bottom: 0; }
.legal-document h2 { margin: 0 0 13px; font-size: clamp(1.22rem, 2.5vw, 1.65rem); letter-spacing: -.03em; }
.legal-document p { margin: 0 0 12px; }
.legal-document p:last-child { margin-bottom: 0; }
.legal-document ul { display: grid; gap: 8px; margin: 12px 0 0; padding-left: 22px; }
.legal-document a { color: var(--sf-accent-dark); font-weight: 750; overflow-wrap: anywhere; text-underline-offset: 3px; }
.storefront-legal-consent {
    display: grid;
    grid-template-columns: auto minmax(0, 1fr);
    align-items: start;
    gap: 10px;
    margin: 2px 0 0;
    color: var(--sf-muted);
    font-size: .78rem;
    line-height: 1.55;
}
.storefront-legal-consent input {
    width: 17px;
    height: 17px;
    margin-top: 2px;
    accent-color: var(--sf-accent);
}
.storefront-legal-consent a { color: var(--sf-accent-dark); font-weight: 750; text-underline-offset: 3px; }
@media (max-width: 620px) {
    .legal-page-header { padding: 32px 0 24px; }
    .legal-page-header-inner, .legal-page-section > .storefront-shell { width: min(100% - 24px, 1040px); }
    .legal-page-section { padding: 24px 0 56px; }
    .legal-document { padding: 22px 18px; }
    .legal-document section { padding-bottom: 24px; }
    .legal-document section + section { padding-top: 24px; }
    .legal-document p, .legal-document li { font-size: .94rem; line-height: 1.68; }
    .storefront-legal-consent { font-size: .76rem; }
}

/* Privacy policy: a calm, readable document surface without changing Terms. */
.privacy-page { background: var(--sf-page-bg); }
.privacy-shell { width: min(100% - 32px, 1160px); margin-inline: auto; }
.privacy-page-header {
    padding: clamp(32px, 5vw, 58px) 0 30px;
    border-bottom: 1px solid var(--sf-line);
    background: color-mix(in srgb, var(--sf-surface) 46%, var(--sf-page-bg));
}
.privacy-breadcrumb {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 7px;
    margin-bottom: 22px;
    color: var(--sf-muted);
    font-size: .82rem;
    font-weight: 750;
}
.privacy-breadcrumb a { color: var(--sf-muted); text-decoration: none; }
.privacy-breadcrumb a:hover { color: var(--sf-ink); text-decoration: underline; text-underline-offset: 3px; }
.privacy-breadcrumb a:focus-visible,
.privacy-breadcrumb .privacy-breadcrumb-current:focus-visible {
    border-radius: 6px;
    outline: 2px solid color-mix(in srgb, var(--sf-accent) 60%, transparent);
    outline-offset: 3px;
}
.privacy-breadcrumb-separator { color: color-mix(in srgb, var(--sf-muted) 62%, transparent); }
.privacy-breadcrumb-current { color: var(--sf-ink); }
.privacy-eyebrow {
    margin: 0 0 12px;
    color: var(--sf-accent-dark);
    font-size: .76rem;
    font-weight: 850;
    letter-spacing: .12em;
    text-transform: uppercase;
}
.privacy-page-title {
    max-width: 900px;
    margin: 0;
    color: var(--sf-ink);
    font-size: clamp(2rem, 4.6vw, 3.6rem);
    line-height: 1.04;
    letter-spacing: -.05em;
}
.legal-last-updated {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    margin: 12px 0 0;
    color: var(--sf-muted);
    font-size: 0.82rem;
    font-weight: 500;
    letter-spacing: 0.01em;
}
.privacy-page-lead {
    max-width: 760px;
    margin: 16px 0 0;
    color: var(--sf-muted);
    font-size: clamp(1rem, 1.6vw, 1.12rem);
    line-height: 1.72;
}
.privacy-page-section { padding: 34px 0 80px; }
.privacy-layout {
    display: grid;
    grid-template-columns: minmax(0, 1fr) minmax(190px, 240px);
    align-items: start;
    gap: 28px;
}
.privacy-document {
    max-width: none;
    padding: clamp(26px, 4vw, 52px);
}
.privacy-document > section { padding-bottom: 0; border-bottom: 0; }
.privacy-document > section + section { padding-top: 42px; }
.privacy-document > .privacy-introduction {
    padding-bottom: 34px;
    border-bottom: 1px solid var(--sf-line);
}
.privacy-document > .privacy-summary {
    margin-top: 34px;
    padding: clamp(20px, 3vw, 28px);
    border: 1px solid color-mix(in srgb, var(--sf-accent) 22%, var(--sf-line));
    border-radius: var(--sf-radius-medium);
    background: color-mix(in srgb, var(--sf-accent) 6%, var(--sf-surface));
}
.privacy-document > .privacy-summary + .privacy-section { padding-top: 44px; }
.privacy-document > .privacy-section {
    padding-bottom: 40px;
    border-bottom: 1px solid var(--sf-line);
}
.privacy-document > .privacy-section:last-child { padding-bottom: 0; border-bottom: 0; }
.privacy-section-kicker {
    margin: 0 0 8px;
    color: var(--sf-accent-dark);
    font-size: .72rem;
    font-weight: 850;
    letter-spacing: .1em;
    text-transform: uppercase;
}
.privacy-document h2 {
    margin-bottom: 16px;
    color: var(--sf-ink);
    font-size: clamp(1.28rem, 2.4vw, 1.72rem);
    line-height: 1.25;
}
.privacy-document .privacy-introduction h2,
.privacy-document .privacy-summary h2 { font-size: clamp(1.18rem, 2.1vw, 1.42rem); }
.privacy-document p,
.privacy-document li { line-height: 1.78; }
.privacy-document p { max-width: 78ch; }
.privacy-document li { max-width: 78ch; }
.privacy-document .privacy-summary p { margin-bottom: 0; }
.privacy-summary-grid {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 0 28px;
}
.privacy-summary-item {
    padding: 17px 0;
    border-top: 1px solid color-mix(in srgb, var(--sf-line) 86%, transparent);
}
.privacy-summary-item:nth-child(-n + 2) { border-top: 0; padding-top: 6px; }
.privacy-summary-item h3 { margin: 0 0 7px; color: var(--sf-ink); font-size: .96rem; line-height: 1.4; }
.privacy-summary-item strong { color: var(--sf-ink); }
.privacy-subsection {
    margin-top: 28px;
    padding-top: 24px;
    border-top: 1px solid color-mix(in srgb, var(--sf-line) 86%, transparent);
}
.privacy-subsection:first-of-type { margin-top: 24px; padding-top: 0; border-top: 0; }
.privacy-subsection h3 {
    margin: 0 0 11px;
    color: var(--sf-ink);
    font-size: 1rem;
    line-height: 1.4;
}
.privacy-document .privacy-terms-link { margin-top: 14px; }
.privacy-contact-block {
    margin-top: 26px;
    padding-top: 24px;
    border-top: 1px solid color-mix(in srgb, var(--sf-line) 86%, transparent);
}
.privacy-contact-list { margin-top: 14px; }
.privacy-contact-button {
    display: inline;
    margin: 0;
    padding: 0;
    border: 0;
    border-radius: 4px;
    background: transparent;
    color: var(--sf-accent-dark);
    font: inherit;
    font-weight: 750;
    text-decoration: underline;
    text-underline-offset: 3px;
    cursor: pointer;
}
.privacy-contact-button:hover { color: var(--sf-ink); }
.privacy-contact-button:focus-visible {
    outline: 2px solid color-mix(in srgb, var(--sf-accent) 60%, transparent);
    outline-offset: 3px;
}
.privacy-closing {
    margin-top: 30px;
    color: var(--sf-ink);
    font-weight: 800;
}
.privacy-section,
.privacy-introduction,
.privacy-summary,
.legal-section {
    scroll-margin-top: 96px;
}
/* Give the sticky TOC the full document column as its containing block. */
.privacy-aside { align-self: stretch; min-width: 0; }
.privacy-toc {
    position: sticky;
    top: 96px;
    max-height: calc(100vh - 120px);
    overflow-y: auto;
    border: 1px solid var(--sf-line);
    border-radius: var(--sf-radius-medium);
    background: color-mix(in srgb, var(--sf-surface) 84%, var(--sf-page-bg));
    box-shadow: var(--sf-shadow-sm);
    overscroll-behavior: contain;
}
.privacy-toc::-webkit-scrollbar {
    width: 4px;
}
.privacy-toc::-webkit-scrollbar-thumb {
    background: color-mix(in srgb, var(--sf-line) 80%, transparent);
    border-radius: 4px;
}
.privacy-toc summary {
    padding: 17px 18px;
    color: var(--sf-ink);
    font-size: .86rem;
    font-weight: 850;
    cursor: pointer;
    list-style: none;
}
.privacy-toc summary::-webkit-details-marker { display: none; }
.privacy-toc summary::after { float: right; content: '+'; color: var(--sf-muted); font-size: 1.1rem; line-height: 1; }
.privacy-toc[open] summary::after { content: '−'; }
.privacy-toc nav { padding: 0 10px 12px; }
.privacy-toc a {
    display: block;
    padding: 7px 8px;
    border-radius: 7px;
    color: var(--sf-muted);
    font-size: .78rem;
    line-height: 1.4;
    text-decoration: none;
    transition: background 0.15s ease, color 0.15s ease;
}
.privacy-toc a:hover { background: color-mix(in srgb, var(--sf-accent) 8%, transparent); color: var(--sf-ink); }
.privacy-toc a.active {
    background: color-mix(in srgb, var(--sf-accent) 12%, transparent);
    color: var(--sf-ink);
    font-weight: 750;
}
.privacy-toc a:focus-visible {
    outline: 2px solid color-mix(in srgb, var(--sf-accent) 60%, transparent);
    outline-offset: 1px;
}

/* Steps styling */
.legal-steps-list {
    display: grid;
    gap: 14px;
    margin: 18px 0;
}
.legal-step-card {
    display: flex;
    gap: 16px;
    align-items: flex-start;
    padding: 16px 20px;
    border: 1px solid color-mix(in srgb, var(--sf-line) 90%, transparent);
    border-radius: var(--sf-radius-medium);
    background: color-mix(in srgb, var(--sf-surface) 60%, var(--sf-page-bg));
}
.legal-step-badge {
    flex-shrink: 0;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    padding: 4px 10px;
    border-radius: var(--sf-radius-pill);
    background: var(--sf-accent);
    color: #ffffff;
    font-size: 0.78rem;
    font-weight: 800;
    letter-spacing: 0.02em;
    white-space: nowrap;
}
.legal-step-body {
    flex: 1;
    min-width: 0;
}
.legal-step-title {
    margin: 0 0 6px;
    font-size: 0.98rem;
    font-weight: 800;
    color: var(--sf-ink);
}
.legal-step-text {
    margin: 0;
    font-size: 0.92rem;
    line-height: 1.65;
    color: var(--sf-muted);
}
.legal-step-list {
    margin: 8px 0 0;
    padding-left: 20px;
}
.legal-step-note {
    margin-top: 8px;
}

/* Formula / Calculation box */
.legal-formula-card {
    margin: 20px 0;
    padding: 18px 22px;
    border: 1px solid color-mix(in srgb, var(--sf-accent) 30%, var(--sf-line));
    border-left: 4px solid var(--sf-accent);
    border-radius: var(--sf-radius-medium);
    background: color-mix(in srgb, var(--sf-accent) 5%, var(--sf-surface));
}
.legal-formula-label {
    display: block;
    margin-bottom: 6px;
    font-size: 0.74rem;
    font-weight: 800;
    text-transform: uppercase;
    letter-spacing: 0.08em;
    color: var(--sf-accent-dark);
}
.legal-formula-math {
    margin: 0;
    font-size: 0.95rem;
    font-weight: 750;
    color: var(--sf-ink);
    line-height: 1.6;
    word-break: break-word;
}

/* Example box */
.legal-example-box {
    margin: 18px 0;
    padding: 18px 22px;
    border: 1px dashed color-mix(in srgb, var(--sf-line) 90%, transparent);
    border-radius: var(--sf-radius-medium);
    background: color-mix(in srgb, var(--sf-surface-elevated) 60%, var(--sf-surface));
}
.legal-example-title {
    margin: 0 0 10px;
    font-size: 0.82rem;
    font-weight: 800;
    color: var(--sf-ink);
    text-transform: uppercase;
    letter-spacing: 0.05em;
}
.legal-example-list {
    margin: 0 0 12px;
    padding-left: 20px;
    display: grid;
    gap: 6px;
}
.legal-example-result {
    margin: 0;
    padding-top: 10px;
    border-top: 1px solid color-mix(in srgb, var(--sf-line) 80%, transparent);
    color: var(--sf-ink);
    font-size: 0.94rem;
}

/* Important Note / Warning Callout */
.legal-note-box {
    margin: 18px 0;
    padding: 14px 18px;
    border-radius: var(--sf-radius-medium);
    border: 1px solid color-mix(in srgb, #f59e0b 35%, var(--sf-line));
    background: color-mix(in srgb, #f59e0b 8%, var(--sf-surface));
    color: var(--sf-ink);
    font-size: 0.92rem;
    line-height: 1.68;
}
html[data-theme="dark"] .legal-note-box {
    border-color: rgba(245, 158, 11, 0.35);
    background: rgba(245, 158, 11, 0.1);
}
html[data-theme="dark"] .legal-formula-card {
    border-color: color-mix(in srgb, var(--sf-accent) 40%, var(--sf-line));
    background: color-mix(in srgb, var(--sf-accent) 10%, var(--sf-surface));
}
html[data-theme="dark"] .legal-step-card {
    background: color-mix(in srgb, var(--sf-surface-elevated) 70%, var(--sf-surface));
    border-color: var(--sf-line);
}
@media (max-width: 920px) {
    .privacy-layout { grid-template-columns: minmax(0, 1fr); }
    .privacy-aside { order: -1; }
    .privacy-toc { position: static; }
    .privacy-toc nav { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 2px 8px; }
}
@media (max-width: 620px) {
    .privacy-shell { width: min(100% - 24px, 1160px); }
    .privacy-page-header { padding: 30px 0 24px; }
    .privacy-breadcrumb { margin-bottom: 18px; }
    .privacy-page-section { padding: 24px 0 56px; }
    .privacy-document { padding: 22px 18px; }
    .privacy-document > section + section,
    .privacy-document > .privacy-summary + .privacy-section { padding-top: 32px; }
    .privacy-document > .privacy-introduction { padding-bottom: 28px; }
    .privacy-document > .privacy-section { padding-bottom: 30px; }
    .privacy-document p,
    .privacy-document li { font-size: .94rem; line-height: 1.7; }
    .privacy-summary-grid { grid-template-columns: 1fr; }
    .privacy-summary-item,
    .privacy-summary-item:nth-child(-n + 2) { padding: 14px 0; border-top: 1px solid color-mix(in srgb, var(--sf-line) 86%, transparent); }
    .privacy-summary-item:first-child { border-top: 0; padding-top: 4px; }
    .privacy-toc nav { grid-template-columns: 1fr; }
}
