.regulations-page {
  position: relative;
  overflow: hidden;
}

.regulations-page section[id] {
  scroll-margin-top: 6rem;
}

.regulations-hero {
  position: relative;
  isolation: isolate;
  padding-block: clamp(5.5rem, 9vw, 7.5rem) clamp(4rem, 7vw, 6.5rem);
}

.regulations-hero::before {
  position: absolute;
  z-index: -1;
  inset: -8rem 0 auto;
  block-size: 37rem;
  background: radial-gradient(circle at 18% 36%, rgba(216, 185, 120, 0.15), transparent 19rem), radial-gradient(circle at 61% 20%, rgba(100, 38, 56, 0.42), transparent 28rem);
  content: "";
  pointer-events: none;
}

.regulations-hero__layout,
.regulations-guide__layout,
.regulations-article__layout {
  display: grid;
  min-inline-size: 0;
}

.regulations-hero__layout {
  grid-template-columns: minmax(0, 47.5rem) minmax(0, 1fr);
}

.regulations-hero__layout > *,
.regulations-guide__layout > *,
.regulations-article__layout > *,
.regulations-summary__grid > *,
.regulations-final__panel > * {
  min-inline-size: 0;
}

.regulations-hero__copy {
  grid-column: 1;
  inline-size: 100%;
  max-inline-size: 47.5rem;
}

.regulations-hero__lead {
  max-inline-size: 42.5rem;
  color: var(--color-text-muted);
  font-size: var(--text-lg);
  line-height: var(--leading-relaxed);
}

.regulations-hero__rule {
  inline-size: 6rem;
  block-size: 1px;
  margin-block: var(--space-6);
  background: var(--color-zloto-antyczne);
}

.regulations-notice {
  display: grid;
  grid-template-columns: 2.5rem minmax(0, 1fr);
  gap: var(--space-4);
  inline-size: 100%;
  max-inline-size: 45rem;
  border-inline-start: 2px solid var(--color-zloto-antyczne);
  background: linear-gradient(90deg, rgba(100, 38, 56, 0.24), rgba(23, 22, 27, 0.7));
  padding: var(--space-5);
}

.regulations-notice__symbol {
  display: flex;
  inline-size: 2.25rem;
  block-size: 2.25rem;
  align-items: center;
  justify-content: center;
  border: 1px solid var(--color-border-strong);
  border-radius: 50%;
  color: var(--color-zloto-jasne);
  font-family: var(--font-heading);
  font-size: 1.5rem;
  font-weight: 600;
  line-height: 1;
}

.regulations-notice__content {
  display: flex;
  min-inline-size: 0;
  flex-direction: column;
  gap: var(--space-3);
}

.regulations-notice__content h2,
.regulations-notice__content p {
  margin: 0;
}

.regulations-notice__content h2 {
  font-size: clamp(1.6rem, 3vw, 2rem);
}

.regulations-notice__content p {
  color: var(--color-text-muted);
}

.regulations-summary {
  padding-block: clamp(3.5rem, 7vw, 5.5rem);
}

.regulations-summary__heading {
  inline-size: 100%;
  max-inline-size: 42rem;
  margin-block-end: var(--space-6);
}

.regulations-summary__heading > :last-child {
  margin-block-end: 0;
}

.regulations-summary__grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: var(--space-5);
}

.regulations-summary__card {
  display: flex;
  min-inline-size: 0;
  flex-direction: column;
  align-items: stretch;
  gap: var(--space-4);
  padding: var(--space-5);
}

.regulations-summary__card > * {
  margin: 0;
}

.regulations-summary__card h3 {
  min-block-size: 3.2em;
}

.regulations-summary__card p:last-child {
  color: var(--color-text-muted);
}

.regulations-summary__number {
  color: var(--color-zloto-jasne);
  font-family: var(--font-heading);
  font-size: 2.15rem;
  font-weight: 600;
  letter-spacing: -0.04em;
  line-height: 1;
}

.regulations-summary__card:hover {
  border-color: var(--color-border-strong);
  background: var(--color-surface-raised);
}

.regulations-guide {
  padding-block: clamp(3.5rem, 7vw, 5.5rem);
}

.regulations-guide__layout {
  grid-template-columns: 13.75rem minmax(0, 47.5rem) minmax(0, 1fr);
  column-gap: var(--space-5);
}

.regulations-guide__label {
  grid-column: 1;
  inline-size: 100%;
}

.regulations-guide__content {
  grid-column: 2;
  inline-size: 100%;
  max-inline-size: 47.5rem;
}

.regulations-guide__intro {
  max-inline-size: 38.75rem;
  color: var(--color-text-muted);
}

.regulations-toc ol {
  display: flex;
  min-inline-size: 0;
  flex-direction: column;
  gap: 0;
  list-style: none;
}

