/*
 Theme Name:     Divi Child
 Theme URI:      https://www.elegantthemes.com/gallery/divi/
 Description:    Divi Child Theme
 Author:         Elegant Themes
 Author URI:     https://www.elegantthemes.com
 Template:       Divi
 Version:        1.0.0
*/


/* =Theme customization starts here
------------------------------------------------------- */

/* ==================================================
   HERO — AUDREY CHAMBEAU — v4
   ================================================== */

/* No animations, no transitions, anywhere in the hero */
.ach-hero,
.ach-hero *,
.ach-hero *::before,
.ach-hero *::after {
  animation: none !important;
  transition: none !important;
}

/* Divi wrappers — add class "ach-hero-section" to the Section */
.ach-hero-section,
.ach-hero-section .et_pb_fullwidth_code,
.ach-hero-section .et_pb_code,
.ach-hero-section .et_pb_row,
.ach-hero-section .et_pb_column {
  padding: 0 !important;
  margin: 0 !important;
}
.ach-hero-section .et_pb_row {
  width: 100% !important;
  max-width: 100% !important;
}

/* -- Banner: exact screen height minus the Divi header -- */
.ach-hero {
  --ach-green: #5A9E90;
  --ach-ink: #FFFFFF;
  --ach-pad: clamp(20px, 4vw, 56px);
  --ach-header: 80px;   /* ← your Divi header height */
  position: relative;
  width: 100%;
  height: calc(100vh - var(--ach-header));
  overflow: hidden;
  background: #102A25;   /* dark fallback while the image loads */
}
/* logged in: also subtract the WP admin bar */
body.admin-bar .ach-hero {
  height: calc(100vh - var(--ach-header) - 32px);
}
.ach-hero,
.ach-hero * { box-sizing: border-box; }

/* -- Image: fills the WHOLE banner -- */
.ach-hero-media {
  position: absolute;
  inset: 0;
  z-index: 1;
}
.ach-hero-media img {
  display: block;
  width: 100%;
  height: 100%;
  object-fit: cover !important;
  object-position: center center;   /* ← adjust framing here */
}

/* -- Flat black overlay on top of the photo -- */
.ach-hero-tint {
  position: absolute;
  inset: 0;
  background: rgba(0, 0, 0, .45);   /* ← overlay strength */
}

/* -- Slight darkening at the bottom so the title stays readable -- */
.ach-hero-fade {
  position: absolute;
  inset: 0;
  background: linear-gradient(0deg, rgba(16, 42, 37, .25) 0%, rgba(16, 42, 37, 0) 45%);
}

/* -- Content -- */
.ach-hero-inner {
  position: relative;
  z-index: 2;
  height: 100%;
  display: flex;
  flex-direction: column;
  justify-content: space-between;
  padding: var(--ach-pad);
}
.ach-hero-copyright {
  color: var(--ach-ink);
  font-size: clamp(1.2rem, 1.8vw, 1.8rem);
}
.ach-hero-bottom { padding-bottom: clamp(30px, 3vw, 48px); }
.ach-hero-tagline {
  color: #F1F5F3;
  font-size: clamp(1.05rem, 1.6vw, 1.6rem);
  margin: 0 0 clamp(8px, 1.2vw, 18px) 8px;
}

/* Title sized with vw AND vh → always fits, 14" / 16" / 27" */
.ach-hero-name {
  margin: 0;
  padding: 0;
  color: var(--ach-ink);
  font-size: min(9.5vw, 22vh);
  line-height: .9;
  white-space: nowrap;
}
.ach-star {
  display: inline-block;
  color: #F1F5F3;
}

