/* Panneau de choix cookies, non modal (finitions du rendu v1.2, coordination carte/CTA final v1.2.1).
   Ordinateur (1024 px et plus) : panneau compact fixe en bas à droite, 360 px ; sur les pages à carte latérale, il passe
   en bas à gauche quand les actions du bloc final passent derrière lui (voir plus bas).
   Mobile et tablette : panneau compact fixe au-dessus de la barre d'appel.
   Rien n'est réservé en largeur et le héros n'est pas décalé. Tant que le panneau est ouvert :
   - une réserve verticale de la hauteur du panneau est ajoutée en fin de page, pour que les dernières actions
     puissent passer au-dessus du panneau ;
   - scroll-padding-bottom tient compte du panneau : une cible atteinte au clavier ou par ancre est amenée au-dessus.
   La hauteur réelle du panneau est publiée par assets/cookie-panneau-ui.js dans --cookie-panneau-h
   (présentation seule ; valeur de repli si le script manque).
   Petites hauteurs : le texte défile dans le panneau, Refuser/Accepter restent toujours visibles.
   Textes, attributs et logique : ceux de consent.js, inchangés. */
.cookie-panel{position:fixed;z-index:29;right:24px;bottom:24px;width:min(360px,calc(100vw - 48px));max-height:calc(100vh - 132px);display:flex;flex-direction:column;background:#f0f7fa;border:1px solid #b8ccd6;border-radius:14px;box-shadow:0 18px 40px -18px rgba(21,41,58,.55);color:#233945}
.cookie-panel[hidden],.cookie-panel [hidden]{display:none!important}
.cookie-inner{display:flex;flex-direction:column;min-height:0;padding:14px 16px}
.cookie-inner>div:first-child{min-height:0;overflow:auto;font-size:14.5px;line-height:1.45}
.cookie-panel h2{font:700 17px/1.3 Manrope,sans-serif;margin:0 0 5px}
.cookie-panel p{font-size:14.5px;line-height:1.45;margin:0}
.cookie-panel .cookie-lien{margin-top:6px}
.cookie-panel a{color:#244d62;text-decoration:underline}
.cookie-panel .cookie-current{font-size:13.5px;margin-top:6px}
.cookie-panel .cookie-current:empty{display:none}
.cookie-actions{flex:0 0 auto;display:flex;flex-wrap:wrap;gap:10px;margin-top:12px}
.cookie-actions button{flex:1 1 0;min-width:0;min-height:44px;padding:9px 14px;border:1px solid #284754;border-radius:7px;background:white;color:#203b47;font-family:inherit;font-size:16px;font-weight:600;line-height:1.2;cursor:pointer}
.cookie-actions .cookie-close{flex:1 1 100%}
.cookie-actions button:hover{background:#dcecf3}
.cookie-actions button:focus-visible,.cookie-panel a:focus-visible,[data-cookie-settings]:focus-visible{outline:3px solid #17648b;outline-offset:3px}
[data-cookie-settings]{font:inherit;color:inherit;text-decoration:underline;background:transparent;border:0;padding:0;cursor:pointer;text-align:left}
/* Réserve verticale limitée à la hauteur du panneau, seulement tant qu'il est ouvert */
html:has(#cookie-panel:not([hidden])){scroll-padding-bottom:calc(var(--cookie-panneau-h,260px) + 40px)}
body:has(#cookie-panel:not([hidden]))::after{content:"";display:block;height:calc(var(--cookie-panneau-h,260px) + 40px);background:var(--ciel-voile,#f3f8fb)}
/* Ordinateur, pages avec carte latérale (services et guides) — v1.2.1.
   La colonne de droite porte la carte latérale collée, puis le bloc final dont le bouton Appeler remplace la carte
   (carte-laterale.js). En bas à droite, le panneau masquait ce bouton au moment où la carte se retirait.
   - Par défaut, le panneau reste en bas à droite, comme en v1.2 : il ne recouvre ni les boutons du héros ni la carte collée.
   - Tant que les actions du bloc final (.contact-actions, de ses boutons à ses mentions) croisent la hauteur occupée
     par le panneau, cookie-panneau-ui.js pose la classe cookie-panneau-fin sur <html> : le panneau passe en bas à GAUCHE et
     libère la colonne de droite (bouton Appeler final, « Demander un devis »). Il revient à droite quand ces actions
     en sortent : en remontant, ou plus bas, au pied de page (dont l'appel, à gauche, reste ainsi dégagé).
   - Sous 680 px de haut, il reste à gauche en permanence, comme en v1.2.
   Accueil, devis et pages d'information ne sont pas concernés (pas de carte latérale). */
@media (min-width:1024px) and (max-height:680px){
  body:has(aside.cote) .cookie-panel{right:auto;left:24px}
}
@media (min-width:1024px){
  html.cookie-panneau-fin body:has(aside.cote) .cookie-panel{right:auto;left:24px}
}
@media (max-width:1023px){
  .cookie-panel{left:auto;right:8px;width:min(560px,calc(100vw - 16px));bottom:calc(var(--barre-mobile,0px) + 8px);max-height:min(52vh,360px);border-radius:12px}
  .cookie-inner{padding:10px 14px 12px}
  .cookie-panel h2{font-size:16.5px;margin-bottom:4px}
  .cookie-panel h2+p,.cookie-panel .cookie-lien{display:inline}
  .cookie-panel .cookie-lien{margin:0 0 0 .3em}
  .cookie-panel .cookie-current{display:block}
  .cookie-actions{margin-top:10px}
  html:has(#cookie-panel:not([hidden])){scroll-padding-bottom:calc(var(--cookie-panneau-h,200px) + 90px)}
  body:has(#cookie-panel:not([hidden]))::after{height:calc(var(--cookie-panneau-h,200px) + 16px)}
}
/* Faible hauteur (téléphone en paysage, zoom fort) : texte à gauche défilant, actions à droite */
@media (max-height:520px){
  .cookie-panel{max-height:calc(100vh - var(--barre-mobile,0px) - 24px)}
  .cookie-inner{flex-direction:row;align-items:center;gap:14px}
  .cookie-inner>div:first-child{flex:1 1 auto;max-height:calc(100vh - var(--barre-mobile,0px) - 48px)}
  .cookie-actions{flex:0 0 150px;flex-direction:column;flex-wrap:nowrap;margin-top:0}
  .cookie-actions button{flex:0 0 auto}
}
