.elementor-kit-431{--e-global-color-primary:#0069A7;--e-global-color-secondary:#0E2433;--e-global-color-text:#0E2433;--e-global-color-accent:#36A9E1;--e-global-color-dgxpaper:#FFFFFF;--e-global-color-dgxmist:#EEF3F6;--e-global-color-dgxinkraised:#15324A;--e-global-color-dgxslate:#4A5A66;--e-global-color-dgxline:#D5DEE5;--e-global-color-dgxfield:#6B7C88;--e-global-color-dgxbluedk:#005485;--e-global-color-dgxmuted:#A9BBC9;--e-global-color-dgxgreen:#17734A;--e-global-color-dgxgreenlt:#5CC98A;--e-global-typography-primary-font-family:"Montserrat";--e-global-typography-primary-font-size:40px;--e-global-typography-primary-font-weight:700;--e-global-typography-primary-line-height:1.15em;--e-global-typography-primary-letter-spacing:-0.4px;--e-global-typography-secondary-font-family:"Montserrat";--e-global-typography-secondary-font-size:24px;--e-global-typography-secondary-font-weight:600;--e-global-typography-secondary-line-height:1.25em;--e-global-typography-text-font-family:"Open Sans";--e-global-typography-text-font-size:18px;--e-global-typography-text-font-weight:400;--e-global-typography-text-line-height:1.5em;--e-global-typography-accent-font-family:"Montserrat";--e-global-typography-accent-font-size:16px;--e-global-typography-accent-font-weight:600;--e-global-typography-accent-line-height:1.2em;--e-global-typography-dgxh1-font-family:"Montserrat";--e-global-typography-dgxh1-font-size:64px;--e-global-typography-dgxh1-font-weight:700;--e-global-typography-dgxh1-line-height:1.1em;--e-global-typography-dgxh1-letter-spacing:-0.64px;--e-global-typography-dgxh2-font-family:"Montserrat";--e-global-typography-dgxh2-font-size:40px;--e-global-typography-dgxh2-font-weight:700;--e-global-typography-dgxh2-line-height:1.15em;--e-global-typography-dgxh2-letter-spacing:-0.4px;--e-global-typography-dgxh3-font-family:"Montserrat";--e-global-typography-dgxh3-font-size:24px;--e-global-typography-dgxh3-font-weight:600;--e-global-typography-dgxh3-line-height:1.25em;--e-global-typography-dgxsmall-font-family:"Open Sans";--e-global-typography-dgxsmall-font-size:15px;--e-global-typography-dgxsmall-font-weight:400;--e-global-typography-dgxsmall-line-height:1.5em;--e-global-typography-dgxui-font-family:"Open Sans";--e-global-typography-dgxui-font-size:16px;--e-global-typography-dgxui-font-weight:600;--e-global-typography-dgxui-line-height:1.4em;background-color:#FFFFFF;color:#0E2433;font-family:"Open Sans", Sans-serif;font-size:18px;font-weight:400;line-height:1.5em;}.elementor-kit-431 button,.elementor-kit-431 input[type="button"],.elementor-kit-431 input[type="submit"],.elementor-kit-431 .elementor-button{background-color:#0069A7;font-family:"Montserrat", Sans-serif;font-size:16px;font-weight:600;line-height:1.2em;color:#FFFFFF;border-radius:999px 999px 999px 999px;padding:14px 28px 14px 28px;}.elementor-kit-431 button:hover,.elementor-kit-431 button:focus,.elementor-kit-431 input[type="button"]:hover,.elementor-kit-431 input[type="button"]:focus,.elementor-kit-431 input[type="submit"]:hover,.elementor-kit-431 input[type="submit"]:focus,.elementor-kit-431 .elementor-button:hover,.elementor-kit-431 .elementor-button:focus{background-color:#005485;color:#FFFFFF;}.elementor-kit-431 e-page-transition{background-color:#FFBC7D;}.elementor-kit-431 p{margin-block-end:16px;}.elementor-kit-431 a{color:#0069A7;}.elementor-kit-431 a:hover{color:#005485;}.elementor-kit-431 h1{color:#0E2433;font-family:"Montserrat", Sans-serif;font-size:64px;font-weight:700;line-height:1.1em;letter-spacing:-0.64px;}.elementor-kit-431 h2{color:#0E2433;font-family:"Montserrat", Sans-serif;font-size:40px;font-weight:700;line-height:1.15em;letter-spacing:-0.4px;}.elementor-kit-431 h3{color:#0E2433;font-family:"Montserrat", Sans-serif;font-size:24px;font-weight:600;line-height:1.25em;}.elementor-kit-431 h4{color:#0E2433;font-family:"Montserrat", Sans-serif;font-size:20px;font-weight:600;line-height:1.4em;}.elementor-kit-431 h5{color:#0E2433;font-family:"Montserrat", Sans-serif;font-size:18px;font-weight:600;line-height:1.4em;}.elementor-kit-431 h6{color:#0E2433;font-family:"Montserrat", Sans-serif;font-size:16px;font-weight:600;line-height:1.4em;}.elementor-kit-431 img{border-radius:12px 12px 12px 12px;}.elementor-kit-431 label{color:#0E2433;font-family:"Open Sans", Sans-serif;font-size:16px;font-weight:600;line-height:1.4em;}.elementor-kit-431 input:not([type="button"]):not([type="submit"]),.elementor-kit-431 textarea,.elementor-kit-431 .elementor-field-textual{font-family:"Open Sans", Sans-serif;font-size:17px;font-weight:400;line-height:1.5em;color:#0E2433;background-color:#FFFFFF;border-style:solid;border-width:1px 1px 1px 1px;border-color:#6B7C88;border-radius:8px 8px 8px 8px;padding:12px 16px 12px 16px;}.elementor-kit-431 input:focus:not([type="button"]):not([type="submit"]),.elementor-kit-431 textarea:focus,.elementor-kit-431 .elementor-field-textual:focus{box-shadow:0px 0px 0px 3px rgba(0,105,167,0.25);border-style:solid;border-color:#0069A7;}.elementor-section.elementor-section-boxed > .elementor-container{max-width:1200px;}.e-con{--container-max-width:1200px;--container-default-padding-top:0px;--container-default-padding-right:24px;--container-default-padding-bottom:0px;--container-default-padding-left:24px;}.elementor-widget:not(:last-child){margin-block-end:16px;}.elementor-element{--widgets-spacing:16px 16px;--widgets-spacing-row:16px;--widgets-spacing-column:16px;}{}h1.entry-title{display:var(--page-title-display);}@media(max-width:1024px){.elementor-kit-431{--e-global-typography-primary-font-size:34px;--e-global-typography-primary-letter-spacing:-0.34px;--e-global-typography-secondary-font-size:22px;--e-global-typography-text-font-size:18px;--e-global-typography-accent-font-size:16px;--e-global-typography-dgxh1-font-size:52px;--e-global-typography-dgxh1-letter-spacing:-0.52px;--e-global-typography-dgxh2-font-size:34px;--e-global-typography-dgxh2-letter-spacing:-0.34px;--e-global-typography-dgxh3-font-size:22px;--e-global-typography-dgxsmall-font-size:15px;--e-global-typography-dgxui-font-size:16px;font-size:18px;}.elementor-kit-431 h1{font-size:52px;letter-spacing:-0.52px;}.elementor-kit-431 h2{font-size:34px;letter-spacing:-0.34px;}.elementor-kit-431 h3{font-size:22px;}.elementor-kit-431 h4{font-size:19px;}.elementor-kit-431 h5{font-size:17px;}.elementor-kit-431 h6{font-size:16px;}.elementor-kit-431 button,.elementor-kit-431 input[type="button"],.elementor-kit-431 input[type="submit"],.elementor-kit-431 .elementor-button{font-size:16px;}.elementor-kit-431 label{font-size:16px;}.elementor-kit-431 input:not([type="button"]):not([type="submit"]),.elementor-kit-431 textarea,.elementor-kit-431 .elementor-field-textual{font-size:17px;}.elementor-section.elementor-section-boxed > .elementor-container{max-width:1024px;}.e-con{--container-max-width:1024px;}}@media(max-width:767px){.elementor-kit-431{--e-global-typography-primary-font-size:30px;--e-global-typography-primary-letter-spacing:-0.3px;--e-global-typography-secondary-font-size:21px;--e-global-typography-text-font-size:17px;--e-global-typography-accent-font-size:16px;--e-global-typography-dgxh1-font-size:40px;--e-global-typography-dgxh1-letter-spacing:-0.4px;--e-global-typography-dgxh2-font-size:30px;--e-global-typography-dgxh2-letter-spacing:-0.3px;--e-global-typography-dgxh3-font-size:21px;--e-global-typography-dgxsmall-font-size:14px;--e-global-typography-dgxui-font-size:16px;font-size:17px;}.elementor-kit-431 h1{font-size:40px;letter-spacing:-0.4px;}.elementor-kit-431 h2{font-size:30px;letter-spacing:-0.3px;}.elementor-kit-431 h3{font-size:21px;}.elementor-kit-431 h4{font-size:18px;}.elementor-kit-431 h5{font-size:17px;}.elementor-kit-431 h6{font-size:16px;}.elementor-kit-431 button,.elementor-kit-431 input[type="button"],.elementor-kit-431 input[type="submit"],.elementor-kit-431 .elementor-button{font-size:16px;}.elementor-kit-431 label{font-size:16px;}.elementor-kit-431 input:not([type="button"]):not([type="submit"]),.elementor-kit-431 textarea,.elementor-kit-431 .elementor-field-textual{font-size:17px;}.elementor-section.elementor-section-boxed > .elementor-container{max-width:767px;}.e-con{--container-max-width:767px;--container-default-padding-top:0px;--container-default-padding-right:16px;--container-default-padding-bottom:0px;--container-default-padding-left:16px;}}/* Start custom CSS *//* Demongrafix Kit custom CSS. Generated by scripts/build_phase1.py, do not edit by hand. */
:root {
  --dgx-primary: #0069A7; /* Demongrafix blue */
  --dgx-secondary: #0E2433; /* Ink */
  --dgx-text: #0E2433; /* Body text (Ink) */
  --dgx-accent: #36A9E1; /* Sky */
  --dgx-dgxpaper: #FFFFFF; /* Paper */
  --dgx-dgxmist: #EEF3F6; /* Mist */
  --dgx-dgxinkraised: #15324A; /* Ink raised */
  --dgx-dgxslate: #4A5A66; /* Slate (muted text) */
  --dgx-dgxline: #D5DEE5; /* Line */
  --dgx-dgxfield: #6B7C88; /* Field border */
  --dgx-dgxbluedk: #005485; /* Blue hover */
  --dgx-dgxmuted: #A9BBC9; /* Muted on Ink */
  --dgx-dgxgreen: #17734A; /* Check green */
  --dgx-dgxgreenlt: #5CC98A; /* Check green on Ink */
  --dgx-font-heading: "Montserrat", sans-serif;
  --dgx-font-body: "Open Sans", sans-serif;
  --dgx-radius-card: 12px;
  --dgx-radius-field: 8px;
  --dgx-radius-button: 999px;
  --dgx-shadow-soft: 0 12px 32px rgba(14, 36, 51, 0.12);
  --dgx-hover: 150ms;
  --dgx-container: 1200px;
}

/* Visible focus for keyboard users (brief §10) */
a:focus-visible, button:focus-visible, input:focus-visible, select:focus-visible,
textarea:focus-visible, [tabindex]:focus-visible, .elementor-menu-toggle:focus-visible {
  outline: 3px solid var(--dgx-primary);
  outline-offset: 3px;
  border-radius: 4px;
}
.dgx-footer a:focus-visible { outline-color: var(--dgx-accent); }

/* Hover timing */
.elementor-button, .elementor-nav-menu a, .elementor-icon-list-item a {
  transition: color var(--dgx-hover) ease, background-color var(--dgx-hover) ease, border-color var(--dgx-hover) ease;
}

/* Sticky header: shrink on scroll (Pro sticky adds .elementor-sticky--effects) */
.dgx-header > .e-con-inner, .dgx-header .dgx-header__inner { transition: padding var(--dgx-hover) ease; }
.dgx-header .dgx-logo img { transition: max-width var(--dgx-hover) ease; }
.dgx-header.elementor-sticky--effects { box-shadow: 0 1px 0 var(--dgx-dgxline), 0 6px 20px rgba(14, 36, 51, 0.06); }
.dgx-header.elementor-sticky--effects .dgx-header__inner { padding-top: 8px; padding-bottom: 8px; }
.dgx-header.elementor-sticky--effects .dgx-logo img { max-width: 140px; }

/* Outline (secondary) button */
.dgx-btn-outline .elementor-button { background: transparent; color: var(--dgx-primary); box-shadow: inset 0 0 0 2px var(--dgx-primary); }
.dgx-btn-outline .elementor-button:hover { background: var(--dgx-primary); color: var(--dgx-dgxpaper); }

/* reCAPTCHA badge hidden: forms must show the Google disclosure text instead (Google allows this) */
.grecaptcha-badge { visibility: hidden; }

/* Touch targets >= 44px */
.elementor-nav-menu--main .elementor-item, .elementor-nav-menu--dropdown .elementor-item { min-height: 44px; display: flex; align-items: center; }
.elementor-menu-toggle { min-width: 44px; min-height: 44px; }

/* Motion: honour reduced motion everywhere */
@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after { animation-duration: 0.01ms !important; animation-iteration-count: 1 !important; transition-duration: 0.01ms !important; scroll-behavior: auto !important; }
}

