/* PIXICORE_LEGAL_PAGE_PREMIUM_V1_START */

.pc-legal-page {
  --pc-legal-ink: #102b4b;
  --pc-legal-title: #0b2442;
  --pc-legal-copy: #344f6c;
  --pc-legal-muted: #61778e;
  --pc-legal-blue: #1768bc;
  --pc-legal-teal: #138f82;

  min-height: 100vh;
  overflow-x: clip;

  color: var(--pc-legal-copy);
  background:
    radial-gradient(
      circle at 8% 22%,
      rgba(44, 133, 214, .07),
      transparent 28rem
    ),
    radial-gradient(
      circle at 91% 68%,
      rgba(37, 184, 161, .055),
      transparent 24rem
    ),
    #f5f8fc;
}

/*
 * Hero juridique.
 * Les sélecteurs génériques permettent de conserver le HTML existant.
 */
.pc-legal-page :is(
  .hero,
  .page-hero,
  .legal-hero
) {
  position: relative;

  min-height: auto !important;
  padding:
    clamp(7rem, 10vw, 9rem)
    1rem
    clamp(4rem, 7vw, 5.8rem) !important;

  overflow: hidden;

  color: #f5faff;

  background:
    radial-gradient(
      circle at 18% 18%,
      rgba(45, 146, 255, .25),
      transparent 23rem
    ),
    radial-gradient(
      circle at 82% 74%,
      rgba(39, 211, 184, .17),
      transparent 24rem
    ),
    linear-gradient(
      145deg,
      #061529,
      #0a2541 55%,
      #071c2d
    );
}

.pc-legal-page :is(
  .hero,
  .page-hero,
  .legal-hero
)::before {
  content: "";

  position: absolute;
  inset: 0;

  pointer-events: none;

  background:
    linear-gradient(
      115deg,
      rgba(255, 255, 255, .035),
      transparent 38%,
      rgba(67, 220, 196, .035)
    );
}

.pc-legal-page :is(
  .hero,
  .page-hero,
  .legal-hero
) > * {
  position: relative;
  z-index: 1;
}

.pc-legal-page :is(
  .hero,
  .page-hero,
  .legal-hero
) h1 {
  width: min(100%, 13ch);
  max-width: 13ch;

  margin-inline: auto;

  color: #f7fbff;

  font-size: clamp(2.6rem, 7vw, 4.9rem) !important;
  font-weight: 860;
  line-height: 1.01;
  letter-spacing: -.045em;

  text-align: center;
  text-wrap: balance;

  text-shadow:
    0 2px 14px rgba(0, 8, 24, .36),
    0 22px 52px rgba(0, 7, 22, .2);
}

.pc-legal-page :is(
  .hero,
  .page-hero,
  .legal-hero
) p {
  width: min(100%, 44rem);

  margin-inline: auto;

  color: rgba(226, 239, 250, .86);

  font-size: clamp(1rem, 2vw, 1.14rem) !important;
  line-height: 1.62;

  text-align: center;
  text-wrap: pretty;
}

/*
 * Largeur de lecture.
 */
.pc-legal-page main {
  position: relative;

  width: min(calc(100% - 32px), 1180px);

  margin-inline: auto;
  padding:
    clamp(3.5rem, 7vw, 5.8rem)
    0
    clamp(4rem, 8vw, 6.5rem);
}

.pc-legal-page main > :is(
  .container,
  .container-lg,
  .container-xl
) {
  width: 100%;
  max-width: none;
  padding-inline: 0;
}

/*
 * Cartes juridiques.
 */
.pc-legal-page main :is(
  section,
  article,
  .legal-section,
  .legal-card,
  .content-card
) {
  color: var(--pc-legal-copy);

  background:
    linear-gradient(
      145deg,
      rgba(255, 255, 255, .99),
      rgba(244, 248, 253, .975)
    );

  border: 1px solid rgba(70, 128, 183, .15);
  border-radius: 24px;

  box-shadow:
    0 18px 44px rgba(25, 66, 108, .075),
    inset 0 1px 0 rgba(255, 255, 255, .98);
}

