.terms-page {
  background-color: var(--color-marble);
  background-image: radial-gradient(circle at 12% 8%, rgba(233, 220, 199, 0.22), transparent 26%), radial-gradient(circle at 88% 26%, rgba(217, 232, 236, 0.16), transparent 30%);
}

.terms-page section[id] {
  scroll-margin-top: 8rem;
}

.terms-page__intro {
  padding: var(--space-10) 0 5rem;
}

.terms-page__intro-copy {
  width: min(100%, 38.75rem);
  min-width: 0;
}

.terms-page__intro-copy > :last-child {
  margin-bottom: 0;
}

.terms-page__intro h1 {
  max-width: 36rem;
}

.terms-page__validity {
  display: grid;
  grid-template-columns: minmax(0, 1fr);
  gap: var(--space-2);
  width: 100%;
  min-width: 0;
  margin-top: var(--space-6);
  padding-top: var(--space-4);
  border-top: var(--border-subtle);
}

.terms-page__validity > * {
  min-width: 0;
  margin: 0;
}

.terms-page__validity p:not(.terms-page__validity-note) {
  color: var(--color-muted);
  font-size: var(--text-meta);
  font-weight: 700;
  letter-spacing: 0.08em;
  line-height: 1.5;
  text-transform: uppercase;
}

.terms-page__validity span {
  display: inline-block;
  min-width: 9.8rem;
  color: var(--color-sage-deep);
  letter-spacing: 0.11em;
}

.terms-page__validity-note {
  max-width: 36rem;
  margin-top: var(--space-2);
  color: var(--color-stone);
}

.terms-page__overview {
  border-top: var(--border-subtle);
}

.terms-page__overview-grid {
  display: grid;
  grid-template-columns: minmax(0, 5fr) minmax(0, 2fr) minmax(0, 4fr) 1fr;
  align-items: start;
  column-gap: var(--space-5);
  row-gap: var(--space-6);
}

.terms-page__overview-grid > * {
  min-width: 0;
}

.terms-page__overview-panel {
  grid-column: 1 / span 5;
  width: 100%;
  min-width: 0;
  padding: var(--space-6);
  border: var(--border-subtle);
  border-radius: var(--radius-card);
  background: var(--color-oak);
}

.terms-page__overview-panel > :last-child,
.terms-page__overview-note > :last-child {
  margin-bottom: 0;
}

.terms-page__overview-note {
  grid-column: 8 / span 4;
  width: 100%;
  min-width: 0;
  max-width: 27.5rem;
  padding-top: var(--space-4);
}

.terms-page__toc {
  display: grid;
  grid-template-columns: minmax(0, 1fr);
  gap: 0;
  margin: var(--space-5) 0 0;
  padding: 0;
  counter-reset: terms-toc;
  list-style: none;
}

.terms-page__toc li {
  min-width: 0;
  border-top: var(--border-subtle);
  counter-increment: terms-toc;
}

.terms-page__toc a {
  display: grid;
  grid-template-columns: 2rem minmax(0, 1fr);
  align-items: center;
  min-width: 0;
  min-height: 2.75rem;
  padding: var(--space-2) 0;
  color: var(--color-sage-deep);
  font-weight: 700;
  text-decoration: none;
}

.terms-page__toc a::before {
  color: var(--color-muted);
  content: counter(terms-toc, decimal-leading-zero);
  font-size: var(--text-meta);
  font-weight: 700;
  letter-spacing: 0.08em;
}

.terms-page__toc a:hover {
  color: var(--color-sage-deep);
  text-decoration: underline;
  text-decoration-thickness: 2px;
  text-underline-offset: 0.35em;
}

.terms-page__section .container {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  column-gap: var(--space-5);
  row-gap: var(--space-6);
}

.terms-page__section .container > * {
  min-width: 0;
}

.terms-page__copy {
  width: 100%;
  min-width: 0;
}

.terms-page__copy > :last-child {
  margin-bottom: 0;
}

.terms-page__copy h3 {
  margin-top: var(--space-6);
}

.terms-page__copy h2 + h3 {
  margin-top: var(--space-5);
}

.terms-page__copy--scope,
.terms-page__copy--services,
.terms-page__copy--conduct,
.terms-page__copy--closing {
  grid-column: 1 / span 7;
  max-width: 42.5rem;
}

