

/* #region STRUCTURE ----------------------------------------------------------------------------------------------------- */

/* ---------------------------------------------------------------------------------------------------------------------
------------------------------------------------------------------------------------------------------------------------
TYPOGRAPHIES
------------------------------------------------------------------------------------------------------------------------
--------------------------------------------------------------------------------------------------------------------- */

/* À laisser pour le copyright */

@font-face {
  font-family: 'instrument-regular';
  src: url('../typographies/scifly-sans-webfont.woff2') format('woff2');
  font-weight: normal;
  font-style: normal;
  font-display: swap;
}

/* Mes typographies */

@font-face {
  font-family: 'instrument-regular';
  src: url('../typographies/InstrumentSans-Regular.woff2') format('woff2');
  font-display: swap;
}

@font-face {
  font-family: 'instrument-medium';
  src: url('../typographies/InstrumentSans-Medium.woff2') format('woff2');
  font-display: swap;
}

@font-face {
  font-family: 'instrument-semibold';
  src: url('../typographies/InstrumentSans-SemiBoldItalic.woff2') format('woff2');
  font-display: swap;
}

@font-face {
  font-family: 'instrument-bold';
  src: url('../typographies/InstrumentSans-Bold.woff2') format('woff2');
  font-display: swap;
}




/* ---------------------------------------------------------------------------------------------------------------------
------------------------------------------------------------------------------------------------------------------------
  VARIABLES
------------------------------------------------------------------------------------------------------------------------
--------------------------------------------------------------------------------------------------------------------- */

/* ----------------------------------------
   TYPOGRAPHIES
---------------------------------------- */

:root {

  --font-gestimark: 'scifly', sans-serif; /* police de gestimark */

  --font-primary: 'instrument-regular', sans-serif; 
  --font-secondary: 'instrument-medium', sans-serif; 
  --font-third: 'instrument-bold', sans-serif; 
  
  
  /* Tailles de police */
  --font-size-xs: clamp(0.75rem, 0.7rem + 0.25vw, 0.875rem);     /* 12-14px */
  --font-size-sm: clamp(0.875rem, 0.8rem + 0.375vw, 1rem);       /* 14-16px */
  --font-size-base: clamp(1rem, 0.9rem + 0.5vw, 1.125rem);       /* 16-18px */
  --font-size-lg: clamp(1.125rem, 1rem + 0.625vw, 1.25rem);      /* 18-20px */
  --font-size-xl: clamp(1.25rem, 1.1rem + 0.75vw, 1.5rem);       /* 20-24px */
  --font-size-2xl: clamp(1.5rem, 1.3rem + 1vw, 1.875rem);        /* 24-30px */
  --font-size-3xl: clamp(1.875rem, 1.6rem + 1.375vw, 2.25rem);   /* 30-36px */
  --font-size-4xl: clamp(2.25rem, 1.9rem + 1.75vw, 3rem);        /* 36-48px */
  --font-size-5xl: clamp(3rem, 2.5rem + 2.5vw, 4rem);            /* 48-64px */
  
}

@media (min-width: 1200px) {
  :root {
    /* Augmentation subtile pour très grands écrans */
    --font-size-base: clamp(1.125rem, 1rem + 0.5vw, 1.25rem);
  }
}

/* ----------------------------------------
   COULEURS
---------------------------------------- */

/* Palette de couleurs */
:root {
  --color-primary: #f19e1f; /* Couleur principale */
  --color-secondary: #ef5245; /* Couleur secondaire */
  --h-navy:    #0A1F3D;
  --h-red:     #D42B1E;
  --h-red-h:   #B82518;
  --h-ink:     #0E0E0E;
  --h-ink2:    #3A3A3A;
  --h-ink3:    #6E6E6E;
  --h-paper:   #FAFAF8;
  --h-line:    #E8E5DF;
  --ba-aprimary: #0A1F3D;
}

/* ----------------------------------------
   ESPACEMENTS
---------------------------------------- */

/* Marges et paddings */
:root {
  /* Espacements responsive basés sur la viewport */
  --space-xs: clamp(0.25rem, 0.5vw, 0.5rem);     /* 4px → 8px */
  --space-sm: clamp(0.5rem, 1vw, 1rem);          /* 8px → 16px */
  --space-md: clamp(1rem, 2vw, 1.5rem);          /* 16px → 24px */
  --space-lg: clamp(1.5rem, 3vw, 2.5rem);        /* 24px → 40px */
  --space-xl: clamp(2rem, 4vw, 3.5rem);          /* 32px → 56px */
  --space-2xl: clamp(2.5rem, 5vw, 5rem);         /* 40px → 80px */
  --space-3xl: clamp(3rem, 6vw, 6rem);           /* 48px → 96px */
  --space-4xl: clamp(4rem, 8vw, 8rem);           /* 64px → 128px */
  --space-5xl: clamp(5rem, 10vw, 12rem);         /* 80px → 192px */ 
}

/* ----------------------------------------
   AUTRES VARIABLES UTILES
---------------------------------------- */

/* Bordures arrondies */
:root {
  --border-radius: 2vw; /* arrondir les coins */
  --border-radius-small: 10px; /* petit arrondi */
  --border-radius-button: 99px; /* bouton arrondis */
  --border-radius-50 : 50%; /* faire des arrondis */
}


/* ---------------------------------------------------------------------------------------------------------------------
------------------------------------------------------------------------------------------------------------------------
  RESET
------------------------------------------------------------------------------------------------------------------------
--------------------------------------------------------------------------------------------------------------------- */

html {
  max-width: 2560px;
  height: 100%;
  margin: 0 auto;
  -webkit-text-size-adjust: 100%;
  scroll-behavior: smooth;
}

body {
  display: flex;
  flex-direction: column;
  min-height: 100dvh;
  font-size: var(--font-size-base);
  font-family: var(--font-primary);
}

body, div, span, applet, iframe, object, h1, h2, h3, h4, h5, h6, p, blockquote, pre, a, abbr, acronym, address, big, cite, code, del, dfn, em, img, ins, kbd, q, s, samp, small, strike, strong, sub, sup, tt, var, b, u, i, center, dl, dt, dd, ol, ul, li, fieldset, form, label, legend, table, caption, tbody, tfoot, thead, tr, th, td, article, aside, canvas, details, embed, figure, figcaption, footer, header, hgroup, menu, nav, output, ruby, section, summary, time, mark, audio, video, ::before, ::after {
  margin: 0;
  padding: 0;
  border: 0;
  box-sizing: border-box;
}

.gtm-wrapper {
  flex-grow: 1;
  /* margin-top: var(--space-lg); */
  margin-bottom: var(--space-lg);
  position: relative;
}

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

/* ---------------------------------------------------------------------------------------------------------------------
------------------------------------------------------------------------------------------------------------------------
  NOS CLASSES
------------------------------------------------------------------------------------------------------------------------
--------------------------------------------------------------------------------------------------------------------- */

/* ---------------------------------------------------------------------------------------------------------------------
  Titres, texte, liens, listes 
--------------------------------------------------------------------------------------------------------------------- */

/* -------------------- Titres -------------------- */

h1 {
  font-size: var(--font-size-5xl);
  margin-top: var(--space-md);
  margin-bottom: var(--space-lg);
  font-family: var(--font-third);
  color: var(--color-heading);
}

h2 {
  font-size: var(--font-size-4xl);
  margin-top: var(--space-md);
  margin-bottom: var(--space-md);
  font-family: var(--font-primary);
  color: var(--color-heading);
}

h3 {
  font-size: var(--font-size-3xl);
  margin-top: var(--space-md);
  margin-bottom: var(--space-sm);
  /* font-family: var(--font-heading); */
  color: var(--color-heading-secondary);
}

h4 {
  font-size: var(--font-size-2xl);
  margin-top: var(--space-md);
  margin-bottom: var(--space-sm);
  font-family: var(--font-primary);
  color: var(--color-heading-secondary);
}

h5 {
  font-size: var(--font-size-xl);
  margin-top: var(--space-md);
  margin-bottom: var(--space-xs);
  font-family: var(--font-heading);
  color: var(--color-heading-secondary);
}

h6 {
  font-size: var(--font-size-lg);
  margin-top: var(--space-md);
  margin-bottom: var(--space-xs);
  font-family: var(--font-primary);
  color: var(--color-heading-secondary);
}

/* -------------------- Textes -------------------- */

p {
  font-size: var(--font-size-base);
  margin-bottom: var(--space-sm);
}

blockquote {
  font-size: var(--font-size-lg);
  font-family: var(--font-secondary);
  margin-bottom: var(--space-sm);
}

/* Texte d'introduction */
.gtm-text-lead {
  font-size: var(--font-size-lg);
  margin-bottom: var(--space-sm);
}

/* Texte petit */
.gtm-text-small {
  font-size: var(--font-size-sm);
  margin-bottom: var(--space-xs);
}

/* Texte petit */
.gtm-text-xs {
  font-size: var(--font-size-xs);
}

/* -------------------- Liens -------------------- */

a {
  text-decoration: none !important;
  cursor: pointer;
  color: var(--h-red);
  transition: color .5s ease-in-out;
  position: relative;
  margin-bottom: var(--space-xs);
}

a:hover {
  color: var(--h-red-h);
}

a.gtm-lien-secondary {
  color: var(--color-link-light);
}

a.gtm-lien-secondary:hover {
  color: var(--color-link-light-hover);
}

/* -------------------- Boutons -------------------- */

/* boutons gestimark */

a.gtm-btn-primary {
  background: var(--h-red);
  color: #fff;
  border: none;
  padding: 13px 24px;
  font-size: var(--font-size-xs);
  font-weight: 700;
  border-radius: 2px;
  letter-spacing: 0.3px;
  text-transform: uppercase;
  white-space: nowrap;
  display: inline-block;
  width: fit-content;
  transition: background 0.15s ease;
  cursor: pointer;
}


a.gtm-btn-primary:hover {
  background: var(--h-red-h);
  color: #fff;
}

.gtm-btn-outline {
  background: transparent;
  color: var(--h-ink);
  border: 1px solid var(--h-line);
  padding: 12px 18px;
  font-size: var(--font-size-xs);
  font-weight: 500;
  border-radius: 2px;
  display: inline-block;
    width: fit-content;
  transition: border-color 0.15s ease;
  cursor: pointer;
}

.gtm-btn-outline:hover {
  border-color: var(--h-ink);
  color: var(--h-ink);
}

.gtm-btn-outline-light {
  background: transparent;
  color: var(--h-line);
  border: 1px solid var(--h-line);
  padding: 12px 18px;
  font-size: var(--font-size-xs);
  font-weight: 500;
  border-radius: 2px;
  display: inline-block;
    width: fit-content;
  transition: all 0.15s ease;
  cursor: pointer;
}

.gtm-btn-outline-light:hover {
  background: var(--h-line);
}


/* boutons joomla */

.btn.btn-primary {
  background-color: var(--color-background-button);
  border: none;
  padding: var(--space-xs) var(--space-sm);
  font-size: var(--font-size-base);
  color: var(--color-text-light);
  margin: var(--space-xs) 0;
  border-radius: var(--border-radius-small);
  cursor: pointer;
  transition: background .3s ease-in-out;
}


.btn.btn-primary:hover {
  background-color: var(--color-background-button-hover);
}

.btn.btn-secondary {
  background-color: var(--color-background-button-secondary);
  border: none;
  padding: var(--space-xs) var(--space-sm);
  font-size: var(--font-size-base);
  color: var(--color-text-light);
  margin: var(--space-xs) 0;
  border-radius: var(--border-radius-small);
  cursor: pointer;
  transition: background .3s ease-in-out;
}

.btn.btn-secondary:hover {
  background-color: var(--color-background-button-secondary-hover);
}


button#soumettre {
  background: var(--h-red) !important;
  color: #fff !important;
  border: none !important;
  padding: 13px 24px !important;
  font-size: var(--font-size-xs) !important;
  font-weight: 700 !important;
  border-radius: 2px !important;
  letter-spacing: 0.3px !important;
  text-transform: uppercase !important;
  white-space: nowrap !important;
  display: inline-block !important;
  transition: background 0.15s ease !important;
  cursor: pointer !important;
}

button#soumettre:hover  {
  background: var(--h-red-h) !important;
  color: #fff !important;
}

.gtm-infolettre .btn-primary {
  background: var(--h-red) !important;
  color: #fff !important;
  border: none !important;
  padding: 13px 24px !important;
  font-size: var(--font-size-xs) !important;
  font-weight: 700 !important;
  border-radius: 2px !important;
  letter-spacing: 0.3px !important;
  text-transform: uppercase !important;
  white-space: nowrap !important;
  display: inline-block !important;
  transition: background 0.15s ease !important;
  cursor: pointer !important;
}

.gtm-infolettre .btn-primary:hover {
  background: var(--h-red-h) !important;
  color: #fff !important;
}



/* boutons lire la suite */

.readmore {
  border-radius: var(--border-radius-button);
  margin-top: var(--space-xs);
  margin-bottom: var(--space-xs);
  box-sizing: border-box;
  font-size: var(--font-size-base);
  color: var(--color-text-light) !important;
  background-color: var(--color-background-readmore);
  line-height: 1.2;
  padding: var(--space-xs) var(--space-sm);
  user-select: none;
  -webkit-user-select: none;
  touch-action: manipulation;
  display: inline-block;
  text-align: center;
  cursor: pointer;
  transition: background-color .2s ease-in-out;
}

.readmore:hover {
  background-color: var(--color-background-readmore-hover);
}

/* bouton envoyer */

button[type="submit"] {
  background-color: var(--color-background-button) !important;
  border: none !important;
  padding: var(--space-xs) var(--space-sm) !important;
  font-size: var(--font-size-base) !important;
  color: var(--color-text-light) !important;
  margin: var(--space-xs) 0 !important;
  border-radius: var(--border-radius-small) !important;
  text-shadow: none !important;
  background-image: none !important;
  cursor: pointer !important;
  transition: all .2s ease-in-out !important;
}


button[type="submit"]:hover {
  background-color: var(--color-background-button-hover) !important;
}


/* -------------------- Listes -------------------- */

/* Liste gestimark */
ul,
ol {
  margin-left: var(--space-md);
  margin-bottom: var(--space-sm);
  font-size: var(--font-size-base);
}

ul li,
ol li {
  margin-bottom: var(--space-xs);
}

ul.gtm-liste-picto {
  margin-left: var(--space-xs);
}

ul.gtm-liste-picto li {
  list-style: none;
  padding-bottom: 5px;
  background: url(/images/gtm-list-pict.png) no-repeat 0 6px;
  background-size: 15px;
  padding-left: var(--space-xs);
  font-size: var(--font-size-base);
}

/* Liste compte */
ul.mod-login__options {
  list-style-type: none;
  margin-left: 0;
}

ul.mod-login__options li a {
  font-size: var(--font-size-base);
}

/* Formulaires (input, textarea...) */

input[type="text"],
input[type="email"],
input[type="tel"],
input[type="search"],
input[type="url"],
input[type="password"],
textarea {
  width: 100% !important;
  padding: var(--space-xs) !important;
  box-sizing: border-box !important;
  height: auto !important;
  border: 1px solid var(--h-navy)!important;
  outline: 0 !important;
  box-shadow: none !important;
}

input[type="text"]:focus,
input[type="email"]:focus,
input[type="tel"]:focus,
input[type="search"]:focus,
input[type="url"]:focus,
input[type="password"]:focus,
textarea:focus {
  outline: 0 !important;
  box-shadow: none !important;
  border: 1px solid var(--h-red) !important;
  outline: 0 !important;
  box-shadow: none !important;
}

/* ---------------------------------------------------------------------------------------------------------------------
  Background
--------------------------------------------------------------------------------------------------------------------- */

.moduletable.gtm-bg {
  padding: var(--space-0);
  background-color: var(--color-background);
  color: var(--color-text-light);
}

.moduletable.gtm-img-bg {
  padding: var(--space-0);
}

.moduletable.gtm-bg .gtm-custom {
  padding: var(--space-xs);
}

.gtm-img-bg .gtm-custom {
  background-size: cover;
  background-position: center;
  background-repeat: no-repeat;
  height: 100%;
  padding: var(--space-xs);
}

@media screen and (min-width: 1024px) {
  .moduletable.gtm-bg .gtm-custom {
    padding: var(--space-xs), var(--space-sm), var(--space-xs), var(--space-sm);
  }

  .gtm-img-bg .gtm-custom {
    padding: var(--space-xs), var(--space-sm), var(--space-xs), var(--space-sm);
  }
}

/* -----------------------------------------------------------
                    VIDEOS
------------------------------------------------------------ */

/* Juste pour les cas spéciaux ou osyoutube ne fais pas l'affaire */

/* .gtm-video-container {
      position:relative;
      overflow:hidden;
      width:100%;
      padding-top:56.25%
    }
      
    .gtm-responsive-iframe {
      position:absolute;
      top:0;
      left:0;
      bottom:0;
      right:0;
      width:100%;
      height:100%;
      border-radius:2vw;
    }
*/

/* ---------------------------------------------------------------------------------------------------------------------
  Centrage
--------------------------------------------------------------------------------------------------------------------- */

/* centrer du texte */
.gtm-center {
  text-align: center;
}

/* centrer le module sur lui-même */
.gtm-module-center {
  align-self: center;
}

/* centrer tout le contenu du module */
.gtm-content-center {
  display: flex;
  flex-direction: column;
  justify-content: center;
}

