
* {
  box-sizing : border-box
}
html {
  opacity: 1;
  scroll-behavior : smooth;
  scroll-padding-top : 86px;
  display: unset;
}
body {
 opacity: 1;
  margin : 0;
  background : #f7f8f5;
  color : #18231d;
  font-family : "DM Sans", sans-serif;
  line-height : 1.55;
   display: unset;
}


body.modal-open {
  overflow : hidden
}
button {
  font : inherit;
  cursor : pointer
}
a {
  text-decoration : none;
  color : inherit
}
article > div, .form-row{
    font-variation-settings: normal;
}

.no-dot{
	list-style-type: none;
    padding: 5px;
}
.contener-btn-outline {
    display: flex;
    gap: 20px;
    flex-direction: row;
    flex-wrap: wrap;
}

.header {
  height : 76px;
  position : sticky;
  top : 0;
  z-index : 50;
  background : rgba(255, 255, 255, .92);
  backdrop-filter : blur(18px);
  border-bottom : 1px solid #e6ebe5;
  display : flex;
  align-items : center;
 /* padding : 0 max(15px, calc((100% - 1180px)/2));*/
  gap: clamp(12px, 1.7vw, 35px);
  justify-content: center;
}


.material-icons-round,
.material-symbols-rounded {
  opacity: 0;
  transition: opacity .15s ease;
}

html.icons-ready .material-icons-round,
html.icons-ready .material-symbols-rounded {
  opacity: 1;
}

/* Filet de sécurité : si JS ne s'exécute jamais, ne pas les cacher pour toujours */
@media (prefers-reduced-motion: reduce) {
  .material-icons-round,
  .material-symbols-rounded {
    transition: none;
  }
}

.logo {
  display : flex;
  align-items : center;
  gap : 10px;
 /* margin-right : auto;*/
}
.logo-mark {
  width : 43px;
  height : 43px;
  border-radius : 50%;
  background : #eaf3eb;
  overflow : hidden;
}
.logo-mark img {
  width : 100%;
  height : 100%;
  object-fit : scale-down
}
.logo strong {
  display : block;
  font-family : Roboto;
  font-size: clamp(13px, 1.3vw, 20px);
  color :	#145c31 !important;
  font-weight: 400;
}
.logo small {
  display : block;
  font-size: clamp(10px, 0.8vw, 14px);
  color : #6b756d
}


.desktop-nav {
  display : flex;
  gap: clamp(12px, 1.2vw, 25px);
  font-size : clamp(13px, 1.2vw, 15px);
  font-weight : 400;
  color : #536057;
  align-items: center;
  text-align: center;
}
  .desktop-nav a : hover {
  color : #145c31
}

.menu-btn.btn.btn-primary {
    position: absolute;
    display: flex;
    right: 0px;
    bottom: -52px;
    margin: 0 max(15px, calc((100% - 1180px) / 2));
    border-radius: 0px 0px 20px 20px;
}

.header-cta {
  background : #145c31;
  color : #fff;
  padding : 11px 17px;
  border-radius : 9px;
  font-size : 15px;
  font-weight : 700
}
.menu-toggle, .mobile-menu {
  display : none
}
.section {
  max-width : 1180px;
  margin : auto;
  padding : 70px 0px
}
.hero {
  display : grid;
  grid-template-columns : 1.05fr .95fr;
  align-items : center;
  gap : 70px;
  padding-top : 75px;
  padding-bottom: unset;
}
.kicker {
  text-transform : uppercase;
  letter-spacing : .14em;
  font-size : 11px;
  color : #277143;
  font-weight : 400;
  margin : 0 0 15px
}
.titre {
	font-family: 'Ubuntu';
    font-weight: 700;
    font-size: clamp(30px, 10vw, 60px);
    margin: 0 0 25px;
    letter-spacing: -.04em;
    line-height: normal;
}
.titre span {
  color : #145c31
}
.hero-lead {
  font-size : 18px;
  color : #5c685f;
  max-width : 550px
}
.hero-badges {
  display : flex;
  gap : 20px;
  flex-wrap : wrap;
  margin : 27px 0;
  color : #35443a;
  font-size : 14px;
  font-weight : 600;
  flex-direction: column;
}
.hero-badges span {
  display : flex;
  align-items : center;
  gap : 7px
}
.hero-badges i {
  font-size : 19px;
  color : #277143
}
.hero-buttons {
    display: flex;
    gap: 10px;
    flex-wrap: nowrap;
    flex-direction: column;
}
.btn {
  border : 1px solid transparent;
  border-radius : 9px;
  padding: 13px clamp(8px, 1.0vw, 19px);
  display : inline-flex;
  align-items : center;
  justify-content : center;
  gap: clamp(5px, 2.5vw, 15px);
  text-align: left;
  font-size: clamp(12px, 1.3vw, 15px);
  font-weight : 500;
  transition : .2s
}
  .btn : hover {
  transform : translateY(-2px)
}
.btn-primary {
  background : #145c31;
  color : #fff
}
.btn-articles {
    background: #eef3ee;
    color: #536057;
}

.btn-light {
  background : #fff;
  color : #145c31;
  border-color : #cbd8cd
}
.btn-dark {
  background : #4e3525;
  color : #fff
}
.hero-visual {
  position : relative
}
.hero-image {
  height : 590px;
  border-radius : 220px 220px 18px 18px;
  overflow : hidden;
}


.hero-image img, .service-photo img, .location-image img, .program-feature img, .formation-image img {
  width : 100%;
  height : 100%;
  object-fit : cover;
}



