/* ==========================================================================
   GLOBAL.CSS — Site vitrine sur-mesure
   Mobile-first • CSS3 pur • Design premium doux (corporate / professions libérales)
   ========================================================================== */

/* --------------------------------------------------------------------------
   1. DESIGN SYSTEM — Variables (à personnaliser)
   -------------------------------------------------------------------------- */

:root {
  /* Couleurs principales — remplacer par vos codes hex */
  --c1: #db986f;
  --c1TC: rgba(219, 152, 111, .4);
  --c2: #edcaa5;
  --c2TC: rgba(237, 202, 165, .25);
  --c3: #2b6cb0;
  --gris: #555;
  --grisC: #999;
  --grisTC: rgba(0, 0, 0, 0.04);

  /* Typographie — valeurs à coller depuis Google Fonts (font-family) */
  --poppins: "Poppins", sans-serif; /* medium : 500 | semibold : 600 | bold : 700  */
  --lato: "Lato", sans-serif; /* light : 300 | regular : 400 | bold : 700 | black : 900 */

  /* Line-height paragraphes */
  --LH: 1.75;

  /* Rayon des bords (cohérent thème premium) */
  --radius: 0.5rem;

  /* Espacements cohérents */
  --space-xs: 0.25rem;
  --space-sm: 0.5rem;
  --space-md: 1rem;
  --space-lg: 1.5rem;
  --space-xl: 2rem;
  --space-2xl: 3rem;

  /* Ombres */
  --shadow-card: 0 2px 8px rgba(0, 0, 0, 0.06);
  --shadow-card-hover: 0 4px 16px rgba(0, 0, 0, 0.1);

  /* Transitions */
  --transition-fast: 0.15s ease;
  --transition-normal: 0.25s ease;
}

/* --------------------------------------------------------------------------
   2. RESET & BASE
   -------------------------------------------------------------------------- */

*,
*::before,
*::after {
  box-sizing: border-box;
}

html {
  scroll-behavior: smooth;
}

body {
  margin: 0;
  font-family: var(--lato);
  font-weight: 300;
  font-size: 1rem; /* 16px */
  line-height: var(--LH);
  color: var(--gris);
  background-color: #fff;
}

img {
  max-width: 100%;
  height: auto;
  display: block;
}

/* --------------------------------------------------------------------------
   4. TYPOGRAPHIE
   -------------------------------------------------------------------------- */

h1, h2, h3, h4, h5, h6 {
  margin: 0 0 var(--space-2xl);
  font-family: var(--poppins);
  font-weight: 600;
  line-height: 1.5;
  color: var(--c1);
}

/* h1 et h2 avec classe .h1 : même style */
h1, h2.h1 {
  font-family: var(--poppins);
  /*font-size: clamp(1.75rem, 4vw + 1rem, 2.5rem);*/
  font-size: 1.75rem;
  font-weight: 600;
}

p {
  margin: 0;
  line-height: var(--LH);
}

p strong, main ul li strong, .strong {
  font-weight: 700;
  line-height: var(--LH);
}

p + h2, p + h3, ul + h2, ul + h3 {
  margin-top: var(--space-2xl);
}

/* --------------------------------------------------------------------------
   5. UTILITAIRES
   -------------------------------------------------------------------------- */
section {
  width: 100%;
  position: relative;
}
.center {
  text-align: center;
}

.center:not(p):not(span):not(a):not(button) {
  margin-left: auto;
  margin-right: auto;
}

p a, main ul li a, label a {
  color: var(--c1);
}

p a:hover, main ul li a:hover, p a:focus, main ul li a:focus, label a:hover, label a:focus {
  color: var(--c2);
}

.cta, input[type="submit"] {
  display: flex;
  align-items: center;
  gap: var(--space-xs);
  width: fit-content;
  border-radius: 25px;
  min-height: 50px;
  text-decoration: none;
  outline: 0;
  color: #FFF;
  background: var(--c1);
  padding-left: var(--space-lg);
  padding-right: var(--space-lg);
  transition: var(--transition-fast);
}

.cta > span {
  vertical-align: middle;
}

.cta:hover, .cta:focus {
  background: var(--c2TC);
  color: var(--c1);
}

.cta.center {
  margin: auto;
}

p + .cta, ul + .cta, p + .cta.center, p + ul, ul + p, ul + h2, ul + h3, .articleContent p + ul, ul + .cta.center, .wrapper + .wrapper, .wrapper + p, p + .wrapper, .wrapper + h2, p + .check {
  margin-top: var(--space-xl);
}

.c1BG {
  background-color: var(--c1);
}

.c2BG {
  background-color: var(--c2);
}

.c2TCBG {
  background-color: var(--c2TC);
  border-radius: 50px 0 50px 0;
}

.c2TCBG::before {
  content:'';
  position:absolute;
  bottom:-100px;
  left: 0;
  width:150px;
  height:100px;
  background:var(--c2TC);
  -webkit-mask-image:url(images/mask_mobile.svg);
  mask-image:url(images/mask_mobile.svg);
  -webkit-mask-size:cover;
  mask-size:cover;
  -webkit-mask-repeat:no-repeat;
  mask-repeat:no-repeat;
  z-index:-1;
  pointer-events:none;
}

.c2TCBG::after {
  content:'';
  position:absolute;
  top:-100px;
  right: 0;
  width:150px;
  height:100px;
  background:var(--c2TC);
  -webkit-mask-image:url(images/mask_mobile.svg);
  mask-image:url(images/mask_mobile.svg);
  -webkit-mask-size:cover;
  mask-size:cover;
  -webkit-mask-repeat:no-repeat;
  mask-repeat:no-repeat;
  z-index:-1;
  pointer-events:none;
  transform: rotateZ(180deg);
}