/* centrer un seul élément */
.gtm-element-center .gtm-custom {
  position: absolute;
  top: 50%;
  left: 50%;
  transform: translate(-50%);
  width: 100%;
}

/* ---------------------------------------------------------------------------------------------------------------------
  Style des éléments
--------------------------------------------------------------------------------------------------------------------- */

/* Angles arrondis */

.gtm-border {
  border-radius: var(--border-radius);
}

/* Bordure */

.gtm-border {
  border: 2px solid var(--color-primary);
}

/* ---------------------------------------------------------------------------------------------------------------------
  Positions
--------------------------------------------------------------------------------------------------------------------- */

/* positions collante au top de l'écran lors du scroll */

.gtm-sticky {
  position: sticky;
  top: 20px;
}


/* ---------------------------------------------------------------------------------------------------------------------
------------------------------------------------------------------------------------------------------------------------
  STRUCTURE
------------------------------------------------------------------------------------------------------------------------
--------------------------------------------------------------------------------------------------------------------- */

/* ---------------------------------------------------------------------------------------------------------------------
  Articles
--------------------------------------------------------------------------------------------------------------------- */

.com-content-article {
  padding: var(--space-lg);
}


/* ---------------------------------------------------------------------------------------------------------------------
  Modules
--------------------------------------------------------------------------------------------------------------------- */

.moduletable {
  display: flex;
  flex-direction: column;
  width: 100%;
  /* padding: var(--space-xs); */
}

.moduletable .gtm-custom {
  width: 100%;
}

.moduletable.gtm-bg h1,
.moduletable.gtm-bg h2,
.moduletable.gtm-bg h3,
.moduletable.gtm-bg h4,
.moduletable.gtm-bg h5,
.moduletable.gtm-bg h6 {
  padding: var(--space-xs) var(--space-xs) var(--space-0) var(--space-xs);
}

/* marge entre le titre et le contenu */
/* .moduletable .gtm-custom {
  padding-top: var(--space-xs);
} */

.gtm-right .moduletable .gtm-custom,
.gtm-left .moduletable .gtm-custom {
  padding-top: 0;
}

.gtm-debug .moduletable {
  padding: 0;
}

/* --------- Menu ---------- */
.gtm-menu .moduletable {
  padding: 0px;
}

/* @media screen and (min-width: 1024px) {
  .moduletable {
    padding: var(--space-xs) var(--space-sm);
  }

  .moduletable.gtm-bg h1,
  .moduletable.gtm-bg h2,
  .moduletable.gtm-bg h3,
  .moduletable.gtm-bg h4,
  .moduletable.gtm-bg h5,
  .moduletable.gtm-bg h6 {
    padding: var(--space-xs) var(--space-sm) var(--space-0) var(--space-sm);
  }
} */


/* ---------------------------------------------------------------------------------------------------------------------
  Blogue - Page de présentation
--------------------------------------------------------------------------------------------------------------------- */

/* ----------- marges du blog ----------- */
.com-content-category-blog__items.blog-items {
  padding: var(--space-xs);
}

.com-content-category-blog .page-header h1 {
  padding: var(--space-xs);
}

/* ----------- Article en vedette ----------- */

.com-content-category-blog__items.blog-items.items-leading .com-content-category-blog__item.blog-item {
  display: flex;
  gap: 20px;
  margin-bottom: var(--space-xl);
}

/* ----------- Articles du blogue ------------ */

/* Design du blogue 2 colonnes */
.com-content-category-blog__items.blog-items.masonry-2, .com-content-category-blog__items.blog-items.masonry-3, .com-content-category-blog__items.blog-items.masonry-4, .com-content-category-blog__items.blog-items.masonry-5, .com-content-category-blog__items.blog-items.masonry-6 {
  display: block;
}


/* Alignement colonne des articles */
.com-content-category-blog__items.blog-items.masonry-2 .com-content-category-blog__item.blog-item figure.item-image,
.com-content-category-blog__items.blog-items.masonry-3 .com-content-category-blog__item.blog-item figure.item-image,
.com-content-category-blog__items.blog-items.masonry-4 .com-content-category-blog__item.blog-item figure.item-image,
.com-content-category-blog__items.blog-items.masonry-2 .com-content-category-blog__item.blog-item .item-content,
.com-content-category-blog__items.blog-items.masonry-3 .com-content-category-blog__item.blog-item .item-content,
.com-content-category-blog__items.blog-items.masonry-4 .com-content-category-blog__item.blog-item .item-content {
  width: 100%;
}

.com-content-category-blog__items.blog-items.masonry-2 .com-content-category-blog__item.blog-item,
.com-content-category-blog__items.blog-items.masonry-3 .com-content-category-blog__item.blog-item,
.com-content-category-blog__items.blog-items.masonry-4 .com-content-category-blog__item.blog-item {
  display: block;
}

/* Design en ligne lorsque le blogue est en une seule colonne */
.com-content-category-blog__items.blog-items .com-content-category-blog__item.blog-item {
  display: flex;
  flex-direction: column;
  gap: 20px;
  margin-bottom: var(--space-xl);
}

/* Design des images */
.com-content-category-blog__items.blog-items figure.item-image img {
  width: 100%;
  margin-bottom: var(--space-xs);
}

/* Design des titres des articles */
.com-content-category-blog__items.blog-items .item-content .page-header h2 {
  font-size: var(--font-size-2xl);
  margin-bottom: var(--space-xs);
}

.com-content-category-blog__items.blog-items.masonry-4 .item-content .page-header h2 {
  font-size: var(--font-size-4xl);
  margin-bottom: var(--space-xs);
}

/* Design des titres avec lien des articles */
.com-content-category-blog__items.blog-items .item-content .page-header h2 a {
  font-size: var(--font-size-4xl);
  margin-bottom: var(--space-xs);
  display: block;
}

.com-content-category-blog__items.blog-items.masonry-4 .item-content .page-header h2 a {
  font-size: var(--font-size-2xl);
  margin-bottom: var(--space-xs);
  display: block;
}

/* --------------------------------- Version Desktop ------------------------------------- */

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

  /* marges du blog */
  .com-content-category-blog__items.blog-items {
    padding: 20px 40px;
    padding: var(--space-xs) var(--space-sm);
  }

  .com-content-category-blog .page-header h1 {
    padding: var(--space-xs) var(--space-sm);
  }

  /* Design en ligne lorsque le blogue est en une seule colonne */
  .com-content-category-blog__items.blog-items .com-content-category-blog__item.blog-item {
    flex-direction: row;
    gap: 40px;
  }

  /* tailles des boites images et textes de l'article en vedette */
  .com-content-category-blog__items.blog-items.items-leading .com-content-category-blog__item.blog-item figure.item-image,
  .com-content-category-blog__items.blog-items.items-leading .com-content-category-blog__item.blog-item div.item-content {
    width: 50%;
  }

  /* tailles des boites images des articles */
  .com-content-category-blog__items.blog-items .com-content-category-blog__item.blog-item figure.item-image {
    width: 40%;
  }

  /* tailles des boites textes des articles */
  .com-content-category-blog__items.blog-items .com-content-category-blog__item.blog-item .item-content {
    width: 60%;
  }

  /* ----------- Articles du blogue ------------ */

  /* Design du blogue 2 colonnes */
  .com-content-category-blog__items.blog-items.masonry-2 {
    display: grid;
    grid-template-columns: repeat(2, 1fr);
    grid-template-rows: 1fr;
    grid-column-gap: 30px;
    grid-row-gap: 40px;
  }

  /* Design du blogue 3 colonne */
  .com-content-category-blog__items.blog-items.masonry-3 {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    grid-template-rows: 1fr;
    grid-column-gap: 30px;
    grid-row-gap: 40px;
  }

  /* Design du blogue 4 colonne */
  .com-content-category-blog__items.blog-items.masonry-4 {
    display: grid;
    grid-template-columns: repeat(4, 1fr);
    grid-template-rows: 1fr;
    grid-column-gap: 30px;
    grid-row-gap: 40px;
  }

  /* ------------ Article de blogue ouvert -------------- */

  .com-content-article.item-page.gtm-blogue {
    display: grid;
    grid-template-columns: repeat(12, 1fr);
    grid-column-gap: 20px;
    grid-row-gap: 40px;
  }

  .com-content-article.item-page.gtm-blogue .page-header:nth-child(1) {
    grid-column: span 12;
  }

  .com-content-article.item-page.gtm-blogue .page-header:nth-child(2) {
    grid-column: span 12;
  }

  .com-content-article.item-page.gtm-blogue .left.item-image {
    grid-column: span 6;
  }

  .com-content-article.item-page.gtm-blogue .com-content-article__body {
    grid-column: span 6;
  }

  .com-content-article.item-page.gtm-blogue .left.item-image img {
    position: sticky;
    top: 20px;
  }
}

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

  /* Design du blogue 3 colonne */
  .com-content-category-blog__items.blog-items.masonry-3 {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    grid-template-rows: 1fr;
    grid-column-gap: 30px;
    grid-row-gap: 40px;
  }

  /* Design du blogue 4 colonne */
  .com-content-category-blog__items.blog-items.masonry-4 {
    display: grid;
    grid-template-columns: repeat(4, 1fr);
    grid-template-rows: 1fr;
    grid-column-gap: 30px;
    grid-row-gap: 40px;
  }
}



/* ---------------------------------------------------------------------------------------------------------------------
  Margin 
--------------------------------------------------------------------------------------------------------------------- */

/* Marges sur tous les côtés */
.gtm-m-0 { margin: var(--space-0); }
.gtm-m-xs { margin: var(--space-xs); }
.gtm-m-sm { margin: var(--space-sm); }
.gtm-m-md { margin: var(--space-md); }
.gtm-m-lg { margin: var(--space-lg); }
.gtm-m-xl { margin: var(--space-xl); }
.gtm-m-2xl { margin: var(--space-2xl); }
.gtm-m-3xl { margin: var(--space-3xl); }
.gtm-m-4xl { margin: var(--space-4xl); }
.gtm-m-5xl { margin: var(--space-5xl); }
.gtm-m-auto { margin: var(--space-auto); }

/* Marges horizontales (gauche + droite) */
.gtm-mx-0 { margin-left: var(--space-0); margin-right: var(--space-0); }
.gtm-mx-xs { margin-left: var(--space-xs); margin-right: var(--space-xs); }
.gtm-mx-sm { margin-left: var(--space-sm); margin-right: var(--space-sm); }
.gtm-mx-md { margin-left: var(--space-md); margin-right: var(--space-md); }
.gtm-gtm-mx-lg { margin-left: var(--space-lg); margin-right: var(--space-lg); }
.gtm-mx-xl { margin-left: var(--space-xl); margin-right: var(--space-xl); }
.gtm-mx-2xl { margin-left: var(--space-2xl); margin-right: var(--space-2xl); }
.gtm-mx-3xl { margin-left: var(--space-3xl); margin-right: var(--space-3xl); }
.gtm-mx-auto { margin-left: var(--space-auto); margin-right: var(--space-auto); }

/* Marges verticales (haut + bas) */
.gtm-my-0 { margin-top: var(--space-0); margin-bottom: var(--space-0); }
.gtm-my-xs { margin-top: var(--space-xs); margin-bottom: var(--space-xs); }
.gtm-my-sm { margin-top: var(--space-sm); margin-bottom: var(--space-sm); }
.gtm-my-md { margin-top: var(--space-md); margin-bottom: var(--space-md); }
.gtm-my-lg { margin-top: var(--space-lg); margin-bottom: var(--space-lg); }
.gtm-my-xl { margin-top: var(--space-xl); margin-bottom: var(--space-xl); }
.gtm-my-2xl { margin-top: var(--space-2xl); margin-bottom: var(--space-2xl); }
.gtm-my-3xl { margin-top: var(--space-3xl); margin-bottom: var(--space-3xl); }

/* Marges individuelles */
.gtm-mt-0 { margin-top: var(--space-0); }
.gtm-mt-xs { margin-top: var(--space-xs); }
.gtm-mt-sm { margin-top: var(--space-sm); }
.gtm-mt-md { margin-top: var(--space-md); }
.gtm-mt-lg { margin-top: var(--space-lg); }
.gtm-mt-xl { margin-top: var(--space-xl); }
.gtm-mt-2xl { margin-top: var(--space-2xl); }
.gtm-mt-3xl { margin-top: var(--space-3xl); }
.gtm-mt-4xl { margin-top: var(--space-4xl); }
.gtm-mt-5xl { margin-top: var(--space-5xl); }

.gtm-mb-0 { margin-bottom: var(--space-0); }
.gtm-mb-xs { margin-bottom: var(--space-xs); }
.gtm-mb-sm { margin-bottom: var(--space-sm); }
.gtm-mb-md { margin-bottom: var(--space-md); }
.gtm-mb-lg { margin-bottom: var(--space-lg); }
.gtm-mb-xl { margin-bottom: var(--space-xl); }
.gtm-mb-2xl { margin-bottom: var(--space-2xl); }
.gtm-mb-3xl { margin-bottom: var(--space-3xl); }
.gtm-mb-4xl { margin-bottom: var(--space-4xl); }
.gtm-mb-5xl { margin-bottom: var(--space-5xl); }

.gtm-ml-0 { margin-left: var(--space-0); }
.gtm-ml-xs { margin-left: var(--space-xs); }
.gtm-ml-sm { margin-left: var(--space-sm); }
.gtm-ml-md { margin-left: var(--space-md); }
.gtm-ml-lg { margin-left: var(--space-lg); }
.gtm-ml-xl { margin-left: var(--space-xl); }
.gtm-ml-2xl { margin-left: var(--space-2xl); }
.gtm-ml-3xl { margin-left: var(--space-3xl); }
.gtm-ml-auto { margin-left: var(--space-auto); }

.gtm-mr-0 { margin-right: var(--space-0); }
.gtm-mr-xs { margin-right: var(--space-xs); }
.gtm-mr-sm { margin-right: var(--space-sm); }
.gtm-mr-md { margin-right: var(--space-md); }
.gtm-mr-lg { margin-right: var(--space-lg); }
.gtm-mr-xl { margin-right: var(--space-xl); }
.gtm-mr-2xl { margin-right: var(--space-2xl); }
.gtm-mr-3xl { margin-right: var(--space-3xl); }
.gtm-mr-auto { margin-right: var(--space-auto); }

/* ---------------------------------------------------------------------------------------------------------------------
  Padding 
--------------------------------------------------------------------------------------------------------------------- */

.moduletable.gtm-no-padding {
    padding: 0 0 0 0;
}

/* Paddings sur tous les côtés */
.gtm-p-0 { padding: var(--space-0); }
.gtm-p-xs { padding: var(--space-xs); }
.gtm-p-sm { padding: var(--space-sm); }
.gtm-p-md { padding: var(--space-md); }
.gtm-p-lg { padding: var(--space-lg); }
.gtm-p-xl { padding: var(--space-xl); }
.gtm-p-2xl { padding: var(--space-2xl); }
.gtm-p-3xl { padding: var(--space-3xl); }
.gtm-p-4xl { padding: var(--space-4xl); }
.gtm-p-5xl { padding: var(--space-5xl); }

/* Paddings horizontaux (gauche + droite) */
.gtm-px-0 { padding-left: var(--space-0); padding-right: var(--space-0); }
.gtm-px-xs { padding-left: var(--space-xs); padding-right: var(--space-xs); }
.gtm-px-sm { padding-left: var(--space-sm); padding-right: var(--space-sm); }
.gtm-px-md { padding-left: var(--space-md); padding-right: var(--space-md); }
.gtm-px-lg { padding-left: var(--space-lg); padding-right: var(--space-lg); }
.gtm-px-xl { padding-left: var(--space-xl); padding-right: var(--space-xl); }
.gtm-px-2xl { padding-left: var(--space-2xl); padding-right: var(--space-2xl); }
.gtm-px-3xl { padding-left: var(--space-3xl); padding-right: var(--space-3xl); }
.gtm-px-4xl { padding-left: var(--space-4xl); padding-right: var(--space-4xl); }
.gtm-px-5xl { padding-left: var(--space-5xl); padding-right: var(--space-5xl); }

/* Paddings verticaux (haut + bas) */
.gtm-py-0 { padding-top: var(--space-0); padding-bottom: var(--space-0); }
.gtm-py-xs { padding-top: var(--space-xs); padding-bottom: var(--space-xs); }
.gtm-py-sm { padding-top: var(--space-sm); padding-bottom: var(--space-sm); }
.gtm-py-md { padding-top: var(--space-md); padding-bottom: var(--space-md); }
.gtm-py-lg { padding-top: var(--space-lg); padding-bottom: var(--space-lg); }
.gtm-py-xl { padding-top: var(--space-xl); padding-bottom: var(--space-xl); }
.gtm-py-2xl { padding-top: var(--space-2xl); padding-bottom: var(--space-2xl); }
.gtm-py-3xl { padding-top: var(--space-3xl); padding-bottom: var(--space-3xl); }
.gtm-py-4xl { padding-top: var(--space-4xl); padding-bottom: var(--space-4xl); }
.gtm-py-5xl { padding-top: var(--space-5xl); padding-bottom: var(--space-5xl); }

