/* ==========================================================
   Oarva · styles de base
   Polices, en-tête, menus, pied de page, accessibilité.
   Les styles propres à chaque page sont dans css/pages/.
   ========================================================== */

/* ---------- Polices (hébergées sur le site, licence OFL) ---------- */
@font-face{font-family:'Instrument Sans';font-style:normal;font-weight:400;font-display:swap;src:url(/assets/fonts/instrument-sans-latin-400-normal.woff2) format('woff2')}
@font-face{font-family:'Instrument Sans';font-style:normal;font-weight:500;font-display:swap;src:url(/assets/fonts/instrument-sans-latin-500-normal.woff2) format('woff2')}
@font-face{font-family:'Instrument Sans';font-style:normal;font-weight:600;font-display:swap;src:url(/assets/fonts/instrument-sans-latin-600-normal.woff2) format('woff2')}
@font-face{font-family:'Newsreader';font-style:normal;font-weight:500;font-display:swap;src:url(/assets/fonts/newsreader-latin-500-normal.woff2) format('woff2')}
@font-face{font-family:'Newsreader';font-style:normal;font-weight:600;font-display:swap;src:url(/assets/fonts/newsreader-latin-600-normal.woff2) format('woff2')}
@font-face{font-family:'Newsreader';font-style:italic;font-weight:500;font-display:swap;src:url(/assets/fonts/newsreader-latin-500-italic.woff2) format('woff2')}
@font-face{font-family:'Newsreader';font-style:italic;font-weight:600;font-display:swap;src:url(/assets/fonts/newsreader-latin-600-italic.woff2) format('woff2')}

