@font-face{font-family:'Jost';src:url('/assets/fonts/jost-latin-300-normal.woff2') format('woff2');font-weight:300;font-display:swap}
@font-face{font-family:'Jost';src:url('/assets/fonts/jost-latin-400-normal.woff2') format('woff2');font-weight:400;font-display:swap}
@font-face{font-family:'Jost';src:url('/assets/fonts/jost-latin-500-normal.woff2') format('woff2');font-weight:500;font-display:swap}
@font-face{font-family:'Cormorant Garamond';src:url('/assets/fonts/cormorant-garamond-latin-500-normal.woff2') format('woff2');font-weight:500;font-display:swap}
@font-face{font-family:'Cormorant Garamond';src:url('/assets/fonts/cormorant-garamond-latin-600-normal.woff2') format('woff2');font-weight:600;font-display:swap}

@font-face{font-family:'Cormorant Garamond';src:url('/assets/fonts/cormorant-garamond-latin-500-italic.woff2') format('woff2');font-weight:500;font-style:italic;font-display:swap}
/* ESSOR MC — styles communs. Charte graphique ESSOR MC v1.1. */
:root{
  /* Palette de marque */
  --essor-vert:#0C3326;--essor-vert-survol:#164A38;--essor-vert-ligne:#2C5446;
  --essor-or:#C9A45C;--essor-or-fonce:#A8843F;--essor-or-clair:#D7B877;--essor-or-texte:#86662B;
  --essor-blanc:#FFFFFF;--essor-ivoire:#F6F4EF;--essor-sable:#E6E1D6;--essor-noir:#0E0F0D;
  /* Polices */
  --font-titre:'Cormorant Garamond',Georgia,serif;--font-texte:'Jost',Arial,sans-serif;
  /* Rôles — mode jour */
  --bg:var(--essor-blanc);--bg-alt:var(--essor-ivoire);--card:var(--essor-blanc);--card-alt:var(--essor-ivoire);
  --title:var(--essor-vert);--text:var(--essor-noir);--muted:#4A4A45;--gold-text:var(--essor-or-texte);--gold-num:var(--essor-or-texte);
  --line:var(--essor-sable);--btn-bg:var(--essor-vert);--btn-fg:var(--essor-blanc);--btn-hover:var(--essor-vert-survol);
  color-scheme:light;
  /* Mise en page selon la largeur (remplace les calculs JavaScript de la v38) */
  --nav-flex:none;--desk-flex:none;--ex-cols:minmax(0,1fr);--header-align:flex-end;--bottom-pad:0px;--o-shift:0;
}
:root[data-theme="dark"]{
  --bg:#0A1F18;--bg-alt:#0D2820;--card:#113D2F;--card-alt:#16463A;--title:var(--essor-ivoire);--text:var(--essor-ivoire);
  --muted:#C5CEC8;--gold-text:var(--essor-or);--gold-num:var(--essor-or);--line:rgba(246,244,239,.16);
  --btn-bg:var(--essor-or);--btn-fg:var(--essor-vert);--btn-hover:var(--essor-or-clair);color-scheme:dark;
}
@media (min-width:600px){:root{--ex-cols:repeat(2,minmax(0,1fr))}}
@media (max-width:679px){:root{--po-ess:1;--po-lan:2}}
@media (max-width:759px){:root{--o-reco:0;--o-shift:1;--bottom-pad:80px;--header-align:flex-start}}
@media (min-width:900px){:root{--desk-flex:flex;--ex-cols:repeat(3,minmax(0,1fr))}}
@media (min-width:1100px){:root{--nav-flex:flex}}

html,body{overflow-x:hidden}
html{scroll-behavior:smooth;scroll-padding-top:84px}
body{margin:0;font-family:var(--font-texte);font-weight:400;color:var(--text);background:var(--bg);font-variant-numeric:lining-nums}
a{color:var(--title)}a:hover{color:var(--essor-or)}
input::placeholder,textarea::placeholder{color:var(--muted);opacity:.8}
*{box-sizing:border-box}
input,textarea,select,button{font-family:var(--font-texte)}
img{max-width:100%}
@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}}