/* Paddings individuels */
.gtm-pt-0 { padding-top: var(--space-0); }
.gtm-pt-xs { padding-top: var(--space-xs); }
.gtm-pt-sm { padding-top: var(--space-sm); }
.gtm-pt-md { padding-top: var(--space-md); }
.gtm-pt-lg { padding-top: var(--space-lg); }
.gtm-pt-xl { padding-top: var(--space-xl); }
.gtm-pt-2xl { padding-top: var(--space-2xl); }
.gtm-pt-3xl { padding-top: var(--space-3xl); }
.gtm-pt-4xl { padding-top: var(--space-4xl); }
.gtm-pt-5xl { padding-top: var(--space-5xl); }

.gtm-pb-0 { padding-bottom: var(--space-0); }
.gtm-pb-xs { padding-bottom: var(--space-xs); }
.gtm-pb-sm { padding-bottom: var(--space-sm); }
.gtm-pb-md { padding-bottom: var(--space-md); }
.gtm-pb-lg { padding-bottom: var(--space-lg); }
.gtm-pb-xl { padding-bottom: var(--space-xl); }
.gtm-pb-2xl { padding-bottom: var(--space-2xl); }
.gtm-pb-3xl { padding-bottom: var(--space-3xl); }
.gtm-pb-4xl { padding-bottom: var(--space-4xl); }
.gtm-pb-5xl { padding-bottom: var(--space-5xl); }

.gtm-pl-0 { padding-left: var(--space-0); }
.gtm-pl-xs { padding-left: var(--space-xs); }
.gtm-pl-sm { padding-left: var(--space-sm); }
.gtm-pl-md { padding-left: var(--space-md); }
.gtm-pl-lg { padding-left: var(--space-lg); }
.gtm-pl-xl { padding-left: var(--space-xl); }
.gtm-pl-2xl { padding-left: var(--space-2xl); }
.gtm-pl-3xl { padding-left: var(--space-3xl); }
.gtm-pl-4xl { padding-left: var(--space-4xl); }
.gtm-pl-5xl { padding-left: var(--space-5xl); }

.gtm-pr-0 { padding-right: var(--space-0); }
.gtm-pr-xs { padding-right: var(--space-xs); }
.gtm-pr-sm { padding-right: var(--space-sm); }
.gtm-pr-md { padding-right: var(--space-md); }
.gtm-pr-lg { padding-right: var(--space-lg); }
.gtm-pr-xl { padding-right: var(--space-xl); }
.gtm-pr-2xl { padding-right: var(--space-2xl); }
.gtm-pr-3xl { padding-right: var(--space-3xl); }
.gtm-pr-4xl { padding-right: var(--space-4xl); }
.gtm-pr-5xl { padding-right: var(--space-5xl); }




/* ---------------------------------------------------------------------------------------------------------------------
------------------------------------------------------------------------------------------------------------------------
  COMPTE
------------------------------------------------------------------------------------------------------------------------
--------------------------------------------------------------------------------------------------------------------- */

.gtm-compte {
  text-align: center;
  max-width: 400px;
  margin: auto;
}

.gtm-compte form {
  display: flex;
  flex-direction: column;
}

/* Identifiant */

.gtm-compte form .form-group .input-group {
  display: flex;
  flex-direction: column;
  align-items: center;
  margin-bottom: var(--space-xs);
}

.gtm-compte form .mod-login__username .input-group input {
  order: 2;
}

.gtm-compte form .mod-login__username .input-group label {
  order: 1;
}

/* Mdp */


.gtm-compte form .mod-login__password .input-group input {
  order: 2;
}

.gtm-compte form .mod-login__password .input-group label {
  order: 1;
}

.gtm-compte form .mod-login__password .input-group button {
  order: 3;
  width: fit-content;
}


/* ---------------------------------------------------------------------------------------------------------------------
------------------------------------------------------------------------------------------------------------------------
  FORMULAIRE
------------------------------------------------------------------------------------------------------------------------
--------------------------------------------------------------------------------------------------------------------- */

/* dimenssions du formulaire */

.gtm-form {
  width: 100%;
  margin: var(--space-auto);
}

.gtm-form label {
  font-size: var(--font-size-base);
  margin-bottom: var(--space-xs);
}

/* design du formulaire */

.formControls {
  display: block;
}

.rsform-input-box {
  width: 100%;
  padding: var(--space-0) !important;
}


/* ---------------------------------------------------------------------------------------------------------------------
------------------------------------------------------------------------------------------------------------------------
  COPYRIGHT
------------------------------------------------------------------------------------------------------------------------
--------------------------------------------------------------------------------------------------------------------- */


.gtm-copyright-dark {
  display: none;
}

.gtm-copyright {
  text-align: center;
  padding-left: var(--space-sm);
  padding-right: var(--space-sm);
  color: var(--color-text);
  font-size: var(--font-size-xs) !important;
  margin-bottom: var(--space-xs);
  font-family: 'scifly';
}

.gtm-flinks {
  margin-bottom: var(--space-xs);
}

.gtm-flinks a {
  margin-top: var(--space-xs);
  color: var(--color-link);
  font-size: var(--font-size-xs) !important;
}


.gtm-flinks a:hover {
  color: var(--color-link-hover);
}


.gtm-copyright .moduletable.gtm-copyright-content {
  padding: var(--space-0);
}


.gtm-copy-anim-logo {
  margin: auto;
  max-width: 400px;
}

.gtm-copy-anim-logo .gtm-lien-gestimark {
  display: flex;
  justify-content: center;
  align-items: center;
}

a.gtm-lien-gestimark span {
  color: var(--color-text);
  letter-spacing: 1px;
  font-size: var(--font-size-xs);
  padding-right: var(--space-xs);
}

.gtm-copy-anim-logo .gtm-lien-gestimark img.gtm-g-gestimark {
  width: 35px;
  transform-origin: center;
  transition: all .2s ease-in-out;
}

.gtm-copy-anim-logo .gtm-lien-gestimark img.gtm-creation-de {
  width: 100px;
  padding-right: var(--space-xs);
}

.gtm-copy-anim-logo:hover .gtm-lien-gestimark img.gtm-g-gestimark {
  transform: rotate(-30deg);
}

/* ---------------------------------------------------------------------------------------------------------------------
------------------------------------------------------------------------------------------------------------------------
  CREDITS
------------------------------------------------------------------------------------------------------------------------
--------------------------------------------------------------------------------------------------------------------- */

.gtm-credits .page-header {
  text-align: center;
}

.gtm-credits .com-content-article__body {
  text-align: center;
}

.gtm-credits .com-content-article__body img.gtm-logo-gestimark-credit {
  width: 100%;
  max-width: 400px !important;
  padding-top: var(--space-lg);
  padding-bottom: var(--space-lg);
}

/* ---------------------------------------------------------------------------------------------------------------------
------------------------------------------------------------------------------------------------------------------------
MERCI / OUPS
------------------------------------------------------------------------------------------------------------------------
--------------------------------------------------------------------------------------------------------------------- */

#oups .gtm-wrapper,
#merci .gtm-wrapper {
  margin-top: var(--space-0);
  margin-bottom: var(--space-0);
}

.gtm-img-merci .gtm-custom,
.gtm-img-oups .gtm-custom {
  min-height: 50dvh;
}

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

  .gtm-merci,
  .gtm-oups {
    display: flex;
    flex-direction: column;
    justify-content: center;
  }

  .gtm-img-merci .gtm-custom,
  .gtm-img-oups .gtm-custom {
    min-height: 100dvh;
  }
}

/* ---------------------------------------------------------------------------------------------------------------------
------------------------------------------------------------------------------------------------------------------------
SITE MAPS
------------------------------------------------------------------------------------------------------------------------
--------------------------------------------------------------------------------------------------------------------- */

.osmap-sitemap {
  padding: var(--space-xl);
}

/* ---------------------------------------------------------------------------------------------------------------------
------------------------------------------------------------------------------------------------------------------------
  COOKIES
------------------------------------------------------------------------------------------------------------------------
--------------------------------------------------------------------------------------------------------------------- */

/* image de cookie */

.cc-revoke.cc-bottom {
  position: relative;
  bottom: 0;
  left: 50%;
  transform: translateX(-50%) !important;
  width: 30px;
  height: 40px;
  background-image: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 1268.1 1268.1'><g><circle fill='%23fff' cx='634' cy='634' r='626.2'/><path fill='%23D42B1E' d='M448.7 783.8c-29.3 0-53.2 23.9-53.2 53.2s24 53.2 53.2 53.2 53.2-23.9 53.2-53.2-23.9-53.2-53.2-53.2zM1072.5 758.6c-29.3 0-53.2 23.9-53.2 53.2s24 53.2 53.2 53.2c3.4 0 6.9-.3 10.5-1.1 13.4-26.2 24.7-53.6 33.4-82.2-9-13.9-15.2-23.1-43.8-23.1zM516 418.1c-29.3 0-53.2 23.9-53.2 53.2s24 53.2 53.2 53.2 53.2-23.9 53.2-53.2-23.9-53.2-53.2-53.2zM223.3 412.3c29.5 0 53.2-31.9 53.2-53.2s-12.1-38.9-29.7-47.6c-9.2 11-18 22.4-26.3 34.2-9.5 13.6-18.3 27.6-26.5 42.1-1.9 3.4-3.7 6.8-5.5 10.2-.1.3-.3.5-.4.8 8.5 8.5 6.6 13.6 35.2 13.6zM1115.3 603.7c-36-1.9-67.7-23.2-82.9-56-2.9-6.5-8.7-11.4-15.7-13.3-7-2-14.3-.5-20.4 3.6-16.2 11.4-36 17.6-55.8 17.6s-33.6-4.6-48.1-13.1c-32.7-18.9-51.3-55.2-47.9-92.6.7-7.3-2-14.3-7-19.3s-12-7.8-19.3-7c-2.9.3-5.8.5-8.7.5-34.6 0-66.8-18.6-84-48.4-18.9-32.7-16.9-73.5 4.9-104.2 4.1-5.8 5.6-13.3 3.6-20.4-2-7-6.8-12.6-13.3-15.7-32.7-15.2-54.2-46.9-56.1-82.9-.8-12.9-11.3-22.9-24.1-23.1h-6.5c-137.7.2-262.7 55.8-353.8 145.6 26.8 18.4 44.4 49.1 44.4 84 0 56.1-45.3 101.5-101 101.5s-40.5-6.3-56.5-17.1c-24.1 58.8-37.4 123.2-37.4 190.6 0 278.1 226.2 504.3 504.3 504.3s330.4-90.1 420.8-226.6c-47.6-8.2-84-44.2-84-99.9s45.5-101.6 101.6-101.6 40.9 6.5 57.2 17.5c5.7-30.4 8.7-61.7 8.7-93.7v-6.5c-.3-12.8-10.2-23.3-23-23.9zM448.7 938.6c-56.1 0-101.6-45.5-101.6-101.6s45.5-101.6 101.6-101.6 101.6 45.5 101.6 101.6-45.5 101.6-101.6 101.6zM516 572.9c-56.1 0-101.6-45.5-101.6-101.6s45.5-101.6 101.6-101.6 101.6 45.5 101.6 101.6-45.5 101.6-101.6 101.6zM725.9 890.2c-72 0-130.6-58.6-130.6-130.6s58.5-130.6 130.6-130.6 130.6 58.6 130.6 130.6-58.6 130.6-130.6 130.6zM725.9 677.2c-45.3 0-82.3 37-82.3 82.3s37.1 82.3 82.3 82.3 82.3-37 82.3-82.3-37-82.3-82.3-82.3z'/></g></svg>");
  background-repeat: no-repeat;
  background-size: contain;
  background-color: transparent !important;
  order: 999999;
    -webkit-animation: cookie 0.4ss .8s both;
  animation: cookie 0.4s .8s both;
  transition: background-image 0.3s ease;
}

.cc-revoke.cc-bottom:hover {
  background-image: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 1268.1 1268.1'><g><circle fill='%23fff' cx='634' cy='634' r='626.2'/><path fill='%23B82518' d='M448.7 783.8c-29.3 0-53.2 23.9-53.2 53.2s24 53.2 53.2 53.2 53.2-23.9 53.2-53.2-23.9-53.2-53.2-53.2zM1072.5 758.6c-29.3 0-53.2 23.9-53.2 53.2s24 53.2 53.2 53.2c3.4 0 6.9-.3 10.5-1.1 13.4-26.2 24.7-53.6 33.4-82.2-9-13.9-15.2-23.1-43.8-23.1zM516 418.1c-29.3 0-53.2 23.9-53.2 53.2s24 53.2 53.2 53.2 53.2-23.9 53.2-53.2-23.9-53.2-53.2-53.2zM223.3 412.3c29.5 0 53.2-31.9 53.2-53.2s-12.1-38.9-29.7-47.6c-9.2 11-18 22.4-26.3 34.2-9.5 13.6-18.3 27.6-26.5 42.1-1.9 3.4-3.7 6.8-5.5 10.2-.1.3-.3.5-.4.8 8.5 8.5 6.6 13.6 35.2 13.6zM1115.3 603.7c-36-1.9-67.7-23.2-82.9-56-2.9-6.5-8.7-11.4-15.7-13.3-7-2-14.3-.5-20.4 3.6-16.2 11.4-36 17.6-55.8 17.6s-33.6-4.6-48.1-13.1c-32.7-18.9-51.3-55.2-47.9-92.6.7-7.3-2-14.3-7-19.3s-12-7.8-19.3-7c-2.9.3-5.8.5-8.7.5-34.6 0-66.8-18.6-84-48.4-18.9-32.7-16.9-73.5 4.9-104.2 4.1-5.8 5.6-13.3 3.6-20.4-2-7-6.8-12.6-13.3-15.7-32.7-15.2-54.2-46.9-56.1-82.9-.8-12.9-11.3-22.9-24.1-23.1h-6.5c-137.7.2-262.7 55.8-353.8 145.6 26.8 18.4 44.4 49.1 44.4 84 0 56.1-45.3 101.5-101 101.5s-40.5-6.3-56.5-17.1c-24.1 58.8-37.4 123.2-37.4 190.6 0 278.1 226.2 504.3 504.3 504.3s330.4-90.1 420.8-226.6c-47.6-8.2-84-44.2-84-99.9s45.5-101.6 101.6-101.6 40.9 6.5 57.2 17.5c5.7-30.4 8.7-61.7 8.7-93.7v-6.5c-.3-12.8-10.2-23.3-23-23.9zM448.7 938.6c-56.1 0-101.6-45.5-101.6-101.6s45.5-101.6 101.6-101.6 101.6 45.5 101.6 101.6-45.5 101.6-101.6 101.6zM516 572.9c-56.1 0-101.6-45.5-101.6-101.6s45.5-101.6 101.6-101.6 101.6 45.5 101.6 101.6-45.5 101.6-101.6 101.6zM725.9 890.2c-72 0-130.6-58.6-130.6-130.6s58.5-130.6 130.6-130.6 130.6 58.6 130.6 130.6-58.6 130.6-130.6 130.6zM725.9 677.2c-45.3 0-82.3 37-82.3 82.3s37.1 82.3 82.3 82.3 82.3-37 82.3-82.3-37-82.3-82.3-82.3z'/></g></svg>");
}

@keyframes cookie {
  0% {  
    visibility: hidden;
    transform: translate(0%, 100%); 
  }
  100% {
    visibility: visible;
    transform: translate(0%, 0%); 
  }
}

/* grille du pop up */
.cc-message-text {
  display: grid;
  grid-template-columns: 1fr;
  grid-template-rows: repeat(3, auto);
  grid-column-gap: 0px;
  grid-row-gap: 0px;
}
  
.cc-message-text .p1 { 
  grid-area: 1 / 1 / 2 / 2; 
}

.cc-message-text .cc-checkboxes-container {
  grid-area: 2 / 1 / 3 / 2;
  margin-top: var(--space-xs);
  margin-bottom: var(--space-xs);
}

.cc-message-text .cc-compliance {
  grid-area: 3 / 1 / 4 / 2;
}

/* bouton fermeture popup */
.cc-close {
  top: 0.8em;
  right: 0.6em;
  font-size: var(--font-size-xs);  
}


/* boutons */
span.cc-cookie-settings-toggle, div.cc-window a.cc-btn {
  /* border-radius: var(--border-radius-button) !important; */
  text-decoration: none !important;
  font-size: inherit;
}

span.cc-cookie-settings-toggle, .cc-btn.cc-allowall, .cc-btn.cc-deny, a.cc-btn.cc-allow {
  font-weight: 500;
  padding: var(--space-xs) !important;
  line-height: 1.2;
  height: inherit !important;
  font-size: inherit;
}

span.cc-cookie-settings-toggle:hover, .cc-btn.cc-allowall:hover, .cc-btn.cc-deny:hover, a.cc-btn.cc-allow:hover , a.cc-btn.cc-deny:hover{
  background-color: var(--color-background-button-hover) !important;
  border-color: #3a3a3a !important;
  color: var(--color-text-light) !important;
}

/* lien politique de confidentialité et catégories de cookies */
a.cc-link.cc-privacy:hover {
  color: var(--color-link-hover);
}

a.cc-link.cc-cookie-checkbox:hover label {
  color: var(--color-text-light);
}


/* alignement */
div.cc-checkboxes-container {
  align-items: center;
  margin-top: var(--space-0);
}

input.cc-cookie-checkbox+span:after, input.cc-cookie-checkbox+span:before {
  display: none;
}

input.cc-cookie-checkbox {
  appearance: auto !important;
  opacity: 1;
}

.cc-cookie-settings-toggler {
  display: none !important;
}

