/* ===== VARIABLES CSS ===== */
:root {
  /* Charte couleur YOUSTART */
  --primary-color: #041F25;
  --accent-color: #2ABECB;
  --cta-color: #F8BD25;
  --white-color: #FFFFFF;
  --light-gray: #F5F7FA;
  --gray-color: #6B7280;
  --dark-gray: #374151;

  /* Typography */
  --body-font: 'Inter', -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, sans-serif;
  --h1-font-size: 3.5rem;
  --h2-font-size: 2.5rem;
  --h3-font-size: 1.5rem;
  --normal-font-size: 1rem;
  --small-font-size: 0.875rem;
  --smaller-font-size: 0.75rem;

  /* Font weights */
  --font-light: 300;
  --font-regular: 400;
  --font-medium: 500;
  --font-semi-bold: 600;
  --font-bold: 700;

  /* Spacing */
  --mb-0-25: 0.25rem;
  --mb-0-5: 0.5rem;
  --mb-0-75: 0.75rem;
  --mb-1: 1rem;
  --mb-1-5: 1.5rem;
  --mb-2: 2rem;
  --mb-2-5: 2.5rem;
  --mb-3: 3rem;
  --mb-4: 4rem;

  /* Z-index */
  --z-tooltip: 10;
  --z-fixed: 100;
  --z-modal: 1000;

  /* Animations */
  --transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1);
}

/* ===== BASE STYLES ===== */
* {margin:0;padding:0;box-sizing:border-box;}
html {scroll-behavior:smooth;}
body {
  font-family:var(--body-font);
  font-size:var(--normal-font-size);
  background:#FFFFFF;
  color:var(--primary-color);
  line-height:1.6;
}
h1,h2,h3,h4{color:var(--primary-color);font-weight:var(--font-semi-bold);line-height:1.2;}
ul{list-style:none;}
a{text-decoration:none;color:inherit;}
img{max-width:100%;height:auto;}
button{cursor:pointer;border:none;outline:none;}

/* ===== LAYOUT CLASSES ===== */
.container{max-width:100%;margin-left:2%;margin-right:2%;}
.grid{display:grid;}
.main{overflow:hidden;}
.section{padding:var(--mb-4) 0 var(--mb-2);}
.section__title{font-size:var(--h2-font-size);color:var(--primary-color);text-align:center;margin-bottom:var(--mb-3);font-weight:var(--font-bold);}

