:root {
  --legal-green:#667257;
  --legal-dark:#4f5b43;
  --legal-ink:#20221e;
  --legal-muted:#5d6259;
  --legal-line:#d8d9d3;
  --legal-paper:#fff;
  --legal-background:#efeee9;
}

* { box-sizing:border-box; }

.legal-page {
  background:var(--legal-background);
  color:var(--legal-ink);
  flex:1 0 auto;
  font-family:Merriweather,Georgia,serif;
  padding:70px 24px 96px;
}

.legal-page button,
.legal-page a { font-family:Merriweather,Georgia,serif; }

.legal-heading,
.legal-document,
.legal-actions {
  margin-left:auto;
  margin-right:auto;
  max-width:900px;
}

.legal-heading {
  background:var(--legal-paper);
  border:1px solid var(--legal-line);
  border-bottom:0;
  padding:58px 68px 48px;
}

.legal-heading > a {
  color:var(--legal-dark);
  display:inline-block;
  font-size:.7rem;
  font-weight:700;
  letter-spacing:.06em;
  margin-bottom:42px;
  text-decoration:none;
  text-transform:uppercase;
}

.legal-heading > a:hover,
.legal-heading > a:focus-visible { text-decoration:underline; text-underline-offset:4px; }

.legal-heading > p:first-of-type {
  color:var(--legal-green);
  font-size:.67rem;
  font-weight:700;
  letter-spacing:.16em;
  margin:0 0 13px;
  text-transform:uppercase;
}

.legal-heading h1 {
  font-family:Merriweather,Georgia,serif;
  font-size:clamp(2rem,5vw,3.45rem);
  font-weight:400;
  line-height:1.16;
  margin:0 0 34px;
  max-width:760px;
  text-transform:none;
}

.legal-definitions {
  border-bottom:1px solid var(--legal-line);
  border-top:1px solid var(--legal-line);
  display:grid;
  gap:11px;
  padding:22px 0;
}

.legal-definitions p {
  font-size:.82rem;
  line-height:1.72;
  margin:0;
}

.legal-introduction {
  color:var(--legal-muted);
  font-size:.86rem;
  line-height:1.85;
  margin:28px 0 0;
  text-align:justify;
}

.legal-view-switch { margin-top:30px; }

.legal-view-switch button {
  background:var(--legal-green);
  border:1px solid var(--legal-green);
  border-radius:999px;
  color:#fff;
  cursor:pointer;
  font-size:.72rem;
  font-weight:700;
  letter-spacing:.035em;
  min-height:43px;
  padding:11px 20px;
}

.legal-view-switch button:hover,
.legal-view-switch button:focus-visible {
  background:var(--legal-dark);
  border-color:var(--legal-dark);
  outline:3px solid rgba(102,114,87,.18);
  outline-offset:2px;
}

.legal-document {
  background:var(--legal-paper);
  border:1px solid var(--legal-line);
  border-top:0;
  padding:0 68px 55px;
}

.legal-document[hidden] { display:none; }

.legal-document section {
  border-top:1px solid var(--legal-line);
  padding:43px 0 40px;
}

.legal-document h2 {
  font-family:Merriweather,Georgia,serif;
  font-size:1.08rem;
  font-weight:700;
  letter-spacing:.035em;
  line-height:1.5;
  margin:0 0 22px;
  text-transform:uppercase;
}

.legal-document h2 span {
  color:var(--legal-green);
  display:inline-block;
  font:inherit;
  margin-right:7px;
}

.legal-document p {
  color:#40443e;
  font-family:Merriweather,Georgia,serif;
  font-size:.84rem;
  font-weight:300;
  hyphens:auto;
  line-height:1.95;
  margin:0;
  orphans:3;
  text-align:justify;
  widows:3;
}

.legal-document p + p { margin-top:16px; }
.legal-document strong { color:var(--legal-ink); font-weight:700; }

.legal-summary section { padding:35px 0 33px; }
.legal-summary h2 { color:var(--legal-dark); font-size:1.02rem; margin-bottom:18px; text-transform:none; }
.legal-summary p { font-size:.88rem; line-height:1.85; text-align:left; }
.legal-summary p + p { margin-top:10px; }

.legal-actions { padding-top:38px; text-align:center; }

.legal-actions a {
  background:var(--legal-green);
  border-radius:999px;
  color:#fff;
  display:inline-block;
  font-size:.72rem;
  font-weight:700;
  letter-spacing:.04em;
  padding:14px 24px;
  text-decoration:none;
}

.legal-actions a:hover,
.legal-actions a:focus-visible { background:var(--legal-dark); }

@media print {
  .legal-page { background:#fff; padding:0; }
  .legal-heading,.legal-document { border:0; max-width:none; padding-left:0; padding-right:0; }
  .legal-heading > a,.legal-view-switch,.legal-actions,body > header,body > footer { display:none!important; }
  .legal-document section { break-inside:avoid; }
}

@media(max-width:650px) {
  .legal-page { padding:36px 14px 65px; }
  .legal-heading { padding:36px 25px 33px; }
  .legal-heading > a { margin-bottom:31px; }
  .legal-heading h1 { font-size:clamp(1.8rem,10vw,2.6rem); }
  .legal-introduction { text-align:left; }
  .legal-document { padding:0 25px 38px; }
  .legal-document section { padding:34px 0 31px; }
  .legal-document p { font-size:.81rem; line-height:1.82; text-align:left; }
  .legal-summary p { font-size:.84rem; }
  .legal-view-switch button { width:100%; }
}