input.cc-cookie-checkbox:checked+span:after, input.cc-cookie-checkbox:checked+span:before {
  display: none !important;
}

div.cc-checkboxes-container a.cc-btn.cc-allow {
  margin-bottom: var(--space-0) !important;
}

/* /////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
  ACCESSIBILITE
///////////////////////////////////////////////////////////////////////////////////////////////////////////////////// */

.ba__accessibility-container {
  background: #fff;
}

.ba__accessibility-audio, .ba__accessibility-font, .ba__accessibility-blend, .ba__accessibility-other, .ba__accessibility-colour {
  background: var(--h-paper);
  border: 1px solid var(--h-line);
}

.ba__accessibility-body > * {
  box-shadow: inherit;
}

.ba__accessibility > .ba__accessibility-action-button {
  background: var(--h-paper);
  color: var(--h-navy);
}

.ba__accessibility [class*="-button"]:hover {
  box-shadow: 0 0 1em var(--h-line);
}

.ba__accessibility [class*="-button"] :last-child, .ba__accessibility [class$="-slider"] label, .ba__accessibility [class*="-color"] label {
    text-transform: inherit;
}

.ba__accessibility {
  z-index: 0;
  bottom: 15px;
  top: unset;
}

.ba__accessibility.ba__accessibility-open {
  top: 30px;
  z-index: 9999999;
}

.ba__accessibility > .ba__accessibility-action-button {
  width: 2.5em;
  height: 2.5em;
}

.ba__accessibility:not(.ba__accessibility-open) > [class*="-button"]::after {
  animation: none !important;
  -webkit-animation: none !important;
}

.ba__accessibility {
  height: 3em; /* hauteur du SVG */
  /* overflow: hidden; */
  transition: height 0.4s ease;
}

.ba__accessibility.ba__accessibility-open {
  height: calc(100% - 60px); /* hauteur totale de la section quand ouverte */
  z-index: 10000001;
}


/* ---------------------------------------------------------------------------------------------------------------------
------------------------------------------------------------------------------------------------------------------------
  MATRICE
------------------------------------------------------------------------------------------------------------------------
--------------------------------------------------------------------------------------------------------------------- */

.gtm-top1,
.gtm-top2,
.gtm-top3,
.gtm-top4,
.gtm-top5,
.gtm-top6,
.gtm-top7,
.gtm-top8,
.gtm-top9,
.gtm-top10,
.gtm-top11,
.gtm-top12,
.gtm-box-article,
.gtm-bottom1,
.gtm-bottom2,
.gtm-bottom3,
.gtm-bottom4,
.gtm-bottom5,
.gtm-bottom6,
.gtm-bottom7,
.gtm-bottom8,
.gtm-bottom9,
.gtm-bottom10,
.gtm-bottom11,
.gtm-bottom12,
.gtm-footer {
  display: grid;
  grid-template-columns: repeat(12, 1fr);
}

.com-content-article, form, .osmap-sitemap {
  grid-column: span 12;
}

/* Mobiles (jusqu'à 768px) */
.com-content-article,
.com-content-article.gtm-12,
.com-content-category-blog,
.com-content-category-blog.gtm-12,
.moduletable,
.moduletable.gtm-12,
form.gtm-12 {
  grid-column: span 12
}

.com-content-article.gtm-1,
.com-content-category-blog.gtm-1,
.moduletable.gtm-1,
form.gtm-1 {
  grid-column: span 1
}

.com-content-article.gtm-2,
.com-content-category-blog.gtm-2,
.moduletable.gtm-2,
form.gtm-2 {
  grid-column: span 2
}

.com-content-article.gtm-3,
.com-content-category-blog.gtm-3,
.moduletable.gtm-3,
form.gtm-3 {
  grid-column: span 3
}

.com-content-article.gtm-4,
.com-content-category-blog.gtm-4,
.moduletable.gtm-4,
form.gtm-4 {
  grid-column: span 4
}

.com-content-article.gtm-5,
.com-content-category-blog.gtm-5,
.moduletable.gtm-5,
form.gtm-5 {
  grid-column: span 5
}

.com-content-article.gtm-6,
.com-content-category-blog.gtm-6,
.moduletable.gtm-6,
form.gtm-6 {
  grid-column: span 6
}

.com-content-article.gtm-7,
.com-content-category-blog.gtm-7,
.moduletable.gtm-7,
form.gtm-7 {
  grid-column: span 7
}

.com-content-article.gtm-8,
.com-content-category-blog.gtm-8,
.moduletable.gtm-8,
form.gtm-8 {
  grid-column: span 8
}

.com-content-article.gtm-9,
.com-content-category-blog.gtm-9,
.moduletable.gtm-9,
form.gtm-9 {
  grid-column: span 9
}

.com-content-article.gtm-10,
.com-content-category-blog.gtm-10,
.moduletable.gtm-10,
form.gtm-10 {
  grid-column: span 10
}

.com-content-article.gtm-11,
.com-content-category-blog.gtm-11,
.moduletable.gtm-11,
form.gtm-11 {
  grid-column: span 11
}

/* Appareils de taille moyenne (tablettes, 768px et plus) */
@media (min-width : 768px) {

  .com-content-article.gtm-tablette-1,
  .com-content-category-blog.gtm-tablette-1,
  .moduletable.gtm-tablette-1,
  form.gtm-tablette-1 {
    grid-column: span 1
  }

  .com-content-article.gtm-tablette-2,
  .com-content-category-blog.gtm-tablette-12,
  .moduletable.gtm-tablette-2,
  form.gtm-tablette-2 {
    grid-column: span 2
  }

  .com-content-article.gtm-tablette-3,
  .com-content-category-blog.gtm-tablette-3,
  .moduletable.gtm-tablette-3,
  form.gtm-tablette-3 {
    grid-column: span 3
  }

  .com-content-article.gtm-tablette-4,
  .com-content-category-blog.gtm-tablette-4,
  .moduletable.gtm-tablette-4,
  form.gtm-tablette-4 {
    grid-column: span 4
  }

  .com-content-article.gtm-tablette-5,
  .com-content-category-blog.gtm-tablette-5,
  .moduletable.gtm-tablette-5,
  form.gtm-tablette-5 {
    grid-column: span 5
  }

  .com-content-article.gtm-tablette-6,
  .com-content-category-blog.gtm-tablette-6,
  .moduletable.gtm-tablette-6,
  form.gtm-tablette-6 {
    grid-column: span 6
  }

  .com-content-article.gtm-tablette-7,
  .com-content-category-blog.gtm-tablette-7,
  .moduletable.gtm-tablette-7,
  form.gtm-tablette-7 {
    grid-column: span 7
  }

  .com-content-article.gtm-tablette-8,
  .com-content-category-blog.gtm-tablette-8,
  .moduletable.gtm-tablette-8,
  form.gtm-tablette-8 {
    grid-column: span 8
  }

  .com-content-article.gtm-tablette-9,
  .com-content-category-blog.gtm-tablette-9,
  .moduletable.gtm-tablette-9,
  form.gtm-tablette-9 {
    grid-column: span 9
  }

  .com-content-article.gtm-tablette-10,
  .com-content-category-blog.gtm-tablette-10,
  .moduletable.gtm-tablette-10,
  form.gtm-tablette-10 {
    grid-column: span 10
  }

  .com-content-article.gtm-tablette-11,
  .com-content-category-blog.gtm-tablette-11,
  .moduletable.gtm-tablette-11,
  form.gtm-tablette-11 {
    grid-column: span 11
  }

  .com-content-article.gtm-tablette-12,
  .com-content-category-blog.gtm-tablette-12,
  .moduletable.gtm-tablette-12,
  form.gtm-tablette-12 {
    grid-column: span 12
  }
}

/* Grands appareils (grandes tablettes, ordinateurs de bureau, 992px et plus) */
@media (min-width : 992px) {

  .com-content-article.gtm-tablette-plus-1,
  .com-content-category-blog.gtm-tablette-plus-1,
  .moduletable.gtm-tablette-plus-1,
  form.gtm-tablette-plus-1 {
    grid-column: span 1
  }

  .com-content-article.gtm-tablette-plus-2,
  .com-content-category-blog.gtm-tablette-plus-2,
  .moduletable.gtm-tablette-plus-2,
  form.gtm-tablette-plus-2 {
    grid-column: span 2
  }

  .com-content-article.gtm-tablette-plus-3,
  .com-content-category-blog.gtm-tablette-plus-3,
  .moduletable.gtm-tablette-plus-3,
  form.gtm-tablette-plus-3 {
    grid-column: span 3
  }

  .com-content-article.gtm-tablette-plus-4,
  .com-content-category-blog.gtm-tablette-plus-4,
  .moduletable.gtm-tablette-plus-4,
  form.gtm-tablette-plus-4 {
    grid-column: span 4
  }

  .com-content-article.gtm-tablette-plus-5,
  .com-content-category-blog.gtm-tablette-plus-5,
  .moduletable.gtm-tablette-plus-5,
  form.gtm-tablette-plus-5 {
    grid-column: span 5
  }

  .com-content-article.gtm-tablette-plus-6,
  .com-content-category-blog.gtm-tablette-plus-6,
  .moduletable.gtm-tablette-plus-6,
  form.gtm-tablette-plus-6 {
    grid-column: span 6
  }

  .com-content-article.gtm-tablette-plus-7,
  .com-content-category-blog.gtm-tablette-plus-7,
  .moduletable.gtm-tablette-plus-7,
  form.gtm-tablette-plus-7 {
    grid-column: span 7
  }

  .com-content-article.gtm-tablette-plus-8,
  .com-content-category-blog.gtm-tablette-plus-8,
  .moduletable.gtm-tablette-plus-8,
  form.gtm-tablette-plus-8 {
    grid-column: span 8
  }

  .com-content-article.gtm-tablette-plus-9,
  .com-content-category-blog.gtm-tablette-plus-9,
  .moduletable.gtm-tablette-plus-9,
  form.gtm-tablette-plus-9 {
    grid-column: span 9
  }

  .com-content-article.gtm-tablette-plus-10,
  .com-content-category-blog.gtm-tablette-plus-10,
  .moduletable.gtm-tablette-plus-10,
  form.gtm-tablette-plus-10 {
    grid-column: span 10
  }

  .com-content-article.gtm-tablette-plus-11,
  .com-content-category-blog.gtm-tablette-plus-11,
  .moduletable.gtm-tablette-plus-11,
  form.gtm-tablette-plus-11 {
    grid-column: span 11
  }

  .com-content-article.gtm-tablette-plus-12,
  .com-content-category-blog.gtm-tablette-plus-12,
  .moduletable.gtm-tablette-plus-12,
  form.gtm-tablette-plus-12 {
    grid-column: span 12
  }
}

/* Appareils très grands (grands ordinateurs, 1200px et plus) */
@media (min-width : 1200px) {

  .com-content-article.gtm-ordinateur-1,
  .com-content-category-blog.gtm-ordinateur-1,
  .moduletable.gtm-ordinateur-1,
  form.gtm-ordinateur-1 {
    grid-column: span 1
  }

  .com-content-article.gtm-ordinateur-2,
  .com-content-category-blog.gtm-ordinateur-2,
  .moduletable.gtm-ordinateur-2,
  form.gtm-ordinateur-2 {
    grid-column: span 2
  }

  .com-content-article.gtm-ordinateur-3,
  .com-content-category-blog.gtm-ordinateur-3,
  .moduletable.gtm-ordinateur-3,
  form.gtm-ordinateur-3 {
    grid-column: span 3
  }

  .com-content-article.gtm-ordinateur-4,
  .com-content-category-blog.gtm-ordinateur-4,
  .moduletable.gtm-ordinateur-4,
  form.gtm-ordinateur-4 {
    grid-column: span 4
  }

  .com-content-article.gtm-ordinateur-5,
  .com-content-category-blog.gtm-ordinateur-5,
  .moduletable.gtm-ordinateur-5,
  form.gtm-ordinateur-5 {
    grid-column: span 5
  }

  .com-content-article.gtm-ordinateur-6,
  .com-content-category-blog.gtm-ordinateur-6,
  .moduletable.gtm-ordinateur-6,
  form.gtm-ordinateur-6 {
    grid-column: span 6
  }

  .com-content-article.gtm-ordinateur-7,
  .com-content-category-blog.gtm-ordinateur-7,
  .moduletable.gtm-ordinateur-7,
  form.gtm-ordinateur-7 {
    grid-column: span 7
  }

  .com-content-article.gtm-ordinateur-8,
  .com-content-category-blog.gtm-ordinateur-8,
  .moduletable.gtm-ordinateur-8,
  form.gtm-ordinateur-8 {
    grid-column: span 8
  }

  .com-content-article.gtm-ordinateur-9,
  .com-content-category-blog.gtm-ordinateur-9,
  .moduletable.gtm-ordinateur-9,
  form.gtm-ordinateur-9 {
    grid-column: span 9
  }

  .com-content-article.gtm-ordinateur-10,
  .com-content-category-blog.gtm-ordinateur-10,
  .moduletable.gtm-ordinateur-10,
  form.gtm-ordinateur-10 {
    grid-column: span 10
  }

  .com-content-article.gtm-ordinateur-11,
  .com-content-category-blog.gtm-ordinateur-11,
  .moduletable.gtm-ordinateur-11,
  form.gtm-ordinateur-11 {
    grid-column: span 11
  }

  .com-content-article.gtm-ordinateur-12,
  .com-content-category-blog.gtm-ordinateur-12,
  .moduletable.gtm-ordinateur-12,
  form.gtm-ordinateur-12 {
    grid-column: span 12
  }
}

/* ---------------------------------------------------------------------------------------------------------------------
------------------------------------------------------------------------------------------------------------------------
  PAGE POSITIONS
------------------------------------------------------------------------------------------------------------------------
--------------------------------------------------------------------------------------------------------------------- */
#positions .gtm-bloc-section {
  margin-bottom: var(--space-lg);
}

#positions .gtm-mod-matrice {
  display: grid;
  grid-template-columns: repeat(12, 1fr);
  column-gap: 20px;
  row-gap: 20px;
}

.gtm-mod-hero {
  grid-column: span 12;
  display: flex;
  align-items: center;
  justify-content: center;
  flex-direction: column;
  padding: var(--space-xs) var(--space-sm);
  text-align: center;
}

.gtm-mod-top-content, .gtm-mod-bottom-content, .gtm-mod-content-left, .gtm-mod-content-article, .gtm-mod-content-right, .gtm-mod-hero, .gtm-mod-footer {
  grid-column: span 12;
  min-height: 300px;
  border-radius: var(--border-radius-small);
  display: flex;
  align-items: center;
  justify-content: center;
  flex-direction: column;
  text-align: center;
  padding: var(--space-xs) var(--space-sm);
}

.gtm-mod-hero {
    background-color: #f0a8e3;
    transition: background-color .2s ease-in-out;
}

.gtm-mod-hero:hover {
    background-color: #ff00d0;
}

.gtm-mod-top-content {
  background-color: #91ebbe;
  transition: background-color .2s ease-in-out;
}

.gtm-mod-top-content:hover {
  background-color: #00e974;
}

.gtm-mod-content-left, .gtm-mod-content-article, .gtm-mod-content-right {
  background-color: #d3ec7a;
  transition: background-color .2s ease-in-out;
}

.gtm-mod-content-left:hover, .gtm-mod-content-article:hover, .gtm-mod-content-right:hover {
  background-color: #e1ff00;
}

.gtm-mod-bottom-content {
  background-color: #a8def0;
  transition: background-color .2s ease-in-out;
}

.gtm-mod-bottom-content:hover {
  background-color: #00b0ea;
}

.gtm-mod-footer {
    background-color: #f0a8a8;
    transition: background-color .2s ease-in-out;
}

.gtm-mod-footer:hover {
    background-color: #e91f1f;
}


#positions .gtm-important {
  color: red;
  font-family: var(--font-heading);
}

.gtm-1 {grid-column: span 1;}.gtm-2 {grid-column: span 2;}.gtm-3 {grid-column: span 3;}.gtm-4 {grid-column: span 4;}.gtm-5 {grid-column: span 5;}.gtm-6 {grid-column: span 6;}.gtm-7 {grid-column: span 7;}.gtm-8 {grid-column: span 8;}.gtm-9 {grid-column: span 9;}.gtm-10 {grid-column: span 10;}.gtm-11 {grid-column: span 11;}.gtm-12 {grid-column: span 12;}

@media screen and (min-width: 768px) {
  .gtm-tablette-1 {grid-column: span 1;} .gtm-tablette-2 {grid-column: span 2;}.gtm-tablette-3 {grid-column: span 3;}.gtm-tablette-4 {grid-column: span 4;}.gtm-tablette-5 {grid-column: span 5;}.gtm-tablette-6 {grid-column: span 6;}.gtm-tablette-7 {grid-column: span 7;}.gtm-tablette-8 {grid-column: span 8;}.gtm-tablette-9 {grid-column: span 9;}.gtm-tablette-10 {grid-column: span 10;}.gtm-tablette-11 {grid-column: span 11;}.gtm-tablette-12 {grid-column: span 12;}
}

