/* Branded contract styling. Written to render identically in a modern
   browser (preview) AND in wkhtmltopdf's older WebKit (PDF): literal
   colours (no CSS variables), table based layouts (no grid/flex), and a
   web-safe font stack, so the PDF matches the preview. */
.contract { font-family: "Helvetica Neue", Helvetica, Arial, "Inter", sans-serif; color: #18181b; line-height: 1.6; }

.contract-cover { border-bottom: 3px solid #ec4899; padding-bottom: 1.5rem; margin-bottom: 2rem; }
.contract-cover__brand { font-size: 1.6rem; font-weight: 800; letter-spacing: -0.02em; color: #18181b; }
.contract-cover__brand .dot { color: #ec4899; }
.contract-cover__kind { margin-top: 2.5rem; margin-bottom: 0; text-transform: uppercase; letter-spacing: 0.16em; font-size: 0.72rem; font-weight: 700; color: #be185d; }
.contract-cover__title { font-size: 2rem; font-weight: 800; letter-spacing: -0.02em; margin: 0.4rem 0 0; line-height: 1.15; color: #18181b; }
.contract-cover__party { color: #52525b; font-weight: 600; margin-top: 0.6rem; }

.contract-cover__facts { width: 100%; border-collapse: collapse; margin-top: 1.8rem; }
.contract-cover__facts td { width: 50%; border-top: 1px solid #e4e4e7; padding: 0.5rem 0 0.7rem; vertical-align: top; }
.contract-cover__facts .dt { display: block; font-size: 0.62rem; text-transform: uppercase; letter-spacing: 0.12em; color: #52525b; }
.contract-cover__facts .dd { display: block; margin-top: 0.15rem; font-weight: 700; font-size: 0.92rem; color: #18181b; }
.contract-cover__foot { margin-top: 1.8rem; font-size: 0.7rem; color: #52525b; }

.contract-amend, .contract-refs { border-left: 3px solid #ec4899; background: #fdf2f8; padding: 0.8rem 1rem; margin: 1.5rem 0; }
.contract-amend h2, .contract-refs h2 { margin: 0 0 0.4rem; font-size: 0.9rem; color: #be185d; }
.contract-refs ul { margin: 0; padding-left: 1.1rem; }
.contract-refs a { color: #be185d; font-weight: 600; }

.contract-toc { border: 1px solid #e4e4e7; padding: 1rem 1.25rem; margin: 1.5rem 0 2rem; }
.contract-toc h2 { margin: 0 0 0.5rem; font-size: 0.78rem; text-transform: uppercase; letter-spacing: 0.12em; color: #52525b; }
.contract-toc ol { list-style: none; margin: 0; padding: 0; }
.contract-toc li { padding: 0.15rem 0; }
.contract-toc li.lvl-3 { padding-left: 1.2rem; font-size: 0.9rem; }
.contract-toc a { color: #18181b; text-decoration: none; }

.contract-body h2 { font-size: 1.15rem; font-weight: 800; margin: 1.8rem 0 0.5rem; padding-top: 0.5rem; border-top: 1px solid #e4e4e7; color: #18181b; }
.contract-body h3 { font-size: 1rem; font-weight: 700; margin: 1.1rem 0 0.3rem; color: #18181b; }
.contract-body p { margin: 0.5rem 0; }
.contract-body a { color: #be185d; font-weight: 600; }
.contract-body ul, .contract-body ol { padding-left: 1.4rem; }
.contract-body li { margin: 0.25rem 0; }
.contract-body strong { font-weight: 700; }
.contract-body hr { border: 0; border-top: 2px solid #ec4899; margin: 1.6rem 0; }
.contract-body table { width: 100%; border-collapse: collapse; margin: 1rem 0; font-size: 0.85rem; }
.contract-body th, .contract-body td { border: 1px solid #e4e4e7; padding: 0.4rem 0.6rem; text-align: left; }

@page { size: A4; margin: 22mm 18mm 20mm; }
.contract--pdf .contract-cover { page-break-after: always; border-bottom: none; }
.contract--pdf .contract-toc { page-break-after: always; }
.contract--pdf .contract-body h2 { page-break-after: avoid; }
.contract--pdf .contract-body table, .contract--pdf .contract-body li { page-break-inside: avoid; }