/* -- Pills -- */
.ach-pill {
  position: absolute;
  bottom: calc(var(--ach-pad) * .55);
  z-index: 3;
  display: inline-flex;
  align-items: center;
  gap: 8px;
  padding: 9px 18px;
  border-radius: 999px;
  background: rgba(255, 255, 255, .18);
  border: 1px solid rgba(255, 255, 255, .3);
  color: #fff;
  font-size: .85rem;
  white-space: nowrap;
}
.ach-pill-left  { left: calc(var(--ach-pad) * .8); }
.ach-pill-right { right: calc(var(--ach-pad) * .8); }
.ach-dot {
  display: inline-block;
  width: 7px;
  height: 7px;
  border-radius: 50%;
  background: #fff;
}

/* -- Responsive -- */
@media (max-width: 980px) {
  .ach-hero-tint { background: rgba(0, 0, 0, .55); }
  .ach-hero-name {
    white-space: normal;
    font-size: min(13.5vw, 15vh);
    line-height: .95;
  }
}
@media (max-width: 600px) {
  .ach-hero-copyright { font-size: 1.05rem; }
  .ach-hero-tagline   { font-size: 1rem; margin-left: 4px; }
  .ach-hero-bottom    { padding-bottom: 56px; }
  .ach-pill { padding: 8px 14px; font-size: .78rem; }
}

/* ==========================================================
   UNDERLAY NAV — Audrey Chambeau — Divi version
   Paste in Appearance > Customize > Additional CSS
   ========================================================== */
/* ==========================================================
   UNDERLAY NAV — Audrey Chambeau — Divi version
   Paste in Appearance > Customize > Additional CSS
   ========================================================== */

:root {
  --menu-width: 30em;
  /* Must match the real page background (menu masks + underlay) */
  --underlay-page-bg: #fff;
  /* Brand */
  --ac-mint: #7BBFB0;
  --ac-coral: #F78057;
}


@media screen and (max-width: 767px) {
  .underlay-nav__inner {
    padding-top: 6.5rem;
  }
}

@media (max-width: 991px) {
  .inverse {
      display: flex;
      flex-direction: column-reverse;
  }
}

@media (min-width: 1024px) {
  .center-text-image {
      display: flex;
      align-items: center;
  }
}


/* =====================================================
   DIVI IMAGE ZOOM — ONLY FOR .img-zoom
   ===================================================== */

.img-zoom {
    overflow: hidden;
}

.img-zoom img {
    display: block;
    width: 100%;
    transform: scale(1);
    transition: transform 0.6s cubic-bezier(.2,.65,.3,1);
}

.img-zoom:hover img {
    transform: scale(1.1);
}

/
/* Boutons côte à côte */
.buttons-column .et_pb_button_module_wrapper {
    display: inline-block;
    margin: 20px 15px 0 0 !important;
    vertical-align: middle;
}

/* Mobile */
@media (max-width: 767px) {
    .buttons-column .et_pb_button_module_wrapper {
        display: block;
        margin: 12px 0 0 !important;
    }

    .buttons-column .et_pb_button {
        width: 100%;
        max-width: 290px;
        text-align: center;
    }
}















/* ==========================================================
   UNDERLAY NAV — Audrey Chambeau — Divi version
   Paste in Appearance > Customize > Additional CSS
   ========================================================== */

:root {
  --menu-width: 30em;
  /* Must match the real page background (menu masks + underlay) */
  --underlay-page-bg: #fff;
  /* Brand */
  --ac-mint: #7BBFB0;
  --ac-coral: #F78057;
}

/* ---------- DIVI INTEGRATION ---------- */

#main-header,
#top-header,
#et-secondary-nav {
  display: none !important;
}

#page-container {
  padding-top: 0 !important;
}

/* Page must sit above the fixed menu (underlay) and be opaque */
#et-main-area {
  position: relative;
  z-index: 2;
  background-color: var(--underlay-page-bg);
}

/* TB header layout is just a mount point; nav is hoisted to <body> by JS */
.et-l--header {
  display: none;
}

body {
  overflow-x: clip;
}

/* ---------- COMPONENT ---------- */

.underlay-nav a {
  color: inherit;
  text-decoration: none;
}

.underlay-nav__header {
  z-index: 100;
  color: #fff; /* over the hero at top of page */
  transition: color .35s ease;
  position: fixed;
  inset: 0% 0% auto;
}

