/* ----------------------------------------------------------------
	Custom CSS

	Add all your Custom Styled CSS here for New Styles or
	Overwriting Default Theme Styles for Better Handling Updates
-----------------------------------------------------------------*/

/* HDR overlay for sliders - darken images to increase text contrast */
.slider-element { position: relative; overflow: hidden; }
/* HDR veil intentionally removed — image will include desired darkening */
.slider-element .slider-hdr {
  display: none !important;
}
/* Keep common RevSlider overlay layers below the HDR veil */
.rev_slider .tp-dottedoverlay,
.rev_slider .tp-static-layers,
.rev_slider .tp-overlay {
  z-index: 1000 !important;
}
/* Arrows should be above the veil but below captions for usability */
.slider-arrow-left, .slider-arrow-right { z-index: 3100 !important; }
/* Ensure captions and controls sit above the overlay */
/* Put slider text on the very front so it remains readable above header/overlays and plugin layers */
.slider-element .slider-caption,
.slider-element .slider-caption *,
.rev_slider .tp-caption,
.rev_slider .tp-layer,
.rev_slider_wrapper .tp-revslider-slidesli,
.rev_slider_wrapper {
  position: relative !important;
  z-index: 2147483647 !important; /* strongest possible stack order */
}
/* Specific fix: ensure the #text-slider content sits above the HDR overlay and other layers */
#text-slider { position: relative; z-index: 2147483647 !important; }
/* Keep arrows just behind the text */
.slider-arrow-left, .slider-arrow-right { z-index: 2147483646 !important; }
/* If you want a stronger HDR feel use a slightly higher opacity, e.g. --slider-hdr-opacity:0.6 */

/* Make header-wrap visibly transition when header shrinks */
#header #header-wrap {
  transition: padding 220ms ease, height 220ms ease, line-height 220ms ease;
  overflow: hidden; /* clip content while shrinking */
}
#header.sticky-header-shrink #header-wrap {
  /* Use existing variables if available; fallback to tighter padding */
  padding-top: 0 !important;
  padding-bottom: 0 !important;
  height: var(--cnvs-sticky-header-height, 60px) !important;
}

/* Ensure header content stays centered and doesn't overflow when header shrinks */
#header.sticky-header-shrink #header-wrap .header-row {
  height: var(--cnvs-sticky-header-height, 60px) !important;
  min-height: var(--cnvs-sticky-header-height, 60px) !important;
  align-items: center !important;
  display: flex !important;
  justify-content: space-between !important; /* Logo à gauche, menu+icons à droite */
}

/* Logo: force vertical centering and proper sizing */
#header.sticky-header-shrink #logo {
  display: flex !important;
  align-items: center !important;
  height: 100% !important;
  margin: 0 !important;
  padding: 0 !important;
  transition: transform 220ms ease, padding 220ms ease;
  min-width: 80px !important; /* Reduced logo width */
}
#header.sticky-header-shrink #logo img {
  height: calc(var(--cnvs-sticky-header-height, 60px) - 12px) !important; /* Slightly larger */
  max-height: calc(var(--cnvs-sticky-header-height, 60px) - 12px) !important;
  width: auto !important;
  margin: 0 !important;
  padding: 0 !important;
  transform-origin: center left;
}

/* Header Misc (Social Icons): remove large margins, force centering */
#header.sticky-header-shrink .header-misc {
  display: flex !important;
  align-items: center !important;
  height: 100% !important;
  margin: 0 0 0 1rem !important; /* Add spacing from menu */
  padding: 0 !important;
  min-width: 180px !important; /* Larger width for icons */
}
#header.sticky-header-shrink .header-misc > div {
  margin: 0 !important; /* Override my-lg-5 Bootstrap class */
  padding: 0 !important;
  display: flex !important;
  align-items: center !important;
  height: 100% !important;
  gap: 8px !important; /* More spacing between icons */
}

