html { scroll-padding-top: calc(var(--site-nav-height, 90px) + 16px); }
h1.site-home-heading { font-size: 42px; line-height: 48px; margin-bottom: 0; }
.site-sr-only { position: absolute; width: 1px; height: 1px; padding: 0; margin: -1px; overflow: hidden; clip: rect(0,0,0,0); white-space: nowrap; border: 0; }
a:focus-visible, button:focus-visible, input:focus-visible, textarea:focus-visible { outline: 2px solid #b79055; outline-offset: 4px; }
/* Display content immediately instead of waiting for all gallery photos. */
#royal_preloader { display: none !important; }
body.royal_preloader { visibility: visible; }
.owl-carousel .owl-stage, .owl-carousel.owl-drag .owl-item { touch-action: pan-y pinch-zoom; }
#mmenu-toggle button, .mmenu-wrapper .mmenu-close { min-width: 44px; min-height: 44px; }
.mmenu-wrapper { visibility: hidden; transition: transform 180ms ease, visibility 0s 180ms; max-width: 90vw; height: 100vh; height: 100dvh; }
.mmenu-wrapper.mmenu-open { visibility: visible; transition-delay: 0s; }
.mmenu-wrapper .mmenu-inner { width: 100%; padding: 16px 24px 28px; overscroll-behavior: contain; }
.mmenu-wrapper .mobile-nav { min-width: 0; }
.mmenu-wrapper .mmenu-close { background: none; border: 0; padding: 8px 0; text-align: left; cursor: pointer; }
.mmenu-wrapper .mobile_mainmenu li a { min-height: 44px; }
.mmenu-active .mmenu-overlay { touch-action: none; }
.site-contact-feedback { padding: 16px; margin-bottom: 20px; border: 1px solid currentColor; }
#ajax-form input, #ajax-form textarea { scroll-margin-top: calc(var(--site-nav-height, 90px) + 20px); }
#ajax-form button[disabled] { opacity: .65; cursor: wait; }
@media (max-width: 1024px) {
    html { overflow-x: clip; }
    #site-header.header-static { position: sticky; top: 0; z-index: 1000; }
    #site-header .header-topbar, #site-header .header-clone { display: none !important; }
    .header_mobile .mlogo_wrapper img { height: auto; width: auto; max-height: 64px; max-width: min(220px, 60vw); }
    .header_mobile .octf-mainbar-row { min-height: 80px; }
    .page-header { height: 220px; }
}
@media (max-width: 767px) {
    h1.site-home-heading { font-size: 27px; line-height: 38px; }
    .clients-slide-medium:not(.owl-loaded) { display: grid; grid-template-columns: repeat(2, minmax(0,1fr)); gap: 20px; }
    .clients-slide-medium:not(.owl-loaded) figure { margin: 0; display: flex; align-items: center; justify-content: center; min-height: 70px; }
    .clients-slide-medium:not(.owl-loaded) img { width: auto; height: auto; max-width: 150px; max-height: 65px; object-fit: contain; }
    .skill-content-5 { padding: 28px 0; }
    .image-gallery .gallery { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 12px; margin: 0; }
    .image-gallery .gallery[class*="gallery-columns-"] .gallery-item { width: 100%; max-width: 100%; padding: 0; margin: 0; float: none; }
    #site-footer > .container > .row { display: grid; grid-template-columns: repeat(2, minmax(0,1fr)); gap: 28px 20px; margin: 0; }
    #site-footer > .container > .row > * { width: 100%; max-width: 100%; padding: 0; margin: 0 !important; min-width: 0; }
    #site-footer > .container > .row > :first-child, #site-footer > .container > .row > :last-child { grid-column: 1 / -1; }
    #site-footer .footer-list { overflow-wrap: anywhere; }
    #site-footer .footer-list-item .list-item-text { white-space: normal; }
    #site-footer .widget-footer > img { margin-bottom: 20px; height: auto; max-width: min(250px, 100%); }
    #ajax-form input, #ajax-form textarea { font-size: 16px; }
}
@media (prefers-reduced-motion: reduce) {
    .mmenu-wrapper { transition: none; }
    .owl-height { transition: none; }
}
