.contact-page .contact-shell { max-width: 1280px; }
.contact-page .contact-shell :is(input, select, textarea, button, a) { scroll-margin-block: 24px calc(8rem + env(safe-area-inset-bottom)); }
.contact-page .contact-introduction { margin-bottom: clamp(32px, 5vw, 56px); }
.contact-page .contact-introduction h1 { max-width: 22ch; font-size: clamp(2rem, 4.5vw, 3.5rem); line-height: 1.15; text-wrap: balance; }
.contact-page .contact-introduction p { max-width: 48ch; margin-top: 20px; color: var(--muted); font-size: 1.125rem; line-height: 1.6; }
.contact-page .contact-content { display: grid; gap: 48px; align-items: start; }
.contact-page .contact-inquiry, .contact-page .contact-location { min-width: 0; border-top: 1px solid var(--line); padding-top: 24px; }
.contact-page .contact-content h2 { font-size: clamp(1.125rem, 2vw, 1.375rem); line-height: 1.4; margin-bottom: 24px; }
.contact-page .contact-fields { min-width: 0; padding: 0; margin: 0; border: 0; }
.contact-page .contact-fields label { display: block; font-size: 1rem; margin-bottom: 8px; }
.contact-page .contact-vehicle { display: grid; grid-template-columns: minmax(0, 1fr) calc(5ch + 26px); gap: 12px; }
.contact-page .contact-fields input, .contact-page .contact-fields select, .contact-page .contact-fields textarea { display: block; width: 100%; min-width: 0; min-height: 48px; padding: 12px; margin-bottom: 24px; border: 1px solid var(--field-border); border-radius: var(--control-radius); background: var(--surface); color: var(--white); font-size: 1rem; line-height: 1.5; }
.contact-page .contact-fields textarea { resize: vertical; }
.contact-page .contact-fields input::placeholder, .contact-page .contact-fields textarea::placeholder { color: var(--muted); }
.contact-page .contact-fields :disabled { opacity: .65; }
.contact-page .contact-fields :focus-visible { outline-offset: 3px; }
.contact-page .contact-fields > .button { width: 100%; min-width: 0; max-width: 100%; }
.contact-page .form-note { line-height: 1.6; }
.contact-page .contact-address, .contact-page .contact-channels a { display: inline-flex; align-items: center; gap: 12px; min-height: 44px; padding-block: 8px; font-size: 1rem; line-height: 1.5; overflow-wrap: anywhere; }
.contact-page .contact-address span, .contact-page .contact-channels a span { flex: 0 0 auto; color: var(--yellow); }
.contact-page .contact-address:hover, .contact-page .contact-channels a:hover { color: var(--yellow); }
.contact-page .contact-hours { margin-top: 4px; color: var(--muted); line-height: 1.6; }
.contact-page .contact-alternatives { margin-top: 40px; }
.contact-page .contact-alternatives > p { max-width: 35ch; color: var(--muted); line-height: 1.6; }
.contact-page .contact-channels { margin: 24px 0 0; }
.contact-page .contact-channels > div { border-top: 1px solid var(--line); padding-block: 16px; }
.contact-page .contact-channels dt { color: var(--muted); font-size: .875rem; }
.contact-page .contact-channels dd { margin: 4px 0 0; }
@media (max-width: 699px) {
  .contact-page .contact-shell { padding-bottom: 32px; }
  .contact-page .floating-nav { position: static; transform: none; margin: 0 auto max(24px, calc(env(safe-area-inset-bottom) + 16px)); }
}
@media (min-width: 900px) {
  .contact-page .contact-content { grid-template-columns: minmax(0, 1.1fr) minmax(0, .9fr); gap: clamp(48px, 6vw, 80px); }
  .contact-page .contact-fields > .button { width: auto; min-width: 240px; }
}