/* Scrolled: dark text so the header stays visible on white sections */
.underlay-nav__header.is--scrolled {
  color: #131313;
}

.underlay-nav__bar {
  width: 100%;
  margin-left: auto;
  margin-right: auto;
}

.underlay-nav__container {
  justify-content: space-between;
  align-items: center;
  padding: 2.5em;
  display: flex;
}

/* ----- Text logo: "audrey chambeau" -> "ac" on scroll ----- */

.underlay-nav__logo {
  display: flex;
  align-items: baseline;
  gap: .3em;
  font-family: Haffer XH, Arial, sans-serif; /* swap to site font */
  font-size: 1.5em;
  font-weight: 600;
  letter-spacing: -.02em;
  line-height: 1.2;
  white-space: nowrap;
  text-transform: lowercase; /* audrey chambeau */
  filter: drop-shadow(0 2px 10px rgba(0, 0, 0, .35));
  transition:
    gap .8s cubic-bezier(.22, 1, .36, 1),
    filter .35s ease,
    opacity .3s ease,
    visibility 0s linear .3s;
}

.underlay-nav__logo-word {
  display: inline-flex;
  align-items: baseline;
}

.underlay-nav__logo-rest {
  display: inline-block;
  max-width: var(--rest-w, 12ch); /* exact width set by JS */
  opacity: 1;
  overflow: hidden;
  will-change: max-width, opacity;
  /* expanding: width leads, text fades in slightly after */
  transition:
    max-width .8s cubic-bezier(.22, 1, .36, 1),
    opacity .5s ease .12s;
}

.underlay-nav__header.is--scrolled .underlay-nav__logo {
  gap: .06em;
}

.underlay-nav__header.is--scrolled .underlay-nav__logo-rest {
  max-width: 0;
  opacity: 0;
  /* collapsing: text fades out first, width follows */
  transition:
    max-width .8s cubic-bezier(.22, 1, .36, 1),
    opacity .35s ease;
}

/* ----- Toggle ----- */

.underlay-nav__toggle {
  color: inherit; /* buttons don't inherit color by default */
  grid-column-gap: .75em;
  grid-row-gap: .75em;
  outline-offset: 0px;
  background-color: #0000;
  border: 1px #000;
  outline: 3px #555;
  justify-content: center;
  align-items: center;
  margin: -1em;
  padding: 1em;
  display: flex;
  cursor: pointer;
  filter: drop-shadow(0 2px 10px rgba(0, 0, 0, .35));
  transition: color .4s ease, filter .35s ease;
}

/* Scrolled: header is dark on light sections, drop the shadow */
.underlay-nav__header.is--scrolled .underlay-nav__logo,
.underlay-nav__header.is--scrolled .underlay-nav__toggle {
  filter: none;
}

/* Menu open: toggle sits over the white panel -> dark, no shadow */
body[data-menu-status="open"] .underlay-nav__toggle {
  color: #131313;
  filter: none;
}

/* Menu open: hide the logo text */
body[data-menu-status="open"] .underlay-nav__logo {
  opacity: 0;
  visibility: hidden;
}

.underlay-nav__toggle-text {
  flex-flow: column;
  flex: none;
  justify-content: flex-start;
  align-items: flex-end;
  height: 1.5em;
  display: flex;
  overflow: hidden;
}

.underlay-nav__toggle-label {
  font-size: 1.25em;
}

.underlay-nav__toggle-icon {
  grid-column-gap: .375em;
  grid-row-gap: .375em;
  flex-flow: column;
  flex: none;
  justify-content: center;
  align-items: center;
  width: 1.5em;
  margin-bottom: -.3em;
  display: flex;
}

.underlay-nav__toggle-bar {
  background-color: currentColor;
  flex: none;
  width: 100%;
  height: .125em;
  padding: 0;
}

/* ----- Menu ----- */