.hero-image img{
  filter: drop-shadow(10px 0px 10px rgba(0, 0, 0, 0.5));
}

.floating-card {
  position : absolute;
  bottom : 28px;
  left : -30px;
  max-width : 350px;
  background : #fff;
  border-radius : 13px;
  padding : 16px;
  box-shadow : 0 16px 45px rgba(26, 55, 34, .14);
  display : flex;
  gap : 12px
}
.floating-card>i {
  color : #145c31
}
.floating-card strong, .floating-card span {
  display : block
}
.floating-card strong {
  font-size : 14px
}
.floating-card span {
  font-size : 14px;
  color : #68736b;
  margin-top : 4px
}
.section-intro {
  margin-bottom : 22px
}
.section-intro h2, .trust-copy h2, .program-copy h2, .formation-copy h2 {
  font : 700 clamp(30px, 4vw, 54px)/1.08 "Playfair Display", serif;
  letter-spacing : -.025em;
  margin : 0 0 18px
}
  .section-intro>p : last-child, .split>p {
  color : #68736b;
  max-width : 600px
}
.split {
  max-width : none;
  display : grid;
  align-items : end
}
.problem-grid {
  /*display : grid;*/
  grid-template-columns : repeat(3, 1fr);
  gap : 14px
}


.soft-section {
  background : #eef3ee;
  max-width : none;
  padding-left : max(28px, calc((100% - 1180px)/2));
  padding-right : max(28px, calc((100% - 1180px)/2))
}
.service-grid {
  display : grid;
  grid-template-columns : repeat(3, 1fr);
  gap : 16px
}
.service-card {
  border : 0;
  background : #fff;
  border-radius : 15px;
  padding : 0;
  overflow : hidden;
  text-align : left;
  transition : .25s
}
  .service-card : hover {
  transform : translateY(-5px);
  box-shadow : 0 18px 38px rgba(20, 65, 34, .1)
}
.service-photo {
  height : 235px;
  background : #dbe8dc
}
.service-body {
  padding : 20px;
  display : flex;
  justify-content : space-between;
  gap : 10px;
  min-height : 145px
}
.service-number {
  font-size : 10px;
  color : #679171;
  font-weight : 700
}
.service-body h3 {
  font : 700 21px Roboto;
  margin : 7px 0
}
.service-body p {
  font-size : 14px;
  color : #344b3a;
  margin : 0
}
.round-arrow {
  width : 38px;
  height : 38px;
  border-radius : 50%;
  background : #edf5ee;
  color : #145c31;
  display : grid;
  place-items : center;
  font-size : 19px;
  flex : none
}
  .service-card : nth-child(4) {
  grid-column : 1/2
}
.trust-section {
  display : grid;
  grid-template-columns : 1fr .8fr;
  gap : 40px;
  align-items : center
}
  .trust-copy>p : not(.kicker) {
  color : #68736b;
  max-width : 500px
}
.text-link {
  display : inline-block;
  margin-top : 15px;
  color : #145c31;
  font-weight : 700;
  font-size : 14px
}
.review-card {
  background : #fff;
  border : 1px solid #e1e7e1;
  border-radius : 18px;
  padding : 20px;
}
.review-top {
  text-align : center
}
.review-top strong {
  font : 700 50px Roboto;
  color : #145c31;
  line-height : 1
}
.review-top>span {
  font-weight : 700
}

.google-review {
    grid-column: 1 / -1;
    width: 100%;
    height: fit-content;
	background: #f7f8f5;
}

.stars {
  color : #e1a517;
  font-size : 26px;
  letter-spacing : 4px;
  margin-left: 15px;
}
.review-top small {
  display : inline;
  color : #68736b;
  font-size: 14px;
}
.review-top>span {
    font-weight: 700;
    display: flex;
    flex-direction: row;
    flex-wrap: nowrap;
    justify-content: center;
    align-items: flex-end;
    clear: both;
}

.review-card blockquote {
  font : 600 18px/1.5 "Playfair Display", serif;
  margin : 30px 0 10px
}
.review-card cite {
  font-size : 14px;
  font-style : normal;
  color : #68736b
}
.pricing-grid {
  display : grid;
  grid-template-columns : repeat(3, 1fr);
  gap : 15px
}
.pricing-card {
  border : 1px solid #e1e7e1;
  background : #fff;
  border-radius : 16px;
  padding : 25px;
  text-align : left;
  min-height : 300px;
  display : flex;
  flex-direction : column;
  align-items : flex-start;
  transition : .25s
}
  .pricing-card : hover {
  transform : translateY(-4px);
  box-shadow : 0 15px 35px rgba(25, 55, 32, .08)
}
.pricing-card.featured {
  background : #145c31;
  color : #fff;
  border-color : #145c31
}
.pricing-card.featured .tag, .pricing-card.featured p {
  color : #d7e8da
}
.pricing-card.featured .pricing-icon {
  background : rgba(255, 255, 255, .13);
  color : #fff
}
.pricing-card.premium {
  background : #f0eefb;
  border-color : #ddd8f4
}
.pricing-icon {
  width : 45px;
  height : 45px;
  border-radius : 12px;
  background : #edf5ee;
  color : #145c31;
  display : grid;
  place-items : center
}
.tag {
  font-size : 10px;
  color : #344b3a;
  font-weight : 700;
  text-transform : uppercase;
  letter-spacing : .08em;
  margin-top : 22px
}
.pricing-card h3 {
  font : 700 20px Roboto;
  margin : 8px 0
}
.pricing-card>strong {
  font : 700 26px Roboto
}
.pricing-card>strong small {
  font-size : 14px
}
.pricing-card p {
  font-size : 15px;
  color : #344b3a;
  margin : 8px 0
}
.pricing-top {
    gap: 10px;
    display: flex;
    flex-direction: row;
    flex-wrap: nowrap;
    align-items: center;
}

