/* Styles partagés : en-tête, menu mobile, pied de page, accessibilité. */

.skip-link{position:absolute;left:-9999px;top:0;z-index:200;background:#0D1F4D;color:#fff;padding:12px 18px;border-radius:0 0 10px 0;font:600 14px/1 'Montserrat',system-ui,sans-serif;}
.skip-link:focus{left:0;}

/* ---------- En-tête ---------- */
#sh-hdr{position:fixed;top:0;left:0;right:0;z-index:80;font-family:'Montserrat',sans-serif;background:rgba(255,255,255,.86);backdrop-filter:saturate(180%) blur(16px);-webkit-backdrop-filter:saturate(180%) blur(16px);border-bottom:1px solid transparent;transition:box-shadow .3s ease,border-color .3s ease;}
#sh-hdr.sh-scrolled{box-shadow:0 8px 30px -12px rgba(13,31,77,.14);border-bottom-color:#ecece4;}
.sh-hdr-inner{max-width:1280px;margin:0 auto;padding:0 40px;height:74px;display:flex;align-items:center;justify-content:space-between;gap:22px;}
.sh-logo{display:flex;align-items:baseline;gap:1px;font-weight:800;font-size:18.5px;letter-spacing:-.02em;color:#0D1F4D;white-space:nowrap;text-decoration:none;}
.sh-logo span{color:#7DBA4D;}
.sh-logo-light{color:#fff;}
.sh-nav{display:flex;align-items:center;gap:26px;font-size:14px;font-weight:600;}
.sh-navlink{position:relative;color:#26304a;text-decoration:none;transition:color .2s ease;}
.sh-navlink::after{content:"";position:absolute;left:0;right:100%;bottom:-7px;height:2px;background:#7DBA4D;transition:right .3s ease;}
.sh-navlink:hover::after,.sh-navlink[data-on="1"]::after{right:0;}
.sh-navlink:hover,.sh-navlink[data-on="1"]{color:#0D1F4D;}
.sh-actions{display:flex;align-items:center;gap:14px;flex-shrink:0;}
.sh-phone-link{display:flex;align-items:center;gap:7px;font-weight:700;font-size:14px;color:#0D1F4D;white-space:nowrap;text-decoration:none;}
.sh-phone-link svg{width:15px;height:15px;}
.sh-devis{display:inline-flex;align-items:center;gap:7px;background:#7DBA4D;color:#fff;font-weight:700;font-size:13.5px;padding:10px 18px;border-radius:999px;box-shadow:0 6px 18px rgba(125,186,77,.34);white-space:nowrap;text-decoration:none;}
.sh-devis:hover{color:#fff;background:#6faa41;}
.sh-devis-txt-short{display:none;}
.sh-burger{display:none;align-items:center;justify-content:center;width:42px;height:42px;border:none;background:transparent;color:#0D1F4D;cursor:pointer;}
.sh-burger svg{width:26px;height:26px;}

@media(max-width:1040px){
  .sh-nav{display:none;}
  .sh-burger{display:flex;}
  .sh-phone-link{display:none;}
  .sh-hdr-inner{padding:0 16px;gap:12px;}
}
/* Sous ~480px, la barre déborde : le burger sortait du cadre.
   On réduit le logo, le bouton devis et les gouttières. */
@media(max-width:480px){
  .sh-logo{font-size:16px;}
  .sh-actions{gap:6px;}
  .sh-devis{font-size:13px;padding:9px 14px;}
  .sh-burger{width:38px;}
}
@media(max-width:400px){
  .sh-logo{font-size:15px;}
  .sh-devis-txt-long{display:none;}
  .sh-devis-txt-short{display:inline;}
}

/* ---------- Menu mobile ---------- */
#sh-mm{position:fixed;inset:0;z-index:90;background:#0D1F4D;color:#fff;padding:26px;display:flex;flex-direction:column;font-family:'Montserrat',sans-serif;}
#sh-mm[hidden]{display:none;}
.sh-mm-top{display:flex;align-items:center;justify-content:space-between;}
#sh-mm-close{width:44px;height:44px;border:none;background:transparent;color:#fff;cursor:pointer;}
#sh-mm-close svg{width:28px;height:28px;}
.sh-mm-nav{display:flex;flex-direction:column;margin-top:26px;font-size:20px;font-weight:700;overflow:auto;}
.sh-mm-nav a{color:#fff;padding:13px 0;border-bottom:1px solid rgba(255,255,255,.12);text-decoration:none;}
.sh-mm-cta{margin-top:22px;text-align:center;background:#7DBA4D;color:#fff;font-weight:700;padding:15px;border-radius:14px;font-size:16px;text-decoration:none;}

/* ---------- Pied de page ---------- */
.ft{font-family:'Montserrat',sans-serif;background:#0a1738;color:#c3c9d6;}
.ft-inner{max-width:1280px;margin:0 auto;padding:64px 40px 38px;}
.ft-grid{display:grid;grid-template-columns:1.5fr 1fr 1fr 1.1fr;gap:38px;}
.ft-logo{font-weight:800;font-size:19px;color:#fff;letter-spacing:-.02em;}
.ft-logo span{color:#7DBA4D;}
.ft-baseline{font-size:13px;line-height:1.6;margin:14px 0 0;max-width:300px;}
.ft-social{display:flex;gap:10px;margin-top:18px;}
.ft-social a,.ft-social span{width:36px;height:36px;border-radius:10px;background:rgba(255,255,255,.08);display:flex;align-items:center;justify-content:center;color:#fff;}
.ft-social a:hover{background:rgba(255,255,255,.16);color:#7DBA4D;}
/* Placeholders sans destination : ni curseur main, ni effet de survol. */
.ft-social-soon{cursor:default;color:#7c86a0;}
.ft-social svg{width:17px;height:17px;}
.ft-h{font-weight:700;color:#fff;font-size:13px;letter-spacing:.05em;text-transform:uppercase;}
.ft-links{display:flex;flex-direction:column;gap:9px;margin-top:15px;font-size:13.5px;}
.ft-links a{color:#c3c9d6;text-decoration:none;}
.ft-links a:hover{color:#7DBA4D;}
.ft-addr{line-height:1.5;}
.ft-strong{font-weight:700;}
.ft-cta{color:#7DBA4D;font-weight:700;}
.ft-legal{border-top:1px solid rgba(255,255,255,.1);margin-top:40px;padding-top:22px;display:flex;justify-content:space-between;flex-wrap:wrap;gap:12px;font-size:11.5px;color:#7c86a0;}
.ft-legal-links{display:flex;gap:16px;flex-wrap:wrap;}
.ft-legal-links a{color:#7c86a0;text-decoration:none;}
.ft-legal-links a:hover{color:#7DBA4D;}

@media(max-width:980px){.ft-grid{grid-template-columns:1fr 1fr;gap:32px;}}
@media(max-width:640px){.ft-grid{grid-template-columns:1fr;gap:30px;}.ft-inner{padding:48px 22px 30px;}}

/* ---------- Animations ---------- */
/* L'état masqué initial est conditionné par .mo-ready, posée en <head>
   uniquement si le JS tourne et si l'utilisateur n'a pas demandé à réduire
   les animations. Sans JS : rien n'est masqué. */

:root{--mo-ease:cubic-bezier(.22,.75,.28,1);--mo-dur:.72s;}

/* Barre de progression de lecture */
.mo-progress{position:fixed;top:0;left:0;height:3px;width:100%;z-index:81;
  transform:scaleX(0);transform-origin:0 50%;pointer-events:none;
  background:linear-gradient(90deg,#7DBA4D,#a8d97a);will-change:transform;}

/* En-tête : se compacte au défilement */
.sh-hdr-inner{transition:height .34s var(--mo-ease);}
#sh-hdr.sh-scrolled .sh-hdr-inner{height:62px;}

/* Révélation au défilement */
.mo-ready [data-anim]{opacity:0;
  transition:opacity var(--mo-dur) var(--mo-ease),transform var(--mo-dur) var(--mo-ease),filter var(--mo-dur) var(--mo-ease);}
.mo-ready [data-anim="up"]{transform:translateY(30px);}
.mo-ready [data-anim="down"]{transform:translateY(-24px);}
.mo-ready [data-anim="left"]{transform:translateX(-34px);}
.mo-ready [data-anim="right"]{transform:translateX(34px);}
.mo-ready [data-anim="scale"]{transform:scale(.94);}
.mo-ready [data-anim="mask"]{clip-path:inset(0 0 100% 0);transform:scale(1.06);}
.mo-ready [data-anim].mo-in{opacity:1;transform:none;filter:none;clip-path:inset(0 0 0 0);}

/* Cartes : élévation au survol + zoom de l'image */
.proj,.mo-lift{transition:transform .45s var(--mo-ease),box-shadow .45s var(--mo-ease);}
.proj:hover,.mo-lift:hover{transform:translateY(-6px);box-shadow:0 26px 50px -26px rgba(13,31,77,.42);}
.proj img,.mo-lift img{transition:transform .8s var(--mo-ease);}
.proj:hover img,.mo-lift:hover img{transform:scale(1.06);}

/* Liens « en savoir plus » : la flèche avance */
.morelink svg{transition:transform .35s var(--mo-ease);}
.morelink:hover svg{transform:translateX(5px);}

/* Bouton devis de l'en-tête */
.sh-devis{transition:transform .3s var(--mo-ease),background-color .3s ease,box-shadow .3s ease;}
.sh-devis:hover{transform:translateY(-2px);box-shadow:0 10px 26px rgba(125,186,77,.45);}
.sh-devis:active{transform:translateY(0);}
.sh-burger{transition:transform .25s var(--mo-ease);}
.sh-burger:active{transform:scale(.9);}

/* Menu mobile : panneau glissant + entrée en cascade des liens */
.mo-ready #sh-mm{transform:translateX(100%);opacity:0;
  transition:transform .42s var(--mo-ease),opacity .3s ease;}
.mo-ready #sh-mm.mo-open{transform:none;opacity:1;}
.mo-ready #sh-mm .sh-mm-nav a,.mo-ready #sh-mm .sh-mm-cta{opacity:0;transform:translateX(26px);
  transition:opacity .45s var(--mo-ease),transform .45s var(--mo-ease);}
.mo-ready #sh-mm.mo-open .sh-mm-nav a,.mo-ready #sh-mm.mo-open .sh-mm-cta{opacity:1;transform:none;}
.mo-ready #sh-mm.mo-open .sh-mm-nav a:nth-child(1){transition-delay:.10s;}
.mo-ready #sh-mm.mo-open .sh-mm-nav a:nth-child(2){transition-delay:.15s;}
.mo-ready #sh-mm.mo-open .sh-mm-nav a:nth-child(3){transition-delay:.20s;}
.mo-ready #sh-mm.mo-open .sh-mm-nav a:nth-child(4){transition-delay:.25s;}
.mo-ready #sh-mm.mo-open .sh-mm-nav a:nth-child(5){transition-delay:.30s;}
.mo-ready #sh-mm.mo-open .sh-mm-nav a:nth-child(6){transition-delay:.35s;}
.mo-ready #sh-mm.mo-open .sh-mm-nav a:nth-child(7){transition-delay:.40s;}
.mo-ready #sh-mm.mo-open .sh-mm-nav a:nth-child(8){transition-delay:.45s;}
.mo-ready #sh-mm.mo-open .sh-mm-nav a:nth-child(9){transition-delay:.50s;}
.mo-ready #sh-mm.mo-open .sh-mm-cta{transition-delay:.56s;}

/* Respect strict de la préférence système */
@media(prefers-reduced-motion:reduce){
  *,*::before,*::after{animation-duration:.01ms!important;animation-iteration-count:1!important;
    transition-duration:.01ms!important;scroll-behavior:auto!important;}
  [data-anim]{opacity:1!important;transform:none!important;filter:none!important;clip-path:none!important;}
  .mo-progress{display:none;}
}

/* ---------- Aperçu PDF en modale ---------- */
.pv-overlay{position:fixed;inset:0;z-index:120;background:rgba(10,23,56,.72);
  backdrop-filter:blur(4px);-webkit-backdrop-filter:blur(4px);
  display:flex;align-items:center;justify-content:center;padding:34px;
  opacity:0;transition:opacity .24s ease;font-family:'Montserrat',sans-serif;}
.pv-overlay.pv-on{opacity:1;}
.pv-overlay[hidden]{display:none;}
.pv-panel{background:#fff;border-radius:18px;overflow:hidden;width:min(1080px,100%);height:min(90vh,100%);
  display:flex;flex-direction:column;box-shadow:0 40px 90px -30px rgba(0,0,0,.6);
  transform:translateY(14px) scale(.985);transition:transform .28s cubic-bezier(.22,.75,.28,1);}
.pv-overlay.pv-on .pv-panel{transform:none;}
.pv-bar{display:flex;align-items:center;justify-content:space-between;gap:18px;
  padding:14px 16px 14px 22px;border-bottom:1px solid #ececE4;background:#fff;flex-shrink:0;}
.pv-title{font-weight:700;font-size:15px;color:#0D1F4D;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;}
.pv-actions{display:flex;align-items:center;gap:10px;flex-shrink:0;}
.pv-btn{font-size:13px;font-weight:700;padding:9px 15px;border-radius:999px;text-decoration:none;white-space:nowrap;}
.pv-open{background:#F2F2F0;color:#0D1F4D;}
.pv-open:hover{background:#e7e7de;color:#0D1F4D;}
.pv-dl{background:#7DBA4D;color:#fff;}
.pv-dl:hover{background:#6faa41;color:#fff;}
.pv-close{width:38px;height:38px;border:none;background:transparent;color:#77776e;
  font-size:26px;line-height:1;cursor:pointer;border-radius:10px;}
.pv-close:hover{background:#F2F2F0;color:#0D1F4D;}
.pv-frame{flex:1;width:100%;border:none;background:#525659;}

/* ---------- Contenu long (pages légales) ---------- */
.legal{max-width:820px;margin:0 auto;padding:122px 40px 80px;font-family:'Montserrat',sans-serif;color:#3a3a34;}
.legal h1{font-size:clamp(2rem,4vw,2.8rem);line-height:1.1;letter-spacing:-.03em;font-weight:800;color:#0D1F4D;margin:20px 0 10px;}
.legal h2{font-size:1.25rem;font-weight:800;color:#0D1F4D;margin:38px 0 10px;}
.legal p,.legal li{font-size:15px;line-height:1.75;}
.legal ul{padding-left:20px;}
.legal a{color:#0D1F4D;font-weight:600;}
@media(max-width:640px){.legal{padding:104px 22px 60px;}}
