/* Reset box-sizing incluant pseudo-éléments */
*, *::before, *::after {
  box-sizing: border-box;
}

/* Reset margin/padding et polices */
* {
  margin: 0;
  padding: 0;
  font-family: 'Arial', 'Helvetica Neue', Helvetica, sans-serif;
  /* font-family: 'Open Sans', sans-serif; */
  font-weight: 300;
}

/* Root font-size et ajustements spécifiques */
html {
  font-size: 62.5%;
  overflow-x: hidden;
  -webkit-text-size-adjust: 100%;
}

/* Body styles */
body {
  background-color: #fff;
  font-size: 1.8rem;
  line-height: 1.4;
  font-weight: 300;
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
}

/* Responsive images, videos, tables, etc */
img,
video,
/*table,
td,*/
blockquote,
code,
pre,
textarea,
iframe,
object,
embed {
  max-width: 100%;
  width: 100%;
  height: auto;
  display: block;
  margin: 0;
  padding: 0;
}

/* Gestion hyphens et mots longs */
textarea,
table,
td,
th,
code,
pre,
samp,
a,
p {
  -webkit-hyphens: auto;
  -ms-hyphens: auto;
  hyphens: auto;
  word-wrap: break-word;
  overflow-wrap: break-word;
  word-break: break-word;
}

/* Préformaté et code */
code,
pre,
samp {
  white-space: pre-wrap;
  overflow-x: auto;
}

/* Classe hide_mobile mobile-first */
.hide_mobile {
  display: block;
}
@media (max-width: 767px) {
  .hide_mobile {
    display: none !important;
  }
}
picture.responsive-image img {
  width: 100%;
  height: auto;
  display: block;
  object-fit: cover;
}















/* Centrage général */
.flex-center {
  display: flex;
  align-items: center;
  justify-content: center;
}

/* Réinitialisation des liens */
.menu a,
.menu a:visited,
.menu a:hover,
.menu a:active {
  color: #fff;
  text-decoration: none;
}

/* Structure globale */
.outer-menu {
  position: absolute;
  top: 0;
  left: 0;
  z-index: 10;
}

.outer-menu .checkbox-toggle {
  position: absolute;
  top: 0;
  left: 0;
  z-index: 20;
  cursor: pointer;
  width: 60px;
  height: 60px;
  opacity: 0;
}

/* Animation hamburger activé */
.outer-menu .checkbox-toggle:checked + .hamburger span {
  transform: rotate(45deg);
}
.outer-menu .checkbox-toggle:checked + .hamburger span::before {
  transform: rotate(90deg);
  top: 0;
}
.outer-menu .checkbox-toggle:checked + .hamburger span::after {
  opacity: 0;
}

/* Animation menu déroulant */
.outer-menu .checkbox-toggle:checked ~ .menu {
  pointer-events: auto;
  visibility: visible;
}
.outer-menu .checkbox-toggle:checked ~ .menu > div {
  transform: scale(1);
  transition-duration: .4s;
}
.outer-menu .checkbox-toggle:checked ~ .menu > div > div {
  opacity: 1;
  transition: opacity .2s ease .2s;
}

/* Hamburger */
.outer-menu .hamburger {
  position: absolute;
  top: 0;
  left: 0;
  z-index: 15;
  width: 60px;
  height: 60px;
  background: none;
  cursor: pointer;
  display: flex;
  align-items: center;
  justify-content: center;
  padding: 0;
}

.outer-menu .hamburger span {
  display: block;
  width: 28px;
  height: 2px;
  background: #fff;
  position: relative;
  transition: all 0.4s ease;
}
.outer-menu .hamburger span::before,
.outer-menu .hamburger span::after {
  content: '';
  position: absolute;
  left: 0;
  width: 28px;
  height: 2px;
  background: #fff;
  transition: all 0.4s ease;
}
.outer-menu .hamburger span::before {
  top: -8px;
}
.outer-menu .hamburger span::after {
  top: 8px;
}

/* Menu full screen */
.outer-menu .menu {
  position: fixed;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  pointer-events: none;
  visibility: hidden;
  display: flex;
  align-items: center;
  justify-content: center;
  overflow: hidden;
}

.outer-menu .menu > div {
  width: 200vw;
  height: 200vw;
  background: rgba(51, 102, 153, 1);
  border-radius: 50%;
  transform: scale(0);
  transition: all 0.2s ease;
  display: flex;
  align-items: center;
  justify-content: center;
}

.outer-menu .menu > div > div {
  text-align: center;
  max-width: 90vw;
  max-height: 100vh;
  opacity: 0;
  transition: opacity 0.2s ease;
  overflow-y: auto;
  display: flex;
  align-items: center;
  justify-content: center;
}

.outer-menu .menu > div > div > ul {
  list-style: none;
  padding: 0 1em;
  margin: 0;
}

.outer-menu .menu > div > div > ul > li {
  margin: 1em 0;
  font-size: 24px;
}