.card-link {
  margin-top : auto;
  font-size : 15px;
  font-weight : 700;
  color : #145c31
}
.featured .card-link {
  color : #fff
}
.card-link b {
  margin-left : 6px
}
.locations {
	display: grid;
    grid-template-columns: 1fr 1fr 1fr;
    gap: 18px;
    grid-auto-flow: column;
}
.location-card {
	position: relative;
    border: 1px solid #e0e7e0;
    background: #fff;
    border-radius: 17px;
    padding: 9px;
    display: flex;
    text-align: left;
    gap: 20px;
    transition: .25s;
    flex-direction: column;
    justify-content: flex-start;
    align-items: flex-start;
    width: stretch;
    padding-bottom: 60px;
}
  .location-card : hover {
  transform : translateY(-4px);
  box-shadow : 0 15px 35px rgba(25, 55, 32, .08)
}
.location-image {
    height: 180px;
    width: stretch;
    max-width: stretch;
    border-radius: 11px;
    overflow: hidden;
    background: #dbe8dc;
}
  .location-card>div : last-child {
  padding : 28px 12px 20px 0
}
.location-card span {
  font-size : 10px;
  color : #6c796f;
  text-transform : uppercase;
  letter-spacing : .1em;
  font-weight : 400
}
.location-card h3 {
  font : 700 25px Roboto;
  margin : 10px 0
}
.location-card p {
  font-size : 15px;
  color : #68736b
}
.location-card strong {
  font-size : 14px;
  color : #145c31
}

.location-card .btn.btn-primary {
    position: absolute;
    bottom: 10px;
    left: 10px;
}


.programs {
  display : grid;
  grid-template-columns : 1fr 2fr;
  gap : 65px;
  align-items : center;
  
}
.program-feature {
  height : 540px;
  border-radius : 18px;
  overflow : hidden;
}
.program-copy p {
  color : #68736b
}
.program-copy ul, .formation-copy ul {
  padding : 0;
  list-style : none;
  display : grid;
  gap : 11px;
  margin : 25px 0
}
.program-copy li, .formation-copy li {
  font-size : 14px
}
  .program-copy li:before, .formation-copy li:before {
  content : "✓";
  color : #145c31;
  font-weight : 800;
  margin-right : 9px
}
.formation {
  display : grid;
  grid-template-columns : .8fr 1fr;
  gap : 80px;
  align-items : center;
  background : #f0ece6;
  max-width : none;
  padding-left : max(28px, calc((100% - 1180px)/2));
  padding-right : max(28px, calc((100% - 1180px)/2))
}
.formation-image {
  height : 500px;
  border-radius : 18px;
  overflow : hidden;
  background : #d7cfc4
}
.formation-copy {
  max-width : 500px
}
.formation-copy p {
  color : #68736b
}
.cta-section {
  max-width : 1180px;
  margin : 80px auto;
  margin-top: 0px;
  padding : 65px 70px;
  border-radius : 20px;
  background : #145c31;
  color : #fff;
  display : flex;
  justify-content : space-between;
  gap : 40px;
  align-items : center
}
.cta-section .kicker {
  color : #b8d9be
}
.cta-section h2 {
  font : 700 clamp(30px, 4vw, 52px)/1.08 "Playfair Display", serif;
  margin : 0 0 15px
}
  .cta-section p : not(.kicker) {
  color : #d5e7d8
}
.cta-actions {
  display : grid;
  gap : 10px;
  min-width : 220px
}
.btn-outline {
  border-color : rgba(255, 255, 255, .45);
  color : #fff;
  background: #145c31;
}
.or-call {
	display: flex;
	justify-content: center;
	width: 100%;
	gap: 5vw;
	padding-top: 20px;
}
.or-method {
  display: flex;
  align-items: center;
  width: 100%;
  gap: 12px;
  color: #637067;
}
.or-method::before,
.or-method::after {
  content: "";
  flex: 1;
  border-top: 1px dashed #637067;
}
.or-method span {
  white-space: nowrap;
}
#tarifs {
    padding-top: 0px;
}

/* Habillage "carte" appliqué en plus de vos styles .cta-section existants */
.rdv-card {
	color: black;
    background: #EEEFE9;
    border-radius: 20px;
    text-align: left;
    display: flex;
    flex-wrap: wrap;
    align-content: center;
    justify-content: center;
    align-items: flex-start;
    flex-direction: row;
}

.rdv-card-icon {
    width: 28px;
    height: 28px;
    font-size: 28px;
    background-color: #4a7c59;
    margin-bottom: 8px;
	color: #4a7c59;
}

/* Variante 2 lignes du bouton .btn-primary existant */
.rdv-main-btn {
    display: flex;
    align-items: center;
    gap: 14px;
    width: 100%;
    text-align: left;
}

.rdv-main-btn-text {
    display: flex;
    flex-direction: column;
    line-height: 1.25;
}

.rdv-main-btn-text strong {
    font-size: 1rem;
    font-weight: 700;
}

.rdv-main-btn-text small {
    font-size: .8rem;
    opacity: .8;
    font-weight: 400;
}

