/* Break out of the Astra/Elementor content container and separate both sections. */
.xap-portal__intro {
  margin-left: calc(50% - 50vw);
  margin-right: calc(50% - 50vw);
  width: 100vw;
}

.xap-portal__grid {
  background: #F7F7F8;
  box-sizing: content-box;
  margin-top: 0;
  padding: 72px max(24px, calc((100vw - 1280px) / 2));
}


@media (min-width: 901px) {
  .xap-portal {
    position: relative;
    display: block;
    width: 100vw;
    margin-left: calc(50% - 50vw);
    padding: 0;
  }

  .xap-portal__intro {
    position: absolute;
    z-index: 20;

    top: 0;
    left: 45px;

    width: 520px;
    min-height: 0;

    margin: 0;
    padding: 0 20px;

    background: transparent;
  }
.xap-portal__intro span {
    font-size: .8rem;
    letter-spacing: .18em;
    color: #C52A25;
  }

  .xap-portal__intro h1 {
    font-size: 2.15rem;
    line-height: 1;
    margin: 12px 0 15px;
    max-width: 500px;
    color: #111111;
  }

  .xap-portal__intro p {
    font-size: .95rem;
    line-height: 1.4;
    max-width: 500px;
    margin: 0;
    color: #444444;
  }

  .xap-portal__grid {
    width: 100vw;
    max-width: none;
    margin: 0;
    padding: 0;
    height: 950px;
    transform: translate(70px, -30px);
  }

}
@media (max-width: 900px) {
  .xap-portal__intro {
    min-height: 0;
    height: auto;
    padding: 20px 30px 15px;
	 background: #F7F7F8 !important;
  }
	.xap-portal__intro {
  padding-bottom: 5px;
}

.xap-portal__grid {
  margin-top: 0;
  padding-top: 10px;
  background: #F7F7F8;
}
 .xap-portal__intro span {
    color: #C52A25;
  }
  .xap-portal__intro h1 {
    color: #111111;
  }

}
/* =========================================================
   XAP PORTAL - RESPONSIVE DESKTOP / LAPTOP
   Conserve le rendu original en Full HD
   et réduit progressivement la composition
   ========================================================= */

@media (min-width: 1300px) {

  /* Zone générale du diagramme */
  .xap-portal__grid {
    height: clamp(700px, 49.48vw, 950px);

    transform: translate(
      clamp(48px, 3.65vw, 70px),
      clamp(-30px, -1.56vw, -20px)
    );
  }


  /* CARTES */
  .xap-portal__petal {
    box-sizing: border-box;

    width: clamp(160px, 11.72vw, 225px);
    height: clamp(124px, 9.12vw, 175px);

    padding: clamp(12px, 0.94vw, 18px);

    border-radius: clamp(18px, 1.30vw, 25px);
  }


  /* CERCLE CENTRAL */
  .xap-portal__hub {
    width: clamp(175px, 12.24vw, 235px);
    height: clamp(175px, 12.24vw, 235px);
  }


  /* TEXTE INSTITUTIONNEL À GAUCHE */
  .xap-portal__intro {
    left: clamp(30px, 2.34vw, 45px);

    width: clamp(350px, 27vw, 520px);

    padding-left: clamp(12px, 1.04vw, 20px);
    padding-right: clamp(12px, 1.04vw, 20px);
  }

  .xap-portal__intro h1 {
    font-size: clamp(1.65rem, 1.79vw, 2.15rem);
  }

  .xap-portal__intro p {
    font-size: clamp(0.80rem, 0.79vw, 0.95rem);
  }


  /* NUMÉRO DE LA CARTE */
  .xap-portal__number {
    font-size: clamp(1.15rem, 1.33vw, 1.6rem);
  }


  /* TITRE DE LA CARTE */
  .xap-portal__petal strong {
    font-size: clamp(0.82rem, 0.83vw, 1rem);
    margin-top: clamp(5px, 0.42vw, 4px);
    margin-bottom: 0px;
  }


  /* DESCRIPTION */
  .xap-portal__petal small {
    font-size: clamp(0.66rem, 0.63vw, 0.76rem);
    line-height: 1.30;
    max-width: 75%;
    margin: 0px;
  }


  /* BOUTON FLÈCHE */
  .xap-portal__petal em {
    width: clamp(28px, 1.98vw, 38px);
    height: clamp(28px, 1.98vw, 38px);

    right: clamp(8px, 0.63vw, 12px);
    bottom: clamp(8px, 0.63vw, 12px);

    font-size: clamp(0.9rem, 1vw, 1.2rem);
  }


  /* TEXTE DU CERCLE CENTRAL */
  .xap-portal__hub strong {
    font-size: clamp(1.9rem, 2.16vw, 2.6rem);
  }

  .xap-portal__hub small {
    font-size: clamp(1.05rem, 1.25vw, 1.5rem) !important;
  }

  .xap-portal__hub b {
    font-size: clamp(0.72rem, 0.75vw, 0.90rem);
  }

}
/* =========================================================
   XAP PORTAL - PETITS LAPTOPS / TABLETTES HORIZONTALES
   ========================================================= */

@media (min-width: 901px) and (max-width: 1299px) {

  .xap-portal {
    display: block;
  }


  /* L'introduction redevient un élément normal */
  .xap-portal__intro {
    position: relative;

    top: auto;
    left: auto;

    width: auto;
    max-width: none;

    margin: 0;

    padding: 35px 5vw 25px;

    background: #F7F7F8;
  }

  .xap-portal__intro h1 {
    font-size: 2rem;
    max-width: 600px;
  }

  .xap-portal__intro p {
    max-width: 650px;
  }


  /* Passage du cercle à une grille */
  .xap-portal__grid {
    display: grid;

    grid-template-columns: repeat(3, minmax(0, 1fr));

    gap: 18px;

    width: auto;
    height: auto;

    margin: 0;

    padding: 10px 5vw 50px;

    box-sizing: border-box;

    transform: none;
  }


  /* Hub XAP */
  .xap-portal__hub {
    position: relative;

    left: auto;
    top: auto;

    transform: none;

    grid-column: 1 / -1;
    grid-row: auto;

    width: auto;
    height: 150px;

    border-radius: 24px;
  }


  /* Cartes */
  .xap-portal__petal {
    position: relative;

    left: auto !important;
    top: auto !important;

    grid-column: auto !important;
    grid-row: auto !important;

    transform: none;

    width: auto;
    height: auto;

    min-height: 160px;

    padding: 16px;
  }


  .xap-portal__petal:hover,
  .xap-portal__petal:focus-visible {
    transform: translateY(-5px);
  }

}