.terms-page__important {
  grid-column: 1 / span 6;
  width: 100%;
  min-width: 0;
  max-width: 37.5rem;
  margin-top: var(--space-2);
  padding: var(--space-5);
  border: var(--border-subtle);
  border-radius: var(--radius-card);
  background: var(--color-oak);
}

.terms-page__important > :last-child,
.terms-page__hours > :last-child,
.terms-page__contact-cta > :last-child {
  margin-bottom: 0;
}

.terms-page__booking-grid {
  display: grid !important;
  grid-template-columns: minmax(0, 7fr) minmax(18.75rem, 4fr) minmax(0, 1fr);
  align-items: start;
  column-gap: var(--space-5);
  row-gap: var(--space-6);
}

.terms-page__booking-grid > * {
  min-width: 0;
}

.terms-page__copy--booking {
  grid-column: 1 / span 1;
  max-width: 42.5rem;
}

.terms-page__hours {
  grid-column: 2 / span 1;
  width: 100%;
  min-width: 18.75rem;
  padding: var(--space-6);
  border: var(--border-subtle);
  border-radius: var(--radius-card);
  background: var(--color-oak);
}

.terms-page__hours dl {
  display: grid;
  grid-template-columns: minmax(0, 1fr);
  gap: 0;
  margin: var(--space-5) 0;
}

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

.terms-page__hours dt,
.terms-page__hours dd {
  min-width: 0;
  margin: 0;
}

.terms-page__hours dt {
  color: var(--color-sage-deep);
  font-weight: 700;
}

.terms-page__hours dd {
  color: var(--color-muted);
  text-align: right;
}

.terms-page__micro-summary {
  margin-top: var(--space-6);
  padding-top: var(--space-4);
  border-top: var(--border-subtle);
  color: var(--color-muted);
  font-weight: 600;
}

.terms-page__sage-rule {
  width: 4rem;
  margin: var(--space-6) 0 var(--space-5);
  background: var(--color-sage-deep);
}

.terms-page__poker {
  padding: var(--space-10) 0;
  background: var(--color-sage);
  color: var(--color-ivory);
}

.terms-page__poker h2,
.terms-page__poker h3,
.terms-page__poker .intro {
  color: var(--color-ivory);
}

.terms-page__poker-intro {
  width: min(100%, 47.5rem);
  min-width: 0;
}

.terms-page__poker-intro > :last-child {
  margin-bottom: 0;
}

.terms-page__poker-principles {
  display: grid;
  grid-template-columns: minmax(0, 1fr);
  gap: 0;
  width: min(100%, 32.5rem);
  min-width: 0;
  margin-top: var(--space-7);
}

.terms-page__poker-principles h3,
.terms-page__poker-principles div,
.terms-page__poker-principles p {
  min-width: 0;
}

.terms-page__poker-principles h3 {
  margin-bottom: var(--space-3);
}

.terms-page__poker-principles div {
  padding: var(--space-4) 0;
  border-top: 1px solid rgba(255, 248, 233, 0.48);
}

.terms-page__poker-principles strong {
  display: block;
  margin-bottom: var(--space-1);
  color: var(--color-ivory);
}

.terms-page__poker-principles p {
  margin: 0;
  color: var(--color-ivory);
}

.terms-page__responsible {
  width: min(100%, 37.5rem);
  min-width: 0;
  margin-top: var(--space-6);
  padding: var(--space-5);
  border: 1px solid rgba(255, 248, 233, 0.72);
  border-radius: var(--radius-card);
}

.terms-page__responsible > * {
  min-width: 0;
}

.terms-page__responsible > :last-child {
  margin-bottom: 0;
}

.terms-page__accordion {
  display: grid;
  grid-column: 1 / span 8;
  grid-template-columns: minmax(0, 1fr);
  width: 100%;
  min-width: 0;
  max-width: 47.5rem;
  margin-top: var(--space-2);
  border-top: var(--border-subtle);
}

.terms-page__accordion-item {
  min-width: 0;
  border-bottom: var(--border-subtle);
}

.terms-page__accordion-item h3 {
  margin: 0;
}

.terms-page__accordion-item button {
  display: grid;
  grid-template-columns: minmax(0, 1fr) 2rem;
  align-items: center;
  width: 100%;
  min-width: 0;
  min-height: 3.5rem;
  padding: var(--space-4) 0;
  border: 0;
  background: transparent;
  color: var(--color-sage-deep);
  font-family: var(--font-heading);
  font-size: var(--text-h3);
  font-weight: 600;
  line-height: 1.12;
  text-align: left;
}