@media screen and (min-width: 992px) {
  .gtm-tablette-plus-1 {grid-column: span 1;}.gtm-tablette-plus-2 {grid-column: span 2;}.gtm-tablette-plus-3 {grid-column: span 3;}.gtm-tablette-plus-4 {grid-column: span 4;}.gtm-tablette-plus-5 {grid-column: span 5;}.gtm-tablette-plus-6 {grid-column: span 6;}.gtm-tablette-plus-7 {grid-column: span 7;}.gtm-tablette-plus-8 {grid-column: span 8;}.gtm-tablette-plus-9 {grid-column: span 9;}.gtm-tablette-plus-10 {grid-column: span 10;}.gtm-tablette-plus-11 {grid-column: span 11;}.gtm-tablette-plus-12 {grid-column: span 12;}
}

@media screen and (min-width: 992px) {
  .gtm-ordinateur-1 {grid-column: span 1;}.gtm-ordinateur-2 {grid-column: span 2;}.gtm-ordinateur-3 {grid-column: span 3;}.gtm-ordinateur-4 {grid-column: span 4;}.gtm-ordinateur-5 {grid-column: span 5;}.gtm-ordinateur-6 {grid-column: span 6;}.gtm-ordinateur-7 {grid-column: span 7;}.gtm-ordinateur-8 {grid-column: span 8;}.gtm-ordinateur-9 {grid-column: span 9;}.gtm-ordinateur-10 {grid-column: span 10;}.gtm-ordinateur-11 {grid-column: span 11;}.gtm-ordinateur-12 {grid-column: span 12;}
}





/* #endregion */

/* #region STYLE ----------------------------------------------------------------------------------------------------- */

/* /////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
   MODULE LOGO + HEADER
///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// */

.gtm-logo-header {
  background-color: var(--h-navy);
  padding: 14px 52px;
  border-bottom: 1px solid rgba(255, 255, 255, .08);
}

.gtm-btn-action-header {
  padding-right: 15px;
}

.gtm-logo-header .gtm-custom .gtm-logo-ouellet {
  display: flex;
  justify-content: space-between;
  align-items: center;
}

.gtm-logo-ouellet .gtm-logo-wrap img {
  width: 180px;
}


@media screen and (max-width:670px) {
  .gtm-btn-action-header {
  display: none;
}
}

/* /////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
   MODULE HERO
///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// */

/* ======================================================================================================================
   LAYOUT PRINCIPAL : 2 colonnes 50/50
====================================================================================================================== */

.gtm-hero-section {
  display: grid;
  grid-template-columns: 1fr 1fr;
  min-height: 580px;
  background: var(--h-paper);
}

/* ======================================================================================================================
   COLONNE GAUCHE
====================================================================================================================== */

.gtm-hero-left {
  padding: 68px 52px 60px;
  display: flex;
  flex-direction: column;
  justify-content: space-between;
  border-right: 1px solid var(--h-line);
}

/* Bloc supérieur (eyebrow + titre + "Depuis 1971") */
.gtm-hero-top {
  display: flex;
  flex-direction: column;
}

/* ---- Eyebrow ---- */
.gtm-hero-eyebrow {
  display: flex;
  align-items: center;
  gap: 10px;
  margin-bottom: 24px;
}

.gtm-hero-eyebrow-line {
  display: block;
  width: 28px;
  height: 1px;
  background: var(--h-red);
  flex-shrink: 0;
}

.gtm-hero-eyebrow-txt {
  font-size: var(--font-size-xs);   /* ≈ 10–12px — variable du template */
  font-weight: 600;
  color: var(--h-ink3);
  letter-spacing: 2.5px;
  text-transform: uppercase;
}

/* ---- Titre h1 ----
   On surcharge uniquement les propriétés typographiques spécifiques au design Ouellet.
   La variable de taille vient du template mais on impose line-height et letter-spacing serrés.
*/
.gtm-hero-section h1.gtm-hero-title {
  font-size: clamp(40px, 5vw, 62px);
  font-weight: 700;
  color: var(--h-ink);
  line-height: 0.96;
  letter-spacing: -2.5px;
  margin-top: 0;
  margin-bottom: 16px;
}

.gtm-hero-section h1.gtm-hero-title em {
  color: var(--h-red);
  font-style: normal;
}

/* ---- Sous-titre "Depuis 1971" ---- */
.gtm-hero-since {
  font-size: var(--font-size-xs);
  color: var(--h-ink3);
  letter-spacing: 2px;
  text-transform: uppercase;
  font-weight: 400;
  margin-bottom: 0;   /* reset du p global */
}

/* ---- Bloc bas (description + boutons) ---- */
.gtm-hero-bottom {
  display: flex;
  flex-direction: column;
  gap: 18px;
}

/* ---- Description ---- */
.gtm-hero-desc {
  font-size: clamp(16px, 1.5vw, 20px);
  color: var(--h-ink2);
  line-height: 1.65;
  max-width: 400px;
  margin-bottom: 0;   /* reset du p global */
}

/* ---- Navigation CTA ---- */
.gtm-hero-btns {
  display: flex;
  flex-wrap: wrap;
  gap: 9px;
}

/* Bouton rouge plein */
.gtm-hero-btn-primary {
  background: var(--h-red);
  color: #fff;
  border: none;
  padding: 13px 24px;
  font-size: var(--font-size-xs);
  font-weight: 700;
  border-radius: 2px;
  letter-spacing: 0.3px;
  text-transform: uppercase;
  white-space: nowrap;
  display: inline-block;
  transition: background 0.15s ease;
  cursor: pointer;
}

.gtm-hero-btn-primary:hover {
  background: var(--h-red-h);
  color: #fff;
}

/* Bouton outline sur fond clair */
.gtm-hero-btn-outline {
  background: transparent;
  color: var(--h-ink);
  border: 1px solid var(--h-line);
  padding: 12px 18px;
  font-size: var(--font-size-xs);
  font-weight: 500;
  border-radius: 2px;
  display: inline-block;
  transition: border-color 0.15s ease;
  cursor: pointer;
}

.gtm-hero-btn-outline:hover {
  border-color: var(--h-ink);
  color: var(--h-ink);
}

/* ======================================================================================================================
   COLONNE DROITE
====================================================================================================================== */

.gtm-hero-right {
  position: relative;
  overflow: hidden;
  display: grid;
  grid-template-rows: 1fr auto;
}

/* ---- Figure / image ---- */
.gtm-hero-figure {
  overflow: hidden;
  position: relative;
  min-height: 400px;
  height: 100%;        /* s'étire pour remplir la cellule 1fr de la grille */
  margin: 0;           /* reset figure global */
}

.gtm-hero-figure img {
  width: 100%;
  height: 100%;
  position: absolute;  /* détache l'image du flux pour qu'elle couvre toute la figure */
  top: 0;
  left: 0;
  object-fit: cover;
  display: block;
  transition: transform 0.5s cubic-bezier(0.25, 0.46, 0.45, 0.94);
}

.gtm-hero-figure:hover img {
  transform: scale(1.03);
}

/* ---- Badge flottant "50+ Ans d'expérience" ---- */
.gtm-hero-badge {
  position: absolute;
  top: 24px;
  right: 24px;
  background: rgba(250, 250, 248, 0.93);
  border: 1px solid var(--h-line);
  border-radius: 3px;
  padding: 12px 16px;
  animation: gtm-hero-float 5s ease-in-out infinite;
  display: flex;
  flex-direction: column;
  align-items: flex-start;
}

@keyframes gtm-hero-float {
  0%, 100% { transform: translateY(0); }
  50%       { transform: translateY(-7px); }
}

.gtm-hero-badge-num {
  font-size: 32px;
  font-weight: 700;
  color: var(--h-navy);
  line-height: 1;
  letter-spacing: -1.5px;
  display: block;
}

.gtm-hero-badge-lbl {
  font-size: 9px;
  color: var(--h-ink3);
  text-transform: uppercase;
  letter-spacing: 1.5px;
  margin-top: 3px;
  display: block;
}

/* ---- Barre preuves sociales ---- */
.gtm-hero-bar {
  padding: 18px 24px;
  border-top: 1px solid var(--h-line);
  border-bottom: 1px solid var(--h-line);
  background: var(--h-paper);
  display: flex;
  align-items: center;
  justify-content: space-between;
  flex-wrap: wrap;
  gap: 10px;
}

/* ---- Étoiles + note ---- */
.gtm-hero-proof {
  display: flex;
  align-items: center;
  gap: 10px;
  margin-bottom: 0;   /* reset du p global */
}

.gtm-hero-stars {
  color: var(--h-red);
  font-size: 12px;
  letter-spacing: 1px;
}

.gtm-hero-proof-txt {
  font-size: 13px;
  color: var(--h-ink2);
}

.gtm-hero-proof-txt strong {
  font-weight: 700;
  color: var(--h-ink);
}

/* ---- Chips certifications ---- */
.gtm-hero-chips {
  display: flex;
  gap: 6px;
  flex-wrap: wrap;
  list-style: none;     /* reset ul global */
  margin-left: 0;       /* reset ul global */
  margin-bottom: 0;     /* reset ul global */
}

.gtm-hero-chips li {
  margin-bottom: 0;     /* reset li global */
}

.gtm-hero-chip {
  display: inline-block;
  font-size: var(--font-size-xs);
  font-weight: 600;
  color: var(--h-navy);
  border: 1px solid rgba(10, 31, 61, 0.2);
  padding: 4px 10px;
  border-radius: 1px;
  letter-spacing: 0.4px;
  text-transform: uppercase;
  background: rgba(10, 31, 61, 0.04);
}

/* ======================================================================================================================
   ANIMATIONS D'ENTRÉE
====================================================================================================================== */

.gtm-hero-left > * {
  animation: gtm-hero-fade-up 0.7s cubic-bezier(0.16, 1, 0.3, 1) both;
}

.gtm-hero-left > *:nth-child(1) { animation-delay: 0s; }
.gtm-hero-left > *:nth-child(2) { animation-delay: 0.08s; }

.gtm-hero-right {
  animation: gtm-hero-fade-up 0.7s 0.2s cubic-bezier(0.16, 1, 0.3, 1) both;
}

@keyframes gtm-hero-fade-up {
  from { opacity: 0; transform: translateY(24px); }
  to   { opacity: 1; transform: translateY(0); }
}

/* ======================================================================================================================
   RESPONSIVE — TABLETTE (≤ 1024px)
====================================================================================================================== */

@media (max-width: 1024px) {
  .gtm-hero-section {
    grid-template-columns: 1fr;
    min-height: auto;
  }

  .gtm-hero-left {
    padding: 48px 32px 40px;
    border-right: none;
    border-bottom: 1px solid var(--h-line);
  }

  .gtm-hero-right {
    grid-template-rows: auto auto;
  }

  .gtm-hero-figure {
    min-height: 320px;
  }
}

/* ======================================================================================================================
   RESPONSIVE — MOBILE (≤ 768px)
====================================================================================================================== */

@media (max-width: 768px) {
  .gtm-hero-left {
    padding: 28px 20px 32px;
  }

  .gtm-hero-section h1.gtm-hero-title {
    font-size: 40px;
    letter-spacing: -1.8px;
  }

  .gtm-hero-bottom {
    gap: 14px;
  }

  .gtm-hero-btns {
    flex-direction: column;
  }

  .gtm-hero-btn-primary,
  .gtm-hero-btn-outline {
    width: 100%;
    padding: 14px;
    font-size: 14px;
    text-align: center;
    white-space: normal;
  }

  .gtm-hero-figure {
    min-height: 240px;
  }

  /* Badge masqué sur mobile (trop petit, encombrant) */
  .gtm-hero-badge {
    display: none;
  }

  .gtm-hero-bar {
    padding: 12px 20px;
  }
}


/* /////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
   MODULE STATS
///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// */

.gtm-stats-section {
  background: var(--h-navy);
}

.gtm-stats-grid {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
}

/* ---- Cellule ---- */
.gtm-stat {
  display: flex;
  flex-direction: column;       /* chiffre en haut, label en bas */
  align-items: center;
  justify-content: center;
  text-align: center;
  padding: 26px 16px;
  border-right: 1px solid rgba(255, 255, 255, 0.1);
}

.gtm-stat:last-child {
  border-right: none;
}

/* ---- Chiffre (strong) ---- */
.gtm-stat-num {
  font-size: clamp(20px, 2.5vw, 28px);
  font-weight: 700;
  color: #fff;
  letter-spacing: -1.2px;
  line-height: 1;
  display: block;
}

.gtm-stat-num em {
  color: var(--h-red);
  font-style: normal;
}

/* Variante taille réduite pour "ENERGY STAR" */
.gtm-stat-num--small {
  font-size: clamp(14px, 2vw, 20px);
  line-height: 1.2;
}

/* ---- Label (span) ---- */
.gtm-stat-label {
  font-size: clamp(10px, 1vw, 13px);
  color: rgba(255, 255, 255, 0.65);
  margin-top: 5px;
  font-weight: 400;
  display: block;
}

.gtm-img-energy-star {
  max-width: 100px;
}

/* ======================================================================================================================
   RESPONSIVE — MOBILE (≤ 768px) : 2 colonnes
====================================================================================================================== */

@media (max-width: 768px) {
  .gtm-stats-grid {
    grid-template-columns: repeat(2, 1fr);
  }

  .gtm-stat:nth-child(2) {
    border-right: none;
  }

  .gtm-stat:nth-child(3) {
    border-top: 1px solid rgba(255, 255, 255, 0.1);
  }

  .gtm-stat:nth-child(4) {
    border-top: 1px solid rgba(255, 255, 255, 0.1);
    border-right: none;
  }
}


/* /////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
   ÉLÉMENTS COMMUNS — stag, h2, lead, section padding, boutons partagés
   Ces classes sont utilisées par plusieurs modules.
///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// */

/* ---- Padding section commun ---- */
.gtm-section {
  padding: 80px 52px;
}

.gtm-section--white  { background: #ffffff; }
.gtm-section--paper  { background: var(--h-paper); }
.gtm-section--navy   { background: var(--h-navy); }

/* ---- Sur-titre (stag) ---- */
.gtm-stag {
  display: flex;
  align-items: center;
  gap: 8px;
  font-size: 10px;
  font-weight: 600;
  color: var(--h-red);
  text-transform: uppercase;
  letter-spacing: 2.5px;
  margin-bottom: 14px;
}

.gtm-stag-line {
  display: block;
  width: 20px;
  height: 1px;
  background: var(--h-red);
  flex-shrink: 0;
}

.gtm-stag--inv {
  color: rgba(255, 255, 255, 0.5);
}

.gtm-stag--inv .gtm-stag-line {
  background: rgba(255, 255, 255, 0.3);
}

/* ---- H2 commun ---- */
.gtm-h2 {
  font-size: clamp(28px, 4vw, 44px);
  font-weight: 700;
  color: var(--h-ink);
  line-height: 1.2;
  letter-spacing: -2px;
  margin-bottom: 20px;
  margin-top: 0;
}

.gtm-h2 em {
  color: var(--h-red);
  font-style: normal;
}

.gtm-h2--inv {
  color: #fff;
}

.gtm-h2--inv em {
  color: rgba(255, 255, 255, 0.45);
}

/* ---- Lead ---- */
.gtm-lead {
  font-size: clamp(16px, 1.5vw, 20px);
  color: var(--h-ink2);
  line-height: 1.7;
  max-width: 540px;
  margin-bottom: 36px;
}


@media (max-width: 1024px) {
  .gtm-section { padding: 60px 32px; }
}

@media (max-width: 768px) {
  .gtm-section { padding: 40px 20px; }
}


/* /////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
   MODULE 01 — PROMO BAR
///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// */

.gtm-promo-bar {
  background: var(--h-red);
  padding: 10px 52px;
  display: flex;
  align-items: center;
  gap: 16px;
}

.gtm-promo-txt {
  font-size: 13px;
  color: #fff;
  font-weight: 500;
  margin-bottom: 0;
}

.gtm-promo-txt strong {
  font-weight: 700;
}

.gtm-promo-btn {
  font-size: 10px;
  color: #fff;
  font-weight: 700;
  border: 1px solid rgba(255, 255, 255, 0.4);
  padding: 4px 12px;
  border-radius: 2px;
  white-space: nowrap;
  letter-spacing: 0.5px;
  text-transform: uppercase;
  background: transparent;
  transition: border-color 0.15s ease;
  display: inline-block;
}

.gtm-promo-btn:hover {
  border-color: #fff;
  color: #fff;
}

@media (max-width: 1024px) {
  .gtm-promo-bar { padding: 10px 32px; }
}

@media (max-width: 768px) {
  .gtm-promo-bar { padding: 9px 20px; }
  .gtm-promo-btn { display: none; }
}


/* /////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
   MODULE 02 — LOGO HEADER
///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// */

.gtm-header-bar {
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: 14px 52px;
  background: var(--h-navy);
  border-bottom: 1px solid rgba(255, 255, 255, 0.08);
}

/* ---- Logo ---- */
.gtm-logo {
  display: flex;
  align-items: center;
  gap: 8px;
  text-decoration: none;
}

.gtm-logo-dot {
  display: block;
  width: 7px;
  height: 7px;
  background: var(--h-red);
  border-radius: 50%;
  flex-shrink: 0;
}

.gtm-logo-wrap {
  display: flex;
  flex-direction: column;
}

.gtm-logo-name {
  font-size: 16px;
  font-weight: 700;
  color: #fff;
  letter-spacing: -0.3px;
  line-height: 1.1;
  display: block;
}

.gtm-logo-sub {
  font-size: 9px;
  font-weight: 400;
  color: rgba(255, 255, 255, 0.4);
  letter-spacing: 1.5px;
  text-transform: uppercase;
  display: block;
}

/* ---- Droite header ---- */
.gtm-header-right {
  display: flex;
  align-items: center;
  gap: 10px;
}

.gtm-header-tel {
  font-size: 12px;
  color: rgba(255, 255, 255, 0.75);
  font-weight: 500;
  padding: 8px 14px;
  border: 1px solid rgba(255, 255, 255, 0.2);
  border-radius: 2px;
  background: transparent;
  transition: all 0.15s ease;
  display: inline-block;
}

.gtm-header-tel:hover {
  color: #fff;
  border-color: rgba(255, 255, 255, 0.5);
}

.gtm-header-cta {
  font-size: 12px;
  font-weight: 700;
  color: #fff;
  background: var(--h-red);
  padding: 9px 18px;
  border-radius: 2px;
  letter-spacing: 0.3px;
  transition: background 0.15s ease;
  white-space: nowrap;
  display: inline-block;
}

.gtm-header-cta:hover {
  background: var(--h-red-h);
  color: #fff;
}

@media (max-width: 1024px) {
  .gtm-header-bar { padding: 12px 32px; }
}

@media (max-width: 768px) {
  .gtm-header-bar { padding: 12px 20px; }
  .gtm-header-tel { display: none; }
}


/* /////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
   MODULE 05 — POURQUOI NOUS CHOISIR
///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// */

.gtm-why-list {
  border-top: 1px solid var(--h-line);
}

.gtm-why-item {
  display: grid;
  grid-template-columns: 60px 1fr 1fr;
  gap: 32px;
  align-items: start;
  padding: 28px 0;
  border-bottom: 1px solid var(--h-line);
  transition: all 0.15s ease;
}


.gtm-why-n {
  font-size: 12px;
  font-weight: 600;
  color: var(--h-navy);
  letter-spacing: 0.5px;
  padding-top: 3px;
  transition: color 0.2s ease;
}

@media screen and (min-width: 1200px) {
  .gtm-why-n {
  color: var(--h-line);
}

.gtm-why-item:hover .gtm-why-n {
  color: var(--h-navy);
}

}

.gtm-why-t {
  font-size: clamp(14px, 1.3vw, 17px);
  font-weight: 700;
  color: var(--h-ink);
  line-height: 1.3;
  letter-spacing: -0.3px;
  display: block;
}

.gtm-why-d {
  font-size: clamp(15px, 1.4vw, 20px);
  color: var(--h-ink2);
  line-height: 1.65;
  margin-bottom: 0;
}

@media (max-width: 1024px) {
  .gtm-why-item {
    grid-template-columns: 50px 1fr;
    gap: 20px;
  }
  .gtm-why-d { grid-column: 2; }
}

@media (max-width: 768px) {
  .gtm-why-item {
    grid-template-columns: 36px 1fr;
    gap: 12px;
    padding: 18px 0;
  }
  .gtm-why-d {
    grid-column: 2;
    font-size: 16px;
  }
  .gtm-why-t { font-size: 15px; }
}


/* /////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
   MODULE 06 — NOS PRODUITS
///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// */

.gtm-prod-grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  border: 1px solid var(--h-line);
  margin-top: 44px;
}

