/* Accessibility/responsiveness fixes; Seoly remains the layout system. */
.drive-logo, #logo img.drive-logo { width: 99px; height: auto; max-width: 100%; display: inline-block; }
.drive-messengers { display: flex; align-items: center; gap: 8px; height: auto; margin-right: 16px; }
.drive-messenger { display: inline-flex; align-items: center; justify-content: center; min-height: 36px; padding: 4px 11px; border: 1px solid currentColor; border-radius: 20px; color: #1e385a; font-size: 13px; font-weight: 700; line-height: 1; text-decoration: none; white-space: nowrap; }
.drive-messenger:hover { background: #245fc2; border-color: #245fc2; color: #fff; }
.drive-messenger-short { display: none; }
.drive-footer-messengers, .drive-panel-messengers { margin-top: 18px; }
.drive-home-hero h1 { font-size: clamp(48px, 4vw, 60px); }
:root { --body-font-color: #4b5058; }
body { color: #4b5058; }
body, body * { --body-font-color: #4b5058; }
.btn-main, a.btn-main, input.btn-main { background-color: #245fc2; color: #fff; }
.subtitle { color: #984020; }
p a:not(.btn-main), details a { color: #174caa; }
img:not(.jarallax-img) { height: auto; }
p, li { overflow-wrap: break-word; }
a:focus-visible, button:focus-visible, summary:focus-visible, input:focus-visible, textarea:focus-visible, [tabindex]:focus-visible { outline: 3px solid #174caa; outline-offset: 4px; }
.skip-link { position: absolute; left: 16px; top: -100px; z-index: 10000; padding: 12px 20px; background: #fff; color: #174caa; }
.skip-link:focus { top: 10px; }
#content { scroll-margin-top: 110px; }
#contact_form { scroll-margin-top: 120px; }
#menu-btn, #btn-extra { cursor: pointer; }
#mainmenu li:focus-within > ul { visibility: visible; opacity: 1; }
details summary { cursor: pointer; color: #263238; }
input, textarea, select { max-width: 100%; }
.drive-honeypot { position: absolute; left: -10000px; width: 1px; height: 1px; overflow: hidden; }
.drive-portfolio-thumb { aspect-ratio: 16 / 10; object-fit: cover; object-position: top; height: auto; }
.btn-main { white-space: normal; }
@media (max-width: 767px) {
  .header-inner .menu_side_area { display: flex; align-items: center; justify-content: flex-end; margin-left: 0; }
  .drive-messengers { gap: 5px; margin-right: 0; }
  .drive-messenger { min-height: 32px; padding: 3px 8px; font-size: 11px; }
  .drive-footer-messengers { margin-bottom: 24px; }
  .header-inner .drive-messenger-full { display: none; }
  .header-inner .drive-messenger-short { display: inline; }
  .header-inner #menu-btn { margin-left: 8px; }
  #content section.mx-4 { margin-left: 12px !important; margin-right: 12px !important; }
  #content .p-40 { padding: 24px; }
  #content h1 { font-size: clamp(30px, 8.5vw, 42px); line-height: 1.15; overflow-wrap: break-word; }
  #content h2 { overflow-wrap: break-word; }
  .header-inner .menu_side_area > .btn-main { display: none; }
  #subheader .w-40 { display: none; }
  #content > section:first-of-type .col-lg-6 > img.w-100 { max-height: 280px; object-fit: contain; }
}
@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after { animation-duration: .01ms !important; transition-duration: .01ms !important; scroll-behavior: auto !important; }
}
