:root{
  --font-family:"Source Sans 3", sans-serif;
  --font-size-base: 20px;
  --border-color-height: 1.4;
  --text-color: #243042;
  --primary-color: #1572B7;
  --secondary-color: #11579C;
  --error-color: #ff1313;
  --muted:#666;
  --white:#FFF;
  --border-color: #a6a6a6;
  --mobile-menu-bg: #F9FCFE;
  --light-blue: #A9D3F2;
  --red: #B42318;
  --grey: #475467;
  --light-grey:#f8f8f8;
  --green: #067647;
  --black: #000;
  --radius: 6px;
  --wrap: 1280px;
}
*{
  box-sizing: border-box;
  font-weight:inherit 
}
html {
  scroll-behavior: smooth;
  -webkit-text-size-adjust: 100%;
  text-size-adjust: 100%;
}
body{
  margin: 0;
  font-family: var(--font-family);
  font-size:var(--font-size-base);
  font-weight:400;
  line-height: var(--border-color-height);
  color:var(--text-color);
}
[id]{
  scroll-margin-top: 106px;
}
.sr-only {
  position: absolute;
  width: 1px;
  height: 1px;
  padding: 0;
  margin: -1px;
  overflow: hidden;
  clip: rect(0, 0, 0, 0); 
  clip-path: inset(50%); 
  white-space: nowrap;
  border: 0;
}
main {
  display: block;
}
section, .section {
  padding:4rem 2rem;
}
section.strip, div.strip, .callout {
  padding:2rem;
}
section.fullwidth {
  padding-left:0;
  padding-right:0;
}
.site-header {
  padding:0 2rem 
}
p {
  margin: 0 0 1em;
  font-weight:400;
}
p:last-child {
  margin:0 
}
.lead {
  font-size:1.35rem;
}
.txt-center {
  text-align:center;
}
a {
  color: var(--primary-color);
  text-decoration: none;
  transition:all 0.25s linear;
}
a:hover, .primary-color {
  color:var(--primary-color);
}
.light-blue {
  color:var(--light-blue);
}
strong, b{
  font-weight: 600;
}
em { font-style: italic; }
i:not([class^="fa"]) { font-style: italic; }
.fa, .fa-brands { font-style: normal; }

