* {
  box-sizing: border-box;
  margin: 0;
  padding: 0;
}

html {
  scroll-behavior: smooth;
}

body {
  font-family: "DM Sans", sans-serif;
  background: #f6f6f3;
  color: #151515;
  line-height: 1.7;
}

a {
  color: inherit;
  text-decoration: none;
}

button,
input,
textarea,
select {
  font: inherit;
}

.legal-container {
  width: min(1180px, calc(100% - 40px));
  margin: 0 auto;
}


/* =========================================================
   HEADER
========================================================= */

.legal-header {
  position: sticky;
  top: 0;
  z-index: 50;
  background: rgba(246, 246, 243, .92);
  backdrop-filter: blur(18px);
  border-bottom: 1px solid #deded9;
}

.legal-header-inner {
  min-height: 82px;
  display: flex;
  align-items: center;
  justify-content: space-between;
}

.legal-logo img {
  width: 130px;
  height: auto;
  display: block;
}

.back-link {
  display: inline-flex;
  align-items: center;
  gap: 10px;

  font-size: 14px;
  font-weight: 700;

  transition: .25s ease;
}

.back-link span {
  font-size: 20px;
  transition: transform .25s ease;
}

.back-link:hover {
  opacity: .65;
}

.back-link:hover span {
  transform: translateX(-4px);
}


/* =========================================================
   HERO
========================================================= */

.legal-page {
  padding: 90px 0 120px;
}

.legal-hero {
  max-width: 850px;
  padding-bottom: 70px;
  border-bottom: 1px solid #dcdcd6;
}

.legal-eyebrow {
  display: flex;
  align-items: center;
  gap: 10px;

  margin-bottom: 24px;

  font-size: 11px;
  font-weight: 800;
  letter-spacing: .18em;
}

.legal-eyebrow span {
  width: 28px;
  height: 2px;
  background: #111;
}

.legal-hero h1 {
  font-family: "Manrope", sans-serif;
  font-size: clamp(48px, 7vw, 88px);
  line-height: .98;
  letter-spacing: -.055em;
  font-weight: 800;
  margin-bottom: 28px;
}

.legal-hero h1 span {
  color: #777;
}

.legal-hero > p {
  max-width: 650px;
  color: #666;
  font-size: 18px;
}

.legal-meta {
  display: flex;
  flex-wrap: wrap;
  gap: 12px;
  margin-top: 35px;
}

.legal-meta span {
  padding: 9px 14px;
  border: 1px solid #d8d8d2;
  border-radius: 999px;

  font-size: 12px;
  font-weight: 700;
  color: #555;
}


/* =========================================================
   LAYOUT
========================================================= */

.legal-layout {
  display: grid;
  grid-template-columns: 240px minmax(0, 1fr);
  gap: 80px;
  padding-top: 75px;
}

.legal-sidebar {
  position: sticky;
  top: 120px;
  align-self: start;
}

.sidebar-title {
  font-size: 11px;
  font-weight: 800;
  letter-spacing: .15em;
  text-transform: uppercase;

  margin-bottom: 20px;
}

.legal-sidebar > a {
  display: block;

  padding: 11px 0;

  border-bottom: 1px solid #deded9;

  font-size: 13px;
  font-weight: 600;
  color: #666;

  transition: .2s ease;
}

.legal-sidebar > a:hover {
  color: #111;
  padding-left: 5px;
}

.sidebar-contact {
  margin-top: 35px;
  padding: 20px;

  background: #151515;
  color: #fff;
  border-radius: 16px;
}

.sidebar-contact span {
  display: block;

  margin-bottom: 10px;

  font-size: 11px;
  color: #aaa;
}

.sidebar-contact a {
  font-size: 13px;
  font-weight: 700;
  word-break: break-word;
}


/* =========================================================
   CONTENT
========================================================= */

.legal-content {
  max-width: 790px;
}

.legal-section {
  display: grid;
  grid-template-columns: 65px minmax(0, 1fr);
  gap: 25px;

  padding-bottom: 90px;
  margin-bottom: 90px;

  border-bottom: 1px solid #deded9;
}

