/* WEIT Services: correction for the verified live FTP version, 13 October 2026. */
html { scrollbar-gutter: stable; }
.site-header a:focus-visible, .site-header button:focus-visible {
  outline: 3px solid var(--lime, #c8f53a);
  outline-offset: 4px;
}
.form .status:empty { display: none; }
.form .note a { color: inherit; font-size: inherit; text-decoration: underline; }
.form input, .form select, .form textarea { font-size: 16px; }
.form input[type="file"] { max-width: 100%; min-width: 0; }
.contact-grid > *, .form-grid > * { min-width: 0; }
.contact-grid a { overflow-wrap: anywhere; }
.weit-ref-filters button { min-height: 44px; }
/* Decorative arrows falsely suggest links on these informational blocks. */
.service-list .arrow, .project-grid article > svg.lucide-arrow-up-right { display: none; }
/* Small, consistent feedback: lime accent, short distances, no bouncing. */
.desktop-nav a, .footer-bottom a {
  position: relative;
  padding-block: 6px;
}
.desktop-nav a::after, .footer-bottom a::after {
  content: "";
  position: absolute;
  inset: auto 0 0;
  height: 2px;
  background: var(--lime, #c8f53a);
  transform: scaleX(0);
  transform-origin: left;
  transition: transform 220ms ease;
}
.desktop-nav a:focus-visible::after, .footer-bottom a:focus-visible::after { transform: scaleX(1); }
.pill, .form button, .weit-ref-filters button, .mobile button {
  transition: color 180ms ease, background-color 180ms ease, border-color 180ms ease,
    transform 180ms ease, box-shadow 180ms ease;
  -webkit-tap-highlight-color: transparent;
}
.pill:active, .form button:active:not(:disabled), .weit-ref-filters button:active {
  transform: scale(.98);
}
.mobile button:active { background: #ffffff18; transform: scale(.94); border-radius: 10px; }
@media (hover: hover) and (pointer: fine) {
  .desktop-nav a:hover::after, .footer-bottom a:hover::after { transform: scaleX(1); }
  .mobile nav a:hover { color: var(--lime, #c8f53a); background: #ffffff08; transform: translateX(4px); }
  .mobile button:hover { color: var(--lime, #c8f53a); background: #ffffff0d; border-radius: 10px; }
  .pill.lime:hover { box-shadow: 0 6px 20px #c8f53a25; }
  .weit-ref-filters button:hover { background: #17191e; color: #fff; transform: translateY(-2px); }
  .project-grid article:hover { box-shadow: 0 12px 28px #05121e14; }
  .weit-ref-card:hover img { transform: scale(1.035); filter: brightness(1.06); }
}
.project-grid article { transition: transform 220ms ease, box-shadow 220ms ease; }
@media (hover: none) {
  .pill.lime:hover { background: var(--lime, #c8f53a); }
  .pill.ghost:hover { color: inherit; border-color: #ffffff55; }
  .pill:hover:not(:active) { transform: none; }
  .form button:hover:not(:active):not(:disabled) { background: var(--lime, #c8f53a); transform: none; box-shadow: none; }
  .service-list article:hover, .project-grid article:hover { transform: none; }
  .service-list article:hover .service-art img, .project-grid article:hover .project-art img,
  .weit-ref-card:hover img { transform: none; filter: none; }
}
@media (max-width: 900px) {
  /* Keep the full background logo inside the hero on phones and tablets. */
  .hero-brandmark {
    width: min(560px, calc(100% - 48px));
    right: 24px;
    top: clamp(88px, 12vh, 130px);
  }
  /* Backdrop filtering makes the header a containing block for fixed children. */
  .site-header {
    -webkit-backdrop-filter: none;
    backdrop-filter: none;
    background: #05121e;
  }
  .mobile button { min-width: 44px; min-height: 44px; cursor: pointer; }
  .mobile nav {
    position: fixed;
    inset: 64px 0 auto;
    height: calc(100vh - 64px);
    height: calc(100dvh - 64px);
    box-sizing: border-box;
    background: #0a101c;
    overflow-y: auto;
    overscroll-behavior: contain;
    -webkit-overflow-scrolling: touch;
    justify-content: flex-start;
    gap: 8px;
    padding: clamp(20px, 5vh, 48px) 24px max(24px, env(safe-area-inset-bottom));
    font-size: clamp(1.5rem, 5.5vw, 2rem);
    z-index: 51;
    animation: weit-menu-in 180ms ease-out;
  }
  .mobile nav a {
    display: flex;
    align-items: center;
    flex-shrink: 0;
    min-height: 48px;
    padding: 10px 0;
    border-bottom: 1px solid #ffffff20;
    line-height: 1.2;
    border-radius: 10px;
    padding-inline: 10px;
    margin-inline: -10px;
    transition: color 160ms ease, background-color 160ms ease, transform 160ms ease;
    -webkit-tap-highlight-color: transparent;
  }
  .mobile nav a:active {
    color: var(--lime, #c8f53a);
    background: #c8f53a18;
    transform: translateX(4px);
  }
  .mobile nav a:focus-visible { background: #c8f53a18; }
  .mobile nav a:last-child { color: var(--lime, #c8f53a); }
  html.weit-menu-open, html.weit-menu-open body { overflow: hidden; }
}
@keyframes weit-menu-in {
  from { opacity: .5; transform: translateY(-6px); }
  to { opacity: 1; transform: translateY(0); }
}
@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior: auto !important; }
  .weit-ref-card img { transition: none; }
  .weit-ref-card:hover img, .service-list article:hover .service-art img,
  .project-grid article:hover .project-art img { transform: none; }
  .mobile nav { animation: none; }
  .desktop-nav a::after, .footer-bottom a::after { transition: none; }
  .mobile nav a, .pill, .form button, .weit-ref-filters button, .mobile button,
  .project-grid article { transition: none; }
  .mobile nav a:active, .mobile nav a:hover, .mobile button:active,
  .pill:active, .pill:hover, .form button:active:not(:disabled), .form button:hover:not(:disabled),
  .weit-ref-filters button:active, .weit-ref-filters button:hover,
  .project-grid article:hover, .service-list article:hover { transform: none; }
}