small{
  font-size: 0.9em;
}
h1, h2, h3, h4, h5, h6{
  margin: 0 0 1rem;
  line-height: 1.2;
}
h1 {
  font-size: 2.5rem;
  max-width:600px;
  margin:0;
}
h2 {
  font-size: 2.35rem;
}
h3 {
  font-size: 2rem;
}
h4 {
  font-size: 1.15rem;
}
h5 {
  font-size: 1.05rem;
}
h6 {
  font-size: 0.98rem;
  letter-spacing: 0;
}
ul, ol{
  margin: 0 0 1em;
  padding-left: 1.25em;
}
li {
  margin: 0.45em 0;
}
li > ul, li > ol{
  margin-top: 0.4em;
  margin-bottom: 0.4em;
}
hr{
  border: 0;
  border-top: 1px solid var(--border-color);
  margin: 1.75rem 0;
}
img{
  max-width: 100%;
  height: auto;
}
label{
  display: inline-block;
}
input, select, textarea, button{
  font: inherit;
}
input, select, textarea{
  border: 1px solid var(--border-color);
  border-radius: var(--radius);
  padding: 0.65rem 0.8rem;
}
textarea{
  min-height: 120px;
  resize: vertical;
}
:focus-visible{
  outline: 3px solid rgba(31, 95, 174, 0.35);
  outline-offset: 2px;
}
.wrap{
  width: min(var(--wrap), calc(100% - 2rem));
  margin-inline: auto;
}
.site-header{
  border-bottom: 1px solid var(--border-color);
  background: var(--white);
  position: sticky;
  top: 0;
  z-index: 50;
  box-shadow:0 0 3px var(--light-grey);
}
.header-bar{
  display: flex;
  align-items: center;
  gap: 1rem;
  padding: .9rem 0;
}
.header-bar .logo {
  display: flex;
  align-items: center;
}
.nav{
  margin-left: auto;
  display: flex;
  align-items: center;
  gap: 1rem;
}
.main-menu{
  display: none;
  gap: 2.5rem;
  align-items: center;
}
.btn{
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 1rem;
  border: 1px solid transparent;
  border-radius: var(--radius);
  padding: 0.5rem 1.5rem;
  cursor: pointer;
  background: var(--primary-color);
  color: var(--white);
  font-weight:400;
  transition:all 0.25s linear;
}
.btn:hover, .btn:active {
  color: var(--white);
  background:var(--text-color);
}
.btn:hover img, .btn:active img {
  filter: brightness(0) invert(1);
}
.btn-ghost{
  background: transparent;
  border-color: var(--border-color);
  color: var(--text-color);
}
.btn-small{
  padding: .35rem .9rem;
  font-size: 1rem;
  gap:0.5rem;
}
.mobile-toggle{
  margin-left: auto;
  background: transparent;
  border: 1px solid var(--border-color);
  border-radius: var(--radius);
  padding: .55rem .7rem;
  cursor: pointer;
}
.hero-grid{
  display: grid;
  gap: 1.75rem;
  align-items: center;
}
.hero-actions {
  display:flex;
  flex-direction:column;
  gap:0.75rem;
}
.hero-actions a {
  max-width:400px;
}
.hero-actions .btn {
  justify-content: space-between;
  font-size:1.2rem;
}
.hero .lead {
  margin: 1.5rem 0 1.3rem;
  font-size:1.75rem;
  max-width:576px;
}
.hero-img img {
  margin-bottom:4rem;
  text-align:center;
  display:block;
  margin:0 auto 3rem;
}
.hero small {
  font-size: 0.92rem;
}
.steps {
  position: relative;
}
.step {
  display: flex;
  flex-direction: column;
  text-align: center;
  align-content: center;
  align-items: center;
  padding: .5rem .25rem;
}
.step-num {
  background: transparent;
  font-weight: 400;
  font-size: 1.7rem;
}
.step-title {
  letter-spacing: .18em;
  font-size: 1.1rem;
  text-transform: uppercase;
}
.step-sub {
  font-size: 1rem;
  text-transform: uppercase;
}
.steps-grid{
  display:grid;
  grid-template-columns: 1fr 1fr 1fr 1fr;
  gap: 1.25rem;
}
.steps-grid .step:nth-child(1) .step-num, .steps-grid .step:nth-child(1) .step-title {
  color: var(--red);
}
.steps-grid .step:nth-child(2) .step-num, .steps-grid .step:nth-child(2) .step-title{
  color: var(--primary-color);
}
.steps-grid .step:nth-child(3) .step-num, .steps-grid .step:nth-child(3) .step-title{
  color: var(--grey);
}
.steps-grid .step:nth-child(4) .step-num, .steps-grid .step:nth-child(4) .step-title{
  color: var(--green);
}
.steps-grid .step{
  opacity: 0;
  transform: translateY(10px);
  will-change: opacity, transform;
}
.steps.is-animated .steps-grid .step{
  animation: stepIn 520ms ease-out forwards;
}
.steps-grid .step:not(:last-child)::after{
  content: "";
  position: absolute;
  top: 26px;
  left: calc(50% + 26px);
  width: calc(100% - 52px);
  height: 2px;
  background: var(--grey);
  border-radius: 2px;
  transform-origin: left center;
  transform: scaleX(0);
  opacity: 0;
  will-change: transform, opacity;
}
.steps.is-animated .steps-grid .step:not(:last-child)::after{
  animation: lineDraw 420ms ease-out forwards;
}
.steps.is-animated .steps-grid .step:nth-child(1)::after{
  animation-delay: 120ms;
}
.steps.is-animated .steps-grid .step:nth-child(2)::after{
  animation-delay: 300ms;
}
.steps.is-animated .steps-grid .step:nth-child(3)::after{
  animation-delay: 480ms;
}
.risk-strip {
  border-top: 1px solid var(--border-color);
  border-bottom: 1px solid var(--border-color);
  align-items: stretch;
}
.risk-strip-grid {
  display: grid;
  gap: 2rem;
  grid-template-columns: 1fr;
  align-items: center;
}
.risk-heading h2 {
  color:var(--red);
}
.risk-heading p {
  font-size:1rem;
  font-style:italic;
}
.risk-pill {
  display:inline-block;
  width:20px;
  height:20px;
  border-radius:50%;
  background-color: var(--red);
}
.risk-stats {
  display: grid;
  gap: .6rem;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  align-items: stretch;
}
.stat {
  border-left: 1px solid var(--border-color);
  padding-left: .75rem;
  text-align:center;
  display: flex;
  flex-direction: column;
  justify-content: center;
  align-items: center;
}
.stat-num {
  font-weight: 500;
  color: var(--primary-color);
  font-size:2.5rem;
  font-variant-numeric: tabular-nums;
}
.stat-label{
  padding:0 1rem;
  line-height:1.3;
  font-size: 0.95rem;
}
section#how-it-works{
  position: relative;
  isolation: isolate;
  background: none;
}
section#how-it-works::before{
  content: "";
  position: absolute;
  inset: 0;
  z-index: -1;
  background-image: url("../images/section-bg-alt.png");
  background-size: cover;
  background-position: center;
  background-attachment: fixed;
  opacity: 0.25;
}
.problem-grid{
  display: grid;
  gap: 3rem;
  align-items: stretch;
  margin-top:1.5rem;
  padding-bottom:4rem;
}
.bullets{
  margin: .75rem 0 0;
  padding-left: 1.1rem;
}
.bullets li {
  margin: 0 0 1.5rem;
}
.bullets li:last-child {
  margin:0 
}
.media{
  position: relative;
  border-radius: var(--radius);
  overflow: hidden;
  min-height: 260px;
  height: 100%;
  align-self: stretch;
}
.media img{
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: center;
  display: block;
}
.ribbon {
  background: var(--primary-color);
  color: var(--white);
  margin-bottom:4rem;
}
.ribbon-grid {
  display: grid;
  gap: 1.5rem;
  grid-template-columns: repeat(2, minmax(0, 1fr));
}
.ribbon-item {
  display: flex;
  flex-direction:column;
  gap: .65rem;
  align-items: center;
}
.ribbon-icon {
  width: 44px;
  height: 44px;
}
.ribbon-icon i {
  color:var(--white);
  font-weight:900;
  font-size:44px;
  display:block;
  font-style:normal;
}
.ribbon-label {
  font-size:1.4rem;
  text-align:center;
}
.cards-grid{
  display: grid;
  gap: 2rem;
  grid-template-columns: 1fr;
  margin-top: 3rem;
}
.mini-card-head {
  display: flex;
  gap: .75rem;
  align-items: flex-start;
  margin-bottom: .4rem;
}
.mini-card-icon{
  width: 44px;
  height: 44px;
  flex: 0 0 auto;
}
.mini-card-title {
  margin: 0 0 0.5rem;
  color:var(--primary-color);
  font-size:1.4rem;
}
.mini-card-desc {
  margin: .25rem 0 0;
}
.callout {
  border-top: 1px solid var(--border-color);
  border-bottom: 1px solid var(--border-color);
}
.callout .wrap {
  display:flex;
  align-items: center;
  gap:2rem;
}
.callout h3, .callout p {
  margin:0 
}
.callout p {
  color:var(--primary-color);
  font-size:1.5rem;
}
.callout [data-rotating-stat]{
  display: inline-block;
  opacity: 1;
  transform: translateX(0);
  will-change: transform, opacity;
}

