/* DSX Digital — generated by build/build.js. Edit src/page.dc.html instead. */
/* cyrillic-ext */
@font-face {
  font-family: 'Hanken Grotesk';
  font-style: normal;
  font-weight: 400;
  font-display: swap;
  src: url("/assets/291c7ed9-1330-49c2-8963-32069e0bfaa6.woff2") format('woff2');
  unicode-range: U+0460-052F, U+1C80-1C8A, U+20B4, U+2DE0-2DFF, U+A640-A69F, U+FE2E-FE2F;
}
/* vietnamese */
@font-face {
  font-family: 'Hanken Grotesk';
  font-style: normal;
  font-weight: 400;
  font-display: swap;
  src: url("/assets/dc3c17af-d38b-4cbf-91fc-7af58facdb7c.woff2") format('woff2');
  unicode-range: U+0102-0103, U+0110-0111, U+0128-0129, U+0168-0169, U+01A0-01A1, U+01AF-01B0, U+0300-0301, U+0303-0304, U+0308-0309, U+0323, U+0329, U+1EA0-1EF9, U+20AB;
}
/* latin-ext */
@font-face {
  font-family: 'Hanken Grotesk';
  font-style: normal;
  font-weight: 400;
  font-display: swap;
  src: url("/assets/9ed8a4a0-bc39-4d58-805a-d13aa09cbc0b.woff2") format('woff2');
  unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
}
/* latin */
@font-face {
  font-family: 'Hanken Grotesk';
  font-style: normal;
  font-weight: 400;
  font-display: swap;
  src: url("/assets/85adac95-b2a2-4ec0-a4ad-23a9e6ba56a4.woff2") format('woff2');
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}
/* cyrillic-ext */
@font-face {
  font-family: 'Hanken Grotesk';
  font-style: normal;
  font-weight: 500;
  font-display: swap;
  src: url("/assets/291c7ed9-1330-49c2-8963-32069e0bfaa6.woff2") format('woff2');
  unicode-range: U+0460-052F, U+1C80-1C8A, U+20B4, U+2DE0-2DFF, U+A640-A69F, U+FE2E-FE2F;
}
/* vietnamese */
@font-face {
  font-family: 'Hanken Grotesk';
  font-style: normal;
  font-weight: 500;
  font-display: swap;
  src: url("/assets/dc3c17af-d38b-4cbf-91fc-7af58facdb7c.woff2") format('woff2');
  unicode-range: U+0102-0103, U+0110-0111, U+0128-0129, U+0168-0169, U+01A0-01A1, U+01AF-01B0, U+0300-0301, U+0303-0304, U+0308-0309, U+0323, U+0329, U+1EA0-1EF9, U+20AB;
}
/* latin-ext */
@font-face {
  font-family: 'Hanken Grotesk';
  font-style: normal;
  font-weight: 500;
  font-display: swap;
  src: url("/assets/9ed8a4a0-bc39-4d58-805a-d13aa09cbc0b.woff2") format('woff2');
  unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
}
/* latin */
@font-face {
  font-family: 'Hanken Grotesk';
  font-style: normal;
  font-weight: 500;
  font-display: swap;
  src: url("/assets/85adac95-b2a2-4ec0-a4ad-23a9e6ba56a4.woff2") format('woff2');
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}
/* cyrillic-ext */
@font-face {
  font-family: 'Hanken Grotesk';
  font-style: normal;
  font-weight: 600;
  font-display: swap;
  src: url("/assets/291c7ed9-1330-49c2-8963-32069e0bfaa6.woff2") format('woff2');
  unicode-range: U+0460-052F, U+1C80-1C8A, U+20B4, U+2DE0-2DFF, U+A640-A69F, U+FE2E-FE2F;
}
/* vietnamese */
@font-face {
  font-family: 'Hanken Grotesk';
  font-style: normal;
  font-weight: 600;
  font-display: swap;
  src: url("/assets/dc3c17af-d38b-4cbf-91fc-7af58facdb7c.woff2") format('woff2');
  unicode-range: U+0102-0103, U+0110-0111, U+0128-0129, U+0168-0169, U+01A0-01A1, U+01AF-01B0, U+0300-0301, U+0303-0304, U+0308-0309, U+0323, U+0329, U+1EA0-1EF9, U+20AB;
}
/* latin-ext */
@font-face {
  font-family: 'Hanken Grotesk';
  font-style: normal;
  font-weight: 600;
  font-display: swap;
  src: url("/assets/9ed8a4a0-bc39-4d58-805a-d13aa09cbc0b.woff2") format('woff2');
  unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
}
/* latin */
@font-face {
  font-family: 'Hanken Grotesk';
  font-style: normal;
  font-weight: 600;
  font-display: swap;
  src: url("/assets/85adac95-b2a2-4ec0-a4ad-23a9e6ba56a4.woff2") format('woff2');
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}
/* cyrillic-ext */
@font-face {
  font-family: 'Hanken Grotesk';
  font-style: normal;
  font-weight: 700;
  font-display: swap;
  src: url("/assets/291c7ed9-1330-49c2-8963-32069e0bfaa6.woff2") format('woff2');
  unicode-range: U+0460-052F, U+1C80-1C8A, U+20B4, U+2DE0-2DFF, U+A640-A69F, U+FE2E-FE2F;
}
/* vietnamese */
@font-face {
  font-family: 'Hanken Grotesk';
  font-style: normal;
  font-weight: 700;
  font-display: swap;
  src: url("/assets/dc3c17af-d38b-4cbf-91fc-7af58facdb7c.woff2") format('woff2');
  unicode-range: U+0102-0103, U+0110-0111, U+0128-0129, U+0168-0169, U+01A0-01A1, U+01AF-01B0, U+0300-0301, U+0303-0304, U+0308-0309, U+0323, U+0329, U+1EA0-1EF9, U+20AB;
}
/* latin-ext */
@font-face {
  font-family: 'Hanken Grotesk';
  font-style: normal;
  font-weight: 700;
  font-display: swap;
  src: url("/assets/9ed8a4a0-bc39-4d58-805a-d13aa09cbc0b.woff2") format('woff2');
  unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
}
/* latin */
@font-face {
  font-family: 'Hanken Grotesk';
  font-style: normal;
  font-weight: 700;
  font-display: swap;
  src: url("/assets/85adac95-b2a2-4ec0-a4ad-23a9e6ba56a4.woff2") format('woff2');
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}
/* cyrillic-ext */
@font-face {
  font-family: 'Hanken Grotesk';
  font-style: normal;
  font-weight: 800;
  font-display: swap;
  src: url("/assets/291c7ed9-1330-49c2-8963-32069e0bfaa6.woff2") format('woff2');
  unicode-range: U+0460-052F, U+1C80-1C8A, U+20B4, U+2DE0-2DFF, U+A640-A69F, U+FE2E-FE2F;
}
/* vietnamese */
@font-face {
  font-family: 'Hanken Grotesk';
  font-style: normal;
  font-weight: 800;
  font-display: swap;
  src: url("/assets/dc3c17af-d38b-4cbf-91fc-7af58facdb7c.woff2") format('woff2');
  unicode-range: U+0102-0103, U+0110-0111, U+0128-0129, U+0168-0169, U+01A0-01A1, U+01AF-01B0, U+0300-0301, U+0303-0304, U+0308-0309, U+0323, U+0329, U+1EA0-1EF9, U+20AB;
}
/* latin-ext */
@font-face {
  font-family: 'Hanken Grotesk';
  font-style: normal;
  font-weight: 800;
  font-display: swap;
  src: url("/assets/9ed8a4a0-bc39-4d58-805a-d13aa09cbc0b.woff2") format('woff2');
  unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
}
/* latin */
@font-face {
  font-family: 'Hanken Grotesk';
  font-style: normal;
  font-weight: 800;
  font-display: swap;
  src: url("/assets/85adac95-b2a2-4ec0-a4ad-23a9e6ba56a4.woff2") format('woff2');
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}
/* cyrillic-ext */
@font-face {
  font-family: 'JetBrains Mono';
  font-style: normal;
  font-weight: 500;
  font-display: swap;
  src: url("/assets/8289115e-fc5e-4f15-b56c-e6756b6154c2.woff2") format('woff2');
  unicode-range: U+0460-052F, U+1C80-1C8A, U+20B4, U+2DE0-2DFF, U+A640-A69F, U+FE2E-FE2F;
}
/* cyrillic */
@font-face {
  font-family: 'JetBrains Mono';
  font-style: normal;
  font-weight: 500;
  font-display: swap;
  src: url("/assets/e807a7b5-7107-44c7-95bb-c269ac4f3c20.woff2") format('woff2');
  unicode-range: U+0301, U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116;
}
/* greek */
@font-face {
  font-family: 'JetBrains Mono';
  font-style: normal;
  font-weight: 500;
  font-display: swap;
  src: url("/assets/3135355e-4c20-45a0-a295-8529c2c3967c.woff2") format('woff2');
  unicode-range: U+0370-0377, U+037A-037F, U+0384-038A, U+038C, U+038E-03A1, U+03A3-03FF;
}
/* vietnamese */
@font-face {
  font-family: 'JetBrains Mono';
  font-style: normal;
  font-weight: 500;
  font-display: swap;
  src: url("/assets/abaa7237-171a-4138-ab99-75df9040e3e7.woff2") format('woff2');
  unicode-range: U+0102-0103, U+0110-0111, U+0128-0129, U+0168-0169, U+01A0-01A1, U+01AF-01B0, U+0300-0301, U+0303-0304, U+0308-0309, U+0323, U+0329, U+1EA0-1EF9, U+20AB;
}
/* latin-ext */
@font-face {
  font-family: 'JetBrains Mono';
  font-style: normal;
  font-weight: 500;
  font-display: swap;
  src: url("/assets/4fc228bd-9168-4f9b-8cad-b12191d613bf.woff2") format('woff2');
  unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
}
/* latin */
@font-face {
  font-family: 'JetBrains Mono';
  font-style: normal;
  font-weight: 500;
  font-display: swap;
  src: url("/assets/093c264c-c464-4c49-ad1c-2f450aa13084.woff2") format('woff2');
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}
/* cyrillic-ext */
@font-face {
  font-family: 'JetBrains Mono';
  font-style: normal;
  font-weight: 600;
  font-display: swap;
  src: url("/assets/8289115e-fc5e-4f15-b56c-e6756b6154c2.woff2") format('woff2');
  unicode-range: U+0460-052F, U+1C80-1C8A, U+20B4, U+2DE0-2DFF, U+A640-A69F, U+FE2E-FE2F;
}
/* cyrillic */
@font-face {
  font-family: 'JetBrains Mono';
  font-style: normal;
  font-weight: 600;
  font-display: swap;
  src: url("/assets/e807a7b5-7107-44c7-95bb-c269ac4f3c20.woff2") format('woff2');
  unicode-range: U+0301, U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116;
}
/* greek */
@font-face {
  font-family: 'JetBrains Mono';
  font-style: normal;
  font-weight: 600;
  font-display: swap;
  src: url("/assets/3135355e-4c20-45a0-a295-8529c2c3967c.woff2") format('woff2');
  unicode-range: U+0370-0377, U+037A-037F, U+0384-038A, U+038C, U+038E-03A1, U+03A3-03FF;
}
/* vietnamese */
@font-face {
  font-family: 'JetBrains Mono';
  font-style: normal;
  font-weight: 600;
  font-display: swap;
  src: url("/assets/abaa7237-171a-4138-ab99-75df9040e3e7.woff2") format('woff2');
  unicode-range: U+0102-0103, U+0110-0111, U+0128-0129, U+0168-0169, U+01A0-01A1, U+01AF-01B0, U+0300-0301, U+0303-0304, U+0308-0309, U+0323, U+0329, U+1EA0-1EF9, U+20AB;
}
/* latin-ext */
@font-face {
  font-family: 'JetBrains Mono';
  font-style: normal;
  font-weight: 600;
  font-display: swap;
  src: url("/assets/4fc228bd-9168-4f9b-8cad-b12191d613bf.woff2") format('woff2');
  unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
}
/* latin */
@font-face {
  font-family: 'JetBrains Mono';
  font-style: normal;
  font-weight: 600;
  font-display: swap;
  src: url("/assets/093c264c-c464-4c49-ad1c-2f450aa13084.woff2") format('woff2');
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}