.c2TCBG .cta {
  border: 1px solid transparent;
}

.c2TCBG .cta:hover, .c2TCBG .cta:focus {
  background: transparent;
  border:1px solid var(--c1);
}

.grisTCBG {
  background-color: var(--grisTC);
}

section:not(.c2TCBG):not(#reviews):not(#blog) .content {
  overflow: hidden;
}

.overflowH {
  overflow: hidden;
}

main p strong, main ul li strong {
  font-weight: 700;
}

.seo-only {
  font-style: initial;
  font-weight: 200;
  color: currentColor;
}

/* --------------------------------------------------------------------------
   6. LAYOUT — Container & sections
   -------------------------------------------------------------------------- */

.content {
  width: 100%;
  max-width: 1300px;
  margin-left: auto;
  margin-right: auto;
  padding: var(--space-xl) var(--space-lg);
  position: relative;
}

@media (min-width: 1300px) {
  .content {
    padding: var(--space-2xl) 0;
  }
}

/* --------------------------------------------------------------------------
   7. NAVIGATION
   -------------------------------------------------------------------------- */
#topBar {
  width: 95%;
  max-width: 95%;
  height: 100px;
  background-color: #fff;background:linear-gradient(45deg, var(--c1) 20%, var(--c2));
  border-radius: 0 0 50px 0;
  padding-right: var(--space-xs);
  margin-left: 0;
  margin-right: auto;
  position: fixed;
  left: 0;
  right: 0;
  z-index: 1000;
  box-shadow: var(--shadow-card-hover);
  /*filter: drop-shadow(0px 2px 10px rgba(0, 0, 0, .15));*/
}

#topBar::after{
  content:'';
  position:absolute;
  bottom:-100px;
  left: 0;
  width:150px;
  height:100px;
  background:var(--c1);
  -webkit-mask-image:url(images/mask_mobile.svg);
  mask-image:url(images/mask_mobile.svg);
  -webkit-mask-size:cover;
  mask-size:cover;
  -webkit-mask-repeat:no-repeat;
  mask-repeat:no-repeat;
  z-index:-1;
  pointer-events:none;
}

#topBar .content {
  display: flex;
  justify-content: space-between;
  align-items: center;
  padding: 0;
  padding-left: var(--space-sm);
  width: 100%;
  height: 100%;
  margin-left: 0;
}

.logo {
  display: flex;
  align-items: center;
  justify-content: center;
  background: url("images/logo_header.webp") left no-repeat;
  background-size: 90px 90px;
  text-decoration: none;
  /*border-radius: 0 0 0 50px;*/
}

#topBar .logo {
  width: 240px;
  min-width:240px;
  height:90px;
  flex-direction: column;
  text-decoration: none;
  padding-left: 65px;
  background-position:-7px 0;
}

#topBar .logo span:first-of-type, footer .logo span:first-of-type {
  font-family: var(--poppins);
  font-weight: 600;
  /*color:var(--c1);*/color:#fff;
  margin-top: -2px;
}

footer .logo span:first-of-type {
  color:var(--c1);
}

#topBar .logo span:last-of-type, footer .logo span:last-of-type {
  font-size: .7rem;
  /*color: var(--gris);*/color:#fff;
  letter-spacing: 1px;
}

footer .logo span:last-of-type {
  color: var(--gris);
}

#boutonMenu, #close {
    width: 50px;
    height:50px;
    border-radius: 50%;
    display:flex;
    align-items: center;
    justify-content: center;
    cursor: pointer;
}

#boutonMenu {
    font-size: 1.5rem;color:#FFF;
}

#close {
    position: absolute;
    right: var(--space-sm);
    top:var(--space-sm);
    width: 40px;
    height: 40px;
    border-radius: 50%;
    font-size: 1.5rem;
    display:flex;
    align-items: center;
    justify-content: center;
    transition: var(--transition-normal);
}

#close:hover, #close:focus {
    background: var(--c2);
    color: #FFF;
}

#topBar nav {
  width: 90%;
  max-width: 400px;
  height:100vh;
  position: fixed;
  top:0;
  right: 0;
  background: #FFF;
  border-radius: 0 0 0 150px;
  box-shadow: -10px 0 15px 0 rgba(0, 0, 0, .05);
  display:none;
  overflow-y: auto;
  padding-bottom: var(--space-lg);
}

#topBar nav ul {
  width: 100%;
  flex-direction: column;
  align-items: center;
  gap: var(--space-xs);
  margin: 0;
  margin-top: 60px;
  padding: 0;
  list-style: none;
  display:none;
}

#topBar nav li {
  width: 100%;
  text-align: center;
}

#topBar nav a {
  display: flex;
  align-items: center;
  width: fit-content;
  border-radius: 25px;
  margin: auto;
  height: 50px;
  padding: var(--space-md) var(--space-lg);
  color: var(--c1);
  text-decoration: none;
  transition: color var(--transition-fast), background-color var(--transition-fast);
}

#topBar nav a:hover,
#topBar nav a:focus-visible {
  color: #FFF;
  background-color: var(--c2);
}

#topBar nav a.actif {
    background: var(--c1);
    color: #FFF;
}

#topBar nav ul li ul {
    width: 90%;
    margin: auto;
    margin-top: var(--space-xs);
    border-radius:50px;
    background-color: var(--c2TC);
    padding-top: var(--space-sm);
    padding-bottom: var(--space-sm);
}