/* Primary Menu: force vertical centering */
#header.sticky-header-shrink .primary-menu {
  display: flex !important;
  align-items: center !important;
  height: 100% !important;
  margin: 0 0 0 auto !important; /* Push to right */
  gap: 0.25rem;
}
#header.sticky-header-shrink .primary-menu .menu-container {
  display: flex !important;
  align-items: center !important;
  height: 100% !important;
  margin: 0 !important;
}
#header.sticky-header-shrink .primary-menu .menu-item {
  display: flex !important;
  align-items: center !important;
  height: 100% !important;
  margin: 0 !important;
}

/* Reduce spacing for menu links when header shrinks */
#header.sticky-header-shrink .primary-menu .menu-link {
  display: flex !important;
  align-items: center !important;
  height: 100% !important;
  padding-top: 0 !important;
  padding-bottom: 0 !important;
  padding-left: 0.5rem !important;
  padding-right: 0.5rem !important;
}
#header.sticky-header-shrink .primary-menu .menu-link > div {
  padding: 0 !important;
  line-height: 60px !important; /* Match header height for perfect centering */
  font-size: 0.75rem !important; /* Smaller font size */
  margin: 0 !important;
  text-transform: uppercase;
  letter-spacing: 0.5px;
}

/* Social icons sizing - enlarge and tighten spacing */
#header .header-misc .social-icon {
  --cnvs-socialicon-size: 2.4rem !important; /* larger than si-small */
  --cnvs-socialicon-fontsize: calc(var(--cnvs-socialicon-size) / 2.2) !important;
  margin: 0 6px !important; /* tighter spacing */
  transition: transform 220ms ease, width 120ms ease;
}
#header .header-misc .social-icon i {
  font-size: var(--cnvs-socialicon-fontsize) !important;
}
#header.sticky-header-shrink .header-misc .social-icon,
#header.sticky-header-shrink .header-misc .menu-item .i-plain {
  --cnvs-socialicon-size: 2.1rem !important; /* slightly smaller in sticky */
  --cnvs-socialicon-fontsize: calc(var(--cnvs-socialicon-size) / 2.2) !important;
  margin: 0 4px !important;
  transform: none !important; /* remove earlier scale */
}

/* Force white menu text for transparent headers (non-sticky) — fixes Avantages page */
/* WRAPPED IN MEDIA QUERY to prevent affecting mobile menu */
@media (min-width: 992px) {
  #header.transparent-header:not(.sticky-header) .primary-menu .menu-link,
  #header.transparent-header:not(.sticky-header) .primary-menu .menu-link > div,
  #header.transparent-header:not(.sticky-header) .header-misc a,
  #header.transparent-header:not(.sticky-header) .primary-menu .menu-link div {
    color: #ffffff !important;
  }
  #header.transparent-header:not(.sticky-header) #logo img {
    filter: none !important;
  }
  /* Keep active/highlight color readable */
  #header.transparent-header:not(.sticky-header) .primary-menu .menu-item.current > .menu-link {
    color: var(--cnvs-primary-color, #00bfa5) !important;
  }
}