/* Readable line length */
.elementor-widget-text-editor p { max-width: 70ch; }

/* ------------------------------------------------------------------
   Components (hand-written). build_phase1.py appends this file to the
   Kit custom CSS. Use only var(--dgx-*) tokens, no raw hex.
   ------------------------------------------------------------------ */

/* Text on Ink sections */
/* Specificity note: board and tile rules are prefixed with their block class so they win over .dgx-on-ink p */
.dgx-on-ink { color: var(--dgx-dgxmuted); }
.dgx-on-ink h1, .dgx-on-ink h2, .dgx-on-ink h3 { color: var(--dgx-dgxpaper); }
.dgx-on-ink a:not(.elementor-button) { color: var(--dgx-accent); }

/* Outline button on Ink */
.dgx-btn-outline-light .elementor-button { background: transparent; color: var(--dgx-dgxpaper); box-shadow: inset 0 0 0 2px var(--dgx-dgxpaper); }
.dgx-btn-outline-light .elementor-button:hover { background: var(--dgx-dgxpaper); color: var(--dgx-secondary); }

/* ---------------- Monitoring board (hero) ---------------- */
.dgx-board {
  background: var(--dgx-dgxinkraised);
  border: 1px solid rgba(169, 187, 201, 0.2);
  border-radius: var(--dgx-radius-card);
  padding: 28px;
  color: var(--dgx-dgxpaper);
  font-family: var(--dgx-font-body);
  box-shadow: 0 24px 60px rgba(0, 0, 0, 0.25);
}
.dgx-board p { margin: 0; max-width: none; }
.dgx-board__head { display: flex; flex-wrap: wrap; justify-content: space-between; align-items: baseline; gap: 8px 16px; padding-bottom: 18px; border-bottom: 1px solid rgba(169, 187, 201, 0.2); }
.dgx-board .dgx-board__title { font-family: var(--dgx-font-heading); font-weight: 600; font-size: 18px; line-height: 1.3; color: var(--dgx-dgxpaper); }
.dgx-board .dgx-board__meta { font-size: 14px; color: var(--dgx-dgxmuted); display: inline-flex; align-items: center; gap: 8px; }
.dgx-board__pulse { width: 8px; height: 8px; border-radius: 50%; background: var(--dgx-dgxgreenlt); box-shadow: 0 0 0 4px rgba(92, 201, 138, 0.2); }
.dgx-board__rows { list-style: none; margin: 0; padding: 0; }
.dgx-board__row { display: grid; grid-template-columns: 24px 1fr auto; align-items: center; gap: 12px; padding: 14px 0; border-bottom: 1px solid rgba(169, 187, 201, 0.12); font-size: 16px; }
.dgx-board__mark { width: 20px; height: 20px; color: var(--dgx-dgxgreenlt); }
.dgx-board .dgx-board__check { color: var(--dgx-dgxpaper); font-weight: 600; }
.dgx-board .dgx-board__status { color: var(--dgx-dgxmuted); font-size: 15px; text-align: right; }
.dgx-board .dgx-board__foot { padding-top: 18px; font-weight: 600; color: var(--dgx-dgxgreenlt); display: flex; align-items: center; gap: 10px; }
.dgx-board__foot svg { width: 20px; height: 20px; flex: none; }
.dgx-sr { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; }