.pc-legal-page main > section,
.pc-legal-page main > article,
.pc-legal-page main .legal-section,
.pc-legal-page main .legal-card {
  margin-bottom: 1rem;
  padding: clamp(1.25rem, 3vw, 2rem);
}

/*
 * Certains HTML regroupent plusieurs sections dans une carte Bootstrap.
 */
.pc-legal-page main :is(
  .card,
  .shadow,
  .shadow-sm
) {
  border-color: rgba(70, 128, 183, .15) !important;
  border-radius: 24px !important;

  background:
    linear-gradient(
      145deg,
      rgba(255, 255, 255, .99),
      rgba(244, 248, 253, .975)
    ) !important;

  box-shadow:
    0 18px 44px rgba(25, 66, 108, .075),
    inset 0 1px 0 rgba(255, 255, 255, .98) !important;
}

/*
 * Titres.
 */
.pc-legal-page main h2 {
  margin:
    0
    0
    .95rem;

  color: var(--pc-legal-title);

  font-size: clamp(1.55rem, 3.8vw, 2.15rem);
  font-weight: 840;
  line-height: 1.12;
  letter-spacing: -.03em;

  text-wrap: balance;

  text-shadow:
    0 1px 0 rgba(255, 255, 255, .9),
    0 8px 20px rgba(30, 75, 119, .065);
}

.pc-legal-page main h3 {
  margin:
    1.35rem
    0
    .65rem;

  color: #153b60;

  font-size: clamp(1.12rem, 2.7vw, 1.4rem);
  font-weight: 790;
  line-height: 1.2;

  text-wrap: balance;
}

.pc-legal-page main h4 {
  color: #19466f;
  font-weight: 760;
}

/*
 * Corps de texte.
 */
.pc-legal-page main :is(
  p,
  li,
  address
) {
  color: var(--pc-legal-copy);

  font-size: clamp(.96rem, 1.6vw, 1.03rem);
  font-style: normal;
  font-weight: 505;
  line-height: 1.72;

  overflow-wrap: anywhere;
  text-wrap: pretty;
}

.pc-legal-page main p:last-child {
  margin-bottom: 0;
}

.pc-legal-page main strong,
.pc-legal-page main b {
  color: #173b5d;
  font-weight: 760;
}

.pc-legal-page main small,
.pc-legal-page main .text-muted {
  color: var(--pc-legal-muted) !important;
}

/*
 * Listes.
 */
.pc-legal-page main :is(ul, ol) {
  margin:
    .8rem
    0
    1.2rem;

  padding-left: 1.35rem;
}

.pc-legal-page main li {
  margin-bottom: .48rem;
}

.pc-legal-page main li::marker {
  color: var(--pc-legal-blue);
  font-weight: 800;
}

/*
 * Liens.
 */
.pc-legal-page main a {
  color: #1767b6;
  font-weight: 680;

  text-decoration-color: rgba(23, 103, 182, .35);
  text-decoration-thickness: .08em;
  text-underline-offset: .18em;
}

.pc-legal-page main a:hover,
.pc-legal-page main a:focus-visible {
  color: #0e4f94;
  text-decoration-color: currentColor;
}

/*
 * Métadonnées et informations d’entreprise.
 */
.pc-legal-page :is(
  .legal-meta-grid,
  .legal-meta,
  .legal-information,
  .legal-details
) {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: .85rem;
}

.pc-legal-page :is(
  .legal-meta-grid,
  .legal-meta,
  .legal-information,
  .legal-details
) > * {
  min-width: 0;

  padding: 1rem;

  color: var(--pc-legal-copy);

  background:
    linear-gradient(
      145deg,
      rgba(238, 246, 255, .96),
      rgba(238, 250, 247, .93)
    );

  border: 1px solid rgba(66, 137, 192, .14);
  border-radius: 17px;
}