/* Mobile tweaks: make menu links green on overlay and show submenus as downward "toast" */
@media (max-width: 991.98px) {
  /* Stronger override to force visible color when mobile menu is open, defeating transparent header rules */
  body.is-expanded-menu #header.transparent-header:not(.sticky-header) .primary-menu .menu-link,
  body.is-expanded-menu #header.transparent-header:not(.sticky-header) .primary-menu .menu-link > div,
  body.is-expanded-menu .menu-link,
  body.is-expanded-menu.overlay-menu .menu-link,
  body.is-expanded-menu .menu-link > div {
    color: var(--cnvs-primary-color, #00bfa5) !important;
  }

  /* Make submenu look like a dropdown/toast on mobile: collapsed by default, expands when parent is opened */
  /* Reset "Toast" behavior: allow standard JS/CSS to toggle display, but force style/position */
  .primary-menu .sub-menu-container {
    position: relative !important; /* Forces toast/accordion flow instead of floating */
    width: 100% !important;
    top: 0 !important;
    left: 0 !important;
    margin: 0 !important;
    background: #fff !important; /* Ensure white background */
    box-shadow: none !important; /* Remove float shadow if desired, or keep minimal */
    border: none !important;
  }

  /* When JS removes d-none (making it visible), force display:block to override any template defaults */
  .primary-menu .menu-item > .sub-menu-container:not(.d-none) {
    display: block !important;
  }

  /* Submenu links inherit the green color and nicer spacing */
  .primary-menu .sub-menu-container .menu-link {
    padding: .5rem 1rem 0.5rem 2rem !important; /* Indent for hierarchy */
    font-size: 0.9em !important;
    color: var(--cnvs-primary-color, #00bfa5) !important;
    background: transparent !important;
  }

  /* Fix for overlay-menu variant to behave like toast */
  .is-expanded-menu.overlay-menu .menu-item > .sub-menu-container {
     /* Only apply styling */
     background: #fff !important;
     color: var(--cnvs-primary-color, #00bfa5) !important;
     position: relative !important;
     width: 100% !important;
     box-shadow: none !important;
  }
  
  /* When JS removes d-none, ensure it is displayed */
  .is-expanded-menu.overlay-menu .menu-item > .sub-menu-container:not(.d-none) {
     display: block !important;
  }

  .is-expanded-menu.overlay-menu .sub-menu-container .menu-link {
    color: var(--cnvs-primary-color, #00bfa5) !important;
    padding: .5rem 1rem 0.5rem 2rem !important;
    background: transparent !important;
  }
  .is-expanded-menu.overlay-menu .sub-menu-container .menu-link i,
  .is-expanded-menu.overlay-menu .sub-menu-container .menu-link .bi,
  .is-expanded-menu.overlay-menu .sub-menu-container .menu-link .fa {
    color: var(--cnvs-primary-color, #00bfa5) !important;
  }

  /* Rotate the sub-menu trigger icon when open (UX affordance) */
  .primary-menu .menu-item .sub-menu-trigger {
    transition: transform 200ms ease;
    margin-left: auto;
  }
  .primary-menu .menu-item.open > .sub-menu-trigger {
    transform: rotate(90deg);
  }
}

/* Social icon borders: white when header is transparent, black when header is sticky */
#header.transparent-header:not(.sticky-header) .header-misc .social-icon,
#header.transparent-header:not(.sticky-header) .header-misc .social-icon i {
  border-color: #ffffff !important;
  color: #ffffff !important;
  background-color: transparent !important;
  box-shadow: none !important;
}
#header.transparent-header:not(.sticky-header) .header-misc .social-icon {
  border: 1px solid #ffffff !important;
}


/* Safety: if some elements still overflow, wrap them and hide overflow */
#header.sticky-header-shrink .container,
#header.sticky-header-shrink #header-wrap > .container {
  /* Allow visible overflow in sticky state so submenus can extend outside */
  overflow: visible !important;
}

/* Default: hide submenus in the sticky reduced header until hovered */
#header.sticky-header-shrink .primary-menu .sub-menu-container {
  visibility: hidden !important;
  opacity: 0 !important;
  pointer-events: none !important;
  transform: translateY(-6px) !important; /* small nudge to avoid accidental hover */
  transition: opacity 180ms ease, transform 180ms ease !important;
  z-index: 0 !important;
}
/* Show submenu on hover (sticky) or when submenu itself is hovered */
#header.sticky-header-shrink .primary-menu .menu-item:hover > .sub-menu-container,
#header.sticky-header-shrink .primary-menu .sub-menu-container:hover {
  visibility: visible !important;
  opacity: 1 !important;
  pointer-events: auto !important;
  transform: translateY(0) !important;
  transition-delay: 0s !important;
  z-index: 5000 !important;
}

/* Allow submenus to overflow the header when the menu is active/open, and ensure they sit above other layers */
.is-expanded-menu #header-wrap,
body.is-expanded-menu #header-wrap {
  overflow: visible !important;
}
/* Also allow when the header is hovered (covers normal sticky and non-sticky states) */
#header:hover #header-wrap,
#header.sticky-header-shrink:hover #header-wrap,
body:not(.is-expanded-menu) #header:hover #header-wrap {
  overflow: visible !important;
}