/* Accueil : formules mises en avant */
.essor-featured{display:grid;gap:clamp(36px,5vw,64px);align-items:center}
.essor-featured-plans{display:grid;gap:14px}
.essor-featured-plan{min-width:0;padding:24px clamp(16px,1.7vw,22px)}
@media (min-width:680px){.essor-featured-plans{grid-template-columns:repeat(3,minmax(0,1fr))}}
@media (min-width:1120px){.essor-featured{grid-template-columns:minmax(0,1fr) minmax(0,1.7fr)}}

/* Affichage conditionnel (thème et largeur) */
.mc-light-only,.mc-dark-only,.mc-only-mobile,.mc-only-desktop{display:contents}
img.mc-light-only,img.mc-dark-only{display:block}
:root[data-theme="dark"] .mc-light-only,:root:not([data-theme="dark"]) .mc-dark-only{display:none!important}
@media (max-width:759px){.mc-only-desktop{display:none}}
@media (min-width:760px){.mc-only-mobile{display:none}}
.mc-faq-panel[hidden]{display:none}

/* Accessibilité */
.mc-skip{position:absolute;left:-9999px;top:8px;z-index:100;background:var(--essor-vert);color:var(--essor-blanc);padding:12px 18px}
.mc-skip:focus{left:8px}
:focus-visible{outline:2px solid var(--essor-or);outline-offset:2px}
footer a{display:inline-flex;align-items:center;min-height:44px}
footer div:has(> a){gap:0!important}

/* Pages de texte (mentions légales, données personnelles, 404) */
.mc-prose{max-width:820px;margin:0 auto;padding:clamp(40px,6vw,72px) max(16px,min(56px,4vw)) 96px;line-height:1.7;font-size:16px}
.mc-prose h1{font-family:var(--font-titre);font-weight:500;font-size:clamp(34px,4vw,48px);line-height:1.1;color:var(--title);margin:0 0 28px}
.mc-prose h2{font-family:var(--font-titre);font-weight:600;font-size:clamp(22px,2.4vw,28px);color:var(--title);margin:40px 0 10px;padding-bottom:8px;border-bottom:1px solid var(--essor-or)}
.mc-prose p,.mc-prose li{color:var(--text)}
.mc-prose .mc-maj{font-size:14px;color:var(--muted)}

/* Zones tactiles agrandies (44 px) sans changer l'apparence */
a[style*="border-bottom:2px solid var(--essor-or)"],#contact a:not([style*="padding"]),.essor-nav a:not(.essor-nav-contact),main a[href^="mailto:"]{position:relative}
a[style*="border-bottom:2px solid var(--essor-or)"]::after,#contact a:not([style*="padding"])::after,.essor-nav a:not(.essor-nav-contact)::after,main a[href^="mailto:"]::after{content:"";position:absolute;left:-6px;right:-6px;top:50%;height:44px;transform:translateY(-50%)}
.essor-nav > div > a:first-child{min-height:44px;align-items:center}
.mc-prose a{display:inline-block;padding:10px 0;margin:-10px 0}

/* Slogan ESSOR MC (Cormorant Garamond italique 500) */
.mc-slogan{font-family:var(--font-titre)!important;font-style:italic;font-weight:500}

/* Bannière du site (pack 06_Numerique validé) — jour : ivoire ; nuit : vert profond ; mobile : slogan seul */
.mc-banniere{display:grid;grid-template-columns:3fr 5fr;min-height:clamp(320px,31vw,600px);background:var(--essor-ivoire);border-bottom:1px solid var(--line)}
:root[data-theme="dark"] .mc-banniere{background:var(--essor-vert)}
.mc-banniere-photo{position:relative;overflow:hidden;min-width:0}
.mc-banniere-photo img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;object-position:68% 50%}
.mc-banniere-texte{position:relative;display:flex;flex-direction:column;justify-content:center;gap:clamp(14px,1.6vw,26px);padding:clamp(28px,4vw,72px) max(16px,min(80px,5vw))}
.mc-banniere-logo{height:clamp(26px,2.2vw,36px);width:auto;align-self:flex-start}
.mc-banniere-slogan{margin:0;font-family:var(--font-titre);font-style:italic;font-weight:500;font-size:clamp(40px,5vw,92px);line-height:1.02;color:var(--essor-vert);text-wrap:balance}
.mc-banniere-slogan span{display:block;color:var(--essor-or-texte)}
:root[data-theme="dark"] .mc-banniere-slogan{color:var(--essor-blanc)}
:root[data-theme="dark"] .mc-banniere-slogan span{color:var(--essor-or)}
.mc-banniere-pres{margin:0;max-width:36em;font-size:clamp(15px,1.2vw,19px);line-height:1.6;color:var(--essor-vert)}
:root[data-theme="dark"] .mc-banniere-pres{color:var(--essor-blanc)}
.mc-coin{position:absolute;top:clamp(20px,2.4vw,40px);right:clamp(20px,2.4vw,40px);width:clamp(28px,3vw,52px);height:clamp(28px,3vw,52px);border-top:2px solid var(--essor-or);border-right:2px solid var(--essor-or)}
@media (max-width:759px){
  .mc-banniere{grid-template-columns:1fr;min-height:0}
  .mc-banniere-photo,.mc-banniere-logo,.mc-banniere-pres{display:none!important}
  .mc-banniere-texte{padding:36px max(16px,6vw)}
  .mc-banniere-slogan{font-size:clamp(38px,11vw,56px)}
}

