.terms-page {
  background: var(--color-paper);
}

.terms-page__intro-grid,
.terms-page__rail-layout,
.terms-page__services-layout,
.terms-page__responsible-layout,
.terms-page__property-layout,
.terms-page__limits-layout,
.terms-page__enquiries-layout {
  display: grid;
  grid-template-columns: minmax(0, 1fr);
  min-width: 0;
}

.terms-page__intro-copy,
.terms-page__scope-copy,
.terms-page__services-copy,
.terms-page__responsible-copy,
.terms-page__property-copy,
.terms-page__limits-copy,
.terms-page__enquiries-copy {
  min-width: 0;
}

.terms-page__intro-copy {
  max-width: 45rem;
}

.terms-page__intro-copy .lead {
  max-width: 48ch;
}

.terms-page__effective {
  margin-bottom: var(--space-5);
  color: var(--color-slate);
  font-size: var(--text-sm);
  line-height: 1.43;
}

.terms-page__effective span {
  color: var(--color-ink);
  font-family: var(--font-heading);
  font-weight: 700;
}

.terms-page__intro-rule {
  display: none;
}

.terms-page__section {
  border-top: var(--border-default);
}

.terms-page__section-rail,
.terms-page__responsible-marker {
  display: none;
}

.terms-page__scope-copy {
  max-width: 43.75rem;
}

.terms-page__services-copy {
  max-width: 45rem;
}

.terms-page__responsible-copy {
  max-width: 42.5rem;
}

.terms-page__property-copy,
.terms-page__limits-copy {
  max-width: 43.75rem;
}

.terms-page__enquiries-copy {
  max-width: 42.5rem;
}

.terms-page__clause,
.terms-page__fact-inset,
.terms-page__third-party-card,
.terms-page__venue-only-panel,
.terms-page__age-clause,
.terms-page__support-panel,
.terms-page__policy-panel,
.terms-page__updates-clause,
.terms-page__governing-clause,
.terms-page__enquiry-panel {
  min-width: 0;
}

.terms-page__clause + .terms-page__clause,
.terms-page__clause + .terms-page__fact-inset,
.terms-page__fact-inset + .terms-page__clause,
.terms-page__third-party-card + .terms-page__clause,
.terms-page__clause + .terms-page__venue-only-panel,
.terms-page__age-clause + .terms-page__clause,
.terms-page__clause + .terms-page__support-panel,
.terms-page__policy-panel + .terms-page__updates-clause,
.terms-page__governing-clause + .terms-page__enquiry-panel {
  margin-top: var(--space-7);
}

.terms-page__clause h3,
.terms-page__fact-inset h3,
.terms-page__third-party-card h3,
.terms-page__venue-only-panel h3,
.terms-page__age-clause h3,
.terms-page__support-panel h3,
.terms-page__policy-panel h3,
.terms-page__updates-clause h3,
.terms-page__governing-clause h3,
.terms-page__enquiry-panel h3 {
  font-size: var(--text-h4);
}

.terms-page__fact-inset {
  margin-top: var(--space-7);
  padding: var(--space-5);
  border: var(--border-default);
  border-radius: var(--radius-card);
  background: var(--color-paper);
}

.terms-page__fact-inset dl {
  display: grid;
  grid-template-columns: minmax(0, 1fr);
  gap: var(--space-3);
  margin-bottom: 0;
}

.terms-page__fact-inset dl > div {
  display: grid;
  grid-template-columns: minmax(0, 1fr);
  gap: var(--space-1);
  min-width: 0;
  padding-top: var(--space-3);
  border-top: var(--border-default);
}

.terms-page__fact-inset dd {
  margin-bottom: 0;
}

.terms-page__fact-inset a {
  display: inline-flex;
  align-items: center;
  min-height: 2.75rem;
  overflow-wrap: anywhere;
}

.terms-page__third-party-card {
  padding: var(--space-5);
  border: var(--border-default);
  border-radius: var(--radius-card);
  background: var(--color-paper);
}

