.registration-terms { margin: 22px 0; }
.registration-terms label { display: flex; align-items: flex-start; gap: 12px; font-size: .875rem; line-height: 1.6; cursor: pointer; }
.registration-terms input[type="checkbox"] { appearance: auto; flex: 0 0 20px; width: 20px; height: 20px; min-height: 0; margin: 3px 0 0; padding: 0; accent-color: #383c1a; }
.registration-terms a { text-decoration: underline; text-underline-offset: 3px; }
.terms-document { margin: 0; background: #fcfcf8; color: #393c24; font: 17px/1.7 Arial, sans-serif; }
.terms-document main { max-width: 820px; padding: 48px 24px; margin: auto; }
.terms-document h1 { font-size: clamp(2rem, 5vw, 2.8rem); line-height: 1.2; }
.terms-document h2 { margin-top: 32px; font-size: 1.25rem; line-height: 1.4; }
.terms-document a { color: #383c1a; text-underline-offset: 3px; }
.terms-document .terms-review { background: #efefdf; border-left: 4px solid #777c45; padding: 16px; }
.portal-legal-links{display:flex;flex-wrap:wrap;gap:8px 18px;margin:10px 0 18px;font-size:12px;line-height:1.6}
.portal-legal-links a{text-decoration:underline;text-underline-offset:3px;color:#55613e}
.ws-sidebar-footer .portal-legal-links{gap:6px 12px;margin:0 0 12px}
dialog.legal-agreement-dialog{width:min(840px,calc(100% - 32px));max-height:90vh;max-height:90svh;overflow:auto;padding:26px;border:1px solid #cbd3bd;border-radius:18px;background:#fdfcf8;color:#303723}
.legal-dialog-heading{display:flex;justify-content:space-between;align-items:flex-start;gap:16px}
.legal-dialog-heading h2{margin:4px 0 12px}.legal-dialog-heading .eyebrow{margin:0}
.legal-policy-frame{display:block;width:100%;height:300px;height:min(36svh,340px);min-height:170px;border:1px solid #cbd3bd;border-radius:8px;background:#fff}
.legal-agreement-dialog .legal-agreement-check{display:flex;align-items:flex-start;gap:12px;font-size:14px;line-height:1.6;margin:18px 0}
.legal-agreement-check input[type=checkbox]{appearance:auto;width:20px!important;height:20px;min-height:0;flex:0 0 20px;margin:3px 0 0;padding:0;accent-color:#456c46}
.legal-agreement-dialog .actions{display:flex;gap:10px;flex-wrap:wrap}
body dialog.legal-agreement-dialog[data-modal-controls="dialog"] [data-modal-footer]{position:static;bottom:auto;z-index:auto;margin-top:12px}
.legal-privacy-summary{background:#eef3e8;padding:12px 16px;border-radius:8px;font-size:14px}
.terms-document .legal-document-nav{display:flex;flex-wrap:wrap;gap:12px 24px;padding:16px 0;border-bottom:1px solid #d7ddcb}
.terms-document section[id],.terms-document h2[id]{scroll-margin-top:20px}
.terms-document .legal-summary{padding:18px 22px;background:#eef3e8;border:1px solid #d0ddc4;border-radius:10px}
.terms-document table{border-collapse:collapse;width:100%;font-size:15px;line-height:1.6;margin:18px 0}
.terms-document th,.terms-document td{border:1px solid #d7ddcb;vertical-align:top;text-align:left;padding:12px}
.terms-document th{background:#eef3e8}.terms-document h3{font-size:1.05rem;margin:24px 0 8px}
.terms-document .policy-divider{border-top:2px solid #b8c6a5;margin-top:64px;padding-top:24px}
.privacy-promise{display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:30px;margin-block:28px 44px;padding:28px 32px;border:1px solid #d5dfc7;border-radius:18px;background:#eef3e8}
.privacy-promise h2{font-size:clamp(1.5rem,3vw,2.1rem);line-height:1.25;margin:8px 0 14px;max-width:23ch}
.privacy-promise p{max-width:68ch}.privacy-promise-detail{font-size:14px;color:#59664a}
.privacy-promise-points{display:grid;gap:12px}.privacy-promise-points span{display:block;border:1px solid #c7d8ba;background:#fafcf7;color:#355537;border-radius:9px;padding:10px 14px;font-size:13px}
@media(max-width:650px){.privacy-promise{grid-template-columns:1fr;margin-inline:20px;padding:22px;gap:18px}.privacy-promise-points{grid-template-columns:1fr}.legal-agreement-dialog{padding:18px}.terms-document table,.terms-document tbody,.terms-document tr,.terms-document td{display:block}.terms-document thead{display:none}.terms-document td:first-child{font-weight:bold;background:#eef3e8}.terms-document td+td{border-top:0}.terms-document tr+tr{margin-top:14px}}
@media print { .terms-document { background: white; color: black; font-size: 11pt; } .terms-document main { padding: 0; max-width: none; } .terms-document main > a { display: none; } .terms-document h2 { break-after: avoid; } .terms-document p { orphans: 3; widows: 3; } }