.regulations-toc li {
  inline-size: 100%;
  min-inline-size: 0;
  border-block-start: 1px solid var(--color-divider);
}

.regulations-toc li:last-child {
  border-block-end: 1px solid var(--color-divider);
}

.regulations-toc a {
  display: grid;
  grid-template-columns: 4rem minmax(0, 1fr);
  gap: var(--space-4);
  inline-size: 100%;
  min-inline-size: 0;
  color: var(--color-kosc-sloniowa);
  padding-block: var(--space-4);
  text-decoration: none;
}

.regulations-toc a:hover,
.regulations-toc a[aria-current="true"] {
  color: var(--color-zloto-jasne);
}

.regulations-toc a > span:last-child {
  display: flex;
  min-inline-size: 0;
  flex-direction: column;
  gap: var(--space-1);
}

.regulations-toc strong {
  color: currentColor;
  font-size: var(--text-base);
  line-height: var(--leading-ui);
}

.regulations-toc small {
  color: var(--color-text-muted);
}

.regulations-toc__number {
  color: var(--color-zloto-antyczne);
  font-family: var(--font-heading);
  font-size: 1.65rem;
  font-weight: 600;
  line-height: 1;
}

.regulations-article {
  padding-block: clamp(3.5rem, 7vw, 5.5rem);
}

.regulations-article__layout {
  grid-template-columns: 11.25rem minmax(0, 47.5rem) minmax(0, 1fr);
  column-gap: var(--space-5);
}

.regulations-article__index {
  grid-column: 1;
  inline-size: 100%;
}

.regulations-article__index > span {
  display: block;
  margin-block-end: var(--space-3);
  color: var(--color-zloto-antyczne);
  font-family: var(--font-heading);
  font-size: 3.5rem;
  font-weight: 600;
  line-height: 0.9;
}

.regulations-article__index .eyebrow {
  max-inline-size: 9rem;
}

.regulations-article__content {
  grid-column: 2;
  inline-size: 100%;
  max-inline-size: 47.5rem;
}

.regulations-article__content > h2 {
  max-inline-size: 42rem;
}

.regulations-clause {
  display: grid;
  grid-template-columns: 3rem minmax(0, 1fr);
  gap: var(--space-3);
  inline-size: 100%;
  min-inline-size: 0;
  margin-block-start: var(--space-6);
}

.regulations-clause > div {
  min-inline-size: 0;
}

.regulations-clause__number {
  margin: 0;
  color: var(--color-szampanski-braz);
  font-size: var(--text-sm);
  font-weight: 800;
  line-height: var(--leading-ui);
}

.regulations-clause h3 {
  max-inline-size: 26.25rem;
}

.regulations-clause p {
  max-inline-size: 45rem;
  color: var(--color-text-muted);
}

.regulations-clause h3:last-child,
.regulations-clause p:last-child,
.regulations-clause blockquote:last-child {
  margin-block-end: 0;
}

.regulations-clause--accent {
  border-inline-start: 1px solid var(--color-bordo-aksamitne);
  padding-inline-start: var(--space-4);
}

.regulations-clause--highlight,
.regulations-clause--safety {
  gap: var(--space-4);
  border: var(--border-default);
  border-inline-start: 3px solid var(--color-bordo-aksamitne);
  border-radius: var(--radius-md);
  background: linear-gradient(135deg, rgba(56, 22, 34, 0.82), rgba(23, 22, 27, 0.95));
  padding: var(--space-5);
}

.regulations-clause--highlight p,
.regulations-clause--safety p {
  color: var(--color-kosc-sloniowa);
}

.regulations-clause--separated {
  border-block-start: 1px solid var(--color-divider);
  padding-block-start: var(--space-6);
}

.regulations-clause--closing::after {
  grid-column: 2;
  inline-size: 4rem;
  block-size: 1px;
  margin-block-start: var(--space-2);
  background: var(--color-zloto-antyczne);
  content: "";
}

.regulations-article__divider {
  max-inline-size: 45rem;
  margin-block: var(--space-6);
}

.regulations-booking-check {
  display: flex;
  min-inline-size: 0;
  max-inline-size: 38.75rem;
  flex-direction: column;
  gap: var(--space-4);
  margin-block-start: var(--space-6);
  border: var(--border-default);
  border-radius: var(--radius-lg);
  background: linear-gradient(135deg, rgba(100, 38, 56, 0.2), var(--color-surface-glass));
  padding: var(--space-5);
}

.regulations-booking-check > * {
  margin: 0;
}

.regulations-booking-check__header {
  display: flex;
  min-inline-size: 0;
  flex-direction: column;
  gap: var(--space-2);
}

