/* Shared layout and accessibility corrections. */
html { scroll-behavior: smooth; }
body { overflow-wrap: break-word; }
img, video, iframe { max-width: 100%; }
img { height: auto; }
.navbar.fixed-top { position: relative; inset: auto; width: 100%; background: #222; }
.navbar-brand img { width: 65px; height: auto; }
.navbar-nav .nav-link { padding: .75rem; }
.navbar-nav .nav-link[aria-current="page"] { text-decoration: underline; text-underline-offset: .3em; }
.dropdown-menu { top: 100%; }
.banner, .about-content, .service-bg { padding-top: 2rem; }
.heading1 { padding-top: 1rem; }
.section-bg, .blog-section { margin-top: 2rem; }
.section-header p { color: #ededed; }
.blog-section { display: block; color: #ededed; }
.blog-section > .row > .row { margin-left: 0; margin-right: 0; width: 100%; }
body > section.container { padding-top: 1rem !important; }
.ftco-section { margin-top: 0 !important; padding: 2rem 0; }
.card-subtitle p { line-height: 1.6; }
.card { margin-bottom: 1rem; }
.info-wrap .dbox .text { min-width: 0; }
.info-wrap .dbox .text a { overflow-wrap: anywhere; }
.info-wrap .dbox p, .info-wrap .dbox p span, .info-wrap .dbox p a { color: #fff; }
.form-control { font-size: 16px; }
.form-feedback { padding: 1rem; margin-bottom: 1rem; border: 1px solid currentColor; }
.form-feedback.error { color: #9c2020; }
.form-feedback.success { color: #17652e; }
.honeypot { position: absolute; left: -10000px; width: 1px; height: 1px; overflow: hidden; }
:focus-visible { outline: 3px solid #da9c2c !important; outline-offset: 3px; }
#clients .client-logo { padding: 1.25rem; transform: none; }
#clients .client-logo img { max-height: 120px; object-fit: contain; }
@media (max-width: 991.98px) {
  .navbar-collapse { flex-basis: 100%; }
  .navbar-collapse.show { display: block; }
  .navbar-nav .dropdown-menu { position: static; }
  .navbar-nav .nav-link { min-height: 44px; }
  .navbar-brand img { width: 48px; }
  header, body { background-attachment: scroll !important; }
}
@media (max-width: 767.98px) {
  .blog-section { padding: 1rem; margin-top: 1rem; }
  .text-heading2, .text-heading3, .blog-section { text-align: left; }
  .info-wrap.p-5 { padding: 1.5rem !important; }
  .section-header p { width: 100%; }
  h2, .heading1 { font-size: 1.65rem; }
  #clients .client-logo { height: 130px; padding: 1rem; }
}
@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior: auto; }
  *, *::before, *::after { animation: none !important; transition: none !important; }
}
.social-icon { display: inline-flex; justify-content: center; align-items: center; width: 24px; height: 24px; font: bold 17px Arial, sans-serif; border: 1px solid currentColor; border-radius: 4px; }
