/* Shared contact controls, generated by v4_apply.py. */
.mobile-contact { display: none; }
.nav .nav-cta { min-height: 44px; display: inline-flex; align-items: center; }
.service-hero { padding-top: clamp(28px, 4vw, 52px); }
.service-hero-actions { display: flex; flex-wrap: wrap; align-items: center; gap: 16px 24px; margin: 24px 0 32px; }
.service-hero-actions .btn { min-height: 46px; }
.service-hero-actions > a:not(.btn) { padding-block: 10px; }
.calculator-result > .result-cta { margin-top: 24px; }
@media (max-width: 700px) {
  body { padding-bottom: var(--mobile-contact-height, 82px); }
  .mobile-contact {
    position: fixed; inset: auto 0 0; z-index: 50;
    display: grid; grid-template-columns: minmax(0, 1fr) 92px; gap: 10px;
    padding: 12px 20px calc(12px + env(safe-area-inset-bottom));
    background: linear-gradient(135deg, rgba(26,34,51,.97), rgba(10,14,22,.96));
    backdrop-filter: blur(16px); -webkit-backdrop-filter: blur(16px);
    border-top: 1px solid #735c35;
    visibility: hidden; transform: translateY(100%);
    transition: transform .32s cubic-bezier(.16,1,.3,1), visibility .32s;
  }
  .mobile-contact.is-visible { visibility: visible; transform: translateY(0); }
  .mobile-contact .btn { min-height: 50px; padding: 10px 12px; justify-content: center; text-align: center; line-height: 1.4; }
  .mobile-contact .btn::after { content: none; }
  .mobile-contact .contact-call { gap: 8px; color: var(--fg); background: var(--ink-2); border-color: #566f9c; }
  .contact-call svg { width: 18px; height: 18px; fill: none; stroke: currentColor; stroke-width: 1.6; flex-shrink: 0; }
}
@media (prefers-reduced-motion: reduce) { .mobile-contact { transition: none !important; } }
@media print { .mobile-contact { display: none; } body { padding-bottom: 0; } }