.regulations-booking-check__header > * {
  margin: 0;
}

.regulations-booking-check ul {
  display: flex;
  min-inline-size: 0;
  flex-direction: column;
  gap: var(--space-2);
  list-style: none;
}

.regulations-booking-check li {
  position: relative;
  min-inline-size: 0;
  color: var(--color-text-muted);
  padding-inline-start: 1.5rem;
}

.regulations-booking-check li::before {
  position: absolute;
  inset-inline-start: 0;
  color: var(--color-zloto-jasne);
  content: "✓";
  font-weight: 800;
}

.regulations-final {
  padding-block: clamp(3.5rem, 7vw, 5.5rem) clamp(4rem, 7vw, 6.5rem);
}

.regulations-final__panel {
  display: grid;
  grid-template-columns: minmax(0, 35rem) auto;
  align-items: center;
  gap: var(--space-7);
  border: var(--border-default);
  border-radius: var(--radius-lg);
  background: radial-gradient(circle at 82% 28%, rgba(216, 185, 120, 0.18), transparent 16rem), linear-gradient(135deg, var(--color-bordo-glebokie), rgba(23, 22, 27, 0.94));
  box-shadow: var(--shadow-soft);
  padding: clamp(var(--space-5), 5vw, 3.5rem);
}

.regulations-final__copy {
  inline-size: 100%;
  max-inline-size: 35rem;
}

.regulations-final__copy > :last-child {
  margin-block-end: 0;
}

.regulations-final__copy p:not(.eyebrow) {
  color: var(--color-text-muted);
}

.regulations-final__action {
  display: flex;
  inline-size: max-content;
  min-inline-size: 0;
  max-inline-size: 15rem;
  flex-direction: column;
  align-items: stretch;
  gap: var(--space-3);
}

.regulations-final__action small {
  color: var(--color-text-muted);
  text-align: center;
}

@media (max-width: 57.4375rem) {
  .regulations-summary__grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .regulations-summary__card:nth-child(3) {
    grid-column: 1 / -1;
  }

  .regulations-guide__layout,
  .regulations-article__layout {
    grid-template-columns: minmax(0, 47.5rem);
    row-gap: var(--space-4);
  }

  .regulations-guide__label,
  .regulations-article__index,
  .regulations-guide__content,
  .regulations-article__content {
    grid-column: 1;
  }

  .regulations-article__index {
    display: flex;
    align-items: center;
    gap: var(--space-3);
  }

  .regulations-article__index > span,
  .regulations-article__index .eyebrow {
    margin: 0;
  }

  .regulations-article__index > span {
    font-size: 2.5rem;
  }

  .regulations-article__index .eyebrow {
    max-inline-size: none;
  }
}

@media (max-width: 47.9375rem) {
  .regulations-hero {
    padding-block-start: 5rem;
  }

  .regulations-hero__layout {
    grid-template-columns: minmax(0, 1fr);
  }

  .regulations-hero__copy {
    grid-column: 1;
  }

  .regulations-hero h1 {
    font-size: clamp(2.625rem, 12vw, 3rem);
  }

  .regulations-notice {
    grid-template-columns: minmax(0, 1fr);
    gap: var(--space-3);
    padding: var(--space-4);
  }

  .regulations-summary__grid {
    grid-template-columns: minmax(0, 1fr);
  }

  .regulations-summary__card:nth-child(3) {
    grid-column: 1;
  }

  .regulations-summary__card h3 {
    min-block-size: 0;
  }

  .regulations-toc a {
    grid-template-columns: 3.25rem minmax(0, 1fr);
    gap: var(--space-3);
  }

  .regulations-clause {
    grid-template-columns: minmax(0, 1fr);
    gap: var(--space-2);
    margin-block-start: var(--space-5);
  }

  .regulations-clause--highlight,
  .regulations-clause--safety {
    gap: var(--space-3);
    padding: var(--space-4);
  }

  .regulations-clause--closing::after {
    grid-column: 1;
  }

  .regulations-booking-check {
    padding: var(--space-4);
  }

  .regulations-final__panel {
    grid-template-columns: minmax(0, 1fr);
    align-items: start;
    gap: var(--space-5);
    padding: var(--space-5);
  }

  .regulations-final__action {
    inline-size: 100%;
    max-inline-size: none;
  }

  .regulations-final__action small {
    text-align: start;
  }
}

@media (max-width: 30rem) {
  .regulations-toc a {
    grid-template-columns: minmax(0, 1fr);
    gap: var(--space-2);
  }

  .regulations-toc__number {
    font-size: 1.35rem;
  }
}

@media (prefers-reduced-motion: reduce) {
  .regulations-summary__card:hover {
    background: var(--color-surface-raised);
  }
}
