:root { --motion-ease: cubic-bezier(.22, 1, .36, 1); }

/* Entrances are progressively enhanced in JS; content is visible without it. */
.hero h1,.hero-intro,.hero-actions { animation: none; }
.entrance-item.entrance-pending { opacity: 0; }
.service-card > .feature-icon,.process-grid .feature-icon { transition: color 220ms; }
.customer-logo img { transition: filter 240ms; }
.page-hero h1::before { transform-origin: left center; }
.primary-nav.is-open { animation: menu-enter 180ms var(--motion-ease); }
.service-dialog[open] { animation: dialog-enter 180ms var(--motion-ease); }
.service-dialog::backdrop { animation: backdrop-enter 160ms ease-out; }
.request-form label { transition: color 180ms; }
.request-form label:focus-within { color: var(--gold); }
.form-panel .request-form label:focus-within { color: #715017; }
.request-form input,.request-form textarea { transition: border-color 180ms, background-color 180ms; }
.button { transition: background-color 180ms, border-color 180ms, transform 180ms var(--motion-ease); }
.button:active { transform: translateY(1px); }

@media (hover: hover) and (pointer: fine) {
  .service-card:hover > .feature-icon,
  .service-card:focus-within > .feature-icon { color: #8b631f; }
  .service-card:hover .service-more { color: #60410e; }
  .map-link:hover { background: #f8f3e8; }
}
@keyframes menu-enter { from { transform: translateY(-6px); opacity: .75; } to { transform: none; opacity: 1; } }
@keyframes dialog-enter { from { transform: translateY(8px); opacity: .65; } to { transform: none; opacity: 1; } }
@keyframes backdrop-enter { from { opacity: 0; } to { opacity: 1; } }
@media (prefers-reduced-motion: reduce) {
  .entrance-item.entrance-pending { opacity: 1; }
  .primary-nav.is-open,.service-dialog[open],.service-dialog::backdrop { animation: none; }
}