.callout [data-rotating-stat].enter-from-left{
  opacity: 0;
  transform: translateX(-18px);
}
.callout [data-rotating-stat].enter-from-right{
  opacity: 0;
  transform: translateX(18px);
}

.callout [data-rotating-stat].is-typing{
  opacity: 1;
  transform: translateX(0);
  transition: opacity 220ms ease, transform 220ms ease;
}

.callout [data-rotating-stat].is-exiting{
  opacity: 0;
  transition: opacity 250ms ease, transform 250ms ease;
}
.callout [data-rotating-stat].exit-to-left{
  transform: translateX(-10px);
}
.callout [data-rotating-stat].exit-to-right{
  transform: translateX(10px);
}
.compare-table{
  width: 100%;
  border-collapse: collapse;
  overflow: hidden;
  border: 0;
  margin-top:1rem;
}
.compare-table th, .compare-table td{
  padding: .85rem .9rem;
  text-align: left;
  vertical-align: top;
  font-size:1.2;
}
.compare-table tr td:first-child {
  min-width:200px;
}
.compare-table thead th {
  font-weight: 600;
  border-bottom:1px solid var(--border-color);
  text-transform:uppercase;
  font-size:1.2rem;
}
.compare-table td {
  border-bottom:1px dashed var(--border-color);
}
.compare-table .is-featured {
  background: var(--primary-color);
  color:var(--white);
}
.compare-table th.is-featured {
  border:0;
  border-radius:var(--radius) var(--radius) 0 0;
}
.compare-table tr:last-child td.is-featured {
  border:0;
  border-radius:0 0 var(--radius) var(--radius);
}
.compare-table thead th.is-featured {
  font-weight: 600;
  border-bottom:1px solid var(--white);
}
.compare-table td.is-featured {
  border-bottom:1px dashed var(--white);
}
.compare-table tr:last-child td {
  border-bottom:0 !important 
}
.compare-note {
  background:var(--light-grey);
  color:var(--primary-color);
  font-size:1.6rem;
  text-align:center;
  border-top: 1px solid var(--border-color);
  border-bottom: 1px solid var(--border-color);
}

.compare-footnote {
  padding-top:2rem;
  color: var(--text-color);
}
.compare-note p {
  margin:0 auto;
  max-width:800px; 
}