/* Pages « sur devis » (Concept marketing, Business plan) — mêmes codes visuels que les pages de vente */
.np-hero{background:var(--essor-vert);border-top:4px solid var(--essor-or)}
.np-hero-in{max-width:1200px;margin:0 auto;padding:clamp(48px,7vw,96px) max(16px,min(56px,4vw)) clamp(56px,7vw,96px);display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,460px),1fr));gap:48px;align-items:end}
.np-hero-txt{display:flex;flex-direction:column;gap:22px;align-items:flex-start}
.np-sur{font-size:12px;font-weight:500;letter-spacing:.28em;text-transform:uppercase;color:var(--essor-or)}
.np-hero h1{margin:0;font-family:var(--font-titre);font-weight:600;font-size:clamp(46px,7vw,84px);line-height:1;color:var(--essor-blanc)}
.np-tag{margin:0;font-size:clamp(17px,1.6vw,20px);line-height:1.55;color:var(--essor-blanc);max-width:32em}
.np-hero-sym{display:flex;flex-direction:column;align-items:var(--header-align);gap:18px}
.np-symbole{width:clamp(92px,13vw,168px);height:auto;display:block}
.np-slogan{font-size:clamp(26px,2.6vw,34px);color:var(--essor-or);line-height:1.1}
.np-boutons{display:flex;flex-wrap:wrap;gap:14px;align-items:center;margin-top:10px}
.np-btn{display:inline-flex;align-items:center;min-height:44px;background:var(--essor-or);color:var(--essor-vert);font-size:13px;font-weight:500;letter-spacing:.14em;text-transform:uppercase;text-decoration:none;padding:17px 30px}
.np-btn:hover{background:var(--essor-or-clair);color:var(--essor-vert)}
.np-btn-2{background:transparent;color:var(--essor-blanc);border:1px solid var(--essor-or)}
.np-btn-2:hover{background:transparent;color:var(--essor-or)}
.np-badge{font-family:var(--font-titre);font-style:italic;font-size:22px;color:var(--essor-or)}
.np-corps{max-width:1200px;margin:0 auto;padding:0 max(16px,min(56px,4vw)) clamp(56px,7vw,88px)}
.np-accroche{margin-top:clamp(40px,6vw,72px);background:var(--card-alt);border-left:3px solid var(--essor-or);padding:clamp(24px,3vw,40px) clamp(20px,3.4vw,48px)}
.np-corps .np-accroche p{margin:0;font-family:var(--font-titre);font-weight:600;font-size:clamp(24px,2.7vw,34px);line-height:1.28;color:var(--title);max-width:30em}
.np-intro,.np-section{max-width:52em}
.np-corps p{font-size:17px;line-height:1.75;margin:18px 0 0;text-wrap:pretty}
.np-intro{margin-top:clamp(16px,2vw,24px)}
.np-section{margin-top:clamp(56px,7vw,88px);max-width:none}
.np-section h2,.np-fin h2{margin:0 0 20px;padding-bottom:14px;border-bottom:1px solid var(--essor-or);font-family:var(--font-titre);font-weight:500;font-size:clamp(30px,3.4vw,42px);line-height:1.15;color:var(--title)}
.np-section > p{max-width:46em}
.np-liste{list-style:none;margin:20px 0 0;padding:0;display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,400px),1fr));gap:14px 48px}
.np-liste li{display:flex;gap:14px;font-size:17px;line-height:1.6}
.np-liste li::before{content:"—";color:var(--essor-or);font-weight:500;flex:none}
.np-cartes{margin-top:24px;display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,300px),1fr));gap:16px}
.np-carte{background:var(--card-alt);padding:clamp(20px,2.4vw,30px);border-top:3px solid var(--title)}
.np-carte h3{margin:0;font-family:var(--font-titre);font-weight:600;font-size:clamp(22px,2vw,26px);line-height:1.2;color:var(--title)}
.np-carte p{margin:10px 0 0;font-size:16px;line-height:1.65}
.np-num{display:block;font-family:var(--font-titre);font-weight:600;font-size:34px;line-height:1;color:var(--gold-num);margin-bottom:10px}
.np-fin{background:var(--essor-vert);border-top:4px solid var(--essor-or)}
.np-fin-in{max-width:1200px;margin:0 auto;padding:clamp(48px,6vw,80px) max(16px,min(56px,4vw))}
.np-fin h2{color:var(--essor-blanc)}
.np-fin p{color:var(--essor-blanc);font-size:17px;line-height:1.75;max-width:46em;margin:14px 0 0}