.underlay-nav__menu {
  z-index: 1;
  width: var(--menu-width);
  color: #131313;
  position: fixed;
  top: 0;
  bottom: 0;
  right: 0;
}

.underlay-nav__overlay {
  z-index: 100;
  pointer-events: none;
  cursor: pointer;
  visibility: hidden;
  position: fixed;
  inset: 0% -1px 0% 0%;
  overflow: clip;
}

.underlay-nav__inner {
  grid-column-gap: 2em;
  grid-row-gap: 2em;
  flex-flow: column;
  justify-content: space-between;
  align-items: stretch;
  width: 100%;
  height: 100%;
  padding: 9.5em 2em 2em; /* extra space below the Fermer toggle */
  display: flex;
  overflow: auto;
}

.underlay-nav__list {
  flex-flow: column;
  width: 100%;
  margin-bottom: 0;
  padding: 0 !important;
  list-style: none !important;
  display: flex;
}

.underlay-nav__list li {
  list-style: none;
}

.underlay-nav__list.is--small {
  grid-column-gap: .75em;
  grid-row-gap: .75em;
}

.underlay-nav__link-large {
  border-radius: .25em;
  width: 100%;
  padding: .75em 1em;
  display: block;
  transition: background-color .35s ease, color .35s ease;
}

/* Hover: mint */
.underlay-nav__link-large:hover {
  background-color: var(--ac-mint);
  color: #fff;
}

/* Current page: coral */
.underlay-nav__link-large.is--current,
.underlay-nav__link-large.w--current,
.current-menu-item .underlay-nav__link-large {
  background-color: var(--ac-coral);
  color: #fff;
}

.underlay-nav__link-label {
  letter-spacing: -.02em;
  text-transform: uppercase;
  font-family: Haffer XH, Arial, sans-serif; /* swap to site font */
  font-size: 2.5em;
  line-height: 1;
  display: block;
}

.underlay-nav__bottom {
  justify-content: flex-start;
  align-items: flex-start;
  width: 100%;
  padding-top: 1.5em;
  display: flex;
  position: relative;
}

.underlay-nav__bottom-col {
  grid-column-gap: 1em;
  grid-row-gap: 1em;
  flex-flow: column;
  flex: 1;
  justify-content: flex-start;
  align-items: flex-start;
  display: flex;
}

.underlay-nav__link-small {
  font-size: 1em;
  line-height: 1.1;
  transition: color .3s ease;
}

a.underlay-nav__link-small:hover {
  color: var(--ac-mint);
}

.underlay-nav__link-small.is--faded {
  opacity: .5;
}