.industry-cards{
  display: grid;
  align-items: stretch;
  gap: 1.5rem;
  grid-template-columns: 1fr;
  margin: 2rem auto 2rem;
}
.industry-card{
  border-radius: var(--radius);
  overflow: hidden;
  aspect-ratio:1 / 1;
  background-image: url("../images/healthcare.jpg");
  background-size:cover;
  position: relative;
  display:flex;
  align-items: flex-end;
  padding-bottom:2rem;
}
.industry-card.healthcare {
  background-image: url("../images/healthcare.jpg");
}
.industry-card.legal {
  background-image: url("../images/legal-firms.jpg");
}
.industry-card.financial {
  background-image: url("../images/financial-service.jpg");
}
.industry-card.government {
  background-image: url("../images/government.jpg");
}
.industry-card-body{
  padding: .95rem;
  background:rgba(0,0,0,0.6);
  width: 100%;
  min-height: 130px;
  width: 100%;
  display: flex;
  flex-direction: column;
  justify-content: center;
}
.industry-card-title, .industry-card-desc {
  margin: 0;
  color:var(--white);
}
.industry-card-title {
  font-size:1.25rem;
}
.industry-card-desc{
  margin: 0;
  font-size:0.95rem;
  display: -webkit-box;
  -webkit-line-clamp: 3;
  -webkit-box-orient: vertical;
  overflow: hidden;
}
.process {
  border-top: 1px solid var(--border-color);
}
.process h2, 
.process p {
  text-align:center;
  max-width:1024px;
  margin-left:auto;
  margin-right: auto;
}
.process-grid {
  display: grid;
  gap: 1rem;
  grid-template-columns: 1fr;
  margin: 2rem auto 0;
}
.process-step {
  display: flex;
  flex-direction:column;
  align-items: center;
  gap: .85rem;
  padding: 1rem 1rem 0;
  opacity: 0;
  transform: translateY(10px);
  will-change: opacity, transform;
}
.process-grid.is-animated .process-step{
  animation: stepIn 520ms ease-out forwards;
}
.process-grid.is-animated .process-step:nth-child(1){
  animation-delay: 0ms;
}
.process-grid.is-animated .process-step:nth-child(2){
  animation-delay: 160ms;
}
.process-grid.is-animated .process-step:nth-child(3){
  animation-delay: 320ms;
}
.process-grid.is-animated .process-step:nth-child(4){
  animation-delay: 480ms;
}
.process-grid.is-animated .process-step:nth-child(5){
  animation-delay: 640ms;
}
.process-grid.is-animated .process-step:nth-child(6){
  animation-delay: 800ms;
}
.process-step-badge {
  width: 64px;
  height: 64px;
  font-size:2rem;
  border-radius: 50%;
  border: 2px solid var(--primary-color);
  display: grid;
  place-items: center;
  color: var(--secondary-color);
  flex: 0 0 auto;
}
.process-step-title {
  margin: 0 0 0.25rem;
  font-weight: 500;
  text-align:center;
  line-height:1.2;
}
.process-step-desc{
  margin:0;
  text-align:center;
  line-height:1.3;
  font-size:0.94rem;
}
.case{
  background: var(--primary-color);
  color: var(--white);
}
.case-grid {
  display: grid;
  gap: 3rem;
  align-items: start;
  margin:1rem 0;
}
.case-grid .lead  {
  display:inline-block;
  margin:0.5rem 0 0.5rem;
  font-size: 1.75rem;
  line-height: 1.3;
  position: relative;
  padding-left: 2rem;
}
.case-grid .lead:before {
  content:"";
  width:3px;
  height:100%;
  background-color:var(--light-blue);
  position:absolute;
  bottom:0;
  left:0.5rem;
}
.case-grid .lead span {
  font-size: 1.27rem;
  font-weight: 600;
  line-height: 1.3;
  display: block;
}
.case {
  color: var(--white);
}
.case ul{
  color: var(--white);
}
.faq-grid{
  display: grid;
  gap: 1.25rem;
  align-items: start 
}
.faq-grid h2 {
  margin-bottom:1rem;
}
.accordion {
  display:flex;
  flex-direction:column;
  gap:1rem;
}
.acc-item {
  border: 1px solid var(--primary-color);
  border-radius: var(--radius);
  box-shadow:0 0 1px var(--primary-color);
  overflow: hidden;
  background: var(--white);
}
.acc-btn {
  width: 100%;
  text-align: left;
  background: var(--white);
  border: 0;
  border-radius: 0;
  padding:0.6rem 1rem 0.6rem;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 1rem;
  cursor: pointer;
  font-size:1.2rem;
}
.acc-btn:focus-visible{
  outline: 3px solid rgba(31, 95, 174, 0.35);
  outline-offset: -3px;
}
.acc-panel{
  display: grid;
  grid-template-rows: 0fr;
  transition: grid-template-rows 260ms ease, opacity 260ms ease;
  opacity: 0;
}
.acc-panel-inner{
  overflow: hidden;
  padding: 0 1rem;
}
.acc-panel-inner p, .acc-panel-inner ul {
  margin-bottom:1rem;
}

