/* Loaded after page styles: these usability guarantees apply to every template. */
:root { --prodjekt-focus: #ffd166; }
a:focus-visible, button:focus-visible, input:focus-visible,
select:focus-visible, textarea:focus-visible, summary:focus-visible,
[tabindex]:focus-visible {
    outline: 3px solid var(--prodjekt-focus) !important;
    outline-offset: 4px !important;
}
body, input, textarea, select, label { cursor: auto !important; }
a, button, summary, [role="button"], .product-card, .news-card,
.tech-item, .project-tile, .gallery-image, .trust-card { cursor: pointer !important; }
.cursor-dot, .cursor-ring, .cursor-outline { display: none !important; }
/* Content never depends on an animation script to become readable. */
.reveal { opacity: 1 !important; transform: none !important; translate: none !important; }
.prodjekt-mobile-menu[hidden] { display: none !important; }
body.prodjekt-menu-open { overflow: hidden !important; }
.prodjekt-mobile-menu { overscroll-behavior: contain; }
.prodjekt-skip-link {
    position: fixed; z-index: 10000; top: 8px; left: 8px; padding: 12px 18px;
    background: #fff; color: #111; font-weight: 700; transform: translateY(-180%);
}
.prodjekt-skip-link:focus { transform: none; }
.prodjekt-noscript-nav { position: relative; z-index: 1101; padding: 16px; background: #111; }
.prodjekt-noscript-nav a { display: inline-block; color: white; margin: 8px; }
#contact { scroll-margin-top: 110px; }
.prodjekt-form-help, .prodjekt-form-privacy {
    margin: 18px 0 0; color: #ddd; font-size: .875rem; line-height: 1.6; text-align: left;
}
.prodjekt-form-help a, .prodjekt-form-privacy a { color: #fff; text-decoration: underline; }
.prodjekt-form-success, .prodjekt-form-error {
    margin: 20px 0; padding: 16px; border: 1px solid currentColor; border-radius: 8px;
    font-size: 1rem; line-height: 1.5; text-align: left;
}
.prodjekt-form-success { color: #a5f3c0 !important; background: #0c2920 !important; }
.prodjekt-form-error { color: #ffd7df !important; background: #3a1220 !important; }
[data-prodjekt-form] [aria-invalid="true"] { border: 2px solid #ff8aa3 !important; }
[data-prodjekt-form] button:disabled { opacity: .7; cursor: wait !important; }
[data-prodjekt-form] .input-field { min-height: 46px; }
[data-prodjekt-form] fieldset { border: 0; min-width: 0; margin: 0; padding: 0; }
.prodjekt-mobile-menu button { min-width: 44px; min-height: 44px; }
@media (prefers-reduced-motion: reduce) {
    .reveal { transition: none !important; }

}

.lb-close, .viewer-close, .modal-close { background: transparent; border: 0; color: inherit; }
[data-prodjekt-form] legend { color: #ddd; font-size: .9rem; font-weight: bold; margin-bottom: 15px; }
