/* CHEZE : styles communs */
html { -webkit-text-size-adjust: 100%; }
body { margin: 0; background: #F6F4EE; color: #434B52; font-family: 'League Spartan', sans-serif; -webkit-font-smoothing: antialiased; }
a { color: #434B52; }
a:hover { color: #C8824F; }
img { max-width: 100%; }
[hidden] { display: none !important; }
:focus-visible { outline: 2px solid #C8824F; outline-offset: 3px; }
input:focus-visible, textarea:focus-visible, select:focus-visible { outline: none; }

/* En-tête : version large (>= 1180 px) et version étroite */
.hd-wide { display: flex; }
.hd-narrow, .hd-narrow-block { display: none; }
@media (max-width: 1179px) {
  .hd-wide { display: none; }
  .hd-narrow { display: flex; }
  #menu { display: flex; }
  .bar { display: grid; }
}
#menu[hidden] { display: none !important; }
.cookie { display: flex; bottom: 20px; }
@media (max-width: 1179px) { .cookie { bottom: 84px; } }

/* Survols et états actifs */
[data-btn]:active { transform: scale(0.97); }
/* Survol simple : le texte reste fixe, le bouton s'assombrit légèrement */
button[data-btn], a[data-btn] { transition-property: filter, background-color, box-shadow, color, transform; }
button[data-btn]:hover, a[data-btn]:not(.hd-link):hover { filter: brightness(0.93); }
.hd-link:hover { color: #C8824F !important; }
.btn-dark:hover { background: #2F353A !important; }
.btn-light:hover { background: #fff !important; color: #2F353A !important; }
.btn-ghost:hover { box-shadow: inset 0 0 0 1px #F1EFE7 !important; }
.wg:hover { background: rgba(67, 75, 82, 0.07) !important; }
.wg-dark:hover { background: #2F353A !important; }
.lnk:hover { color: #C8824F !important; }
.lnk-reset:hover { color: #434B52 !important; }
.ft a:hover { color: #434B52 !important; }
.cardlink:hover { transform: scale(1.012); color: #434B52 !important; }
.fld:focus { border-color: #C8824F !important; }

/* Simulateur */
.sim-btn { font-family: inherit; font-size: 17px; font-weight: 500; text-align: left; padding: 15px 18px 13px; border-radius: 14px; border: none; cursor: pointer; background: #fff; color: #434B52; box-shadow: inset 0 0 0 1px rgba(67, 75, 82, 0.14); transition: background .25s, color .25s; }
.sim-btn.on { background: #434B52; color: #F6F4EE; box-shadow: none; }
.sim-btn:disabled { color: #B4B8BB; cursor: default; }
.sim-list { position: absolute; left: 0; right: 0; top: 100%; margin: 6px 0 0; padding: 6px; list-style: none; background: #fff; border-radius: 14px; box-shadow: 0 14px 34px rgba(43, 49, 53, 0.2), inset 0 0 0 1px rgba(67, 75, 82, 0.12); max-height: 280px; overflow: auto; z-index: 20; }
.sim-opt, .sim-none { padding: 10px 12px 8px; border-radius: 10px; font-size: 16px; line-height: 1.3; color: #434B52; }
.sim-opt { cursor: pointer; }
.sim-opt:hover, .sim-opt[aria-selected="true"] { background: #ECE9E1; }
.sim-none { color: #6B7279; }
#sim-ville:disabled { opacity: 0.6; cursor: default; }

/* Cartes d'appel (Dépannage, Contact) */
a[data-call] { transition: background-color .45s cubic-bezier(.2, .7, .2, 1), transform .35s cubic-bezier(.2, .7, .2, 1), box-shadow .45s; }
a[data-call]:hover { background: #C8824F !important; color: #2B3135; transform: translateY(-3px); box-shadow: 0 18px 40px rgba(47, 53, 58, 0.18); }
a[data-call] [data-call-label] { transition: color .45s; }
a[data-call]:hover [data-call-label] { color: #2B3135; }
a[data-call] [data-call-dot] { transition: background-color .45s, transform .55s cubic-bezier(.2, .7, .2, 1); }
a[data-call]:hover [data-call-dot] { background: #2F353A !important; transform: scale(1.12) rotate(-14deg); }

@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after { transition-duration: 0.01ms !important; animation-duration: 0.01ms !important; }
}

/* Message du moment : barre fine au-dessus de l'en-tete (back-office) */
:root { --bo-bar-h: 40px; }
.bo-bar { position: fixed; top: 0; left: 0; right: 0; z-index: 60; box-sizing: border-box; background: #2F353A; color: #F1EFE7; font-size: 14px; line-height: 1.35; padding: 10px 46px 9px 16px; text-align: center; }
.bo-dot { display: inline-block; width: 7px; height: 7px; border-radius: 50%; margin-right: 9px; vertical-align: 1px; }
.bo-close { position: absolute; right: 8px; top: 50%; transform: translateY(-50%); width: 30px; height: 30px; border: none; background: transparent; color: #C9CCCD; font-size: 20px; line-height: 1; cursor: pointer; border-radius: 50%; }
.bo-close:hover { background: rgba(241, 239, 231, 0.12); color: #F1EFE7; }
html:has(.bo-bar:not([hidden])) .hd { top: var(--bo-bar-h) !important; }
html:has(.bo-bar:not([hidden])) main { margin-top: var(--bo-bar-h); }
html:has(.bo-bar:not([hidden])) #menu { top: calc(60px + var(--bo-bar-h)) !important; }