.gtm-prod-card {
  overflow: hidden;
  border-right: 1px solid var(--h-line);
  display: flex;
  flex-direction: column;
  transition: background 0.15s ease;
}

.gtm-prod-card:last-child { border-right: none; }

.gtm-prod-card:hover { background: var(--h-paper); }

.gtm-prod-card:hover .gtm-prod-img img {
  transform: scale(1.04);
}

.gtm-prod-img {
  height: clamp(160px, 20vw, 230px);
  overflow: hidden;
  position: relative;
}

.gtm-prod-img img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
  transition: transform 0.5s cubic-bezier(0.25, 0.46, 0.45, 0.94);
}

.gtm-prod-cat {
  position: absolute;
  bottom: 12px;
  left: 12px;
  background: var(--h-navy);
  color: #fff;
  font-size: 10px;
  font-weight: 700;
  padding: 4px 10px;
  letter-spacing: 0.8px;
  text-transform: uppercase;
  border-radius: 1px;
}

.gtm-prod-body {
  padding: 20px 22px 24px;
  flex: 1;
  display: flex;
  flex-direction: column;
  border-top: 1px solid var(--h-line);
}

.gtm-prod-title {
  font-size: clamp(16px, 1.5vw, 20px);
  font-weight: 700;
  color: var(--h-ink);
  margin-bottom: 8px;
  letter-spacing: -0.4px;
  display: block;
}

.gtm-prod-desc {
  font-size: clamp(14px, 1.3vw, 18px);
  color: var(--h-ink2);
  line-height: 1.58;
  margin-bottom: 14px;
  flex: 1;
}

.gtm-prod-link {
  font-size: 11px;
  font-weight: 700;
  color: var(--h-navy);
  letter-spacing: 0.8px;
  text-transform: uppercase;
  display: inline-flex;
  align-items: center;
  gap: 4px;
  transition: gap 0.15s ease;
}

.gtm-prod-link:hover { gap: 8px; color: var(--h-navy); }
.gtm-prod-link::after { content: '→'; }

@media (max-width: 1024px) {
  .gtm-prod-grid { grid-template-columns: 1fr 1fr; }
  .gtm-prod-card:nth-child(2) { border-right: none; }
  .gtm-prod-card:nth-child(3) {
    grid-column: span 2;
    border-right: none;
    border-top: 1px solid var(--h-line);
  }
  .gtm-prod-card:nth-child(3) .gtm-prod-img { height: 240px; }
}

@media (max-width: 768px) {
  .gtm-prod-grid { grid-template-columns: 1fr; }
  .gtm-prod-card {
    border-right: none;
    border-bottom: 1px solid var(--h-line);
    flex-direction: row;
  }
  .gtm-prod-card:last-child { border-bottom: none; }
  .gtm-prod-card:nth-child(3) { grid-column: auto; }
  .gtm-prod-img {
    width: 110px;
    min-width: 110px;
    height: auto !important;
    flex-shrink: 0;
  }
  .gtm-prod-body {
    border-top: none;
    border-left: 1px solid var(--h-line);
    padding: 14px 16px;
  }
  .gtm-prod-cat { display: none; }
}


/* /////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
   MODULE 07 — TERRITOIRES
///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// */



.gtm-terr-grid {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 56px;
  margin-top: 36px;
  align-items: start;
}

.gtm-ttags {
  display: flex;
  flex-wrap: wrap;
  gap: 7px;
}

.gtm-ttag {
  border: 1.5px solid var(--h-line);
  color: var(--h-ink);
  font-size: clamp(11px, 1vw, 13px);
  padding: 5px 12px;
  border-radius: 1px;
  font-weight: 500;
  transition: all 0.15s ease;
  display: inline-block;
}

.gtm-ttag:hover {
  border-color: var(--h-navy);
  color: var(--h-navy);
}

.gtm-terr-note {
  background: rgba(10, 31, 61, 0.04);
  border: 1px solid rgba(10, 31, 61, 0.15);
  border-radius: 2px;
  padding: 14px 16px;
  margin-top: 14px;
}

.gtm-terr-note strong {
  font-size: clamp(13px, 1.2vw, 15px);
  font-weight: 700;
  color: var(--h-navy);
  display: block;
  margin-bottom: 3px;
}

.gtm-terr-note span {
  font-size: clamp(12px, 1.1vw, 14px);
  color: #112952;
}

.gtm-terr-map {
  border-radius: 2px;
  display: flex;
  align-items: center;
  justify-content: center;
  height: 350px;
}

.gtm-terr-map span {
  display: block;
  width: 100%;       /* ou une largeur fixe */
  height: 400px;     /* hauteur souhaitée */
  overflow: hidden;
}

.gtm-terr-map span img {
  width: 100%;
  height: 100%;
  object-fit: cover;    /* ou contain, fill, scale-down */
  object-position: center;
}

@media (max-width: 1024px) {
  .gtm-terr-grid { gap: 32px; }
}

@media (max-width: 768px) {
  .gtm-terr-grid { grid-template-columns: 1fr; gap: 20px; }
  .gtm-terr-map { display: none; }
}


/* =====================================================
   MODULE 08 — PROCESSUS
   ===================================================== */

.gtm-proc-grid {
  display: grid;
  grid-template-columns: 1fr;
  border: 1px solid rgba(255, 255, 255, 0.12);
  margin-top: 44px;
}

/* ---- Cellule commune ---- */
.gtm-proc-step {
  padding: 26px 18px;
  transition: background 0.15s ease;
}

.gtm-proc-step:hover {
  background: rgba(255, 255, 255, 0.04);
}

.gtm-proc-step:hover .gtm-proc-n {
  color: rgba(255, 255, 255, 0.5);
}

/* ---- Numéro ---- */
.gtm-proc-n {
  font-size: clamp(24px, 2.5vw, 32px);
  font-weight: 700;
  color: rgba(255, 255, 255, 0.15);
  line-height: 1;
  letter-spacing: -1px;
  margin-bottom: 14px;
  transition: color 0.2s ease;
  display: block;
}

/* ---- Titre ---- */
.gtm-proc-h {
  font-size: clamp(12px, 1.1vw, 14px);
  font-weight: 700;
  color: #fff;
  margin-bottom: 5px;
  line-height: 1.35;
  display: block;
}

/* ---- Description ---- */
.gtm-proc-d {
  font-size: clamp(11px, 1vw, 13px);
  color: rgba(255, 255, 255, 0.65);
  line-height: 1.55;
  margin-bottom: 0;
}

/* ---- CTAs ---- */
.gtm-proc-ctas {
  margin-top: 28px;
  display: flex;
  gap: 10px;
  flex-wrap: wrap;
}

/* ==============================================
   MOBILE — 1 colonne (< 768px)
   Bordures horizontales entre chaque ligne
   ============================================== */
@media (max-width: 767px) {
  .gtm-proc-grid {
    grid-template-columns: 1fr;
  }

  .gtm-proc-step {
    border-bottom: 1px solid rgba(255, 255, 255, 0.12);
    display: flex;
    gap: 16px;
    align-items: flex-start;
  }

  .gtm-proc-step:last-child {
    border-bottom: none;
  }

  .gtm-proc-n {
    flex-shrink: 0;
    font-size: 20px;
    margin-bottom: 0;
    margin-top: 2px;
    min-width: 36px;
  }
}

/* ==============================================
   TABLETTE — 3 + 2 colonnes (768px – 1023px)
   ============================================== */
@media (min-width: 768px) and (max-width: 1023px) {
  .gtm-proc-grid {
    grid-template-columns: repeat(3, 1fr);
  }

  /* Séparateurs verticaux entre cellules d'une même ligne */
  .gtm-proc-step {
    border-right: 1px solid rgba(255, 255, 255, 0.12);
  }

  /* Séparateur horizontal entre la ligne 1 (cols 1-3) et la ligne 2 (cols 4-5) */
  .gtm-proc-step:nth-child(n+4) {
    border-top: 1px solid rgba(255, 255, 255, 0.12);
  }

  /* Supprimer la bordure droite du 3e élément (fin de ligne 1) */
  .gtm-proc-step:nth-child(3) {
    border-right: none;
    border-bottom: 1px solid rgba(255, 255, 255, 0.12);
  }

  /* Supprimer la bordure droite du 3e élément (fin de ligne 1) */
  .gtm-proc-step:nth-child(5) {
    border-right: 1px solid rgba(255, 255, 255, 0.12) !important;
  }

  /* Supprimer la bordure droite du 5e élément (fin de ligne 2)
     + combler visuellement la 3e colonne vide avec une bordure gauche fictive */
  .gtm-proc-step:nth-child(5) {
    border-right: none;
  }
}

/* ==============================================
   DESKTOP — 5 colonnes (≥ 1024px)
   ============================================== */
@media (min-width: 1024px) {
  .gtm-proc-grid {
    grid-template-columns: repeat(5, 1fr) !important;
  }

  .gtm-proc-step {
    border-right: 1px solid rgba(255, 255, 255, 0.12);
  }

  .gtm-proc-step:last-child {
    border-right: none;
  }
}


/* /////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
   MODULE 09 — TYPE SWITCH + GARANTIES
///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// */

/* ---- Type Switch ---- */
.gtm-type-sw {
  display: grid;
  grid-template-columns: 1fr 1fr;
  border: 1px solid var(--h-line);
  margin-bottom: 40px;
}

.gtm-tc {
  padding: 28px 26px 24px;
  border-right: 1px solid var(--h-line);
  transition: background 0.2s ease;
  position: relative;
  overflow: hidden;
  margin-bottom: 0;
}

.gtm-tc:last-child { border-right: none; }
.gtm-tc:hover { background: var(--h-paper); }
.gtm-tc:hover .gtm-tc-lnk { gap: 8px; }

.gtm-tc-bar {
  position: absolute;
  top: 0;
  left: 0;
  right: 0;
  height: 3px;
  display: block;
}