.pc-legal-page :is(
  .legal-meta-grid,
  .legal-meta,
  .legal-information,
  .legal-details
) strong {
  display: block;

  margin-bottom: .26rem;

  color: #145b9f;

  font-size: .76rem;
  font-weight: 820;
  letter-spacing: .08em;
  text-transform: uppercase;
}

/*
 * Séparateurs.
 */
.pc-legal-page main hr {
  margin-block: 1.6rem;

  border: 0;
  border-top: 1px solid rgba(68, 120, 170, .15);

  opacity: 1;
}

/*
 * Tableaux éventuels.
 */
.pc-legal-page .table-responsive {
  overflow-x: auto;

  border: 1px solid rgba(66, 126, 180, .16);
  border-radius: 18px;
}

.pc-legal-page table {
  width: 100%;
  min-width: 560px;

  margin: 0;

  color: var(--pc-legal-copy);
}

.pc-legal-page table th {
  color: #143c61;
  background: rgba(232, 242, 253, .92);
}

.pc-legal-page table td,
.pc-legal-page table th {
  padding: .85rem;

  border-color: rgba(74, 127, 176, .13);
}

/*
 * Focus clavier.
 */
.pc-legal-page main a:focus-visible {
  outline: 0;

  border-radius: 5px;

  box-shadow:
    0 0 0 3px rgba(30, 126, 202, .16);
}

/*
 * Mobile.
 */
@media (max-width: 767.98px) {
  .pc-legal-page :is(
    .hero,
    .page-hero,
    .legal-hero
  ) {
    min-height: 0 !important;

    padding:
      clamp(5.8rem, 16vw, 6.6rem)
      .85rem
      clamp(3.1rem, 9vw, 4rem) !important;
  }

  .pc-legal-page :is(
    .hero,
    .page-hero,
    .legal-hero
  ) h1 {
    width: min(100%, 10.8ch);
    max-width: 10.8ch;

    font-size: clamp(2.15rem, 10.5vw, 3rem) !important;
    line-height: 1.02;
  }

  .pc-legal-page :is(
    .hero,
    .page-hero,
    .legal-hero
  ) p {
    font-size: 1rem !important;
    line-height: 1.58;
  }

  .pc-legal-page main {
    width: min(calc(100% - 24px), 680px);

    padding:
      3.5rem
      0
      4.5rem;
  }

  .pc-legal-page main > section,
  .pc-legal-page main > article,
  .pc-legal-page main .legal-section,
  .pc-legal-page main .legal-card,
  .pc-legal-page main :is(
    .card,
    .shadow,
    .shadow-sm
  ) {
    margin-bottom: .85rem;
    padding: 1.15rem;

    border-radius: 20px !important;
  }

  .pc-legal-page main h2 {
    font-size: clamp(1.42rem, 7vw, 1.9rem);
    line-height: 1.14;
  }

  .pc-legal-page main h3 {
    font-size: 1.15rem;
  }

  .pc-legal-page main :is(
    p,
    li,
    address
  ) {
    font-size: .96rem;
    line-height: 1.68;
  }

  .pc-legal-page :is(
    .legal-meta-grid,
    .legal-meta,
    .legal-information,
    .legal-details
  ) {
    grid-template-columns: 1fr;
  }
}

@media (max-width: 390px) {
  .pc-legal-page main {
    width: min(calc(100% - 20px), 390px);
  }

  .pc-legal-page :is(
    .hero,
    .page-hero,
    .legal-hero
  ) h1 {
    font-size: 2rem !important;
  }

  .pc-legal-page main > section,
  .pc-legal-page main > article,
  .pc-legal-page main .legal-section,
  .pc-legal-page main .legal-card,
  .pc-legal-page main :is(
    .card,
    .shadow,
    .shadow-sm
  ) {
    padding: 1rem;
    border-radius: 18px !important;
  }
}

/* PIXICORE_LEGAL_PAGE_PREMIUM_V1_END */
