/* Aqua Mega Menu - fond blanc, panneau gauche, overlay sombre, cascade 3 colonnes */
/* Couleurs et typos = Global Styles Elementor (custom properties --e-global-*), fallbacks en dur */
.amm, .amm-overlay {
  --amm-text: var(--e-global-color-31dcc7e, #3B5C5E);
  --amm-accent: var(--e-global-color-6c75135, #84A1A2);
  --amm-line: rgba(59,92,94,.14);
  --amm-font-sans: var(--e-global-typography-text-font-family, 'Josefin Sans'), sans-serif;
  --amm-font-serif: var(--e-global-typography-primary-font-family, 'Cormorant Garamond'), serif;
}

/* Burger : couleur du kit PAR DEFAUT partout. Blanc UNIQUEMENT dans l'etat transparent du
   snippet psb-home-header : .js-home-header:not(.is-solid) (is-solid pose au scroll, rien au top).
   Scope body:has(.js-hero-section) = uniquement les pages a hero (ou le snippet est actif), pour
   que les pages SANS hero gardent le burger fonce des le haut. */
.amm-burger span { background: var(--e-global-color-7596cc0, #84A1A2); }
body:has(.js-hero-section) .js-home-header:not(.is-solid) .amm-burger span { background: #FFFFFF; }

/* Anti-heritage theme : jamais de hover rose dans le panneau */
.amm-panel a:hover, .amm-panel a:focus { color: var(--amm-accent) !important; }

/* Burger : deux traits fins decales */
.amm-burger { background: transparent !important; border: none !important; box-shadow: none !important; cursor: pointer; padding: 10px 6px; display: inline-flex; flex-direction: column; gap: 6px; }
.amm-burger:hover, .amm-burger:focus, .amm-burger:active, .amm-burger:focus-visible { background: transparent !important; outline: none; }
.amm-burger span { display: block; width: 28px; height: 1.5px; background: var(--e-global-color-7596cc0, #84A1A2); transition: transform .3s ease, opacity .3s ease; }
.amm-burger span:last-child { width: 19px; margin-left: 9px; }

/* Overlay sombre plein ecran */
.amm-overlay { position: fixed; inset: 0; z-index: 999999; background: rgba(20,32,33,0); transition: background .35s ease; }
.amm-overlay.amm-visible { background: rgba(20,32,33,.45); }

/* Panneau blanc glissant depuis la gauche — s'élargit quand une section est ouverte */
.amm-panel { position: absolute; top: 0; left: 0; height: 100%; background: #FFFFFF; color: var(--amm-text);
  width: 380px; max-width: 100%; transform: translateX(-100%); transition: transform .38s cubic-bezier(.22,.8,.26,1), width .3s ease;
  display: flex; flex-direction: column; overflow: hidden; }
.amm-overlay.amm-visible .amm-panel { transform: translateX(0); }
.amm-panel.amm-sub-open { width: 720px; max-width: 94vw; }
.amm-panel.amm-cards-open { width: 1060px; max-width: 94vw; }
.amm-card-off { display: none !important; }
.amm-l3-inline { padding: 12px 0 16px; }
.amm-l3-inline .amm-card { margin-bottom: 14px; }
.amm-l2 a.amm-cards-active { color: var(--amm-accent); }

/* Reset scopé : neutralise les styles du thème dans le panneau */
.amm-panel ul, .amm-panel li { margin: 0 !important; padding-top: 0 !important; padding-bottom: 0 !important; list-style: none; }
.amm-panel a { line-height: 1.45; }
.amm-panel p { margin: 0; }

.amm-panel-head { display: flex; align-items: center; justify-content: center; position: relative; padding: 36px 26px 26px; }
.amm-close { position: absolute; right: 18px; top: 26px; }
body.admin-bar .amm-overlay { top: 32px; }
@media (max-width: 782px) { body.admin-bar .amm-overlay { top: 46px; } }
.amm-brand { font-family: var(--amm-font-serif); font-size: 15px; letter-spacing: .16em; text-transform: uppercase; }
.amm-close { background: none; border: none; font-size: 30px; line-height: 1; cursor: pointer; color: var(--amm-text); padding: 2px 6px; }

/* Colonnes */
.amm-cols { display: flex; flex: 1 1 auto; min-height: 0; overflow: hidden; }
.amm-l1 { width: 360px; flex: 0 0 auto; display: flex; flex-direction: column; padding: 18px 26px calc(34px + env(safe-area-inset-bottom, 0px)); overflow-y: auto; }
.amm-l1, .amm-l2, .amm-l3 { overscroll-behavior: contain; -webkit-overflow-scrolling: touch; }
.amm-l2 .amm-l3 { position: static; width: auto; border: none; padding: 20px 0 8px; display: block; max-height: none; overflow: visible; }
.amm-l1 ul { list-style: none; margin: 0; padding: 0; }
.amm-l1-link { display: flex !important; align-items: center; gap: 14px; padding: 15px 2px !important; margin: 0 !important;
  color: var(--amm-text); text-decoration: none; font-family: var(--amm-font-sans); font-size: 16px; font-weight: 400;
  border-bottom: 1px solid var(--amm-line); transition: color .2s ease; }
.amm-l1-link i { width: 20px; text-align: center; font-size: 15px; color: var(--amm-accent); flex: 0 0 auto; }
.amm-ico { width: 20px; height: 20px; object-fit: contain; flex: 0 0 auto; display: inline-block;
  filter: brightness(0) saturate(100%) invert(66%) sepia(11%) saturate(500%) hue-rotate(135deg) brightness(93%) contrast(84%); }
.amm-l1-link:hover, .amm-l1-link.amm-active { color: var(--amm-accent); }
.amm-chev { margin-left: auto; flex: 0 0 auto; font-size: 22px; line-height: 1; opacity: .75;
  border: none !important; transform: none !important; width: auto; height: auto; font-family: Georgia, serif; }
.amm-logo { max-height: 60px; width: auto; display: block; filter: none !important; }
@media (min-width: 1025px) {
  .amm-l1 ul { margin-bottom: 48px !important; }
}
.amm-l1-link span, .amm-l2 ul a { text-transform: capitalize; }

/* Carte promo + CTA + pied */
.amm-promo { margin-top: auto; display: block; border: 1px solid var(--amm-accent) !important; border-radius: 10px; padding: 14px 16px !important;
  color: var(--amm-text) !important; text-decoration: none; font-family: var(--amm-font-sans); font-size: 13.5px; line-height: 1.45; transition: background .2s ease; }
.amm-promo:hover { background: rgba(132,161,162,.08); }
.amm-cta { display: inline-block; align-self: center; width: auto; margin-top: 18px; background: var(--amm-accent) !important; color: #fff !important; text-align: center; text-decoration: none;
  padding: 12px 34px !important; border-radius: 30px; font-family: var(--amm-font-sans); font-size: 13px; font-weight: 600; letter-spacing: .05em; text-transform: capitalize; transition: filter .2s ease; }
.amm-cta:hover { filter: brightness(.94); }
.amm-cta-solo { margin-top: auto !important; }
.amm-foot { margin-top: 20px; font-family: var(--amm-font-sans); font-size: 13px; }
.amm-langs a { color: var(--amm-text); text-decoration: none; opacity: .6; }
.amm-langs a.amm-lang-current { opacity: 1; font-weight: 600; }

/* Niveau 2 */
.amm-l2 { width: 320px; flex: 0 0 auto; border-left: 1px solid var(--amm-line); padding: 18px 24px; overflow-y: auto; }
.amm-l2-title { font-family: var(--amm-font-sans); font-size: 12px; letter-spacing: .12em; text-transform: uppercase; color: var(--amm-accent); margin: 4px 0 8px; }
.amm-l2-title a { color: inherit; text-decoration: underline; text-underline-offset: 3px; }
.amm-l2 ul { list-style: none; margin: 0; padding: 0; }
.amm-l2 a { display: flex; align-items: center; padding: 13px 2px; color: var(--amm-text); text-decoration: none;
  font-family: var(--amm-font-sans); font-size: 15px; border-bottom: 1px solid var(--amm-line); transition: color .2s ease; }
.amm-l2 a:hover { color: var(--amm-accent); }
.amm-back { display: none; background: none; border: none; color: var(--amm-accent); font-family: var(--amm-font-sans);
  font-size: 13px; cursor: pointer; padding: 4px 0 10px; }
.amm-back::before { content: "‹"; margin-right: 6px; font-size: 16px; }

/* Niveau 3 : cartes featured image */
.amm-l3 { width: 340px; flex: 0 0 auto; border-left: 1px solid var(--amm-line); padding: 22px 24px; overflow-y: auto; }
.amm-card { display: block; margin-bottom: 18px; text-decoration: none; color: var(--amm-text); }
.amm-card img, .amm-card-ph { width: 100%; aspect-ratio: 4/3; object-fit: cover; border-radius: 10px; display: block; }
.amm-card-ph { background: linear-gradient(135deg, #84A1A2, #3B5C5E); }
.amm-card-label { display: block; margin-top: 8px; font-family: var(--amm-font-sans); font-size: 13.5px; letter-spacing: .04em; }
.amm-card:hover .amm-card-label { color: var(--amm-accent); }

/* Etats caches */
.amm-l2[hidden], .amm-l3[hidden] { display: none; }

/* Scroll lock applique par JS sur body */
body.amm-locked { overflow: hidden; }

/* Tablette : l1 + l2 (cartes integrees au niveau 2 via JS) */
@media (max-width: 1024px) {
  .amm-l1 { width: 330px; }
  .amm-l2 { width: 320px; }
  .amm-panel { width: 350px; }
  .amm-panel.amm-sub-open, .amm-panel.amm-cards-open { width: 670px; max-width: 96vw; }
}

/* Mobile : plein ecran + drill-down par ecrans */
@media (max-width: 767px) {
  .amm-panel { width: 100%; }
  .amm-panel.amm-sub-open { width: 100%; max-width: 100%; }
  .amm-cols { position: relative; overflow: hidden; }
  .amm-l1 { width: 100%; transition: transform .32s ease; }
  .amm-panel.amm-sub-open .amm-l1 { transform: translateX(-14%); opacity: .25; pointer-events: none; }
  .amm-l2 { position: absolute; inset: 0; width: 100%; background: #fff; border-left: none;
    transform: translateX(100%); transition: transform .32s ease; z-index: 2; }
  .amm-l2.amm-current { transform: translateX(0); }
  .amm-l2[hidden] { display: block; visibility: hidden; }
  .amm-l2.amm-current[hidden] { visibility: visible; }
  .amm-back { display: inline-block; }
}

/* ===== v1.1.4 : logo panneau, respirations, CTA pill ===== */
.amm-logo { filter: none !important; max-height: 60px; width: auto; }
.amm-panel-head { justify-content: center; position: relative; padding: 36px 26px 26px; }
.amm-close { position: absolute; right: 18px; top: 26px; }
.amm-l1 { padding: 18px 26px calc(34px + env(safe-area-inset-bottom, 0px)); }
.amm-foot { margin-top: 20px; }
.amm-cta { align-self: center; width: auto; display: inline-block; padding: 12px 34px !important; font-size: 13px; letter-spacing: .05em; text-transform: capitalize; border-radius: 30px; background: var(--e-global-color-6c75135, #84A1A2) !important; color: #fff !important; font-family: var(--e-global-typography-e3de32c-font-family, 'Josefin Sans'), sans-serif; }
.amm-cta-solo { margin-top: auto !important; }

/* ===== v1.5.0 : carte niveau 3 mobile lisible + CTA + langues drapeaux ===== */
.amm-l3-inline { width: 100%; padding: 6px 0 14px; }
.amm-l3-inline .amm-card { display: block; width: 100%; margin: 0 0 16px; }
.amm-l3-inline .amm-card img, .amm-l3-inline .amm-card-ph { width: 100%; aspect-ratio: 16/9; border-radius: 12px; }
.amm-l3-inline .amm-card-label { display: block !important; position: static !important;
  width: 100%; margin-top: 8px; text-align: center; white-space: normal; overflow: visible;
  font-size: 14px; letter-spacing: .04em; color: var(--amm-text); }
/* Bouton centré verticalement dans l'espace libre entre le menu et les langues */
.amm-l1 ul { flex: 0 0 auto; }
.amm-cta { display: block; width: auto; min-width: 200px; max-width: 300px;
  margin: auto auto 0 !important; text-align: center; }
.amm-foot { text-align: center; margin: auto auto 0 !important; padding-top: 22px; }
.amm-langs { display: inline-flex; gap: 22px; align-items: center; justify-content: center; }
.amm-lang { display: inline-flex; align-items: center; gap: 7px; font-size: 13px; letter-spacing: .06em; }
.amm-flag { font-size: 17px; line-height: 1; }
@media (max-width: 767px) {
  .amm-cta { width: 82%; max-width: 340px; margin: auto auto 0 !important; }
  .amm-langs { gap: 30px; }
}

/* Vignette promo au-dessus du bouton : même style que les cartes colonne 3, desktop only */
.amm-promo { display: block; margin: auto auto 16px; width: 100%; max-width: 300px;
  text-decoration: none; border: 0 !important; background: none !important; padding: 0 !important; box-shadow: none !important; }
.amm-promo img { width: 100%; aspect-ratio: 4/3; object-fit: cover; border-radius: 10px; display: block; box-shadow: none; transition: filter .25s ease; }
.amm-promo:hover img { filter: brightness(.94); }
.amm-promo span { display: block; margin-top: 8px; text-align: center; font-family: var(--amm-font-sans); font-size: 13.5px; letter-spacing: .04em; color: var(--amm-text); }
/* Desktop seulement : la vignette meuble l'espace, donc le bouton se colle dessous */
@media (min-width: 1025px) { .amm-cta:not(.amm-cta-solo) { margin-top: 0 !important; } }
/* Tablette/mobile : pas de vignette → bouton centré dans l'espace libre */
@media (max-width: 1024px) { .amm-promo { display: none; } .amm-cta { margin: auto auto 0 !important; } }
