/* Editorial system for utility pages: structured, calm and recognisably Pro Lex. */
.legal-page--editorial {
  position: relative;
  overflow: clip;
  padding-top: clamp(112px, 10vw, 154px) !important;
  background:
    linear-gradient(90deg, rgba(30, 57, 71, 0.045) 1px, transparent 1px),
    linear-gradient(180deg, rgba(30, 57, 71, 0.035) 1px, transparent 1px),
    #f4f3ef !important;
  background-size: 86px 86px, 86px 86px, auto !important;
}

.legal-page--editorial::before {
  position: absolute;
  top: 72px;
  right: -12vw;
  width: min(48vw, 720px);
  aspect-ratio: 1;
  border: 1px solid rgba(153, 101, 58, 0.14);
  border-radius: 50%;
  box-shadow: 0 0 0 72px rgba(153, 101, 58, 0.025), 0 0 0 144px rgba(30, 57, 71, 0.018);
  content: "";
  pointer-events: none;
}

.legal-page--editorial .legal-page-inner {
  position: relative;
  z-index: 1;
}

.legal-document-hero {
  display: grid !important;
  grid-template-columns: minmax(0, 1.35fr) minmax(190px, 0.65fr);
  gap: clamp(30px, 4vw, 64px);
  align-items: end;
  margin-top: clamp(28px, 4vw, 52px);
  padding: clamp(36px, 6vw, 78px) !important;
  border: 1px solid rgba(30, 57, 71, 0.14);
  border-radius: 12px;
  background:
    linear-gradient(135deg, rgba(255, 255, 255, 0.82), rgba(250, 246, 238, 0.94)),
    #fffdfa !important;
  box-shadow: 0 28px 80px rgba(28, 38, 43, 0.09);
}

.legal-document-kicker,
.legal-document-rail-label {
  margin: 0 0 18px !important;
  color: #94663f !important;
  font: 700 0.76rem/1.2 "Plus Jakarta Sans", sans-serif !important;
  letter-spacing: 0.18em !important;
  text-transform: uppercase;
}

.legal-document-hero h1 {
  max-width: 960px;
  margin: 0 !important;
  color: #203b49 !important;
  font-family: "Newsreader", serif !important;
  font-size: clamp(3.15rem, 4.4vw, 5.7rem) !important;
  font-weight: 500 !important;
  line-height: 0.96 !important;
  letter-spacing: -0.052em !important;
  overflow-wrap: normal;
}

.legal-document-lede {
  max-width: 740px;
  margin: clamp(24px, 3vw, 38px) 0 0 !important;
  color: #5c6b72 !important;
  font-size: clamp(1rem, 1.4vw, 1.18rem) !important;
  line-height: 1.7 !important;
}

.legal-document-stamp {
  display: grid;
  grid-template-columns: 1fr auto;
  gap: 8px 14px;
  align-self: stretch;
  min-height: 220px;
  padding: 24px;
  border: 1px solid rgba(151, 101, 61, 0.34);
  background:
    linear-gradient(135deg, rgba(177, 130, 83, 0.12), transparent 54%),
    #203b49;
  color: #f4eee4;
}

.legal-document-stamp > span {
  align-self: start;
  color: #d4aa7c;
  font: 700 0.78rem/1 "Plus Jakarta Sans", sans-serif;
  letter-spacing: 0.16em;
}

.legal-document-stamp strong {
  color: rgba(244, 238, 228, 0.22);
  font: 500 clamp(3.8rem, 7vw, 6.4rem)/0.75 "Newsreader", serif;
}

.legal-document-stamp small,
.legal-document-stamp time {
  align-self: end;
  color: rgba(244, 238, 228, 0.78) !important;
  opacity: 1 !important;
  font: 600 0.7rem/1.4 "Plus Jakarta Sans", sans-serif;
  letter-spacing: 0.1em;
  text-transform: uppercase;
}

.legal-document-stamp time {
  color: #f4eee4 !important;
  text-align: right;
}

.legal-document-layout {
  display: grid;
  grid-template-columns: minmax(220px, 290px) minmax(0, 1fr);
  gap: clamp(42px, 7vw, 108px);
  align-items: start;
  padding: clamp(54px, 7vw, 96px) 0 clamp(72px, 9vw, 124px);
}

.legal-document-rail {
  position: sticky;
  top: 112px;
}

.legal-document-nav {
  display: grid;
  border-top: 1px solid rgba(30, 57, 71, 0.18);
}

.legal-document-nav a {
  display: grid;
  grid-template-columns: 28px 1fr auto;
  gap: 12px;
  align-items: center;
  padding: 17px 4px;
  border-bottom: 1px solid rgba(30, 57, 71, 0.16);
  color: #5f6d73;
  text-decoration: none;
  transition: color 180ms ease, padding 180ms ease;
}

.legal-document-nav a:hover,
.legal-document-nav a:focus-visible,
.legal-document-nav a.is-active {
  padding-left: 10px;
  color: #203b49;
}

.legal-document-nav a.is-active {
  border-bottom-color: #a87549;
  background: linear-gradient(90deg, rgba(168, 117, 73, 0.09), transparent);
}

.legal-document-nav a > span:first-child {
  color: #a87549;
  font-size: 0.72rem;
  letter-spacing: 0.12em;
}

.legal-document-nav strong {
  font-size: 0.88rem;
  font-weight: 700;
}

.legal-document-nav .material-symbols-outlined {
  font-size: 17px;
}

.legal-document-help {
  margin-top: 28px;
  padding: 24px;
  background: #203b49;
  color: rgba(244, 238, 228, 0.76);
}

.legal-document-help .material-symbols-outlined {
  color: #d4aa7c;
}