.terms-page__third-party-card .utility-label {
  display: block;
  margin-bottom: var(--space-3);
}

.terms-page__new-tab {
  white-space: nowrap;
}

.terms-page__venue-only-panel {
  width: 100%;
  margin-top: var(--space-7);
  padding: var(--space-5);
  border-radius: var(--radius-card);
}

.terms-page__venue-only-panel .eyebrow {
  margin-bottom: var(--space-3);
}

.terms-page__venue-only-panel p:last-child,
.terms-page__third-party-card p:last-child,
.terms-page__fact-inset p:last-of-type,
.terms-page__clause p:last-child,
.terms-page__age-clause p:last-child,
.terms-page__updates-clause p:last-child,
.terms-page__governing-clause p:last-child {
  margin-bottom: 0;
}

.terms-page__age-clause {
  margin-top: var(--space-5);
  padding: var(--space-5);
  border-left: 3px solid var(--color-amber);
  background: #fff7ed;
}

.terms-page__responsible-copy > .badge {
  margin-bottom: var(--space-3);
}

.terms-page__responsible-copy > .eyebrow {
  margin-bottom: var(--space-3);
}

.terms-page__support-panel {
  max-width: 38.75rem;
  margin-bottom: 0;
}

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

.terms-page__property-copy .divider {
  margin-block: var(--space-7);
}

.terms-page__policy-panel {
  margin-top: var(--space-7);
  padding: var(--space-5);
  border: var(--border-default);
  border-radius: var(--radius-card);
  background: var(--color-ash);
}

.terms-page__policy-panel p {
  margin-bottom: var(--space-4);
}

.terms-page__policy-links {
  display: grid;
  grid-template-columns: minmax(0, 1fr);
  gap: var(--space-3);
  min-width: 0;
}

.terms-page__policy-links > a {
  display: flex;
  flex-direction: column;
  justify-content: center;
  gap: var(--space-1);
  min-width: 0;
  min-height: 2.75rem;
  padding: var(--space-3);
  border: var(--border-default);
  background: var(--color-paper);
  color: var(--color-gumleaf);
  font-family: var(--font-heading);
  font-weight: 700;
}

.terms-page__policy-links > a small {
  color: var(--color-slate);
  font-family: var(--font-body);
  font-weight: 400;
}

.terms-page__updates-clause {
  max-width: 40rem;
}

.terms-page__current-date {
  margin-bottom: 0;
  color: var(--color-ink);
  font-family: var(--font-heading);
  font-weight: 700;
}

.terms-page__governing-clause {
  max-width: 40rem;
}

.terms-page__enquiry-panel {
  width: 100%;
  padding: var(--space-5);
  border-radius: var(--radius-card);
}

.terms-page__enquiry-panel p {
  margin-bottom: var(--space-4);
}

.terms-page__email-link {
  display: flex;
  align-items: center;
  width: 100%;
  min-height: 2.75rem;
  padding: var(--space-3);
  border: 1px solid var(--color-gumleaf);
  color: var(--color-white);
  font-family: var(--font-heading);
  font-weight: 700;
  overflow-wrap: anywhere;
}

.terms-page__email-link:hover {
  border-color: var(--color-terracotta);
  color: var(--color-white);
}

.terms-page__enquiry-panel address {
  margin: var(--space-4) 0 0;
  color: var(--color-mist);
  font-size: var(--text-sm);
  line-height: 1.43;
}

@media (min-width: 48rem) {
  .terms-page__fact-inset dl {
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: var(--space-4);
  }

  .terms-page__fact-inset dl > div {
    min-width: 0;
  }

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

  .terms-page__enquiry-panel {
    padding: var(--space-6);
  }
}

@media (min-width: 53.75rem) {
  .terms-page__enquiries-layout {
    grid-template-columns: minmax(0, 7fr) minmax(0, 5fr);
    column-gap: var(--space-5);
  }

  .terms-page__enquiries-copy {
    grid-column: 1 / span 1;
  }
}