/* The one orchestrated moment: rows tick in on first load, 200 ms stagger */
@media (prefers-reduced-motion: no-preference) {
  .dgx-board__row, .dgx-board__foot { animation: dgx-tick 360ms ease-out both; }
  .dgx-board__row:nth-child(1) { animation-delay: 200ms; }
  .dgx-board__row:nth-child(2) { animation-delay: 400ms; }
  .dgx-board__row:nth-child(3) { animation-delay: 600ms; }
  .dgx-board__row:nth-child(4) { animation-delay: 800ms; }
  .dgx-board__row:nth-child(5) { animation-delay: 1000ms; }
  .dgx-board__row:nth-child(6) { animation-delay: 1200ms; }
  .dgx-board__foot { animation-delay: 1500ms; }
  .dgx-board__row .dgx-board__mark { animation: dgx-mark 300ms ease-out both; animation-delay: inherit; }
}
@keyframes dgx-tick { from { opacity: 0; transform: translateY(4px); } to { opacity: 1; transform: none; } }
@keyframes dgx-mark { from { transform: scale(0.4); } to { transform: none; } }

/* ---------------- Client logo strip ---------------- */
.dgx-logos img { max-height: 44px; width: auto; filter: grayscale(1); opacity: 0.7; }

/* ---------------- Service tiles ---------------- */
.dgx-tile { background: var(--dgx-dgxpaper); border: 1px solid var(--dgx-dgxline); border-radius: var(--dgx-radius-card); text-decoration: none; transition: border-color var(--dgx-hover) ease, box-shadow var(--dgx-hover) ease, transform var(--dgx-hover) ease; }
.dgx-tile:hover { border-color: var(--dgx-primary); box-shadow: var(--dgx-shadow-soft); }
.dgx-tile__icon svg { width: 32px; height: 32px; color: var(--dgx-primary); display: block; }
.dgx-tile__more { font-family: var(--dgx-font-heading); font-weight: 600; font-size: 16px; color: var(--dgx-primary); margin-top: auto; }
.dgx-tile--lead { background: var(--dgx-secondary); border-color: var(--dgx-secondary); }
.dgx-tile--lead .dgx-tile__icon svg { color: var(--dgx-dgxgreenlt); }
.dgx-tile--lead .dgx-tile__more { color: var(--dgx-accent); }

/* ---------------- How we work ---------------- */
.dgx-step__num { width: 44px; height: 44px; border-radius: 50%; display: grid; place-items: center; background: var(--dgx-primary); color: var(--dgx-dgxpaper); font-family: var(--dgx-font-heading); font-weight: 700; font-size: 18px; }

/* ---------------- Track record ---------------- */
.dgx-stat__figure .elementor-heading-title { font-variant-numeric: tabular-nums; }

/* ---------------- Forms ---------------- */
.dgx-form .elementor-field-group .elementor-field-label { margin-bottom: 6px; }
.dgx-form .elementor-message { font-weight: 600; }
.dgx-form .elementor-message.elementor-message-success { color: var(--dgx-dgxgreen); }
.dgx-recaptcha-note, .dgx-recaptcha-note a { font-size: 13px; color: var(--dgx-dgxslate); }

/* Direct contact list */
.dgx-direct a { font-weight: 600; }/* End custom CSS */