:root { --premium-ease: cubic-bezier(.22, 1, .36, 1); }
body { overflow-wrap: break-word; }
.main-navigation a { position: relative; }
.main-navigation a::after { content: ''; position: absolute; bottom: -8px; left: 0; right: 0; height: 2px; background: var(--sky); transform: scaleX(0); transform-origin: left; transition: transform .3s var(--premium-ease); }
.main-navigation a:hover::after, .main-navigation a[aria-current="page"]::after { transform: scaleX(1); }
.main-navigation a[aria-current="page"] { color: var(--blue); }
.reading-progress { position: fixed; z-index: 80; top: 0; left: 0; right: 0; height: 3px; background: linear-gradient(90deg, var(--blue), var(--sky)); transform: scaleX(0); transform-origin: left; pointer-events: none; }
.site-motion-toggle { display: none; align-items: center; gap: 8px; border: 1px solid #dce5ef; border-radius: 30px; background: #fff; padding: 8px 12px; color: #55708a; font-size: 10px; cursor: pointer; min-height: 36px; }
.motion-ready .site-motion-toggle { display: inline-flex; }
.site-motion-toggle .icon { width: 13px; height: 13px; }
.product-page-hero { background: radial-gradient(ellipse at 92% 80%, #2b519f55, transparent 60%), linear-gradient(115deg, #071426, #122d55); }
.product-page-hero::after { content: ''; position: absolute; width: 510px; height: 510px; right: -140px; top: -220px; border-radius: 50%; border: 1px solid #a7d8ff12; box-shadow: 0 0 0 65px #a7d8ff05, 0 0 0 130px #a7d8ff03; pointer-events: none; }
.product-hero-inner { z-index: 1; }
.product-hero-copy h1 { font-size: clamp(36px, 4.2vw, 59px); line-height: 1.16; }
.product-hero-copy > p { font-size: 14px; color: #c2d3e6; }
.product-hero-copy .eyebrow { color: #9cd5fb; }
.product-subnav a { transition: color .25s; position: relative; }
.product-subnav a.is-reading { color: var(--blue); }
.product-subnav a.is-reading::after { content: ''; position: absolute; bottom: -9px; left: 0; width: 14px; height: 2px; background: var(--sky); }
.portfolio-card, .product-card, .demo-card, .tool-card, .service-card { transition: transform .45s var(--premium-ease), box-shadow .45s var(--premium-ease), border-color .3s; }
.portfolio-card:hover, .demo-card:hover, .tool-card:hover, .service-card:hover { transform: translateY(-5px); box-shadow: 0 20px 55px #152e5c12; border-color: #a5c7e4; }
.choice-tabs button, .portfolio-filter button, .screen-gallery-tabs button { transition: color .25s, background .25s, border-color .25s; min-height: 44px; }
.portfolio-link:hover .icon, .text-link:hover .icon, .product-back:hover .icon { transform: translate(3px,-3px); }
.portfolio-link .icon, .product-back .icon { transition: transform .3s var(--premium-ease); }
.capability p, .overview-heading > p, .portfolio-card-body > p, .module-panel-header p, .experience-columns p, .foundation p { color: #626f83; }
.hero-smallprint { color: #a3bbd4; }
.editorial-band { position: relative; overflow: hidden; background: #edf5fb; border-block: 1px solid #dfebf5; }
.editorial-band .wrap { position: relative; z-index: 1; }
.editorial-band h2 { font-size: clamp(30px, 3.4vw, 44px); }
.editorial-band p { font-size: 14px; color: #5e758b; line-height: 1.85; max-width: 660px; margin-top: 20px; }
.editorial-band .button, .editorial-band .text-link { margin-top: 26px; }
.media-split { display: grid; grid-template-columns: 1fr 1fr; align-items: center; gap: clamp(35px, 6vw, 84px); }
.media-split > * { min-width: 0; }
.media-split h2 { font-size: clamp(30px, 3.2vw, 43px); }
.media-split p { font-size: 13px; color: #68768a; line-height: 1.85; margin-top: 20px; }
.media-split .text-link { margin-top: 25px; }
.media-split .experience-columns { flex-direction: column; gap: 24px; margin-top: 25px; }
.media-split .experience-columns article { padding-left: 42px; position: relative; }
.media-split .experience-columns article > .icon { position: absolute; left: 0; top: 2px; height: 24px; width: 24px; }
.media-split .experience-columns h3 { font-size: 18px; }
.media-split .experience-columns p { font-size: 12px; margin-top: 8px; }
.premium-visual { margin: 0; border: 1px solid #a9c3e33a; border-radius: 26px; overflow: hidden; position: relative; background: #0c2144; box-shadow: 0 24px 65px #0b244d12; transform-style: preserve-3d; transition: transform .65s var(--premium-ease), box-shadow .4s; }
.premium-visual img { width: 100%; height: auto; aspect-ratio: 4/3; object-fit: contain; }
.premium-visual figcaption { margin: 0 !important; padding: 13px 19px; font-size: 9px; line-height: 1.7; color: #b6cfe6; background: #0b1e3a; border-top: 1px solid #91c7f320; }
.product-hero-inner > .premium-visual { flex: 1; max-width: 500px; width: 46%; }
.product-page-hero .premium-visual { box-shadow: 0 22px 70px #0002; }
.product-page-hero .media-split p { color: #b8cce3; }
.tool-grid { display: grid; grid-template-columns: repeat(6, 1fr); gap: 20px; margin-top: 38px; }
.tool-card { grid-column: span 2; min-width: 0; padding: 30px; border: 1px solid #e1e9f2; border-radius: 20px; background: #fff; }
.tool-card:nth-child(4) { grid-column: 2/4; }
.tool-card:nth-child(5) { grid-column: 4/6; }
.tool-card > .icon { color: var(--sky); width: 28px; height: 28px; margin-bottom: 20px; }
.tool-card h3 { font-size: 19px; }
.tool-card p { font-size: 12px; line-height: 1.9; color: #68778b; margin-top: 13px; }
.assurance-strip { background: #f1f7fc; border: 1px solid #deebf6; border-radius: 26px; padding: 38px; margin-top: 40px; }
.assurance-strip > .icon { width: 30px; height: 30px; color: var(--blue); margin-bottom: 20px; }
.assurance-strip h3 { font-size: 24px; }
.assurance-strip p, .assurance-strip li { font-size: 13px; line-height: 1.85; color: #64768b; }
.assurance-strip p { margin-top: 15px; }
.assurance-strip ul { padding-left: 20px; }
.assurance-strip li { padding: 6px 0; }
.service-grid { display: grid; grid-template-columns: repeat(2, 1fr); gap: 24px; margin-top: 38px; }
.service-card { min-width: 0; padding: 36px; border: 1px solid #e0e8f1; border-radius: 24px; background: #fff; }
.service-card > .icon { width: 30px; height: 30px; color: var(--sky); margin-bottom: 22px; }
.service-card > span, .service-card .eyebrow { font-size: 10px; color: var(--blue); display: block; margin-bottom: 17px; }
.service-card h3 { font-size: 23px; }
.service-card p, .service-card li { color: #637388; font-size: 13px; line-height: 1.85; }
.service-card p { margin-top: 16px; }
.service-card ul { padding-left: 18px; margin: 20px 0 0; }
.service-card li { margin-top: 9px; }
.service-card a { display: inline-flex; gap: 10px; align-items: center; margin-top: 24px; color: var(--blue); font-size: 12px; font-weight: 600; }
.service-card a .icon { width: 15px; height: 15px; }
.delivery-steps { display: grid; grid-template-columns: repeat(4, 1fr); gap: 22px; list-style: none; padding: 0; margin: 38px 0 0; counter-reset: delivery; }
.delivery-steps > li { min-width: 0; padding: 27px 0 0; border-top: 1px solid #bad4e9; counter-increment: delivery; position: relative; }
.delivery-steps > li::before { content: '0' counter(delivery); display: block; color: var(--sky); font-size: 12px; letter-spacing: 1px; margin-bottom: 18px; }
.delivery-steps h3 { font-size: 21px; }
.delivery-steps p { font-size: 12px; line-height: 1.85; color: #69788c; margin-top: 14px; }
.service-faq { border-bottom: 1px solid var(--line); padding: 25px 0; }
.service-faq summary { position: relative; cursor: pointer; font-size: 18px; font-weight: 500; padding-right: 35px; list-style: none; }
.service-faq summary::-webkit-details-marker { display: none; }
.service-faq summary::after { content: '+'; position: absolute; right: 5px; top: 0; color: var(--sky); font-size: 25px; }
.service-faq[open] summary::after { content: '−'; }
.service-faq p { margin-top: 18px; color: #69788c; font-size: 13px; max-width: 850px; line-height: 1.9; }
.service-faq a { color: var(--blue); text-decoration: underline; }
.policy-hero-art { width: 220px; height: 220px; border-radius: 50%; border: 1px solid #91c8f938; display: grid; place-items: center; background: radial-gradient(circle, #489fd819, transparent 70%); box-shadow: 0 0 0 27px #8ecaff06, 0 0 0 55px #8ecaff03; margin: 30px; flex-shrink: 0; }
.policy-hero-art .icon { width: 90px; height: 90px; color: #8acaf4; stroke-width: .8; }
.legal-layout { display: grid; grid-template-columns: 250px minmax(0, 1fr); gap: 70px; align-items: start; }
.legal-toc { position: sticky; top: 120px; padding: 25px 22px; border: 1px solid #e1e8f1; border-radius: 20px; background: #f7fafe; }
.legal-toc h2, .legal-toc h3 { font-size: 16px; letter-spacing: -.3px; margin-bottom: 16px; }
.legal-toc ol, .legal-toc ul { list-style: none; padding: 0; margin: 0; }
.legal-toc a { display: block; padding: 9px 0; font-size: 11px; line-height: 1.8; color: #627b95; transition: color .25s; }
.legal-toc a:hover { color: var(--blue); }
.legal-toc .eyebrow { font-size: 9px; }
.legal-body { min-width: 0; }
.legal-body > p, .legal-section p, .legal-section li, .legal-body p, .legal-body li { font-size: 14px; line-height: 1.95; color: #596c80; }
.legal-body p + p { margin-top: 17px; }
.legal-section { padding: 34px 0; border-bottom: 1px solid #e5edf5; scroll-margin-top: 120px; }
.legal-section:first-child { padding-top: 0; }
.legal-section h2 { font-size: 29px; margin-bottom: 20px; letter-spacing: -.9px; }
.legal-section h3 { font-size: 20px; margin: 24px 0 15px; }
.legal-body a { color: var(--blue); text-decoration: underline; text-underline-offset: 3px; }
.policy-status { display: inline-flex; align-items: center; gap: 9px; color: var(--blue); background: #eaf4fc; padding: 8px 12px; border: 1px solid #d7e8f5; border-radius: 30px; font-size: 10px; margin-bottom: 25px; }
.policy-status .icon { width: 15px; height: 15px; }
.policy-official { padding: 32px; border: 1px solid #d3e5f4; background: #edf6fc; border-radius: 22px; margin: 25px 0; }
.policy-official h2 { font-size: 25px; }
.policy-official p { margin-top: 16px; }
.policy-official .button { margin-top: 24px; text-decoration: none; color: #fff; font-size: 12px; }
.policy-official .button-white { color: var(--navy); }
.footer-bottom { flex-wrap: wrap; }
.footer-main a { transition: color .2s; }
.footer-main a:hover { color: var(--blue); }
.footer-main a .icon { width: 12px; height: 12px; }
body.menu-is-open { overflow: hidden; }
:root[data-motion="paused"] *, :root[data-page-hidden="true"] *, .motion-scope[data-in-view="false"] * { animation-play-state: paused !important; }
:root[data-motion="paused"] { scroll-behavior: auto; }
:root[data-motion="paused"] .premium-visual { transform: none !important; }
:root[data-motion="paused"] [data-reveal], :root[data-motion="paused"] .product-card, :root[data-motion="paused"] .portfolio-card { transition-duration: 0s !important; }
@media (min-width: 981px) { .main-navigation { gap: 25px; } }
@media (max-width: 1100px) { .nav-shell { gap: 18px; } .main-navigation { gap: 18px; margin-left: 0; } .nav-actions { gap: 14px; } .nav-actions .support-link { display: none; } .brand img { width: 158px; } .legal-layout { gap: 45px; } }
@media (max-width: 850px) { .media-split { gap: 35px; } .tool-card { padding: 24px; } .service-card { padding: 28px; } .delivery-steps { grid-template-columns: repeat(2, 1fr); gap: 32px; } .legal-layout { grid-template-columns: 195px minmax(0,1fr); gap: 30px; } .policy-hero-art { width: 155px; height: 155px; margin: 25px; } }
@media (max-width: 700px) {
  .nav-shell, .site-header.is-floating .nav-shell { width: calc(100% - 30px); padding-inline: 12px; }
  .brand img { width: 145px; }
  .nav-actions { display: none; }
  .menu-toggle { display: block; margin-left: auto; width: 44px; height: 44px; padding: 10px; border-radius: 12px; background: #eef5fc; border: 1px solid #ddeaf5; position: relative; z-index: 52; }
  .menu-toggle span { display: block; width: 21px; height: 1.5px; margin: 5px 0; background: var(--blue); transition: transform .3s; }
  .menu-toggle[aria-expanded="true"] span:first-child { transform: translateY(3.25px) rotate(45deg); }
  .menu-toggle[aria-expanded="true"] span:last-child { transform: translateY(-3.25px) rotate(-45deg); }
  .main-navigation { display: none; position: absolute; top: 78px; left: 15px; right: 15px; margin: 0; flex-direction: column; align-items: stretch; gap: 0; padding: 18px; background: #fff; border-radius: 22px; border: 1px solid #dbe7f3; box-shadow: 0 20px 65px #102a5220; max-height: calc(100dvh - 100px); overflow-y: auto; }
  .main-navigation.open { display: flex; }
  .main-navigation a { font-size: 14px; padding: 16px 13px; border-bottom: 1px solid #edf2f8; }
  .main-navigation a::after { bottom: 9px; left: 13px; width: 18px; }
  .main-navigation a:last-child { border: 0; }
  .main-navigation .mobile-nav-extra { display: block; }
  .product-subnav { overflow-x: auto; gap: 23px; justify-content: flex-start; }
  .product-subnav .subnav-inquiry { display: none; }
  .media-split, .legal-layout { grid-template-columns: 1fr; gap: 32px; }
  .media-split .premium-visual { max-width: 560px; width: 100%; margin-inline: auto; }
  .product-hero-inner > .premium-visual { width: 100%; flex: auto; }
  .tool-grid { grid-template-columns: repeat(2, 1fr); gap: 16px; }
  .tool-card, .tool-card:nth-child(4), .tool-card:nth-child(5) { grid-column: auto; }
  .tool-card:last-child { grid-column: 1/-1; }
  .service-grid { grid-template-columns: 1fr; }
  .legal-toc { position: static; padding: 20px; }
  .legal-toc ol, .legal-toc ul { display: flex; flex-wrap: wrap; column-gap: 22px; }
  .policy-hero-art { width: 130px; height: 130px; margin: 15px auto; }
  .policy-hero-art .icon { width: 65px; height: 65px; }
  .premium-visual { border-radius: 20px; }
  .assurance-strip, .policy-official { padding: 26px; border-radius: 20px; }
  .site-motion-toggle { margin-top: 5px; }
}
@media (min-width: 701px) { .mobile-nav-extra { display: none !important; } }
@media (max-width: 430px) { .tool-grid, .delivery-steps { grid-template-columns: 1fr; } .tool-card:last-child { grid-column: auto; } .service-card { padding: 25px; } .product-hero-copy h1 { font-size: 35px; letter-spacing: -1.6px; } .legal-section h2 { font-size: 25px; } }
@media (prefers-reduced-motion: reduce) { html { scroll-behavior: auto !important; } *, *::before, *::after { animation: none !important; transition: none !important; } .premium-visual, .product-card:hover, .portfolio-card:hover, .service-card:hover, .tool-card:hover, .demo-card:hover { transform: none !important; } }

.editorial-band > .wrap { padding-block: 76px; }
.service-card-top { display: flex; align-items: center; justify-content: space-between; margin-bottom: 24px; }
.service-card-top .icon { width: 27px; height: 27px; color: var(--sky); }
.service-card-number { font-size: 11px; color: #8da5bf; }
.service-card ul { padding: 0; list-style: none; }
.service-card li { display: flex; align-items: flex-start; gap: 10px; }
.service-card li .icon { width: 15px; height: 15px; color: var(--sky); margin-top: 5px; }
.service-card:last-child:nth-child(odd) { grid-column: 1/-1; }
.delivery-step-index { display: none; }
.service-faq:has(> details) { border-bottom: 0; padding: 0; margin-top: 30px; }
.service-faq > details { border-bottom: 1px solid var(--line); padding: 25px 0; }
.service-faq > details > summary > .icon { display: none; }
.service-faq > details[open] > summary::after { content: '−'; }
.legal-section.policy-status { display: block; padding: 30px; border-radius: 22px; }
.legal-section.policy-status .eyebrow { margin-bottom: 17px; }
.legal-source-note { display: flex; align-items: center; gap: 10px; margin-top: 23px; font-size: 11px !important; }
.legal-source-note > .icon { width: 16px; height: 16px; color: var(--sky); }
.legal-hero-mark, .legal-hero-visual { flex: .7; min-width: 0; display: flex; align-items: center; justify-content: center; flex-direction: column; gap: 23px; padding: 32px; border-radius: 25px; border: 1px solid #8cc6f82c; background: radial-gradient(circle, #2b519f33, #ffffff02 70%); min-height: 300px; position: relative; }
.legal-hero-mark > .icon { width: 95px; height: 95px; color: #a0d3f6; stroke-width: .8; }
.legal-hero-mark > span, .legal-hero-visual > p { font-size: 10px; letter-spacing: 1.6px; text-align: center; line-height: 1.8; color: #9dbfdf; }
.legal-icon-card { display: flex; align-items: center; justify-content: center; gap: 19px; width: 100%; padding: 25px; border: 1px solid #93caf732; border-radius: 18px; background: #b0d7ff06; color: #c3d9ef; font-size: 12px; }
.legal-icon-card > .icon { width: 37px; height: 37px; color: #92cff8; }
.legal-toc a > span { color: #9eb3ca; float: right; margin-left: 10px; }
.legal-section .assurance-strip { display: flex; gap: 20px; align-items: center; margin-top: 23px; padding: 22px; }
.legal-section .assurance-strip > .icon { margin: 0; }
.legal-section .assurance-strip strong { display: block; font-size: 14px; }
.legal-section .assurance-strip span { display: block; font-size: 11px; color: #6b8097; margin-top: 5px; }
@media (max-width:700px) {
  .editorial-band > .wrap { padding-block: 56px; }
  .legal-hero-mark, .legal-hero-visual { width: 100%; min-height: 220px; }
}

.media-split .tool-grid { display: flex; flex-direction: column; gap: 0; margin-top: 25px; }
.media-split .tool-card { border: 0; border-top: 1px solid #d5e3f0; background: none; border-radius: 0; padding: 17px 0; }
.media-split .tool-card .eyebrow { float: left; width: 28px; margin: 4px 10px 0 0; color: var(--sky); }
.media-split .tool-card h3 { font-size: 17px; }
.media-split .tool-card p { margin-top: 7px; font-size: 12px; }
.media-split .tool-card:hover { transform: none; box-shadow: none; }
.assurance-strip:has(> article) { display: flex; gap: 30px; }
.assurance-strip > article { flex: 1; min-width: 0; }
.assurance-strip > article + article { border-left: 1px solid #d4e3f0; padding-left: 30px; }
.assurance-strip > article h3 { font-size: 21px; }
.workflow.delivery-steps { display: flex; gap: 12px; margin-top: 24px; counter-reset: none; }
.workflow.delivery-steps > li { padding: 13px 14px; border: 1px solid #e2eaf3; }
.workflow.delivery-steps > li::before { display: none; }
@media (max-width:700px) { .assurance-strip:has(> article) { flex-direction: column; gap: 24px; } .assurance-strip > article + article { border-left: 0; border-top: 1px solid #d4e3f0; padding: 24px 0 0; } }

.services-band.editorial-band {
  display: block;
  width: 100%;
  max-width: none;
  margin: 0;
  padding-block: clamp(58px, 6.5vw, 86px);
}
.services-band.editorial-band > .services-band-inner.wrap {
  display: grid;
  grid-template-columns: minmax(0, 1.18fr) minmax(340px, .82fr);
  align-items: center;
  gap: clamp(38px, 5.5vw, 82px);
  padding-block: 0;
}
.services-band .editorial-band-copy { min-width: 0; }
.services-band .editorial-band-copy .eyebrow { margin-bottom: 15px; }
.services-band .editorial-band-copy h2 {
  max-width: 19ch;
  font-size: clamp(35px, 3.5vw, 46px);
  line-height: 1.15;
  letter-spacing: -2px;
}
.services-band .editorial-band-copy p {
  max-width: 620px;
  margin-top: 20px;
  font-size: 14px;
}
.services-band-aside {
  display: flex;
  min-width: 0;
  flex-direction: column;
  gap: 25px;
}
.services-band .service-steps {
  display: grid;
  width: 100%;
  grid-template-columns: minmax(0, 1fr) auto minmax(0, 1fr) auto minmax(0, 1fr);
  align-items: center;
  gap: 12px;
}
.services-band .service-steps > span {
  min-width: 0;
  font-size: 9px;
  line-height: 1.45;
}
.services-band .service-steps strong {
  margin-top: 5px;
  font-size: 14px;
}
.services-band .service-steps > .icon {
  width: 14px;
  height: 14px;
}
.services-band .services-band-cta {
  width: 100%;
  justify-content: space-between;
  gap: 16px;
  margin: 0;
  padding: 18px 0 0;
  border-top: 1px solid #d6e5f2;
  white-space: normal;
}
@media (max-width: 900px) {
  .services-band.editorial-band { padding-block: 55px; }
  .services-band.editorial-band > .services-band-inner.wrap {
    grid-template-columns: minmax(0, 1fr);
    gap: 32px;
  }
  .services-band .editorial-band-copy h2 { max-width: 23ch; }
  .services-band-aside { gap: 20px; }
}
@media (max-width: 700px) {
  .services-band.editorial-band { padding-block: 0; }
  .services-band.editorial-band > .services-band-inner.wrap { padding-block: 50px; }
  .services-band .editorial-band-copy h2 {
    font-size: clamp(31px, 8vw, 40px);
    letter-spacing: -1.6px;
  }
  .services-band .editorial-band-copy p { margin-top: 16px; font-size: 13px; }
  .services-band-aside { gap: 18px; }
  .services-band .service-steps { gap: 7px; }
  .services-band .service-steps > span { font-size: 8px; }
  .services-band .service-steps strong { font-size: 12px; }
  .services-band .service-steps > .icon { width: 12px; height: 12px; }
  .services-band .services-band-cta { font-size: 11px; padding-top: 15px; }
}
@media (prefers-reduced-motion: reduce) {
  .services-band .services-band-cta .icon { transition: none; }
}
