.legal-document {
  width:min(940px,calc(100% - 32px)); margin:32px auto 0; padding:clamp(20px,4vw,44px);
  background:var(--bg-card); color:var(--text-primary); border:1px solid var(--border-card);
  border-radius:20px; line-height:1.85; overflow-wrap:anywhere;
}
.legal-document h1 { font-family:var(--font-heading); font-size:clamp(1.7rem,4vw,2.2rem); margin-bottom:18px; }
.legal-document h2 { font-family:var(--font-heading); font-size:1.25rem; margin:28px 0 12px; }
.legal-document h3 { font-size:1.08rem; margin:20px 0 10px; }
.legal-document :is(p,ul,ol,table) { margin-bottom:16px; }
.legal-document :is(ul,ol) { padding-inline-start:24px; }
.legal-document li { margin-bottom:8px; }
.legal-document a { color:var(--primary-color); text-decoration:underline; text-underline-offset:3px; }
.legal-document a:focus-visible { outline:2px solid var(--primary-color); outline-offset:3px; }
.legal-document :is(.date-badge,.notice,.notice-box,.info-box,.contact-card,.highlight-box) {
  background:var(--bg-subtle); border:1px solid var(--border-card); border-radius:12px; padding:14px 18px; margin:16px 0;
}
.legal-document .date-badge { display:inline-block; color:var(--text-secondary); font-size:.88rem; }
.legal-document table { display:block; width:100%; overflow-x:auto; border-collapse:collapse; }
.legal-document :is(th,td) { padding:10px; border:1px solid var(--border-card); text-align:right; }
.legal-document pre { white-space:pre-wrap; direction:ltr; text-align:left; }
@media(max-width:480px) { .legal-document { width:calc(100% - 24px); margin-top:20px; border-radius:16px; padding:20px 16px; } }

.legal-document .photo-permission-panel { margin:20px 0; padding:16px; border:1px solid var(--border-card); border-radius:12px; background:var(--bg-subtle); scroll-margin-top:90px; }
.legal-document .photo-permission-panel summary { cursor:pointer; font-weight:700; }
.legal-document .photo-permission-panel[open] summary { margin-bottom:12px; }
.legal-document .photo-permission-row { display:flex; justify-content:space-between; align-items:center; gap:12px; padding:12px 0; border-bottom:1px solid var(--border-card); }
.legal-document .photo-permission-row span { display:block; font-size:.85rem; color:var(--text-secondary); }
.legal-document .photo-permission-panel button { font:inherit; color:var(--text-primary); background:var(--bg-card); border:1px solid var(--border-card); border-radius:10px; min-height:44px; padding:8px 12px; cursor:pointer; }
.legal-document .photo-permission-panel button:disabled { opacity:.65; cursor:default; }
.legal-document .photo-permission-panel button:focus-visible { outline:2px solid var(--primary-color); outline-offset:2px; }
.legal-document .photo-permission-panel [role="status"] { font-size:.88rem; margin:12px 0; }
.legal-document .photo-permission-panel [role="status"]:empty { display:none; }
.legal-document .photo-permission-panel [hidden] { display:none !important; }