/* Desktop : navbar horizontale, logo à gauche, nav à droite */
@media (min-width: 1300px) {
  #topBar {
    flex-direction: row;
    justify-content: space-between;
    align-items: center;
  }

  #topBar .logo {
    background-position: 0 0;
    padding-left: 80px;
  }

  #topBar nav {
    width: auto;
    height: 100%;
    padding: 0;
    position: relative;
    top: auto;
    right: auto;
    border-radius: 0;
    max-width: none;
    display:flex;
    margin-right: var(--space-md);
    background:none;
    box-shadow: none;
    overflow-y: unset;
  }

  #topBar nav ul {
    display: flex;
    flex-direction: row;
    align-items: center;
    justify-content: flex-end;
    gap: var(--space-md);
    margin: 0;
  }

  #topBar nav li {
    width: auto;
    position: relative;
  }

  #topBar nav ul li a {
    color: #FFF;
  }

  #topBar nav ul li ul li a {
    color: var(--c1);
  }

  #topBar nav ul li a:hover, #topBar nav ul li a:focus {
    background: rgba(255, 255, 255, .25);
  }

  #topBar nav ul li a.actif {
    background: #FFF;
    color: var(--c1);
  }

  #topBar nav ul li ul {
    position: absolute;
    left: 0;
    top: 50px;
    background:rgba(255, 255, 255, .9);
    backdrop-filter: blur(3px);
    box-shadow: var(--shadow-card);
    width: 300px;
    height: auto;
    flex-direction:column;
    margin-top: 0;
    border-radius: 30px;
    align-items: flex-start;
    justify-content: center;
    padding-left: var(--space-sm);
    gap: var(--space-xs);
    display: none;
  }

  #topBar nav ul li ul li a:hover, #topBar nav ul li ul li a:focus {
    background: var(--c1);
    color: #FFF;
  }

  #topBar nav ul .subCat:hover ul, #topBar nav ul .subCat:focus ul {
    display: flex;
  }

  #boutonMenu, #close {
    display: none;
  }

}

/* --------------------------------------------------------------------------
   8. HERO
   -------------------------------------------------------------------------- */

.hero {
  width: 100%;
  min-height: 100vh;
  display: flex;
  align-items: center;
  position:relative;
}

.hero::before {
    content: '';
    width: 100%;
    height: 100%;
    background: rgba(0, 0, 0, .45);
    position: absolute;
    z-index: 0;
}

.hero .content {
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  gap: var(--space-lg);
  padding: var(--space-xl) var(--space-xl);
  padding-top: calc(100px + var(--space-md));
  color: #FFF;
}

.hero .content h1, .hero .content p {
    max-width: 600px;
    text-align:center;
    margin:auto;
    color: #FFF;
}

@media (min-width: 1300px) {
    /*.hero {
        min-height:85vh;
    }*/
    .hero .content {
        padding: var(--space-2xl) 0;
        padding-top: calc(100px + var(--space-xl));
    }
}

.hero .cta-group {
  display: flex;
  flex-wrap: wrap;
  gap: var(--space-md);
  align-items: center;
}

.cta-group button, .cta-group a {
    display: flex;
    width: fit-content;
    padding: var(--space-lg);
    align-items: center;
    justify-content: center;
    height: 50px;
    border-radius: 25px;
    outline:0;
    border: 0;
    text-decoration: none;
    transition: var(--transition-normal);
}

button {
    font-family:var(--lato);
    font-size: 1rem;
    font-weight: 300;
    cursor: pointer;
    outline:0;
    border:0;
}

.cta-group button {
    background: var(--c1);
    color: #FFF;
}

.cta-group button:hover, .cta-group button:focus {
    background: #FFF;
    color: var(--c1);
}

.cta-group a {
    background: rgba(255, 255, 255, .35);
    backdrop-filter: blur(2px);
    color: #FFF;
    width: 50px;
    text-shadow: 0 2px 3px rgba(0, 0, 0, .1);
}

.cta-group a:hover, .cta-group a:focus {
    background: var(--c2);
    color: #FFF;
}

.hero.accueil {
    background: url("images/accueil_750.webp") center top no-repeat;
    background-size: cover;
}

.hero.apropos {
  background: url("images/apropos_750.webp") center top no-repeat;
  background-size: cover;
}

.hero.prestas {
  background: url("images/prestas_750.webp") center top no-repeat;
  background-size: cover;
}

.hero.stages {
  background: url("images/stages_750.webp") center top no-repeat;
  background-size: cover;
}

.hero.tarifs {
  background: url("images/tarifs_750.webp") center top no-repeat;
  background-size: cover;
}

.hero.blog {
  background: url("images/blog_750.webp") center top no-repeat;
  background-size: cover;
}

.hero.contact {
  background: url("images/contact_750.webp") center top no-repeat;
  background-size: cover;
}

.hero.apropos::before, .hero.tarifs::before, .hero.contact::before {
  background: rgba(0, 0, 0, .3);
}

.hero.prestas::before {
  background: rgba(0, 0, 0, .4);
}

.hero.stages::before {
  background: rgba(0, 0, 0, .4);
}

@media only screen and (min-width: 640px) {
  .hero.accueil {
      background: url("images/accueil_1200.webp") center no-repeat;
      background-size: cover;
  }

  .hero.apropos {
    background: url("images/apropos_1200.webp") center no-repeat;
    background-size: cover;
  }

  .hero.prestas {
    background: url("images/prestas_1200.webp") center no-repeat;
    background-size: cover;
  }

  .hero.prestas {
    background: url("images/prestas_1200.webp") center no-repeat;
    background-size: cover;
  }

  .hero.stages {
    background: url("images/stages_1200.webp") center no-repeat;
    background-size: cover;
  }

  .hero.tarifs {
    background: url("images/tarifs_1200.webp") center no-repeat;
    background-size: cover;
  }

  .hero.blog {
    background: url("images/blog_1200.webp") center no-repeat;
    background-size: cover;
  }

  .hero.contact {
    background: url("images/contact_1200.webp") center no-repeat;
    background-size: cover;
  }
}

