/* Small local accessibility additions; the supplied page CSS owns the design. */
html { font-size: 16px; scroll-padding-top: 100px; }
body { min-width: 320px; }
button, a, [role="button"] { touch-action: manipulation; }
a:focus-visible, button:focus-visible, [role="button"]:focus-visible {
  outline: 3px solid #444444;
  outline-offset: 6px;
}
::selection { background: #000000; color: white; }
.local-skip {
  position: fixed; left: 20px; top: 16px; z-index: 9999;
  padding: 16px 24px; background: white; color: #000000;
  font-size: 18px; transform: translateY(-180%);
}
.local-skip:focus { transform: translateY(0); }
.pt-navbar-lang { gap: 12px; }
.pt-lang { font-size: 16px; }
.pt-faq-toggle { cursor: pointer; }
.pt-footer-link { overflow-wrap: anywhere; }
.pt-hero-video:focus-visible { outline-offset: 10px; }
#typed::after { content: '_'; }
.reduced-motion #typed::after { content: ''; }

/* Native scrolling is also available if JavaScript is disabled. */
html:not(.smooth) .pt-layout { height: auto; }

@media (max-width: 767px) {
  .pt-navbar-col.-right { gap: 12px; }
  .pt-navbar-lang { margin-right: 15px; gap: 10px; }
  .pt-navbar-logo { width: 120px; }
  .pt-navbar-nav { max-width: calc(100vw - 50px); }
  .pt-footer-links { flex-wrap: wrap; }
  .pt-hero-header h1 { font-size: clamp(48px, 13.8vw, 72px); }
  .pt-hero-text { font-size: 18px; }
}

/* Static composition when the visitor requests reduced motion. */
html.reduced-motion { overflow: auto !important; }
.reduced-motion body { overflow: auto !important; }
.reduced-motion .pt-layout { height: auto !important; overflow: visible !important; }
.reduced-motion .pt-hero-mask, .reduced-motion .pt-hero-line,
.reduced-motion .pt-scroller, .reduced-motion .pt-loader { display: none !important; }
.reduced-motion .pt-hero-headline { opacity: 1 !important; }
.reduced-motion .pt-hero-headlines { color: #000; }
.reduced-motion .pt-feature-roll { overflow-x: auto; }
.reduced-motion .pt-overview-carousel { overflow: hidden; }
.reduced-motion .pt-overview-reviews {
  display: flex; justify-content: flex-start; overflow-x: auto;
  scroll-snap-type: x mandatory; scrollbar-color: #000000 #e5e5e5;
}
.reduced-motion .pt-overview-review { flex-shrink: 0; scroll-snap-align: start; }
.reduced-motion .pt-faq-info { display: none; }
.reduced-motion .pt-faq-item.-active .pt-faq-info { display: block; }
.reduced-motion *, .reduced-motion *::before, .reduced-motion *::after {
  animation: none !important; transition: none !important; scroll-behavior: auto !important;
}
@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after { animation: none !important; transition: none !important; scroll-behavior: auto !important; }
}