.legal-document-help p {
  margin: 14px 0 12px;
  font-size: 0.88rem;
  line-height: 1.55;
}

.legal-document-help a {
  color: #fff;
  font-size: 0.78rem;
  font-weight: 800;
  letter-spacing: 0.06em;
  text-transform: uppercase;
}

.legal-content--editorial {
  max-width: 900px !important;
  padding: clamp(34px, 5vw, 68px) !important;
  border: 1px solid rgba(30, 57, 71, 0.12);
  border-radius: 10px;
  background: rgba(255, 253, 249, 0.92) !important;
  box-shadow: 0 24px 64px rgba(28, 38, 43, 0.07);
}

.legal-content--editorial > :first-child {
  margin-top: 0 !important;
}

.legal-content--editorial h2 {
  position: relative;
  margin-top: clamp(50px, 7vw, 78px) !important;
  padding-top: 24px;
  border-top: 1px solid rgba(30, 57, 71, 0.16);
  color: #203b49 !important;
  font-family: "Newsreader", serif !important;
  font-size: clamp(1.9rem, 3.3vw, 3rem) !important;
  line-height: 1.08 !important;
}

.legal-content--editorial h3 {
  color: #293e48 !important;
  font-size: 1.12rem !important;
}

.legal-content--editorial p,
.legal-content--editorial li {
  color: #53656e !important;
  font-size: 1rem !important;
  line-height: 1.78 !important;
}

.legal-content--editorial a {
  color: #805630 !important;
  text-decoration-color: rgba(128, 86, 48, 0.34);
  text-underline-offset: 0.18em;
}

/* Contact page: turn the oversized empty hero into a deliberate split composition. */
.contacts-page .contacts-page-inner {
  position: relative;
}

.contacts-page .contacts-hero {
  display: grid !important;
  grid-template-columns: minmax(300px, 0.82fr) minmax(0, 1.35fr) !important;
  gap: 0 !important;
  align-items: stretch !important;
  min-height: 560px !important;
  margin-top: clamp(28px, 4vw, 50px) !important;
  overflow: hidden;
  border: 1px solid rgba(30, 57, 71, 0.16);
  border-radius: 12px;
  background: #203b49 !important;
  box-shadow: 0 28px 78px rgba(25, 37, 43, 0.12);
}

.contacts-page .contacts-hero > div {
  display: flex;
  flex-direction: column;
  justify-content: flex-end;
  padding: clamp(34px, 5vw, 68px) !important;
  background:
    linear-gradient(145deg, rgba(212, 170, 124, 0.1), transparent 48%),
    #203b49;
}

html.light[data-theme="light"] body:not(#heading-color-scope) main .contacts-page .contacts-hero > div > p,
html.dark[data-theme="dark"] body main .contacts-page .contacts-hero > div > p,
html body .contacts-page .contacts-hero > div > p {
  color: #d4aa7c !important;
  letter-spacing: 0.16em !important;
  opacity: 1 !important;
}

html.light[data-theme="light"] body:not(#heading-color-scope) main .contacts-page .contacts-hero > div > h1,
html.dark[data-theme="dark"] body main .contacts-page .contacts-hero > div > h1,
html body .contacts-page .contacts-hero h1 {
  color: #f5efe5 !important;
  font-size: clamp(3.6rem, 7vw, 7rem) !important;
  line-height: 0.9 !important;
  opacity: 1 !important;
  text-shadow: 0 2px 22px rgba(0, 0, 0, 0.2) !important;
}

html.light[data-theme="light"] body:not(#heading-color-scope) main .contacts-page .contacts-hero > div > span,
html.dark[data-theme="dark"] body main .contacts-page .contacts-hero > div > span,
html body .contacts-page .contacts-hero > div > span {
  max-width: 32rem;
  margin-top: 24px;
  color: rgba(245, 239, 229, 0.72) !important;
  line-height: 1.65;
  opacity: 1 !important;
}

.contacts-page .contacts-visual {
  min-height: 100% !important;
  border-radius: 0 !important;
}

.contacts-page .contacts-visual img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  filter: saturate(0.72) contrast(1.06);
}

@media (max-width: 900px) {
  .legal-document-hero,
  .legal-document-layout,
  .contacts-page .contacts-hero {
    grid-template-columns: 1fr !important;
  }

  .legal-document-stamp {
    min-height: 150px;
  }

  .legal-document-rail {
    position: static;
  }

  .legal-document-help {
    display: none;
  }

  .contacts-page .contacts-hero {
    min-height: 0 !important;
  }

  .contacts-page .contacts-hero > div {
    min-height: 360px;
  }

  .contacts-page .contacts-visual {
    min-height: 420px !important;
  }
}

@media (max-width: 640px) {
  .legal-page--editorial {
    padding-top: 92px !important;
    background-size: 58px 58px, 58px 58px, auto !important;
  }

  .legal-document-hero {
    gap: 24px;
    padding: 28px 22px !important;
  }

  .legal-document-hero h1 {
    font-size: clamp(2.8rem, 15vw, 4.4rem) !important;
  }

  .legal-document-stamp {
    min-height: 124px;
    padding: 18px;
  }

  .legal-document-stamp strong {
    font-size: 4rem;
  }

  .legal-document-layout {
    gap: 32px;
    padding-top: 38px;
  }

  .legal-content--editorial {
    padding: 28px 22px !important;
  }

  .contacts-page .contacts-hero > div {
    min-height: 320px;
    padding: 32px 24px !important;
  }

  .contacts-page .contacts-hero h1 {
    font-size: clamp(3.4rem, 18vw, 5rem) !important;
  }

  .contacts-page .contacts-visual {
    min-height: 300px !important;
  }
}

@media (prefers-reduced-motion: reduce) {
  .legal-document-nav a {
    transition: none;
  }
}