@media only screen and (min-width: 1024px) {
  .hero.accueil {
      background: url("images/accueil_1920.webp") center no-repeat;
      background-size: cover;
  }

  .hero.apropos {
    background: url("images/apropos_1920.webp") center no-repeat;
    background-size: cover;
  }

  .hero.prestas {
    background: url("images/prestas_1920.webp") center no-repeat;
    background-size: cover;
  }

  .hero.stages {
    background: url("images/stages_1920.webp") center no-repeat;
    background-size: cover;
  }

  .hero.tarifs {
    background: url("images/tarifs_1920.webp") center no-repeat;
    background-size: cover;
  }

  .hero.blog {
    background: url("images/blog_1920.webp") center no-repeat;
    background-size: cover;
  }

  .hero.contact {
    background: url("images/contact_1920.webp") center no-repeat;
    background-size: cover;
  }
}

@media (max-width: 500px) {
  .hero .cta-group {
    flex-direction: column;
    width: 100%;
  }

  .hero .cta-group .btn {
    width: 100%;
    max-width: 300px;
  }
}

/* --------------------------------------------------------------------------
   9. BOUTONS / CTA
   -------------------------------------------------------------------------- */

.btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-height: 2.75rem;
  padding: var(--space-sm) var(--space-lg);
  max-width: 300px;
  font-family: var(--rale);
  font-size: 1rem;
  font-weight: 500;
  text-align: center;
  text-decoration: none;
  border-radius: var(--radius);
  border: 2px solid transparent;
  cursor: pointer;
  transition: background-color var(--transition-fast), color var(--transition-fast),
    border-color var(--transition-fast), box-shadow var(--transition-fast);
}

.btn:focus-visible {
  outline: 2px solid var(--c3);
  outline-offset: 2px;
}

/* CTA principal */
.btn--primary {
  background-color: var(--c1);
  color: #fff;
  border-color: var(--c1);
}

.btn--primary:hover,
.btn--primary:focus {
  background-color: var(--c2);
  border-color: var(--c2);
  color: #fff;
}

/* CTA secondaire (contour ou fond léger) */
.btn--secondary {
  background-color: transparent;
  color: var(--c1);
  border-color: var(--c2);
}

.btn--secondary:hover,
.btn--secondary:focus {
  background-color: var(--c2);
  color: #fff;
  border-color: var(--c2);
}

/* --------------------------------------------------------------------------
   10. CARDS & WRAPPER
   -------------------------------------------------------------------------- */

.wrapper {
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
  align-items: flex-start;
  gap: var(--space-xl);
  /*position: relative;*/
}

.card {
  width: 100%;
  max-width: 360px; /* à ajuster selon besoin */
  border-radius: var(--radius);
  overflow: hidden;
  background-color: #fff;
  transition: box-shadow var(--transition-normal);
}

.card:hover,
.card:focus-within {
  box-shadow: var(--shadow-card-hover);
}

.card img {
  width: 100%;
  object-fit: cover;
}

.card .card-body {
  padding: var(--space-lg);
}

/* MINICARDS */
.minicard, .public {
  border: 1px solid var(--c2TC);
  padding: var(--space-lg);
  border-radius: 25px;
  width: 100%;
  max-width: 400px;
  transition: var(--transition-fast);
  background:var(--c2TC)
}

.c2TCBG .minicard, .public {
  background: #FFF;
}

.public {
  max-width: 100%;
}

.minicard:hover, .minicard:focus {
  background: var(--c1TC);
  transform: translateY(-10px);
  box-shadow: 0 10px 25px 0 rgba(0, 0, 0, .07);
}

.minicard .material-icons, .public >  div > .material-icons {
  transition: var(--transition-fast);
}

.minicard:hover .material-icons, .minicard:focus .material-icons {
  background:var(--c1);
  color:#FFF;
}

.c2TCBG .minicard:hover, .c2TCBG .minicard:focus, .public:hover, .public:focus {
  background: #FFF;
  transform: translateY(-10px);
  box-shadow: 0 10px 25px 0 rgba(0, 0, 0, .05);
}

.c2TCBG .minicard .material-icons, .public > div > .material-icons {
  background: var(--c2TC);
}

.c2TCBG .minicard:hover .material-icons, .c2TCBG .minicard:focus .material-icons, .public:hover > div > .material-icons, .public:focus > div > .material-icons {
  color: #FFF;
  background:var(--c1);
}

.minicard .strong {
  color: currentColor;
}

.minicard p > strong:first-of-type {
  color:var(--c1);
}

.minicard .material-icons {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  vertical-align: middle;
  margin-right: var(--space-sm);
  color: var(--c1);
  background: #FFF;
  border-radius: 50%;
  width: 46px;
  height: 46px;
}

.minicard-text {
  display: block;
  margin-top: var(--space-sm);
}

/* --------------------------------------------------------------------------
   11. LISTES (main uniquement — puces remplacées par Material Icon en HTML)
   -------------------------------------------------------------------------- */

main ul {
  margin: 0 0 var(--space-md);
  padding: 0;
  list-style: none;
}

main ul li {
  position: relative;
  padding-left: 0;
  margin-bottom: var(--space-sm);
}

/* Espace pour l’icône Material (à placer en ::before ou dans le HTML) */
main ul li::before {
  content: "";
  display: none; /* la puce sera un Material Icon dans le HTML */
}

/* --------------------------------------------------------------------------
   WRAPPER ILLUSTRATION + ARTICLES/TOOLS
   -------------------------------------------------------------------------- */
/* Wrapper illustration */
.wrapper.illustration img {
  display: block;
  margin: auto;
  border-radius: 50px;
}

