/* Phase 10: slow, confident motion for the corporate contact journey. */
.contact-page { overflow: clip; }
.contact-page .contact-hero__copy h1 em { display: inline-block; }

.contact-page .contact-status { animation: contact-status-pulse 3.4s ease-in-out infinite; }
.contact-page .contact-hero__note { transition: border-color 350ms ease, background-color 350ms ease, transform 450ms cubic-bezier(.16, 1, .3, 1); }
.contact-page .contact-hero__note:hover { border-color: rgb(184 217 74 / 38%); background: rgb(2 30 14 / 38%); transform: translateY(-.2rem); }

.contact-page .contact-method { transition: opacity 700ms ease, transform 900ms cubic-bezier(.16, 1, .3, 1), color 250ms ease, background-color 300ms ease, padding 300ms ease; }
.contact-page a.contact-method:hover { padding-inline: .65rem; transform: none; background: rgb(11 80 39 / 4%); }
.contact-page .contact-method__icon { transition: transform 500ms cubic-bezier(.16, 1, .3, 1), background-color 300ms ease, color 300ms ease; }
.contact-page .contact-method:hover .contact-method__icon { transform: rotate(-5deg) scale(1.06); }
.contact-page .contact-method__arrow { transition: transform 330ms ease; }
.contact-page .contact-method:hover .contact-method__arrow { transform: translateX(.3rem); }

.contact-page .contact-location { position: relative; overflow: hidden; transition: transform 450ms cubic-bezier(.16, 1, .3, 1), box-shadow 450ms ease; }
.contact-page .contact-location::after { position: absolute; inset: auto 0 0; height: .18rem; background: linear-gradient(90deg, var(--contact-green), var(--contact-lime)); content: ""; transform: scaleX(0); transform-origin: left; transition: transform 750ms cubic-bezier(.16, 1, .3, 1) 300ms; }
.contact-page .contact-location:hover { transform: translateY(-.2rem); box-shadow: 0 1rem 2rem rgb(30 55 35 / 9%); }

.contact-page .contact-form-card { position: relative; overflow: hidden; }
.contact-page .contact-form-card::before { position: absolute; inset: 0 auto 0 0; width: .22rem; background: linear-gradient(180deg, var(--contact-green), var(--contact-lime)); content: ""; transform: scaleY(0); transform-origin: top; transition: transform 1200ms cubic-bezier(.16, 1, .3, 1) 320ms; }
.contact-page .quote-form__field > label:not(.checkbox-label) { transition: color 250ms ease, transform 300ms ease; }
.contact-page .quote-form__field:focus-within > label:not(.checkbox-label) { color: var(--contact-green); transform: translateX(.2rem); }
.contact-page .form-field__input { transition: border-color 260ms ease, box-shadow 320ms ease, background 320ms ease, transform 320ms ease; }
.contact-page .quote-form__field:focus-within .form-field__input { transform: translateY(-.08rem); }
.contact-page .quote-form__submit { box-shadow: 0 .85rem 1.7rem rgb(11 80 39 / 16%); transition: background 260ms ease, transform 320ms ease, box-shadow 320ms ease; }
.contact-page .quote-form__submit:hover { transform: translateY(-.18rem); box-shadow: 0 1.1rem 2.1rem rgb(11 80 39 / 23%); }
.contact-page .quote-form__submit span { transition: transform 300ms ease; }
.contact-page .quote-form__submit:hover span { transform: translateX(.25rem); }

.contact-motion-ready [data-contact-reveal] { opacity: 0; transform: translateY(2rem); }
.contact-motion-ready [data-contact-reveal="hero-copy"] { transform: translateX(-2.25rem); transition: opacity 950ms ease, transform 1200ms cubic-bezier(.16, 1, .3, 1); }
.contact-motion-ready [data-contact-reveal="availability"] { transform: translateX(2rem); transition: opacity 850ms ease, transform 1100ms cubic-bezier(.16, 1, .3, 1), border-color 350ms ease, background-color 350ms ease; transition-delay: 220ms; }
.contact-motion-ready [data-contact-reveal="heading"] { transition: opacity 800ms ease, transform 1000ms cubic-bezier(.16, 1, .3, 1); }
.contact-motion-ready [data-contact-reveal="method"] { transform: translateX(-1.5rem); transition-delay: var(--contact-method-delay, 0ms); }
.contact-motion-ready [data-contact-reveal="location"] { transition: opacity 780ms ease, transform 980ms cubic-bezier(.16, 1, .3, 1), box-shadow 450ms ease; }
.contact-motion-ready [data-contact-reveal="form"] { transform: translateX(2.25rem); transition: opacity 900ms ease, transform 1150ms cubic-bezier(.16, 1, .3, 1); }
.contact-motion-ready [data-contact-reveal="message"] { transform: translateY(-1rem); transition: opacity 700ms ease, transform 850ms cubic-bezier(.16, 1, .3, 1); }
.contact-motion-ready [data-contact-reveal].contact-is-visible { opacity: 1; transform: none; }
.contact-motion-ready [data-contact-reveal="location"].contact-is-visible::after { transform: scaleX(1); }
.contact-motion-ready [data-contact-reveal="form"].contact-is-visible::before { transform: scaleY(1); }

.contact-motion-ready [data-contact-field] { opacity: 0; transform: translateY(.9rem); transition: opacity 620ms ease, transform 800ms cubic-bezier(.16, 1, .3, 1); transition-delay: calc(260ms + var(--contact-field-delay, 0ms)); }
.contact-motion-ready .contact-is-visible [data-contact-field] { opacity: 1; transform: none; }

@keyframes contact-status-pulse {
  0%, 100% { box-shadow: 0 0 0 .35rem rgb(184 217 74 / 13%); }
  50% { box-shadow: 0 0 0 .62rem rgb(184 217 74 / 4%); }
}

@media (max-width: 56.25rem) {
  .contact-motion-ready [data-contact-reveal="form"] { transform: translateY(2rem); }
  .contact-motion-ready [data-contact-reveal="form"].contact-is-visible { transform: none; }
}

@media (max-width: 37.5rem) {
  .contact-motion-ready [data-contact-reveal="hero-copy"],
  .contact-motion-ready [data-contact-reveal="availability"],
  .contact-motion-ready [data-contact-reveal="method"] { transform: translateY(1.5rem); }
  .contact-motion-ready [data-contact-reveal].contact-is-visible { transform: none; }
}

@media (prefers-reduced-motion: reduce) {
  .contact-page *,
  .contact-page *::before,
  .contact-page *::after { animation: none !important; transition-duration: .01ms !important; transition-delay: 0ms !important; }
  .contact-motion-ready [data-contact-reveal],
  .contact-motion-ready [data-contact-field] { opacity: 1; transform: none; }
}