.rdv-main-btn-arrow {
    flex-shrink: 0;
    opacity: .85;
}

/* Ligne des boutons secondaires (Appeler / WhatsApp) */
.rdv-secondary {
    display: flex;
    gap: 12px;
    margin-top: 12px;
}

.rdv-secondary .btn {
    flex: 1;
}

.pret-rdv {
    font-size: clamp(19px, 3vw, 35px);
    font-family: "Ubuntu", sans-serif;
    font-variation-settings: normal;
    font-weight: 600;
	display: flex;
}

.icon-svg[data-icon="psychiatry"] {
	width: 100%;
}



.info-cards-section{

}
.info-cards{
    display:flex;
    flex-direction:column;
    gap:16px;
    margin:0 auto;
	font-family: 'Roboto';
}

/* Carte : version mobile empilée */
.info-card{
    display:flex;
    align-items:flex-start;
    gap:16px;
    background:#fff;
    border-radius:18px;
    padding:20px;
    text-decoration:none;
    color:inherit;
    position:relative;
    transition:transform .2s ease, box-shadow .2s ease;
	border: 1px solid #e0e7e0;
	cursor: pointer;
}
.info-card:hover{
    transform:translateY(-2px);
}

.info-card-icon{
    flex:0 0 auto;
    width:56px;
    height:56px;
    border-radius:50%;
    background:#eef4ec;
    color:#2f6b3a;
    display:flex;
    align-items:center;
    justify-content:center;
}

.info-card-body{
    display:flex;
    flex-direction:column;
    gap:6px;
    flex:1 1 auto;
}
.info-card-title{
    font-size: clamp(18px, 5vw, 25px);
    font-weight: 700;
    font-family: 'Ubuntu';
    color: #1a1a1a;
}
.info-card-desc{
    color:#5b5b5b;
    font-size: 15px;
    line-height:1.4;
}
.info-card-link{
    color:#2f6b3a;
    font-weight:600;
    font-size: 15px;
    margin-top:4px;
    display:inline-flex;
    align-items:center;
    gap:4px;
}
.info-card .btn-chevron{
    font-size:1.1em;
}

.info-card-arrow{
    position:absolute;
    right:18px;
    top:50%;
    transform:translateY(-50%);
    color:#c7c7c7;
    font-size:1.6rem;
    line-height:1;
}

/* --- Icônes via masque CSS --- */
.icon-svg{
    display:inline-block;
    width:28px;
    height:28px;
    background-color:currentColor;
    -webkit-mask-repeat:no-repeat;
    mask-repeat:no-repeat;
    -webkit-mask-position:center;
    mask-position:center;
    -webkit-mask-size:contain;
    mask-size:contain;
}
.icon-svg[data-icon="self_improvement"]{
    -webkit-mask-image:url("img/icons/self_improvement.svg");
    mask-image:url("img/icons/self_improvement.svg");
	    font-size: 50px;
}
.icon-svg[data-icon="school"]{
    -webkit-mask-image:url("img/icons/school.svg");
    mask-image:url("img/icons/school.svg");
	    font-size: 50px;
}
.icon-svg[data-icon="auto_stories"]{
    -webkit-mask-image:url("img/icons/auto_stories.svg");
    mask-image:url("img/icons/auto_stories.svg");
	    font-size: 50px;
}

/* --- Version PC : les 3 cartes côte à côte --- */
@media (min-width:850px){
    .info-cards{
        flex-direction:row;
        align-items:stretch;
        gap:28px;
    }
    .info-card{
        flex:1 1 0;
        flex-direction:column;
        align-items:flex-start;
        padding:32px 28px;
        border-radius:22px;
    }
    .info-card-icon{
        width:68px;
        height:68px;
        margin-bottom:8px;
    }
    .icon-svg{
        width:34px;
        height:34px;
    }
    .info-card-link{
        margin-top:auto;
        padding-top:16px;
    }
    /* La flèche latérale n'a plus de sens en colonne */
    .info-card-arrow{
        display:none;
    }
}

@media (min-width:1280px){
    .info-card{
        padding:40px 32px;
    }
    .info-card-icon{
        width:76px;
        height:76px;
    }
    .icon-svg{
        width:38px;
        height:38px;
    }
    .info-card-title{
        font-size:1.35rem;
    }
}


.mobile-bar button {
    font-size: 13px;
    padding-left: 4px;
    padding-right: 4px;
    background: #145c31;
    border: 0px solid transparent;
    color: white;
    font-weight: 600;
}

.mobile-bar {
  display : none
}
footer {
  background : #18231d;
  color : #fff;
  padding : 35px max(28px, calc((100% - 1180px)/2));
  display : flex;
  justify-content : space-between;
  gap : 20px;
  font-size : 14px
}
footer strong, footer span {
  font-weight: 500;
  display : block;
}
footer span {
  color : #9eaaa1;
  margin-top : 4px
}
.footer-inner {
    display: grid;
    grid-template-columns: 1fr 1fr 1fr;
    gap: 50px;
    padding: 15px;
}
.footer-zone1 {
    padding-right: 25px;
}
.footer-zone2 {
    padding-left: 25px;
}
.footer-zone3 {
    text-align: end;
    display: flex;
    flex-direction: column;
    justify-content: space-between;
    align-items: flex-end;
}

.social-links { display: flex; gap: 12px; }
.social-icon { width: 27px; height: 27px; transition: opacity .2s; }
.social-links a:hover .social-icon { opacity: .7; }
.contener-btn-outline .social-icon { width: 22px; height: 22px; display: inline-block; vertical-align: middle;}