@media (min-width: 1300px) {
  .wrapper.illustration {
    align-items: center;
  }
  .wrapper.illustration img {
    width: 100%;
    max-width: 640px;
    height: auto;
    border-radius: 50px;
  }

  .wrapper.illustration .img {
    width: 640px;
    min-width: 640px;
    display: flex;
    justify-content: center;
  }

  .wrapper.illustration .text {
    width: 100%;
    max-width: calc(100% - var(--space-xl) - 640px);
  }
  
  .wrapper.illustration:nth-of-type(even) .text, .wrapper.illustration.reverse .text {
    order: 1;
  }

  .wrapper.illustration:nth-of-type(even) img, .wrapper.illustration.reverse img, .wrapper.illustration:nth-of-type(even) .img, .wrapper.illustration.reverse .img {
    order: 2;
  }
}

.wrapper.illustration .vertical {
  position: relative;
  display:block;
  display: block;
  width: auto;
  height: auto;
  z-index: 10;
  margin-bottom: var(--space-xl);
  margin-top: var(--space-xl);
}

.wrapper.illustration .vertical img {
  width: auto;
  min-height: 300px;
  max-height: 480px;
  position: relative;
  z-index: 10;
  box-shadow: 0 10px 25px 0 rgba(0, 0, 0, .2);
  border: 5px solid rgba(255, 255, 255, .4);
}

.wrapper.illustration .vertical::before, .vertical::before {
  content: '';
  position: absolute;
  top: -35px;
  left: -50px;
  z-index: 1;
  background: var(--c2);
  width: 300px;
  height: 300px;
  border-radius: 50%;
  z-index: 1;
}

.wrapper.illustration .vertical::after, .vertical::after {
  content: '';
  position: absolute;
  bottom: -35px;
  right: -50px;
  z-index: 1;
  background: var(--c1TC);
  width: 200px;
  height: 200px;
  border-radius: 50%;
  z-index: 1;
}

.wrapper.illustration.reverse .vertical::before, .wrapper.illustration:nth-of-type(even) .vertical::before {
  left: auto;
  right: -50px;
}

.wrapper.illustration.reverse .vertical::after, .wrapper.illustration:nth-of-type(even) .vertical::after {
  right: auto;
  left: -50px;
}

@media only screen and (min-width: 1300px) {
  .wrapper.illustration .vertical::before, .vertical::before {
    top: -45px;
    left: -135px;
    width: 400px;
    height: 400px;
  }
  
  .wrapper.illustration .vertical::after, .vertical::after {
    bottom: -35px;
    right: -100px;
    width: 300px;
    height: 300px;
  }

  .wrapper.illustration.reverse .vertical::before, .wrapper.illustration:nth-of-type(even) .vertical::before {
    left: auto;
    right: -135px;
  }
  
  .wrapper.illustration.reverse .vertical::after, .wrapper.illustration:nth-of-type(even) .vertical::after {
    right: auto;
    left: -100px;
  }
}

.wrapper.tools {
  align-items:stretch;
}

.tool, .article {
  width: 100%;
  max-width: 390px;
  border-radius: 25px;
  border: 1px solid var(--c2TC);
  padding-bottom: var(--space-lg);/*background:var(--c2TC);*/
  transition: var(--transition-normal);
  box-shadow: 0 10px 25px 0 rgba(0, 0, 0, .035);
  display:flex;
  flex-direction:column;
  /*justify-content:space-between;*/
}

.thumb {
  width: 100%;
  height: 200px;
  border-radius: 25px 25px 0 0;
  display:block;
  margin-bottom: var(--space-lg);
  overflow: hidden;
}

.thumb img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: center;
  transition: var(--transition-normal);
}

.tool:hover .thumb img, .tool:focus .thumb img, .article:hover .thumb img, .article:focus .thumb img {
  transform: scale(1.1);
}

.tool h3, .tool p, .article h3, .article p {
  padding-left: var(--space-lg);
  padding-right: var(--space-lg);
  margin-bottom: var(--space-lg);
}

.tool h3 {
  width: fit-content;
  margin-bottom: var(--space-md);color:var(--c1);
}

.tool .cta, .article .cta {
  margin-left: auto;
  margin-right: var(--space-lg);
  background: var(--c2TC);
  color: var(--c1);
}

.tool .cta:hover, .article .cta:hover, .tool .cta:focus, .article .cta:focus {
  background: var(--c1);
  color: #FFF;
}

.tool:hover, .tool:focus, .article:hover, .article:focus {
  /*border-color: var(--c2);*/
  box-shadow: 0 10px 25px 0 rgba(0, 0, 0, .1);
}

/* --------------------------------------------------------------------------
   SEANCES — Séances de yoga et méditation
   -------------------------------------------------------------------------- */
.wrapper.seances, .wrapper.stages {
  justify-content: space-between;
  align-items: stretch;
  gap: var(--space-2xl);
}

.col {
  width: 100%;
  display: flex;
  gap: var(--space-2xl);
  flex-wrap:wrap;
}

@media only screen and (min-width: 1300px) {
  .col {
    max-width: calc((1300px - var(--space-2xl)) / 2);
  }
}

.seance, .stage {
  width: 100%;
  border: 1px solid var(--c2TC);
  border-radius: 25px;
  padding: var(--space-lg);
}

.seance:hover, .seance:focus, .stage:hover, .stage:focus {
  border-color: var(--c2);
}

.col:nth-of-type(2) .seance:nth-child(1) {
  background: var(--c2TC);
}

.seance ul {
  display: flex;
  gap: var(--space-lg);
  flex-wrap: wrap;
  position: relative;
}

.seance ul::before {
  content: '';
  width:0;
  height:100%;
  border-left: 1px solid #faf2e8;
  display: block;
  top: 0;
  position: absolute;
  left: 23px;
}