.essor-nav .essor-mobile-menu {
  display: none;
}

@media (max-width: 1099px) {
  .essor-nav > div {
    gap: 8px !important;
    padding-inline: clamp(12px, 3.4vw, 36px) !important;
  }

  .essor-nav > div > a > img {
    width: clamp(90px, 27vw, 150px) !important;
    height: auto !important;
  }

  .essor-nav > div > div {
    gap: clamp(5px, 1.6vw, 12px) !important;
  }

  .essor-nav .essor-mobile-menu {
    display: block;
  }

  .essor-nav .essor-mobile-menu > summary,
  .essor-nav .essor-theme-toggle {
    display: grid !important;
    place-items: center;
    width: clamp(40px, 11.3vw, 44px) !important;
    height: 44px;
    flex: none;
    border: 1px solid var(--line);
    color: var(--title);
    cursor: pointer;
  }

  .essor-nav .essor-mobile-menu > summary {
    list-style: none;
  }

  .essor-nav .essor-mobile-menu > summary::-webkit-details-marker {
    display: none;
  }

  .essor-nav .essor-mobile-menu[open] > summary {
    border-color: #C9A45C;
  }

  .essor-nav .essor-nav-contact {
    display: grid;
    place-items: center;
    min-height: 44px;
    padding: 8px clamp(7px, 2.2vw, 18px) !important;
    font-size: clamp(10px, 2.65vw, 12px) !important;
    letter-spacing: .10em !important;
  }

  .essor-nav .essor-mobile-links {
    position: absolute;
    inset: 100% 0 auto;
    max-height: calc(100vh - 76px);
    max-height: calc(100dvh - 76px);
    overflow: auto;
    padding: 6px clamp(12px, 3.4vw, 36px) 12px;
    border-bottom: 1px solid var(--line);
    background: var(--bg);
    box-shadow: 0 8px 16px rgb(0 0 0 / 12%);
  }

  .essor-nav .essor-mobile-links a {
    display: flex;
    align-items: center;
    min-height: 44px;
    padding: 8px;
    border-bottom: 1px solid var(--line);
    color: var(--text);
    text-decoration: none;
  }
}

@media (max-width: 360px) {
  .essor-nav > div {
    gap: 5px !important;
    padding-inline: 8px !important;
  }

  .essor-nav > div > a > img {
    width: 82px !important;
  }

  .essor-nav > div > div {
    gap: 4px !important;
  }

  .essor-nav .essor-nav-contact {
    padding-inline: 6px !important;
    letter-spacing: .065em !important;
  }
}

/* survols et focus générés depuis les gabarits */
.h1:hover{color:var(--essor-or-fonce) !important}
.h2:hover{border-color:var(--essor-or) !important}
.h3:hover{background:var(--btn-hover) !important;color:var(--btn-fg) !important}
.h4:hover{background:var(--essor-or-clair) !important;color:var(--essor-vert) !important}
.h5:hover{color:var(--essor-or) !important}
.h6:hover{background:var(--essor-or-clair) !important}
.h7:hover{border-color:var(--essor-or) !important;color:var(--title) !important}
.f8:focus-visible{outline:2px solid var(--essor-or) !important;outline-offset:2px !important}
.h9:hover{background:var(--essor-vert-survol) !important;color:var(--essor-blanc) !important}