.terms-page {
  min-width: 0;
  background: var(--color-abyss);
}

.terms-opening {
  overflow: hidden;
  border-bottom: 1px solid var(--color-frame);
  background: linear-gradient(112deg, var(--color-blueberry) 0%, #0d0a1c 100%);
}

.terms-opening__grid {
  display: grid;
  grid-template-columns: repeat(12, minmax(0, 1fr));
  gap: var(--space-5);
  min-width: 0;
  padding-block: var(--space-8) var(--space-7);
}

.terms-opening__copy {
  grid-column: 2 / span 7;
  min-width: 0;
  max-width: 42.5rem;
}

.terms-opening__copy .lead {
  max-width: 60ch;
}

.terms-opening__copy h1 {
  margin-bottom: var(--space-4);
  font-size: clamp(3rem, 5.2vw, 4rem);
  line-height: 1.03;
}

.terms-date-record {
  display: grid;
  grid-template-columns: auto minmax(0, 1fr);
  gap: var(--space-3);
  min-width: 0;
  max-width: 60ch;
  margin-top: var(--space-5);
  padding: var(--space-4);
  border: 1px solid var(--color-frame);
  border-left: 2px solid var(--color-amber);
  background: var(--color-reliquary-deep);
}

.terms-date-record__mark {
  display: block;
  min-width: 1.75rem;
  color: var(--color-amber);
  font-family: var(--font-heading);
  font-size: var(--text-16);
  font-weight: 700;
  letter-spacing: 0.08em;
  line-height: 1.4;
}

.terms-date-record p {
  min-width: 0;
  margin: 0;
  color: var(--color-lilac-muted);
  font-size: var(--text-14);
  line-height: 1.5;
}

.terms-document-section {
  padding-block: var(--section-space) var(--space-9);
}

.terms-document {
  position: relative;
  overflow: hidden;
  min-width: 0;
  border-color: var(--color-frame);
  background: var(--color-reliquary);
}

.terms-document__corner {
  position: absolute;
  z-index: 1;
  width: 4.5rem;
  height: 4.5rem;
  pointer-events: none;
}

.terms-document__corner--top {
  top: -1px;
  right: -1px;
  border-top: 2px solid var(--color-amber);
  border-right: 2px solid var(--color-amber);
  clip-path: polygon(38% 0, 100% 0, 100% 62%, 84% 62%, 84% 16%, 38% 16%);
}

.terms-document__corner--bottom {
  right: -1px;
  bottom: -1px;
  border-right: 1px solid var(--color-frame);
  border-bottom: 1px solid var(--color-frame);
  clip-path: polygon(100% 38%, 100% 100%, 38% 100%, 38% 84%, 84% 84%, 84% 38%);
}

.terms-clause {
  position: relative;
  z-index: 2;
  min-width: 0;
  padding: var(--space-7) var(--space-6);
  border-bottom: 1px solid var(--color-frame);
  scroll-margin-top: var(--space-8);
}

.terms-clause:last-of-type {
  border-bottom: 0;
}

.terms-clause:target::before {
  position: absolute;
  top: var(--space-6);
  bottom: var(--space-6);
  left: 0;
  width: 3px;
  background: var(--color-amber);
  content: "";
}

.terms-path-layout,
.terms-rights-layout,
.terms-editorial-layout,
.terms-changes-layout {
  display: grid;
  min-width: 0;
}

.terms-path-layout > *,
.terms-rights-layout > *,
.terms-editorial-layout > *,
.terms-changes-layout > * {
  min-width: 0;
}

.terms-path-layout {
  grid-template-columns: minmax(0, 3fr) minmax(0, 1fr) minmax(0, 6fr);
  gap: var(--space-6);
}

.terms-index {
  grid-column: 1;
  min-width: 0;
  align-self: start;
  position: sticky;
  top: var(--space-6);
}

.terms-index ol {
  display: grid;
  grid-template-columns: minmax(0, 1fr);
  gap: 0;
  margin: 0;
  padding: 0;
  list-style: none;
}

.terms-index li {
  min-width: 0;
  border-bottom: 1px solid rgb(89 71 122 / 0.72);
}

.terms-index a {
  display: grid;
  grid-template-columns: 2rem minmax(0, 1fr);
  align-items: center;
  gap: var(--space-2);
  min-width: 0;
  min-height: 2.75rem;
  padding: var(--space-2) 0;
  color: var(--color-lilac-muted);
  font-family: var(--font-heading);
  font-size: var(--text-14);
  font-weight: 700;
  letter-spacing: 0.04em;
  line-height: 1.15;
  text-decoration: none;
  text-transform: uppercase;
}

.terms-index a:hover,
.terms-index a:focus-visible {
  color: var(--color-amber-bright);
  text-decoration: underline;
}

.terms-index a::after {
  width: 0;
  height: 1px;
  margin-left: auto;
  background: var(--color-amber);
  content: "";
  transition: width var(--transition-fast);
}

.terms-index a:hover::after,
.terms-index a:focus-visible::after {
  width: 1rem;
}

.terms-index span {
  min-width: 0;
}

.terms-agreement {
  grid-column: 3;
  min-width: 0;
  max-width: 68ch;
}

.terms-reading-column {
  width: min(100%, 68ch);
  min-width: 0;
  margin-left: 10%;
}

.terms-reading-column > :last-child,
.terms-rights-copy > :last-child,
.terms-restrictions > :last-child,
.terms-editorial-copy > :last-child,
.terms-liability-column > :last-child,
.terms-procedural-copy > :last-child,
.terms-nz-context > :last-child,
.terms-contact-block > :last-child {
  margin-bottom: 0;
}

.terms-anchor-label {
  scroll-margin-top: var(--space-8);
}

.terms-rule-list {
  display: grid;
  grid-template-columns: minmax(0, 1fr);
  gap: var(--space-3);
  min-width: 0;
  margin-bottom: var(--space-5);
  padding: 0;
  list-style: none;
}

.terms-rule-list li {
  min-width: 0;
  padding-left: var(--space-4);
  border-left: 1px solid var(--color-frame);
  color: var(--color-lilac-muted);
}

.terms-advisory,
.terms-availability,
.terms-liability-panel,
.terms-nz-context,
.terms-contact-panel {
  min-width: 0;
  background: var(--color-reliquary-deep);
}

.terms-advisory {
  margin-top: var(--space-5);
  padding: var(--space-5);
  border: 1px solid var(--color-frame);
  border-left: 2px solid var(--color-amber);
}

.terms-advisory p:last-child {
  margin-bottom: 0;
}

.terms-rights-layout {
  grid-template-columns: minmax(26.25rem, 5fr) minmax(15.625rem, 3fr);
  gap: var(--space-7);
  width: min(100%, 70rem);
  margin-inline: auto;
}

.terms-rights-copy {
  grid-column: 1;
  min-width: 0;
  max-width: 66ch;
}

.terms-permission {
  display: flex;
  flex-direction: column;
  gap: var(--space-2);
  min-width: 0;
  margin-top: var(--space-5);
  padding: var(--space-4);
  border-top: 2px solid var(--color-amber);
  border-bottom: 1px solid var(--color-frame);
  background: rgb(16 13 35 / 0.5);
}

.terms-permission p {
  margin: 0;
}

.terms-restrictions {
  grid-column: 2;
  min-width: 0;
  align-self: start;
  padding: var(--space-5);
  border: 1px solid var(--color-frame);
  background: rgb(16 13 35 / 0.56);
}

.terms-restrictions ul {
  display: grid;
  grid-template-columns: minmax(0, 1fr);
  gap: var(--space-4);
  margin: 0;
  padding: 0;
  list-style: none;
}

.terms-restrictions li {
  min-width: 0;
  padding-bottom: var(--space-4);
  border-bottom: 1px solid rgb(89 71 122 / 0.72);
  color: var(--color-lilac-muted);
  font-size: var(--text-14);
  line-height: 1.5;
}

.terms-restrictions li:last-child {
  padding-bottom: 0;
  border-bottom: 0;
}

.terms-editorial-layout {
  grid-template-columns: minmax(0, 6fr) minmax(11.25rem, 2fr);
  gap: var(--space-7);
  width: min(100%, 70rem);
  margin-inline: auto;
}

.terms-editorial-copy {
  grid-column: 1;
  min-width: 0;
  max-width: 68ch;
}

.terms-external-clause {
  min-width: 0;
  margin-top: var(--space-6);
  padding-top: var(--space-5);
  border-top: 1px solid var(--color-frame);
}

.terms-availability {
  min-width: 0;
  max-width: 64ch;
  margin-top: var(--space-5);
  padding: var(--space-5);
  border: 1px solid var(--color-frame);
}

.terms-availability p:last-child {
  margin-bottom: 0;
}

.terms-margin-cue {
  display: grid;
  grid-column: 2;
  grid-template-columns: minmax(0, 1fr);
  align-content: start;
  justify-items: start;
  gap: var(--space-2);
  min-width: 0;
  padding-top: var(--space-8);
  color: var(--color-amber);
  font-family: var(--font-heading);
  line-height: 1;
  text-transform: uppercase;
}

.terms-margin-cue span {
  font-size: var(--text-12);
  font-weight: 700;
  letter-spacing: 0.08em;
}

.terms-margin-cue strong {
  color: var(--color-lilac);
  font-size: var(--text-24);
  letter-spacing: 0.03em;
  line-height: 0.98;
}

.terms-margin-cue i {
  display: block;
  width: 2.5rem;
  height: 2px;
  background: var(--color-amber);
}

.terms-liability-column {
  width: min(100%, 62ch);
  min-width: 0;
  margin-inline: auto;
}

.terms-liability-panel {
  min-width: 0;
  margin-bottom: var(--space-5);
  padding: var(--space-5);
  border: 1px solid var(--color-frame);
  border-top: 2px solid var(--color-amber);
}

.terms-liability-panel p:last-child,
.terms-indemnity p:last-child {
  margin-bottom: 0;
}

.terms-indemnity {
  min-width: 0;
  margin-bottom: var(--space-5);
  padding-left: var(--space-4);
  border-left: 2px solid var(--color-amber);
}

.terms-legal-qualifier {
  min-width: 0;
  padding: var(--space-4);
  border-top: 2px solid var(--color-amber);
  border-bottom: 1px solid var(--color-frame);
  color: var(--color-lilac);
}

.terms-legal-qualifier p {
  max-width: 66ch;
  margin: 0;
}

.terms-changes-layout {
  grid-template-columns: minmax(25rem, 5fr) minmax(14.375rem, 2fr);
  gap: var(--space-7);
  width: min(100%, 70rem);
  margin-inline: auto;
}

.terms-procedural-copy {
  grid-column: 1;
  min-width: 0;
  max-width: 66ch;
}

.terms-severability {
  min-width: 0;
  margin-top: var(--space-6);
  padding-top: var(--space-5);
  border-top: 1px solid var(--color-frame);
}

.terms-nz-context {
  grid-column: 2;
  min-width: 0;
  align-self: end;
  padding: var(--space-5);
  border: 1px solid var(--color-frame);
}

.terms-nz-context p:last-child {
  max-width: 60ch;
  margin-bottom: 0;
}

.terms-contact-block {
  width: min(100%, 35rem);
  min-width: 0;
  margin-left: 10%;
}

.terms-contact-panel {
  display: flex;
  flex-direction: column;
  gap: var(--space-4);
  min-width: 0;
  padding: var(--space-5);
  border: 1px solid var(--color-frame);
  border-left: 2px solid var(--color-amber);
}

.terms-contact-panel p {
  margin: 0;
}

.terms-email-link {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  grid-template-rows: auto auto;
  gap: var(--space-1) var(--space-3);
  align-items: center;
  min-width: 0;
  min-height: 2.75rem;
  padding: var(--space-2) 0;
  color: var(--color-amber);
  text-decoration: none;
}

.terms-email-link span {
  grid-column: 1;
  min-width: 0;
  font-family: var(--font-heading);
  font-size: var(--text-14);
  font-weight: 700;
  letter-spacing: 0.06em;
  text-transform: uppercase;
}

.terms-email-link strong {
  grid-column: 1;
  min-width: 0;
  color: var(--color-lilac);
  font-size: var(--text-16);
  overflow-wrap: anywhere;
}

.terms-email-link b {
  grid-column: 2;
  grid-row: 1 / span 2;
  color: currentColor;
  font-size: var(--text-24);
  font-weight: 400;
}

.terms-email-link:hover,
.terms-email-link:focus-visible {
  color: var(--color-amber-bright);
  transform: translateY(-1px);
}

.terms-email-link:hover strong,
.terms-email-link:focus-visible strong {
  color: var(--color-amber-bright);
}

.terms-final-record {
  margin-top: var(--space-5);
  padding-top: var(--space-4);
  border-top: 1px solid var(--color-frame);
  color: var(--color-lilac-muted);
  font-size: var(--text-14);
}

@media (max-width: 65.5625rem) {
  .terms-editorial-layout {
    grid-template-columns: minmax(0, 1fr);
  }

  .terms-editorial-copy {
    grid-column: 1;
  }

  .terms-margin-cue {
    display: none;
  }
}

@media (max-width: 61.1875rem) {
  .terms-path-layout {
    grid-template-columns: minmax(0, 1fr);
    gap: var(--space-6);
  }

  .terms-index {
    position: static;
    grid-column: 1;
  }

  .terms-index ol {
    grid-template-columns: repeat(2, minmax(0, 1fr));
    column-gap: var(--space-5);
  }

  .terms-agreement {
    grid-column: 1;
    max-width: 68ch;
  }
}

@media (max-width: 56.1875rem) {
  .terms-rights-layout {
    grid-template-columns: minmax(0, 1fr);
    gap: var(--space-6);
  }

  .terms-rights-copy,
  .terms-restrictions {
    grid-column: 1;
  }

  .terms-rights-copy {
    max-width: 66ch;
  }

  .terms-restrictions {
    width: min(100%, 66ch);
  }
}

@media (max-width: 53.6875rem) {
  .terms-changes-layout {
    grid-template-columns: minmax(0, 1fr);
    gap: var(--space-5);
  }

  .terms-procedural-copy,
  .terms-nz-context {
    grid-column: 1;
  }

  .terms-nz-context {
    width: min(100%, 60ch);
    align-self: auto;
  }
}

@media (max-width: 47.4375rem) {
  .terms-opening__grid {
    grid-template-columns: minmax(0, 1fr);
    padding-block: var(--space-7) var(--space-6);
  }

  .terms-opening__copy {
    grid-column: 1;
    max-width: 42.5rem;
  }

  .terms-opening__copy h1 {
    font-size: var(--text-48);
    line-height: 1.08;
  }

  .terms-reading-column,
  .terms-contact-block {
    width: min(100%, 68ch);
    margin-left: 0;
  }

  .terms-clause {
    padding: var(--space-6) var(--space-5);
  }
}

@media (max-width: 39.9375rem) {
  .terms-opening__grid {
    padding-block: var(--space-6);
  }

  .terms-opening__copy h1 {
    font-size: var(--text-32);
    line-height: 1.125;
  }

  .terms-opening__copy .lead {
    max-width: 42ch;
  }

  .terms-date-record {
    padding: var(--space-3);
  }

  .terms-document-section {
    padding-block: var(--space-6) var(--space-7);
  }

  .terms-clause {
    padding: var(--space-6) var(--space-4);
  }

  .terms-clause:target::before {
    top: var(--space-4);
    bottom: var(--space-4);
  }

  .terms-index ol {
    grid-template-columns: minmax(0, 1fr);
  }

  .terms-index a,
  .terms-email-link {
    min-height: 2.75rem;
  }

  .terms-advisory,
  .terms-availability,
  .terms-liability-panel,
  .terms-nz-context,
  .terms-contact-panel,
  .terms-restrictions {
    padding: var(--space-4);
  }

  .terms-document__corner {
    width: 3rem;
    height: 3rem;
  }
}

@media (prefers-reduced-motion: reduce) {
  .terms-email-link:hover {
    transform: none;
  }
}