.acc-btn[aria-expanded="true"] + .acc-panel{
  grid-template-rows: 1fr;
  opacity: 1;
}
.chev{
  position: relative;
  width: 30px;
  min-width: 30px;
  height: 30px;
  border-radius: 50%;
  border: 1px solid var(--primary-color);
  box-shadow:0 0 1px var(--primary-color);
  display: grid;
  place-items: center;
  line-height:30px;
  font-size:24px;
}
.chev::before{
  content: "+";
  transition: transform 200ms ease;
  color: var(--primary-color);
  font-weight:400;
  line-height:30px;
}
.acc-btn[aria-expanded="true"] .chev::before{
  content: "–";
  font-weight:400;
  line-height:26px;
}
.contact-cta{
  background: var(--primary-color);
  color: var(--white);
}
.contact-cta-grid{
  display: grid;
  gap: 2rem;
  align-items: start;
}
.contact-cta-info{
  padding: 1.25rem 0 1.5rem;
}
.contact-cta-title{
  line-height: 1.2;
  color: var(--white);
  max-width:530px;
}
.contact-cta-title, .contact-cta-lead, .contact-cta-text a, .contact-cta-text, .contact-cta-actions .btn:hover {
  color: var(--white);
}
.contact-cta.lead {
  margin:0 0 0.5rem 0;
}
.contact-cta-list{
  list-style: none;
  padding: 0;
  margin: 0 0 1.4rem;
  display: grid;
  gap: 1rem;
}
.contact-cta-item{
  display: grid;
  grid-template-columns: 44px 1fr;
  gap: .85rem;
  align-items: start;
}
.contact-cta-text a:hover{
  text-decoration: underline;
  text-underline-offset: 0.2em;
}
.contact-cta-text strong{
  font-weight: 400;
  color: var(--white);
}
.contact-cta-icon{
  width: 44px;
  height: 44px;
  border-radius: 999px;
  border: 1px solid var(--white);
  box-shadow:0 0 1px var(--white);
  display: grid;
  place-items: center;
  flex: 0 0 auto;
}
.contact-cta-icon i{
  font-size: 1.2rem;
  color: var(--white);
}
.contact-cta-actions{
  margin-top: .5rem;
}
.contact-cta-actions .btn{
  border-color: var(--light-grey);
  color: var(--primary-color);
  background: var(--light-grey);
  padding: .5rem 1rem;
}
.contact-cta-actions .btn:hover{
  background:transparent;
  color:var(--light-grey);
}
.contact-cta-form{
  display: flex;
  justify-content: center;
}
.contact-form-card{
  width: 100%;
  max-width: 100%;
  background: var(--white);
  color: var(--text-color);
  border-radius: var(--radius);
  padding: 2rem 3rem;
  position: relative;
}
.contact-form-title{
  margin: 0 0 .35rem;
  line-height:1.2;
}
.contact-form-sub{
  margin: 0 0 1.25rem;
  line-height: 1.35;
  max-width: 55ch;
}
.contact-form-badge{
  position: absolute;
  right: 30px;
  bottom: 32px;
  width: 44px;
  height: 44px;
  display: grid;
  place-items: center;
  pointer-events: none;
}
.contact-form-badge i{
  font-size: 2rem;
  color: var(--primary-color);
}
.contact-form-card form{
  display: grid;
  gap: .85rem;
}
.contact-form-card .form-row{
  display: grid;
  gap: .85rem;
}
.contact-form-card label{
  display: block;
  margin: 0 0 .35rem;
  color: var(--text-color);
}
.contact-form-card input, .contact-form-card textarea, .contact-form-card select{
  width: 100%;
  border: 1px solid rgba(15, 23, 42, 0.25);
  border-radius: 4px;
  padding: .55rem .65rem;
  font: inherit;
  outline: none;
  background: var(--white);
}
.contact-form-card textarea{
  min-height: 120px;
  resize: vertical;
}
.contact-form-card input:focus, .contact-form-card textarea:focus, .contact-form-card select:focus{
  border-color: var(--primary-color);
  box-shadow: 0 0 0 3px rgba(31, 95, 174, 0.18);
}
.contact-form-card button[type="submit"], .contact-form-card .btn-submit{
  justify-self: start;
  cursor: pointer;
}
.contact-cta-form .form-status.form-status--error,
.contact-form-card .error-text{
  color:var(--red);
  font-size: .9rem;
}
.contact-cta-form .form-status.form-status--error {
  font-size:1.2rem;
  margin-bottom:1rem
}
.hp-field{
  position: absolute !important;
  left: -9999px !important;
  width: 1px !important;
  height: 1px !important;
  overflow: hidden !important;
}
.form-status.form-status--success {
  color:var(--primary-color);
  font-size: 1.5rem;
  max-width: 100%;
  padding-right: 40px;
}
.site-footer{
  padding: 1.25rem 0;
  font-size: .95rem;
}
.footer-bar{
  display: flex;
  gap: .75rem;
  align-items: flex-start;
  justify-content: space-between;
}
.footer-nav {
  flex: 1.2;
  display: flex;
  flex-direction: column;
  gap: 0.5rem;
}
.footer-nav a {
  color:var(--text-color)
}
.footer-nav a:hover {
  color:var(--primary-color)
}
.footer-nav .first-nav-row, .footer-nav .second-nav-row {
  display: flex;
  justify-content: space-between;
  gap: 2rem;
}
.footer-nav .first-nav-row {
  border-bottom: 1px solid var(--border-color);
  padding-bottom: 0.25rem;
}
.footer-nav a:hover {
  color: var(--primary-color);
}
.footer-social {
  display: flex;
  align-items: flex-start;
  gap: 0.75rem;
}
.footer-social i {
  font-size: 1.5rem;
}
.footer-social a {
  color: var(--primary-color);
  text-decoration: none;
}
.footer-social a:hover {
  color: var(--light-azure);
}
.footer-social i.fa-brands,
.footer-social i.fa-brands::before{
  font-style: normal;
}
.footer-right {
  display:flex;
  flex-direction: column;
  align-items: flex-start;
  align-items: center;
  gap:2rem;
}
.reveal{
  opacity: 0;
  transform: translateY(14px);
  transition: opacity 520ms ease, transform 520ms ease;
  will-change: opacity, transform;
}
.reveal.is-visible{
  opacity: 1;
  transform: translateY(0);
}
.reveal.is-visible[data-stagger="true"] > *{
  opacity: 0;
  transform: translateY(10px);
  animation: revealChild 520ms ease forwards;
}
.reveal.is-visible[data-stagger="true"] > *:nth-child(1){
  animation-delay: 0ms;
}
.reveal.is-visible[data-stagger="true"] > *:nth-child(2){
  animation-delay: 80ms;
}
.reveal.is-visible[data-stagger="true"] > *:nth-child(3){
  animation-delay: 160ms;
}
.reveal.is-visible[data-stagger="true"] > *:nth-child(4){
  animation-delay: 240ms;
}
.reveal.is-visible[data-stagger="true"] > *:nth-child(5){
  animation-delay: 320ms;
}

