:root{--sec-y:clamp(68px,calc(7.5vw + 20px),104px);--sec-serre:clamp(48px,calc(3vw + 30px),64px)}
/* ═══════════════════════════════════════════════════════════════
   Orée Digital — composants de conversion communs à toutes les pages
   · barre « offre exceptionnelle » (compte à rebours)
   · téléphone dans l'en-tête (PC + mobile)
   · chat WhatsApp « Comment puis-je vous aider ? »
   · barre d'actions collante sur mobile (Appeler · WhatsApp · Devis)
   ═══════════════════════════════════════════════════════════════ */
:root{
  --op-h:40px;
  --op-encre:#101A3A;
  --op-deg:linear-gradient(100deg,#5BBDFF 0%,#3A9BF2 48%,#1F6FE0 100%);
  --op-wa:#25D366;
  --op-wa-fonce:#128C4B;
  --op-ease:cubic-bezier(.22,.61,.36,1);
}

/* ---------- Barre d'offre ---------- */
.op-promo{position:fixed;top:0;left:0;right:0;height:var(--op-h);z-index:95;display:none;
  background:var(--op-encre);color:#fff;overflow:hidden;
  transition:transform .45s var(--op-ease)}
.op-promo::before{content:"";position:absolute;inset:0;background:var(--op-deg);opacity:.22}
.op-promo::after{content:"";position:absolute;top:0;bottom:0;width:38%;left:-40%;
  background:linear-gradient(90deg,transparent,rgba(255,255,255,.13),transparent);
  animation:op-reflet 5.5s var(--op-ease) infinite}
@keyframes op-reflet{0%,55%{left:-40%}100%{left:110%}}
.op-promo a{position:relative;z-index:1;height:100%;display:flex;align-items:center;justify-content:center;gap:12px;
  padding:0 16px;font:500 .86rem/1 "Inter",system-ui,sans-serif;letter-spacing:-.005em;color:#fff;white-space:nowrap}
.op-promo .op-flamme{display:inline-flex;align-items:center;gap:7px;font-family:"JetBrains Mono",ui-monospace,monospace;
  font-size:.66rem;letter-spacing:.14em;text-transform:uppercase;padding:5px 9px;border-radius:100px;
  background:rgba(255,255,255,.12);border:1px solid rgba(255,255,255,.16)}
.op-promo .op-flamme i{width:7px;height:7px;border-radius:50%;background:#8ED3FF;box-shadow:0 0 0 0 rgba(142,211,255,.7);animation:op-pouls 1.8s infinite}
.op-promo b{font-weight:700}
.op-promo s{opacity:.6;font-weight:400}
.op-promo .op-cpt{font-variant-numeric:tabular-nums;font-weight:600;padding:4px 9px;border-radius:7px;background:rgba(255,255,255,.1)}
.op-promo .op-go{font-weight:700;display:inline-flex;align-items:center;gap:5px;border-bottom:1px solid rgba(255,255,255,.4);padding-bottom:1px}
.op-promo .op-court{display:none}
@media(max-width:860px){
  .op-promo .op-long{display:none}
  .op-promo .op-court{display:inline}
  .op-promo .op-flamme{display:none}
  .op-promo a{gap:9px;font-size:.8rem}
}
.op-promo .op-lim{font-weight:400;opacity:.85}
@media(max-width:440px){.op-promo .op-lim{display:none}.op-promo a{gap:8px;padding:0 10px}}
@media(max-width:340px){.op-promo .op-cpt{display:none}}

html.op-promo-on .op-promo{display:block}
html.op-promo-on body{padding-top:var(--op-h)}
html.op-promo-on .nav{top:var(--op-h);transition:top .45s var(--op-ease),background .5s var(--op-ease),backdrop-filter .5s,box-shadow .5s,padding .5s var(--op-ease)}
html.op-promo-on.op-cache .op-promo{transform:translateY(-100%)}
html.op-promo-on.op-cache .nav{top:0}

/* ---------- Téléphone dans l'en-tête ---------- */
.op-tel{display:inline-flex;align-items:center;gap:10px;padding:6px 14px 6px 6px;border-radius:100px;
  background:rgba(255,255,255,.78);border:1px solid rgba(16,26,58,.1);color:var(--op-encre);
  -webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);white-space:nowrap;flex:none;
  transition:transform .4s var(--op-ease),box-shadow .4s var(--op-ease),border-color .3s}
.op-tel:hover{transform:translateY(-2px);box-shadow:0 12px 28px -14px rgba(46,127,234,.55);border-color:rgba(46,127,234,.35)}
.op-tel-ic{position:relative;width:32px;height:32px;border-radius:50%;display:grid;place-items:center;background:var(--op-deg);flex:none}
.op-tel-ic svg{width:15px;height:15px;fill:none;stroke:#fff;stroke-width:2;stroke-linecap:round;stroke-linejoin:round}
.op-tel-ic::after{content:"";position:absolute;right:-1px;top:-1px;width:9px;height:9px;border-radius:50%;background:#22C55E;border:2px solid #fff;animation:op-pouls-v 2s infinite}
.op-tel-txt{display:flex;flex-direction:column;line-height:1.08}
.op-tel-txt small{font:500 .64rem/1.2 "Inter",sans-serif;color:#63708C;letter-spacing:.01em}
.op-tel-txt b{font:700 .95rem/1.15 "Schibsted Grotesk","Inter",sans-serif;letter-spacing:-.01em;font-variant-numeric:tabular-nums}
.nav-in{gap:14px}
.nav-in > .op-tel{margin-left:auto}
.nav-in > .op-tel + .btn{margin-left:0}
@media(min-width:1041px){.nav-in > .nav-liens{margin:0 auto}.nav-in > .op-tel{margin-left:0}}
@media(max-width:1180px) and (min-width:1041px){.nav-liens{gap:16px}.nav-liens a{font-size:.85rem}}
@media(max-width:1040px){
  .op-tel{padding:5px 12px 5px 5px}
  .op-tel-txt small{display:none}
}
@media(max-width:620px){
  .op-tel{padding:4px 11px 4px 4px;gap:8px}
  .op-tel-ic{width:30px;height:30px}
  .op-tel-txt b{font-size:.86rem}
}
@media(max-width:369px){
  .op-tel{padding:4px}
  .op-tel-txt{display:none}
}
.nav.ouvert .op-tel{opacity:0;pointer-events:none}
/* le flou d'arrière-plan de la barre collée enfermait le menu mobile dans 60 px de haut */
.nav.ouvert{-webkit-backdrop-filter:none!important;backdrop-filter:none!important}

@keyframes op-pouls{0%{box-shadow:0 0 0 0 rgba(142,211,255,.6)}70%{box-shadow:0 0 0 8px rgba(142,211,255,0)}100%{box-shadow:0 0 0 0 rgba(142,211,255,0)}}
@keyframes op-pouls-v{0%{box-shadow:0 0 0 0 rgba(34,197,94,.6)}70%{box-shadow:0 0 0 7px rgba(34,197,94,0)}100%{box-shadow:0 0 0 0 rgba(34,197,94,0)}}

/* ---------- Chat WhatsApp ---------- */
.op-chat{position:fixed;right:24px;bottom:24px;z-index:120;font-family:"Inter",system-ui,sans-serif;color:var(--op-encre)}
.op-bouton{position:relative;width:62px;height:62px;border-radius:50%;border:0;cursor:pointer;padding:0;
  background:var(--op-wa);box-shadow:0 14px 34px -10px rgba(18,140,75,.65),0 0 0 0 rgba(37,211,102,.5);
  display:grid;place-items:center;transition:transform .45s var(--op-ease);animation:op-halo 2.6s infinite}
.op-bouton:hover{transform:scale(1.07)}
.op-bouton svg{width:32px;height:32px;fill:#fff}
.op-bouton .op-x{display:none;width:22px;height:22px;stroke:#fff;stroke-width:2.4;fill:none;stroke-linecap:round}
.op-chat.ouvert .op-bouton{animation:none;background:var(--op-encre);box-shadow:0 14px 30px -12px rgba(16,26,58,.6)}
.op-chat.ouvert .op-bouton .op-wa{display:none}
.op-chat.ouvert .op-bouton .op-x{display:block}
.op-badge{position:absolute;top:-3px;right:-3px;min-width:21px;height:21px;padding:0 5px;border-radius:11px;background:#FF3B30;color:#fff;
  font:700 .72rem/21px "Inter",sans-serif;text-align:center;border:2px solid #fff;transform:scale(0);transition:transform .35s var(--op-ease)}
.op-chat.op-notif .op-badge{transform:scale(1)}
.op-chat.ouvert .op-badge{transform:scale(0)}
@keyframes op-halo{0%{box-shadow:0 14px 34px -10px rgba(18,140,75,.65),0 0 0 0 rgba(37,211,102,.45)}70%{box-shadow:0 14px 34px -10px rgba(18,140,75,.65),0 0 0 16px rgba(37,211,102,0)}100%{box-shadow:0 14px 34px -10px rgba(18,140,75,.65),0 0 0 0 rgba(37,211,102,0)}}

/* bulle d'accroche : l'assistante apparaît à côté de la pastille WhatsApp */
.op-accroche{position:absolute;right:72px;bottom:-4px;display:flex;align-items:flex-end;gap:0;cursor:pointer;
  opacity:0;transform:translateY(14px) scale(.95);transform-origin:bottom right;pointer-events:none;
  transition:opacity .45s var(--op-ease),transform .6s cubic-bezier(.34,1.4,.64,1)}
.op-chat.accroche .op-accroche{opacity:1;transform:none;pointer-events:auto}
.op-chat.ouvert .op-accroche{opacity:0;pointer-events:none}
.op-acc-bulle{position:relative;width:228px;margin:0 -6px 64px 0;padding:13px 15px 12px;border-radius:18px 18px 4px 18px;background:#fff;
  box-shadow:0 22px 46px -18px rgba(16,26,58,.42),0 0 0 1px rgba(16,26,58,.06);font-size:.88rem;line-height:1.42;color:#34405C;z-index:2}
.op-acc-bulle b{display:block;color:var(--op-encre);font-weight:700;font-size:.95rem;margin-bottom:2px}
.op-acc-cta{display:inline-flex;align-items:center;gap:5px;margin-top:8px;font-weight:700;font-size:.8rem;color:#128C4B}
.op-acc-cta::before{content:"";width:7px;height:7px;border-radius:50%;background:#22C55E;box-shadow:0 0 0 3px rgba(34,197,94,.2)}
.op-hors .op-acc-cta::before{background:#F5A524;box-shadow:0 0 0 3px rgba(245,165,36,.2)}
.op-assistante{position:relative;flex:none;width:104px;height:124px;filter:drop-shadow(0 16px 24px rgba(30,106,214,.35))}
.op-assistante::before{content:"";position:absolute;left:4px;right:4px;bottom:0;height:96px;border-radius:50%;background:var(--op-deg)}
.op-assistante img{position:absolute;left:0;bottom:0;width:104px;height:auto;display:block;
  -webkit-mask:linear-gradient(#000 0 0) top/100% 52% no-repeat,radial-gradient(circle at 50% calc(100% - 48px),#000 47px,transparent 48px);
  mask:linear-gradient(#000 0 0) top/100% 52% no-repeat,radial-gradient(circle at 50% calc(100% - 48px),#000 47px,transparent 48px)}
.op-accroche .op-fermer-acc{position:absolute;top:-10px;left:-10px;z-index:3;width:24px;height:24px;border-radius:50%;border:0;cursor:pointer;
  background:#fff;box-shadow:0 4px 12px rgba(16,26,58,.22);color:#63708C;font-size:15px;line-height:24px;padding:0}

/* avatar */
.op-av{position:relative;flex:none;width:40px;height:40px;border-radius:50%;background:var(--op-deg);display:grid;place-items:center;overflow:hidden}
.op-av img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;object-position:50% 30%;display:block}
.op-av span{font:800 1.05rem/1 "Schibsted Grotesk",sans-serif;color:#fff}
.op-av-wrap{position:relative;flex:none}
.op-av-wrap::after{content:"";position:absolute;right:0;bottom:1px;width:11px;height:11px;border-radius:50%;background:#22C55E;border:2px solid #fff}
.op-hors .op-av-wrap::after{background:#F5A524}

/* panneau */
.op-panneau{position:absolute;right:0;bottom:76px;width:340px;max-height:min(540px,calc(100vh - 130px));display:flex;flex-direction:column;
  border-radius:22px;overflow:hidden;background:#EFEAE2;
  box-shadow:0 40px 80px -24px rgba(16,26,58,.5),0 0 0 1px rgba(16,26,58,.06);
  opacity:0;transform:translateY(16px) scale(.97);transform-origin:bottom right;pointer-events:none;visibility:hidden;
  transition:opacity .4s var(--op-ease),transform .5s var(--op-ease),visibility .5s}
.op-chat.ouvert .op-panneau{opacity:1;transform:none;pointer-events:auto;visibility:visible}
.op-tete{position:relative;display:flex;align-items:center;gap:11px;padding:12px 12px 12px 14px;color:#fff;
  background:linear-gradient(120deg,#0F5E3A 0%,#128C4B 55%,#1FAF5E 100%)}
.op-tete::after{content:"";position:absolute;left:0;right:0;bottom:-1px;height:3px;background:var(--op-deg);opacity:.9}
.op-tete .op-av-wrap::after{border-color:#128C4B}
.op-tete-txt{flex:1;min-width:0}
.op-tete-txt b{display:block;font:700 1rem/1.2 "Schibsted Grotesk","Inter",sans-serif;letter-spacing:-.01em}
.op-tete-txt small{display:flex;align-items:center;gap:6px;font-size:.76rem;opacity:.9;margin-top:2px}
.op-tete-txt small i{width:7px;height:7px;border-radius:50%;background:#7CFFB2}
.op-hors .op-tete-txt small i{background:#FFD27A}
.op-fermer{width:34px;height:34px;border-radius:50%;border:0;cursor:pointer;background:rgba(255,255,255,.14);color:#fff;display:grid;place-items:center;padding:0}
.op-fermer svg{width:16px;height:16px;stroke:#fff;stroke-width:2.2;fill:none;stroke-linecap:round}
.op-fil{flex:1;overflow-y:auto;padding:14px 12px 8px;display:flex;flex-direction:column;gap:8px;
  background-color:#EFEAE2;
  background-image:radial-gradient(rgba(16,26,58,.05) 1px,transparent 1.2px);background-size:16px 16px}
.op-jour{align-self:center;font-size:.7rem;font-weight:600;color:#54656F;background:rgba(255,255,255,.85);padding:4px 10px;border-radius:7px;margin-bottom:4px;box-shadow:0 1px 1px rgba(0,0,0,.05)}
.op-msg{max-width:86%;padding:8px 11px 7px;border-radius:12px;font-size:.87rem;line-height:1.42;color:#111B21;box-shadow:0 1px 1px rgba(0,0,0,.08);
  animation:op-msg .4s var(--op-ease) both;word-wrap:break-word}
.op-msg time{display:block;text-align:right;font-size:.66rem;color:#667781;margin-top:3px}
.op-msg.lui{align-self:flex-start;background:#fff;border-top-left-radius:4px}
.op-msg.moi{align-self:flex-end;background:#D9FDD3;border-top-right-radius:4px}
.op-msg.moi time::after{content:" ✓✓";color:#53BDEB;letter-spacing:-.15em}
.op-msg b{font-weight:700}
@keyframes op-msg{from{opacity:0;transform:translateY(8px) scale(.98)}to{opacity:1;transform:none}}
.op-ecrit{align-self:flex-start;background:#fff;border-radius:12px;border-top-left-radius:4px;padding:12px 14px;display:flex;gap:4px;box-shadow:0 1px 1px rgba(0,0,0,.08)}
.op-ecrit i{width:7px;height:7px;border-radius:50%;background:#8696A0;animation:op-point 1.2s infinite}
.op-ecrit i:nth-child(2){animation-delay:.15s}.op-ecrit i:nth-child(3){animation-delay:.3s}
@keyframes op-point{0%,60%,100%{transform:translateY(0);opacity:.5}30%{transform:translateY(-4px);opacity:1}}
.op-choix{display:flex;flex-wrap:wrap;gap:7px;margin:4px 0 2px;animation:op-msg .45s var(--op-ease) both}
.op-choix button{border:1px solid rgba(18,140,75,.35);background:#fff;color:#0F5E3A;border-radius:100px;padding:7px 11px;
  font:600 .78rem/1.2 "Inter",sans-serif;cursor:pointer;transition:background .25s,color .25s,transform .3s var(--op-ease)}
.op-choix button:hover{background:#128C4B;color:#fff;transform:translateY(-1px)}
.op-saisie{display:flex;align-items:flex-end;gap:8px;padding:8px 8px 8px 10px;background:#F0F2F5}
.op-saisie textarea{flex:1;resize:none;border:0;outline:0;border-radius:22px;padding:10px 14px;min-height:42px;max-height:96px;
  font:400 .9rem/1.35 "Inter",sans-serif;color:#111B21;background:#fff;box-shadow:0 1px 1px rgba(0,0,0,.05)}
.op-envoyer{width:42px;height:42px;border-radius:50%;border:0;cursor:pointer;background:var(--op-wa);display:grid;place-items:center;flex:none;padding:0;
  transition:transform .3s var(--op-ease),background .3s}
.op-envoyer:hover{transform:scale(1.06);background:#1EBE5A}
.op-envoyer svg{width:20px;height:20px;fill:#fff;margin-left:2px}
.op-note{margin:0;padding:0 12px 8px;background:#F0F2F5;font-size:.7rem;line-height:1.4;color:#667781;text-align:center}
.op-note svg{width:11px;height:11px;vertical-align:-1px;fill:#667781;margin-right:3px}

/* ---------- Barre d'actions mobile ---------- */
.op-barre{display:none}
@media(max-width:760px){
  .op-barre{position:fixed;left:0;right:0;bottom:0;z-index:110;display:grid;grid-template-columns:1fr 1fr 1.15fr;gap:8px;
    padding:9px 10px calc(9px + env(safe-area-inset-bottom));background:rgba(255,255,255,.94);
    -webkit-backdrop-filter:saturate(180%) blur(18px);backdrop-filter:saturate(180%) blur(18px);
    box-shadow:0 -1px 0 rgba(16,26,58,.08),0 -12px 30px -18px rgba(16,26,58,.3);
    transform:translateY(110%);transition:transform .5s var(--op-ease)}
  html.op-barre-on .op-barre{transform:none}
  .op-barre a,.op-barre button{display:flex;align-items:center;justify-content:center;gap:7px;height:48px;border-radius:14px;border:0;cursor:pointer;
    font:700 .88rem/1 "Inter",sans-serif;letter-spacing:-.01em;text-decoration:none;padding:0 6px}
  .op-barre svg{width:18px;height:18px;flex:none}
  .op-b-tel{background:var(--op-encre);color:#fff}
  .op-b-tel svg{fill:none;stroke:#fff;stroke-width:2.1;stroke-linecap:round;stroke-linejoin:round}
  .op-b-wa{background:var(--op-wa);color:#fff}
  .op-b-wa svg{fill:#fff}
  .op-b-devis{background:var(--op-deg);color:#fff}
  body{padding-bottom:calc(70px + env(safe-area-inset-bottom))}
  .op-chat{right:12px;bottom:calc(80px + env(safe-area-inset-bottom))}
  .op-chat .op-bouton{display:none}
  .op-accroche{right:0;bottom:0}
  .op-acc-bulle{width:min(212px,calc(100vw - 130px));margin-bottom:58px;font-size:.84rem}
  .op-assistante{width:96px;height:114px}
  .op-assistante img{width:96px}
  .op-panneau{position:fixed;left:auto;right:12px;bottom:calc(76px + env(safe-area-inset-bottom));width:min(330px,calc(100vw - 24px));
    max-height:none;height:min(66vh,500px);border-radius:20px;transform:translateY(20px) scale(.97)}
  .op-chat.ouvert .op-panneau{transform:none}
}
@media(prefers-reduced-motion:reduce){
  .op-promo::after,.op-bouton,.op-tel-ic::after,.op-promo .op-flamme i{animation:none}
}
@media print{.op-promo,.op-chat,.op-barre{display:none!important}html.op-promo-on body{padding-top:0}}

/* ---------- Réseaux sociaux (pied de page + menu mobile) ---------- */
.op-reseaux{display:flex;align-items:center;gap:8px;margin-top:20px}
.op-reseaux span{font:500 .72rem/1 "JetBrains Mono",ui-monospace,monospace;letter-spacing:.12em;text-transform:uppercase;opacity:.55;margin-right:4px}
.op-reseaux a{width:36px;height:36px;border-radius:11px;display:grid;place-items:center;padding:0!important;
  background:rgba(110,125,160,.12);border:1px solid rgba(110,125,160,.2);color:inherit;opacity:.85;
  transition:transform .35s var(--op-ease),background .3s,opacity .3s,border-color .3s}
.op-reseaux a:hover{opacity:1;transform:translateY(-2px);background:var(--op-deg);border-color:transparent;color:#fff}
.op-reseaux svg{width:17px;height:17px;fill:none;stroke:currentColor;stroke-width:1.8}
.op-reseaux svg .pt{fill:currentColor;stroke:none}
.op-reseaux svg .pl{fill:currentColor;stroke:none}
.menu-mobile .op-reseaux{margin-top:22px;justify-content:center;color:#101A3A}

/* ---------- Visuels des pages intérieures ---------- */
.op-visuel{position:relative;margin:0;border-radius:24px;overflow:hidden;background:#fff;
  box-shadow:0 40px 80px -40px rgba(30,106,214,.45),0 0 0 1px rgba(46,127,234,.12)}
.op-visuel img{display:block;width:100%;height:auto}
.op-bandeau{margin-top:34px;width:100%;grid-column:1/-1}
.op-bandeau img{height:auto}
.op-visuel figcaption{position:absolute;left:16px;bottom:16px;padding:9px 13px;border-radius:12px;background:rgba(255,255,255,.88);
  -webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);font-size:.84rem;font-weight:600;color:#101A3A}
@media(max-width:760px){.op-visuel{border-radius:18px}}
.op-cartes{display:grid;grid-template-columns:repeat(2,1fr);gap:18px}
.op-carte{position:relative;display:block;border-radius:22px;overflow:hidden;background:#fff;
  box-shadow:0 0 0 1px rgba(16,26,58,.08),0 30px 60px -40px rgba(30,106,214,.5);transition:transform .5s var(--op-ease),box-shadow .5s var(--op-ease)}
.op-carte:hover{transform:translateY(-5px);box-shadow:0 0 0 1px rgba(46,127,234,.35),0 40px 70px -40px rgba(30,106,214,.6)}
.op-carte img{display:block;width:100%;height:auto;transition:transform 1.2s var(--op-ease)}

.op-carte span{display:block;padding:14px 18px;font:700 .92rem/1.2 "Inter",sans-serif;color:#101A3A;border-top:1px solid rgba(16,26,58,.07)}
@media(max-width:760px){.op-cartes{grid-template-columns:1fr;gap:14px}}

/* ---------- Menu mobile fluide ----------
   L'en-tête ne bouge plus à l'ouverture (plus de saut ni d'animation de position) :
   seul le panneau apparaît, en opacité + translation, accélérées par la carte graphique. */
.nav.ouvert{z-index:130;transition:none!important}
.menu-mobile{will-change:opacity,transform;transform:translate3d(0,-10px,0)!important;
  transition:opacity .26s cubic-bezier(.2,.7,.2,1),transform .3s cubic-bezier(.2,.7,.2,1),visibility 0s linear .3s!important;
  overscroll-behavior:contain;-webkit-overflow-scrolling:touch;backface-visibility:hidden}
.nav.ouvert .menu-mobile{transform:translate3d(0,0,0)!important;transition:opacity .26s cubic-bezier(.2,.7,.2,1),transform .3s cubic-bezier(.2,.7,.2,1),visibility 0s!important}
html.op-promo-on:not(.op-cache) .nav .menu-mobile{padding-top:calc(86px + var(--op-h))}
.nav.ouvert .menu-mobile .lien{transition-duration:.3s!important}