/* ===== BUTTONS ===== */
.btn{display:inline-flex;align-items:center;gap:var(--mb-0-5);padding:0.875rem 1.5rem;border-radius:0.5rem;font-weight:var(--font-medium);font-size:var(--normal-font-size);transition:var(--transition);cursor:pointer;border:none;}
.btn-primary{background:var(--cta-color);color:var(--primary-color);}
.btn-primary:hover{background:#e6a61f;transform:translateY(-2px);box-shadow:0 8px 25px rgba(248,189,37,0.3);}
.btn-large{padding:1.125rem 2rem;font-size:1.125rem;font-weight:var(--font-semi-bold);}
/* Secondary button for RDV */
.btn-secondary{background:var(--accent-color);color:#fff;}
.btn-secondary:hover{background:#1aa5b1;transform:translateY(-2px);box-shadow:0 8px 25px rgba(26,165,177,0.3);} 

/* ===== HEADER ===== */
.header{width:100%;position:fixed;top:0;left:0;z-index:var(--z-fixed);background:#FFFFFF;backdrop-filter:blur(10px);border-bottom:1px solid rgba(42,190,203,0.1);transition:var(--transition);} 
.nav{height:4.5rem;display:flex;justify-content:space-between;align-items:center;}
.nav__brand{display:flex;align-items:center;}
.nav__logo{font-size:1.5rem;font-weight:var(--font-bold);color:var(--accent-color);}
.nav__menu{display:flex;column-gap:2rem;}
.nav__item{position:relative;}
/* Style harmonisé pour tous les liens du menu */
.nav__link{
  color:var(--primary-color);
  font-weight:var(--font-medium);
  padding:0.5rem 0.75rem;
  border-radius:6px;
  position:relative;
  transition:background-color .22s ease, color .22s ease, box-shadow .22s ease;
}
.nav__link:hover,
.nav__link:focus-visible{
  color:var(--accent-color);
  background:rgba(42,190,203,0.10);
  box-shadow:0 0 0 1px rgba(42,190,203,0.9);
  outline:none;
}
.nav__link:focus{outline:none;}
.nav__link:active{outline:none;}
.nav__link.active{
  color:var(--accent-color);
  background:rgba(42,190,203,0.12);
  box-shadow:0 0 0 1px rgba(42,190,203,0.95);
}
/* Supprime l'ancien soulignement */
.nav__link.active::after{content:none;}
.nav__toggle{display:none;color:var(--primary-color);font-size:1.25rem;cursor:pointer;}

/* ===== HERO ===== */
.hero{position:relative;padding:8rem 0 3rem;min-height:55vh;display:flex;align-items:center;background: rgba(253, 233, 179, 0.3);border-radius:24px;overflow:hidden;border:1px solid rgba(4,31,37,0.06);box-shadow:0 6px 20px rgba(0,0,0,0.06);} 
.hero__container{display:grid;grid-template-columns:1fr 1fr;gap:4rem;align-items:center;}
.hero__content{animation:fadeInUp 1s ease-out;}
.hero__title{font-size:var(--h1-font-size);margin-bottom:var(--mb-1);font-weight:var(--font-bold);}
.hero__accent{color:var(--accent-color);}
.hero__subtitle{font-size:1.125rem;margin-bottom:var(--mb-2-5);color:var(--dark-gray);line-height:1.7;}
.hero__cta{margin-bottom:var(--mb-2);}
.hero__visual {
  height: 100%;
  display: flex;
  align-items: stretch;
}
.hero__card {
  height: 100%;
  display: flex;
  align-items: stretch;
}
.hero__image-frame {
  height: 100%;
  min-height: 0;
  width: 100%;
  display: flex;
  align-items: stretch;
  background: #fff; /* fond blanc */
  border-radius: 1.5rem;
  overflow: hidden;
  padding: 0; /* supprime tout espace interne */
}
.hero__image-frame img {
  object-fit: cover;
  width: 100%;
  height: 100%;
  border-radius: 1.5rem;
  display: block;
}
@media (min-width: 1024px) {
  .hero__card{width:400px;}
  .hero__image-frame{width:400px;}
}
@media (max-width: 900px) {
  .hero__image-frame {
    min-height: 200px;
  }
}
.hero__image-placeholder{width:450px;height:350px;background:var(--accent-color);border-radius:1rem;display:flex;flex-direction:column;justify-content:center;align-items:center;text-align:center;padding:2rem;box-shadow:0 20px 40px rgba(42,190,203,0.2);}
.hero__image-placeholder i{font-size:4rem;color:var(--white-color);margin-bottom:var(--mb-1);}
.hero__image-placeholder p{font-weight:var(--font-medium);font-size:1.125rem;}
/* (replaced by hero__bg + hero__figure layering) */

.hero__image-sticker.fadeInUp {
    animation: fadeInUp 1s ease-out forwards;
    animation-delay: 0s; /* pour que ça arrive après le texte */
}
    
/* ===== VALUES ===== */
.values{padding:var(--mb-4) 0;background:#FFFFFF;color:var(--primary-color);border-radius:24px;overflow:hidden;border:1px solid rgba(4,31,37,0.06);box-shadow:0 6px 20px rgba(0,0,0,0.05);} 
.values .section__title{color:var(--primary-color);}
.values__grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:2rem;margin-top:var(--mb-3);}
.value__card{background:#fff;padding:2rem 1.5rem;border-radius:1rem;text-align:center;box-shadow:0 4px 20px rgba(4,31,37,0.1);transition:var(--transition);border-top:4px solid var(--accent-color);}
.value__card:hover{transform:translateY(-8px);box-shadow:0 12px 30px rgba(4,31,37,0.15);}
.value__icon{width:80px;height:80px;background:var(--accent-color);border-radius:50%;display:flex;align-items:center;justify-content:center;margin:0 auto var(--mb-1);} 
.value__icon i{font-size:2rem;color:#fff;}
.value__title{font-size:var(--h3-font-size);margin-bottom:var(--mb-0-75);color:var(--primary-color);font-weight:var(--font-semi-bold);}
.value__description{color:var(--gray-color);font-size:0.95rem;line-height:1.4;text-align:center;overflow-wrap:break-word;word-break:break-word;max-width:100%;}



/* ===== TESTIMONIALS ===== */
.testimonials{padding:var(--mb-4) 0;background:#FDE9B34D;border-radius:24px;overflow:hidden;border:1px solid rgba(4,31,37,0.06);box-shadow:0 6px 20px rgba(0,0,0,0.05);} 
.testimonials__grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(350px,1fr));gap:2rem;margin-top:var(--mb-3);}
.testimonial__card{background:#FFFFFF;padding:2rem;border-radius:1rem;border:1px solid rgba(42,190,203,0.2);transition:var(--transition);} 
.testimonial__card:hover{transform:translateY(-5px);border-color:var(--accent-color);box-shadow:0 15px 30px rgba(42,190,203,0.2);}
.testimonial__rating{display:flex;gap:0.25rem;margin-bottom:var(--mb-1);}
.testimonial__rating i{color:var(--cta-color);font-size:1.25rem;}
.testimonial__text{font-style:italic;margin-bottom:var(--mb-1-5);color:var(--dark-gray);line-height:1.7;font-size:1.125rem;}
.testimonial__author{display:flex;align-items:center;gap:1rem;}
.testimonial__avatar{width:60px;height:60px;background:var(--accent-color);border-radius:50%;display:flex;align-items:center;justify-content:center;}
.testimonial__avatar i{font-size:2rem;color:#fff;}
.testimonial__name{font-weight:var(--font-semi-bold);margin-bottom:var(--mb-0-25);}
.testimonial__role{color:var(--accent-color);font-size:var(--small-font-size);}

/* ===== CATALOGUE (Carrousel) ===== */
.catalog{padding:var(--mb-4) 0;background:#FDE9B34D;color:var(--primary-color);border-radius:24px;overflow:hidden;border:1px solid rgba(4,31,37,0.06);box-shadow:0 6px 20px rgba(0,0,0,0.05);} 
/* ===== CONTACT ===== */
.contact{padding:var(--mb-4) 0;background:transparent;color:var(--primary-color);} 
.contact .section__title{color:var(--primary-color);} 
.contact__box{display:flex;justify-content:center;align-items:flex-start;padding:2rem;background:#FDE9B34D;border-radius:24px;max-width:520px;margin:0 auto;border:1px solid rgba(4,31,37,0.06);box-shadow:0 6px 20px rgba(0,0,0,0.06);} 
.contact__form{width:100%;max-width:420px;margin:0 auto;background:#FFFFFF;border:1px solid rgba(4,31,37,0.08);border-radius:12px;padding:1.5rem;box-shadow:0 6px 18px rgba(0,0,0,0.06);} 
.contact__box--wide{max-width:980px;gap:1.25rem;}
.contact__box--wide{display:flex;align-items:stretch;}
.contact__box--wide .contact__form{max-width:none;width:100%;flex:1 1 0;}
.contact__form--image{display:flex;align-items:stretch;justify-content:center;flex:1 1 0;}
.contact__form--image .value__image-frame{width:100%;height:100%;margin:0;display:block;}
.contact__form--image .value__image-frame img{width:100%;height:100%;display:block;object-fit:cover;}
.contact__grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:1rem;margin-bottom:1rem;} 
.form__group{display:flex;flex-direction:column;gap:0.5rem;} 
.form__label{font-weight:var(--font-medium);color:var(--primary-color);} 
.contact__description{color:var(--dark-gray);margin-bottom:1rem;}
.contact__title{font-size:1.1rem;color:var(--primary-color);margin-bottom:0.5rem;position:relative;display:inline-block;font-weight:var(--font-medium);} 
.contact__title::after{content:'';position:absolute;left:0;bottom:-6px;width:100%;height:3px;background:var(--accent-color);opacity:0.6;border-radius:2px;} 
.form__input{border:1px solid rgba(4,31,37,0.15);border-radius:8px;padding:0.875rem 0.75rem;font-size:1rem;color:var(--primary-color);background:#FFFFFF;transition:none;caret-color:var(--primary-color);cursor:text;} 
.form__input:focus{outline:none;border-color:rgba(4,31,37,0.35);box-shadow:none;} 
.form__error{color:#b91c1c;font-size:0.85rem;height:1rem;}
.form__group.form__privacy{margin-top:0.25rem;}
.privacy__label{display:flex;align-items:center;gap:0.5rem;color:var(--primary-color);}
.privacy__checkbox{width:18px;height:18px;}
.contact__actions{display:flex;justify-content:center;margin-top:0.5rem;} 

@keyframes floatY { 0% { transform: translateY(0); } 50% { transform: translateY(-10px); } 100% { transform: translateY(0); } }

@media screen and (max-width: 480px) {
  .contact__form{padding:1rem;}
}
.catalog .section__title{color:var(--primary-color);}
.catalog__content{max-width:800px;margin:0 auto;text-align:center;}
.catalog__description{font-size:1.125rem;color:var(--gray-color);margin-bottom:var(--mb-2);line-height:1.7;}
.catalog__features{display:flex;justify-content:center;gap:2rem;margin-bottom:var(--mb-3);flex-wrap:wrap;}
.catalog__feature{display:flex;align-items:center;gap:0.5rem;font-weight:var(--font-medium);}
.catalog__feature i{color:var(--accent-color);font-size:1.25rem;}
.catalog__cta{margin-top:var(--mb-2);}
.catalog__more{display:inline-block;margin-left:1rem;color:var(--primary-color);font-weight:var(--font-medium);text-decoration:underline;}
.catalog__more:hover{color:var(--accent-color);} 

/* Swiper container + slide */
.catalog .swiper{position:relative;width:100%;overflow:visible;}
.catalog .swiper-wrapper{display:flex;align-items:stretch;}
.catalog .swiper-slide{flex-shrink:0;display:flex;justify-content:center;align-items:center;width:300px;height:400px;}
.catalog__card{background:#fff;border-radius:12px;box-shadow:0 6px 18px rgba(0,0,0,0.08);padding:1rem;display:flex;flex-direction:column;height:100%;transition:transform .28s ease, box-shadow .28s ease;}
.catalog__card:hover{transform:translateY(-6px);box-shadow:0 12px 30px rgba(0,0,0,0.12);}
.catalog__card img{width:100%;height:170px;object-fit:cover;border-radius:8px;margin-bottom:.75rem;}
.catalog__card h3{font-size:1.1rem;margin-bottom:.4rem;}
.catalog__card p{color:#555;font-size:.95rem;margin-bottom:.8rem;}
.catalog__card .btn{align-self:start;}

/* Link under each catalog card */
.card__more{display:inline-block;margin-top:0.5rem;color:var(--accent-color);font-weight:var(--font-medium);}
.card__more:hover{color:#1aa5b1;}

/* Flèches Swiper (corrigées) */
.catalog .swiper-button-prev,
.catalog .swiper-button-next {
  position:absolute;
  top:50%;
  transform:translateY(-50%);
  z-index:10;
  width:50px;
  height:50px;
  background:rgba(255,255,255,0.95);
  border-radius:50%;
  display:flex;
  align-items:center;
  justify-content:center;
  color:var(--primary-color);
  box-shadow:0 4px 20px rgba(0,0,0,0.15);
  transition:background 0.3s, transform 0.3s;
  cursor:pointer;
}
.catalog .swiper-button-prev{left:15px;}
.catalog .swiper-button-next{right:15px;}
.catalog .swiper-button-prev:hover,
.catalog .swiper-button-next:hover {
  background:var(--accent-color);
  color:var(--white-color);
  transform:translateY(-50%) scale(1.1);
}

/* Pagination */
.swiper-pagination-bullet{opacity:.6;}
.swiper-pagination-bullet-active{opacity:1;}
.swiper-pagination {
  bottom: 60px !important; /* remonte la pagination (valeur + petite = plus haut) */
}
/* ✅ Pagination du carrousel sous le Swiper */
.catalog .swiper-pagination {
  position: relative;
  bottom: auto !important;
  margin-top: 1.5rem;
  text-align: center;
}

.catalog .swiper-pagination-bullet {
  transition: transform 0.3s ease, opacity 0.3s ease;
}

.catalog .swiper-pagination-bullet-active {
  transform: scale(1.25);
  opacity: 1;
}

/* ===== FLIP CARD ===== */
.card{perspective:1000px;width:100%;height:100%;}
.card__inner{position:relative;width:100%;height:100%;transition:transform 0.8s;transform-style:preserve-3d;}
.card:hover .card__inner{transform:rotateY(180deg);}
.card__front,
.card__back{
  position:absolute;
  width:100%;
  height:100%;
  backface-visibility:hidden;
  border-radius:12px;
  display:flex;
  flex-direction:column;
  justify-content:center;
  align-items:center;
  padding:1.5rem;
  box-shadow:0 4px 20px rgba(0,0,0,0.1);
  background:#fff;
}
.card__back{transform:rotateY(180deg);background:#f0f0f0;}
/* (deduplicated below) */

/* ===== FOOTER ===== */
.footer{background:#FDE9B34D;padding:var(--mb-4) 0 var(--mb-2);border-radius:32px;overflow:hidden;border:1px solid rgba(4,31,37,0.08);box-shadow:0 8px 24px rgba(0,0,0,0.08);} 
.footer__content{display:grid;grid-template-columns:repeat(auto-fit,minmax(250px,1fr));gap:2rem;margin-bottom:var(--mb-3);} 
.footer__title{font-size:var(--h3-font-size);color:var(--accent-color);margin-bottom:var(--mb-1);font-weight:var(--font-bold);}
.footer__subtitle{font-size:1.125rem;margin-bottom:var(--mb-1);color:var(--primary-color);font-weight:var(--font-semi-bold);} 
.footer__description{color:var(--dark-gray);margin-bottom:var(--mb-1-5);line-height:1.6;}
.footer__social{display:flex;gap:1rem;}
.footer__social-link{width:40px;height:40px;background:var(--accent-color);border-radius:50%;display:flex;align-items:center;justify-content:center;color:#fff;transition:var(--transition);} 
.footer__social-link:hover{transform:translateY(-3px);box-shadow:0 8px 20px rgba(42,190,203,0.3);}
.footer__links{display:flex;flex-direction:column;gap:0.5rem;}
.footer__link{color:var(--dark-gray);transition:var(--transition);font-size:var(--small-font-size);} 
.footer__link:hover{color:var(--accent-color);padding-left:0.5rem;}
.footer__bottom{padding-top:var(--mb-2);border-top:1px solid rgba(42,190,203,0.2);text-align:center;}
.footer__copyright{color:var(--gray-color);font-size:var(--small-font-size);} 

/* ===== RESPONSIVE ===== */
@media(max-width:1024px){
  .catalog .swiper-slide{width:320px;height:450px;}
}
@media(max-width:768px){
  .catalog .swiper-slide{width:250px;height:350px;}
}
@media(max-width:480px){
  .catalog .swiper-slide{width:220px;height:350px;}
}

/* ===== ANIMATIONS ===== */
@keyframes fadeInUp {
  from {
    opacity: 0;
    transform: translateY(30px);
  }
  to {
    opacity: 1;
    transform: translateY(0);
  }
}

/* Animations de slide-in pour la section Contact */
.slide-in-left {
  opacity: 0;
  transform: translateX(-60px);
  transition: opacity 0.8s cubic-bezier(0.4,0,0.2,1), transform 0.8s cubic-bezier(0.4,0,0.2,1);
}
.slide-in-right {
  opacity: 0;
  transform: translateX(60px);
  transition: opacity 0.8s cubic-bezier(0.4,0,0.2,1), transform 0.8s cubic-bezier(0.4,0,0.2,1);
}
.slide-in-visible {
  opacity: 1 !important;
  transform: translateX(0) !important;
}

@media (max-width: 900px) {
  .contact__box.contact__box--wide {
    flex-direction: column !important;
    align-items: stretch;
  }
  .slide-in-left,
  .slide-in-right {
    transform: translateY(40px) !important;
    transition: opacity 0.8s, transform 0.8s;
  }
  .slide-in-visible {
    transform: translateY(0) !important;
  }
}

/* ===== RESPONSIVE DESIGN POUR CATALOGUE ===== */
@media screen and (max-width: 1024px) {
  .container {
    margin-left: var(--mb-1);
    margin-right: var(--mb-1);
  }
  
  :root {
    --h1-font-size: 2.75rem;
    --h2-font-size: 2rem;
  }

  /* Catalogue */
  .catalog .swiper-slide {
    width: 320px;   /* largeur agrandie */
    height: 450px;  /* hauteur agrandie */
  }

  .catalog__card img {
    height: 220px;  /* hauteur image adaptée */
  }
}

@media screen and (max-width: 768px) {
  :root {
    --h1-font-size: 2.25rem;
    --h2-font-size: 1.75rem;
  }

  .nav__menu {
    position: fixed;
    left: -100%;
    top: 4.5rem;
    flex-direction: column;
    background-color: #fff !important;
    color-scheme: only light;
    width: 100%;
    border-radius: 0 0 1rem 1rem;
    box-shadow: 0 10px 30px rgba(0, 0, 0, 0.1);
    padding: 2rem 1.5rem;
    transition: var(--transition);
    row-gap: 1.5rem;
  }
  
  .nav__menu.show-menu {
    left: 0;
  }
  
  .nav__toggle {
    display: block;
  }
  
  .nav__cta {
    display: none;
  }
  
  .hero {
    padding: 6rem 0 2rem;
  }
  
  .hero__container {
    grid-template-columns: 1fr;
    gap: 2rem;
  }
  
  .hero__visual {
    order: -1;
  }
  
  .hero__image-placeholder {
    width: 100%;
    height: 200px;
    max-width: 300px;
  }

  .values__grid,
  .testimonials__grid {
    grid-template-columns: 1fr;
  }
  
  .catalog__features {
    flex-direction: column;
    align-items: center;
    gap: 1rem;
  }

  .footer__content {
    grid-template-columns: 1fr;
    text-align: center;
  }

  /* Catalogue responsive */
  .catalog .swiper-slide {
    width: 280px;
    height: 400px;
  }

  .catalog__card img {
    height: 200px;
  }
}

@media screen and (max-width: 480px) {
  .container {
    margin-left: var(--mb-0-75);
    margin-right: var(--mb-0-75);
  }
  
  :root {
    --h1-font-size: 2rem;
    --h2-font-size: 1.5rem;
  }
  
  .btn {
    padding: 0.75rem 1.25rem;
    font-size: 0.875rem;
  }
  
  .btn-large {
    padding: 1rem 1.5rem;
    font-size: 1rem;
  }
  
  .hero {
    padding: 5rem 0 2rem;
  }
  
  .value__card,
  .testimonial__card {
    padding: 1.5rem 1rem;
  }
  
  .testimonials__grid {
    grid-template-columns: 1fr;
  }
  
  .testimonial__card {
    margin: 0 0.5rem;
  }

  /* Catalogue responsive mobile */
  .catalog .swiper-slide {
    width: 220px;
    height: 350px;
  }

  .catalog__card img {
    height: 160px;
  }
}


/* ===== ACCESSIBILITY ===== */
@media (prefers-reduced-motion: reduce) {
  * {
    animation-duration: 0.01ms !important;
    animation-iteration-count: 1 !important;
    transition-duration: 0.01ms !important;
  }
  
  html {
    scroll-behavior: auto;
  }
}

/* Focus styles for better accessibility (exclude nav links to avoid double encadré) */
.btn:focus,
.footer__link:focus,
.footer__social-link:focus {
  outline: 2px solid var(--accent-color);
  outline-offset: 2px;
}

/* High contrast mode support */
@media (prefers-contrast: high) {
  :root {
    --primary-color: #000000;
    --accent-color: #0066CC;
    --white-color: #FFFFFF;
  }
}

/* ===== MICRO-INTERACTIONS ===== */
/* Effet ripple pour les boutons CTA */
.btn {
  position: relative;
  overflow: hidden;
}

.ripple {
  position: absolute;
  border-radius: 50%;
  background-color: rgba(255, 255, 255, 0.3);
  transform: scale(0);
  animation: ripple-animation 0.6s linear;
  pointer-events: none;
}

@keyframes ripple-animation {
  to {
    transform: scale(2);
    opacity: 0;
  }
}

/* Focus styles améliorés pour la navigation clavier */
body.keyboard-navigation .btn:focus,
body.keyboard-navigation .nav__link:focus,
body.keyboard-navigation .footer__link:focus,
body.keyboard-navigation .footer__social-link:focus {
  outline: 3px solid var(--cta-color);
  outline-offset: 3px;
  box-shadow: 0 0 0 6px rgba(248, 189, 37, 0.2);
}

/* Animation de survol améliorée pour les cartes */
.value__card,
.testimonial__card {
  position: relative;
  overflow: hidden;
}

.value__card::before,
.testimonial__card::before {
  content: '';
  position: absolute;
  top: 0;
  left: -100%;
  width: 100%;
  height: 100%;
  background: rgba(42, 190, 203, 0.06);
  transition: left 0.6s ease;
  z-index: 1;
}

.value__card:hover::before,
.testimonial__card:hover::before {
  left: 100%;
}

/* Amélioration de la navigation mobile */
.nav__menu.show-menu {
  animation: slideDown 0.3s ease-out;
}

@keyframes slideDown {
  from {
    opacity: 0;
    transform: translateY(-20px);
  }
  to {
    opacity: 1;
    transform: translateY(0);
  }
}

/* ===== HERO HEIGHT ADJUSTMENT FOR SMALL SCREENS ===== */
@media screen and (max-height: 700px) {
  .hero {
    padding: 6rem 0 2rem;  
    min-height: 50vh;
  }
}

/* (deduplicated: catalog/card/swiper rules already defined above) */


/* Swiper : éviter les problèmes de loop et navigation */
.swiper-slide {
  display: flex;
  flex-shrink: 0;
  align-items: center;
}



/* (removed conflicting patch: keep earlier catalog sizing) */



/* (deduplicated: flip 3D rules already defined above) */

/* (deduplicated icons) */

/* --- Titres --- */
/* (deduplicated titles/text) */

/* --- Responsive --- */
/* (deduplicated responsive for swiper-slide) */

/* Entry animation for cards */
.card__inner { opacity: 0; transform: translateY(30px); }
.card-loaded .card__inner { opacity: 1; transform: translateY(0); transition: transform 0.8s, opacity 0.8s; }

/* (deduplicated face styles; base face/back defined earlier) */
/* Back face: left layout for program details */
.card__back{
  justify-content:flex-start;
  align-items:flex-start;
  text-align:left;
}
.card__back p{font-size:0.85rem; line-height:1.45; color:#444; margin-bottom:0.5rem;}
.card__back .value__title{width:100%; text-align:left; margin:0.5rem 0 0.4rem; color:var(--primary-color); font-size:1rem;} 
.card__back ul{width:100%; text-align:left; list-style:disc; padding-left:1.25rem;}
.card__back li{font-size:0.85rem; line-height:1.45;}

/* CTA below carousel (default) */
.catalog .catalog__cta{display:flex; justify-content:center; margin-top:1.75rem;}

/* Icones et titres */
/* (deduplicated inner text/icon styles) */

/* Encadré bleu autour de l'image */
.value__image-frame { width: 100%; height: 200px; border: 2px solid #2ABECB; border-radius: 12px; margin-bottom: 1rem; overflow: hidden; }

/* ===== HEALTH PROFESSIONALS SECTION ===== */
.health-pros{padding:var(--mb-4) 0;background:#FDE9B34D;border-radius:24px;overflow:hidden;border:1px solid rgba(4,31,37,0.06);box-shadow:0 6px 20px rgba(0,0,0,0.05);} 
.health-pros .section__title{margin-bottom:var(--mb-1-5);} 
.health-pros__subtitle{max-width:900px;margin:0 auto var(--mb-2);text-align:center;color:var(--dark-gray);font-size:1.125rem;line-height:1.75;} 
.health-pros__actions{display:flex;justify-content:center;align-items:center;margin-bottom:var(--mb-0-75);} 
.health-pros__actions .btn i{font-size:1.125rem;}
.health-pros__reassurance{text-align:center;color:var(--gray-color);font-size:0.95rem;}
/* Layout 2 colonnes comme le hero */
.health-pros__grid{display:grid;grid-template-columns:1fr 1fr;gap:3rem;align-items:stretch;}
.health-pros__content{text-align:left;}
.health-pros__content .section__title{text-align:left;line-height:1.2;}
.health-pros__content .health-pros__subtitle{margin-left:0;margin-right:0;text-align:left;}
.health-pros__content .health-pros__actions{justify-content:flex-start;}
.health-pros__content .health-pros__reassurance{text-align:left;}
.health-pros__calendar{display:flex;justify-content:center;}
.health-pros__calendar .contact__box{height:100%;}
.health-pros__calendar .contact__box{width:100%;}
.contact__form--wide{max-width:none;}
.contact__form--wide .calendly-inline-widget{height:100px !important; width:100% }
/* Calendly wrapper */
/* Calendly wrapper (aligné sur contact__form) */
.calendly__wrapper{border:1px solid rgba(4,31,37,0.08);border-radius:12px;overflow:hidden;background:#fff;box-shadow:0 6px 18px rgba(0,0,0,0.06);} 
/* Section Calendly à fond blanc minimaliste */
.calendly-section{padding:var(--mb-4) 0;background:#FFFFFF;color:var(--primary-color);} 
/* Auto width for text box variant inside health-pros */
.contact__box--auto{max-width:100%; padding:1.5rem; background:#FDE9B34D; height:100%;}
.contact__box--auto .contact__form{max-width:none; width:100%; margin:0; min-height:640px; display:flex; flex-direction:column;}
.contact__box--auto .contact__form{max-width:none; width:100%; margin:0;}
@media screen and (max-width:1024px){
  .calendly__wrapper .calendly-inline-widget{height:700px !important;}
}
@media screen and (max-width:768px){
  .calendly__wrapper .calendly-inline-widget{height:640px !important;}
}
@media screen and (max-width:480px){
  .calendly__wrapper .calendly-inline-widget{height:600px !important;}
}

/* ===== MODAL (Advisor Scheduling) ===== */
.modal{position:fixed;inset:0;display:none;align-items:center;justify-content:center;z-index:var(--z-modal);} 
.modal.show{display:flex;} 
.modal__overlay{position:absolute;inset:0;background:rgba(0,0,0,0.4);} 
.modal__content{position:relative;background:#FFFFFF;border-radius:16px;padding:1.75rem;max-width:640px;width:90%;box-shadow:0 20px 60px rgba(0,0,0,0.25);border:1px solid rgba(4,31,37,0.08);} 
.modal__close{position:absolute;top:12px;right:12px;background:transparent;color:var(--dark-gray);font-size:1.25rem;border:none;cursor:pointer;} 
.modal__title{font-size:1.5rem;margin-bottom:0.5rem;color:var(--primary-color);} 
.modal__subtitle{color:var(--dark-gray);margin-bottom:1rem;} 
.modal__grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:1rem;margin-bottom:0.5rem;} 
.modal__actions{display:flex;justify-content:center;margin-top:0.5rem;}

@media screen and (max-width: 480px){
  .modal__content{padding:1.25rem;width:92%;}
}

@media screen and (max-width: 768px){
  .health-pros__grid{grid-template-columns:1fr;gap:1.5rem;}
  .health-pros__content .health-pros__actions{justify-content:center;}
  .health-pros__content .section__title{text-align:center;}
  .health-pros__content .health-pros__subtitle{text-align:center;}
  .health-pros__content .health-pros__reassurance{text-align:center;}
  .contact__form--wide{max-width:100%;}
  .contact__box--auto .contact__form{min-height:auto;}
}

/* ===== PARTNERS MARQUEE ===== */
.partners-marquee {
  width: 100%;
  background: #fff;
  padding: 0.5rem 0 0.75rem 0;
  min-height: 80px;
  border-top: 1px solid #e3e8ee;
  border-bottom: 1px solid #e3e8ee;
}
.partners-marquee__container {
  max-width: 1200px;
  margin: 0 auto;
  padding: 0 1.5rem;
}
.partners-marquee__title {
  font-size: 1rem;
  color: #3a4a5d;
  font-weight: 500;
  margin-bottom: 0.5rem;
  opacity: 0.7;
  letter-spacing: 0.02em;
  text-align: left;
}
.partners-marquee__track {
  overflow: hidden;
  width: 100%;
  position: relative;
  height: 56px;
  display: flex;
  align-items: center;
}
.partners-marquee__logos {
  display: flex;
  align-items: center;
  gap: 5rem;
  width: max-content;
  min-width: 100%;
  animation: partners-marquee-scroll 12s linear infinite;
}
.partners-marquee__logo {
  height: 48px;
  width: auto;
  opacity: 1;
  transition: opacity 0.2s;
}
.partners-marquee__logo:hover {
  opacity: 0.7;
}
@keyframes partners-marquee-scroll {
  0% { transform: translateX(0); }
  100% { transform: translateX(-50%); }
}

/* Responsive: plus de fluidité et occupation totale */
@media (max-width: 900px) {
  .partners-marquee__logo { height: 36px; }
  .partners-marquee__track { height: 40px; }
  .partners-marquee__logos { gap: 2.5rem; }
}
@media (max-width: 600px) {
  .partners-marquee__logo { height: 28px; }
  .partners-marquee__logos { gap: 1.25rem; }
  .partners-marquee__title { font-size: 0.95rem; text-align: center; }
}

/* Forcer le container à occuper toute la largeur de la section */
.partners-marquee .container {
  width: 100%;
  max-width: 100%;
  padding: 0;
}

/* ===== Formulaire de base ===== */
.form__group {
  display: flex;
  flex-direction: column;
  gap: 0.5rem;
  margin-bottom: 1rem;
}

.form__label {
  font-weight: var(--font-medium);
  color: var(--primary-color);
}

.form__input {
  border: 1px solid rgba(4,31,37,0.15);
  border-radius: 8px;
  padding: 0.875rem 0.75rem;
  font-size: 1rem;
  color: var(--primary-color);
  background: #FFFFFF;
  transition: border-color 0.3s;
  caret-color: var(--primary-color);
}

.form__input:focus {
  outline: none;
  border-color: rgba(4,31,37,0.35);
}

.form__error {
  color: #b91c1c;
  font-size: 0.85rem;
  height: 1rem;
}

/* ===== Champs côte à côte ===== */
.form__group-inline {
  display: flex;
  flex-direction: row;
  gap: 1rem;
}

.form__group-inline > div {
  flex: 1; /* Chaque champ prend la même largeur */
}

/* ===== Responsive ===== */
@media (max-width: 480px) {
  .form__group-inline {
    flex-direction: column; /* repasse en colonne sur mobile */
  }
}