.col:nth-of-type(2) .seance:nth-child(1) ul::before {
  border-color: #FFF;
}

.seance ul li {
  width: 100%;
  display:flex;
  gap: var(--space-lg);
  align-items:flex-start;
  justify-content:space-between;
}

.seance ul li .material-icons {
  width: 46px;
  height: 46px;
  display: flex;
  align-items: center;
  justify-content: center;
  background: #faf2e8;
  border-radius: 50%;
  color: var(--c1);
}

.col:nth-of-type(2) .seance:nth-child(1) ul li .material-icons {
  background: #FFF;
}

.seance ul li p {
  width: calc(100% - 50px - var(--space-lg));
}

.step {
  color: var(--c1);
  display:block;
  font-weight:400;
  font-size: .85rem;
}

/* --------------------------------------------------------------------------
   Publics pour les prestations/séances
   -------------------------------------------------------------------------- */
.anchor {
  position: absolute;
  left: 0;
  top: calc((100px + var(--space-lg)) * -1);
  width: 0;
  height: calc(100px + var(--space-lg));
}

.anchor#deroule {
  height: 100px;
  top: -100px;
}
.wrapper.publics {
  gap: var(--space-2xl);
}

.public {
  display: flex;
  gap: var(--space-lg);
  flex-direction: column;
  position: relative;
}

.public > img {
  width: 200px;
  height:200px;
  border-radius: 50%;
  object-fit: cover;
  object-position: center;
  /*position: absolute;
  top: -100px;
  left:50%;
  margin-left: -100px;*/
  margin-left: auto;
  margin-right:  auto;
  border: 5px solid #FFF;
  box-shadow:  0 5px 15px 0 rgba(0, 0,  0, .2);
  transition: var(--transition-fast);
}

.public:hover, .public:focus {
  transform:none;
}

.public:hover > img, .public:focus > img {
  border-color: var(--c1);
}

@media only screen and (min-width: 1300px) {
  .public {
    flex-direction: row;
    align-items: flex-start;
    justify-content: space-between;
  }

  .public img {
    /*top: 50%;
    left: 0;
    margin-top: -100px;*/
    margin-top: auto;
    margin-bottom: auto;
    margin-left: 0;
    margin-right:  0;
  }
}

.public > div {
  display: flex;
  gap: var(--space-sm);
  flex-direction: column;
}

.public > div > .material-icons {
  width: 46px;
  height: 46px;
  min-width:46px;
  display: flex;
  align-items: center;
  justify-content: center;
  color: var(--c1);
  background: var(--c2TC);
  border-radius: 50%;
}

.public h3, .seance h3, .stage h3 {
  margin-bottom: var(--space-xl);
}

.public ul {
  margin-top: var(--space-lg);
}

.check li::before {
  content: 'done';
  font-family: 'Material Icons';
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 20px;
  height: 20px;
  font-size: 12px;
  border-radius: 50%;
  background: var(--c2TC);
  color: var(--c1);
  vertical-align: middle;
  margin-right: var(--space-sm);
}

.public .cta, .stage .cta {
  border: 0;
  margin: auto;
  min-width: fit-content;
}

@media only screen and (min-width: 1300px) {

  .public .cta {
    margin-left: 0;
    margin-right: 0;
    margin-top: auto;
    margin-bottom: auto;
  }

  .public img + div {
    width: 100%;
  }
}

.public .cta:hover, .public .cta:focus {
  background: var(--c2TC);
  color: var(--c1);
  border: 0;
}
/* --------------------------------------------------------------------------
   STAGES/ATELIERS
   -------------------------------------------------------------------------- */
.stage ul li .material-icons {
  vertical-align: middle;
  color: var(--c1);
  margin-right: var(--space-xs);
  margin-top: calc(-1 * var(--space-xs));
}

.stage ul {
  display: flex;
  gap: var(--space-md);
  flex-direction:column;
}

/* --------------------------------------------------------------------------
   TARIFS
   -------------------------------------------------------------------------- */
#tarifs, #stages {
  border-radius: 0 0 50px 0;
}

/*.wrapper.tarifs {
  align-items:stretch;
}*/

.wrapper.tarifs .minicard h3 {
  margin-bottom:var(--space-lg);
  font-size: 1rem;
}

.wrapper.tarifs .minicard p strong {
  color: currentColor;
}

.wrapper.tarifs .minicard:hover .cta .material-icons, .wrapper.tarifs .minicard:focus .cta .material-icons {
  color: currentColor;
}
.minicard .cta {
  margin: auto;
  background: var(--c2TC);
  color: var(--c1);
  border:0;
}

.minicard .cta .material-icons {
  background:transparent;
  width: auto;
  height: auto;
  vertical-align: middle;
  color: var(--c1);
  margin-right: 0;
}

.minicard:hover .cta .material-icons, .minicard:focus .cta .material-icons {
  background: none;
  color: var(--c1);
}

.minicard .cta:hover, .minicard .cta:focus {
  background:var(--c1);
  color:#FFF;
  border:0;
}

/* --------------------------------------------------------------------------
   BLOG / LISTE DES ARTICLES
   -------------------------------------------------------------------------- */
/*.article:hover,  .article:focus {
  border-color:var(--c1);
}*/
.back {
  width: 46px;
  height: 46px;
  border-radius: 50%;
  background:var(--c2TC);
  color: var(--c1);
  display:flex;
  align-items: center;
  justify-content: center;
  text-decoration:none;
  margin-bottom: var(--space-lg);
  transition: var(--transition);
}

.back:hover, .back:focus {
  background: var(--c2);
  color: #FFF;
}

article {
  display: flex;
  align-items: flex-start;
  gap: var(--space-2xl);
  position: relative;
  flex-wrap: wrap;
}

