/* Production support for the approved designer layout. Desktop art stays in designer.css. */
html { scroll-padding-top: 100px; }
/* Image defaults must not override the designer's logo, icon or card sizing. */
:where(.ba) img { max-width: 100%; height: auto; }
.ba .lang-switch { text-decoration: none; flex-shrink: 0; }
.ba :is(a, button, input, summary):focus-visible { outline: 3px solid #2d44eb; outline-offset: 4px; }
.skip-link { position: fixed; left: 16px; top: -100px; z-index: 1000; padding: 12px 18px; background: #fff; color: #141210; border: 2px solid #2d44eb; border-radius: 8px; }
.skip-link:focus { top: 12px; }
.ba .footer-legal { flex-wrap: wrap; }
.ba .resource-note { margin-top: 24px; font-size: 16px; line-height: 1.6; color: #626262; }
.ba .resource-note a { color: #3040ef; text-decoration: underline; text-underline-offset: 3px; }
.ba [id] { scroll-margin-top: 100px; }
/* Hidden navigation must also be absent from sequential keyboard focus. */
.ba .nav:not(.open) .nav-mobile { visibility: hidden; }
/* Progressive enhancement: source content remains readable without scripts. */
body.ba:not(.has-reveal) [data-reveal] { opacity: 1; transform: none; }
@media (max-width: 1050px) and (min-width: 821px) {
  .ba .nav-inner { gap: 12px; padding-left: 22px; padding-right: 22px; }
  .ba .nav-links { gap: 16px; }
  .ba .nav-actions { gap: 8px; margin-left: 12px; }
  .ba .nav-dd-menu { max-width: calc(100vw - 44px); }
}
@media (max-width: 1050px) {
  .ba .nav-inner { display: flex; justify-content: space-between; }
  .ba .nav-links, .ba .nav-actions { display: none; }
  .ba .nav-toggle, .ba .nav-mobile { display: flex; }
  .ba .nav-toggle { min-width: 44px; min-height: 44px; }
  .ba .nav.open .nav-mobile { max-height: calc(100dvh - 88px); overflow-y: auto; overscroll-behavior: contain; padding-bottom: 24px; }
}
@media (max-width: 820px) {
  .ba .nav-toggle { min-width: 44px; min-height: 44px; }
  .ba .nav-mobile :is(a, button) { min-height: 44px; }
  .ba .nav-mobile .lang-switch { padding: 0 14px; }
  .ba .nav-actions { gap: 10px; margin-left: auto; }
  .ba :is(h1, h2, h3, p) { overflow-wrap: break-word; }
  .ba :is(h1, h2, p)[style] { max-width: 100%; }
  .ba :is(.ba-body, .hero-sub, .lmd-hero .container > p) { width: auto !important; height: auto !important; }
  .ba :is(.lmd-cta, .ev-cta-btn, .cmp-hero-cta, .ld-last-cta) { flex-wrap: wrap; }
  .ba :is(.btn, .ba-hero-btn2) { min-height: 44px; }
  .ba .footer-legal { gap: 14px; }
  .ba .footer-legal a { padding-top: 8px; padding-bottom: 8px; }
}
@media (max-width: 860px) {
  .ba [data-comparison] .vr-head { display: none; }
  .ba [data-comparison] .vr-row { grid-template-columns: minmax(0, 1fr); gap: 8px; }
  .ba [data-comparison] [data-column-label]::before { content: attr(data-column-label) ': '; font-weight: 600; }
}
@media (max-width: 760px) {
  .ba .cmp-tbl-row [data-column-label]::before { content: attr(data-column-label) ': '; font-weight: 600; }
}
@media (max-width: 480px) {
  .ba .nav-inner { padding-left: 16px; padding-right: 16px; gap: 10px; }
  .ba .nav-logo img, .ba .logo img { max-width: 142px; }
  .ba .nav-actions > .lang-switch { display: none; }
  .ba .nav-cta { min-width: 0 !important; padding-left: 12px !important; padding-right: 12px !important; font-size: 13px; }
  .ba :is(.lmd-hero, .cmp-hero) h1 { font-size: clamp(32px, 9vw, 42px) !important; line-height: 1.12 !important; letter-spacing: -1.2px !important; }
}
@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior: auto !important; }
  .ba *, .ba *::before, .ba *::after { animation: none !important; transition: none !important; }
  .ba [data-reveal] { opacity: 1 !important; transform: none !important; }
}
