/* ============================================================
   Expert Services Nettoyage — composants & sections
   Port CSS des composants du design system (classes .esn-*).
   ============================================================ */

/* --- Helpers layout --- */
.esn-bg-white { background: var(--surface-page); }
.esn-bg-tint  { background: var(--surface-tint); }
.esn-bg-dark  { background: var(--surface-dark); }
.esn-mt-8  { margin-top: var(--space-8); }
.esn-mt-10 { margin-top: var(--space-10); }

.esn-grid { display: grid; }
.esn-grid--cards { gap: var(--space-5); grid-template-columns: repeat(auto-fit, minmax(280px, 1fr)); }
.esn-grid--steps { gap: var(--space-6); grid-template-columns: repeat(auto-fit, minmax(230px, 1fr)); }
.esn-grid--local { gap: var(--space-6); grid-template-columns: repeat(auto-fit, minmax(260px, 1fr)); }

/* --- Icône --- */
.esn-ico { display: inline-block; flex-shrink: 0; vertical-align: middle; }
.esn-ico--teal  { color: var(--brand-teal); }
.esn-ico--teal3 { color: var(--teal-300); }
.esn-ico--quote { color: var(--teal-200); }

/* --- Bouton --- */
.esn-btn {
  display: inline-flex; align-items: center; justify-content: center; gap: .5rem;
  font-family: var(--font-display); font-weight: var(--fw-bold); line-height: 1;
  border-radius: var(--radius-pill); border: 1px solid transparent;
  cursor: pointer; text-decoration: none; white-space: nowrap;
  transition: background var(--dur-base) var(--ease-out), transform var(--dur-fast) var(--ease-out), box-shadow var(--dur-base) var(--ease-out);
}
.esn-btn:active { transform: translateY(1px) scale(.99); }
.esn-btn--full { display: flex; width: 100%; }
.esn-btn--sm { font-size: var(--fs-sm); padding: .5rem .9rem; gap: .4rem; }
.esn-btn--md { font-size: var(--fs-base); padding: .7rem 1.25rem; }
.esn-btn--lg { font-size: var(--fs-md); padding: .95rem 1.7rem; gap: .55rem; }
.esn-btn--cta { background: var(--cta); color: #fff; box-shadow: var(--shadow-cta); }
.esn-btn--cta:hover { background: var(--cta-hover); color: #fff; }
.esn-btn--cta:active { background: var(--cta-active); }
.esn-btn--wa { background: #25D366; color: #fff; box-shadow: 0 4px 14px rgba(37,211,102,.35); }
.esn-btn--wa:hover { background: #1FB457; color: #fff; }
.esn-btn--primary { background: var(--brand-teal); color: #fff; box-shadow: var(--shadow-sm); }
.esn-btn--primary:hover { background: var(--brand-teal-hover); color: #fff; }
.esn-btn--secondary { background: var(--white); color: var(--brand); border: 1.5px solid var(--border-strong); }
.esn-btn--secondary:hover { background: var(--slate-50); }
.esn-btn--ghost { background: transparent; color: var(--brand-teal); }
.esn-btn--ghost:hover { background: var(--teal-50); }
.esn-btn--dark { background: var(--teal-900); color: #fff; }
.esn-btn--dark:hover { background: var(--teal-800); color: #fff; }

/* --- Téléphone --- */
.esn-phone { display: inline-flex; align-items: center; gap: .6rem; text-decoration: none; font-family: var(--font-display); }
.esn-phone__txt { display: flex; flex-direction: column; line-height: 1.2; align-items: flex-start; }
.esn-phone__label { font-size: var(--fs-xs); font-weight: var(--fw-semibold); text-transform: uppercase; letter-spacing: var(--ls-wide); }
.esn-phone__num { font-weight: var(--fw-extra); letter-spacing: var(--ls-snug); font-size: var(--fs-base); }
.esn-phone--lg .esn-phone__num { font-size: var(--fs-md); }
.esn-phone--inline { color: var(--brand); }
.esn-phone--inline .esn-phone__ico { display: grid; place-items: center; width: 2.5rem; height: 2.5rem; border-radius: var(--radius-pill); background: var(--teal-50); color: var(--brand-teal); flex-shrink: 0; }
.esn-phone--inline .esn-phone__label { color: var(--text-muted); }
.esn-phone--solid { padding: .7rem 1.3rem; border-radius: var(--radius-pill); background: var(--cta); color: #fff; box-shadow: var(--shadow-cta); transition: background var(--dur-base) var(--ease-out), transform var(--dur-fast) var(--ease-out); }
.esn-phone--solid:hover { background: var(--cta-hover); }
.esn-phone--solid:active { transform: translateY(1px) scale(.99); }
.esn-phone--solid.esn-phone--lg { padding: .95rem 1.7rem; }
.esn-phone--solid .esn-phone__label { opacity: .9; }

/* --- Badge --- */
.esn-badge { display: inline-flex; align-items: center; gap: .4rem; border-radius: var(--radius-pill); font-family: var(--font-body); font-weight: var(--fw-semibold); line-height: 1.2; letter-spacing: var(--ls-snug); white-space: nowrap; padding: .35rem .8rem; font-size: var(--fs-sm); }
.esn-badge--sm { padding: .2rem .6rem; font-size: var(--fs-xs); }
.esn-badge__dot { width: 7px; height: 7px; border-radius: 50%; flex-shrink: 0; background: currentColor; }
.esn-badge--teal    { background: var(--teal-50);    color: var(--teal-700); }
.esn-badge--orange  { background: var(--orange-50);  color: var(--orange-700); }
.esn-badge--success { background: var(--success-100);color: var(--success-600); }
.esn-badge--danger  { background: var(--danger-100); color: var(--danger-600); }
.esn-badge--neutral { background: var(--slate-100);  color: var(--slate-700); }
.esn-badge--dark    { background: rgba(255,255,255,.12); color: var(--text-on-dark); }
.esn-badge--teal .esn-badge__dot   { background: var(--teal-500); }
.esn-badge--orange .esn-badge__dot { background: var(--orange-500); }
.esn-badge--dark .esn-badge__dot   { background: var(--teal-300); }

/* --- Section heading --- */
.esn-sh { display: flex; flex-direction: column; gap: .75rem; align-items: flex-start; text-align: left; }
.esn-sh--center { align-items: center; text-align: center; max-width: 52ch; margin-inline: auto; }
.esn-sh__eyebrow { display: inline-flex; align-items: center; gap: .5rem; font-family: var(--font-body); font-weight: var(--fw-bold); font-size: var(--fs-sm); letter-spacing: var(--ls-caps); text-transform: uppercase; color: var(--brand-teal); }
.esn-sh__rule { width: 18px; height: 2px; border-radius: 2px; background: currentColor; opacity: .6; }
.esn-sh__title { margin: 0; font-family: var(--font-display); font-weight: var(--fw-bold); font-size: var(--fs-3xl); line-height: var(--lh-tight); letter-spacing: var(--ls-snug); color: var(--text-strong); text-wrap: balance; }
.esn-sh__lead { margin: 0; max-width: 52ch; font-family: var(--font-body); font-size: var(--fs-md); line-height: var(--lh-relaxed); color: var(--text-body); text-wrap: pretty; }
.esn-sh--dark .esn-sh__title { color: var(--text-on-dark); }
.esn-sh--dark .esn-sh__lead  { color: var(--text-on-dark-muted); }
.esn-sh--dark .esn-sh__eyebrow { color: var(--teal-300); }

/* --- Header --- */
.esn-header { position: sticky; top: 0; z-index: 50; background: rgba(255,255,255,.92); backdrop-filter: saturate(180%) blur(10px); border-bottom: 1px solid var(--border-soft); }
.esn-header__inner { display: flex; align-items: center; justify-content: space-between; gap: 1rem; padding-block: .75rem; }
.esn-header__logo { display: inline-flex; align-items: center; gap: .6rem; text-decoration: none; }
.esn-header__logo img { height: 38px; width: auto; }
.esn-header__nav { display: flex; align-items: center; gap: 1.75rem; }
.esn-header__nav a { font-family: var(--font-body); font-weight: var(--fw-semibold); font-size: var(--fs-sm); color: var(--slate-700); text-decoration: none; transition: color var(--dur-fast) var(--ease-out); }
.esn-header__nav a:hover { color: var(--brand-teal); }
.esn-header__actions { display: flex; align-items: center; gap: .9rem; }
.esn-header__burger { display: none; place-items: center; width: 44px; height: 44px; border: 1px solid var(--border); border-radius: var(--radius-md); background: var(--white); color: var(--brand); cursor: pointer; }
.esn-header__burger .esn-burger-close { display: none; }
.esn-header__burger[aria-expanded="true"] .esn-burger-open { display: none; }
.esn-header__burger[aria-expanded="true"] .esn-burger-close { display: inline-block; }
.esn-header__mobile { border-top: 1px solid var(--border-soft); background: var(--white); padding: var(--space-4) var(--gutter); display: flex; flex-direction: column; gap: .5rem; }
.esn-header__mobile[hidden] { display: none; }
.esn-header__mobile > a { padding: .65rem 0; font-family: var(--font-display); font-weight: var(--fw-semibold); font-size: var(--fs-md); color: var(--slate-700); text-decoration: none; border-bottom: 1px solid var(--border-soft); }
.esn-header__mobile-cta { display: flex; flex-direction: column; gap: .75rem; margin-top: .5rem; }

/* --- Hero --- */
.esn-hero { background: linear-gradient(180deg, var(--teal-50) 0%, var(--white) 100%); padding-block: var(--section-y); }
.esn-hero__inner { display: grid; gap: clamp(2rem, 4vw, 4rem); grid-template-columns: 1fr; align-items: center; }
.esn-hero--media .esn-hero__inner { grid-template-columns: minmax(0, 1.05fr) minmax(0, .95fr); }
.esn-hero__body { display: flex; flex-direction: column; gap: 1.5rem; max-width: 46rem; }
.esn-hero--media .esn-hero__body { max-width: none; }
.esn-hero__head { display: flex; flex-direction: column; gap: 1rem; }
.esn-hero__title { margin: 0; font-family: var(--font-display); font-weight: var(--fw-extra); font-size: var(--fs-4xl); line-height: var(--lh-tight); letter-spacing: var(--ls-tight); color: var(--text-strong); text-wrap: balance; }
.esn-hero__hl { color: var(--brand-teal); }
.esn-hero__lead { margin: 0; max-width: 40rem; font-family: var(--font-body); font-size: var(--fs-md); line-height: var(--lh-relaxed); color: var(--text-body); text-wrap: pretty; }
.esn-hero__cta { display: flex; flex-wrap: wrap; gap: .9rem; align-items: center; }
.esn-hero__bullets { list-style: none; margin: .25rem 0 0; padding: 0; display: flex; flex-wrap: wrap; gap: .6rem 1.5rem; }
.esn-hero__bullets li { display: inline-flex; align-items: center; gap: .5rem; font-family: var(--font-body); font-size: var(--fs-sm); font-weight: var(--fw-semibold); color: var(--slate-700); }
.esn-hero__media { border-radius: var(--radius-xl); overflow: hidden; box-shadow: var(--shadow-lg); background: var(--slate-100); aspect-ratio: 4 / 3; min-height: 280px; }

/* Hero stat panel */
.esn-statpanel { position: relative; width: 100%; height: 100%; min-height: 320px; background: linear-gradient(155deg, var(--teal-800), var(--teal-950)); display: flex; flex-direction: column; justify-content: flex-end; gap: 1.25rem; padding: var(--space-8); color: #fff; }
.esn-statpanel__grid { display: grid; grid-template-columns: 1fr 1fr; gap: 1.25rem; }
.esn-statpanel__item { display: flex; flex-direction: column; gap: .15rem; }
.esn-statpanel__n { font-family: var(--font-display); font-weight: var(--fw-extra); font-size: 1.9rem; letter-spacing: var(--ls-tight); color: #fff; }
.esn-statpanel__l { font-family: var(--font-body); font-size: var(--fs-sm); color: var(--text-on-dark-muted); }
.esn-statpanel__foot { display: flex; align-items: center; gap: .6rem; padding-top: .5rem; border-top: 1px solid var(--border-on-dark); color: var(--teal-300); }
.esn-statpanel__foot span { font-family: var(--font-body); font-size: var(--fs-sm); color: var(--text-on-dark); }

/* --- Reassurance --- */
.esn-reassurance--light { background: var(--surface-card); border-top: 1px solid var(--border-soft); border-bottom: 1px solid var(--border-soft); }
.esn-reassurance--dark { background: var(--surface-dark); }
.esn-reassurance__inner { display: grid; gap: var(--space-5); grid-template-columns: repeat(auto-fit, minmax(220px, 1fr)); padding-block: var(--space-6); }
.esn-reassurance__item { display: flex; gap: .85rem; align-items: flex-start; }
.esn-reassurance__ico { display: grid; place-items: center; width: 44px; height: 44px; flex-shrink: 0; border-radius: var(--radius-md); background: var(--teal-50); color: var(--brand-teal); }
.esn-reassurance--dark .esn-reassurance__ico { background: rgba(255,255,255,.1); color: var(--teal-200); }
.esn-reassurance__txt { display: flex; flex-direction: column; gap: .15rem; }
.esn-reassurance__title { font-family: var(--font-display); font-weight: var(--fw-bold); font-size: var(--fs-base); color: var(--text-strong); letter-spacing: var(--ls-snug); }
.esn-reassurance__sub { font-family: var(--font-body); font-size: var(--fs-sm); line-height: var(--lh-normal); color: var(--text-muted); }
.esn-reassurance--dark .esn-reassurance__title { color: var(--text-on-dark); }
.esn-reassurance--dark .esn-reassurance__sub { color: var(--text-on-dark-muted); }

/* --- Service card --- */
.esn-service-card { display: flex; flex-direction: column; gap: 1rem; padding: var(--space-6); text-decoration: none; background: var(--surface-card); border: 1px solid var(--border-soft); border-radius: var(--radius-lg); box-shadow: var(--shadow-xs); height: 100%; transition: transform var(--dur-base) var(--ease-out), box-shadow var(--dur-base) var(--ease-out); }
.esn-service-card:hover { transform: translateY(-3px); box-shadow: var(--shadow-md); }
.esn-service-card__ico { display: grid; place-items: center; width: 52px; height: 52px; border-radius: var(--radius-md); background: var(--teal-50); color: var(--brand-teal); }
.esn-service-card__body { display: flex; flex-direction: column; gap: .5rem; flex: 1; }
.esn-service-card__title { margin: 0; font-family: var(--font-display); font-weight: var(--fw-bold); font-size: var(--fs-lg); line-height: var(--lh-snug); letter-spacing: var(--ls-snug); color: var(--text-strong); }
.esn-service-card__desc { margin: 0; font-family: var(--font-body); font-size: var(--fs-base); line-height: var(--lh-relaxed); color: var(--text-body); text-wrap: pretty; }
.esn-service-card__link { display: inline-flex; align-items: center; gap: .4rem; font-family: var(--font-display); font-weight: var(--fw-bold); font-size: var(--fs-sm); color: var(--brand-teal); }
.esn-service-card__link .esn-ico { transition: transform var(--dur-base) var(--ease-out); }
.esn-service-card:hover .esn-service-card__link .esn-ico { transform: translateX(3px); }
.esn-service-card--featured { background: var(--teal-900); border-color: transparent; }
.esn-service-card--featured .esn-service-card__ico { background: rgba(255,255,255,.12); color: var(--teal-200); }
.esn-service-card--featured .esn-service-card__title { color: var(--text-on-dark); }
.esn-service-card--featured .esn-service-card__desc { color: var(--text-on-dark-muted); }
.esn-service-card--featured .esn-service-card__link { color: var(--teal-200); }

/* --- Process steps --- */
.esn-step { display: flex; flex-direction: column; gap: .85rem; }
.esn-step__head { display: flex; align-items: center; gap: .75rem; }
.esn-step__ico { display: grid; place-items: center; width: 48px; height: 48px; border-radius: var(--radius-md); background: var(--teal-900); color: var(--teal-200); }
.esn-step__num { font-family: var(--font-display); font-weight: var(--fw-extra); font-size: 1.5rem; color: var(--teal-300); }
.esn-step__title { margin: 0; font-family: var(--font-display); font-weight: var(--fw-bold); font-size: var(--fs-lg); color: var(--text-strong); letter-spacing: var(--ls-snug); }
.esn-step__txt { margin: 0; font-family: var(--font-body); font-size: var(--fs-base); line-height: 1.6; color: var(--text-body); text-wrap: pretty; }

/* --- Testimonial --- */
.esn-testimonial { margin: 0; display: flex; flex-direction: column; gap: 1rem; background: var(--surface-card); border: 1px solid var(--border-soft); border-radius: var(--radius-lg); padding: var(--space-6); box-shadow: var(--shadow-xs); height: 100%; }
.esn-testimonial__top { display: flex; align-items: center; justify-content: space-between; gap: .5rem; }
.esn-stars { display: inline-flex; gap: 2px; }
.esn-star--on  { color: var(--orange-400); fill: var(--orange-400); }
.esn-star--off { color: var(--slate-300); fill: transparent; }
.esn-testimonial__quote { margin: 0; flex: 1; font-family: var(--font-body); font-size: var(--fs-md); line-height: var(--lh-relaxed); color: var(--slate-700); text-wrap: pretty; }
.esn-testimonial__cap { display: flex; align-items: center; gap: .75rem; margin-top: .25rem; }
.esn-testimonial__avatar { display: grid; place-items: center; width: 42px; height: 42px; flex-shrink: 0; border-radius: var(--radius-pill); background: var(--teal-100); color: var(--teal-700); font-family: var(--font-display); font-weight: var(--fw-bold); font-size: var(--fs-sm); }
.esn-testimonial__id { display: flex; flex-direction: column; line-height: 1.3; }
.esn-testimonial__author { font-family: var(--font-display); font-weight: var(--fw-bold); font-size: var(--fs-sm); color: var(--text-strong); }
.esn-testimonial__meta { font-family: var(--font-body); font-size: var(--fs-xs); color: var(--text-muted); }

/* --- FAQ --- */
.esn-faq-wrap { background: var(--white); border: 1px solid var(--border-soft); border-radius: var(--radius-lg); padding: 4px var(--space-6); }
.esn-faq { border-top: 1px solid var(--border-soft); }
.esn-faq__item { border-bottom: 1px solid var(--border-soft); }
.esn-faq__h { margin: 0; }
.esn-faq__btn { width: 100%; display: flex; align-items: center; justify-content: space-between; gap: 1rem; padding: var(--space-5) 0; background: none; border: none; cursor: pointer; text-align: left; font-family: var(--font-display); font-weight: var(--fw-bold); font-size: var(--fs-md); color: var(--text-strong); letter-spacing: var(--ls-snug); }
.esn-faq__chev { display: grid; place-items: center; width: 32px; height: 32px; flex-shrink: 0; border-radius: var(--radius-pill); background: var(--teal-50); color: var(--brand-teal); transition: background var(--dur-base) var(--ease-out); }
.esn-faq__chev .esn-ico { transition: transform var(--dur-base) var(--ease-out); }
.esn-faq__btn[aria-expanded="true"] .esn-faq__chev { background: var(--brand-teal); color: #fff; }
.esn-faq__btn[aria-expanded="true"] .esn-faq__chev .esn-ico { transform: rotate(180deg); }
.esn-faq__panel { overflow: hidden; padding-bottom: var(--space-5); }
.esn-faq__panel[hidden] { display: none; }
.esn-faq__panel p { margin: 0; max-width: 60ch; font-family: var(--font-body); font-size: var(--fs-base); line-height: var(--lh-relaxed); color: var(--text-body); text-wrap: pretty; }

/* --- Zones --- */
.esn-zones__grid { margin-top: var(--space-10); display: grid; gap: var(--space-6); grid-template-columns: repeat(auto-fit, minmax(260px, 1fr)); }
.esn-zones__card { background: var(--surface-card); border: 1px solid var(--border-soft); border-radius: var(--radius-lg); padding: var(--space-5); display: flex; flex-direction: column; gap: var(--space-4); }
.esn-zones__label { display: inline-flex; align-items: center; gap: .5rem; font-family: var(--font-display); font-weight: var(--fw-bold); font-size: var(--fs-base); color: var(--text-strong); }
.esn-zones__chips { display: flex; flex-wrap: wrap; gap: .5rem; }
.esn-chip { display: inline-flex; align-items: center; padding: .35rem .75rem; border-radius: var(--radius-pill); background: var(--slate-100); color: var(--slate-700); font-family: var(--font-body); font-size: var(--fs-sm); font-weight: var(--fw-medium); text-decoration: none; transition: background var(--dur-fast) var(--ease-out), color var(--dur-fast) var(--ease-out); }
.esn-chip:hover { background: var(--teal-100); color: var(--teal-700); }

/* --- Devis CTA --- */
.esn-devis { display: grid; gap: var(--space-10); grid-template-columns: repeat(auto-fit, minmax(280px, 1fr)); align-items: center; }
.esn-devis__intro { display: flex; flex-direction: column; gap: 1rem; }
.esn-devis__phone { margin-top: .5rem; }
.esn-devis__form { background: var(--white); border-radius: var(--radius-lg); padding: var(--space-6); display: flex; flex-direction: column; gap: var(--space-4); box-shadow: var(--shadow-lg); }
.esn-field { display: flex; flex-direction: column; gap: .35rem; }
.esn-field__label { font-family: var(--font-display); font-weight: var(--fw-semibold); font-size: var(--fs-sm); color: var(--text-strong); }
.esn-devis__form input, .esn-devis__form textarea { font-family: var(--font-body); font-size: var(--fs-base); padding: .7rem .9rem; border-radius: var(--radius-md); border: 1.5px solid var(--border-strong); color: var(--text-strong); background: var(--white); }
.esn-devis__form textarea { resize: vertical; }
.esn-devis__form input:focus-visible, .esn-devis__form textarea:focus-visible { outline: none; border-color: var(--brand-teal); box-shadow: var(--shadow-focus); }
.esn-devis__note { display: inline-flex; align-items: center; gap: .4rem; justify-content: center; font-family: var(--font-body); font-size: var(--fs-xs); color: var(--text-muted); }

/* --- Included (page service) --- */
.esn-included { display: grid; gap: var(--space-10); grid-template-columns: repeat(auto-fit, minmax(300px, 1fr)); align-items: center; }
.esn-included__list { list-style: none; margin: 0; padding: 0; display: grid; gap: var(--space-3); }
.esn-included__item { display: flex; align-items: center; gap: .75rem; padding: var(--space-3) var(--space-4); background: var(--surface-tint); border-radius: var(--radius-md); border: 1px solid var(--border-soft); font-family: var(--font-body); font-size: var(--fs-base); font-weight: 500; color: var(--slate-700); }
.esn-included__check { display: grid; place-items: center; width: 26px; height: 26px; flex-shrink: 0; border-radius: 50%; background: var(--teal-100); color: var(--teal-700); }

/* --- Local intro (page ville) --- */
.esn-localcard { display: flex; flex-direction: column; gap: .75rem; padding: var(--space-6); background: var(--surface-tint); border: 1px solid var(--border-soft); border-radius: var(--radius-lg); }
.esn-localcard__ico { display: grid; place-items: center; width: 48px; height: 48px; border-radius: var(--radius-md); background: var(--teal-50); color: var(--brand-teal); }
.esn-localcard__title { margin: 0; font-family: var(--font-display); font-weight: var(--fw-bold); font-size: var(--fs-lg); color: var(--text-strong); letter-spacing: var(--ls-snug); }
.esn-localcard__txt { margin: 0; font-family: var(--font-body); font-size: var(--fs-base); line-height: 1.6; color: var(--text-body); text-wrap: pretty; }

/* --- Footer --- */
.esn-footer { background: var(--surface-darker); color: var(--text-on-dark); }
.esn-footer__top { display: grid; gap: var(--space-10); grid-template-columns: minmax(240px, 1.4fr) repeat(3, minmax(160px, 1fr)); padding: var(--space-16) var(--gutter) var(--space-10); }
.esn-footer__brand { display: flex; flex-direction: column; gap: 1.25rem; max-width: 30rem; }
.esn-footer__brand img { height: 44px; width: auto; }
.esn-footer__tagline { margin: 0; font-family: var(--font-body); font-size: var(--fs-sm); line-height: var(--lh-relaxed); color: var(--text-on-dark-muted); text-wrap: pretty; }
.esn-footer__contact { display: flex; flex-direction: column; gap: .75rem; }
.esn-footer__mail { display: inline-flex; align-items: center; gap: .5rem; color: var(--text-on-dark); text-decoration: none; font-family: var(--font-body); font-size: var(--fs-sm); }
.esn-footer__h { margin: 0 0 .9rem; font-family: var(--font-display); font-weight: var(--fw-bold); font-size: var(--fs-sm); text-transform: uppercase; letter-spacing: var(--ls-wide); color: var(--teal-200); }
.esn-footer__list { list-style: none; margin: 0; padding: 0; display: flex; flex-direction: column; gap: .6rem; }
.esn-footer__list a { font-family: var(--font-body); font-size: var(--fs-sm); color: var(--text-on-dark-muted); text-decoration: none; transition: color var(--dur-fast) var(--ease-out); }
.esn-footer__list a:hover { color: #fff; }
.esn-footer__avail { display: flex; flex-direction: column; gap: .85rem; }
.esn-footer__avail span { display: inline-flex; align-items: center; gap: .5rem; font-family: var(--font-body); font-size: var(--fs-sm); color: var(--text-on-dark-muted); }
.esn-footer__bar { border-top: 1px solid var(--border-on-dark); }
.esn-footer__bar-inner { display: flex; flex-wrap: wrap; gap: .75rem 1.5rem; align-items: center; justify-content: space-between; padding-block: var(--space-5); font-family: var(--font-body); font-size: var(--fs-xs); color: var(--text-on-dark-muted); }
.esn-footer__legal { list-style: none; margin: 0; padding: 0; display: flex; flex-wrap: wrap; gap: .5rem 1.25rem; }
.esn-footer__legal a { font-family: var(--font-body); font-size: var(--fs-xs); color: var(--text-on-dark-muted); text-decoration: none; }

/* --- Sticky call bar (mobile) --- */
.esn-sticky-callbar { position: fixed; left: 0; right: 0; bottom: 0; z-index: 60; display: none; gap: .6rem; padding: .6rem .75rem calc(.6rem + env(safe-area-inset-bottom)); background: var(--surface-card); border-top: 1px solid var(--border); box-shadow: 0 -6px 20px rgba(10,46,59,.10); }
.esn-sticky-callbar__call { flex: 0 0 auto; display: inline-flex; align-items: center; justify-content: center; gap: .5rem; padding: .85rem 1.1rem; border-radius: var(--radius-pill); background: var(--teal-50); color: var(--brand-teal); text-decoration: none; font-family: var(--font-display); font-weight: var(--fw-bold); font-size: var(--fs-base); min-height: 48px; }
.esn-sticky-callbar__cta { flex: 1; display: inline-flex; align-items: center; justify-content: center; gap: .5rem; padding: .85rem 1rem; border-radius: var(--radius-pill); background: var(--cta); color: #fff; text-decoration: none; font-family: var(--font-display); font-weight: var(--fw-bold); font-size: var(--fs-base); box-shadow: var(--shadow-cta); min-height: 48px; }

/* --- Prose (contenu éditorial / blog) --- */
.esn-prose { font-family: var(--font-body); color: var(--text-body); font-size: var(--fs-md); line-height: var(--lh-relaxed); }
.esn-prose h2 { font-size: var(--fs-2xl); margin: 2em 0 .6em; }
.esn-prose h3 { font-size: var(--fs-xl); margin: 1.6em 0 .5em; }
.esn-prose p, .esn-prose ul, .esn-prose ol { margin: 0 0 1.1em; }
.esn-prose a { color: var(--link); text-decoration: underline; }
.esn-prose img, .esn-prose__hero { border-radius: var(--radius-lg); margin: 1.5em 0; }
.esn-page-title { font-family: var(--font-display); font-size: var(--fs-3xl); line-height: var(--lh-tight); letter-spacing: var(--ls-snug); color: var(--text-strong); margin: 0 0 .6em; }
.esn-pagination a, .esn-pagination .page-numbers { display: inline-block; padding: .4rem .8rem; }

/* ============================================================
   RESPONSIVE
   ============================================================ */
@media (max-width: 960px) {
  .esn-header__nav, .esn-header__actions { display: none; }
  .esn-header__burger { display: grid; }
  .esn-sticky-callbar { display: flex; }
}
@media (max-width: 900px) {
  .esn-hero--media .esn-hero__inner { grid-template-columns: 1fr; }
  .esn-hero--media .esn-hero__media { order: -1; aspect-ratio: 16 / 10; min-height: 220px; }
}
@media (max-width: 880px) {
  .esn-footer__top { grid-template-columns: repeat(2, 1fr); }
}
@media (max-width: 760px) {
  .esn-included { grid-template-columns: 1fr; }
}
@media (max-width: 560px) {
  .esn-footer__top { grid-template-columns: 1fr; }
  .esn-statpanel__grid { gap: 1rem; }
}
