/* Inter (variable 400-700), auto-hébergée — licence SIL OFL */
@font-face { font-family: 'Inter'; font-style: normal; font-weight: 400 700; font-display: swap;
  src: url('fonts/inter-latin-ext.woff2') format('woff2');
  unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C4, U+2113, U+2C60-2C7F, U+A720-A7FF; }
@font-face { font-family: 'Inter'; font-style: normal; font-weight: 400 700; font-display: swap;
  src: url('fonts/inter-latin.woff2') format('woff2');
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD; }
/* =====================================================================
   Hegemonia — rendu Apple pour WordPress (Astra + Elementor natif).
   Un seul accent : l'or. Contrastes vérifiés :
   #8A6A2E / blanc 5,02:1 · #8A6A2E / #F5F5F7 4,61:1 · #D4A857 / #272729 6,77:1
   Les fonds, marges et grilles sont réglés dans Elementor (modifiables) ;
   ce fichier ne porte que la typographie, les états et l'habillage.
   ===================================================================== */
:root {
  --heg-accent: #8A6A2E;
  --heg-accent-hover: #7F6129;
  --heg-accent-on-dark: #D4A857;
  --heg-white: #FFFFFF;
  --heg-parchment: #F5F5F7;
  --heg-graphite: #272729;
  --heg-ink: #1D1D1F;
  --heg-black: #000000;
  --heg-muted: #6E6E73;
  --heg-muted-on-dark: #A1A1A6;
  --heg-hairline: #D2D2D7;
  --heg-font: -apple-system, BlinkMacSystemFont, "SF Pro Text", "SF Pro Display", Inter, "Segoe UI", "Helvetica Neue", Arial, sans-serif;
  --heg-pill: 980px;
  --heg-radius: 18px;
  --heg-ease: cubic-bezier(0.16, 1, 0.3, 1);
}