@media (min-width: 992px){
  .main-menu{
      display: flex;
 }
  .mobile-toggle{
      display: none;
 }
  .hero-grid{
      grid-template-columns: 1.05fr .95fr;
 }
  .steps-grid .step{
      position: relative;
 }
  .risk-strip-grid{
      grid-template-columns: 0.5fr 1fr;
 }
  .risk-stats{
      grid-template-columns: repeat(4, minmax(0, 1fr));
 }
  .problem-grid{
      grid-template-columns: 1.05fr .95fr;
      align-items: stretch;
 }
  .problem-grid > *{
      min-height: 0;
      align-self: stretch;
 }
  .ribbon-grid{
      grid-template-columns: repeat(4, minmax(0, 1fr));
 }
  .industry-cards{
      grid-template-columns: repeat(2, minmax(0, 1fr));
 }
  .cards-grid{
      grid-template-columns: repeat(3, minmax(0, 1fr));
 }
  .process-grid{
      grid-template-columns: repeat(6, minmax(0, 1fr));
      position: relative;
      align-items: start;
 }
  .process-step{
      position: relative;
 }
  .process-step:not(:last-child)::after{
      content:"";
      position:absolute;
      top: 40px;
      left: calc(54% + 32px);
      width: calc(100% - 64px);
      height: 2px;
      background: var(--grey);
      border-radius: 2px;
      transform-origin: left center;
      transform: scaleX(0);
      opacity: 0;
      will-change: transform, opacity;
      pointer-events: none;
 }
  .process-grid.is-animated .process-step:not(:last-child)::after{
      animation: lineDraw 420ms ease-out forwards;
 }
  .process-grid.is-animated .process-step:nth-child(1)::after{
      animation-delay: 110ms;
 }
  .process-grid.is-animated .process-step:nth-child(2)::after{
      animation-delay: 270ms;
 }
  .process-grid.is-animated .process-step:nth-child(3)::after{
      animation-delay: 430ms;
 }
  .process-grid.is-animated .process-step:nth-child(4)::after{
      animation-delay: 590ms;
 }
  .process-grid.is-animated .process-step:nth-child(5)::after{
      animation-delay: 750ms;
 }
  .case-grid{
      grid-template-columns: 1fr 1fr;
 }
  .faq-grid{
      grid-template-columns: 1fr 1.15fr;
 }
  .faq-grid h2 {
      margin-top:2rem;
 }
  .contact-cta-grid{
      grid-template-columns: 1.05fr 1fr;
      gap: 2.25rem;
      align-items: center;
 }
  .contact-form-card .form-row{
      grid-template-columns: 1fr 1fr;
 }
  .footer-bar{
      flex-direction: row;
      align-items: center;
 }
  .footer-right {
      flex-direction: row;
 }
}