.outer-menu .menu > div > div > ul > li > a {
  position: relative;
  display: inline-block;
  transition: color 0.2s ease;
}
.outer-menu .menu > div > div > ul > li > a::after {
  content: '';
  position: absolute;
  left: 0;
  bottom: -0.15em;
  width: 0;
  height: 2px;
  background: #e5e5e5;
  transition: width 0.2s ease;
}
.outer-menu .menu > div > div > ul > li > a:hover::after {
  width: 100%;
}







/*header*/
header {
  display: grid;
  grid-template-columns: auto auto;  
  grid-template-rows: auto auto auto auto;
  background-color: #359;    
}
header p {
  margin: 0;
}
/*top links*/
.top_links {
  display: grid;
  grid-column: 1 / 3;
  grid-row: 1 / 2;
  color:#fff;
  font-weight:  bold;
  padding : 1rem;
  grid-template-columns: repeat(5, auto);
  justify-content: end;     
}
.top_links>a:hover {
  background-color: #dc002e;
  transition: all .6s ease;  
}
  header>img {
  grid-column: 1 / 3;
  grid-row: 2 / 3;
  max-width: 100%;  
}
picture.responsive-image {
  width: 100%;
  height: auto;
  display: block;
  object-fit: cover;
  grid-column: 1 / 3;
  grid-row: 2 / 3;
  max-width: 100%;
}
.contact {  
  grid-column: 1 / 3;
  grid-row: 4 / 5;     
  text-align: center;
  padding: 1rem;
  color: #fff;   
}
.contact p {
  font-size: 2.5rem;
}
.logo_sp {  
  grid-column: 1 / 3;
  grid-row: 3 / 4;  
  align-self: end;
  padding: 0 20%;
 
}
/*fin header*/













/*text*/ 
p {
    display: block;
    margin-top: 1em;
    margin-bottom: 1em;
    margin-left: 0;
    margin-right: 0;
}
h1 {
  font-family: 'arial black', sans-serif;
  font-size: 3rem;
  color: #fff;
  background-color: #359;  
  text-align: center;
  margin: 0;
  padding: 2rem;  
}
h2 {
  font-size: 2.5rem;
  font-weight: bold;
  color: #359;
  padding-bottom: 2rem;
}
h3 {
  font-weight: bold;
  color: #359;
  padding-bottom: 2rem;
}
h4 {
font-weight: bold;
padding-bottom: 1.5rem;
}
ul {
padding-left: 2rem;
list-style: circle;
margin: 2rem 0;
}
/*section*/
section.fond_blanc {
  background-color: #fff; 
  margin: 0;  
}
section.fond_blanc> h2 {
text-align: center;
padding-top: 2rem;
}
.texte_centre {
  text-align: center;
}
/*colonnes*/
.text-columns {
  /* Mobile first : 1 colonne par défaut */
  column-count: 1;
  column-gap: 2rem;  
  background-image: url("images/fond_section_sm.png");
  background-size: 100% auto;
  background-position: top center;
  background-repeat: no-repeat;
  background-origin: border-box;
  padding: 20rem 1rem 5rem 1rem;
}
.text-columns_sans {
  column-count: 1;
  column-gap: 2rem;
  padding: 5rem 1rem 5rem 1rem;
}
/*grid-3*/
.grid-3 {
  display: grid;
  grid-template-columns: 1fr;
  gap: 2rem;
  padding: 2rem 1rem;
  background-color: #ddd;
}


/*grid-4*/
.grid-4 {
  display: grid;
  grid-template-columns: 1fr;
  gap: 2rem;
  padding: 2rem 1rem;
  background-color: #eee;
}
/*.cell {
  text-align: center;
}*/

.cell img {
  display: block;
  margin: 0 auto;
  height: auto;
  width: auto;
}

.cell ul {  
  margin: 1rem 0;
}
.testimonial p, .testimonial h2{
    font-family: 'segoe script', 'segoe print', cursive;
    color: #710;
}
.testimonial h2 {
  font-size: 3rem;
}
figure { 
    margin: 0;   
    background-color: #359;
    height: 100%;
}
figcaption {
  color : #fff;
  padding: 1rem;
}
figcaption h2 {
  color: #fff;
}
figcaption p a {
  color: #fff;
}









/*tableau-----------------------------------------------------------*/
table {
      width: 100%;
      border-collapse: collapse;
      margin: 2em 0;
      font-family: Arial, sans-serif;
    }

    th, td {
      padding: 0.75em 1em;
      border-bottom: 1px solid #ccc;
    }

    thead th {
      background: #fff;
      font-weight: bold;
    }

    /* Colonne gauche (1ère) alignée à gauche */
    td:first-child, thead th:first-child {
      text-align: left;
    }

    /* Colonne droite (2ème) alignée à droite */
    td:last-child, thead th:last-child {
      text-align: right;
    }
/*+++++++++++++++++++++++++++++++++++++++++++++++++++++++*/
