/* ---------- Base ---------- */
*,*::before,*::after{box-sizing:border-box}
html{-webkit-text-size-adjust:100%;text-size-adjust:100%}
body{margin:0;background:#F7F6F3;color:#2F2E2B;font-family:'Instrument Sans',system-ui,-apple-system,'Segoe UI',sans-serif;-webkit-font-smoothing:antialiased;overflow-x:clip}
img,svg{max-width:100%}
.page{overflow-x:clip}
a:focus-visible,button:focus-visible,summary:focus-visible{outline:2px solid #2F6FC9;outline-offset:3px;border-radius:8px}
[hidden]{display:none!important}
.skip{position:absolute;left:16px;top:-60px;z-index:100;background:#2F2E2B;color:#FFFFFF;padding:12px 18px;border-radius:12px;font-weight:600;text-decoration:none;transition:top .2s ease}
.skip:focus{top:12px;color:#FFFFFF}
[id]{scroll-margin-top:96px}

/* ---------- En-tête ---------- */
.site-header{position:sticky;top:0;z-index:30;font-family:'Instrument Sans',system-ui,-apple-system,'Segoe UI',sans-serif;color:#2F2E2B;--shift:0px}
.hd-backdrop{position:fixed;left:0;right:0;top:72px;bottom:0;z-index:1;background:rgba(47,46,43,.16);-webkit-backdrop-filter:blur(3px);backdrop-filter:blur(3px);pointer-events:none;opacity:0;transition:opacity .35s ease}
.site-header.is-open .hd-backdrop{opacity:1}
.hd-bar{position:relative;z-index:3;background:rgba(247,246,243,.92);-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);border-bottom:1px solid #ECEBE8}
.hd-inner{max-width:1200px;margin:0 auto;padding:0 32px;height:72px;display:flex;align-items:center;justify-content:space-between;gap:24px}
.hd-logo{display:flex;align-items:center;gap:10px;text-decoration:none;color:#2F2E2B}
.hd-logo span{font-family:'Newsreader',Georgia,serif;font-weight:600;letter-spacing:-0.02em;font-size:23px}
.hd-logo:hover{color:#2F2E2B}
.hd-nav{display:flex;align-items:center;gap:6px}
.hd-btn,.hd-link{display:inline-flex;align-items:center;gap:6px;min-height:44px;padding:0 14px;border:0;border-radius:999px;cursor:pointer;font:inherit;font-size:15px;font-weight:500;color:#2F2E2B;background:transparent;text-decoration:none;transition:background .25s ease,color .25s ease}
.hd-btn:hover,.hd-link:hover{color:#2E6340}
.hd-btn[aria-expanded="true"]{background:rgba(59,122,78,.10);color:#2E6340}
.hd-chev{transition:transform .35s cubic-bezier(.2,.8,.2,1)}
.hd-btn[aria-expanded="true"] .hd-chev{transform:rotate(180deg)}
.site-header[data-actif="plateforme"] [data-menu="plateforme"],
.site-header[data-actif="solutions"] [data-menu="solutions"],
.site-header[data-actif="services"] [data-menu="services"],
.site-header[data-actif="entreprise"] [data-lien="entreprise"]{color:#2E6340}
.hd-actions{display:flex;align-items:center;gap:22px}
.hd-connexion{display:inline-flex;align-items:center;min-height:44px;font-size:15px;font-weight:500;color:#2F2E2B;text-decoration:none}
.hd-connexion:hover{color:#2E6340}
.hd-cta{display:inline-flex;align-items:center;min-height:44px;padding:0 22px;border-radius:999px;background:#2F2E2B;color:#FFFFFF;font-size:14px;font-weight:600;text-decoration:none;transition:background .2s ease}
.hd-cta:hover{background:#1E1D1B;color:#FFFFFF}
.hd-burger{display:none;width:44px;height:44px;border-radius:12px;border:1px solid #E3E2DF;background:#FFFFFF;color:#2F2E2B;align-items:center;justify-content:center;cursor:pointer}
.hd-burger .i-fermer{display:none}
.hd-burger[aria-expanded="true"] .i-fermer{display:inline}
.hd-burger[aria-expanded="true"] .i-ouvrir{display:none}

/* Menus déroulants (bureau) */
.hd-bridge{position:absolute;z-index:2;top:64px;left:50%;width:1000px;height:22px;transform:translateX(-50%);pointer-events:none}
.site-header.is-open .hd-bridge{pointer-events:auto}
.hd-sheet{position:absolute;z-index:4;top:80px;left:50%;width:1000px;max-width:calc(100vw - 32px);height:440px;background:#FFFFFF;border:1px solid #ECEBE8;border-radius:24px;overflow:hidden;box-shadow:0 40px 90px rgba(30,29,27,.20),0 2px 8px rgba(30,29,27,.06);transform-origin:top center;transform:translateX(calc(-50% + var(--shift))) translateY(-10px) scale(.97);opacity:0;pointer-events:none;visibility:hidden;transition:opacity .25s ease,transform .5s cubic-bezier(.2,.8,.2,1),visibility 0s linear .5s}
.site-header.is-open .hd-sheet{transform:translateX(calc(-50% + var(--shift))) translateY(0) scale(1);opacity:1;pointer-events:auto;visibility:visible;transition:opacity .25s ease,transform .5s cubic-bezier(.2,.8,.2,1),visibility 0s}
.hd-layer{position:absolute;inset:0;display:flex;gap:6px;padding:10px;opacity:0;visibility:hidden;pointer-events:none;transform:translateX(36px);transition:opacity .28s ease,transform .45s cubic-bezier(.2,.8,.2,1),visibility 0s linear .3s}
.hd-layer[data-pos="gauche"]{transform:translateX(-36px)}
.hd-layer.is-on{opacity:1;visibility:visible;pointer-events:auto;transform:translateX(0);transition:opacity .28s ease,transform .45s cubic-bezier(.2,.8,.2,1),visibility 0s}
.hd-pv{position:relative;flex:none;width:340px;border-radius:18px;overflow:hidden;transition:background .5s ease,color .5s ease}
.hd-pv-dots{position:absolute;inset:0;background-image:radial-gradient(rgba(128,128,128,.22) 1px,transparent 1px);background-size:16px 16px;opacity:.55}
.hd-pv-mark{position:absolute;right:-40px;bottom:-40px;opacity:.14;max-width:none}
.hd-pvi{position:absolute;inset:0;padding:30px 28px 28px;display:flex;flex-direction:column;gap:12px;opacity:0;transform:translateY(12px);transition:opacity .35s ease,transform .5s cubic-bezier(.2,.8,.2,1)}
.hd-pvi.is-on{opacity:1;transform:translateY(0)}
.hd-pv-sub{font-size:13px;font-weight:500}
.hd-pv-title{font-family:'Newsreader',Georgia,serif;font-weight:600;letter-spacing:-0.02em;font-size:31px;line-height:1.12}
.hd-pv-card{margin-top:auto;background:#FFFFFF;color:#2F2E2B;border-radius:14px;padding:14px 16px;display:flex;align-items:center;gap:12px;box-shadow:0 14px 30px rgba(0,0,0,.14)}
.hd-pv-dot{flex:none;width:8px;height:8px;border-radius:50%;background:#3B7A4E}
.hd-pv-txt{display:flex;flex-direction:column;gap:2px}
.hd-pv-txt strong{font-size:14px;font-weight:600}
.hd-pv-txt span{font-size:12.5px;color:#6F6E69}
.hd-pv[data-ton="sable"]{background:#ECE8DF;color:#2F2E2B}
.hd-pv[data-ton="ciel"]{background:#DCE6F2;color:#2F2E2B}
.hd-pv[data-ton="vert"]{background:#3B7A4E;color:#FFFFFF}
.hd-pv[data-ton="encre"]{background:#2F2E2B;color:#FFFFFF}
.hd-pvi[data-ton="sable"] .hd-pv-sub{color:#6B5F48}
.hd-pvi[data-ton="ciel"] .hd-pv-sub{color:#45546A}
.hd-pvi[data-ton="vert"] .hd-pv-sub{color:#DCEBDF}
.hd-pvi[data-ton="encre"] .hd-pv-sub{color:#C9C8C2}
.hd-list{flex:1;min-width:0;display:flex;flex-direction:column;padding:18px 18px 14px 14px}
.hd-cap{font-size:13px;font-weight:500;color:#6F6E69;padding:0 12px 10px}
.hd-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:4px}
.hd-row{display:flex;align-items:center;gap:14px;padding:13px 12px;border-radius:14px;text-decoration:none;color:#2F2E2B;opacity:0;transform:translateY(8px);transition:background .2s ease,opacity .35s ease,transform .5s cubic-bezier(.2,.8,.2,1)}
.hd-row:hover{color:#2F2E2B}
.hd-layer.is-on .hd-row{opacity:1;transform:translateY(0)}
.hd-layer.is-on .hd-row:nth-child(1){transition-delay:0s,70ms,70ms}
.hd-layer.is-on .hd-row:nth-child(2){transition-delay:0s,105ms,105ms}
.hd-layer.is-on .hd-row:nth-child(3){transition-delay:0s,140ms,140ms}
.hd-layer.is-on .hd-row:nth-child(4){transition-delay:0s,175ms,175ms}
.hd-layer.is-on .hd-row:nth-child(5){transition-delay:0s,210ms,210ms}
.hd-layer.is-on .hd-row:nth-child(6){transition-delay:0s,245ms,245ms}
.hd-row.is-hover{background:#F4F2EE}
.hd-ico{flex:none;width:42px;height:42px;border-radius:12px;display:flex;align-items:center;justify-content:center;background:#F3F2EF;color:#2F2E2B;transition:background .3s ease,color .3s ease,transform .3s cubic-bezier(.2,.8,.2,1)}
.hd-row.is-hover .hd-ico{transform:scale(1.06)}
.hd-row.is-hover[data-ton="sable"] .hd-ico{background:#ECE8DF;color:#2F2E2B}
.hd-row.is-hover[data-ton="ciel"] .hd-ico{background:#DCE6F2;color:#2F2E2B}
.hd-row.is-hover[data-ton="vert"] .hd-ico{background:#3B7A4E;color:#FFFFFF}
.hd-row.is-hover[data-ton="encre"] .hd-ico{background:#2F2E2B;color:#FFFFFF}
.hd-txt{display:flex;flex-direction:column;gap:3px;min-width:0;flex:1}
.hd-txt strong{font-size:15.5px;font-weight:600}
.hd-txt span{font-size:13.5px;line-height:1.4;color:#6F6E69}
.hd-arrow{flex:none;font-size:16px;color:#3B7A4E;opacity:0;transform:translateX(-6px);transition:opacity .2s ease,transform .3s cubic-bezier(.2,.8,.2,1)}
.hd-row.is-hover .hd-arrow{opacity:1;transform:translateX(0)}
.hd-foot{margin-top:auto;display:flex;align-items:center;justify-content:space-between;gap:12px;padding:14px 12px 4px;border-top:1px solid #ECEBE8;font-size:14.5px;font-weight:600;color:#2F2E2B;text-decoration:none}
.hd-foot:hover{color:#2E6340}
.hd-foot span{color:#3B7A4E}

/* Menu téléphone */
.hd-mobile{position:absolute;top:100%;left:0;right:0;z-index:5;background:#FFFFFF;border-bottom:1px solid #ECEBE8;box-shadow:0 24px 50px rgba(47,46,43,.14);padding:18px 20px 24px;display:flex;flex-direction:column;gap:18px;max-height:calc(100vh - 64px);overflow-y:auto;animation:menuIn .3s cubic-bezier(.2,.8,.2,1) both}
@keyframes menuIn{from{opacity:0;translate:0 -8px}to{opacity:1;translate:0 0}}
.hd-m-groupe{display:flex;flex-direction:column;gap:2px}
.hd-m-groupe strong{font-size:13px;font-weight:600;color:#6F6E69;padding-bottom:6px}
.hd-m-groupe a{display:flex;align-items:center;min-height:42px;font-size:16px;color:#2F2E2B;text-decoration:none}
.hd-m-groupe a:hover{color:#3B7A4E}
.hd-m-cta{align-self:stretch}

@media (max-width:1060px){
  .hd-connexion{display:none}
}
@media (max-width:960px){
  .hd-inner{height:64px;padding:0 20px}
  .hd-nav,.hd-sheet,.hd-bridge,.hd-backdrop,.hd-cta{display:none}
  .hd-burger{display:inline-flex}
}

/* ---------- Pied de page ---------- */
.site-footer{background:#FFFFFF;border-top:1px solid #E3E2DF;padding:64px 0 40px}
.ft-inner{display:flex;flex-direction:column;gap:48px}
.ft-top{display:flex;flex-wrap:wrap;gap:40px;justify-content:space-between}
.ft-marque{flex:1 1 260px;display:flex;flex-direction:column;gap:14px}
.ft-marque p{margin:0;font-size:15px;line-height:1.55;color:#55544F;max-width:280px}
.ft-marque > a{font-size:15px}
.ft-logo{display:flex;align-items:center;gap:10px;text-decoration:none;color:#2F2E2B}
.ft-logo span{font-family:'Newsreader',Georgia,serif;font-weight:600;letter-spacing:-0.02em;font-size:21px}
.ft-nav{flex:3 1 600px;display:grid;grid-template-columns:repeat(auto-fit,minmax(min(150px,100%),1fr));gap:32px}
.ft-nav div{display:flex;flex-direction:column;gap:12px}
.ft-nav strong{font-size:14px;font-weight:600}
.ft-nav a,.ft-legal a{color:#55544F;text-decoration:none;font-size:14.5px}
.ft-nav a:hover,.ft-legal a:hover{color:#2F2E2B;text-decoration:underline}
.ft-bas{display:flex;flex-wrap:wrap;justify-content:space-between;gap:16px;padding-top:24px;border-top:1px solid #ECEBE8;font-size:13.5px;color:#6F6E69}
.ft-legal{display:flex;flex-wrap:wrap;gap:8px 22px}
.ft-legal a{font-size:13.5px}

/* ---------- Téléphone : marges plus serrées ---------- */
@media (max-width:640px){
  .page .wrap,.site-footer .wrap{padding-left:20px!important;padding-right:20px!important}
  .site-footer{padding:48px 0 32px}
}

/* ---------- Mouvement réduit ---------- */
@media (prefers-reduced-motion:reduce){
  *,*::before,*::after{animation:none!important;transition:none!important;scroll-behavior:auto!important}
}

/* Zone de texte temporaire pour la copie (page Contact) */
.hors-ecran{position:fixed;left:-9999px;top:0;opacity:0}

/* Petite puce ronde devant les éléments de liste */
.puce{display:inline-block;width:6px;height:6px;border-radius:50%;background:currentColor;vertical-align:middle;position:relative;top:-2px}