@media (min-width:1025px) {
  .industry-cards{
      grid-template-columns: repeat(4, minmax(0, 1fr));
 }
}

@media (max-width:1340px) {
  section.fullwidth .wrap {
    padding-left:2rem;
    padding-right:2rem;
  }
}
@media (max-width: 991px){
  [id]{
    scroll-margin-top: 90px;
  }
  .logo img {
     width:160px;
 }
  .nav{
      display: flex;
      align-items: center;
      gap: .75rem;
 }
  .mobile-toggle{
      display: inline-flex;
      align-items:center;
      justify-content:center;
 }
  .main-menu{
    display: flex;
    flex-direction: column;
    gap: .85rem;
    position: absolute;
    left: 0;
    right: 0;
    top: 100%;
    margin-top:1px;
    z-index: 1000;
    background: var(--mobile-menu-bg);
    border: 1px solid var(--border-color);
    border-top: 0;
    padding: 0 1rem; 
    border-radius: 0 0 var(--radius) var(--radius);
    max-height: 0;
    opacity: 0;
    transform: translateY(-6px);
    overflow: hidden;
    visibility: hidden;
    pointer-events: none;
    transition:
      max-height 260ms ease,
      opacity 180ms ease,
      transform 180ms ease,
      visibility 0s linear 260ms; 
 }
 .nav.is-open .main-menu{
    max-height: 420px;
    padding: 1rem;
    opacity: 1;
    transform: translateY(0);
    visibility: visible;
    pointer-events: auto;
    transition:
      max-height 280ms ease,
      opacity 200ms ease,
      transform 200ms ease,
      visibility 0s;
  }
 .main-menu a:not(.btn) {
    display:block;
    width:100%;
    width: 100%;
    text-align: center;
    padding:0.5rem;
  }
  .nav.is-open .main-menu{
      display: flex;
 }
  .header-bar{
      position: relative;
 }
  section, .section {
      padding-top:3rem;
      padding-bottom:3rem;
 }
  .hero-grid {
      justify-items: center;
      text-align: center;
 }
  .ribbon {
      margin-bottom:3rem;
 }
  h1, .hero .lead {
     max-width:100%;
 }
  .hero-actions {
      align-items: center;
 }
  .hero-img, .media {
     display:none;
 }
  .stat {
     border:0
 }
  .risk-heading {
     text-align:center
 }
 .cards-grid {
  grid-template-columns: 1fr 1fr;
 }
  .industry-cards{
      grid-template-columns: repeat(2, minmax(0, 1fr));
 }
 .process-grid {
    grid-template-columns: repeat(3, minmax(0, 1fr));
 }
 .case-grid {
  gap:1rem
 }
 .contact-cta-info {
    text-align:center;
  }
  .mini-card-head {
    align-items: center;
    text-align:center;
  }
  .contact-cta-title {
    margin-left:auto;
    margin-right:auto
  }
  .contact-cta-list {
    display: grid;
    gap: 1rem;
    grid-template-columns: 1fr 1fr; 
  }
  .contact-cta-icon {
    display:none;
  }
  .contact-cta-item {
    border:1px solid var(--white);
    border-radius: var(--radius);
    padding:1rem;
    grid-template-columns: 1fr;
    width: 100%;
  }
  .contact-cta-item:last-child{
    grid-column: 1 / -1;
  }
}
.compare-mobile, .copyright-mobile { display: none; }

