/* Artio landing — base rules (from mockup helmet <style>, minus @font-face which lives in fonts.css) */
html { scroll-behavior: smooth; }
body { margin: 0; background: #FFFFFF; font-family: 'Figtree', system-ui, sans-serif; color: #12261F; -webkit-font-smoothing: antialiased; }
* { box-sizing: border-box; }
[hidden] { display: none !important; }
a { color: #0E4F3C; text-decoration: none; }
a:hover { color: #0A3A2C; }
p { text-wrap: pretty; }
input, textarea, button, select { font-family: inherit; }
::placeholder { color: #667670; }

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

/* Desktop / mobile navigation switch at 900px */
.nav-desktop-nav { display: none !important; }
.nav-desktop-cta { display: none !important; }
.hamburger { display: flex; }
@media (min-width: 900px) {
  .nav-desktop-nav { display: flex !important; }
  .nav-desktop-cta { display: inline-flex !important; }
  .hamburger { display: none !important; }
  #mobile-menu { display: none !important; }
}

/* Hover overrides (replace the mockup style-hover attributes) */
.nav-link:hover { color: #CFEBA5 !important; }
.menu-link:hover { background: rgba(255,255,255,0.10) !important; }
.btn-lime:hover { background: #C2E491 !important; }
.btn-dark:hover { background: #0A3A2C !important; color: #FFFFFF; }
.btn-ghost:hover { background: rgba(10,40,30,0.58) !important; color: #FFFFFF; }
.svc-tab:hover { background: #FFFFFF !important; }
.rail-prev:hover { background: #EAF6F9 !important; }
.rail-next:hover { background: #0A3A2C !important; }
.faq-consult:hover { background: #EAF3EE !important; }
.contact-card:hover { background: rgba(255,255,255,0.16) !important; color: #FFFFFF; }
.footer-link:hover { color: #CFEBA5 !important; }
.radio-chip:hover { background: #ECE5D9 !important; }

/* Focus override (replace the mockup style-focus attributes on form fields) */
.field:focus { border-color: #0E4F3C !important; box-shadow: 0 0 0 2px rgba(14,79,60,0.15) !important; }

/* Keyboard focus visibility — does not alter the unfocused look */
a:focus-visible,
button:focus-visible,
input:focus-visible,
textarea:focus-visible,
select:focus-visible {
  outline: 3px solid #0B4433;
  outline-offset: 2px;
}
.field:focus-visible { outline-offset: 0; }

/* Light focus ring over the dark green sections (hero, contact card, footer)
   where the dark outline had ~1:1 contrast and was effectively invisible. */
#top a:focus-visible,
#top button:focus-visible,
#kontaktai a:focus-visible,
#kontaktai button:focus-visible,
footer a:focus-visible {
  outline-color: #CFEBA5;
}

/* Hero photo overlay — horizontal darkening on desktop (headline sits left),
   near-uniform darkening on phones where the text column is full width over a
   brighter photo. */
.hero-overlay {
  background: linear-gradient(90deg, rgba(10,40,30,0.82) 0%, rgba(10,40,30,0.62) 45%, rgba(10,40,30,0.15) 100%);
}
@media (max-width: 700px) {
  .hero-overlay {
    background: linear-gradient(180deg, rgba(10,40,30,0.62) 0%, rgba(10,40,30,0.64) 55%, rgba(10,40,30,0.8) 100%);
  }
}

/* Submit button hover (matches the mockup style-hover on the dark CTA). */
#form-submit:hover { background: #0A3A2C !important; }

/* Skip link — first focusable element, hidden until focused. */
.skip-link {
  position: absolute;
  left: 12px;
  top: -60px;
  z-index: 50;
  background: #0B4433;
  color: #FFFFFF;
  padding: 12px 18px;
  border-radius: 0 0 12px 12px;
  font-size: 15px;
  font-weight: 700;
  transition: top 140ms ease;
}
.skip-link:focus { top: 0; color: #FFFFFF; }

/* Footer links get a 44px touch target on phones. */
.footer-link { display: inline-flex; align-items: center; }
@media (max-width: 699px) {
  .footer-link { min-height: 44px; }
}

/* Visually hidden utility */
.visually-hidden {
  position: absolute !important;
  width: 1px; height: 1px;
  padding: 0; margin: -1px;
  overflow: hidden;
  clip: rect(0 0 0 0);
  white-space: nowrap;
  border: 0;
}

/* Honeypot — kept out of view without display:none so bots still fill it */
.hp-wrap {
  position: absolute;
  left: -9999px;
  top: auto;
  width: 1px;
  height: 1px;
  overflow: hidden;
}

/* Inline validation message */
.form-error {
  margin: 0;
  font-size: 14px;
  line-height: 1.5;
  font-weight: 600;
  color: #B00534;
}

/* Send-failure block, in the design palette */
.form-error-block {
  display: flex;
  gap: 10px;
  align-items: flex-start;
  background: #F7C9DA;
  color: #12261F;
  border-radius: 12px;
  padding: 14px 16px;
  font-size: 14px;
  line-height: 1.55;
}
.form-error-block a { color: #0E4F3C; text-decoration: underline; }

/* No-JS result states: the /api/lead 303 fragment reveals the matching block */
#form-success:target,
#form-error-block:target { display: block !important; }