/*footer*/
footer {
background-color: #359;
padding: 0;
}
.footer-flex {
  display: flex;
  justify-content: center;
  padding: 2rem 0;
  background-color:transparent;  
}
.footer-flex a {
  color: #359;
  font-size: 2.5rem;
  text-align: center;
}
footer .grid-4 {
margin-top: 20rem;
background-color: #359;
text-align: center;
}
footer .grid-4 p,
footer .grid-4 h3,
footer .grid-4 a,
footer .grid-4 ul li a{
color: #fff;
}
footer .grid-4 {
  font-size: 0.85em; /* ou 85%, à ajuster selon la réduction désirée */
  margin-top: 20rem;
}
footer p{
  margin: 2rem 0;
}
footer .grid-4 h3 {
  margin-top: 0;
  font-size: 2.5rem;
}
footer .grid-4 .cell p em {
  display: inline-block;  
  font-size: 2.2rem;
  margin-top: 0;
  padding-top: 0;
  margin-bottom: 2rem;
}
footer ul {
list-style: none;
}
footer {
  /* Styles communs ou spécifiques mobile par défaut : */
  background-image: url("images/fond_footer_s.png");
  background-size: 100% auto;
  background-position: top center;
  background-repeat: no-repeat;
  margin: 0;    
}







































/*Media Queries+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++*/ 
@media (min-width: 640px) {
.text-columns {   
  padding: 30rem 1rem 5rem 1rem;
}
}
/*--------------------------------------------------------------------------------------------*/




@media (min-width: 768px) {
  .grid-3 {
  gap: 3rem;
}
  .grid-4 {
    grid-template-columns: repeat(2, 1fr);
    gap: 3rem;
  }  
h1 { 
  font-size: 3.6rem; 
}
/*h2 {    
  font-size: 3.4rem; 
}*/ 
header > picture.responsive-image {
  grid-column: 1 / 3;  /* ou 1 / 3 si tu veux qu’elle occupe toute la largeur */
  grid-row: 2 / 4;     /* si tu veux qu’elle s’étende sur toute la hauteur */
}
.logo_sp {  
  grid-column: 2 / 3;
  grid-row: 2 / 3; 
  padding: 0 20%; 
}
/*.logo_sp img {  
  padding: 0 ;
}*/
.contact{    
  grid-column: 2 / 3;
  grid-row: 3/ 4; 

}
.contact p{    
  font-size: 2.5rem;  
}
.text-columns {
    column-count: 2;
    column-gap: 3rem;    
    background-image: url("images/fond_section_m.png");
    padding: 8rem 3rem 5rem 3rem;
}
.text-columns_sans {
  column-count: 2;
  column-gap: 3rem;
  padding: 5rem 3rem 5rem 3rem;
}

/*footer .grid-4 {
margin-top: 0;
}*/
footer {
    background-image: url("images/fond_footer_m.png");     
  }
}
/*--------------------------------------------------------------------------------------------*/
@media (min-width: 860px) {
.text-columns {
    column-count: 2;
    padding-top: 13rem;
}
.grid-3 {  
  grid-template-columns: repeat(3, 1fr);
  padding: 3rem;  
}
.grid-4 {
  padding: 3rem;
}
h1 {
  font-size: 4rem;
}  
}
/*--------------------------------------------------------------------------------------------*/
@media (min-width: 1024px) {  
  .grid-3 {   
  padding: 3rem 6rem; 
  gap: 5rem; 
}
  .grid-4 {
    padding: 3rem 6rem;
    grid-template-columns: repeat(4, 1fr);
  }      
  .text-columns {
    column-count: 3;
    column-gap: 5rem;    
    background-image: url("images/fond_section_l.png");
    padding: 20rem 6rem 8rem 6rem;
}
  .text-columns_sans {
    column-count: 3;
    column-gap: 5rem;  
    padding: 8rem 6rem;
}
.footer-flex a {  
  font-size: 4rem;  
}

  footer {
    background-image: url("images/fond_footer_l.png");     
  }
}
@media all and (min-width: 1024px)/*, (orientation: portrait)*/ {
.logo_sp {    
  padding: 0 5%; 
}
}
/*--------------------------------------------------------------------------------------------*/
@media all and (min-width: 1280px) and (orientation: landscape) {
h1 { 
  font-size: 5rem;   
}
h2 {
  font-size: 3.6rem;
}
.logo_sp {    
  padding: 0 5%; 
}
.contact p{    
  font-size: 3rem;  
}
.text-columns {
    column-count: 3;
    padding-top: 25rem;
}
.text-columns_sans {
  column-count: 3;
}
}
/*--------------------------------------------------------------------------------------------*/
@media (min-width: 1920px){
.text-columns {
  padding: 30rem 8rem 8rem 8rem;
}
.text-columns_sans {  
  padding: 8rem;
}
.grid-3, .grid-4 {   
  padding: 3rem 8rem;  
}
}












  










