/* Interaction and accessibility additions; the captured design styles remain intact. */
:root { --ease-out: cubic-bezier(0.23, 1, 0.32, 1); }
html { -webkit-tap-highlight-color: transparent; -webkit-text-size-adjust: 100%; }
.site-skip-link { position: fixed; top: 8px; left: 8px; z-index: 1000; padding: 12px 18px; color: #fff; background: #191919; border-radius: 6px; transform: translateY(-160%); }
.site-skip-link:focus { transform: translateY(0); }
.framer-LXMUB { padding-top: max(20px, env(safe-area-inset-top, 0px)) !important; padding-left: max(20px, env(safe-area-inset-left, 0px)); padding-right: max(20px, env(safe-area-inset-right, 0px)); }
button, a, [role="button"], [type="submit"] { touch-action: manipulation; }
button, [role="button"], [type="submit"] { user-select: none; -webkit-user-select: none; }
.site-pressable { transition: transform 120ms var(--ease-out), opacity 120ms ease; }
.site-pressable:active:not(:disabled) { transform: scale(.97); }
[role="button"] { cursor: pointer; }
[role="button"]:focus-visible, a:focus-visible, input:focus-visible, textarea:focus-visible {
  outline: 3px solid #1c69ba !important;
  outline-offset: 4px;
}
[data-site-info-menu] {
  position: absolute !important;
  z-index: 100 !important;
  opacity: 1;
  transform: none !important;
}
.site-honeypot {
  position: absolute !important;
  left: -10000px !important;
  width: 1px !important;
  height: 1px !important;
  overflow: hidden !important;
}
.site-form-status {
  margin: 0;
  font-family: Figtree, Inter, sans-serif;
  font-size: 15px;
  line-height: 1.45;
  color: #164c2d;
}
.site-form-status[hidden] { display: none !important; }
.site-form-error { color: #8a2020; }
.site-quote-form { height: auto !important; grid-template-rows: none !important; grid-auto-rows: max-content; }
.site-form-shell, .site-form-container { height: auto !important; min-height: 0 !important; }
.site-form-fields { grid-template-columns: repeat(2, minmax(0, 1fr)); grid-auto-flow: row !important; }
.site-field { display: flex; flex-direction: column; gap: 8px; min-width: 0; }
.site-field-label { font: 600 15px/1.4 Figtree, Inter, sans-serif; color: #242424; }
.site-field textarea { min-height: 150px !important; }
.site-form-notice { padding: 16px; border-radius: 10px; background: #fff3e7; color: #65350d; }
.site-form-notice a { color: inherit; text-decoration: underline; text-underline-offset: 3px; font-weight: 600; }
.site-form-privacy { margin: 0; font: 400 14px/1.5 Figtree, Inter, sans-serif; color: #444; }
.site-form-privacy a { color: inherit; text-decoration: underline; text-underline-offset: 3px; }
.site-form-unavailable .site-field { opacity: .7; }
.site-turnstile { width: 100%; min-height: 65px; }
[type="submit"]:disabled { cursor: not-allowed !important; opacity: .65; }
[type="submit"][data-state="sending"] { cursor: wait !important; }
.framer-LXMUB .framer-8id26 { min-width: 44px !important; min-height: 44px !important; }
[data-site-mobile-links] { max-height: calc(100dvh - 110px); overflow-y: auto; overscroll-behavior: contain; padding-bottom: env(safe-area-inset-bottom, 0px); }
[data-site-mobile-links] a, [data-site-mobile-links] [role="button"] { min-height: 44px; display: flex; align-items: center; }
[data-site-mobile-links] .framer-jlIPa .framer-text { --framer-text-color: #171717 !important; color: #171717 !important; }
.site-mobile-actions { display: none; }
.site-nav-open .framer-1n47e48 { transform: rotate(-45deg) !important; top: 50% !important; }
.site-nav-open .framer-18tcbuv { transform: rotate(45deg) !important; top: 50% !important; }
.site-main { display: flex; flex: none; flex-direction: column; align-items: stretch; gap: 0; width: 100%; min-width: 0; position: relative; }
.site-main:focus { outline: none; }
/* Keep the orange brand color while making callouts and controls readable. */
.site-cta-panel h2 { --framer-text-color: #171717 !important; color: #171717 !important; }
.site-cta-panel .framer-jlIPa { background: #191919 !important; --border-color: #191919 !important; }
.site-cta-panel .framer-jlIPa .framer-text { --framer-text-color: #fff !important; color: #fff !important; }
a.framer-wFBag { background-color: #262626 !important; }
.site-quote-form [type="submit"] { color: #171717 !important; }
/* Every visitor gets the same useful description; no invisible keyword layer. */
.site-service-card { display: flex !important; flex-direction: column !important; align-items: stretch !important; justify-content: flex-start !important; gap: 0 !important; height: auto !important; min-height: 0 !important; overflow: hidden !important; background: #f5f5f8; }
.site-service-card > [data-framer-background-image-wrapper] { position: relative !important; inset: auto !important; flex: none !important; width: 100% !important; height: auto !important; aspect-ratio: 16 / 11; border-radius: 0 !important; }
.site-service-card > [data-framer-background-image-wrapper] img { border-radius: 0 !important; }
.site-service-card > a[data-framer-name="Texts"] { position: relative !important; inset: auto !important; flex: none !important; width: 100% !important; max-width: none !important; height: auto !important; min-height: 0 !important; padding: 20px 22px 10px !important; gap: 12px !important; background: #f5f5f8 !important; border-radius: 0 !important; }
.site-service-card > a[data-framer-name="Texts"]:focus-visible { outline-offset: -4px; }
.site-service-summary { margin: 0 !important; padding: 0 22px 24px; font: 400 16px/1.5 Figtree, Inter, sans-serif; color: #444; background: #f5f5f8; }
.site-document-header { padding: 145px 30px 55px !important; }
.site-document-header [data-framer-name="Container"] { gap: 0 !important; }
body[data-site-page="privacy"] [data-framer-name="Post Content"] { padding-top: 56px !important; padding-bottom: 64px !important; }
body[data-site-page="privacy"] [data-framer-name="Post Content"] p { margin: 0 0 20px; font: 400 17px/1.75 Figtree, Inter, sans-serif; color: #444; }
body[data-site-page="privacy"] [data-framer-name="Post Content"] h2 { margin: 32px 0 14px; font: 600 26px/1.3 Figtree, Inter, sans-serif; color: #171717; }
body[data-site-page="privacy"] [data-framer-name="Post Content"] a { color: #145aa4; text-decoration: underline; text-underline-offset: 3px; overflow-wrap: anywhere; }
@media (hover: hover) and (pointer: fine) {
  .site-pressable:hover:not(:disabled) { opacity: .9; }
}
@media (pointer: coarse) {
  .site-quote-form input, .site-quote-form textarea { font-size: 16px !important; }
}
@media (max-width: 600px) {
  .site-form-fields { grid-template-columns: minmax(0, 1fr); }
}
@media (max-width: 809px) {
  .site-related-services { order: 2; }
  body:has(.site-mobile-actions) { padding-bottom: calc(76px + env(safe-area-inset-bottom, 0px)); }
  .site-mobile-actions { position: fixed; display: flex; gap: 10px; inset: auto 0 0; z-index: 90; padding: 12px max(16px, env(safe-area-inset-right, 0px)) calc(12px + env(safe-area-inset-bottom, 0px)) max(16px, env(safe-area-inset-left, 0px)); background: #fff; border-top: 1px solid #e4e4e4; box-shadow: 0 -4px 20px #0000000a; }
  .site-mobile-actions a { display: flex; flex: 1; min-height: 48px; justify-content: center; align-items: center; border-radius: 8px; font: 600 15px/1.2 Figtree, Inter, sans-serif; text-decoration: none; user-select: none; -webkit-user-select: none; }
  .site-mobile-call { background: #ef8936; color: #171717; }
  .site-mobile-quote { background: #f4f4f4; color: #171717; border: 1px solid #ddd; }
  body[data-site-page="contact"] .framer-qYidD { height: auto !important; min-height: 0 !important; padding: 112px 20px 28px !important; }
  body[data-site-page="contact"] .framer-qYidD .framer-2hh9vk { min-height: 0 !important; padding: 0 !important; }
  body[data-site-page="contact"] .framer-1tk9fdh { padding: 28px 20px 48px !important; }
  body[data-site-page="contact"] .framer-1ldj6bt { gap: 24px !important; }
  body[data-site-page="contact"] .framer-1dro11f { gap: 12px !important; }
  body[data-site-page="contact"] .framer-1dro11f p { line-height: 1.5 !important; }
  body[data-site-page="contact"] .framer-1bev5uh { margin-top: 4px; }
  .site-document-header { padding: 120px 20px 40px !important; }
  body[data-site-page="privacy"] [data-framer-name="Post Content"] { padding: 32px 20px 40px !important; }
}
@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after { scroll-behavior: auto !important; animation-duration: .01ms !important; transition-duration: .01ms !important; }
  .site-pressable:active:not(:disabled) { transform: none; opacity: .85; }
}