article img {
  border-radius: 50px;
  width: 100%;
  max-width: 640px;
  display:block;
  margin: auto;
  box-shadow: 0 10px 25px 0 rgba(0, 0, 0, .2);
  border: 5px solid rgba(255, 255, 255, .4);
}

.articleContent {
  width: 100%;
  max-width: 640px;
  margin: auto;
}

.link {
  margin-top: var(--space-xl);
  border-top:1px solid var(--c1TC);
  padding-top: var(--space-xl);
}

@media only screen and (min-width: 1300px) {
  article img {
    margin:0;
    position: sticky;
    top: calc(100px + var(--space-xl));
  }

  .articleContent {
    max-width: calc(100% - var(--space-2xl) - 640px);
  }
}
/* --------------------------------------------------------------------------
   MENTIONS LÉGALES
   -------------------------------------------------------------------------- */
.wrapper.mentions .info {
  width: 100%;
}

.wrapper.mentions .info:first-child {
  background: var(--c2TC);
  border-radius: 25px;
  padding: var(--space-lg);
  border: 1px solid var(--c2TC);
}

@media only screen and  (min-width: 1300px) {
  .wrapper.mentions {
    justify-content: space-between;
  }

  .wrapper.mentions .info {
    max-width: calc((100% - var(--space-2xl)) / 2);
  }
}
/* --------------------------------------------------------------------------
   REVIEWS — Carrousel horizontal d'avis
   -------------------------------------------------------------------------- */
/* Container de navigation avec boutons et carrousel */
.reviews-navigation {
    display: flex;
    align-items: center;
    gap: 1rem;
    width: 100%;
    position: relative;
  }

/* Boutons de navigation */
.reviews-navigation .navigation {
  width: 30px;
  height: 30px;
  background: none;
  border: none;
  cursor: pointer;
  color: #FFF;
  border-radius: 50%;
  display: flex;
  align-items: center;
  justify-content: center;
  transition: var(--transition-fast);
  position: absolute;
  top: 50%;
  margin-top: -15px;
  background: var(--c2);
}

.navigation.left {
left: -20px;
display: none;
}

.navigation.right{
right: -20px;
}

.reviews-navigation .navigation:hover,
.reviews-navigation .navigation:focus-visible {
color: #FFF;
background: var(--c1);
}

/* Wrapper reviews — conserve les propriétés de .wrapper et ajoute le comportement carrousel */
.wrapper.reviews {
/* Propriétés héritées de .wrapper conservées */
display: flex;
justify-content: flex-start; /* modifié depuis center pour le carrousel */
align-items: flex-start;
gap: var(--space-2xl); /* conserve le gap de .wrapper */
/* Propriétés spécifiques au carrousel */
overflow-x: auto;
overflow-y: hidden;
flex-wrap: nowrap; /* force une seule ligne */
scroll-snap-type: x mandatory;
-webkit-overflow-scrolling: touch;
scroll-behavior: smooth;
width: 100%;
flex: 1;
}

/* Cartes d'avis — conservent le style des .card/.minicard */
.wrapper.reviews .card.review {
flex: 0 0 auto; /* empêche le rétrécissement */
width: 100%;
max-width: 400px;
min-width: 0;
background: #FFF;
border-radius: 25px;
box-shadow: none;
padding: var(--space-lg);
transition: var(--transition-normal);
scroll-snap-align: start; /* alignement pour scroll-snap */
scroll-snap-stop: always; /* force l'arrêt sur chaque carte */
}

.review.card img {
width: 50px;
height: 50px;
border-radius: 50%;
}

.review.card .author {
display: flex;
align-items: center;
gap: var(--space-sm);
}

.review.card .author span {
display: block;
}

.review.card .author .name {
font-weight: 700;
font-size: 1rem;
color: var(--c1);
}

.review.card .author .date {
color: var(--grisC);
font-size: 0.9rem;
}

.review.card .stars {
color: var(--c2);
margin-bottom: var(--space-sm);
margin-top: var(--space-xs);
}

.wrapper.reviews .card.review > p {
    color: currentColor;
}

/* Mobile : scrollbar horizontale visible et personnalisée */
@media only screen and (max-width: 1300px) {
    .wrapper.reviews {
        scrollbar-width: thin;
        scrollbar-color: var(--c2) transparent;
    }

    .wrapper.reviews::-webkit-scrollbar {
        height: 6px;
        background: none;
        border-radius: 3px;
    }

    .wrapper.reviews::-webkit-scrollbar-thumb {
        background: var(--c1);
        border-radius: 3px;
        
    }

    .wrapper.reviews::-webkit-scrollbar-thumb:hover {
        background: var(--c1);
    }

    .wrapper.reviews .card.review {
        flex: 0 0 100%; /* chaque carte prend toute la largeur visible */
        max-width: 100%;
    }
}
  
/* Desktop : scrollbar masquée, largeur fixe des cartes */
@media only screen and (min-width: 1300px) {
    .wrapper.reviews {
        scrollbar-width: none; /* Masque la scrollbar sur Firefox */
        -ms-overflow-style: none; /* Masque la scrollbar sur IE/Edge */
    }

    .wrapper.reviews::-webkit-scrollbar {
        display: none; /* Masque la scrollbar sur Chrome/Safari */
    }

    .wrapper.reviews .card.review {
        max-width: 400px;
        width: 100%;
    }

    .reviews-navigation .navigation.left {
        visibility: visible;
    }
}

/* Si vous utilisez un <span class="material-icons"> dans chaque li, pas de style supplémentaire nécessaire */

/* --------------------------------------------------------------------------
   12. CONTACT/FORMULAIRES
   -------------------------------------------------------------------------- */
.wrapper.contact {
  align-items: flex-start;
}