.underlay-nav__corner {
  transform-origin: 100% 0;
  color: var(--underlay-page-bg);
  background-image: radial-gradient(circle farthest-side at 0 100%, #fff0 99%, var(--underlay-page-bg));
  width: 2em;
  height: 2em;
}

.underlay-nav__corner.is--bottom {
  transform-origin: 100% 100%;
  background-image: radial-gradient(circle farthest-side at 0 0, #fff0 99%, var(--underlay-page-bg));
}

.underlay-nav__dark {
  opacity: 0;
  background-color: #0000004d;
  position: absolute;
  inset: 0%;
}

.underlay-nav__bottom-border {
  opacity: .15;
  transform-origin: 0%;
  background-color: currentColor;
  width: 100%;
  height: 1px;
  position: absolute;
  inset: 0% 0% auto;
}

.underlay-nav__borders {
  flex-flow: column;
  justify-content: space-between;
  align-items: stretch;
  display: flex;
  position: absolute;
  inset: 0;
}

.underlay-nav__border {
  background-color: var(--underlay-page-bg);
  width: 100%;
  height: 1em;
}

.underlay-nav__border-row {
  flex-flow: column;
  justify-content: flex-start;
  align-items: flex-end;
  display: flex;
}

/* Logged-in admin bar offset */
body.admin-bar .underlay-nav__header {
  top: 32px;
}

/* ---------- MOBILE ---------- */

@media screen and (max-width: 767px) {
  :root {
    --menu-width: 100vw; /* menu takes the entire screen */
  }

  /* Smaller logo on mobile (hidden only when menu is open, see above) */
  .underlay-nav__logo {
    font-size: 1.15em;
  }

  .underlay-nav__container {
    padding: 1.25em;
  }

  .underlay-nav__toggle-text {
    height: 1.25em;
  }

  .underlay-nav__toggle-label {
    font-size: 1em;
  }

  .underlay-nav__inner {
    padding: 6.5em 1.25em 1.25em; /* extra space below Fermer */
  }

  .underlay-nav__link-label {
    font-size: 1.6em;
  }

  .underlay-nav__bottom {
    grid-column-gap: 2em;
    grid-row-gap: 2em;
    flex-flow: column;
    padding-left: 1em;
    padding-right: 1em;
  }

  /* Full-width panel: hide edge masks / rounded corners */
  .underlay-nav__borders,
  .underlay-nav__corner {
    display: none;
  }

  body.admin-bar .underlay-nav__header {
    top: 46px;
  }
}

/* Boutons côte à côte */
.buttons-column .et_pb_button_module_wrapper {
    display: inline-block;
    margin: 20px 15px 0 0 !important;
    vertical-align: middle;
}

/* Mobile */
@media (max-width: 767px) {
    .buttons-column .et_pb_button_module_wrapper {
        display: block;
        margin: 12px 0 0 !important;
    }

    .buttons-column .et_pb_button {
        width: 100%;
        max-width: 290px;
        text-align: center;
    }
}
.ach-services,
.ach-services * {
  box-sizing: border-box;
}

.ach-services {
  padding: 0;
  margin: 0;
}

.ach-services-header {
  padding: 0;
  margin: 0;
}

.ach-eyebrow {
  display: inline-block;
  font-size: 13px;
  font-weight: 700;
  line-height: 1.2;
  letter-spacing: 0.12em;
  text-transform: uppercase;
}

.ach-title {
  padding: 0;
  margin: 0;
  font-size: clamp(32px, 4vw, 54px);
  line-height: 1.05;
}

.ach-intro {
  padding: 0;
  margin: 0;
  max-width: 650px;
  font-size: 17px;
  line-height: 1.7;
}

.ach-services-grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 24px;
  padding: 0;
  margin: 0;
}

.ach-service-card {
  display: flex;
  flex-direction: column;
  min-width: 0;
  padding: 28px;
  margin: 0;
  background: #fff;
  border: 1px solid rgba(20, 20, 20, 0.12);
  border-radius: 14px;
  transition:
    transform 0.25s ease,
    border-color 0.25s ease;
}

.ach-service-card:hover {
  transform: translateY(-5px);
  border-color: rgba(20, 20, 20, 0.3);
}

.ach-service-icon {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 54px;
  height: 54px;
  flex: 0 0 54px;
  background: #f2e7ed;
  border-radius: 12px;
}

.ach-service-icon-yellow {
  background: #f9e29b;
}

.ach-service-icon svg {
  width: 27px;
  height: 27px;
}

.ach-service-card h3 {
  padding: 0;
  margin: 0;
  font-size: 22px;
  line-height: 1.25;
}

.ach-service-card p {
  padding: 0;
  margin: 0;
  font-size: 15px;
  line-height: 1.7;
}

.ach-service-link {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  width: fit-content;
  margin-top: auto;
  color: inherit;
  font-weight: 700;
  text-decoration: none;
}

.ach-service-link span {
  transition: transform 0.2s ease;
}

.ach-service-link:hover span {
  transform: translateX(4px);
}

@media (max-width: 980px) {
  .ach-services-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}

@media (max-width: 767px) {
  .ach-services-grid {
    grid-template-columns: 1fr;
    gap: 16px;
  }

  .ach-service-card {
    padding: 22px;
  }
}
.underlay-nav__logo {
  text-transform: none;   /* not lowercase, not capitalize */
}