.section-number {
  font-family: "Manrope", sans-serif;

  font-size: 14px;
  font-weight: 800;

  color: #999;
  padding-top: 10px;
}

.section-content h2 {
  font-family: "Manrope", sans-serif;

  font-size: clamp(30px, 4vw, 44px);
  line-height: 1.08;
  letter-spacing: -.04em;

  margin-bottom: 45px;
}

.section-content h3 {
  font-family: "Manrope", sans-serif;

  font-size: 21px;
  line-height: 1.25;

  margin-top: 42px;
  margin-bottom: 15px;
}

.section-content h3:first-of-type {
  margin-top: 0;
}

.section-content h4 {
  font-size: 16px;
  font-weight: 800;

  margin-top: 27px;
  margin-bottom: 8px;
}

.section-content p {
  color: #5d5d5a;
  font-size: 15px;
  margin-bottom: 17px;
}


/* =========================================================
   BOXES
========================================================= */

.info-box {
  margin: 30px 0;
  padding: 24px 26px;

  border-left: 3px solid #111;

  background: #eaeae5;
  border-radius: 0 14px 14px 0;
}

.info-box strong {
  display: block;

  margin-bottom: 5px;

  font-family: "Manrope", sans-serif;
  font-size: 15px;
}

.info-box p {
  margin: 0;
  font-size: 14px;
}


/* =========================================================
   PROVIDER
========================================================= */

.provider-card {
  margin: 30px 0;
  padding: 30px;

  background: #151515;
  color: white;

  border-radius: 20px;

  display: flex;
  flex-direction: column;
  gap: 5px;
}

.provider-label {
  font-size: 10px;
  font-weight: 800;
  letter-spacing: .16em;
  color: #999;

  margin-bottom: 10px;
}

.provider-card strong {
  font-family: "Manrope", sans-serif;
  font-size: 23px;
}

.provider-card span {
  margin-top: 8px;
  color: #aaa;
  font-size: 14px;
}


/* =========================================================
   RESPONSIBLE CARD
========================================================= */

.responsible-card {
  margin: 30px 0;
  padding: 32px;

  background: white;
  border: 1px solid #deded9;
  border-radius: 20px;

  box-shadow: 0 15px 40px rgba(0,0,0,.04);
}

.responsible-title {
  font-size: 10px;
  font-weight: 800;
  letter-spacing: .15em;
  color: #999;

  margin-bottom: 16px;
}

.responsible-card > strong {
  display: block;

  font-family: "Manrope", sans-serif;
  font-size: 19px;
}

.responsible-card p {
  margin-top: 14px;
}

.responsible-links {
  display: flex;
  flex-wrap: wrap;
  gap: 10px;
  margin-top: 20px;
}

.responsible-links a {
  padding: 9px 13px;

  border: 1px solid #d9d9d4;
  border-radius: 999px;

  font-size: 13px;
  font-weight: 700;

  transition: .2s ease;
}

.responsible-links a:hover {
  background: #151515;
  color: #fff;
  border-color: #151515;
}


/* =========================================================
   HIGHLIGHT
========================================================= */

.legal-highlight {
  margin: 30px 0;
  padding: 28px;

  background: #151515;
  color: #fff;

  border-radius: 18px;
}

.legal-highlight strong {
  display: block;

  margin-bottom: 10px;

  font-family: "Manrope", sans-serif;
  font-size: 18px;
}

.legal-highlight p {
  color: #bbb;
  margin-bottom: 12px;
}

.legal-highlight p:last-child {
  margin-bottom: 0;
}


/* =========================================================
   LIST
========================================================= */

.legal-list {
  margin: 25px 0 30px;
  padding: 0;

  list-style: none;
}

.legal-list li {
  position: relative;

  padding: 14px 0 14px 28px;

  border-bottom: 1px solid #deded9;

  color: #5d5d5a;
  font-size: 15px;
}

.legal-list li::before {
  content: "✓";

  position: absolute;
  left: 0;
  top: 14px;

  font-weight: 800;
  color: #111;
}


/* =========================================================
   DATA LIST
========================================================= */