.modal-layer {
  position : fixed;
  inset : 0;
  z-index : 100;
  display : none;
  align-items : center;
  justify-content : center;
}
.modal-layer.open {
  display : flex
}
.modal-backdrop {
  position : absolute;
  inset : 0;
  background : rgba(9, 25, 14, .62);
  backdrop-filter : blur(7px)
}


.mobile-menu-backdrop {
  position: fixed; 
  inset: 0;
  background: rgba(9, 25, 14, .62);
  backdrop-filter: blur(7px);
  z-index: 45;
  opacity: 0;
  pointer-events: none;
  transition: opacity .25s ease;
}

.mobile-menu-backdrop.open {
  opacity: 1;
  pointer-events: auto;
}



.modal {
  position: relative;
  background: #fff;
  border-radius: 20px;
  padding: 45px;
  max-width: 620px;
  width: 100%;
  max-height: 82vh;
  overflow: hidden;           /* la modale elle-même ne scrolle plus */
  display: flex;
  flex-direction: column;
  box-shadow: 0 30px 90px rgba(0, 0, 0, .25);
}
.modal h2 {
  font : 700 35px/1.1 "Playfair Display", serif;
  margin : 0 0 18px
}
.modal p {
  font-size : 15px;
  color : #637067
}
.modal-close {
  position : absolute;
  right : 0px;
  top : 0px;
  border : 0;
  background : #edf5ee;
  color : #145c31;
  width : 38px;
  height : 38px;
  border-radius : 0% 50%;
  font-size : 27px
}
.modal-image {
	display: block;
	width: 100%;
	height: 150px;
	max-height: 260px;
	object-fit: cover;
	border-radius: 14px;
	margin: 0 0 18px;
}
.modal-image-big {
    display: block;
    width: 100%;
    object-fit: cover;
    border-radius: 14px;
    margin: 0 0 18px;
}

#modal-content {
  overflow-y: auto;
  flex: 1;
  min-height: 0;
}

.modal-close:focus {
    outline: unset;
}

.reveal {
  opacity : 0;
  transform : translateY(20px);
  transition : opacity .7s ease, transform .7s ease
}
.reveal.visible {
  opacity : 1;
  transform : none;
}
  @media(max-width : 1070px) {
  .desktop-nav, .header-cta{display : none
}
.logo{
	margin-right: auto;
}
.logo strong {
	font-size : 20px;
}
.logo small {
	font-size : 15px;
}

.menu-btn.btn.btn-primary {
    position: relative;
    bottom: 0px;
    border-radius: 9px;
}
.menu-toggle {
  display : block;
  border : 0;
  background : none;
  color : #145c31
}
.mobile-menu {
  position : absolute;
  display : none;
  top : 76px;
  left : 12px;
  right : 12px;
  background : #fff;
  border : 1px solid #e1e7e1;
  border-radius : 14px;
  padding : 8px;
  box-shadow : 0 15px 40px rgba(20, 55, 30, .12)
}
.mobile-menu.open {
  display : grid
}
.mobile-menu a, .mobile-menu div  {
  padding : 13px;
  border-radius : 8px;
  font-weight : 500
}
  .mobile-menu a : hover {
  background : #edf5ee
}
}
  
@media(max-width : 850px) {

.hero {
  grid-template-columns : 1fr;
  gap : 45px
}
.hero-image {
  height : 480px
}
.floating-card {
  left : 12px
}
.problem-grid, .service-grid, .pricing-grid {
  grid-template-columns : 1fr 1fr
}
  .service-card : nth-child(4) {
  grid-column : auto
}
.trust-section, .programs, .formation {
  grid-template-columns : 1fr;
  gap : 10px
}
.split {
  grid-template-columns : 1fr;
}
.program-feature {
  height : 430px
}
.formation-image {
  height : 400px;
  order : -1
}
.cta-section {
  margin : 50px 20px;
  padding : 45px 28px;
}
.rdv-card {
	text-align: center;
}
.cta-section {
	gap: 10px;
	margin-top: 10px;
}
.cta-actions {
	display: flex;
	gap: 10px;
	min-width: 220px;
	flex-direction: row;
	flex-wrap: wrap;
	align-content: center;
	align-items: center;
	justify-content: center;
}

	
#contact > div.cta-actions > button {
	width: stretch;
}


  }@media(max-width : 600px) {
  html{scroll-padding-top : 65px
}
.header {
  height : 65px;
  padding : 0 17px
}
.section {
  padding : 30px 18px
}

.hero h4 {
  font-size : 41px
}
.hero-lead {
  font-size : 16px
}
.hero-image {
  height : 390px;
  border-radius : 150px 150px 15px 15px
}
.floating-card {
  left : 5px;
  right : 5px;
  max-width : none
}
.problem-grid, .service-grid, .pricing-grid {
  grid-template-columns : 1fr
}

.service-photo {
  height : 240px
}
.pricing-card {
  min-height : 270px
}
.location-card {
  grid-template-columns : 1fr
}
.location-image {
  height : 220px
}
  .location-card>div : last-child {
  padding : 15px
}
.program-feature, .formation-image {
  height : 330px
}
.cta-section h2 {
  font-size : 32px
}
.mobile-bar {
  position : fixed;
  display : grid;
  grid-template-columns : repeat(4, 1fr);
  bottom : 0;
  left : 0;
  right : 0;
  z-index : 60;
  background : #145c31;
  color : #fff;
  padding : 7px 4px max(7px, env(safe-area-inset-bottom));
  box-shadow : 0 -10px 30px rgba(0, 0,0, .16);
  font-size: 13px;
}
.mobile-bar a {
  text-align : center;
  font-size : 13px;
  font-weight : 600
}
.mobile-bar i {
  display : block;
  font-size : 20px;
  margin-bottom : 2px
}
footer {
  padding-bottom : 80px;
  display : block
}
footer div+div {
  margin-top : 18px
}
.modal {
  padding : 40px 22px 25px
}
.modal h2 {
  font-size : 29px
}
  }@media(prefers-reduced-motion : reduce) {
  html{scroll-behavior : auto
}
.reveal {
  transition : none
}
}
.problem-grid {
  grid-template-columns : repeat(6, minmax(0, 1fr));
  gap : 16px;
  align-items : stretch
}

