.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-dgxhaze:#F5F8FA;--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-color-dgxstar:#F2A900;--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:56px;--e-global-typography-dgxh1-font-weight:700;--e-global-typography-dgxh1-line-height:1.1em;--e-global-typography-dgxh1-letter-spacing:-0.56px;--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:1400px;}.e-con{--container-max-width:1400px;--container-default-padding-top:0px;--container-default-padding-right:40px;--container-default-padding-bottom:0px;--container-default-padding-left:40px;}.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:46px;--e-global-typography-dgxh1-letter-spacing:-0.46px;--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:36px;--e-global-typography-dgxh1-letter-spacing:-0.36px;--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:20px;--container-default-padding-bottom:0px;--container-default-padding-left:20px;}}/* 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-dgxhaze: #F5F8FA; /* Haze */
  --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-dgxstar: #F2A900; /* Rating star */
  --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-ease-out: cubic-bezier(0.23, 1, 0.32, 1);
  --dgx-ease-in-out: cubic-bezier(0.77, 0, 0.175, 1);
  --dgx-container: 1400px;
}

/* 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: the logo scales down on scroll (Pro sticky adds .elementor-sticky--effects).
   transform only, so scrolling never triggers layout; the header keeps its height. */
.dgx-header .dgx-logo img { transform-origin: left center; transition: transform 200ms var(--dgx-ease-out); }
.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-logo img { transform: scale(0.78); }

/* Pressables have their own pressed state: no grey tap flash on phones */
.elementor-button, .elementor-nav-menu a, .elementor-menu-toggle, .dgx-card, .dgx-tile, .dgx-quotes__nav button,
.dgx-spec__toggle, .dgx-faq__item summary, .dgx-wa { -webkit-tap-highlight-color: transparent; }

/* 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 var(--dgx-ease-out) both; }
  .dgx-board__row:nth-child(1) { animation-delay: 150ms; }
  .dgx-board__row:nth-child(2) { animation-delay: 250ms; }
  .dgx-board__row:nth-child(3) { animation-delay: 350ms; }
  .dgx-board__row:nth-child(4) { animation-delay: 450ms; }
  .dgx-board__row:nth-child(5) { animation-delay: 550ms; }
  .dgx-board__row:nth-child(6) { animation-delay: 650ms; }
  .dgx-board__foot { animation-delay: 850ms; }
  .dgx-board__row .dgx-board__mark { animation: dgx-mark 300ms cubic-bezier(.34, 1.3, .64, 1) both; animation-delay: inherit; }
}
@keyframes dgx-tick { from { opacity: 0; transform: translateY(4px); } to { opacity: 1; transform: none; } }
@keyframes dgx-mark { from { opacity: 0; transform: scale(0.8); } to { opacity: 1; 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); }

/* Product cards: each product has its own colour from the palette (tint, top bar, icon tile).
   Pro = Demongrafix blue, Estate = check green, Booking = star amber, Book Pro (the platform) = Ink.
   Text contrast: #8A5A00 on the amber tint 5.5:1; Sky on Ink 6.0:1; Muted on Ink 8.1:1. */
.dgx-tile.dgx-prod { --prod: var(--dgx-primary); --prod-ink: var(--dgx-primary); --prod-tint: #EEF5FA; --prod-chip: #DCEBF5;
  background: var(--prod-tint); border-color: transparent; box-shadow: inset 0 4px 0 var(--prod); }
