/* Retours visuels communs pour la souris, le clavier et le toucher. */
:is(.bouton-contact,.contact-submit,.home-inline-cta a,.coords-actions a,.nav-link,.nav-dropdown-link,.filter-btn,.blog-cat-btn,.service-link,.faq-question,.site-footer a,.hero-project figcaption a) {
  transition:background-color 180ms ease, color 180ms ease, border-color 180ms ease, box-shadow 180ms ease;
}
.service-link::after,.hero-project figcaption a > span { transition:transform 180ms ease, background-color 180ms ease, color 180ms ease; }
.gallery-link img,.blog-card img { transition:transform 240ms ease; }
.realisation-overlay { transition:opacity 180ms ease; }
:is(.service-link,.gallery-link,.blog-card a,.blog-cat-btn,.faq-question,.coords-actions a,.coords-list a,.hero-project figcaption a,.floating-call-btn):focus-visible {
  outline:3px solid #bd5000; outline-offset:4px;
}
:is(.main-nav,.site-footer) :is(a,button):focus-visible { outline-color:#ffac70; }
.faq-question:focus-visible { outline-offset:-4px; background:#fff2e8; }
.realisation-card:focus-within .realisation-overlay { opacity:1; }
.realisation-service { background:#ff7a20; color:#09243c; }
.floating-call-btn { animation:none; background:#ff7a20; box-shadow:0 5px 18px #09243c26; transition:width 180ms ease, gap 180ms ease, background-color 180ms ease, box-shadow 180ms ease; }
.floating-call-btn svg { fill:#09243c; }
.floating-call-number { color:#09243c; transition:opacity 180ms ease, max-width 180ms ease; }
.floating-call-btn:focus-visible { width:200px; gap:10px; padding-left:4px; }
.floating-call-btn:focus-visible .floating-call-number { opacity:1; max-width:160px; }
@media (hover:hover) and (pointer:fine) {
  .bouton-contact.primary:hover,.bouton-contact.phone-btn:hover,.contact-submit:not(:disabled):hover,.home-inline-cta a:hover,.coords-actions .coords-call:hover,.main-nav a.nav-link.nav-cta:hover {
    background:#ff963e; color:#09243c; border-color:#ffb36f;
    box-shadow:inset 0 1px 0 #ffffff66, 0 6px 18px #09243c26, 0 0 0 3px #ff7a2018;
    transform:none;
  }
  .bouton-contact.ghost:hover { background:#ffffff20; border-color:#fff; box-shadow:inset 0 0 0 1px #ffffff26,0 5px 15px #00152e22; }
  .about-team-actions .bouton-contact.ghost:hover,.coords-actions .coords-email:hover { background:#e1eaf2; border-color:#93aebf; color:#09243c; box-shadow:0 4px 12px #09243c12; }
  .main-nav .nav-link:not(.nav-cta):hover { background:#1b405e; color:#fff; box-shadow:inset 0 -2px 0 #ff9a50; }
  .nav-dropdown-link:hover { background:#224866; color:#fff; box-shadow:inset 3px 0 0 #ff9a50; }
  .site-footer .footer-section a:hover,.footer-legal-links a:hover { background:#1b3e59; color:#fff; text-decoration:underline; text-decoration-color:#ff9a50; text-underline-offset:4px; }
  .service-compact-card:hover { border-color:#d9a882; box-shadow:0 8px 22px #09243c14; }
  .service-link:hover,.hero-project figcaption a:hover { color:#914000; text-decoration:underline; text-underline-offset:4px; }
  .service-link:hover::after { background:#09243c; color:#ffab6d; transform:translateX(3px); }
  .hero-project figcaption a:hover > span { transform:translate(2px,-2px); }
  .filter-btn:not(.active):hover,.blog-cat-btn:not(.active):hover { background:#fff0e4; color:#09243c; border-color:#d9a882; box-shadow:0 2px 8px #09243c0d; }
  .filter-btn.active:hover { background:#1c4666; color:#fff; border-color:#1c4666; }
  .faq-question:hover { background:#fff2e8; }
  .gallery-link:hover img,.realisation-card:hover img,.blog-card:hover img { transform:scale(1.025); }
  .gallery-link:hover { cursor:zoom-in; }
  .coords-list a:hover { color:#914000; text-decoration:underline; text-underline-offset:4px; }
  .floating-call-btn:hover { background:#ff963e; box-shadow:0 8px 24px #09243c33; }
}
:is(.bouton-contact,.contact-submit,.home-inline-cta a,.coords-actions a,.main-nav a.nav-link.nav-cta):active { box-shadow:inset 0 2px 5px #09243c26; }
.contact-submit:disabled,.contact-submit:disabled:hover { background:#ff7a20; color:#09243c; border-color:#ff963e; box-shadow:none; transform:none; cursor:wait; }
@media (hover:none), (pointer:coarse) {
  .realisation-overlay { opacity:1; }
  .realisation-card:hover img,.blog-card:hover img { transform:none; }
}
@media (prefers-reduced-motion:reduce) {
  :is(.bouton-contact,.contact-submit,.home-inline-cta a,.coords-actions a,.nav-link,.nav-dropdown-link,.filter-btn,.blog-cat-btn,.service-link,.faq-question,.site-footer a,.hero-project figcaption a,.floating-call-btn,.floating-call-number),.service-link::after,.hero-project figcaption a > span,.gallery-link img,.blog-card img,.realisation-overlay { transition:none !important; animation:none !important; }
  .service-link:hover::after,.hero-project figcaption a:hover > span,.gallery-link:hover img,.realisation-card:hover img,.blog-card:hover img { transform:none; }
}