.service-grid, .pricing-grid {
  grid-template-columns : repeat(3, minmax(0, 1fr));
  gap : 16px
}
  .service-card : nth-child(4) {
  grid-column : auto
}
.grid-intro {
  border-radius : 16px;
  padding : 27px 25px;
  min-height : 300px;
  align-self : stretch;
  display : flex;
  flex-direction : column;
  align-items : flex-start;
  justify-content : center;
  background : transparent;
  color : #314036
}
.care-grid-intro {
  border : 1px solid rgba(20, 92, 49, .18);
  background : linear-gradient(145deg, rgba(255, 255, 255, .6), rgba(225, 238, 226, .72))
}
.pricing-grid-intro {
  border-left : 2px solid #277143;
  padding-left : 27px
}
.grid-intro-icon {
  color : #145c31;
  font-size : 31px;
  margin-bottom : 15px
}
.grid-intro-eyebrow {
  margin : 0 0 9px!important;
  text-transform : uppercase;
  letter-spacing : .11em;
  font-size : 10px!important;
  font-weight : 800!important;
  color : #277143!important
}
.grid-intro h3 {
  font : 700 23px/1.2 Roboto, sans-serif;
  margin : 0 0 10px;
  letter-spacing : -.025em
}
  .grid-intro p : not(.grid-intro-eyebrow) {
  font-size : 14px!important;
  line-height : 1.55;
  margin : 0!important;
  color : #68736b!important
}
.grid-intro-link {
  display : inline-flex;
  gap : 8px;
  align-items : center;
  margin-top : 19px;
  color : #145c31;
  font-size : 15px;
  font-weight : 800
}
  .grid-intro-link : hover {
  text-decoration : underline
}
.service-card {
  display : grid;
  grid-template-columns : 42% 1fr;
  min-height : 142px;
  align-items : stretch
}
.service-card .service-photo {
  height : auto;
  min-height : 142px
}
.service-body {
  min-height : 0;
  padding : 18px 16px;
  align-items : center
}
.service-body h3 {
  font-size : 16px;
  line-height : 1.18;
  margin : 0 0 6px
}
.service-body p {
  font-size : 14px;
  line-height : 1.38
}
.round-arrow {
  width : 26px;
  height : 26px;
  background : transparent;
  color : #145c31;
  font-size : 17px
}
.round-arrow i {
  font-size : 17px
}
  @media (min-width : 851px) {
  .service-grid .grid-intro, .pricing-grid .grid-intro{grid-column : 1
}
  .service-grid .service-card : nth-child(2), .pricing-grid .pricing-card : nth-child(2) {
  grid-column : 2
}
  .service-grid .service-card : nth-child(4), .pricing-grid .pricing-card : nth-child(4) {
  grid-column : 1
}
  .service-grid .service-card : nth-child(6), .pricing-grid .pricing-card : nth-child(6) {
  grid-column : 3
}
  }@media (max-width : 850px) {
  .problem-grid{grid-template-columns : repeat(2, minmax(0, 1fr))
}
.service-grid, .pricing-grid {
  grid-template-columns : repeat(2, minmax(0, 1fr))
}
.grid-intro {
  min-height : 270px
}
.service-card {
  grid-template-columns : 40% 1fr
}
  }@media (max-width : 600px) {
  .problem-grid, .service-grid, .pricing-grid{grid-template-columns : 1fr
}
.service-card {
  min-height : 128px;
  grid-template-columns : 38% 1fr
}
.service-card .service-photo {
  min-height : 128px
}
.service-body {
  padding : 15px 14px
}
.service-body h3 {
  font-size : 15px
}
.grid-intro {
  min-height : 0;
  padding : 24px 21px
}
.pricing-grid-intro {
  border-left : 2px solid #277143
}
.round-arrow {
  width : 24px
}
.service-grid .grid-intro, .pricing-grid .grid-intro {
  order : -1
}
  }@media (prefers-reduced-motion : reduce) {

  }@media (min-width : 851px) {
  .problem-grid{position : relative;
  display : block;
  grid-template-columns : repeat(6, minmax(0, 1fr));
  gap : 0;
  padding : 14px 0 6px
}
  .problem-grid::before {
  content : "";
  position : absolute;
  top : 67px;
  left : 8.33%;
  right : 8.33%;
  height : 1px;
  background : linear-gradient(90deg, transparent, #c7d9c9 8%, #c7d9c9 92%, transparent);
  z-index : 0
}

.service-grid .care-grid-intro {
  min-height : 142px;
  height : 168px;
  padding : 30px 18px;
  justify-content : center
}
.service-grid .care-grid-intro .grid-intro-icon {
  font-size : 23px;
  margin : 0 0 5px
}
.service-grid .care-grid-intro .grid-intro-eyebrow {
  margin : 0 0 4px!important;
  font-size : 9px!important
}
.service-grid .care-grid-intro h3 {
  font-size : 16px;
  line-height : 1.22;
  margin : 0 0 5px
}
  .service-grid .care-grid-intro p : not(.grid-intro-eyebrow) {
  font-size : 10px!important;
  line-height : 1.35
}
  }@media (max-width : 850px) {
  .problem-grid{gap : 10px
}

.service-grid .care-grid-intro {
  min-height : 128px;
  padding : 17px 18px
}
.service-grid .care-grid-intro .grid-intro-icon {
  font-size : 22px;
  margin : 0 0 5px
}
.service-grid .care-grid-intro .grid-intro-eyebrow {
  margin : 0 0 3px!important;
  font-size : 11px!important
}
.service-grid .care-grid-intro h3 {
  font-size : 16px;
  margin : 0 0 4px
}
  .service-grid .care-grid-intro p : not(.grid-intro-eyebrow) {
  font-size : 10px!important;
  line-height : 1.35
}
}body, button, input, textarea, select {
  font-family : "Source Sans 3", Arial, sans-serif
}
.hero h4, .section-intro h2, .trust-copy h2, .program-copy h2, .formation-copy h2, .cta-section h2, .modal h2, .review-card blockquote, .logo strong, .topic-card strong, .service-body h3, .pricing-card h3, .pricing-card strong, .location-card h3, .grid-intro h3 {
  font-family : "Source Sans 3", Arial, sans-serif
}
  @media (min-width : 851px) {
  .problem-grid{position : static;
  grid-template-columns : repeat(6, minmax(0, 1fr));
  gap : 12px;
  padding : 0;
  align-items : stretch
}
  .problem-grid::before {
  display : none
}

.pricing-grid-intro {
  border-right : 2px solid #277143
}
  }@media (max-width : 850px) {


.pricing-grid-intro {
  border-right : 2px solid #277143;
  display: none;
}
}
body, button, input, textarea, select {
  font-family : "Roboto", Arial, sans-serif;
  font-variation-settings : "opsz" 14, "wdth" 100
}
.hero h4, .section-intro h2, .trust-copy h2, .program-copy h2, .formation-copy h2, .cta-section h2, .modal h2 {
  font-family : "Ubuntu", Arial, sans-serif;
  font-weight : 700;
  letter-spacing : -.035em
}
h1{
  font-family : "Ubuntu", Arial, sans-serif;
  font-weight : 700;
  letter-spacing : -.035em;
  font: 700 clamp(20px, 2.5vw, 30px) / .98 "Ubuntu", serif;
  max-width: 550px;
  color: #145c31;
  margin-top: 0px;
  margin-bottom: 30px;
}
h1 span {
    font-weight: 600;
    font-size: clamp(13px, 4vw, 16px);
    font-family: "Roboto", Arial, sans-serif;
    color: #5c685f;
}
.logo strong, .topic-card strong, .service-body h3, .pricing-card h3, .pricing-card strong, .location-card h3, .grid-intro h3, .review-card blockquote {
  font-family : "Roboto", Arial, sans-serif
}
.service-card .round-arrow {
  width : auto;
  height : auto;
  background : none;
  color : #5a8063;
  opacity : .8;
  font-size : 0;
  transition : color .2s ease, transform .2s ease, opacity .2s ease
}
.service-card .round-arrow i {
  font-size : 18px;
  line-height : 1;
  font-weight : 400
}
  .service-card : hover .round-arrow {
  color : #145c31;
  opacity : 1;
  transform : translateX(3px)
}

body, button, input, textarea, select {
  font-family : "Roboto", Arial, sans-serif;
  font-optical-sizing : auto;
  font-variation-settings : "opsz" 14, "wght" 400, "XOPQ" 96, "XTRA" 468, "YOPQ" 79, "YTDE" -203, "YTFI" 738, "YTLC" 514, "YTUC" 712
}
.hero h4, .section-intro h2, .trust-copy h2, .program-copy h2, .formation-copy h2, .cta-section h2, .modal h2 {
  font-family : "Ubuntu", sans-serif;
  font-variation-settings : normal
}
.service-card .round-arrow {
  display : grid;
  place-items : center;
  width : 18px;
  height : 22px;
  color : #76917c;
  opacity : .9;
  font-size : 17px;
  font-family : Arial, sans-serif;
  font-weight : 400;
  line-height : 1;
  transform : none!important
}
.service-card .round-arrow i {
  display : none
}
  .service-card .round-arrow::before {
  content : ">";
  display : block
}
  .service-card : hover .round-arrow {
  color : #145c31;
  opacity : 1
}
body {
  font-size : 15px
}
  .hero-badges, .logo small, .desktop-nav, .header-cta, .kicker, .floating-card strong, .floating-card span, .topic-card span : not(.icon-circle), .service-body p, .pricing-card p, .pricing-card strong small, .tag, .card-link, .location-card span, .location-card p, .location-card strong, .program-copy li, .formation-copy li, footer, .modal p, .grid-intro p : not(.grid-intro-eyebrow), .grid-intro-link, .text-link {
  font-size : 14px!important
}
.kicker, .tag, .location-card span, .grid-intro-eyebrow {
  font-size : 14px!important
}
  .round-arrow::before {
  content : "›"!important;
  font-family : "Roboto", sans-serif!important;
  font-size : 23px!important;
  font-weight : 400!important;
  line-height : 1!important
}
.btn-chevron {
  font-family : "Roboto", sans-serif;
  font-size : 23px;
  font-weight : 400;
  line-height : .65;
  margin-left : 1px;
  display : inline-block
}
.card-link b, .text-link span, .location-card strong b {

}
  .logo small, .desktop-nav, .header-cta, .kicker, .floating-card strong, .floating-card span, .topic-card span : not(.icon-circle), .service-body p, .pricing-card p, .pricing-card strong small, .tag, .card-link, .location-card span, .location-card p, .location-card strong, .program-copy li, .formation-copy li, footer, .modal p, .grid-intro p : not(.grid-intro-eyebrow), .grid-intro-link, .text-link, .grid-intro-eyebrow {
  font-size : 14px!important
}
.care-grid-intro {
  display : grid!important;
  grid-template-columns : 30px minmax(0, 1fr);
  column-gap : 12px;
  align-items : start!important
}
.care-grid-intro .grid-intro-icon {
  grid-column : 1;
  grid-row : 1;
  color : #145c31;
  margin : 2px 0 0!important
}
.care-grid-intro .care-intro-content {
  grid-column : 2;
  grid-row : 1;
  font-size : 14px;
}
.care-grid-intro .care-intro-content .grid-intro-eyebrow {
  margin-top : 0!important
}
  @media (min-width : 851px) {
  .service-grid .care-grid-intro{
	  padding : 30px 18px;
}
.service-grid .care-grid-intro .grid-intro-icon {
  font-size : 23px
}
.service-grid .care-grid-intro h3 {
  font-size : 16px
}
  .service-grid .care-grid-intro p : not(.grid-intro-eyebrow) {
  font-size : 14px!important;
  line-height : 1.3
}
  }@media (max-width : 850px) {
  .service-grid .care-grid-intro{padding : 17px 18px
}
  .service-grid .care-grid-intro p : not(.grid-intro-eyebrow) {
  font-size : 14px!important;
  line-height : 1.3
}


/* Animation d'ouverture : fade du fond + slide depuis le bas */
.modal-layer.open .modal-backdrop {
  animation: modalFadeIn .25s ease forwards;
}

.modal-layer.open .modal {
  animation: modalSlideUp .35s cubic-bezier(.22, .9, .3, 1) forwards;
}


@keyframes modalFadeIn {
  from { opacity: 0; }
  to   { opacity: 1; }
}

@keyframes modalSlideUp {
  from {
    opacity: 0;
    transform: translateY(200px);
  }
  to {
    opacity: 1;
    transform: translateY(0);
  }
}

/* Respect de la préférence "réduire les animations" */
@media (prefers-reduced-motion: reduce) {
  .modal-layer.open .modal-backdrop,
  .modal-layer.open .modal {
    animation: none;
  }
}



/* Hero mobile : l’image devient l’arrière-plan du contenu. */
@media (max-width: 850px) {

  .hero-visual {
    position: absolute;
    z-index: -1;
    inset: 0;
    display: block;
	max-height: 800px;
	height: fit-content;
  }

  .hero-image {
	width: 100%;
	height: 100vw;
	min-height: 100vh;
	border-radius: 0;
  }

  .hero-image::after {
    content: "";
    position: absolute;
    inset: 0;
    background: linear-gradient(90deg, rgba(247, 248, 245, .96) 0%, rgba(247, 248, 245, .84) 48%, rgba(247, 248, 245, .0) 100%);
  }

  .hero-image img {
	display: block;
	width: 100%;
	max-width: 400px;
	height: auto;
	object-fit: cover;
	object-position: left;
	float: right;
	margin-top: 15vh;
	translate: 20% 5vw;
	aspect-ratio: 1 / 1;
  }

  .hero-content {
    position: relative;
    z-index: 1;
    max-width: 590px;
  }

  .hero .floating-card {
    display: none;
  }
  
  .hero-lead {
    font-size: 18px;
    color: #5c685f;
    max-width: 60vw;
}

.review-card{
	justify-self: center;
	
}
.btn {
	font-size: 15px;
}

.mobile-menu .menu-articles {
	/*background-color: #edf5ee !important;*/
	border-radius: 8px;
	display: flex;
	align-content: center;
	justify-content: flex-start;
	align-items: center;
	flex-direction: row;
	padding-left: 10px;
}
.menu-articles i {
    padding-left: 10px;
}
.menu-articles a {
    padding-left: 5px;
	width: stretch;
}

.btn-articles {
	display: none;
}

.locations {
	grid-template-columns: 1fr;
    grid-auto-flow: row;
}
.footer-inner {
    grid-template-columns: 1fr;
    gap: 0px;
}
.footer-zone1 {
    padding-right: 0px;
}
.footer-zone2 {
    padding-left: 0px;
}
.footer-zone3 {
	flex-direction: row-reverse;
}

}

@media (max-width: 600px) {

  .hero-content {

  }

  .hero-image img {
    object-position: left;
	
  }
  
  .menu-btn{
	display: none;
  }
  
  .review-card{
	justify-self: unset;
	
}

.modal-layer {
  align-items : end;
}
.modal{
	border-radius: 20px 20px 0px 0px;
}

.locations {
	grid-template-columns: 1fr;
    grid-auto-flow: row;
}

.menu-btn.btn.btn-primary {
	display : none;
}

}



}