* { box-sizing: border-box; }
  html { scroll-behavior: smooth; }
  html, body { margin: 0; padding: 0; background: #ffffff; }
  ::selection { background: #cfe0f3; color: #0f2a47; }
  details > summary { list-style: none; cursor: pointer; }
  details > summary::-webkit-details-marker { display: none; }
  details[open] .dsx-faq-chev { transform: rotate(180deg); }
  @keyframes dsxSpin { to { transform: rotate(360deg); } }
  @keyframes dsxFloatY { 0%,100% { transform: translateY(0); } 50% { transform: translateY(-13px); } }
  @keyframes dsxFloatY2 { 0%,100% { transform: translateY(0); } 50% { transform: translateY(11px); } }
  @keyframes dsxFloatY3 { 0%,100% { transform: translateY(0); } 50% { transform: translateY(-8px); } }
  @keyframes dsxDrift { 0%,100% { transform: translate(0,0); } 50% { transform: translate(0,-9px); } }
  @keyframes dsxSheen { 0% { background-position: 200% 0; } 100% { background-position: -200% 0; } }
  @keyframes dsxNodePulse { 0%,72%,100% { transform: translateY(0); box-shadow: 0 1px 2px rgba(20,24,54,.05); border-color: #e7e9f4; } 12% { transform: translateY(-5px); box-shadow: 0 14px 26px rgba(47,111,176,.24); border-color: #e2eef9; } }
  @keyframes dsxDots { from { background-position-x: 0; } to { background-position-x: 12px; } }
  @keyframes dsxGlow { 0%,70%,100% { transform: scale(1); box-shadow: 0 8px 18px rgba(47,111,176,.22); } 14% { transform: scale(1.1); box-shadow: 0 12px 28px rgba(21,55,92,.5); } }
  @keyframes dsxArrow { 0%,100% { transform: translateX(0); opacity: .45; } 50% { transform: translateX(4px); opacity: 1; } }
  @keyframes dsxBarGrow { 0% { transform: scaleX(.2); } 60% { transform: scaleX(1); } 100% { transform: scaleX(1); } }
  @keyframes dsxPing { 0% { transform: scale(.6); opacity: .7; } 80%,100% { transform: scale(2.2); opacity: 0; } }
* { box-sizing: border-box; }
  html { scroll-behavior: smooth; }
  html, body { margin: 0; padding: 0; background: #ffffff; }
  ::selection { background: #cfe0f3; color: #0f2a47; }
* { box-sizing: border-box; }
  html { scroll-behavior: smooth; }
  html, body { margin: 0; padding: 0; background: #ffffff; }
  ::selection { background: #cfe0f3; color: #0f2a47; }
  .dsx-field { width: 100%; height: 46px; border: 1px solid #dfe2ee; border-radius: 9px; padding: 0 14px; font-size: 15px; font-family: inherit; color: #1d2333; background: #fff; outline: none; transition: border-color .15s ease, box-shadow .15s ease; }
  .dsx-field:focus { border-color: #2f6fb0; box-shadow: 0 0 0 3px rgba(47,111,176,.14); }
  textarea.dsx-field { height: auto; padding: 12px 14px; resize: vertical; line-height: 1.5; }
  .dsx-label { font-size: 13px; font-weight: 600; color: #3d4458; margin-bottom: 7px; display: block; }
  select.dsx-field { appearance: none; -webkit-appearance: none; cursor: pointer; background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' viewBox='0 0 24 24' fill='none' stroke='%23666d81' stroke-width='2.2' stroke-linecap='round'%3E%3Cpath d='M6 9l6 6 6-6'/%3E%3C/svg%3E"); background-repeat: no-repeat; background-position: right 13px center; padding-right: 38px; }
* { box-sizing: border-box; }
  html { scroll-behavior: smooth; }
  html, body { margin: 0; padding: 0; background: #ffffff; }
  ::selection { background: #cfe0f3; color: #0f2a47; }
  .dsx-legal h2 { font-size: 20px; font-weight: 700; letter-spacing: -0.015em; color: #0e1326; margin: 38px 0 0; }
  .dsx-legal p { font-size: 16px; line-height: 1.7; color: #51586b; margin: 12px 0 0; }
  .dsx-legal ul { margin: 12px 0 0; padding-left: 20px; }
  .dsx-legal li { font-size: 16px; line-height: 1.7; color: #51586b; margin-top: 6px; }
  .dsx-menu { position: relative; display: inline-flex; align-items: center; }
  .dsx-menu-chev { transition: transform .16s ease; }
  .dsx-menu:hover .dsx-menu-chev { transform: rotate(180deg); }
  .dsx-menu-trigger { display: inline-flex; align-items: center; gap: 5px; font-size: 15px; font-weight: 500; color: #c2c7d6; text-decoration: none; cursor: pointer; background: none; border: none; font-family: inherit; padding: 0; }
  .dsx-menu:hover .dsx-menu-trigger, .dsx-menu:focus-within .dsx-menu-trigger { color: #ffffff; }
  .dsx-menu-panel { position: absolute; top: 100%; left: 50%; width: 560px; margin-left: -280px; padding-top: 16px; opacity: 0; visibility: hidden; pointer-events: none; transform: translateY(-6px); transition: opacity .16s ease, transform .16s ease; z-index: 200; }
  .dsx-menu:hover .dsx-menu-panel, .dsx-menu:focus-within .dsx-menu-panel { opacity: 1; visibility: visible; pointer-events: auto; transform: translateY(0); }
  .dsx-menu-card { display: block; text-decoration: none; background: #fff; border: 1px solid #e8eaf3; border-radius: 14px; padding: 18px 18px 16px; transition: border-color .15s ease, background .15s ease, box-shadow .15s ease; }
  .dsx-menu-card:hover { border-color: #d4e4f5; background: #fbfcff; box-shadow: 0 8px 22px rgba(20,24,54,.07); }
  .dsx-navlink:hover { color: #ffffff; }
  .dsx-narrow { display: none !important; }
  @media (max-width: 960px) {
    .dsx-menu { display: none !important; }
    .dsx-narrow { display: inline-flex !important; }
  }
  @media (max-width: 620px) {
    .dsx-hide-sm { display: none !important; }
  }
  /* Request a Demo — the hero is a two-column grid of `minmax(330px, 1fr)`, so it
     pairs the columns from ~700px up and gives each one barely 334px. That is
     narrower than the same form gets on a 360px phone: the paired fields drop
     to ~134px and the placeholders truncate. Hold the stack until there is
     room for a real second column, and let the intro scroll normally while it
     is stacked — a sticky block above the form has nothing to stick against. */
  @media (max-width: 1120px) {
    .dsx-demo-grid { grid-template-columns: minmax(0, 1fr) !important; }
    .dsx-demo-intro { position: static !important; }
  }
  /* Paired fields need ~200px each before a work email stops fitting; below
     this the form column is too narrow to hold two of them. */
  @media (max-width: 540px) {
    .dsx-demo-fields { grid-template-columns: minmax(0, 1fr) !important; }
  }


/* Branch visibility for the in-page toggles (pricing product, prepay plan,
   demo form). The markup styles everything inline, so [hidden] needs the
   specificity to win. */
[hidden] { display: none !important; }

/* Reserve the hero canvas box before three.js initialises, so the headline
   never moves once the visual appears. */
canvas.dsx-hero-canvas { display: block; }

@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior: auto; }
  *, *::before, *::after {
    animation-duration: .001ms !important;
    animation-iteration-count: 1 !important;
    transition-duration: .001ms !important;
  }
}

:where(a, button, summary, input, textarea, select):focus-visible {
  outline: 2px solid #2f6fb0;
  outline-offset: 2px;
  border-radius: 4px;
}

.dsx-skip {
  position: absolute; left: -9999px; top: 0; z-index: 200;
  background: #0e1326; color: #fff; padding: 10px 16px; border-radius: 0 0 8px 0;
  font-size: 14px; font-weight: 600; text-decoration: none;
}
.dsx-skip:focus { left: 0; }

/* Industries: each sector runs one column per product — DSX Insight, DSX IQ,
   DSX Guard — reading left to right in the same order as the nav. Three columns
   need a tighter gutter than two did; they drop to two and then to one as the
   viewport narrows, so a column is never squeezed below a readable measure. */
.dsx-split { display: grid; grid-template-columns: repeat(auto-fit, minmax(300px, 1fr)); gap: clamp(18px, 2.2vw, 28px); align-items: stretch; }

/* The Products menu opens on hover and on keyboard focus. The is-open class is
   the pointer-tap path for the narrow band where the menu is still shown but
   :hover is unreliable. */
.dsx-menu.is-open .dsx-menu-panel {
  opacity: 1; visibility: visible; pointer-events: auto; transform: translateY(0);
}

/* The pricing product tabs are two large targets side by side. On a narrow
   phone they would overflow the viewport, so let them stack full-width. */
@media (max-width: 460px) {
  .dsx-pricetabs { display: flex !important; width: 100%; }
  .dsx-pricetabs button { flex: 1 1 100%; }
}

/* The header row is a fixed 68px box. Below ~960px the nav needs two lines,
   and the second line was being clipped by that fixed height — Insight and
   Guard were present in the DOM but invisible. Let the bar grow instead. */
@media (max-width: 960px) {
  header > div {
    height: auto !important;
    min-height: 68px;
    flex-wrap: wrap;
    row-gap: 10px;
    padding-top: 12px !important;
    padding-bottom: 12px !important;
  }
  header nav { gap: 16px !important; }
}

/* hover states lifted out of the template's style-hover attributes */
.dsxh0:hover { background: #21588f; }
.dsxh1:hover { border-color: #c7cbdc; background: #fafbff; }
.dsxh2:hover { border-color: #d9d8fb; box-shadow: 0 18px 44px rgba(20,24,54,.09); }
.dsxh3:hover { color: #21588f; }
.dsxh4:hover { border-color: #d9d8fb; }
.dsxh5:hover { transform: translateY(-5px); box-shadow: 0 18px 40px rgba(20,24,54,.10); }
.dsxh6:hover { border-color: #d4e4f5; box-shadow: 0 10px 26px rgba(20,24,54,.08); }
.dsxh7:hover { transform: translateY(-1px); }
.dsxh8:hover { background: rgba(255,255,255,0.2); }
.dsxh9:hover { background: #fafbff; }
.dsxha:hover { transform: translateY(-4px); border-color: rgba(165,180,252,.5); }
.dsxhb:hover { transform: translateY(-5px); box-shadow: 0 18px 40px rgba(20,24,54,.10); border-color: #d9d8fb; }
.dsxhc:hover { background: rgba(255,255,255,0.16); }
.dsxhd:hover { background: #e4eefb; color: #21588f; }
.dsxhe:hover { border-color: #d9d8fb; box-shadow: 0 14px 34px rgba(20,24,54,.08); }
.dsxhf:hover { border-color: #d4e4f5; box-shadow: 0 8px 22px rgba(20,24,54,.07); }
