/* Site-specific corrections and accessibility improvements */
html {
  scroll-behavior: smooth;
}

body {
  text-rendering: optimizeLegibility;
  -webkit-font-smoothing: antialiased;
}

img {
  max-width: 100%;
  height: auto;
}

.logo img {
  width: 140px;
  height: 140px;
}

.certi {
  margin-top: 0;
}

.about .certi {
  float: left;
  margin-top: -20px;
}

a:focus-visible,
.menu-link:focus-visible {
  outline: 3px solid currentColor;
  outline-offset: 3px;
}

@media (prefers-reduced-motion: reduce) {
  html {
    scroll-behavior: auto;
  }

  *,
  *::before,
  *::after {
    animation-duration: 0.01ms !important;
    animation-iteration-count: 1 !important;
    transition-duration: 0.01ms !important;
  }
}


/* Mobile reliability fixes */
.owl-carousel { display: block; }
.owl-carousel .item { display: none; }
.owl-carousel .item:first-child { display: block; }
.owl-carousel.owl-theme .item { display: block; }

.menu-link {
  border: 0;
  background: transparent;
  cursor: pointer;
  line-height: 1;
}

@media screen and (max-width: 768px) {
  html, body { width: 100%; overflow-x: hidden; }
  .menu { position: fixed; top: 0; left: 0; width: 100%; height: 50px; z-index: 10000; }
  .menu nav { display: none; position: absolute; top: 50px; left: 0; right: 0; width: 100%; height: auto; max-height: calc(100svh - 50px); overflow-y: auto !important; background: #000; z-index: 10001; }
  .menu nav.active { display: block !important; height: auto !important; }
  .menu nav .jspContainer, .menu nav .jspPane { width: 100% !important; height: auto !important; position: static !important; }
  .menu nav a { display: block; margin: 0; padding: 14px 20px; }
  .content { width: 100% !important; }
  .introduction { min-height: 100svh; padding-top: 50px; background: #000; overflow: hidden; }
  .introduction .owl-carousel,
  .introduction .owl-wrapper-outer,
  .introduction .owl-wrapper,
  .introduction .owl-item,
  .introduction .item { width: 100% !important; height: calc(100svh - 50px) !important; }
  .introduction .item img { display: block; width: 100% !important; height: 100% !important; object-fit: cover; object-position: center top; }
  .introduction .jspContainer { height: calc(100svh - 50px) !important; }
}

/* iPhone Safari: use a simple, plugin-free mobile layout. */
@media screen and (max-width: 768px) {
  html,
  body,
  #container {
    min-height: 100%;
    height: auto;
    background: #000;
  }

  .menu-link {
    position: absolute;
    top: 0;
    right: 0;
    z-index: 10003;
    box-sizing: content-box;
    -webkit-appearance: none;
    appearance: none;
    touch-action: manipulation;
  }

  .menu nav,
  .menu nav.active {
    position: fixed !important;
    top: 50px !important;
    right: 0 !important;
    bottom: auto !important;
    left: 0 !important;
    width: 100% !important;
    max-height: calc(100dvh - 50px) !important;
    z-index: 10002 !important;
  }

  .menu nav.active {
    display: block !important;
  }

  .content-scroller,
  .content-wrapper {
    position: relative !important;
    top: auto !important;
    right: auto !important;
    bottom: auto !important;
    left: auto !important;
    width: 100% !important;
    height: auto !important;
    margin: 0 !important;
    overflow: visible !important;
    transform: none !important;
  }

  .content {
    position: relative !important;
    float: none !important;
    width: 100% !important;
    height: auto !important;
    min-height: 0 !important;
    overflow: visible !important;
  }

  .introduction {
    display: block !important;
    width: 100% !important;
    height: 100dvh !important;
    min-height: 100svh !important;
    padding: 50px 0 0 !important;
    box-sizing: border-box;
    background: #000;
  }

  #owl-demo,
  #owl-demo .item,
  #owl-demo .item:first-child {
    display: block !important;
    position: relative !important;
    width: 100% !important;
    height: 100% !important;
  }

  #owl-demo .item:not(:first-child),
  #owl-demo .owl-controls {
    display: none !important;
  }

  #owl-demo img,
  .introduction img {
    display: block !important;
    position: relative !important;
    z-index: 1 !important;
    float: none !important;
    width: 100% !important;
    height: 100% !important;
    min-height: 1px !important;
    object-fit: cover !important;
    object-position: center top !important;
    opacity: 1 !important;
    visibility: visible !important;
  }

  .inner {
    position: relative;
    z-index: 2;
  }
}