.dgx-tile.dgx-prod--dg-estate { --prod: var(--dgx-dgxgreen); --prod-ink: var(--dgx-dgxgreen); --prod-tint: #EEF6F1; --prod-chip: #D7ECDF; }
.dgx-tile.dgx-prod--dg-booking { --prod: var(--dgx-dgxstar); --prod-ink: #8A5A00; --prod-tint: #FDF7E8; --prod-chip: #FBEACB; }
.dgx-tile.dgx-prod--dg-book-pro { --prod: var(--dgx-accent); --prod-ink: var(--dgx-accent); --prod-tint: var(--dgx-secondary); --prod-chip: rgba(54, 169, 225, 0.16); }
.dgx-prod .dgx-tile__icon { display: inline-grid; place-items: center; width: 56px; height: 56px; border-radius: 14px; background: var(--prod-chip); }
.dgx-prod .dgx-tile__icon svg { width: 28px; height: 28px; color: var(--prod-ink); }
.dgx-prod .dgx-prod__sector p, .dgx-prod .dgx-tile__more { color: var(--prod-ink); }
.dgx-tile.dgx-prod:hover { border-color: transparent; box-shadow: inset 0 4px 0 var(--prod), var(--dgx-shadow-soft); }
.dgx-prod--dg-book-pro .elementor-heading-title { color: var(--dgx-dgxpaper); }
.dgx-prod--dg-book-pro .dgx-prod__text p { color: var(--dgx-dgxmuted); }
.dgx-tile.dgx-prod--dg-book-pro:hover { box-shadow: inset 0 4px 0 var(--prod), 0 16px 40px rgba(14, 36, 51, 0.28); }

/* ---------------- 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 { list-style: none; margin: 0; padding: 0; display: grid; gap: 8px; }
.dgx-direct a { font-weight: 600; }

/* Acceptance checkbox: bigger hit area */
.dgx-form input[type="checkbox"] { width: 20px; height: 20px; margin-right: 8px; vertical-align: middle; accent-color: var(--dgx-primary); }

/* Buttons never wrap */
.elementor-button { white-space: nowrap; }

/* ---------------- Case studies ---------------- */
.dgx-card { display: flex; flex-direction: column; text-decoration: none; color: inherit; }
.dgx-card .dgx-card__img img { width: 100%; aspect-ratio: 16 / 10; object-fit: cover; border-radius: var(--dgx-radius-card); background: var(--dgx-dgxmist); transition: transform var(--dgx-hover) ease; }
.dgx-card:hover .elementor-heading-title { color: var(--dgx-primary); }
.dgx-chips p { margin: 0; font-weight: 600; }
.dgx-shot img { width: 100%; height: auto; border-radius: var(--dgx-radius-card); box-shadow: var(--dgx-shadow-soft); }
.dgx-gallery .elementor-widget-image:empty, .dgx-gallery .elementor-widget-image .elementor-widget-container:empty { display: none; }
/* Ticks: a soft tinted circle with a green check (lighter than a solid dot, reads as "done" without shouting) */
.dgx-ticks ul { list-style: none; margin: 0; padding: 0; display: grid; gap: 14px; }
.dgx-ticks li { position: relative; padding-left: 36px; line-height: 1.55; }
.dgx-ticks li::before { content: ""; position: absolute; left: 0; top: 0.12em; width: 24px; height: 24px; border-radius: 50%; background: #E3F1E9 url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%2317734A' stroke-width='3' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M20 6 9 17l-5-5'/%3E%3C/svg%3E") center / 13px no-repeat; }
.dgx-on-ink .dgx-ticks li::before { background: rgba(92, 201, 138, 0.16) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%235CC98A' stroke-width='3' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M20 6 9 17l-5-5'/%3E%3C/svg%3E") center / 13px no-repeat; }
.dgx-cta-band { text-align: center; }
.dgx-cta-band p { margin-left: auto; margin-right: auto; }

/* Taxonomy filter as pills */
.dgx-filter .e-filter-item { border: 1px solid var(--dgx-dgxline); border-radius: var(--dgx-radius-button); padding: 10px 18px; min-height: 44px; background: var(--dgx-dgxpaper); color: var(--dgx-secondary); font-weight: 600; }
.dgx-filter .e-filter-item[aria-pressed="true"] { background: var(--dgx-secondary); border-color: var(--dgx-secondary); color: var(--dgx-dgxpaper); }

/* Case study meta row and post navigation */
.dgx-meta p { margin: 0; }
.dgx-meta .e-con { border-top: 1px solid var(--dgx-dgxline); padding-top: 12px; }
.elementor-post-navigation .post-navigation__prev--label, .elementor-post-navigation .post-navigation__next--label { text-transform: none; letter-spacing: 0; }

/* ---------------- Phase 4 pages ---------------- */
.dgx-measure .elementor-heading-title { max-width: 20ch; }
.dgx-narrow > .e-con-inner { max-width: 860px; }
.dgx-pills ul { list-style: none; margin: 0; padding: 0; display: flex; flex-wrap: wrap; gap: 12px; }
.dgx-pills li { border: 1px solid var(--dgx-dgxline); border-radius: var(--dgx-radius-button); padding: 10px 18px; font-weight: 600; color: var(--dgx-secondary); background: var(--dgx-dgxmist); }

/* ---------------- Legal pages ---------------- */
.dgx-legal h2 { font-family: var(--dgx-font-heading); font-size: 24px; line-height: 1.25; margin: 48px 0 12px; color: var(--dgx-secondary); }
.dgx-legal h3 { font-family: var(--dgx-font-heading); font-size: 19px; margin: 28px 0 8px; color: var(--dgx-secondary); }
.dgx-legal h2:first-child { margin-top: 0; }
.dgx-legal ul { padding-left: 1.2em; margin: 0 0 16px; }
.dgx-legal li { margin-bottom: 6px; }
.dgx-table-wrap { overflow-x: auto; margin: 8px 0 24px; }
.dgx-legal table { width: 100%; border-collapse: collapse; font-size: 15px; }
.dgx-legal th, .dgx-legal td { text-align: left; vertical-align: top; padding: 10px 12px; border-bottom: 1px solid var(--dgx-dgxline); }
.dgx-legal th { background: var(--dgx-dgxmist); font-weight: 600; color: var(--dgx-secondary); }

/* ---------------- Campaign pages and /links/ ---------------- */
.dgx-links > .e-con-inner { max-width: 520px; }
.dgx-links .elementor-button { width: 100%; justify-content: center; min-height: 52px; }
html { scroll-padding-top: 96px; }

/* ---------------- Products ---------------- */
.dgx-benefit .dgx-tile__icon svg { color: var(--dgx-dgxgreenlt); width: 28px; height: 28px; }
.dgx-feature .dgx-ticks ul { gap: 10px; }
.dgx-feature .dgx-ticks li { font-size: 16px; }
.dgx-probs li::before { background: #E6ECF0 url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%234A5A66' stroke-width='3' stroke-linecap='round'%3E%3Cpath d='M7 12h10'/%3E%3C/svg%3E") center / 13px no-repeat; }

/* ---------------- Home (brief §0b) ---------------- */
/* Journey card in the hero: numbered steps instead of status checks */
.dgx-journey__num { width: 26px; height: 26px; 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: 13px; }
.dgx-journey .dgx-board__row { grid-template-columns: 30px 1fr auto; padding: 18px 0; }
.dgx-journey .dgx-board__foot svg { color: var(--dgx-dgxgreenlt); }

/* Google rating badge */
.dgx-rating { display: inline-grid; grid-template-columns: auto auto; grid-template-rows: auto auto; column-gap: 14px; align-items: center; text-decoration: none; color: var(--dgx-secondary); }
.dgx-rating__score { grid-row: 1 / span 2; font-family: var(--dgx-font-heading); font-weight: 700; font-size: 48px; line-height: 1; }
.dgx-rating__stars { display: inline-flex; gap: 2px; }
.dgx-rating .dgx-star { width: 22px; height: 22px; color: var(--dgx-dgxstar); fill: var(--dgx-dgxstar); }
.dgx-rating__count { font-size: 15px; color: var(--dgx-dgxslate); font-weight: 600; }
.dgx-rating:hover .dgx-rating__count { color: var(--dgx-primary); text-decoration: underline; }
.dgx-topics__label { margin: 0 0 8px; font-size: 14px; color: var(--dgx-dgxslate); }
.dgx-pills-inline { list-style: none; margin: 0; padding: 0; display: flex; flex-wrap: wrap; gap: 8px; }
.dgx-pills-inline li { border: 1px solid var(--dgx-dgxline); border-radius: var(--dgx-radius-button); padding: 6px 14px; font-size: 15px; font-weight: 600; color: var(--dgx-secondary); background: var(--dgx-dgxmist); }

/* Icon cards (focus points on Ink, USPs on Mist) */
.dgx-icard { background: var(--dgx-dgxpaper); border: 1px solid var(--dgx-dgxline); border-radius: var(--dgx-radius-card); }
.dgx-icard--ink { background: var(--dgx-dgxinkraised); border-color: rgba(169, 187, 201, 0.2); }
.dgx-icard--ink .dgx-tile__icon svg { color: var(--dgx-dgxgreenlt); }
.dgx-wordmarks { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: repeat(2, 1fr); gap: 0; border-top: 1px solid var(--dgx-dgxline); }
.dgx-wordmarks li { font-family: var(--dgx-font-heading); font-weight: 600; font-size: 18px; color: var(--dgx-dgxslate); padding: 16px 4px; border-bottom: 1px solid var(--dgx-dgxline); }
@media (max-width: 767px) { .dgx-wordmarks li { font-size: 16px; padding: 12px 4px; } }

/* ---------------- Journal ---------------- */
.dgx-article p { max-width: none; margin-bottom: 20px; }
.dgx-article h2 { font-size: 28px; }
.dgx-article a { font-weight: 600; }
.dgx-card .elementor-widget-text-editor p { margin: 0; }
.dgx-card--post .dgx-card__img img { aspect-ratio: 1200 / 630; }

/* ---------------- Hero trust line (rating + where our clients are) ---------------- */
.dgx-hero-trust { list-style: none; margin: 8px 0 0; padding: 0; display: flex; flex-wrap: wrap; align-items: center; gap: 10px 20px; font-size: 15px; color: var(--dgx-dgxmuted); }
.dgx-hero-trust li + li { padding-left: 20px; border-left: 1px solid rgba(169, 187, 201, 0.35); }
.dgx-hero-trust a { display: inline-flex; align-items: center; gap: 10px; color: inherit; text-decoration: none; }
.dgx-hero-trust a:hover, .dgx-hero-trust a:focus-visible { color: var(--dgx-dgxpaper); }
.dgx-hero-trust__stars { display: inline-flex; gap: 2px; }
.dgx-hero-trust .dgx-star { width: 16px; height: 16px; color: var(--dgx-dgxstar); fill: var(--dgx-dgxstar); }
@media (max-width: 480px) { .dgx-hero-trust li + li { padding-left: 0; border-left: 0; } }

/* ---------------- Review slider (real Google reviews) ---------------- */
.dgx-quotes { position: relative; }
.dgx-quotes__track { display: flex; overflow-x: auto; scroll-snap-type: x mandatory; scrollbar-width: none; overscroll-behavior-x: contain; border-radius: var(--dgx-radius-card); }
.dgx-quotes__track::-webkit-scrollbar { display: none; }
.dgx-quotes__track:focus-visible { outline: 2px solid var(--dgx-primary); outline-offset: 4px; }
.dgx-quote { flex: 0 0 100%; scroll-snap-align: start; margin: 0; padding: 40px 44px; background: var(--dgx-dgxmist); border-radius: var(--dgx-radius-card); display: flex; flex-direction: column; gap: 20px; min-height: 300px; box-sizing: border-box; }
.dgx-quote__stars { display: block; width: 115px; height: 20px; background: var(--dgx-dgxstar); -webkit-mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M11.525 2.295a.53.53 0 0 1 .95 0l2.31 4.679a2.123 2.123 0 0 0 1.595 1.16l5.166.756a.53.53 0 0 1 .294.904l-3.736 3.638a2.123 2.123 0 0 0-.611 1.878l.882 5.14a.53.53 0 0 1-.771.56l-4.618-2.428a2.122 2.122 0 0 0-1.973 0L6.396 21.01a.53.53 0 0 1-.77-.56l.881-5.139a2.122 2.122 0 0 0-.611-1.879L2.16 9.795a.53.53 0 0 1 .294-.906l5.165-.755a2.122 2.122 0 0 0 1.597-1.16z'/%3E%3C/svg%3E") left center / 23px 20px repeat-x; mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M11.525 2.295a.53.53 0 0 1 .95 0l2.31 4.679a2.123 2.123 0 0 0 1.595 1.16l5.166.756a.53.53 0 0 1 .294.904l-3.736 3.638a2.123 2.123 0 0 0-.611 1.878l.882 5.14a.53.53 0 0 1-.771.56l-4.618-2.428a2.122 2.122 0 0 0-1.973 0L6.396 21.01a.53.53 0 0 1-.77-.56l.881-5.139a2.122 2.122 0 0 0-.611-1.879L2.16 9.795a.53.53 0 0 1 .294-.906l5.165-.755a2.122 2.122 0 0 0 1.597-1.16z'/%3E%3C/svg%3E") left center / 23px 20px repeat-x; }
.dgx-quote__text { margin: 0; padding: 0; border: 0; flex: 1; }
.dgx-quote__text p { margin: 0; font-family: var(--dgx-font-heading); font-weight: 500; font-size: 22px; line-height: 1.5; color: var(--dgx-secondary); text-wrap: pretty; }
.dgx-quote__who { font-style: normal; display: flex; flex-direction: column; gap: 2px; font-size: 15px; color: var(--dgx-dgxslate); }
.dgx-quote__who strong { font-family: var(--dgx-font-heading); font-size: 16px; color: var(--dgx-secondary); }
.dgx-quotes__nav { display: flex; align-items: center; gap: 16px; margin-top: 20px; }
.dgx-quotes__nav button { width: 44px; height: 44px; border-radius: 50%; border: 1px solid var(--dgx-dgxline); background: var(--dgx-dgxpaper); color: var(--dgx-secondary); display: inline-grid; place-items: center; cursor: pointer; padding: 0; }
.dgx-quotes__nav button svg { width: 20px; height: 20px; }
.dgx-quotes__nav button:hover, .dgx-quotes__nav button:focus-visible { background: var(--dgx-dgxpaper); border-color: var(--dgx-primary); color: var(--dgx-primary); }
.dgx-quotes__nav button:focus-visible { outline: 2px solid var(--dgx-primary); outline-offset: 2px; }
.dgx-quotes__count { font-size: 15px; font-weight: 600; color: var(--dgx-dgxslate); font-variant-numeric: tabular-nums; min-width: 3.5em; text-align: center; }
@media (max-width: 767px) {
  .dgx-quote { padding: 28px 24px; min-height: 0; }
  .dgx-quote__text p { font-size: 18px; }
}

/* ---------------- Free website check band ---------------- */
.dgx-check { background: var(--dgx-dgxmist); border: 1px solid var(--dgx-dgxline); border-radius: var(--dgx-radius-card); }
.dgx-check .elementor-widget-container p { margin: 0; }
/* "What you get" on the website check page: a real sequence, so numbered */
.dgx-check-steps { list-style: none; margin: 0; padding: 0; counter-reset: chk; display: grid; gap: 0; }
.dgx-check-steps li { counter-increment: chk; display: grid; grid-template-columns: 40px 1fr; column-gap: 16px; row-gap: 4px; padding: 20px 0; border-bottom: 1px solid rgba(169, 187, 201, 0.2); }
.dgx-check-steps li:first-child { padding-top: 0; }
.dgx-check-steps li::before { content: counter(chk); grid-row: 1 / span 2; width: 32px; height: 32px; border-radius: 50%; background: var(--dgx-primary); color: var(--dgx-dgxpaper); font-family: var(--dgx-font-heading); font-weight: 700; font-size: 15px; display: grid; place-items: center; }
.dgx-check-steps strong { font-family: var(--dgx-font-heading); font-size: 18px; color: var(--dgx-dgxpaper); }
.dgx-check-steps span { color: var(--dgx-dgxmuted); }

/* tiles: equal height in a grid row, "About ..." link pinned to the bottom */
.dgx-tile { height: 100%; }
.dgx-tile > .elementor-widget:last-child, .dgx-tile > .e-con-inner > .elementor-widget:last-child { margin-top: auto; }

/* ================= Product pages (8 Oct 2026) ================= */
/* Device frames: same line language as the hero blueprint (sky hairline, ink title bar) */
.dgx-device { position: relative; margin: 0; width: 100%; }
.dgx-device--both { padding: 0 9% 9% 0; }
.dgx-browser { border-radius: 12px; overflow: hidden; background: var(--dgx-dgxpaper); border: 1px solid rgba(54, 169, 225, 0.45); box-shadow: 0 24px 60px rgba(14, 36, 51, 0.16); }
.dgx-device--ink .dgx-browser { box-shadow: 0 30px 80px rgba(0, 0, 0, 0.45); }
.dgx-browser__bar { height: 30px; background: var(--dgx-dgxinkraised); display: flex; align-items: center; gap: 6px; padding: 0 12px; }
.dgx-browser__bar i { width: 8px; height: 8px; border-radius: 50%; background: rgba(169, 187, 201, 0.45); }
.dgx-browser__bar span { margin-left: 12px; flex: 0 1 220px; height: 18px; border-radius: 9px; background: rgba(169, 187, 201, 0.16); color: var(--dgx-dgxmuted); font-size: 11px; line-height: 18px; padding: 0 10px; white-space: nowrap; overflow: hidden; }
.dgx-browser__screen { aspect-ratio: 16 / 10; overflow: hidden; background: var(--dgx-dgxmist); }
.dgx-browser__screen img, .dgx-phone__screen img, .dgx-screen { display: block; width: 100%; height: 100%; object-fit: cover; object-position: top center; }
.dgx-phone { width: 27%; aspect-ratio: 9 / 19.5; border-radius: 24px; padding: 6px; background: var(--dgx-secondary); box-shadow: 0 20px 50px rgba(14, 36, 51, 0.28), inset 0 0 0 1px rgba(54, 169, 225, 0.5); }
.dgx-phone__screen { width: 100%; height: 100%; border-radius: 18px; overflow: hidden; background: var(--dgx-dgxmist); }
.dgx-device--both .dgx-phone { position: absolute; right: 0; bottom: 0; }
.dgx-device--phone { display: flex; justify-content: center; padding: 24px 0; background: radial-gradient(closest-side, rgba(54, 169, 225, 0.12), transparent); }
.dgx-device--phone .dgx-phone { width: min(250px, 58%); }
@media (max-width: 767px) { .dgx-phone { border-radius: 18px; padding: 4px; } .dgx-phone__screen { border-radius: 14px; } .dgx-browser__bar { height: 22px; } .dgx-browser__bar span { display: none; } }

/* Hero: breadcrumb and "made for" chips */
.dgx-crumb a { color: var(--dgx-accent); text-decoration: none; }
.dgx-crumb a:hover { text-decoration: underline; }
.dgx-madefor { display: flex; flex-wrap: wrap; align-items: center; gap: 8px 10px; margin-top: 8px; }
.dgx-madefor p { margin: 0 4px 0 0; font-size: 15px; color: var(--dgx-dgxmuted); }
.dgx-madefor ul { list-style: none; margin: 0; padding: 0; display: contents; }
.dgx-madefor li { font-size: 14px; font-weight: 600; color: var(--dgx-dgxpaper); padding: 6px 12px; border-radius: var(--dgx-radius-button); border: 1px solid rgba(169, 187, 201, 0.3); background: rgba(21, 50, 74, 0.6); }

/* What changes: problem and fix side by side, rows like the monitoring board */
.dgx-ledger { background: var(--dgx-dgxpaper); border: 1px solid var(--dgx-dgxline); border-radius: var(--dgx-radius-card); overflow: hidden; }
.dgx-ledger__head, .dgx-ledger__row { display: grid; grid-template-columns: 1fr 1fr; }
.dgx-ledger__head span { padding: 14px 28px; font-family: var(--dgx-font-heading); font-weight: 600; font-size: 15px; color: var(--dgx-dgxslate); border-bottom: 1px solid var(--dgx-dgxline); }
.dgx-ledger__head span + span { color: var(--dgx-dgxgreen); background: rgba(23, 115, 74, 0.06); }
.dgx-ledger__row + .dgx-ledger__row { border-top: 1px solid var(--dgx-dgxline); }
.dgx-ledger__row p { margin: 0; padding: 20px 28px 20px 60px; position: relative; }
.dgx-ledger__was { color: var(--dgx-dgxslate); }
.dgx-ledger__now { color: var(--dgx-secondary); font-weight: 600; background: rgba(23, 115, 74, 0.06); }
.dgx-ledger__row p::before { content: ""; position: absolute; left: 28px; top: 22px; width: 20px; height: 20px; border-radius: 50%; }
.dgx-ledger__was::before { background: var(--dgx-dgxline) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%234A5A66' stroke-width='3' stroke-linecap='round'%3E%3Cpath d='M6 12h12'/%3E%3C/svg%3E") center / 12px no-repeat; }
.dgx-ledger__now::before { background: var(--dgx-dgxgreen) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='white' stroke-width='3' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M20 6 9 17l-5-5'/%3E%3C/svg%3E") center / 12px no-repeat; }
@media (max-width: 767px) {
  .dgx-ledger__head { display: none; }
  .dgx-ledger__row { grid-template-columns: 1fr; }
  .dgx-ledger__row p { padding: 14px 20px 14px 52px; }
  .dgx-ledger__row p::before { left: 20px; top: 16px; }
  .dgx-ledger__was { padding-bottom: 8px !important; }
}

/* Main features: copy beside a device */
.dgx-highlight .dgx-ticks ul { gap: 10px; }

/* All features: a typographic spec sheet, collapsed behind a button (only when JS is on) */
.dgx-spec__body { display: grid; grid-template-columns: repeat(auto-fill, minmax(260px, 1fr)); gap: 0 48px; align-items: start; }
.dgx-spec__group { padding: 0 0 32px; }
.dgx-spec__group h3 { margin: 0 0 10px; padding-bottom: 8px; border-bottom: 2px solid var(--dgx-primary); font-family: var(--dgx-font-heading); font-size: 17px; font-weight: 600; color: var(--dgx-secondary); }
.dgx-spec__group ul { list-style: none; margin: 0; padding: 0; }
.dgx-spec__group li { position: relative; padding: 8px 0 8px 24px; font-size: 15px; line-height: 1.45; color: var(--dgx-dgxslate); border-bottom: 1px solid var(--dgx-dgxline); }
.dgx-spec__group li::before { content: ""; position: absolute; left: 0; top: 11px; width: 13px; height: 13px; background: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%230069A7' stroke-width='3' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M20 6 9 17l-5-5'/%3E%3C/svg%3E") center / 13px no-repeat; }
.dgx-spec__toggle { display: none; }
.is-collapsible .dgx-spec__toggle { display: inline-flex; align-items: center; gap: 8px; margin-top: 16px; min-height: 44px; padding: 10px 22px; border-radius: var(--dgx-radius-button); border: 1px solid var(--dgx-primary); background: var(--dgx-dgxpaper); color: var(--dgx-primary); font-family: var(--dgx-font-heading); font-weight: 600; font-size: 15px; cursor: pointer; }
.is-collapsible .dgx-spec__toggle:hover, .is-collapsible .dgx-spec__toggle:focus-visible { background: var(--dgx-primary); color: var(--dgx-dgxpaper); }
.is-collapsible .dgx-spec__toggle:focus-visible { outline: 2px solid var(--dgx-primary); outline-offset: 3px; }
.is-collapsible .dgx-spec__body { overflow: hidden; transition: max-height 300ms var(--dgx-ease-out); }
.is-collapsed .dgx-spec__body { max-height: 300px; -webkit-mask-image: linear-gradient(#000 55%, transparent); mask-image: linear-gradient(#000 55%, transparent); }
@media (prefers-reduced-motion: reduce) { .is-collapsible .dgx-spec__body { transition: none; } }

/* ================= Layout rhythm (8 Oct 2026): 1400 px content, room to breathe ================= */
/* Section headings: a readable measure and balanced lines on wide screens */
.e-parent > .e-con-inner > .elementor-widget-heading h2.elementor-heading-title,
.e-parent > .e-con-inner > .e-con > .elementor-widget-heading h2.elementor-heading-title { max-width: 28ch; text-wrap: balance; }
.elementor-widget-heading h1.elementor-heading-title { text-wrap: balance; }
/* Intro paragraphs under a section heading stay narrow even when the section is 1400 px */
.e-parent > .e-con-inner > .elementor-widget-text-editor, .e-parent > .e-con-inner > .e-con > .elementor-widget-text-editor { max-width: 68ch; }
/* Plain lists (legal pages, articles): brand markers and even spacing */
.elementor-widget-text-editor:not(.dgx-ticks) ul:not([role]) { padding-left: 1.25em; }
.elementor-widget-text-editor:not(.dgx-ticks) ul:not([role]) li { margin: 0 0 8px; padding-left: 4px; }
.elementor-widget-text-editor:not(.dgx-ticks) ul:not([role]) li::marker { color: var(--dgx-accent); }
.elementor-widget-text-editor:not(.dgx-ticks) ol li::marker { color: var(--dgx-primary); font-weight: 600; }

/* FAQ: native details/summary (QA step 9) */
.dgx-faq__list { border-top: 1px solid var(--dgx-dgxline); }
.dgx-faq__item { border-bottom: 1px solid var(--dgx-dgxline); }
.dgx-faq__item summary { list-style: none; display: flex; align-items: center; justify-content: space-between; gap: 24px; min-height: 44px; padding: 22px 0; cursor: pointer; }
.dgx-faq__item summary::-webkit-details-marker { display: none; }
.dgx-faq__item summary:focus-visible { outline: 2px solid var(--dgx-primary); outline-offset: 4px; border-radius: 4px; }
.dgx-faq__q { margin: 0; font-family: var(--dgx-font-heading); font-weight: 600; font-size: 19px; line-height: 1.35; color: var(--dgx-secondary); }
.dgx-faq__item summary:hover .dgx-faq__q, .dgx-faq__item[open] .dgx-faq__q { color: var(--dgx-primary); }
.dgx-faq__icon { position: relative; flex: 0 0 28px; height: 28px; border-radius: 50%; background: var(--dgx-dgxmist); }
.dgx-faq__icon::before, .dgx-faq__icon::after { content: ""; position: absolute; left: 50%; top: 50%; width: 12px; height: 2px; margin: -1px 0 0 -6px; border-radius: 1px; background: var(--dgx-primary); transition: transform .2s ease; }
.dgx-faq__icon::after { transform: rotate(90deg); }
.dgx-faq__item[open] .dgx-faq__icon::after { transform: rotate(0deg); }
.dgx-faq__a { padding: 0 52px 24px 0; color: var(--dgx-text); }
.dgx-faq__a p { margin: 0; }
@media (prefers-reduced-motion: no-preference) { .dgx-faq__item[open] .dgx-faq__a { animation: dgx-faq-in 200ms var(--dgx-ease-out); } }
@keyframes dgx-faq-in { from { opacity: 0; transform: translateY(-4px); } to { opacity: 1; transform: none; } }
@media (max-width: 767px) { .dgx-faq__q { font-size: 17px; } .dgx-faq__a { padding-right: 0; } }
/* Loop cards: the title link covers the whole card */
.dgx-card { position: relative; }
.dgx-card .elementor-heading-title a { color: inherit; text-decoration: none; }
.dgx-card .elementor-heading-title a::after { content: ""; position: absolute; inset: 0; z-index: 1; }
.dgx-card .elementor-element, .dgx-card .elementor-widget-container { position: static; } /* so the link covers the image too (QA) */
.dgx-card .elementor-heading-title a:focus-visible { outline: none; }
.dgx-card:focus-within { outline: 2px solid var(--dgx-primary); outline-offset: 4px; border-radius: var(--dgx-radius-card); }
.dgx-card:hover .elementor-heading-title { color: var(--dgx-primary); }
/* review caption is a p now */
.dgx-quote__who { margin: 0; }

/* WhatsApp button (our own, fixed bottom right; replaces Elementor Floating Buttons) */
.dgx-wa { position: fixed; right: 20px; bottom: 20px; z-index: 9990; display: inline-flex; align-items: center; gap: 10px; height: 56px; min-width: 56px; padding: 0 16px; border-radius: 28px; background: #15803D; color: #FFFFFF; font-family: var(--dgx-font-heading); font-weight: 700; font-size: 15px; text-decoration: none; box-shadow: 0 10px 28px rgba(14, 36, 51, 0.28); }
.dgx-wa svg { width: 26px; height: 26px; flex: none; }
body a.dgx-wa, body a.dgx-wa:hover, body a.dgx-wa:focus, body a.dgx-wa:visited { color: #FFFFFF; }
.dgx-wa:hover { background: #116932; } /* white on green: 5.0:1 (#15803D), 6.6:1 on hover */
.dgx-wa:focus-visible { outline: 3px solid var(--dgx-primary); outline-offset: 3px; }
@media (max-width: 767px) { .dgx-wa { right: 16px; bottom: 16px; padding: 0; width: 56px; justify-content: center; } .dgx-wa__label { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; } }
@media (hover: hover) and (prefers-reduced-motion: no-preference) { .dgx-wa:hover { transform: translateY(-2px); box-shadow: 0 14px 34px rgba(14, 36, 51, 0.32); } }
@media print { .dgx-wa { display: none; } }

/* ---------------- Contact block (15 Oct 2026): one split card, Ink panel joined to the form ---------------- */
.dgx-cblock { border-radius: 20px; overflow: hidden; box-shadow: 0 30px 70px rgba(14, 36, 51, 0.14), 0 4px 14px rgba(14, 36, 51, 0.06); }
.dgx-cpanel { position: relative; isolation: isolate; }
.dgx-cpanel::before { content: ""; position: absolute; inset: 0; z-index: -1; pointer-events: none;
  background: radial-gradient(circle at 1px 1px, rgba(54, 169, 225, 0.22) 1.4px, transparent 0) 0 0 / 28px 28px;
  -webkit-mask-image: radial-gradient(ellipse 80% 60% at 100% 100%, #000, transparent 70%); mask-image: radial-gradient(ellipse 80% 60% at 100% 100%, #000, transparent 70%); }
/* direct lines: big tappable rows */
.dgx-clines { list-style: none; margin: 8px 0 0; padding: 0; display: grid; gap: 10px; }
.dgx-cline { display: flex; align-items: center; gap: 16px; min-height: 64px; padding: 12px 16px; border-radius: 14px;
  background: rgba(255, 255, 255, 0.05); border: 1px solid rgba(169, 187, 201, 0.18); color: #fff; text-decoration: none;
  transition: background-color .15s ease, border-color .15s ease, transform 120ms var(--dgx-ease-out); }
.dgx-cline__ic { display: grid; place-items: center; width: 44px; height: 44px; border-radius: 12px; flex: none; background: rgba(54, 169, 225, 0.16); color: var(--dgx-accent); }
.dgx-cline__ic svg { width: 22px; height: 22px; }
.dgx-cline__ic--wa { background: #15803D; color: #fff; }
.dgx-cline__txt { display: flex; flex-direction: column; gap: 2px; min-width: 0; }
.dgx-cline__k { font-size: 14px; color: var(--dgx-dgxmuted); }
.dgx-cline__v { font-family: var(--dgx-font-heading); font-weight: 600; font-size: 18px; color: #fff; overflow-wrap: anywhere; }
.dgx-cline__go { margin-left: auto; color: var(--dgx-dgxmuted); flex: none; }
.dgx-cline__go svg { width: 20px; height: 20px; display: block; transition: transform .2s var(--dgx-ease-out); }
.dgx-cline:focus-visible { outline: 3px solid var(--dgx-accent); outline-offset: 2px; }
.dgx-cline:active { transform: scale(.98); }
@media (hover: hover) and (pointer: fine) {
  .dgx-cline:hover { background: rgba(255, 255, 255, 0.09); border-color: rgba(54, 169, 225, 0.5); }
  .dgx-cline:hover .dgx-cline__go { color: var(--dgx-accent); }
  .dgx-cline:hover .dgx-cline__go svg { transform: translateX(3px); }
}
/* proof: reply time, languages, rating */
.dgx-cproof { list-style: none; margin: 16px 0 0; padding: 20px 0 0; border-top: 1px solid rgba(169, 187, 201, 0.18); display: grid; gap: 12px; }
.dgx-cproof li { display: flex; align-items: center; gap: 12px; color: var(--dgx-dgxmuted); font-size: 16px; }
.dgx-cproof__ic { color: var(--dgx-dgxgreenlt); display: inline-flex; flex: none; }
.dgx-cproof__ic svg { width: 20px; height: 20px; }
.dgx-cproof__rating { display: inline-flex; align-items: center; gap: 10px; margin-top: 18px; color: #fff; font-family: var(--dgx-font-heading); font-weight: 600; font-size: 15px; text-decoration: none; }
.dgx-cproof__stars { display: inline-flex; gap: 2px; color: var(--dgx-dgxstar); }
.dgx-cproof__stars svg { width: 18px; height: 18px; }
.dgx-cpanel a.dgx-cproof__rating, .dgx-cpanel a.dgx-cproof__rating:hover { color: #fff; }
.dgx-cproof__rating:hover span:last-child, .dgx-cproof__rating:focus-visible span:last-child { text-decoration: underline; }
.dgx-cpanel .dgx-cproof__rating:focus-visible { outline: 3px solid var(--dgx-accent); outline-offset: 3px; border-radius: 4px; }
/* form side: softer fields, clear focus */
.dgx-cform .dgx-form .elementor-field-group .elementor-field-label { font-family: var(--dgx-font-heading); font-weight: 600; font-size: 15px; color: var(--dgx-secondary); }
.dgx-cform .dgx-form .elementor-field-group .elementor-field-textual { background-color: var(--dgx-dgxhaze); border-color: var(--dgx-dgxline); border-radius: 10px; min-height: 52px;
  transition: border-color .15s ease, background-color .15s ease, box-shadow .15s ease; }
.dgx-cform .dgx-form .elementor-field-group .elementor-field-textual:hover { border-color: var(--dgx-dgxfield); }
.dgx-cform .dgx-form .elementor-field-group .elementor-field-textual:focus { background-color: #fff !important; border-color: var(--dgx-primary); box-shadow: 0 0 0 4px rgba(0, 105, 167, 0.15); }
.dgx-cform .dgx-form .elementor-field-group textarea.elementor-field-textual { min-height: 120px; }
.dgx-cform .dgx-form .elementor-button { min-height: 56px; font-size: 17px; }
/* "What do you need?" as chips: the radio stays real (keyboard, required), only its look changes */
.dgx-form .elementor-field-type-radio .elementor-field-subgroup { display: flex; flex-wrap: wrap; gap: 10px; }
.dgx-form .elementor-field-type-radio .elementor-field-option { position: relative; margin: 0; }
.dgx-form .elementor-field-type-radio .elementor-field-option input { position: absolute; inset: 0; z-index: 1; opacity: 0; margin: 0; cursor: pointer; } /* z-index: the pressed chip scales, and a transformed label would otherwise paint over the input and swallow the click */
.dgx-form .elementor-field-type-radio .elementor-field-option label { display: inline-flex; align-items: center; min-height: 44px; padding: 10px 18px; border-radius: 999px;
  border: 1px solid var(--dgx-dgxline); background: var(--dgx-dgxhaze); color: var(--dgx-secondary); font-size: 15px; font-weight: 600; cursor: pointer;
  transition: background-color .15s ease, border-color .15s ease, color .15s ease, transform 120ms var(--dgx-ease-out); }
.dgx-form .elementor-field-type-radio .elementor-field-option:hover label { border-color: var(--dgx-primary); }
.dgx-form .elementor-field-type-radio .elementor-field-option input:checked + label { background: var(--dgx-primary); border-color: var(--dgx-primary); color: #fff; }
.dgx-form .elementor-field-type-radio .elementor-field-option input:focus-visible + label { outline: 3px solid var(--dgx-primary); outline-offset: 2px; }
.dgx-form .elementor-field-type-radio .elementor-field-option input:active + label { transform: scale(.97); }
@media (max-width: 767px) { .dgx-cblock { border-radius: 16px; } .dgx-cline { padding: 10px 12px; gap: 12px; } .dgx-cline__go { display: none; } .dgx-cline__k { font-size: 13px; } .dgx-cline__v { font-size: 16px; } }

/* Booking popup date picker (flatpickr): undo the Kit's input styles inside the calendar, brand the selection */
.flatpickr-calendar { font-family: var(--dgx-font-body); border-radius: 12px; box-shadow: 0 20px 50px rgba(14, 36, 51, 0.2); }
.flatpickr-calendar .flatpickr-current-month { font-size: 16px; font-family: var(--dgx-font-heading); font-weight: 600; }
.flatpickr-calendar .numInputWrapper { width: 6.5ch; }
body .flatpickr-calendar .flatpickr-current-month input.cur-year, body .flatpickr-calendar .flatpickr-current-month .flatpickr-monthDropdown-months { font: inherit; padding: 0 0 0 .4ch; border: 0; background: transparent; min-height: 0; height: auto; box-shadow: none; color: var(--dgx-secondary); }
.flatpickr-day.selected, .flatpickr-day.selected:hover, .flatpickr-day.selected:focus { background: var(--dgx-primary); border-color: var(--dgx-primary); color: #fff; }
.flatpickr-day.today { border-color: var(--dgx-primary); }
.flatpickr-day:focus-visible { outline: 2px solid var(--dgx-primary); outline-offset: 1px; }

/* Cookie banner (CookieYes): even spacing between the buttons. Customise and Reject side by side, Accept full width below */
.cky-consent-container .cky-notice-btn-wrapper { display: grid; grid-template-columns: 1fr 1fr; gap: 10px; }
.cky-consent-container .cky-notice-btn-wrapper .cky-btn { margin: 0; width: 100%; }
.cky-consent-container .cky-notice-btn-wrapper .cky-btn-accept { grid-column: 1 / -1; margin: 0; }

/* ------------------------------------------------------------------
   Motion layer (brief §0c, design-system/demongrafix/MASTER.md).
   Appended to the Kit custom CSS by build_phase1.py after components.css.
   Everything animated is wrapped in prefers-reduced-motion: no-preference;
   hover effects only on hover-capable devices.
   ------------------------------------------------------------------ */

/* ================= Hero blueprint (the signature) ================= */
.dgx-hero-art { width: 100%; max-width: 640px; margin-inline: auto; }
@media (min-width: 1025px) { .dgx-hero-art { width: 112%; max-width: none; margin-inline: -6%; } } /* let the art breathe past the column on desktop */
.dga { width: 100%; height: auto; display: block; overflow: visible; }
.dga-dot { fill: var(--dgx-accent); opacity: 0.22; }
.dga-glow-0 { stop-color: var(--dgx-accent); stop-opacity: 0; }
.dga-glow-1 { stop-color: var(--dgx-accent); stop-opacity: 0.22; }
.dga-frame-bg { fill: var(--dgx-dgxinkraised); }
.dga-frame { fill: none; stroke: var(--dgx-accent); stroke-width: 1.5; stroke-dasharray: 1; stroke-dashoffset: 0; }
.dga-btn { fill: rgba(169, 187, 201, 0.45); }
.dga-url { fill: rgba(169, 187, 201, 0.16); }
.dga-b { fill: rgba(54, 169, 225, 0.12); stroke: rgba(54, 169, 225, 0.35); stroke-width: 1; }
.dga-b--img { fill: rgba(54, 169, 225, 0.08); }
.dga-b--foot { fill: rgba(54, 169, 225, 0.06); }
.dga-t1 { fill: var(--dgx-dgxpaper); opacity: 0.85; }
.dga-t2 { fill: var(--dgx-dgxmuted); opacity: 0.75; }
.dga-t3 { fill: var(--dgx-dgxmuted); opacity: 0.4; }
.dga-cta { fill: var(--dgx-primary); }
.dga-line { fill: none; stroke: var(--dgx-accent); stroke-width: 1.5; stroke-linecap: round; stroke-linejoin: round; opacity: 0.8; }
.dga-scan-line { fill: var(--dgx-accent); }
.dga-chk { transform-box: fill-box; transform-origin: center; }
.dga-chk circle { fill: var(--dgx-dgxgreenlt); transform-box: fill-box; transform-origin: center; }
.dga-chk path { fill: none; stroke: var(--dgx-secondary); stroke-width: 2; stroke-linecap: round; stroke-linejoin: round; }
.dga-wire { fill: none; stroke: var(--dgx-accent); stroke-width: 1.2; stroke-dasharray: 0.03 0.03; opacity: 0.55; }
.dga-node > circle:first-child { fill: var(--dgx-dgxinkraised); stroke: rgba(54, 169, 225, 0.55); stroke-width: 1.2; }
.dga-ico { fill: none; stroke: var(--dgx-dgxpaper); stroke-width: 1.6; stroke-linecap: round; stroke-linejoin: round; }
.dga-led { fill: var(--dgx-dgxgreenlt); }
.dga-pulse { fill: var(--dgx-dgxgreenlt); opacity: 0; }

@media (prefers-reduced-motion: no-preference) {
  /* one-time build sequence */
  .dga-frame { stroke-dashoffset: 1; animation: dga-draw 1.2s var(--dgx-ease-in-out) .2s forwards; }
  .dga-bar { animation-delay: .9s; }
  .dga-frame-bg, .dga-btn, .dga-url { opacity: 0; animation: dga-fade .6s var(--dgx-ease-out) .7s forwards; }
  .dga-blk { opacity: 0; transform: translateY(8px); animation: dga-rise .5s var(--dgx-ease-out) forwards; animation-delay: calc(1s + var(--i) * 120ms); }
  .dga-chk { opacity: 0; transform: scale(.8); animation: dga-pop .35s cubic-bezier(.34, 1.3, .64, 1) forwards; animation-delay: calc(2s + var(--i) * 90ms); }
  .dga-node { opacity: 0; animation: dga-fade .6s var(--dgx-ease-out) forwards; animation-delay: calc(1.2s + var(--i) * 150ms); }
  .dga-wire { stroke-dashoffset: 1; animation: dga-wire-in 1s var(--dgx-ease-in-out) 1.6s forwards, dga-wire-flow 6s linear 2.6s 3; }
  /* gentle loops: float and scan keep going; the rest play a few times and rest */
  .dga-float { animation: dga-float 9s ease-in-out 2.6s infinite alternate; }
  .dga-scan { opacity: 0; animation: dga-scan 7s cubic-bezier(.45, 0, .55, 1) 2.8s infinite; }
  .dga-r1 circle { animation: dga-ping-1 7s ease 2.8s 3; }
  .dga-r2 circle { animation: dga-ping-2 7s ease 2.8s 3; }
  .dga-r3 circle { animation: dga-ping-3 7s ease 2.8s 3; }
  .dga-led { animation: dga-blink 2.4s ease-in-out 3; }
  @supports (offset-path: path("M0 0")) {
    .dga-pulse { animation: dga-travel 3.2s var(--dgx-ease-in-out) 3; }
    .dga-p1 { offset-path: path("M82 136 C 102 136, 100 150, 120 150"); animation-delay: 3s; }
    .dga-p2 { offset-path: path("M484 104 C 462 104, 462 120, 440 120"); animation-delay: 3.8s; }
    .dga-p3 { offset-path: path("M486 300 C 462 300, 462 286, 440 286"); animation-delay: 4.6s; }
    .dga-p4 { offset-path: path("M90 322 C 106 322, 104 300, 120 300"); animation-delay: 5.4s; }
  }
  /* pointer and scroll parallax: variables set by the dgx-motion script, max about 10px */
  .dga-l1, .dga-l2 { transition: transform 400ms var(--dgx-ease-out); }
  /* loops pause while the hero is off screen (the dgx-motion script toggles .is-off) */
  .dgx-hero-art.is-off * { animation-play-state: paused !important; }
}
@keyframes dga-draw { to { stroke-dashoffset: 0; } }
@keyframes dga-fade { to { opacity: 1; } }
@keyframes dga-rise { to { opacity: 1; transform: none; } }
@keyframes dga-pop { to { opacity: 1; transform: none; } }
@keyframes dga-wire-in { to { stroke-dashoffset: 0; } }
@keyframes dga-wire-flow { from { stroke-dashoffset: 0; } to { stroke-dashoffset: -0.6; } }
@keyframes dga-float { from { transform: translateY(0); } to { transform: translateY(-8px); } }
@keyframes dga-scan { 0% { transform: translateY(0); opacity: 0; } 6% { opacity: 1; } 62% { transform: translateY(258px); opacity: 1; } 70%, 100% { transform: translateY(258px); opacity: 0; } }
@keyframes dga-ping-1 { 0%, 9%, 22%, 100% { transform: none; } 13% { transform: scale(1.28); } }
@keyframes dga-ping-2 { 0%, 25%, 38%, 100% { transform: none; } 29% { transform: scale(1.28); } }
@keyframes dga-ping-3 { 0%, 44%, 57%, 100% { transform: none; } 48% { transform: scale(1.28); } }
@keyframes dga-blink { 0%, 100% { opacity: 1; } 50% { opacity: .35; } }
@keyframes dga-travel { 0% { offset-distance: 0%; opacity: 0; } 10% { opacity: 1; } 90% { opacity: 1; } 100% { offset-distance: 100%; opacity: 0; } }

/* ================= Site motion (the dgx-motion script adds .dgx-reveal / .dgx-in) ================= */
@media (prefers-reduced-motion: no-preference) {
  .dgx-reveal { opacity: 0; transform: translateY(12px); transition: opacity 500ms var(--dgx-ease-out), transform 500ms var(--dgx-ease-out); }
  .dgx-reveal.dgx-in { opacity: 1; transform: none; }
  /* icons draw themselves when their card appears, and redraw on hover */
  .dgx-tile__icon svg > * { stroke-dasharray: 1; stroke-dashoffset: 0; }
  .dgx-reveal:not(.dgx-in) .dgx-tile__icon svg > * { stroke-dashoffset: 1; }
  .dgx-reveal.dgx-in .dgx-tile__icon svg > * { transition: stroke-dashoffset .9s var(--dgx-ease-in-out) .25s; }
  /* board and journey rows tick in when they come into view, not at page load */
  .dgx-reveal:not(.dgx-in) .dgx-board__row, .dgx-reveal:not(.dgx-in) .dgx-board__foot { animation-play-state: paused; }
}
@media (hover: hover) and (prefers-reduced-motion: no-preference) {
  /* hover lift uses `translate`, the scroll reveal uses `transform`: each keeps its own timing */
  .dgx-tile, .dgx-icard, .dgx-feature, .dgx-benefit { transition: translate .2s ease, transform 500ms var(--dgx-ease-out), box-shadow .2s ease, border-color .2s ease, opacity 500ms var(--dgx-ease-out); }
  .dgx-tile:hover, .dgx-feature:hover { translate: 0 -4px; box-shadow: var(--dgx-shadow-soft); border-color: var(--dgx-primary); }
  .dgx-tile.dgx-prod:hover { border-color: transparent; box-shadow: inset 0 4px 0 var(--prod), var(--dgx-shadow-soft); }
  .dgx-tile.dgx-prod--dg-book-pro:hover { box-shadow: inset 0 4px 0 var(--prod), 0 16px 40px rgba(14, 36, 51, 0.28); }
  .dgx-icard:hover, .dgx-benefit:hover { translate: 0 -4px; }
  .dgx-icard--ink:hover, .dgx-benefit:hover { box-shadow: 0 16px 40px rgba(0, 0, 0, .28); border-color: rgba(54, 169, 225, .5); }
  .dgx-icard:not(.dgx-icard--ink):hover { box-shadow: var(--dgx-shadow-soft); border-color: var(--dgx-primary); }
  .dgx-tile__more { background: linear-gradient(currentColor, currentColor) left bottom / 0 1.5px no-repeat; transition: background-size .25s ease; }
  .dgx-tile:hover .dgx-tile__more { background-size: 100% 1.5px; }
  .dgx-card .dgx-card__img { overflow: hidden; border-radius: var(--dgx-radius-card); }
  .dgx-card .dgx-card__img img { transition: transform 300ms var(--dgx-ease-out); }
  .dgx-card:hover .dgx-card__img img { transform: scale(1.03); }
  .elementor-button:hover { transform: translateY(-2px); box-shadow: 0 8px 20px rgba(0, 105, 167, .25); }
  .elementor-button:hover:active { transform: translateY(-1px) scale(.97); }
  .elementor-widget-text-editor a:not(.elementor-button), .dgx-direct a { text-decoration: none; background: linear-gradient(currentColor, currentColor) left bottom / 100% 1px no-repeat; transition: background-size .25s ease; }
  .elementor-widget-text-editor a:not(.elementor-button):hover, .dgx-direct a:hover { background-size: 0 1px; background-position: right bottom; }
}

/* press feedback on every device, touch included */
@media (prefers-reduced-motion: no-preference) {
  .elementor-button, .dgx-quotes__nav button, .dgx-spec__toggle, .dgx-wa { transition: transform 120ms var(--dgx-ease-out), box-shadow .15s ease, background-color .15s ease, color .15s ease, border-color .15s ease; }
  .elementor-button:active, .dgx-quotes__nav button:active, .dgx-spec__toggle:active, .dgx-wa:active { transform: scale(.97); }
}

/* reduced motion means gentler, not none: no movement, short opacity fades stay */
@media (prefers-reduced-motion: reduce) {
  .dgx-reveal { opacity: 0; transition: opacity 150ms ease !important; }
  .dgx-reveal.dgx-in { opacity: 1; }
  .dgx-quote { transition: opacity 150ms ease !important; }
  .dgx-quote:not(.is-active) { opacity: .35; }
  .dgx-faq__item[open] .dgx-faq__a { animation: dgx-fade-in 150ms ease !important; }
}
@keyframes dgx-fade-in { from { opacity: 0; } to { opacity: 1; } }

/* header menu: Elementor ships `transition: all .4s` on links and a phone menu that grows from scaleY(0)
   with max-height. Colour only on links; the phone menu fades and slides 8px, enter 200ms, exit 150ms. */
.dgx-header .elementor-nav-menu--main .elementor-item, .dgx-header .elementor-sub-item { transition: color 150ms ease, background-color 150ms ease; }
.dgx-header .elementor-nav-menu--main .elementor-item::after { transition: opacity 150ms ease, transform 150ms var(--dgx-ease-out); }
.dgx-header .elementor-nav-menu--toggle .elementor-menu-toggle:not(.elementor-active) + .elementor-nav-menu__container {
  max-height: none; transform: translateY(-8px); opacity: 0; clip-path: inset(0 0 100% 0); visibility: hidden; pointer-events: none;
  transition: transform 150ms var(--dgx-ease-out), opacity 150ms ease, clip-path 150ms var(--dgx-ease-out), visibility 0s linear 150ms;
}
.dgx-header .elementor-nav-menu--toggle .elementor-menu-toggle.elementor-active + .elementor-nav-menu__container {
  transform: none; opacity: 1; clip-path: inset(0 0 0 0); visibility: visible;
  transition: transform 200ms var(--dgx-ease-out), opacity 200ms ease, clip-path 200ms var(--dgx-ease-out), visibility 0s;
}

/* header turns glassy once the page scrolls */
.dgx-header.elementor-sticky--effects { background-color: rgba(255, 255, 255, .86) !important; -webkit-backdrop-filter: saturate(1.4) blur(10px); backdrop-filter: saturate(1.4) blur(10px); }

/* off-canvas third-party widgets (cookie preference panel, reCAPTCHA badge) must not create sideways scroll; clip keeps sticky working */
html, body { overflow-x: clip; }

/* review slider: the active review is fully present, its neighbours recede while swiping */
@media (prefers-reduced-motion: no-preference) {
  .dgx-quotes__track { scroll-behavior: smooth; }
  .dgx-quote { transition: opacity .5s ease; }
  .dgx-quote:not(.is-active) { opacity: .35; }
  .dgx-quote.is-active .dgx-quote__stars { animation: dgx-stars-fill 400ms var(--dgx-ease-out) .15s both; }
}
@keyframes dgx-stars-fill { from { clip-path: inset(0 100% 0 0); } to { clip-path: inset(0 0 0 0); } }/* End custom CSS */