/* Politique de confidentialité — styles page-owned */

.legal-page {
  width: 100%;
  overflow-x: hidden;
}

.legal-section {
  padding-block: var(--spacing-5);
}

.legal-section--porcelaine {
  background-color: var(--color-porcelaine);
}

.legal-section--calcaire {
  background-color: var(--color-calcaire);
}

.legal-section__inner {
  width: 100%;
  max-width: 960px;
  margin-inline: auto;
  padding-inline: var(--container-gutter);
}

.legal-section__inner--left {
  max-width: 720px;
  margin-inline: 0 auto;
}

.legal-hero {
  padding-block-start: var(--spacing-6);
  padding-block-end: var(--spacing-5);
}

.legal-hero__inner {
  width: 100%;
  max-width: 720px;
  margin-inline: auto;
  padding-inline: var(--container-gutter);
  text-align: center;
}

.legal-hero__date {
  display: block;
  margin-block-end: var(--spacing-3);
}

.legal-hero__title {
  font-size: var(--text-h1);
  line-height: var(--leading-h1);
  margin-block-end: var(--spacing-4);
}

.legal-hero__rule {
  width: 80px;
  margin-inline: auto;
  margin-block-end: var(--spacing-4);
}

.legal-hero__lead {
  max-width: 65ch;
  margin-inline: auto;
  text-align: center;
  margin-block-end: var(--spacing-3);
}

.legal-section__title {
  font-size: var(--text-h2);
  line-height: var(--leading-h2);
  margin-block-end: var(--spacing-4);
}

.legal-subtitle {
  font-size: var(--text-h3);
  line-height: var(--leading-h3);
  color: var(--color-bordeaux);
  margin-block-end: var(--spacing-3);
}

.legal-copy {
  max-width: 70ch;
  margin-block-end: var(--spacing-3);
}

.legal-copy--date {
  font-weight: 500;
  color: var(--color-bordeaux);
}

.legal-contact-card {
  background-color: var(--color-porcelaine);
  border: 1px solid var(--color-laiton);
  border-radius: var(--radius-3);
  padding: var(--spacing-4);
  max-width: 600px;
  box-shadow: var(--shadow-light);
}

.legal-contact-card__text {
  max-width: 60ch;
  margin-block-end: var(--spacing-3);
}

.legal-contact-card__list {
  list-style: none;
  padding-inline-start: 0;
  margin-block-end: 0;
  display: flex;
  flex-direction: column;
  gap: var(--spacing-2);
}

.legal-contact-card__list li {
  line-height: var(--leading-body);
}

.legal-two-col {
  display: grid;
  grid-template-columns: 3fr 2fr;
  gap: var(--spacing-5);
  align-items: start;
}

.legal-two-col__main,
.legal-two-col__aside {
  min-width: 0;
}

.legal-list {
  list-style: none;
  padding-inline-start: 0;
  margin-block-end: 0;
  display: flex;
  flex-direction: column;
  gap: var(--spacing-2);
}

.legal-list--laiton li {
  position: relative;
  padding-inline-start: var(--spacing-4);
  line-height: var(--leading-body);
}

.legal-list--laiton li::before {
  content: "";
  position: absolute;
  left: 0;
  top: 0.6em;
  width: 8px;
  height: 8px;
  border-radius: 50%;
  background-color: var(--color-laiton);
}

.legal-numbered-list {
  list-style: none;
  padding-inline-start: 0;
  margin-block-end: 0;
  counter-reset: legal-counter;
  display: flex;
  flex-direction: column;
  gap: var(--spacing-3);
}

.legal-numbered-list li {
  counter-increment: legal-counter;
  position: relative;
  padding-inline-start: var(--spacing-5);
  line-height: var(--leading-body);
}

.legal-numbered-list li::before {
  content: counter(legal-counter);
  position: absolute;
  left: 0;
  top: 0;
  font-family: var(--font-heading);
  font-size: var(--text-h3);
  font-weight: 300;
  color: var(--color-laiton);
  line-height: 1;
}

.legal-base-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: var(--spacing-4);
  margin-block-start: var(--spacing-4);
}

.legal-base-item {
  min-width: 0;
  background-color: var(--color-porcelaine);
  border: 1px solid var(--color-laiton);
  border-radius: var(--radius-3);
  padding: var(--spacing-3);
}

.legal-base-item .legal-subtitle {
  margin-block-end: var(--spacing-2);
}

.legal-base-item .legal-copy {
  margin-block-end: 0;
}

.legal-duration-list {
  list-style: none;
  padding-inline-start: 0;
  margin-block-end: 0;
  display: flex;
  flex-direction: column;
  gap: var(--spacing-2);
}

.legal-duration-list li {
  display: flex;
  flex-wrap: wrap;
  align-items: baseline;
  gap: var(--spacing-2);
  line-height: var(--leading-body);
}

.legal-duration-list__label {
  font-weight: 500;
  color: var(--color-encre);
}

.legal-rights-list {
  list-style: none;
  padding-inline-start: 0;
  margin-block-end: 0;
  display: flex;
  flex-direction: column;
  gap: var(--spacing-2);
}

.legal-rights-list li {
  position: relative;
  padding-inline-start: var(--spacing-4);
  line-height: var(--leading-body);
}

.legal-rights-list li::before {
  content: "";
  position: absolute;
  left: 0;
  top: 0.6em;
  width: 8px;
  height: 8px;
  border-radius: 50%;
  background-color: var(--color-laiton);
}

.legal-cnil-note {
  background-color: var(--color-porcelaine);
  border: 1px solid var(--color-laiton);
  border-radius: var(--radius-3);
  padding: var(--spacing-4);
}

.legal-contact-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: var(--spacing-5);
  align-items: start;
}

.legal-contact-block {
  min-width: 0;
  background-color: var(--color-porcelaine);
  border: 1px solid var(--color-laiton);
  border-radius: var(--radius-3);
  padding: var(--spacing-4);
}

.legal-contact-block__list {
  list-style: none;
  padding-inline-start: 0;
  margin-block-end: 0;
  display: flex;
  flex-direction: column;
  gap: var(--spacing-2);
}

.legal-contact-block__list li {
  line-height: var(--leading-body);
}

@media (max-width: 900px) {
  .legal-two-col {
    grid-template-columns: 1fr;
    gap: var(--spacing-4);
  }

  .legal-contact-grid {
    grid-template-columns: 1fr;
    gap: var(--spacing-4);
  }

  .legal-base-grid {
    grid-template-columns: 1fr;
  }

  .legal-section__inner--left {
    max-width: 100%;
    margin-inline: auto;
  }

  .legal-contact-card {
    max-width: 100%;
  }
}

@media (max-width: 768px) {
  .legal-section {
    padding-block: var(--spacing-4);
  }

  .legal-hero {
    padding-block-start: var(--spacing-5);
  }

  .legal-hero__inner {
    text-align: left;
  }

  .legal-hero__lead {
    text-align: left;
    margin-inline: 0;
  }

  .legal-hero__rule {
    margin-inline: 0;
  }

  .legal-copy {
    max-width: 100%;
  }
}

@media (max-width: 480px) {
  .legal-hero__title {
    font-size: var(--text-h2);
  }

  .legal-section__title {
    font-size: var(--text-h3);
  }
}