.data-list {
  display: grid;
  grid-template-columns: 1fr 1fr;

  margin: 25px 0 30px;

  border: 1px solid #deded9;
  border-radius: 16px;
  overflow: hidden;

  background: white;
}

.data-list span {
  padding: 15px 17px;

  border-bottom: 1px solid #deded9;

  font-size: 13px;
  font-weight: 600;
  color: #555;
}

.data-list span:nth-child(odd) {
  border-right: 1px solid #deded9;
}


/* =========================================================
   END
========================================================= */

.legal-end {
  padding: 50px 40px;

  background: #151515;
  color: white;

  border-radius: 24px;

  text-align: center;
}

.end-icon {
  width: 48px;
  height: 48px;

  margin: 0 auto 20px;

  display: flex;
  align-items: center;
  justify-content: center;

  border: 1px solid #555;
  border-radius: 50%;

  font-weight: 800;
}

.legal-end h2 {
  font-family: "Manrope", sans-serif;
  font-size: 30px;
  margin-bottom: 12px;
}

.legal-end p {
  max-width: 500px;
  margin: 0 auto 25px;

  color: #aaa;
  font-size: 14px;
}

.legal-end a {
  display: inline-block;

  padding: 12px 18px;

  border: 1px solid #444;
  border-radius: 999px;

  font-size: 13px;
  font-weight: 700;

  transition: .2s ease;
}

.legal-end a:hover {
  background: white;
  color: #111;
}


/* =========================================================
   FOOTER
========================================================= */

.legal-footer {
  background: #111;
  color: #fff;
}

.footer-inner {
  min-height: 90px;

  display: flex;
  align-items: center;
  justify-content: space-between;

  gap: 30px;
}

.footer-inner > span {
  color: #777;
  font-size: 12px;
}

.footer-inner div {
  display: flex;
  gap: 25px;
}

.footer-inner a {
  font-size: 12px;
  font-weight: 700;
  color: #aaa;

  transition: .2s ease;
}

.footer-inner a:hover {
  color: white;
}


/* =========================================================
   RESPONSIVE
========================================================= */

@media (max-width: 900px) {

  .legal-layout {
    grid-template-columns: 1fr;
    gap: 45px;
  }

  .legal-sidebar {
    position: static;

    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 0 25px;
  }

  .sidebar-title {
    grid-column: 1 / -1;
  }

  .sidebar-contact {
    grid-column: 1 / -1;
  }

  .legal-content {
    max-width: none;
  }

}


@media (max-width: 650px) {

  .legal-container {
    width: min(100% - 28px, 1180px);
  }

  .legal-header-inner {
    min-height: 70px;
  }

  .legal-logo img {
    width: 105px;
  }

  .back-link {
    font-size: 12px;
  }

  .legal-page {
    padding: 55px 0 75px;
  }

  .legal-hero {
    padding-bottom: 45px;
  }

  .legal-hero h1 {
    font-size: 48px;
  }

  .legal-hero > p {
    font-size: 15px;
  }

  .legal-layout {
    padding-top: 45px;
  }

  .legal-sidebar {
    display: block;
  }

  .legal-sidebar > a {
    padding: 9px 0;
  }

  .legal-section {
    grid-template-columns: 1fr;
    gap: 8px;

    padding-bottom: 60px;
    margin-bottom: 60px;
  }

  .section-number {
    padding-top: 0;
  }

  .section-content h2 {
    font-size: 31px;
    margin-bottom: 30px;
  }

  .section-content h3 {
    font-size: 19px;
    margin-top: 35px;
  }

  .section-content p {
    font-size: 14px;
  }

  .data-list {
    grid-template-columns: 1fr;
  }

  .data-list span:nth-child(odd) {
    border-right: none;
  }

  .responsible-card,
  .provider-card {
    padding: 23px;
  }

  .legal-end {
    padding: 35px 22px;
  }

  .legal-end h2 {
    font-size: 25px;
  }

  .footer-inner {
    padding: 25px 0;

    flex-direction: column;
    align-items: flex-start;
  }

  .footer-inner div {
    flex-wrap: wrap;
    gap: 15px;
  }

}