@media (max-width: 767px){
  [id]{
    scroll-margin-top: 75px;
  }
  h1 {
    font-size:2.5rem;
  }
  .logo img {
     width:120px;
 }
  .nav .btn img {
     display:none
 }
  section, .section, .site-header, section.fullwidth .wrap, section.strip, div.strip, .callout  {
    padding-left:1rem;
    padding-right:1rem;
 }
  section, .section {
    padding-top:2rem;
    padding-bottom:2rem;
 }
 section.fullwidth .ribbon .wrap {
    padding-left:0;
    padding-right:0;
 }
  .steps-grid {
      grid-template-columns: 1fr 1fr;
 }
  .steps-grid .step:not(:last-child)::after {
      display:none 
  }
  #comparison h2,
  #comparison .lead,
  #how-it-works h2,
  #how-it-works .lead,
  #industries h2,
  #industries .lead {
    text-align:center;
  }
  .mini-card-head {
    align-items: center;
    text-align:center;
  }
 .compare-table, .copyright { display: none; }
 .compare-mobile,.copyright-mobile { display: block; }

 .compare-mobile{
   margin-top: 1.5rem;
 }
 .compare-mobile-nav{
   display: grid;
   grid-template-columns: 44px 1fr 44px;
   align-items: start;
   gap: .75rem;
   margin-bottom: .75rem;
 }
 .cmp-arrow{
   width: 44px;
   height: 44px;
   border-radius: var(--radius);
   border: 2px solid var(--primary-color);
   background: var(--white);
   display: grid;
   place-items: center;
   cursor: pointer;
 }
 .cmp-arrow i{
   font-size: 1.05rem;
   color: var(--primary-color);
 }
 .cmp-arrow[aria-disabled="true"] {
  opacity: 0.5;
  color: var(--grey);
  border-color: var(--grey)
 }
 .cmp-arrow[aria-disabled="true"] i {
  color: var(--grey);
 }
 .compare-mobile-title{
   text-align: center;
   line-height: 1.15;
 }
 .cmp-kicker{
   font-size: 1.5rem;
   font-weight:400;
   margin-bottom: 0.2rem;
   text-transform: uppercase;
 }
 .cmp-feature{
   font-size: 1.25rem;
   color: var(--text-color);
   font-weight:400;
 }
 .compare-mobile-rows{
  transition: opacity 240ms ease;
  opacity: 1;
  will-change: opacity;
  display:flex;
  flex-direction: column;
  gap:0.75rem;
}
.compare-mobile-rows.is-fading-out{
  opacity: 0;
} 
 .cmp-row{
   padding: .85rem .95rem;
   border-radius: var(--radius);
   background: var(--white);
   text-align:center;
   border:1px solid var(--border-color)
 }
 .cmp-row.is-featured{
   background: var(--primary-color);
   border-color: var(--primary-color);
   color: var(--white);
 }
 .cmp-vendor{
   font-weight: 600;
   margin: 0 0 .35rem;
 }
 .cmp-text{
   margin: 0;
   line-height: 1.35;
   opacity: .95;
 }
 .compare-footnote {
  text-align:center;
 }
 .mini-card-head,
 .callout .wrap {
    flex-direction:column;
 }
  .callout .wrap {
    gap:1rem;
  }
  .callout p {
    text-align:center
  }
 .process-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
  .footer-bar {
    flex-direction: column;
    align-items: center;
    text-align:center;

  }
}
@media (max-width: 620px){
  .cards-grid {
   grid-template-columns: 1fr;
  }
  .contact-form-card {
    padding:2rem 1.5rem;
  }
  .main-menu{
     flex-direction: column;
   }
}
.small-screen-only {
 display:none;
}
@media (max-width: 480px){
  .nav .btn {
     display:none
 }
  .nav .main-menu .btn.small-screen-only {
     display:block !important;
     text-align:center;
 }
 .hero small {
    max-width:260px;
    margin:auto;
  }
  .industry-cards{
      grid-template-columns: 1fr;
 }
  .ribbon-grid {  
    grid-template-columns: 1fr;
    gap:1.75rem;
  }
  .cards-grid {
   grid-template-columns: 1fr;
  }
 .process-grid {
    grid-template-columns: 1fr;
  }
  .contact-cta-list {   
    grid-template-columns: 1fr; 
    gap:0.5rem;
  }
}
@media (max-width: 420px){
  .contact-form-badge {
    display:none;
  }
  .contact-form-card button[type="submit"], .contact-form-card .btn-submit {
    width:100%
  }
  .footer-nav .first-nav-row, 
  .footer-nav .second-nav-row {
    flex-wrap: wrap;
    gap: 0.75rem;
  }
  .footer-nav .first-nav-row a, 
  .footer-nav .second-nav-row a {
    width: calc(50% - 2rem);
  }
  .footer-nav .first-nav-row {
    border:0;
    padding-bottom:0
  }
}
@media (min-width:992px) and (max-width:1024px) {
  .logo img {width: 160px;}
  .main-menu {gap:1.5rem}
}
@keyframes lineDraw{
  to{
      transform: scaleX(1);
      opacity: 1;
 }
}
@keyframes stepIn{
  to{
      opacity: 1;
      transform: translateY(0);
 }
}
@keyframes revealChild{
  to{
      opacity: 1;
      transform: translateY(0);
 }
}
@keyframes cmpFade{
  from{ opacity: 0; transform: translateY(6px); }
  to{ opacity: 1; transform: translateY(0); }
}
@media (prefers-reduced-motion: reduce){
  .main-menu,
    .nav.is-open .main-menu{
      transition: none !important;
      transform: none !important;
    }
  .steps-grid .step, .steps-grid .step::after, .process-grid .process-step, .process-grid .process-step::after, .compare-mobile-rows {
      animation: none !important;
      opacity: 1 !important;
      transform: none !important;
 }
  .reveal{
      opacity: 1 !important;
      transform: none !important;
      transition: none !important;
 }
  .reveal.is-visible[data-stagger="true"] > *{
      opacity: 1 !important;
      transform: none !important;
      animation: none !important;
 }
}
