/* =====================================================================
   Shared by every page — change a value here and all pages follow.
   ===================================================================== */
:root {
  /* Maximum width of the content column. Section backgrounds and divider
     lines may still run edge to edge; the content never gets wider than this. */
  --container: 1240px;
}

/* The page runtime sizes its root to exactly one screen (height:100%). With the shared
   header/footer around it, the page must be as tall as its content, or the footer
   lands on top of the sections. */
html, body { height: auto; min-height: 100%; }
#dc-root, #dc-root > .sc-host { height: auto !important; }
/* ==== mobile fixes (overflow / tap targets / min text size) ==== */
/* Side-reveal animations (data-reveal) park elements ~32px past the right edge before they appear,
   which makes phones scroll sideways. clip stops that without creating a scroll container. */
html, body { overflow-x: clip; }
section, footer { overflow-x: clip; }

@media (max-width: 720px) {
  /* 44px minimum touch targets */
  .contact__link-1, .contact__link-2, .contact__btn-1, .contact__btn-2,
  .footer__link-1, .footer__btn-1, .modules__link-1, .cases__link-1,
  .hero__btn-1, .hero__link-1, .switchboard__btn-2 {
    display: inline-flex; align-items: center; min-height: 44px;
  }
  .faq__item-head-1 { min-height: 44px; }
  .contact__field-1, .contact__field-2, .contact__field-3, .modeller__field-1 { min-height: 44px; font-size: 16px; }
  .vt-footer a[class*="vt-s-"] { display: inline-flex; align-items: center; justify-content: center; min-width: 44px; min-height: 44px; }
  .vt-footer a:not([class*="vt-s-"]) { display: inline-block; padding: 10px 0; }
}