/* Boost submenu z-index so it is visible above header/slider in all states */
.is-expanded-menu .primary-menu .sub-menu-container,
.is-expanded-menu .primary-menu .menu-item:hover > .sub-menu-container,
.primary-menu .menu-item:hover > .sub-menu-container {
  z-index: 2000 !important;
}

/* Ensure submenu positions are not affected by header clipping when hovered */
#header .primary-menu .menu-item:hover > .sub-menu-container {
  position: absolute;
  top: 100%;
  left: 0;
}

/* Sticky header: allow overflow and force submenu visibility when header is shrunk/sticky */
.sticky-header #header-wrap,
.sticky-header:hover #header-wrap,
#header.sticky-header-shrink #header-wrap {
  overflow: visible !important;
}
.sticky-header .primary-menu .menu-item:hover > .sub-menu-container,
#header.sticky-header-shrink .primary-menu .menu-item:hover > .sub-menu-container {
  position: absolute !important;
  top: 100% !important; /* place directly below the menu item to avoid gaps */
  left: 0 !important;
  visibility: visible !important;
  opacity: 1 !important;
  z-index: 3000 !important;
}

/* Force submenu background to dark across pages (user preference) */
.primary-menu .sub-menu-container,
.is-expanded-menu .primary-menu .sub-menu-container {
  background-color: rgba(0,0,0,0.95) !important;
  color: #ffffff !important;
  border-color: rgba(255,255,255,0.06) !important;
}
.primary-menu .sub-menu-container .menu-link,
.primary-menu .sub-menu-container .menu-link div {
  color: #ffffff !important;
}
/* Keep submenu icon/indicator colors readable */
.primary-menu .sub-menu-container .menu-item > .menu-link i,
.primary-menu .sub-menu-container .menu-item > .menu-link i:last-child {
  color: #fff !important;
}
/* Circle image for staff or avatar: fill the column and stay square */
.circle-img {
	width: 80%;
	max-width: 80%;
	aspect-ratio: 1 / 1; /* keep square */
	height: auto; /* height defined by aspect-ratio */
	border-radius: 50%;
	object-fit: cover;
	display: block;
	overflow: hidden;
}

/* Align a-propos photo to the top of its column and show top portion of image */
.col-lg-4.align-self-start figure.overflow-hidden img {
	display: block;
	width: 100%;
	height: 100%;
	object-fit: cover;
	object-position: top center;
}

.whiteTitle {
	text-shadow: 0 5px 10px black;
  	text-transform: uppercase;
}
/* Change hover background color for pricing tabs to beige */
.process-steps a[href^='#ptab'].i-bordered:hover {
  --cnvs-i-bg-color: #f5f5dc !important;
  --cnvs-i-color: #333333 !important;
  border-color: #f5f5dc !important;
}

/* Change active state color for pricing tabs to theme color */
.process-steps a[href^='#ptab'].i-bordered.active {
  background-color: var(--cnvs-themecolor) !important;
  color: #ffffff !important;
  border-color: var(--cnvs-themecolor) !important;
}

.process-steps a[href^='#ptab'].i-bordered.active + h5,
.process-steps a[href^='#ptab'].i-bordered.active + .h5 {
  color: var(--cnvs-themecolor) !important;
}

:root {
  --cnvs-themecolor: #2A4F12;
  --cnvs-themecolor-rgb: 42, 79, 18;
  --cnvs-heading-color: #2A4F12;
}

/* Force headings to theme color */
h1,h2,h3,h4,h5,h6 {
  color: var(--cnvs-heading-color) !important;
}

/* Ensure ptab border is visible and uses theme color */
.tab-content .tab-pane[id^='ptab'] {
  border: 1px solid var(--cnvs-themecolor) !important;
  padding: 1.5rem;
  border-radius: 4px;
}

.greenWood {
  background-color: var(--cnvs-themecolor) !important;
}