.gtm-tc-bar--pvc { background: #2563EB; }
.gtm-tc-bar--hyb { background: #EA580C; }

.gtm-tc-top {
  display: flex;
  align-items: center;
  gap: 6px;
  margin-bottom: 10px;
}

.gtm-tc-dot {
  display: block;
  width: 6px;
  height: 6px;
  border-radius: 50%;
  flex-shrink: 0;
}

.gtm-tc-dot--pvc { background: #2563EB; }
.gtm-tc-dot--hyb { background: #EA580C; }

.gtm-tc-serie {
  font-size: 10px;
  font-weight: 600;
  color: var(--h-ink3);
  letter-spacing: 1.2px;
  text-transform: uppercase;
}

.gtm-tc-title {
  font-size: clamp(16px, 1.5vw, 20px);
  font-weight: 700;
  color: var(--h-ink);
  letter-spacing: -0.4px;
  margin-bottom: 8px;
  display: block;
}

.gtm-tc-desc {
  font-size: clamp(14px, 1.3vw, 17px);
  color: var(--h-ink2);
  line-height: 1.6;
  margin-bottom: 12px;
}

.gtm-tc-lnk {
  font-size: 10px;
  font-weight: 700;
  letter-spacing: 0.8px;
  text-transform: uppercase;
  display: inline-flex;
  align-items: center;
  gap: 4px;
  transition: gap 0.15s ease;
}

.gtm-tc-lnk--pvc { color: #2563EB; }
.gtm-tc-lnk--hyb { color: #EA580C; }
.gtm-tc-lnk::after { content: '→'; }

/* ---- Garanties ---- */
.gtm-gar-grid {
  display: grid;
  grid-template-columns: 1fr 2fr 1fr;
  border: 1px solid var(--h-line);
  margin-top: 22px;
}

.gtm-gar-card {
  padding: 26px 22px;
  border-right: 1px solid var(--h-line);
  transition: background 0.15s ease;
}

.gtm-card-5 {
  background-color: var(--h-navy);
  text-align: center;
}

.gtm-card-5 p, .gtm-card-5 a, .gtm-card-5 .gtm-gar-n, .gtm-card-5 .gtm-gar-u {
  color: var(--h-line);
}

.gtm-card-5 a:hover {
  color: var(--h-red);
}

.gtm-gar-card:last-child { border-right: none; }

.gtm-gar-num {
  margin-bottom: 0;
  line-height: 1;
}

.gtm-gar-n {
  font-size: clamp(30px, 3.5vw, 44px);
  font-weight: 700;
  color: var(--h-navy);
  line-height: 1;
  letter-spacing: -2px;
  display: inline;
}

.gtm-gar-u {
  font-size: clamp(12px, 1.2vw, 15px);
  font-weight: 500;
  color: var(--h-ink3);
  margin-left: 3px;
}

.gtm-gar-l {
  font-size: clamp(13px, 1.2vw, 17px);
  color: var(--h-ink2);
  margin-top: 6px;
  margin-bottom: 0;
}

.gtm-gar-lnk {
  font-size: 10px;
  font-weight: 700;
  color: var(--h-navy);
  text-transform: uppercase;
  letter-spacing: 0.8px;
  display: inline-flex;
  align-items: center;
  gap: 4px;
  margin-top: 14px;
  transition: gap 0.15s ease;
}

.gtm-gar-lnk:hover { gap: 8px; color: var(--h-navy); }
.gtm-gar-lnk::after { content: '→'; }

@media (max-width: 1024px) {
  .gtm-type-sw { grid-template-columns: 1fr; }
  .gtm-tc {
    border-right: none;
    border-bottom: 1px solid var(--h-line);
  }
  .gtm-tc:last-child { border-bottom: none; }
}

@media (max-width: 768px) {
  .gtm-gar-grid {
    grid-template-columns: 1fr;
  }

  .gtm-gar-card {
    border-bottom: 1px solid var(--h-line);
  }

  .gtm-gar-card:last-child {
    border-bottom: none;
  }
}

/* /////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
   MODULE 10 — FICHES FENÊTRES (PAC) — layout horizontal image gauche / texte droite
///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// */
 
/* ---- Conteneur général ---- */
.gtm-pac-grid-v {
  display: flex;
  flex-direction: column;
  margin-top: 28px;
}
 
/* ---- Fiche (grille 2 col : image | texte) ---- */
.gtm-pac-v {
  display: grid;
  grid-template-columns: 1fr 1fr;
  border: 1px solid var(--h-line);
  overflow: hidden;
  transition: background 0.15s ease;
  align-items: center;
  margin-bottom: 40px;
}
 
.gtm-pac-v:hover { background: var(--h-paper); }
 
/* ---- Colonne image gauche ---- */
.gtm-pac-v-img-col {
  display: flex;
  flex-direction: column;
  border-right: 1px solid var(--h-line);
  height: 100%;
}
 
.gtm-pac-v-img-main {
  overflow: hidden;
  flex: 1;
  min-height: 280px;
}
 
.gtm-pac-v-img-main img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
  transition: transform 0.5s cubic-bezier(0.25, 0.46, 0.45, 0.94);
}
 
.gtm-pac-v:hover .gtm-pac-v-img-main img { transform: scale(1.03); }
 
/* ---- Rangée miniatures ---- */
.gtm-pac-thumbs {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  border-top: 1px solid var(--h-line);
}
 
.gtm-pac-thumb {
  aspect-ratio: 1;
  overflow: hidden;
  border-right: 1px solid var(--h-line);
}
 
.gtm-pac-thumb:last-child { border-right: none; }
 
.gtm-pac-thumb img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
  transition: transform 0.4s ease;
}
 
.gtm-pac-thumb:hover img { transform: scale(1.08); }
 
/* ---- Colonne texte droite ---- */
.gtm-pac-v-body {
  display: flex;
  flex-direction: column;
  padding: 30px;
  gap: 40px;
}
 
.gtm-pac-v-hd {
  padding: 28px 28px 18px;
  border-bottom: 1px solid var(--h-line);
}
 
.gtm-pac-v-hd h3 {
  font-size: clamp(15px, 1.5vw, 18px);
  font-weight: 700;
  color: var(--h-ink);
  margin-bottom: 7px;
  margin-top: 0;
  letter-spacing: -0.2px;
  line-height: 1.3;
}
 
.gtm-pac-v-hd p {
  font-size: clamp(13px, 1.2vw, 16px);
  color: var(--h-ink2);
  line-height: 1.55;
  margin-bottom: 0;
}
 
.gtm-pac-v-specs {
  padding: 18px 28px;
  flex: 1;
}
 
/* reset ul dans specs */
.gtm-pac-v-specs ul {
  list-style: none;
  margin-left: 0;
  margin-bottom: 0;
}
 
.gtm-pac-v-specs li {
  font-size: clamp(13px, 1.2vw, 16px);
  color: var(--h-ink2);
  padding: 3px 0;
  line-height: 1.5;
  margin-bottom: 0;
}
 
.gtm-pac-v-ctas {
  padding: 16px 28px;
  display: flex;
  gap: 8px;
  flex-wrap: wrap;
}
 
/* ---- Sous-titres specs (gtm-psh) ---- */
.gtm-psh {
  font-size: 10px;
  font-weight: 600;
  color: var(--h-navy);
  text-transform: uppercase;
  letter-spacing: 1.5px;
  margin-bottom: 7px;
  margin-top: 16px;
  display: flex;
  align-items: center;
  gap: 7px;
}
 
.gtm-psh::before {
  content: '';
  display: block;
  width: 10px;
  height: 1px;
  background: rgba(10, 31, 61, 0.25);
  flex-shrink: 0;
}
 
.gtm-psh:first-child { margin-top: 0; }
 
/* ---- Échantillons de couleurs ---- */
.gtm-pac-colors {
  display: flex;
  flex-wrap: wrap;
  gap: 5px;
  margin-top: 7px;
}
 
.gtm-cs {
  display: inline-block;
  width: 20px;
  height: 20px;
  border-radius: 2px;
  border: 2px solid transparent;
  cursor: pointer;
  transition: all 0.15s ease;
}
 
.gtm-cs:hover {
  border-color: var(--h-navy);
  transform: scale(1.15);
}
 
.gtm-pac-note {
  font-size: 11px;
  color: var(--h-ink3);
  margin-top: 5px;
  line-height: 1.4;
  font-style: italic;
  margin-bottom: 0;
}
 
/* ---- Responsive ---- */
@media (max-width: 1024px) {
  .gtm-pac-v {
    grid-template-columns: 1fr;
  }
  .gtm-pac-v-img-col {
    border-right: none;
    border-bottom: 1px solid var(--h-line);
  }
  .gtm-pac-v-img-main { min-height: 220px; }
}
 
@media (max-width: 768px) {
  .gtm-pac-v-img-main { min-height: 180px; }
  .gtm-pac-v-hd  { padding: 16px; }
  .gtm-pac-v-specs { padding: 16px; }
  .gtm-pac-v-ctas  { padding: 12px 16px; }
  .gtm-pac-v-body  { padding: 0; gap: 0; }
}
 

/* /////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
   MODULE 11 — ENGAGEMENTS / BADGES
///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// */

.gtm-badges-grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  border: 1px solid var(--h-line);
  margin-top: 22px;
}

.gtm-badge-card {
  padding: 26px 22px;
  border-right: 1px solid var(--h-line);
  transition: background 0.15s ease;
}

.gtm-badge-card:last-child { border-right: none; }
.gtm-badge-card:hover { background: #fff; }

.gtm-badge-ic {
  font-size: 22px;
  margin-bottom: 12px;
  display: block;
}

.gtm-badge-t {
  font-size: clamp(14px, 1.4vw, 17px);
  font-weight: 700;
  color: var(--h-ink);
  margin-bottom: 6px;
  display: block;
}

.gtm-badge-d {
  font-size: clamp(13px, 1.2vw, 17px);
  color: var(--h-ink2);
  line-height: 1.6;
  margin-bottom: 0;
}

.gtm-engagements-ctas {
  display: flex;
  gap: 10px;
  flex-wrap: wrap;
  margin-top: 20px;
}

@media (max-width: 1024px) {
  .gtm-badges-grid { grid-template-columns: 1fr; }
  .gtm-badge-card {
    border-right: none;
    border-bottom: 1px solid var(--h-line);
  }
  .gtm-badge-card:last-child { border-bottom: none; }
}


/* /////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
   MODULE 12 — AIDE À CHOISIR
///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// */

.gtm-aide-grid {
  display: grid;
  grid-template-columns: 1fr 1fr;
  border: 1px solid var(--h-line);
  margin-top: 22px;
}

.gtm-aide-left {
  padding: 36px;
  border-right: 1px solid var(--h-line);
}

.gtm-aide-h {
  font-size: clamp(22px, 2.5vw, 30px);
  font-weight: 700;
  color: var(--h-ink);
  letter-spacing: -1px;
  line-height: 1.02;
  margin-bottom: 12px;
  margin-top: 0;
}

.gtm-aide-h em {
  color: var(--h-red);
  font-style: normal;
}

.gtm-aide-p {
  font-size: clamp(14px, 1.4vw, 18px);
  color: var(--h-ink2);
  line-height: 1.7;
  margin-bottom: 16px;
}

.gtm-aide-ul {
  list-style: none;
  border-top: 1px solid var(--h-line);
  margin-bottom: 16px;
  margin-left: 0;        /* reset ul global */
}

.gtm-aide-ul li {
  display: flex;
  align-items: center;
  gap: 10px;
  font-size: clamp(14px, 1.3vw, 18px);
  color: var(--h-ink);
  padding: 10px 0;
  border-bottom: 1px solid var(--h-line);
  line-height: 1.4;
  margin-bottom: 0;     /* reset li global */
}

.gtm-aide-ul li::before {
  content: '';
  display: block;
  width: 4px;
  height: 4px;
  background: var(--h-navy);
  border-radius: 50%;
  flex-shrink: 0;
}

.gtm-aide-note {
  font-size: 12px;
  color: var(--h-ink3);
  margin-bottom: 16px;
  font-style: italic;
}

/* Colonne droite (address) */
.gtm-aide-right {
  padding: 36px;
  font-style: normal;   /* reset address */
}

.gtm-aide-info {
  display: flex;
  flex-direction: column;
  padding: 18px 0;
  border-bottom: 1px solid var(--h-line);
}

.gtm-aide-info:first-child { padding-top: 0; }
.gtm-aide-info:last-child  { border-bottom: none; }

.gtm-aide-lbl {
  font-size: 10px;
  font-weight: 600;
  color: var(--h-ink3);
  text-transform: uppercase;
  letter-spacing: 1.5px;
  margin-bottom: 5px;
  display: block;
}

.gtm-aide-val {
  font-size: clamp(15px, 1.5vw, 19px);
  font-weight: 700;
  color: var(--h-navy);
  letter-spacing: -0.3px;
  display: block;
}

a.gtm-aide-val:hover { color: var(--h-red); }

.gtm-aide-sub {
  font-size: clamp(12px, 1.1vw, 14px);
  color: var(--h-ink3);
  margin-top: 2px;
  display: block;
}

@media (max-width: 1024px) {
  .gtm-aide-grid { grid-template-columns: 1fr; }
  .gtm-aide-left {
    border-right: none;
    border-bottom: 1px solid var(--h-line);
  }
}

@media (max-width: 768px) {
  .gtm-aide-left  { padding: 24px 20px; }
  .gtm-aide-right { padding: 24px 20px; }
}


/* /////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
   MODULE 13 — CTA BAND
///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// */

.gtm-cta-band {
  background: var(--h-navy);
  padding: 68px 52px;
  display: grid;
  grid-template-columns: 1fr auto;
  gap: 48px;
  align-items: center;
}

.gtm-cta-h2 {
  font-size: clamp(26px, 3.5vw, 40px);
  font-weight: 700;
  color: #fff;
  letter-spacing: -1.8px;
  line-height: 1;
  margin-top: 0;
  margin-bottom: 0;
}

.gtm-cta-h2 em {
  color: var(--h-red);
  font-style: normal;
}

.gtm-cta-sub {
  font-size: clamp(14px, 1.4vw, 18px);
  color: rgba(255, 255, 255, 0.55);
  margin-top: 10px;
  line-height: 1.55;
  margin-bottom: 0;
}

.gtm-cta-btns {
  display: flex;
  flex-direction: column;
  gap: 8px;
  min-width: 260px;
}

.gtm-cta-btn {
  background: transparent;
  color: #fff;
  border: 1px solid rgba(255, 255, 255, 0.2);
  padding: 14px 18px;
  font-size: clamp(12px, 1.1vw, 14px);
  font-weight: 500;
  border-radius: 2px;
  transition: border-color 0.15s ease;
  text-align: left;
  display: flex;
  align-items: center;
  justify-content: space-between;
}

.gtm-cta-btn:hover {
  border-color: rgba(255, 255, 255, 0.5);
  color: #fff;
}

.gtm-cta-btn--main {
  background: var(--h-red);
  border-color: var(--h-red);
  font-weight: 700;
}

.gtm-cta-btn--main:hover {
  background: var(--h-red-h);
  border-color: var(--h-red-h);
  color: #fff;
}

@media (max-width: 1024px) {
  .gtm-cta-band {
    grid-template-columns: 1fr;
    gap: 28px;
  }
  .gtm-cta-btns {
    flex-direction: row;
    flex-wrap: wrap;
    min-width: 0;
  }
  .gtm-cta-btn {
    flex: 1;
    min-width: 200px;
  }
}

@media (max-width: 768px) {
  .gtm-cta-band { padding: 40px 20px; gap: 24px; }
  .gtm-cta-btns { flex-direction: column; }
  .gtm-cta-btn { width: 100%; }
}


/* /////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
   MODULE 14 — FOOTER
///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// */

.gtm-footer {
  background: var(--h-paper);
  border-top: 1px solid var(--h-line);
}

.gtm-footer-main {
  padding: 52px 52px 32px;
  display: grid;
  grid-template-columns: 2fr 1fr 1fr 1.5fr;
  gap: 36px;
}

/* ---- Logo ---- */

.gtm-footer-logo img {
  width: 150px;
}

.gtm-footer-desc {
  font-size: 14px;
  line-height: 1.68;
  color: var(--h-ink3);
  margin-bottom: 13px;
}

.gtm-footer-soc {
  display: flex;
  gap: 6px;
}

.gtm-footer-sp {
  border: 1px solid var(--h-line);
  color: var(--h-ink3);
  font-size: 11px;
  padding: 5px 11px;
  border-radius: 1px;
  background: transparent;
  transition: all 0.15s ease;
  display: inline-block;
}

.gtm-footer-sp:hover {
  border-color: var(--h-ink3);
  color: var(--h-ink);
}

/* ---- Colonnes nav ---- */
.gtm-footer-col h4 {
  font-size: 10px;
  font-weight: 600;
  color: var(--h-ink3);
  text-transform: uppercase;
  letter-spacing: 1.5px;
  margin-bottom: 13px;
  margin-top: 0;
}

.gtm-footer-col ul {
  list-style: none;
  margin-left: 0;    /* reset ul global */
  margin-bottom: 0;
}

.gtm-footer-col li {
  margin-bottom: 8px;
}

.gtm-footer-col a {
  color: var(--h-ink3);
  font-size: 14px;
  transition: color 0.15s ease;
}

.gtm-footer-col a:hover { color: var(--h-ink); }

/* ---- Colonne adresse ---- */
.gtm-footer-col--contact {
  font-style: normal;  /* reset address */
}

/* ---- Infolettre ---- */
.gtm-footer-input {
  width: 100%;
  background: #fff;
  border: 1px solid var(--h-line);
  color: var(--h-ink);
  padding: 10px 12px;
  font-size: 14px;
  border-radius: 1px 1px 0 0;
  outline: none;
  transition: border-color 0.15s ease;
  /* override des inputs globaux du template */
  height: auto !important;
  box-shadow: none !important;
}

.gtm-footer-input:focus {
  border-color: var(--h-navy) !important;
}

.gtm-footer-input::placeholder {
  color: var(--h-ink3);
}

.gtm-footer-btn {
  width: 100%;
  background: var(--h-navy);
  color: #fff;
  border: none;
  padding: 10px;
  font-size: 12px;
  font-weight: 700;
  border-radius: 0 0 1px 1px;
  text-transform: uppercase;
  letter-spacing: 0.8px;
  transition: background 0.15s ease;
  cursor: pointer;
}

.gtm-footer-btn:hover { background: #112952; }

/* ---- Barre bas de page ---- */
.gtm-footer-bottom {
  border-top: 1px solid var(--h-line);
  padding: 14px 52px;
  display: flex;
  justify-content: space-between;
  align-items: center;
  flex-wrap: wrap;
  gap: 8px;
}

.gtm-footer-bottom p,
.gtm-footer-bottom a {
  font-size: 12px;
  color: var(--h-ink3);
  margin-bottom: 0;
}

.gtm-footer-bottom a:hover { color: var(--h-ink); }

.gtm-footer-links {
  display: flex;
  gap: 16px;
}

@media (max-width: 1024px) {
  .gtm-footer-main {
    grid-template-columns: 1fr 1fr;
    gap: 28px;
  }
  .gtm-footer-bottom { padding: 14px 32px; }
}

@media (max-width: 768px) {
  .gtm-footer-main {
    grid-template-columns: 1fr;
    padding: 36px 20px 24px;
  }
  .gtm-footer-bottom {
    padding: 12px 20px;
    flex-direction: column;
    align-items: flex-start;
    gap: 6px;
  }
}


@media (min-width: 1025px) {
  .gtm-badges-grid--4 {
    grid-template-columns: repeat(4, 1fr);
  }
}

/* Sur tablette : 2 colonnes (le comportement 1 colonne mobile est hérité de gtm-badges-grid) */
@media (min-width: 769px) and (max-width: 1024px) {
  .gtm-badges-grid--4 {
    grid-template-columns: repeat(2, 1fr);
  }

  /* Recalcul des bordures pour grille 2×2 */
  .gtm-badges-grid--4 .gtm-badge-card:nth-child(odd) {
    border-right: 1px solid var(--h-line);
  }

  .gtm-badges-grid--4 .gtm-badge-card:nth-child(3),
  .gtm-badges-grid--4 .gtm-badge-card:nth-child(4) {
    border-top: 1px solid var(--h-line);
    border-bottom: none;
  }
}


/* /////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
   MODULE FINANCEMENT
///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// */

.gtm-financement-inner {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: var(--space-2xl);
  border: 1px solid var(--h-line);
  padding: var(--space-xl) var(--space-2xl);
  background: #fff;
  border-radius: 2px;
}

.gtm-financement-texte {
  display: flex;
  flex-direction: column;
  gap: var(--space-md);
}

.gtm-financement-texte .gtm-stag {
  margin-bottom: 0;
}

.gtm-financement-texte .gtm-h2 {
  margin-bottom: 0;
}

.gtm-financement-desc {
  font-size: clamp(15px, 1.4vw, 18px);
  color: var(--h-ink2);
  line-height: 1.65;
  max-width: 480px;
  margin-bottom: 0;
}

.gtm-financement-logo {
  flex-shrink: 0;
}

.gtm-financement-logo img {
  width: 250px;
  height: auto;
  display: block;
}

@media (max-width: 768px) {
  .gtm-financement-inner {
    flex-direction: column;
    align-items: flex-start;
    padding: var(--space-lg) var(--space-md);
    gap: var(--space-lg);
  }

  .gtm-financement-logo {
    align-self: center;
  }
}


/* /////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
   CORRECTIFS
///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// */

.gtm-garantie-portes-entree .gtm-gar-grid {
  grid-template-columns: repeat(2, 1fr);
}


/* ---- Variante 4 colonnes ---- */
.gtm-type-sw--4 {
  grid-template-columns: repeat(4, 1fr);
}

/* ---- Couleur aluminium ---- */
.gtm-tc-bar--alu { background: #6B7280; }
.gtm-tc-dot--alu { background: #6B7280; }

/* ---- Responsive tablette : 2×2 ---- */
@media (max-width: 1024px) {
  .gtm-type-sw--4 {
    grid-template-columns: repeat(2, 1fr);
  }

  .gtm-type-sw--4 .gtm-tc:nth-child(odd) {
    border-right: 1px solid var(--h-line);
  }

  .gtm-type-sw--4 .gtm-tc:nth-child(3),
  .gtm-type-sw--4 .gtm-tc:nth-child(4) {
    border-bottom: none;
    border-top: 1px solid var(--h-line);
  }
}

/* ---- Responsive mobile : 1 colonne ---- */
@media (max-width: 768px) {
  .gtm-type-sw--4 {
    grid-template-columns: 1fr;
  }

  .gtm-type-sw--4 .gtm-tc:nth-child(odd) {
    border-right: none;
  }

  .gtm-type-sw--4 .gtm-tc:nth-child(3),
  .gtm-type-sw--4 .gtm-tc:nth-child(4) {
    border-top: none;
  }
}



.gtm-intro {
  padding-bottom: var(--space-2xl);
  margin-bottom: var(--space-2xl);
  border-bottom: 1px solid var(--h-line);
}

.gtm-intro-txt {
  font-size: clamp(16px, 1.5vw, 20px);
  color: var(--h-ink2);
  line-height: 1.7;
  max-width: 600px;
  margin-bottom: var(--space-lg);
}

/* Espace entre le bloc intro et le titre "Ce qui nous guide" */
.gtm-stag--why {
  margin-top: var(--space-2xl);
}

.gtm-gar-engagement {
  margin-top: 15px;
}



/* ---- Liste de garanties dans gtm-why-d ---- */
.gtm-gar-liste {
  list-style: none;
  margin-left: 0;
  margin-bottom: var(--space-sm);
  border-top: 1px solid var(--h-line);
}

.gtm-gar-liste li {
  display: flex;
  align-items: baseline;
  gap: var(--space-sm);
  font-size: clamp(13px, 1.2vw, 16px);
  color: var(--h-ink2);
  padding: 8px 0;
  border-bottom: 1px solid var(--h-line);
  margin-bottom: 0;
}

.gtm-gar-liste li strong {
  color: var(--h-navy);
  font-weight: 700;
  white-space: nowrap;
  min-width: 60px;
}

/* ---- Note transférabilité ---- */
.gtm-gar-note {
  font-size: var(--font-size-sm);
  color: var(--h-ink3);
  font-style: italic;
  margin-bottom: var(--space-sm);
  margin-top: var(--space-sm);
}

/* ---- Liens fabricants côte à côte ---- */
.gtm-gar-liens {
  display: flex;
  gap: var(--space-md);
  flex-wrap: wrap;
}

/* ---- Encart conseil sur fond clair ---- */
.gtm-gar-engagement {
  margin-top: var(--space-xl);
  padding: var(--space-md) var(--space-lg);
  background: rgba(10, 31, 61, 0.04);
  border: 1px solid rgba(10, 31, 61, 0.12);
  border-left: 3px solid var(--h-navy);
  border-radius: 2px;
  font-size: var(--font-size-base);
  color: var(--h-ink2);
  line-height: 1.65;
}

.gtm-gar-engagement strong {
  color: var(--h-navy);
}

/* ---- Encart conseil sur fond navy ---- */
.gtm-gar-conseil-inv {
  margin-top: var(--space-xl);
  padding: var(--space-md) var(--space-lg);
  background: rgba(255, 255, 255, 0.06);
  border: 1px solid rgba(255, 255, 255, 0.12);
  border-left: 3px solid var(--h-red);
  border-radius: 2px;
  font-size: var(--font-size-base);
  color: rgba(255, 255, 255, 0.75);
  line-height: 1.65;
}

.gtm-gar-conseil-inv strong {
  color: #fff;
}

/* ---- Processus réclamation — 3 étapes (override grille 5 col → 3 col) ---- */
.gtm-proc .gtm-proc-grid {
  grid-template-columns: repeat(3, 1fr);
}

@media (max-width: 1024px) {
  .gtm-proc .gtm-proc-grid {
    grid-template-columns: repeat(3, 1fr);
  }
}

@media (max-width: 768px) {
  .gtm-proc .gtm-proc-grid {
    grid-template-columns: 1fr;
  }
}



.gtm-qr {
  gap: 20px;
  padding: var(--space-xl);
}

[data-rlta-element=container][data-rlta-state=ready][data-rlta-theme=neutral][data-rlta-type=accordions]>[data-rlta-element=button] {
    border: 1px solid var(--h-navy);
}

[data-rlta-element=container][data-rlta-state=ready][data-rlta-theme=neutral][data-rlta-type=accordions]>[data-rlta-element=button][data-rlta-state=open], [data-rlta-element=container][data-rlta-state=ready][data-rlta-theme=neutral][data-rlta-type=accordions]>[data-rlta-element=button][data-rlta-state=opening] {
    background-color: transparent;
    border: 1px solid var(--h-red);
}

[data-rlta-element=container][data-rlta-state=ready][data-rlta-theme=neutral][data-rlta-type=accordions]>[data-rlta-element=panel], [data-rlta-element=container][data-rlta-state=ready][data-rlta-theme=neutral][data-rlta-type=tabs]>[data-rlta-element=panels]>[data-rlta-element=panel] {
    border: 1px solid var(--h-red);
}

[data-rlta-element=container][data-rlta-state=ready][data-rlta-theme=neutral][data-rlta-type=accordions]>[data-rlta-element=button][data-rlta-state=open]:focus, [data-rlta-element=container][data-rlta-state=ready][data-rlta-theme=neutral][data-rlta-type=accordions]>[data-rlta-element=button][data-rlta-state=open]:hover, [data-rlta-element=container][data-rlta-state=ready][data-rlta-theme=neutral][data-rlta-type=accordions]>[data-rlta-element=button][data-rlta-state=opening]:focus, [data-rlta-element=container][data-rlta-state=ready][data-rlta-theme=neutral][data-rlta-type=accordions]>[data-rlta-element=button][data-rlta-state=opening]:hover {
    background-color: var(--h-red);
    color: var(--h-paper);
}

[data-rlta-element=container][data-rlta-state=ready][data-rlta-theme=neutral][data-rlta-type=accordions]>[data-rlta-element=button]:focus, [data-rlta-element=container][data-rlta-state=ready][data-rlta-theme=neutral][data-rlta-type=accordions]>[data-rlta-element=button]:hover {
    background-color: var(--h-red);
    color: var(--h-paper);
}



/* #endregion */

/* #region MENU ----------------------------------------------------------------------------------------------------- */


/* ---------------------------------------------------------------------------------------------------------------------
------------------------------------------------------------------------------------------------------------------------
  MENU PRINCIPAL
------------------------------------------------------------------------------------------------------------------------
--------------------------------------------------------------------------------------------------------------------- */


/* ===================================================================
                           MOBILE  (< 1200px)
=================================================================== */
@media screen and (max-width: 1199px) {

  /* ---- Logo dans le menu ouvert ---- */
  /* .gtmHeader.gtmOpen::before {
    content: url("/images/image.png");
    position: absolute;
    bottom: 0;
    left: 50%;
    transform: translateX(-50%);
    opacity: 1;
    z-index: 0;
    box-sizing: border-box;
    padding: var(--space-sm) var(--space-sm) 0 var(--space-sm);
  } */

  /* ---- Icône burger ---- */
  .gtmHeader .gtm-open-nav-menu {
    display: flex;
    position: fixed;
    top: 0;
    right: 0;
    height: 45px;
    width: 45px;
    background-color: var(--h-navy);
    margin: var(--space-xs) var(--space-xs) 0;
    align-items: center;
    justify-content: center;
    cursor: pointer;
    transition: all 0.2s ease;
    z-index: 10000000;
  }

  /* Barre centrale */
  .gtmHeader .gtm-open-nav-menu span {
    display: block;
    position: relative;
    height: 2px;
    width: 22px;
    background-color: #fff;
    border-radius: 2px;
  }

  /* Barres haute et basse */
  .gtmHeader .gtm-open-nav-menu span:before,
  .gtmHeader .gtm-open-nav-menu span:after {
    content: "";
    position: absolute;
    left: 0;
    width: 100%;
    height: 100%;
    background-color: #fff;
    transition: all .2s ease;
    border-radius: 2px;
  }

  .gtmHeader .gtm-open-nav-menu span:before { top: -7px; }
  .gtmHeader .gtm-open-nav-menu span:after  { top: 7px; }

  /* Burger → croix */
  .gtm-hidden-scrolling .gtmHeader .gtm-open-nav-menu span {
    background-color: transparent !important;
  }
  .gtm-hidden-scrolling .gtmHeader .gtm-open-nav-menu span:before {
    transform: rotate(45deg);
    top: 0;
  }
  .gtm-hidden-scrolling .gtmHeader .gtm-open-nav-menu span:after {
    transform: rotate(-45deg);
    top: 0;
  }

  /* ---- Conteneur menu ---- */
  .gtm-menu {
    position: relative;
    z-index: 2000;
  }

  /* ---- Header plein écran ---- */
  .gtmHeader {
    position: fixed;
    width: 100%;
    min-height: 100dvh;
    z-index: 1;
    display: flex;
    justify-content: center;
    align-items: center;
    background-color: transparent;
    top: -100%;
    transition: all 0.5s ease;
  }

  .gtmHeader.gtmOpen {
    top: 0;
    z-index: 100;
    background-color: var(--h-navy);
  }

  .gtm-header-main {
    position: relative;
    z-index: 10;
  }

  /* ---- Navigation ---- */
  nav.gtm-nav-menu ul.menu {
    list-style: none;
    margin-left: 0;
    text-align: center;
  }

  .gtmHeader .menu>.menu-item>a {
    color: rgba(255,255,255,.8);
    font-size: var(--font-size-2xl);
    font-weight: 500;
    letter-spacing: 2px;
    text-transform: uppercase;
    transition: color 0.3s ease;
  }

  .gtmHeader .menu>.menu-item>a:hover {
    color: var(--h-red);
  }

  .menu>.gtmFada.active>a {
    color: var(--h-red);
    font-weight: 700;
  }

  .gtmHeader .menu>.menu-item {
    margin-bottom: var(--space-lg);
  }

  .separator { cursor: pointer; }

  .parent.gtm-active a.separator {
    color: var(--h-red) !important;
    font-weight: 700 !important;
  }

  .default img { width: 100px; }

  /* ---- Sous-menu mobile ---- */
  nav.gtm-nav-menu .menu .gtm-sub-menu {
    display: block;
    text-align: center;
    list-style: none;
    margin-left: 0;
  }

  .gtmHeader .menu>.gtm-menu-item-has-children .gtm-sub-menu {
    position: relative;
    max-height: 0;
    overflow: hidden;
    visibility: hidden;
    opacity: 0;
    transition: all .2s ease-in-out;
  }

  .gtmHeader .menu>.gtm-menu-item-has-children.gtm-active .gtm-sub-menu {
    visibility: visible;
    opacity: 1;
  }

  nav.gtm-nav-menu .gtm-sub-menu li:first-child {
    padding-top: var(--space-xs);
  }

  nav.gtm-nav-menu .gtm-sub-menu li a {
    color: rgba(255,255,255,.55);
    font-size: var(--font-size-xl);
    font-weight: 400;
    letter-spacing: 1px;
    text-transform: uppercase;
    line-height: 3.3rem;
    margin-bottom: 0;
    transition: color 0.3s ease;
  }

  nav.gtm-nav-menu .gtm-sub-menu li.active a {
    color: var(--h-red);
  }

  /* ---- Icône "+" sous-menu mobile ---- */
  .gtm-menu-item-has-children .separator {
    position: relative;
  }

  .gtm-menu-item-has-children .separator::before,
  .gtm-menu-item-has-children .separator::after {
    content: "";
    position: absolute;
    width: 10px;
    height: 2px;
    background-color: rgba(255,255,255,.5);
    transition: all .3s ease;
  }

  .gtm-menu-item-has-children .separator::before {
    top: 48%;
    right: -15px;
    transform: translateY(48%) rotate(-90deg);
  }

  .gtm-menu-item-has-children .separator::after {
    top: 48%;
    right: -15px;
    transform: translateY(48%);
  }

  .gtm-menu-item-has-children.gtm-active .separator::before {
    transform: rotate(0deg);
  }

  .gtm-menu-item-has-children.gtm-active .separator::after,
  .gtm-menu-item-has-children.gtm-active .separator::before {
    background-color: var(--h-red);
  }

  .gtm-menu-item-has-children.active .separator::after,
  .gtm-menu-item-has-children.active .separator::before {
    background-color: var(--h-red);
  }

}


/* ===================================================================
                           DESKTOP  (>= 1200px)
=================================================================== */
@media screen and (min-width: 1200px) {

  /* ---- Sticky ---- */
  #gtm-menu {
    position: sticky;
    top: 0;
    z-index: 10000000;
  }

  .gtm-menu .moduletable {
    display: block;
  }

  /* ---- Cache le burger ---- */
  .gtmHeader .gtm-open-nav-menu {
    display: none;
  }

  /* ---- Header barre desktop ---- */
  .gtmHeader {
    position: relative;
    top: auto;
    min-height: unset;
    width: 100%;
    display: block;
    background-color: var(--h-navy);
    transition: none;
  }

  .gtmHeader.gtmOpen {
    background-color: var(--h-navy);
  }

  .gtm-header-main {
    position: relative;
    z-index: 10;
  }

  /* ---- Navigation horizontale ---- */
  nav.gtm-nav-menu ul.menu {
    display: flex;
    align-items: center;
    gap: 0;
    padding: 0 32px;
    list-style: none;
    margin: 0;
  }

  nav.gtm-nav-menu ul.menu li {
    position: relative;
  }

  /* ---- Liens ---- */
  .gtmHeader .menu>.menu-item>a {
    display: flex;
    align-items: center;
    padding: 18px 20px;
    color: rgba(255,255,255,.75);
    font-size: 12px;
    font-weight: 600;
    letter-spacing: 1.5px;
    text-transform: uppercase;
    margin-bottom: 0;
    transition: color .15s ease;
    white-space: nowrap;
    position: relative;
  }


  .gtmHeader .menu>.menu-item>a:hover {
    color: #fff;
  }

  .gtmHeader .menu>.menu-item>a:hover::after {
    transform: scaleX(1);
  }

  .menu>.gtmFada.active>a {
    color: #fff;
    font-weight: 700;
  }

  .menu>.gtmFada.active>a::after {
    transform: scaleX(1);
  }

  /* ---- Logo image dans le menu ---- */
  .default img {
    height: 32px;
    width: auto;
    opacity: .9;
    transition: opacity .15s;
  }

  .default img:hover {
    opacity: 1;
  }

  /* ---- Icône "+" desktop ---- */
  .gtm-menu-item-has-children {
    padding-right: 0 !important;
  }

  .gtm-menu-item-has-children .separator {
    position: relative;
    padding-right: 20px !important;
  }

  .gtm-menu-item-has-children .separator::before,
  .gtm-menu-item-has-children .separator::after {
    content: "";
    position: absolute;
    width: 8px;
    height: 1.5px;
    background-color: rgba(255,255,255,.5);
    transition: all .2s ease;
  }

  .gtm-menu-item-has-children .separator::before {
    top: 48%;
    right: 4px;
    transform: translateY(-50%) rotate(-90deg);
  }

  .gtm-menu-item-has-children .separator::after {
    top: 48%;
    right: 4px;
    transform: translateY(-50%);
  }

  .gtm-menu-item-has-children:hover .separator::before {
    transform: translateY(-50%) rotate(0deg);
    background-color: var(--h-red);
  }

  .gtm-menu-item-has-children:hover .separator::after {
    background-color: var(--h-red);
  }

  .gtm-menu-item-has-children.active .separator::before,
  .gtm-menu-item-has-children.active .separator::after {
    background-color: var(--h-red);
  }

  /* ---- Sous-menu desktop ---- */
  .gtmHeader .menu>.gtm-menu-item-has-children>.gtm-sub-menu {
    position: absolute;
    left: 0;
    top: 100%;
    min-width: 220px;
    background-color: var(--h-navy);
    border-top: 2px solid var(--h-red);
    padding: 8px 0;
    overflow: visible;
    opacity: 0;
    visibility: hidden;
    max-height: 0;
    list-style: none;
    margin: 0;
    transition: opacity .2s ease, visibility .2s ease;
  }

  .gtmHeader .menu>.gtm-menu-item-has-children:hover>.gtm-sub-menu {
    opacity: 1;
    visibility: visible;
    max-height: 10000px;
  }

  .gtmHeader .menu>.menu-item:last-child>.gtm-sub-menu {
    right: 0;
    left: auto;
  }

  nav.gtm-nav-menu .gtm-sub-menu li a {
    display: block;
    padding: 10px 20px;
    color: rgba(255,255,255,.65);
    font-size: 12px;
    font-weight: 500;
    letter-spacing: 1px;
    text-transform: uppercase;
    line-height: 1.3;
    margin-bottom: 0;
    transition: all .15s ease;
    border-left: 2px solid transparent;
  }

  nav.gtm-nav-menu .gtm-sub-menu li:hover a,
  nav.gtm-nav-menu .gtm-sub-menu li.active a {
    color: #fff;
    border-left-color: var(--h-red);
    padding-left: 24px;
    background-color: rgba(255,255,255,.04);
  }

}

/* #endregion */