/* Reading layout follows the supplied Tools and BIM legal pages. */
.terms-page { --legal-ink:#111; --legal-muted:#595959; --legal-rule:#dedede; --legal-action:var(--action); --legal-deep:var(--ink); --legal-tint:var(--soft); }
.terms-intro { padding-block:96px; border-bottom:1px solid var(--legal-rule); }
.terms-intro .eyebrow { color:var(--legal-muted); margin:0 0 24px; }
.terms-intro h1 { font-size:3.5rem; line-height:1.143; letter-spacing:normal; max-width:none; margin:0; }
.terms-intro-description { font-size:1.25rem; line-height:1.5; max-width:65ch; margin:32px 0 0; }
.terms-meta { display:flex; justify-content:space-between; align-items:flex-end; gap:32px; margin-top:40px; }
.terms-dates { display:flex; flex-wrap:wrap; gap:24px 48px; margin:0; }
.terms-dates div { display:flex; flex-direction:column; gap:8px; }
.terms-dates dt { font-size:.875rem; line-height:1.5; color:var(--legal-muted); }
.terms-dates dd { font-size:1rem; line-height:1.5; margin:0; }
.terms-print { flex-shrink:0; }
.terms-print[hidden] { display:none; }
.terms-reading { display:grid; grid-template-columns:224px minmax(0,1fr); gap:64px; align-items:start; padding-block:96px; }
.terms-contents { position:sticky; top:calc(var(--site-header-height,104px) + 24px); min-width:0; }
.terms-contents details { max-height:calc(100svh - var(--site-header-height,104px) - 48px); overflow-y:auto; scrollbar-width:thin; overscroll-behavior:contain; padding:4px 8px 12px 4px; margin:-4px -8px -12px -4px; }
.terms-contents summary { display:flex; justify-content:space-between; align-items:center; gap:16px; list-style:none; cursor:pointer; min-height:44px; font-size:1rem; font-weight:500; line-height:1.5; }
.terms-contents summary::-webkit-details-marker { display:none; }
.terms-contents summary::after { content:'+'; font-size:1.25rem; font-weight:400; }
.terms-contents details[open] summary::after { content:'−'; }
.terms-contents-caption { margin:8px 0 24px; font-size:.875rem; line-height:1.5; color:var(--legal-muted); }
.terms-toc { list-style:none; margin:0; padding:0; }
.terms-toc li { margin:0; padding:0; }
.terms-toc a { display:grid; grid-template-columns:24px minmax(0,1fr); gap:12px; align-items:baseline; min-height:44px; padding:12px 10px 12px 12px; border-left:2px solid var(--legal-rule); font-size:.875rem; line-height:1.5; color:var(--legal-muted); text-decoration:none; overflow-wrap:anywhere; }
.terms-toc a:hover { color:var(--legal-ink); background:#f1f1f1; }
.terms-toc a[aria-current='location'] { color:var(--legal-deep); background:var(--legal-tint); border-color:var(--legal-action); font-weight:500; }
.terms-toc-number,.terms-section-number,.terms-clause-number { font-variant-numeric:tabular-nums; }
.terms-document { min-width:0; max-width:75ch; font-size:1rem; line-height:1.65; }
.terms-section + .terms-section { margin-top:96px; padding-top:96px; border-top:1px solid var(--legal-rule); }
.terms-section h2 { display:flex; align-items:baseline; gap:16px; font-size:2.5rem; line-height:1.2; letter-spacing:normal; margin:0 0 48px; scroll-margin-top:calc(var(--site-header-height,104px) + 32px); overflow-wrap:anywhere; }
.terms-section-number { flex:none; color:var(--legal-deep); }
.terms-section h3 { font-family:var(--display); font-size:1.75rem; font-weight:600; line-height:1.3; margin:56px 0 24px; scroll-margin-top:calc(var(--site-header-height,104px) + 32px); }
.terms-section h3:first-child { margin-top:0; }
.terms-section p { margin:0 0 24px; overflow-wrap:anywhere; }
.terms-section p:last-child { margin-bottom:0; }
.terms-clause-number { color:var(--legal-muted); }
.terms-section a { color:var(--legal-deep); text-decoration:underline; text-underline-offset:4px; }
.terms-section strong { font-weight:500; }
.terms-section [id^='clause-'] { scroll-margin-top:calc(var(--site-header-height,104px) + 32px); }
.terms-page :is(a,button,summary):focus-visible { outline:3px solid var(--legal-ink); outline-offset:4px; }
.terms-section :is(h2,h3):focus { outline:none; }
.terms-section :is(h2,h3):focus-visible { outline:3px solid var(--legal-ink); outline-offset:8px; }
.terms-page .legal-links a[aria-current='page'] { text-decoration:underline; text-underline-offset:4px; }
@media(max-width:1200px) { .terms-intro,.terms-reading { padding-block:80px; } .terms-section + .terms-section { margin-top:80px; padding-top:80px; } }
@media(max-width:1100px) { .terms-reading { grid-template-columns:184px minmax(0,1fr); gap:32px; } .terms-toc a { gap:8px; padding-inline:8px; } .terms-meta { align-items:flex-start; } }
@media(max-width:760px) {
 .terms-intro,.terms-reading { padding-block:64px; }
 .terms-intro h1 { font-size:2.5rem; line-height:1.2; overflow-wrap:anywhere; }
 .terms-intro-description { font-size:1.125rem; margin-top:24px; }
 .terms-meta { flex-direction:column; margin-top:32px; gap:24px; }
 .terms-dates { gap:24px 32px; }
 .terms-reading { display:block; }
 .terms-contents { position:static; border:1px solid #767676; padding:24px; margin-bottom:48px; }
 .terms-contents details { max-height:none; overflow:visible; margin:0; padding:0; }
 .terms-toc a { font-size:1rem; gap:12px; padding:12px; }
 .terms-section + .terms-section { margin-top:64px; padding-top:64px; }
 .terms-section h2 { font-size:2rem; line-height:1.25; gap:12px; margin-bottom:32px; }
 .terms-section h3 { font-size:1.5rem; margin-top:48px; }
}
@media(max-width:360px) { .terms-intro h1 { font-size:2.25rem; } .terms-dates { flex-direction:column; } .terms-print { width:100%; } }
@media print {
 @page { size:A4; margin:18mm; }
 .terms-page { color:#111; font-size:10.5pt; line-height:1.5; }
 .terms-page :is(.top,.site-foot,.report-strip,.report-dialog,.skip-link,.terms-contents,.terms-print) { display:none!important; }
 .terms-page .wrap { width:100%; max-width:none; margin:0; padding-inline:0; }
 .terms-intro { padding:0 0 24px; }
 .terms-intro .eyebrow { margin-bottom:12px; font-size:9pt; }
 .terms-intro h1 { font-size:28pt; line-height:1.15; }
 .terms-intro-description { font-size:11pt; margin-top:16px; }
 .terms-meta { margin-top:20px; }
 .terms-dates { gap:24px; }
 .terms-dates dt { font-size:9pt; }
 .terms-dates dd { font-size:10pt; }
 .terms-reading { display:block; padding:24px 0 0; }
 .terms-document { max-width:none; font-size:10.5pt; }
 .terms-section + .terms-section { margin-top:24px; padding-top:24px; }
 .terms-section h2 { font-size:18pt; line-height:1.25; gap:10px; margin-bottom:16px; }
 .terms-section h3 { font-size:14pt; margin:24px 0 12px; }
 .terms-section :is(h2,h3) { break-after:avoid; }
 .terms-section p { margin-bottom:12px; orphans:3; widows:3; }
 .terms-meta,.terms-dates,.terms-section :is(h2,h3) { break-inside:avoid; }
 .terms-section-number,.terms-section a { color:#111; }
}

.terms-page .site-foot :is(a,button):focus-visible { outline-color:#fff; }