.terms-page__accordion-item button span {
  position: relative;
  width: 1.5rem;
  height: 1.5rem;
  justify-self: end;
}

.terms-page__accordion-item button span::before,
.terms-page__accordion-item button span::after {
  position: absolute;
  top: 50%;
  left: 50%;
  width: 0.9rem;
  height: 1px;
  background: currentColor;
  content: "";
  transform: translate(-50%, -50%);
  transition: transform var(--transition-medium);
}

.terms-page__accordion-item button span::after {
  transform: translate(-50%, -50%) rotate(90deg);
}

.terms-page__accordion-item button[aria-expanded="true"] span::after {
  transform: translate(-50%, -50%) rotate(0deg);
}

.terms-page__accordion-panel {
  display: grid;
  grid-template-columns: minmax(0, 1fr);
  min-width: 0;
  overflow: hidden;
  max-height: 0;
  transition: max-height var(--transition-medium);
}

.terms-page__accordion-panel:not([hidden]) {
  max-height: none;
}

.terms-page__accordion-inner {
  min-width: 0;
  padding: 0 0 var(--space-5);
}

.terms-page__accordion-inner > :last-child {
  margin-bottom: 0;
}

.terms-page__closing .container {
  align-items: start;
}

.terms-page__contact-cta {
  grid-column: 1 / span 5;
  display: flex;
  width: 100%;
  min-width: 0;
  max-width: 32.5rem;
  flex-direction: column;
  align-items: stretch;
  gap: var(--space-4);
  margin-top: var(--space-2);
  padding: var(--space-6);
  border: var(--border-subtle);
  border-radius: var(--radius-card);
  background: var(--color-cream);
}

.terms-page__contact-cta > * {
  min-width: 0;
  margin: 0;
}

@media (max-width: 980px) {
  .terms-page__booking-grid {
    grid-template-columns: minmax(0, 1fr);
  }

  .terms-page__copy--booking,
  .terms-page__hours {
    grid-column: 1;
  }

  .terms-page__hours {
    max-width: 42.5rem;
    min-width: 0;
  }
}

@media (max-width: 959px) {
  .terms-page__overview-grid {
    grid-template-columns: minmax(0, 1fr);
  }

  .terms-page__overview-panel,
  .terms-page__overview-note {
    grid-column: 1;
  }

  .terms-page__overview-panel {
    max-width: 42.5rem;
  }

  .terms-page__overview-note {
    max-width: 33.75rem;
    padding-top: 0;
  }
}

@media (max-width: 899px) {
  .terms-page__intro {
    padding: var(--space-9) 0 var(--space-8);
  }

  .terms-page__section .container {
    grid-template-columns: repeat(8, minmax(0, 1fr));
    column-gap: var(--space-5);
  }

  .terms-page__copy--scope,
  .terms-page__copy--services,
  .terms-page__copy--conduct,
  .terms-page__copy--closing {
    grid-column: 1 / span 6;
  }

  .terms-page__important {
    grid-column: 1 / span 6;
  }

  .terms-page__accordion {
    grid-column: 1 / span 6;
  }

  .terms-page__contact-cta {
    grid-column: 1 / span 5;
  }

  .terms-page__poker {
    padding: var(--space-9) 0;
  }
}

@media (max-width: 680px) {
  .terms-page__intro {
    padding: var(--space-8) 0 var(--space-7);
  }

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

  .terms-page__validity span {
    min-width: 0;
    margin-right: var(--space-2);
  }

  .terms-page__section .container {
    grid-template-columns: repeat(4, minmax(0, 1fr));
    column-gap: var(--space-4);
  }

  .terms-page__copy--scope,
  .terms-page__copy--services,
  .terms-page__copy--conduct,
  .terms-page__copy--closing,
  .terms-page__important,
  .terms-page__accordion,
  .terms-page__contact-cta {
    grid-column: 1 / span 4;
  }

  .terms-page__copy h3 {
    margin-top: var(--space-5);
  }

  .terms-page__overview-panel,
  .terms-page__hours,
  .terms-page__important,
  .terms-page__contact-cta {
    padding: var(--space-5);
  }

  .terms-page__poker {
    padding: var(--space-8) 0;
  }

  .terms-page__poker-principles {
    margin-top: var(--space-6);
  }

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

  .terms-page__accordion-item button {
    font-size: clamp(1.375rem, 6vw, 1.5625rem);
  }

  .terms-page__contact-cta .button {
    width: 100%;
  }
}