.wrapper.contact > div:first-child {
  display: flex;
  gap: var(--space-xl);
  flex-direction: column;
}

.wrapper.photos {
  justify-content: center;
}

.wrapper.photos img {
  width: 200px;
  height: 200px;
  border-radius: 50%;
  border: 5px solid #FFF;
  box-shadow: 0 10px 25px 0 rgba(0, 0, 0, .2);
  object-fit: cover;
  object-position: center;
}

.coordonnees {
  background: var(--c2TC);
  border: 1px solid var(--c2TC);
  border-radius: 25px;
  padding: var(--space-lg);
}

.coordonnees:hover, .coordonnees:focus {
  border-color: var(--c2);
}

.contacts {
  gap: var(--space-lg);
}

.contacts .cta {
  background: #FFF;
  color: var(--c1);
}

.contacts .cta:hover, .contacts .cta:focus {
  background: var(--c1);
  color: #FFF;
}

.formulaire {
  width: 100%;
  max-width: 625px;
  margin: auto;
  margin-top:0;
}

@media only screen and (min-width: 1300px) {
  .wrapper.contact > div:first-child {
    width: calc(100%  - 625px - var(--space-2xl));
  }

  .formulaire {
    min-width: 625px;
  }
}

form {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: var(--space-lg);
  width: 100%;
}

form * {
  outline: 0;
}

form label {
  display: block;
  width: 100%; 
}

form input, form select, form textarea {
  width: 100%;
  height: 50px;
  padding-left: var(--space-lg);
  padding-right: var(--space-lg);
  font-family: var(--lato);
  font-weight: 300;
  font-size: 1rem;
  line-height: 1;
  border: 1px solid var(--c1TC);
  border-radius: 25px;
  background-color: #FFF;
  transition: var(--transition-fast);
}

@media only screen and (min-width: 1300px) {
  form {
    flex-direction:row;
    flex-wrap: wrap;
  }
  form input:not([type="checkbox"]):not([type="submit"]) {
    max-width: calc((100% - var(--space-lg)) / 2);
  }
}

form input:hover, form input:focus, form select:hover, form select:focus, form textarea:hover, form textarea:focus {
  border: 1px solid var(--c1);
}

form textarea {
  height: 160px;
  padding: var(--space-lg);
  resize: vertical;
}

form label {
  cursor: pointer;
}

form input[type="checkbox"], form input[type="radio"] {
  width: auto;
  height: auto;
  display:inline-block;
  cursor:pointer;
}

form input[type="submit"] {
  border: 0;
  cursor: pointer;
  font-family: var(--lato);
  font-size: 1rem;
  font-weight: 300;
  transition: var(--transition-fast);
  background: var(--c1);
  line-height: 1;
  margin: auto;
}


form input[type="submit"]:hover, form input[type="submit"]:focus {
  background: var(--c2);
  color: #FFF;
}

.boutonForm {
  width: 100%;
  color: var(--c1);
  text-align: center;
}

.boutonForm img {
  display: block;
  margin:auto;
  width: 50px;
  height: 50px;
}

/* --------------------------------------------------------------------------
   13. FOOTER
   -------------------------------------------------------------------------- */

footer {
  width: 100%;
  background-color: rgba(0, 0, 0, 0.04);
  border-radius: 50px 0 0 0;
  position: relative;
}

footer::after {
  content:'';
  position:absolute;
  top:-100px;
  right: 0;
  width:150px;
  height:100px;
  background:rgba(0, 0, 0, 0.04);
  -webkit-mask-image:url(images/mask_mobile.svg);
  mask-image:url(images/mask_mobile.svg);
  -webkit-mask-size:cover;
  mask-size:cover;
  -webkit-mask-repeat:no-repeat;
  mask-repeat:no-repeat;
  z-index:-1;
  pointer-events:none;
  transform: rotateZ(180deg);
}

footer .logo {
  width: 100%;
  max-width: 250px;
  margin: auto;
  height: auto;
  background: url("images/logo_footer.webp") top no-repeat;
  padding-top: 80px;
  flex-direction: column;
}

footer .wrapper {
  display: flex;
  flex-wrap: wrap;
  justify-content: space-around;
  align-items: flex-start;
  gap: var(--space-xl);
  max-width: 1300px;
  margin-left: auto;
  margin-right: auto;
  padding-top: var(--space-2xl);
  margin-top: var(--space-2xl);
  border-top: 1px solid var(--c2TC);
  padding-bottom: var(--space-2xl);
  border-bottom: 1px solid var(--c2TC);
  margin-bottom: var(--space-2xl);
}

footer .wrapper > * {
  width: 100%;
  max-width: 400px;
}

footer a {
  color: var(--gris);
  text-decoration: none;
}

footer a:not(.logo):hover, footer a:not(.logo):focus  {
  color: var(--c1);
  text-decoration: underline;
}

footer h3 {
  margin-bottom: var(--space-xl);
}

footer .wrapper + p > a > span {
  font-weight: 700;
}

@media only screen and (min-width: 1300px) {
  footer .wrapper + p {
    font-size: .85rem;
  }
}

/* --------------------------------------------------------------------------
   RATIO SCREEN
   -------------------------------------------------------------------------- */
@media only screen and (-webkit-min-device-pixel-ratio: 1.5), only screen and (min-device-pixel-ratio: 1.5) {
	header .logo {
		background: url("images/logo_header_2x.webp") left no-repeat;
		background-size: 90px 90px;
	}
	
	footer .logo {
		background: url("images/logo_footer_2x.webp") top no-repeat;
		background-size: 90px 90px;
	}
}

/* --------------------------------------------------------------------------
   FIN GLOBAL.CSS
   -------------------------------------------------------------------------- */
