:root {
  --paper: #f8f3eb;
  --ink: #2e2b25;
  --ink-soft: #68645e;
  --gold: #796a55;
  --line: rgba(143, 121, 92, 0.24);
  --serif: "Bodoni 72", Didot, "Iowan Old Style", "Times New Roman", serif;
  --sans: "Avenir Next", Avenir, Inter, Helvetica, Arial, sans-serif;
  color-scheme: light;
}

* { box-sizing: border-box; }
html { background: var(--paper); -webkit-text-size-adjust: 100%; text-size-adjust: 100%; }
body { margin: 0; color: var(--ink); background: var(--paper); font-family: var(--sans); -webkit-font-smoothing: antialiased; }
a { color: inherit; text-underline-offset: 4px; }
a:focus-visible, summary:focus-visible { outline: 2px solid var(--gold); outline-offset: 4px; }

.legal-skip {
  position: fixed;
  top: 12px;
  left: 12px;
  z-index: 1000;
  padding: 12px 16px;
  background: #fdfbf7;
  border: 1px solid var(--gold);
  transform: translateY(-160%);
}
.legal-skip:focus { transform: translateY(0); }

.legal-main { width: min(100% - 48px, 760px); margin: 0 auto; padding: clamp(48px, 8vw, 96px) 0 80px; }
.legal-heading { margin-bottom: 40px; }
.legal-overline { margin: 0 0 20px; color: var(--gold); font-size: 10px; font-weight: 600; letter-spacing: 0.2em; line-height: 1.6; }
.legal-heading h1 { margin: 0 0 20px; font: 400 clamp(42px, 7vw, 70px)/1.1 var(--serif); letter-spacing: -0.035em; }
.legal-heading .legal-updated { margin: 0 0 32px; color: var(--ink-soft); font-size: 13px; }
.legal-heading p:not(.legal-overline):not(.legal-updated) { font-size: 17px; line-height: 1.75; }

.legal-contents { margin: 0 0 52px; padding: 0 20px; border: 1px solid var(--line); border-radius: 12px; }
.legal-contents summary { min-height: 52px; padding: 16px 0; font-size: 14px; font-weight: 600; cursor: pointer; }
.legal-contents ol { margin: 0 0 18px; padding: 0; list-style: none; }
.legal-contents a { display: block; padding: 9px 0; font-size: 14px; line-height: 1.5; }

.legal-section { margin: 0 0 48px; }
.legal-section h2 { margin: 0 0 22px; font: 400 clamp(25px, 4vw, 33px)/1.25 var(--serif); scroll-margin-top: 24px; }
.legal-section h3 { margin: 32px 0 16px; font: 600 18px/1.5 var(--sans); }
.legal-section p, .legal-section li { font-size: 16px; line-height: 1.8; overflow-wrap: anywhere; }
.legal-section p { margin: 0 0 20px; }
.legal-section ul { margin: 0 0 20px; padding-left: 24px; }
.legal-section ol { margin: 0 0 24px; padding-left: 24px; }
.legal-section li { margin-bottom: 7px; padding-left: 4px; }
.legal-section dl { display: grid; grid-template-columns: minmax(120px, 0.7fr) minmax(0, 1.3fr); margin: 0 0 24px; border-top: 1px solid var(--line); }
.legal-section dt, .legal-section dd { margin: 0; padding: 14px 0; border-bottom: 1px solid var(--line); font-size: 15px; line-height: 1.6; overflow-wrap: anywhere; }
.legal-section dt { padding-right: 24px; color: var(--ink-soft); font-weight: 600; }
.legal-request-link { display: inline-flex; align-items: center; min-height: 48px; padding: 12px 20px; border: 1px solid var(--gold); border-radius: 4px; font-weight: 600; text-decoration: none; }
.legal-request-link:hover { background: #efe8dc; }

.authority-page .legal-main { width: min(100% - 48px, 960px); }
.authority-page .legal-heading { max-width: 760px; }
.authority-page .legal-heading h1 { max-width: 12ch; }
.authority-brand-visual {
  width: min(100%, 720px);
  margin: 44px auto 56px;
  border: 1px solid var(--line);
  background: var(--paper);
  overflow: hidden;
}
.authority-brand-visual img { display: block; width: 100%; height: auto; aspect-ratio: 1; object-fit: cover; }
.authority-summary {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 1px;
  margin: 0 0 56px;
  border: 1px solid var(--line);
  background: var(--line);
}
.authority-summary article { min-width: 0; padding: 24px; background: var(--paper); }
.authority-summary h2 { margin: 0 0 12px; font: 400 24px/1.2 var(--serif); }
.authority-summary p { margin: 0; color: var(--ink-soft); font-size: 14px; line-height: 1.7; }
.authority-answer { margin: 28px 0; padding: 24px; border-left: 3px solid var(--gold); background: #efe8dc; }
.authority-answer p { margin: 0; }
.authority-table { width: 100%; margin: 24px 0; border-collapse: collapse; }
.authority-table th, .authority-table td { padding: 15px; border: 1px solid var(--line); font-size: 15px; line-height: 1.6; text-align: left; vertical-align: top; }
.authority-table th { background: #efe8dc; font-weight: 600; }
.authority-cta { margin-top: 28px; padding: 28px; border: 1px solid var(--line); }
.authority-cta h3 { margin-top: 0; font-family: var(--serif); font-size: 26px; font-weight: 400; }
.authority-cta p:last-child { margin-bottom: 0; }

@media (max-width: 480px) {
  .legal-main { width: calc(100% - 40px); padding-top: 40px; }
  .legal-heading h1 { font-size: 44px; }
  .legal-section { margin-bottom: 40px; }
  .legal-section dl { grid-template-columns: 1fr; }
  .legal-section dt { padding-bottom: 0; border-bottom: 0; }
  .legal-section dd { padding-top: 4px; }
  .authority-page .legal-main { width: calc(100% - 40px); }
  .authority-brand-visual { margin: 30px auto 40px; }
  .authority-summary { grid-template-columns: 1fr; }
  .authority-table { display: block; overflow-x: auto; }
}

@media print {
  html, body { background: white; color: black; }
  .membership-header, .legal-skip, .legal-contents, .legal-footer { display: none; }
  .legal-main { width: 100%; padding: 0; }
  .legal-section h2, .legal-section h3 { break-after: avoid; }
  .legal-section p, .legal-section li { orphans: 3; widows: 3; }
}