/* ---------- Base et surfaces du navigateur ---------- */
html { -webkit-font-smoothing: antialiased; -moz-osx-font-smoothing: grayscale; scroll-behavior: smooth; scroll-padding-top: 64px; scrollbar-color: #B9B9BE transparent; }
body, .elementor, .elementor button, .elementor input, .elementor textarea, .elementor select { font-family: var(--heg-font); }
body { color: var(--heg-ink); background: var(--heg-white); font-size: 17px; line-height: 1.47; letter-spacing: -0.01em; }
::selection { background: var(--heg-accent); color: var(--heg-white); }
.heg-dark ::selection { background: var(--heg-accent-on-dark); color: var(--heg-black); }
:focus-visible { outline: 2px solid var(--heg-accent); outline-offset: 3px; border-radius: 6px; }
.heg-dark :focus-visible { outline-color: var(--heg-accent-on-dark); }
a { text-underline-offset: 0.18em; }
@media (prefers-reduced-motion: reduce) { html { scroll-behavior: auto; } }

/* ---------- Typographie (posée sur des widgets Elementor natifs) ---------- */
.elementor .elementor-heading-title { font-family: var(--heg-font); font-weight: 600; color: var(--heg-ink); text-wrap: balance; }
.elementor .heg-giant .elementor-heading-title { font-size: clamp(2.75rem, 1rem + 6.4vw, 5.5rem); line-height: 1.04; letter-spacing: -0.025em; }
.elementor .heg-hero .elementor-heading-title { font-size: clamp(2.25rem, 1.2rem + 3.6vw, 4rem); line-height: 1.06; letter-spacing: -0.02em; }
.elementor .heg-display .elementor-heading-title { font-size: clamp(1.875rem, 1.2rem + 2.2vw, 3rem); line-height: 1.08; letter-spacing: -0.015em; }
.elementor .heg-title .elementor-heading-title { font-size: clamp(1.375rem, 1.15rem + 0.8vw, 1.75rem); line-height: 1.14; letter-spacing: -0.01em; }
.elementor .heg-price .elementor-heading-title { font-size: clamp(1.75rem, 1.4rem + 1vw, 2.25rem); line-height: 1.1; letter-spacing: -0.015em; font-variant-numeric: tabular-nums; }
.elementor .heg-step .elementor-heading-title { font-size: 15px; line-height: 1.3; font-weight: 600; letter-spacing: 0; color: var(--heg-accent); font-variant-numeric: tabular-nums; }
.elementor .heg-lead, .elementor .heg-lead p { font-size: clamp(1.1875rem, 1rem + 0.7vw, 1.5rem); line-height: 1.33; color: var(--heg-ink); letter-spacing: -0.005em; }
.elementor .heg-body, .elementor .heg-body p { font-size: 17px; line-height: 1.53; color: #333336; }
.elementor .heg-body p { max-width: 68ch; }
.elementor .heg-center p { margin-inline: auto; }
.elementor .heg-lead p { max-width: 36em; text-wrap: pretty; }
.elementor .heg-body a { color: var(--heg-accent); }
.elementor .heg-body a:hover { color: var(--heg-accent-hover); }

/* Bouton « retour en haut » d'Astra, aux couleurs du site */
#ast-scroll-top { background-color: rgba(29,29,31,.72) !important; color: #FFFFFF !important; border-radius: 50%; -webkit-backdrop-filter: blur(12px); backdrop-filter: blur(12px); transition: background-color .25s ease; }
#ast-scroll-top:hover { background-color: var(--heg-accent) !important; }
.elementor .heg-muted, .elementor .heg-muted p { color: var(--heg-muted); }
.elementor .heg-fine, .elementor .heg-fine p { font-size: 14px; line-height: 1.43; color: var(--heg-muted); }
.elementor .elementor-widget-text-editor p:last-child { margin-bottom: 0; }

/* Listes à filets (contenu des offres) */
.elementor .heg-list ul { list-style: none; margin: 0; padding: 0; }
.elementor .heg-list li { padding: 10px 0; border-top: 1px solid var(--heg-hairline); font-size: 15px; line-height: 1.4; color: #333336; }
.elementor .heg-list li:first-child { border-top: 0; }

/* ---------- Tuiles sombres (fond réglé dans Elementor, couleurs ici) ---------- */
.heg-dark .elementor-heading-title { color: #F5F5F7 !important; }
.heg-dark .heg-lead, .heg-dark .heg-lead p, .heg-dark .heg-body, .heg-dark .heg-body p { color: #F5F5F7; }
.heg-dark .heg-muted, .heg-dark .heg-muted p, .heg-dark .heg-fine, .heg-dark .heg-fine p { color: var(--heg-muted-on-dark); }
.heg-dark .heg-step .elementor-heading-title { color: var(--heg-accent-on-dark) !important; }
.heg-dark a:not(.elementor-button) { color: var(--heg-accent-on-dark); }

/* Colonnes séparées par un filet (pas de cartes) */
.heg-cols > .e-con { border-top: 1px solid var(--heg-hairline); padding-top: 24px !important; }
.heg-dark .heg-cols > .e-con { border-top-color: #424245; }

/* Cartes d'offres : surface blanche sur fond parchemin, ombre douce */
.heg-card { transition: transform .5s var(--heg-ease), box-shadow .5s var(--heg-ease); box-shadow: 0 1px 2px rgba(0,0,0,.04); }
@media (hover: hover) and (pointer: fine) { .heg-card:hover { transform: translateY(-2px); box-shadow: 0 2px 4px rgba(0,0,0,.04), 0 16px 36px -16px rgba(0,0,0,.2); } }
.heg-card > .elementor-widget:last-child { margin-top: auto; }

/* ---------- Boutons en pilule et liens à chevron ---------- */
.elementor .elementor-button { border-radius: var(--heg-pill); font-weight: 500; letter-spacing: -0.01em; transition: background-color .25s ease, color .25s ease, box-shadow .25s ease, transform .2s ease; }
.elementor .elementor-button:active { transform: scale(.98); }
.elementor .heg-btn-ghost .elementor-button { background: transparent; color: var(--heg-accent); box-shadow: inset 0 0 0 1px var(--heg-accent); }
.elementor .heg-btn-ghost .elementor-button:hover { background: var(--heg-accent); color: #FFFFFF; }
.heg-dark .elementor-button { background: var(--heg-accent-on-dark) !important; color: var(--heg-black) !important; }
.heg-dark .heg-btn-ghost .elementor-button { background: transparent !important; color: var(--heg-accent-on-dark) !important; box-shadow: inset 0 0 0 1px var(--heg-accent-on-dark); }
.elementor .heg-link a { color: var(--heg-accent); text-decoration: none; font-weight: 500; }
.heg-dark .heg-link a { color: var(--heg-accent-on-dark); }
.elementor .heg-link a::after { content: ""; display: inline-block; width: .42em; height: .42em; margin-left: .35em; border-right: 1.6px solid currentColor; border-top: 1.6px solid currentColor; transform: translateY(-.08em) rotate(45deg); transition: transform .25s var(--heg-ease); }
.elementor .heg-link a:hover { text-decoration: underline; }
.elementor .heg-link a:hover::after { transform: translate(.18em, -.08em) rotate(45deg); }

/* Pastilles de villes / communes */
.elementor .heg-chips ul { list-style: none; margin: 0; padding: 0; display: flex; flex-wrap: wrap; gap: 10px; }
.elementor .heg-chips.heg-center ul { justify-content: center; }
.elementor .heg-chips li { margin: 0; }
.elementor .heg-chips li > a, .elementor .heg-chips li > span { display: inline-block; padding: 9px 18px; border-radius: var(--heg-pill); background: var(--heg-white); box-shadow: inset 0 0 0 1px var(--heg-hairline); color: var(--heg-ink); font-size: 15px; line-height: 1.3; text-decoration: none; transition: box-shadow .25s ease, color .25s ease; }
.elementor .heg-chips li > a:hover { box-shadow: inset 0 0 0 1px var(--heg-accent); color: var(--heg-accent); }

/* Questions : filet entre chaque question */
.heg-faq > .e-con { border-top: 1px solid var(--heg-hairline); padding-top: 28px !important; }

/* ---------- Captures d'écran : le seul moment de mouvement ---------- */
.elementor .heg-shot img { display: block; width: 100%; height: auto; border-radius: 14px; box-shadow: 0 2px 4px rgba(0,0,0,.06), 0 24px 60px -24px rgba(0,0,0,.35); background: var(--heg-parchment); }
.elementor .heg-shot.heg-bare img { border-radius: 0; box-shadow: none; background: none; }
@supports (animation-timeline: view()) {
  @media (prefers-reduced-motion: no-preference) {
    .elementor .heg-shot img { animation: heg-settle linear both; animation-timeline: view(); animation-range: entry 0% cover 35%; }
  }
}
@keyframes heg-settle { from { transform: scale(.94); filter: saturate(.85); } to { transform: scale(1); filter: none; } }

/* ---------- En-tête Astra : verre dépoli (le verre vit sur ::before) ---------- */
#masthead { position: sticky; top: 0; z-index: 999; }
#masthead .main-header-bar, #masthead .ast-primary-header-bar { background: transparent !important; border-bottom: 1px solid rgba(0,0,0,.08) !important; position: relative; }
#masthead .main-header-bar::before, #masthead .ast-primary-header-bar::before { content: ""; position: absolute; inset: 0; z-index: -1; background: rgba(251,251,253,.8); -webkit-backdrop-filter: saturate(180%) blur(20px); backdrop-filter: saturate(180%) blur(20px); }
#masthead .site-primary-header-wrap { min-height: 52px; }
#masthead .site-title a, #masthead .site-title a:hover { color: var(--heg-ink) !important; font-weight: 600; letter-spacing: -0.02em; font-size: 19px; }
#masthead .main-header-menu .menu-link { color: var(--heg-ink) !important; font-size: 13px; letter-spacing: -0.01em; opacity: .85; transition: opacity .2s ease, color .2s ease; }
#masthead .main-header-menu .menu-link:hover, #masthead .main-header-menu .current-menu-item > .menu-link { opacity: 1; color: var(--heg-accent) !important; }
#masthead .sub-menu { border-radius: 14px; border: 1px solid rgba(0,0,0,.06) !important; box-shadow: 0 18px 40px -20px rgba(0,0,0,.3); overflow: hidden; }

/* ---------- Pied de page Astra ---------- */
.site-footer, .site-footer .site-below-footer-wrap, .site-footer .ast-builder-grid-row-container { background: var(--heg-parchment) !important; }
.site-footer, .site-footer a, .site-footer .ast-footer-copyright, .site-footer .ast-footer-copyright p { color: var(--heg-muted) !important; font-size: 12px; }
.site-footer a:hover { color: var(--heg-ink) !important; }

/* ---------- Mobile ---------- */
@media (max-width: 767px) {
  body { font-size: 16px; }
  .elementor .heg-body, .elementor .heg-body p { font-size: 16px; }
}

/* =====================================================================
   EFFETS (activés par assets/apple.js via html.heg-js ; sans JS = tout visible)
   ===================================================================== */

/* Arrivée du héros : flou + montée, en trois temps */
.heg-intro { animation: heg-intro .8s var(--heg-ease) both; }
.heg-intro-2 { animation-delay: .08s; }
.heg-intro-3 { animation-delay: .16s; }
.heg-intro-4 { animation-delay: .24s; }
@keyframes heg-intro { from { opacity: 0; transform: translateY(14px); } to { opacity: 1; transform: none; } }

/* Apparitions au défilement (bloc ou cascade) */
.heg-js .heg-reveal { opacity: 0; transform: translateY(16px); transition: opacity .7s var(--heg-ease) var(--heg-delay, 0ms), transform .7s var(--heg-ease) var(--heg-delay, 0ms); }
.heg-js .heg-reveal.is-in { opacity: 1; transform: none; }
.heg-js .heg-card.is-in:hover { transform: translateY(-4px); }

/* Phrase-manifeste qui s'allume mot par mot (sur fond sombre) */
.heg-words .heg-w { color: rgba(245,245,247,.32); transition: color .45s ease; }
.heg-words .heg-w.is-lit { color: #F5F5F7; }
.elementor .heg-words .elementor-heading-title { font-size: clamp(2rem, 1rem + 3.6vw, 4.25rem); line-height: 1.08; letter-spacing: -0.022em; }

/* Visuel du héros qui s'avance au défilement */
@supports (animation-timeline: view()) {
  @media (prefers-reduced-motion: no-preference) {
    .elementor .heg-shot.heg-zoom img { animation: heg-zoom linear both; animation-timeline: view(); animation-range: entry 0% cover 42%; }
  }
}
@keyframes heg-zoom { from { transform: scale(.84) translateY(48px); } to { transform: none; } }

/* Galerie de réalisations à faire glisser */
.elementor .heg-rail { display: flex; flex-wrap: nowrap !important; overflow-x: auto; overscroll-behavior-x: contain; scroll-snap-type: x mandatory; scrollbar-width: none; padding: 8px 2px 20px !important; }
.heg-rail::-webkit-scrollbar { display: none; }
.elementor .heg-rail > .e-con { flex: 0 0 auto !important; width: min(84vw, 540px) !important; max-width: none !important; scroll-snap-align: start; }
.heg-rail-nav { display: flex; gap: 12px; justify-content: flex-end; width: 100%; }
.heg-rail-btn { width: 44px; height: 44px; border: 0; border-radius: 50%; background: #E8E8ED; cursor: pointer; position: relative; transition: background-color .2s ease, opacity .2s ease; }
.heg-rail-btn::before { content: ""; position: absolute; left: 50%; top: 50%; width: 9px; height: 9px; border-right: 2px solid var(--heg-ink); border-top: 2px solid var(--heg-ink); transform: translate(-65%, -50%) rotate(45deg); }
.heg-rail-btn.heg-prev::before { transform: translate(-35%, -50%) rotate(-135deg); }
.heg-rail-btn:hover:not(:disabled) { background: #D2D2D7; }
.heg-rail-btn:disabled { opacity: .35; cursor: default; }
.heg-project { transition: box-shadow .5s var(--heg-ease); }
@media (hover: hover) and (pointer: fine) { .heg-project:hover { box-shadow: 0 2px 4px rgba(0,0,0,.04), 0 18px 40px -18px rgba(0,0,0,.22); } }
.heg-project .heg-shot img { transition: transform .8s var(--heg-ease); }
@media (hover: hover) and (pointer: fine) { .heg-project:hover .heg-shot img { transform: scale(1.02); } }

/* Récit collant (méthode) : colonne fixe + étapes qui s'allument + barre d'or */
@media (min-width: 768px) { .elementor .heg-story-aside { position: sticky; top: 104px; align-self: flex-start; } }
.heg-story-bar { position: relative; width: 2px; height: 160px; margin-top: 28px; background: var(--heg-hairline); border-radius: 2px; overflow: hidden; }
.heg-story-bar span { position: absolute; inset: 0; background: var(--heg-accent); transform-origin: top; transform: scaleY(0); }
.heg-js .heg-story-step { min-height: 46vh; opacity: .25; transition: opacity .5s ease; }
.heg-js .heg-story-step.is-active { opacity: 1; }
.elementor .heg-num .elementor-heading-title { font-size: clamp(3rem, 1.5rem + 5vw, 5.5rem); line-height: 1; font-weight: 600; letter-spacing: -0.03em; color: var(--heg-accent); font-variant-numeric: tabular-nums; }

/* Tuiles photo des villes (image native en fond, titre cliquable sur toute la tuile) */
.heg-city { position: relative; overflow: hidden; border-radius: 22px; isolation: isolate; }
.heg-city::after { content: ""; position: absolute; inset: 0; z-index: -1; background: linear-gradient(180deg, rgba(0,0,0,0) 35%, rgba(0,0,0,.75) 100%); pointer-events: none; }
.elementor .heg-city .heg-city-img { position: absolute !important; inset: 0; z-index: -2; margin: 0 !important; width: 100% !important; height: 100%; }
.elementor .heg-city .heg-city-img > *, .elementor .heg-city .heg-city-img a { display: block; height: 100%; }
.elementor .heg-city .heg-city-img img { width: 100%; height: 100%; object-fit: cover; transition: transform 1.2s var(--heg-ease); }
.heg-city:hover .heg-city-img img { transform: scale(1.06); }
.heg-city .elementor-heading-title a { color: #FFFFFF !important; text-decoration: none; }
.heg-city .elementor-heading-title a::after { content: ""; position: absolute; inset: 0; z-index: 1; }
.heg-city .elementor-heading-title a:focus-visible::after { outline: 2px solid var(--heg-accent-on-dark); outline-offset: -4px; border-radius: 22px; }

/* Héros des pages villes (photo en fond réglée dans Elementor) */
.elementor .heg-credit, .elementor .heg-credit p { font-size: 11px; line-height: 1.4; color: rgba(245,245,247,.7); }
.elementor .heg-credit a { color: inherit !important; }
.elementor .heg-credits, .elementor .heg-credits p { font-size: 12px; line-height: 1.5; color: var(--heg-muted); }
.elementor .heg-credits a { color: var(--heg-muted); }

/* En-tête : filet plus net après défilement */
#masthead.heg-scrolled .ast-primary-header-bar::before, #masthead.heg-scrolled .main-header-bar::before { box-shadow: 0 1px 0 rgba(0,0,0,.06); }

@media (max-width: 767px) {
  .heg-js .heg-story-step { min-height: 0; opacity: 1; }
  .heg-story-bar { display: none; }
}
@media (prefers-reduced-motion: reduce) {
  .heg-intro, .heg-js .heg-reveal { animation: none; opacity: 1; transform: none; filter: none; transition: none; }
  .heg-words .heg-w { color: inherit; }
}

/* Flèches de galerie : neutres (le kit Elementor dore tous les <button>) */
.heg-rail-nav .heg-rail-btn, .heg-rail-nav .heg-rail-btn:focus { background: #E8E8ED !important; color: var(--heg-ink) !important; border: 0 !important; padding: 0 !important; box-shadow: none !important; }
.heg-rail-nav .heg-rail-btn:hover:not(:disabled) { background: #D2D2D7 !important; }

/* =====================================================================
   Hégémonia Sénégal — ajouts propres à la page unique
   ===================================================================== */

/* Carte de prix : lignes séparées par des filets, total en or */
.elementor .heg-pricecard { box-shadow: 0 2px 4px rgba(0,0,0,.04), 0 24px 56px -28px rgba(0,0,0,.28); }
.elementor .heg-line { border-top: 1px solid var(--heg-hairline); }
.elementor .heg-line:first-child { border-top: 0; }
.elementor .heg-line .heg-body p { margin: 0; font-size: 17px; color: var(--heg-ink); }
.elementor .heg-line-total { border-top: 2px solid var(--heg-ink); margin-top: 8px; }
.elementor .heg-line-total .heg-body p { font-size: 19px; }
.elementor .heg-price-total .elementor-heading-title { color: var(--heg-accent); font-size: clamp(2rem, 1.5rem + 1.6vw, 2.75rem); }
.elementor .heg-price .elementor-heading-title { white-space: nowrap; }

/* Les étapes de la méthode : numéros plus discrets, texte plus large */
.elementor .heg-story-step .heg-lead p { max-width: 30em; }

/* Mentions légales : lisible, sans bruit */
.elementor .heg-credits p { margin: 0; }

/* Bouton WhatsApp flottant, sur téléphone seulement */
.elementor .e-con.heg-wa-fixed { display: none !important; }
@media (max-width: 767px) {
  .elementor .e-con.heg-wa-fixed { display: block !important; position: fixed !important; inset: auto 14px calc(14px + env(safe-area-inset-bottom)) auto !important; z-index: 998; width: auto !important; min-height: 0 !important; padding: 0 !important; margin: 0 !important; }
  .heg-wa-fixed .elementor-button { box-shadow: 0 8px 24px -8px rgba(0,0,0,.45); padding: 13px 22px; }
  #ast-scroll-top { display: none !important; }
  .site-footer { padding-bottom: 72px; }
}

/* Bouton de menu mobile : encre (ou clair sur sombre), pas le bleu d'Astra */
#masthead .menu-toggle, #masthead .ast-button-wrap .menu-toggle, #masthead .ast-mobile-menu-buttons .menu-toggle { color: var(--heg-ink) !important; background: transparent !important; box-shadow: none !important; }
#masthead .ast-mobile-svg, #masthead .menu-toggle .ast-mobile-svg { fill: currentColor !important; color: inherit; }
#masthead.heg-over-dark .menu-toggle, #masthead.heg-over-dark .ast-button-wrap .menu-toggle { color: #F5F5F7 !important; }

/* En-tête : bouton d'action discret à droite */
#masthead .ast-builder-button-wrap .ast-custom-button { border-radius: var(--heg-pill); font-weight: 500; font-size: 14px; padding: 7px 16px; }

/* En-tête au-dessus d'une section sombre : verre graphite, texte clair */
#masthead .main-header-bar::before, #masthead .ast-primary-header-bar::before { transition: background-color .35s ease; }
#masthead.heg-over-dark .main-header-bar::before, #masthead.heg-over-dark .ast-primary-header-bar::before { background: rgba(29,29,31,.78); }
#masthead.heg-over-dark .main-header-bar, #masthead.heg-over-dark .ast-primary-header-bar { border-bottom-color: rgba(255,255,255,.1) !important; }
#masthead.heg-over-dark .site-title a, #masthead.heg-over-dark .main-header-menu .menu-link { color: #F5F5F7 !important; }
#masthead.heg-over-dark .main-header-menu .menu-link:hover { color: var(--heg-accent-on-dark) !important; }

/* Texte sur photo : lisible même sur un fond chargé */
.heg-cityhero .elementor-heading-title, .heg-cityhero .heg-lead p { text-shadow: 0 1px 18px rgba(0,0,0,.45); }
.heg-cityhero .heg-lead p { max-width: 34em; }

/* Menu déroulant mobile : fond plein, grandes cibles de toucher */
#masthead .ast-mobile-header-content, #ast-mobile-header .ast-mobile-header-content { background: rgba(251,251,253,.98); -webkit-backdrop-filter: saturate(180%) blur(20px); backdrop-filter: saturate(180%) blur(20px); border-bottom: 1px solid rgba(0,0,0,.08); }
@media (max-width: 921px) {
  #masthead .main-header-menu .menu-link { font-size: 19px; opacity: 1; padding: 14px 20px; }
}

/* Colonnes de la section sombre : titres alignés sur deux lignes (bureau) */
@media (min-width: 768px) { .elementor .heg-cols .heg-title .elementor-heading-title { min-height: 2.3em; } }
/* Crédit photo : lisible sur la plage */
.elementor .heg-credit, .elementor .heg-credit p { font-size: 12px; color: rgba(245,245,247,.88); text-shadow: 0 1px 8px rgba(0,0,0,.6); }

/* ---- Passe design (relecture indépendante, 04/11) ---- */
/* Les maquettes ont un fond clair : il se fond dans la carte au lieu de dessiner un rectangle pâle */
.elementor .heg-shot.heg-bare img { mix-blend-mode: multiply; }
/* Récit de méthode : étapes inactives plus lisibles, défilement moins long */
.heg-js .heg-story-step { opacity: .6; min-height: 38vh; }
/* Mesure des petites notes */
.elementor .heg-fine p { max-width: 60ch; margin-inline: auto; }
/* Rail : trois cartes visibles sur grand écran */
@media (min-width: 1025px) { .elementor .heg-rail > .e-con { width: 380px !important; } }
/* Cibles tactiles >= 44 px */
.elementor .elementor-button { min-height: 44px; display: inline-flex; align-items: center; }
.elementor .heg-link a { display: inline-block; padding: 12px 0; }
.elementor .heg-credit a, .elementor .heg-credits a { padding: 12px 0; }
/* Mobile : boutons du héros et de la méthode pleine largeur */
@media (max-width: 767px) {
  .elementor .e-con.heg-intro-3 .elementor-widget-button, .elementor .e-con.heg-intro-3 .elementor-button { width: 100%; }
  .elementor .e-con.heg-intro-3 .elementor-button { justify-content: center; }
  .elementor .heg-story-aside .elementor-widget-button, .elementor .heg-story-aside .elementor-button { width: 100%; justify-content: center; }
}
@media (max-width: 767px) { .heg-js .heg-story-step { opacity: 1; min-height: 0; } }
.elementor .heg-pricecard .heg-title { margin-bottom: 14px; }

/* Mouvement : pas de fondu mélangé sur l'image qui s'agrandit ; verre de l'en-tête allégé sur mobile ; réduction des animations */
.elementor .heg-shot.heg-bare.heg-zoom img { mix-blend-mode: normal; }
@media (max-width: 921px) {
  #masthead .main-header-bar::before, #masthead .ast-primary-header-bar::before { -webkit-backdrop-filter: none; backdrop-filter: none; background: rgba(251,251,253,.96); }
  #masthead.heg-over-dark .main-header-bar::before, #masthead.heg-over-dark .ast-primary-header-bar::before { background: rgba(29,29,31,.96); }
}
@media (prefers-reduced-motion: reduce) { .heg-js .heg-story-step { opacity: 1; min-height: 0; transition: none; } }
/* Captures Google (preuves) */
.elementor .heg-proof img { display: block; width: 100%; height: auto; border-radius: 12px; box-shadow: inset 0 0 0 1px var(--heg-hairline), 0 1px 2px rgba(0,0,0,.04); }
.elementor .heg-body a { display: inline-block; padding: 10px 0; }

/* ---- Hero photo : accroche en grand, scène blanche qui porte la maquette ---- */
.elementor .heg-herophoto .heg-giant .elementor-heading-title { color: #FFFFFF !important; text-shadow: 0 2px 28px rgba(0,0,0,.35); }
.elementor .heg-herophoto .heg-gold { color: var(--heg-accent-on-dark); }
.heg-herophoto .heg-lead, .heg-herophoto .heg-lead p { color: rgba(245,245,247,.92); max-width: 34em; }
.heg-herophoto .heg-muted, .heg-herophoto .heg-muted p { color: rgba(245,245,247,.78); font-size: 15px; }
.elementor .heg-stage { box-shadow: 0 40px 90px -30px rgba(0,0,0,.65), 0 2px 6px rgba(0,0,0,.2); max-width: 1000px; margin-inline: auto; overflow: hidden; }
.elementor .heg-stage .heg-shot img { box-shadow: none; }
.elementor .heg-herophoto .heg-credit, .elementor .heg-herophoto .heg-credit p { text-align: center; font-size: 12px; color: rgba(245,245,247,.82); text-shadow: 0 1px 8px rgba(0,0,0,.6); }
/* Bouton secondaire du hero : blanc sur la photo (l'or se perd sur les palmes) */
.heg-herophoto .heg-btn-ghost .elementor-button { color: #FFFFFF !important; background: rgba(0,0,0,.18) !important; box-shadow: inset 0 0 0 1px rgba(255,255,255,.75) !important; -webkit-backdrop-filter: blur(6px); backdrop-filter: blur(6px); }
.heg-herophoto .heg-btn-ghost .elementor-button:hover { background: rgba(255,255,255,.16) !important; }
/* En-tête sur section sombre : quasi opaque (au repos il est posé sur le fond blanc de la page, le verre y paraîtrait gris) */
#masthead.heg-over-dark .main-header-bar::before, #masthead.heg-over-dark .ast-primary-header-bar::before { background: rgba(20,20,22,.94); }