@media (min-width: 56.25rem) {
  .terms-page__intro-grid {
    grid-template-columns: minmax(0, 7fr) minmax(0, 5fr);
    column-gap: var(--space-6);
  }

  .terms-page__intro-copy {
    grid-column: 1 / span 1;
  }

  .terms-page__intro-rule {
    display: block;
    grid-column: 2 / span 1;
    justify-self: end;
    width: 1px;
    min-width: 1px;
    height: 100%;
    background: var(--color-gumleaf);
    opacity: 0.22;
  }

  .terms-page__services-layout {
    grid-template-columns: minmax(0, 8fr) minmax(0, 4fr);
    column-gap: var(--space-5);
  }

  .terms-page__services-copy {
    grid-column: 1 / span 1;
  }

  .terms-page__venue-only-panel {
    width: calc(100% - ((100% + var(--space-5)) / 8));
    margin-left: calc((100% + var(--space-5)) / 8);
  }

  .terms-page__property-layout,
  .terms-page__limits-layout {
    grid-template-columns: minmax(0, 8fr) minmax(0, 4fr);
    column-gap: var(--space-5);
  }

  .terms-page__property-copy,
  .terms-page__limits-copy {
    grid-column: 1 / span 1;
  }
}

@media (min-width: 60rem) {
  .terms-page__responsible-layout {
    grid-template-columns: minmax(0, 2fr) minmax(0, 7fr) minmax(0, 3fr);
    column-gap: var(--space-5);
  }

  .terms-page__responsible-marker {
    display: flex;
    grid-column: 1 / span 1;
    flex-direction: column;
    gap: var(--space-2);
    align-items: flex-start;
    min-width: 0;
    padding-top: var(--space-1);
    color: var(--color-slate);
  }

  .terms-page__responsible-marker span {
    color: var(--color-amber);
    font-family: var(--font-heading);
    font-size: var(--text-h2);
    font-weight: 700;
    line-height: 1;
    letter-spacing: var(--tracking-tight);
  }

  .terms-page__responsible-marker small {
    max-width: 8rem;
    font-family: var(--font-heading);
    font-size: var(--text-xs);
    font-weight: 700;
    letter-spacing: var(--tracking-label);
    line-height: 1.333;
    text-transform: uppercase;
  }

  .terms-page__responsible-copy {
    grid-column: 2 / span 1;
  }
}

@media (min-width: 64rem) {
  .terms-page__rail-layout {
    grid-template-columns: minmax(0, 2fr) minmax(0, 8fr) minmax(0, 2fr);
    column-gap: var(--space-5);
  }

  .terms-page__section-rail {
    display: flex;
    grid-column: 1 / span 1;
    flex-direction: column;
    gap: var(--space-2);
    align-items: flex-start;
    min-width: 0;
    padding-top: var(--space-1);
  }

  .terms-page__section-rail span {
    color: var(--color-gumleaf);
    font-family: var(--font-heading);
    font-size: var(--text-h3);
    font-weight: 700;
    letter-spacing: var(--tracking-tight);
    line-height: 1;
  }

  .terms-page__section-rail small {
    color: var(--color-slate);
    font-family: var(--font-heading);
    font-size: var(--text-xs);
    font-weight: 700;
    letter-spacing: var(--tracking-label);
    line-height: 1.333;
    text-transform: uppercase;
  }

  .terms-page__scope-copy {
    grid-column: 2 / span 1;
  }
}

@media (min-width: 75rem) {
  .terms-page__enquiry-panel {
    padding: var(--space-6);
  }
}

@media (max-width: 47.9375rem) {
  .terms-page__new-tab {
    white-space: normal;
  }

  .terms-page__support-panel a {
    display: inline;
  }
}

@media (prefers-reduced-motion: reduce) {
  .terms-page * {
    transition-duration: 0.01ms !important;
  }
}
