/*Azure Animation*/
.azure-tags ul li {
    transition: transform 0.25s ease, box-shadow 0.25s ease;
    cursor: pointer;
    z-index: 1;
}

.azure-tags ul li:hover {
    transform: scale(1.08);
    box-shadow: 0px 8px 24px rgba(0, 120, 212, 0.18);
    z-index: 10;
}

.snowflake-tags ul li {
    transition: transform 0.25s ease, box-shadow 0.25s ease;
    cursor: pointer;
    z-index: 1;
}

.snowflake-tags ul li:hover {
    transform: scale(1.08);
    box-shadow: 0px 8px 24px rgba(0, 120, 212, 0.18);
    z-index: 10;
}

.snowflake-tags ul li {
    opacity: 0;
    transform: translateY(20px);
    transition: all 0.5s ease;
}

.snowflake-tags ul li.in-view {
    opacity: 1;
    transform: translateY(0);
}

.gcp-tags ul li {
    transition: transform 0.25s ease, box-shadow 0.25s ease;
    cursor: pointer;
    z-index: 1;
}

.gcp-tags ul li:hover {
    transform: scale(1.08);
    box-shadow: 0px 8px 24px rgba(0, 120, 212, 0.18);
    z-index: 10;
}
/* Float animation */
@keyframes floatUpDown {
  0%, 100% { transform: translateY(0px); }
  50%       { transform: translateY(-12px); }
}

/* Pulse ring expand */
@keyframes pulseRing {
  0%   { transform: translate(-50%, -50%) scale(1);    opacity: 0.6; }
  100% { transform: translate(-50%, -50%) scale(1.55); opacity: 0; }
}

/* Apply float to the card */
.partner2-design-wrapper {
  animation: floatUpDown 3s ease-in-out infinite;
  transition: box-shadow 0.3s ease;
}
.partner2-design-wrapper:hover {
  animation-play-state: paused;
  box-shadow: 0px 30px 40px -8px rgba(0, 120, 212, 0.22);
}

/* Pulse rings */
.card-pulse-wrapper {
  position: relative;
}
.pulse-ring {
  position: absolute;
  top: -13%;
    left: 35%;
    width: 30%;
    height: 115%;
  border-radius: 20px;
  border: 1.5px solid #0078D4;
  transform: translate(-50%, -50%) scale(1);
  opacity: 0;
  animation: pulseRing 2.4s ease-out infinite;
  pointer-events: none;
}
.pulse-ring:nth-child(1) { animation-delay: 0s; }
.pulse-ring:nth-child(2) { animation-delay: 0.8s; }
.pulse-ring:nth-child(3) { animation-delay: 1.6s; }

/*.partner2-hero-cta a {*/
/*  transition: transform 0.25s cubic-bezier(.34,1.56,.64,1),*/
/*              box-shadow 0.25s ease;*/
/*}*/

.partner2-hero-cta a:hover {
  transform: translateY(-4px);
  /*box-shadow: 0 8px 20px rgba(0, 90, 158, 0.15);*/
}

.partner2-hero-cta a:active {
  transform: translateY(-1px);
  /*box-shadow: 0 3px 8px rgba(0, 90, 158, 0.12);*/
}

.partner2-edge-card2-wrapper {
  opacity: 0;
  transform: translateX(40px);
  transition: opacity 0.6s ease, transform 0.6s cubic-bezier(.25,.8,.25,1);
}

.partner2-edge-card2-wrapper.in-view {
  opacity: 1;
  transform: translateX(0);
}

.azure-pin-card {
  opacity: 0;
  transform: translateY(30px);
  transition: opacity 0.5s ease, transform 0.5s cubic-bezier(.34,1.56,.64,1);
}

.azure-pin-card.in-view {
  opacity: 1;
  transform: translateY(0);
}

.partner2-faq .hero{
  opacity: 0;
  transform: translateY(30px);
  transition: opacity 0.6s ease, transform 0.6s cubic-bezier(.25,.8,.25,1);
}

.partner2-faq .hero.in-view {
  opacity: 1;
  transform: translateY(0);
} 

.partner2-industry-leader{
  opacity: 0;
  transform: translateY(30px);
  transition: opacity 0.6s ease, transform 0.6s cubic-bezier(.25,.8,.25,1);
}

.partner2-industry-leader.in-view {
  opacity: 1;
  transform: translateY(0);
} 

.partner2-edge-card1 {
  opacity: 0;
  transform: translateX(-40px);
  transition: opacity 0.6s ease, transform 0.6s cubic-bezier(.25,.8,.25,1);
}

.partner2-edge-card1.in-view {
  opacity: 1;
  transform: translateX(0);
}
.partner2-edge-card2 {
  opacity: 0;
  transform: translateX(40px);
  transition: opacity 0.6s ease, transform 0.6s cubic-bezier(.25,.8,.25,1);
}

.partner2-edge-card2.in-view {
  opacity: 1;
  transform: translateX(0);
}

.stat-item {
  opacity: 0;
  transform: translateY(35px);
  transition: opacity 0.55s ease, transform 0.55s cubic-bezier(.34,1.56,.64,1);
}

.stat-item.in-view {
  opacity: 1;
  transform: translateY(0);
}

/*.stats-container1 {*/
/*  opacity: 0;*/
/*  transform: translateY(40px);*/
/*  transition: opacity 0.7s ease, transform 0.7s cubic-bezier(.25,.8,.25,1);*/
/*}*/

.stats-container1.in-view {
  opacity: 1;
  transform: translateY(0);
}

.snowflake-container.in-view {
  opacity: 1;
  transform: translateY(0);
}

.section-header {
  opacity: 0;
  transform: translateY(30px);
  transition: opacity 0.6s ease, transform 0.6s cubic-bezier(.25,.8,.25,1);
}

.section-header.in-view {
  opacity: 1;
  transform: translateY(0);
}

.partner2-head,
.partner2-hero-cta {
  opacity: 0;
  transform: translateY(30px);
  transition: opacity 0.6s ease, transform 0.6s cubic-bezier(.25,.8,.25,1);
}

.partner2-head.in-view {
  opacity: 1;
  transform: translateY(0);
}

.partner2-hero-cta.in-view {
  opacity: 1;
  transform: translateY(0);
  transition-delay: 0.2s;
}

.azure-tags ul li {
  opacity: 0;
  transition: opacity 0.5s ease, transform 0.5s cubic-bezier(.34,1.56,.64,1);
  transform: scale(0.85);
}

.azure-tags ul li.in-view {
  opacity: 1;
  transform: scale(1);
}

.gcp-tags ul li {
  opacity: 0;
  transition: opacity 0.5s ease, transform 0.5s cubic-bezier(.34,1.56,.64,1);
  transform: scale(0.85);
}

.gcp-tags ul li.in-view {
  opacity: 1;
  transform: scale(1);
}

.partner2-design-wrapper {
  animation: floatUpDown 3s ease-in-out infinite
            
}

@keyframes floatUpDown {
  0%, 100% { transform: translateY(0px); }
  50%       { transform: translateY(-12px); }
}

/*Hero*/
/* ── WRAPPER ── */
.card-pulse-wrapper {
  perspective: 1000px;
  /*display: inline-block;*/
  position: relative;
}

/* ── MAIN CARD ── */
.partner2-design-wrapper {
  width: 128px;
  height: 128px;
  border-radius: 16px;
  background: #fff;
  border: 1px solid #BFDBFE;
  box-shadow: 0 15px 40px rgba(0, 120, 212, 0.15);
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  position: relative;
  animation: tilt3d 6s ease-in-out infinite;
  transition: border-color 0.3s ease;
}

.aws-partner2-design-wrapper{
    border: 1px solid #FE910B;
}

.partner2-design-wrapper:hover {
  border-color: #60A5FA;
}


/* ── A TEXT ── */
.partner2-design-wrapper p {
  font-size: 60px;
  font-weight: 900;
  font-style: italic;
  letter-spacing: -2px;
  color: #0078D4;
  line-height: 1;
  margin: 0;
  text-shadow: 0 2px 10px rgba(0, 120, 212, 0.15);
}

/* ── CORE AZURE TEXT ── */
.partner2-design-wrapper span {
  font-size: 9px;
  font-weight: 800;
  letter-spacing: 3px;
  color: #0078D4;
  text-transform: uppercase;
  line-height: 1;
  margin-top: 4px;
}

.aws-mob .pulse-ring:nth-child(1){
    border: 1px solid #FE910B;
}

.aws-mob .pulse-ring:nth-child(2){
    border: 1px solid #FE910B;
}


/* ── PING RING (fast, sharp) ── */
.pulse-ring:nth-child(1) {
  position: absolute;
  /*inset: 0;*/
  border-radius: 16px;
  border: 1px solid rgba(0, 120, 212, 1);
  animation: pingRing 1.5s cubic-bezier(0, 0, 0.2, 1) infinite;
  opacity: 0.2;
}

 /*── PULSE RING (slow, soft) ── */
.pulse-ring:nth-child(2) {
  position: absolute;
  /*inset: -16px;*/
  border-radius: 24px;
  border: 1px solid rgba(0, 120, 212, 1);
  animation: pulseRing 3s ease-in-out infinite;
  left: 35%;
    width: 30%;
}

/* ── 3rd ring hidden ── */
.pulse-ring:nth-child(3) {
  display: none;
}

/* ── KEYFRAMES ── */
@keyframes tilt3d {
  0%   { transform: translateY(0px)   rotateX(8deg)  rotateY(-8deg); }
  25%  { transform: translateY(-8px)  rotateX(12deg) rotateY(10deg); }
  50%  { transform: translateY(-12px) rotateX(-6deg) rotateY(8deg);  }
  75%  { transform: translateY(-6px)  rotateX(10deg) rotateY(-10deg);}
  100% { transform: translateY(0px)   rotateX(8deg)  rotateY(-8deg); }
}

@keyframes pingRing {
  0%   { transform: scale(1);    opacity: 0.2; }
  75%  { transform: scale(1.5);  opacity: 0;   }
  100% { transform: scale(1.5);  opacity: 0;   }
}

@keyframes pulseRing {
  0%, 100% { opacity: 0.1; transform: scale(1);    }
  50%       { opacity: 0.3; transform: scale(1.05); }
}

.azure-head {
  opacity: 0;
  transform: translateY(50px);
  transition: opacity 1.2s ease, transform 0.6s cubic-bezier(.25,.8,.25,1);
}

.azure-head.in-view {
  opacity: 1;
  transform: translateY(0);
}

.core-focus-head {
  opacity: 0;
  transform: translateY(50px);
  transition: opacity 1.2s ease, transform 0.6s cubic-bezier(.25,.8,.25,1);
}

.core-focus-head.in-view {
  opacity: 1;
  transform: translateY(0);
}

.partnership-card {
    opacity: 0;
    transform: translateY(50px);
}

.partnership-card.animate-card {
    animation: cardReveal 0.8s ease-out forwards;
}

@keyframes cardReveal {
    from {
        opacity: 0;
        transform: translateY(50px);
    }
    to {
        opacity: 1;
        transform: translateY(0);
    }
}

.tabs-wrapper1 .tab-card {
    opacity: 0;
    transform: translateX(-25px);
}

.tabs-wrapper1 .tab-card.animate {
    animation: tabsCardSlideIn 0.5s ease forwards;
}

@keyframes tabsCardSlideIn {
    from {
        opacity: 0;
        transform: translateX(-25px);
    }
    to {
        opacity: 1;
        transform: translateX(0);
    }
}

.azure-industry-leader,
.azure-section-sub {
  opacity: 0;
  transform: translateY(30px);
  transition: opacity 1s ease, transform 1s cubic-bezier(.16, 1, .3, 1);
}

.azure-industry-leader.in-view {
  opacity: 1;
  transform: translateY(0);
}

.azure-section-sub.in-view {
  opacity: 1;
  transform: translateY(0);
  transition-delay: 0.2s;
}

.footer-cta-card1 {
  opacity: 0;
  transform: translateX(-40px);
  transition: opacity 0.9s ease, transform 0.9s cubic-bezier(.16, 1, .3, 1);
}

.footer-cta-card2 {
  opacity: 0;
  transform: translateX(40px);
  transition: opacity 0.9s ease, transform 0.9s cubic-bezier(.16, 1, .3, 1);
}

.footer-cta-card1.in-view {
  opacity: 1;
  transform: translateX(0);
}

.footer-cta-card2.in-view {
  opacity: 1;
  transform: translateX(0);
  transition-delay: 0.15s;
}

/*aws animation*/
.aws-partner2-hero .partner2-head {
  opacity: 0;
  transform: translateY(30px);
  transition: opacity 0.6s ease, transform 0.6s cubic-bezier(.25,.8,.25,1);
}

.aws-partner2-hero .partner2-head.in-view {
  opacity: 1;
  transform: translateY(0);
}


.aws-partner2-hero .aws-hero-cta {
  opacity: 0;
  transform: translateY(30px);
  transition: opacity 0.6s ease, transform 0.6s cubic-bezier(.25,.8,.25,1);
}

.aws-partner2-hero .aws-hero-cta.in-view {
  opacity: 1;
  transform: translateY(0);
}


.aws-tags ul li {
  opacity: 0;
  transition: opacity 0.5s ease, transform 0.5s cubic-bezier(.34,1.56,.64,1);
  transform: scale(0.85);
}

.aws-tags ul li.in-view {
  opacity: 1;
  transform: scale(1);
}

.aws-head {
  opacity: 0;
  transform: translateY(50px);
  transition: opacity 1.2s ease, transform 0.6s cubic-bezier(.25,.8,.25,1);
}

.aws-head.in-view {
  opacity: 1;
  transform: translateY(0);
}

.focus-wrapper {
  opacity: 0;
  transform: translateY(40px);
  transition: opacity 0.7s ease, transform 0.7s cubic-bezier(.16, 1, .3, 1);
}

.focus-wrapper.in-view {
  opacity: 1;
  transform: translateY(0);
}

.aws-marketplace-card:nth-child(1) {
  opacity: 0;
  transform: translateX(-40px);
  transition: opacity 0.9s ease, transform 0.9s cubic-bezier(.16, 1, .3, 1);
}

.aws-marketplace-card:nth-child(2) {
  opacity: 0;
  transform: translateX(40px);
  transition: opacity 0.9s ease, transform 0.9s cubic-bezier(.16, 1, .3, 1);
  transition-delay: 0.15s;
}

.aws-marketplace-card.in-view {
  opacity: 1;
  transform: translateX(0);
}


.aws-cta-card:nth-child(1) {
    opacity: 0;
  transform: translateX(-60px);
  transition: all 0.7s cubic-bezier(0.25, 0.46, 0.45, 0.94);
}

.aws-cta-card:nth-child(1).in-view{
    opacity: 1;
    transform: translateX(0);
}
/* Card 2 — slides in from right */
.aws-cta-card:nth-child(2) {
  opacity: 0;
    transform: translateX(60px);
    transition: all 0.7s cubic-bezier(0.25, 0.46, 0.45, 0.94);
}
.aws-cta-card:nth-child(2).in-view {
    opacity: 1;
    transform: translateX(0);
}
.gcp-partner2-design-wrapper{
    border: 1px solid #DBEAFE;
}
/*dbt-animation*/
.dbt-card {
    opacity: 0;
    transform: translateY(40px);
    animation: slideUp 0.8s ease forwards;
}

.focus-area-card-wrap:nth-child(1) .dbt-card {
    animation-delay: 0.1s;
}

.focus-area-card-wrap:nth-child(2) .dbt-card {
    animation-delay: 0.3s;
}

.focus-area-card-wrap:nth-child(3) .dbt-card {
    animation-delay: 0.5s;
}

.focus-area-card-wrap:nth-child(4) .dbt-card {
    animation-delay: 0.7s;
}

/*ibm*/
.ibm-head-detail{
  opacity: 0;
  transform: translateY(30px);
  transition: opacity 0.6s ease, transform 0.6s cubic-bezier(.25,.8,.25,1);
}

.ibm-head-detail.in-view {
  opacity: 1;
  transform: translateY(0);
}

.apptio-focus{
    opacity: 0;
  transform: translateY(30px);
  transition: opacity 0.6s ease, transform 0.6s cubic-bezier(.25,.8,.25,1);
}

.apptio-focus.in-view {
  opacity: 1;
  transform: translateY(0);
}

.apptio-card {
  opacity: 0;
  transform: translateX(-40px);
  transition: opacity 0.6s ease, transform 0.6s cubic-bezier(.25,.8,.25,1);
}

.apptio-card.in-view {
  opacity: 1;
  transform: translateX(0);
}
.apptio-transform-card {
  opacity: 0;
  transform: translateX(40px);
  transition: opacity 0.6s ease, transform 0.6s cubic-bezier(.25,.8,.25,1);
}

.apptio-transform-card.in-view {
  opacity: 1;
  transform: translateX(0);
}

.apptio-faq .wp .hero {
  opacity: 0;
  transform: translateY(30px);
  transition: opacity 0.6s ease, transform 0.6s cubic-bezier(.25,.8,.25,1);
}

.apptio-faq .wp .hero.in-view {
  opacity: 1;
  transform: translateY(0);
}

.apptio-cta-head {
  opacity: 0;
  transform: translateY(30px);
  transition: opacity 0.6s ease, transform 0.6s cubic-bezier(.25,.8,.25,1);
}

.apptio-cta-head.in-view {
  opacity: 1;
  transform: translateY(0);
}

/*//databricks*/
/* Base state: hidden, shifted down */
.promo-banner .logo-pill,
.promo-banner .headline-box,
.promo-banner .subtext,
.promo-banner .cta-group {
  opacity: 0;
  transform: translateY(24px);
}

/* When JS adds this class to the parent, children animate in with stagger */
.promo-banner.animate-in .logo-pill,
.promo-banner.animate-in .headline-box,
.promo-banner.animate-in .subtext,
.promo-banner.animate-in .cta-group {
  animation: slideUpFadeIn 0.7s ease-out forwards;
}

.promo-banner.animate-in .logo-pill    { animation-delay: 0.1s; }
.promo-banner.animate-in .headline-box { animation-delay: 0.3s; }
.promo-banner.animate-in .subtext      { animation-delay: 0.5s; }
.promo-banner.animate-in .cta-group    { animation-delay: 0.7s; }

.value-prop-grid {
  overflow: hidden; /* prevents horizontal scrollbar during animation */
}

/* Base hidden states */
.value-prop-text {
  opacity: 0;
  transform: translateX(-40px);
}

.value-prop-card {
  opacity: 0;
  transform: translateX(40px);
}

/* Animate in when parent gets .animate-in */
.value-prop-grid.animate-in .value-prop-text {
  animation: slideInFromLeft 0.8s ease-out forwards;
}

.value-prop-grid.animate-in .value-prop-card {
  animation: slideInFromRight 0.8s ease-out forwards;
  animation-delay: 0.2s; /* slight stagger so card follows text */
}

.stats-bar .stat-d {
  opacity: 0;
  transform: translateY(20px);
  transition: opacity 0.6s ease-out, transform 0.6s ease-out;
}

.stats-bar.animate-in .stat-d {
  opacity: 1;
  transform: translateY(0);
}

/* Optional stagger for the fade-in of each stat block */
.stats-bar.animate-in .stat-d:nth-child(1) { transition-delay: 0s; }
.stats-bar.animate-in .stat-d:nth-child(2) { transition-delay: 0.1s; }
.stats-bar.animate-in .stat-d:nth-child(3) { transition-delay: 0.2s; }
.stats-bar.animate-in .stat-d:nth-child(4) { transition-delay: 0.3s; }

.stat-number {
  font-variant-numeric: tabular-nums; /* prevents digit width jitter while counting */
}



@keyframes slideInFromLeft {
  from {
    opacity: 0;
    transform: translateX(-40px);
  }
  to {
    opacity: 1;
    transform: translateX(0);
  }
}

@keyframes slideInFromRight {
  from {
    opacity: 0;
    transform: translateX(40px);
  }
  to {
    opacity: 1;
    transform: translateX(0);
  }
}

@keyframes slideUpFadeIn {
  from {
    opacity: 0;
    transform: translateY(24px);
  }
  to {
    opacity: 1;
    transform: translateY(0);
  }
}


@keyframes slideUp {
    from {
        opacity: 0;
        transform: translateY(40px);
    }
    to {
        opacity: 1;
        transform: translateY(0);
    }
}

/*dbt labs*/
/* Animation state — added by JS when in view */
.dbt-hero-services.in-view .dbt-hero-card {
    animation: cardFadeUp 0.6s ease forwards;
}

/* Stagger each card */
.dbt-hero-services.in-view .dbt-hero-card:nth-child(1) { animation-delay: 0.1s; }
.dbt-hero-services.in-view .dbt-hero-card:nth-child(2) { animation-delay: 0.3s; }
.dbt-hero-services.in-view .dbt-hero-card:nth-child(3) { animation-delay: 0.5s; }
.dbt-hero-services.in-view .dbt-hero-card:nth-child(4) { animation-delay: 0.7s; }

@keyframes cardFadeUp {
    from {
        opacity: 0;
        transform: translateY(30px);
    }
    to {
        opacity: 1;
        transform: translateY(0);
    }
}

.databricks-focus-area__item {
  opacity: 0;
  transform: translateY(24px);
  transition: opacity 0.6s ease-out, transform 0.6s ease-out;
}

/* Fallback: if JS fails or never runs, show content after a short delay anyway */
.databricks-focus-area__item {
  animation: forceShow 0s 1.5s forwards;
}

@keyframes forceShow {
  to {
    opacity: 1;
    transform: translateY(0);
  }
}

/* Real animation, staggered */
.databricks-focus-area__accordion.animate-in .databricks-focus-area__item {
  animation: none; /* cancel the fallback once JS kicks in */
  opacity: 1;
  transform: translateY(0);
}

.databricks-focus-area__accordion.animate-in .databricks-focus-area__item:nth-child(1) { transition-delay: 0.1s; }
.databricks-focus-area__accordion.animate-in .databricks-focus-area__item:nth-child(2) { transition-delay: 0.3s; }
.databricks-focus-area__accordion.animate-in .databricks-focus-area__item:nth-child(3) { transition-delay: 0.5s; }

.databricks-focus-area__eyebrow,
.databricks-focus-area__subtitle {
  opacity: 0;
  transform: translateY(24px);
}

.databricks-focus-area__container.animate-in .databricks-focus-area__eyebrow,
.databricks-focus-area__container.animate-in .databricks-focus-area__subtitle {
  animation: slideUpFadeIn 0.6s ease-out forwards;
}

.databricks-focus-area__container.animate-in .databricks-focus-area__eyebrow {
  animation-delay: 0.1s;
}

.databricks-focus-area__container.animate-in .databricks-focus-area__subtitle {
  animation-delay: 0.3s;
}

@keyframes slideUpFadeIn {
  from {
    opacity: 0;
    transform: translateY(24px);
  }
  to {
    opacity: 1;
    transform: translateY(0);
  }
}

/* Fallback in case JS/observer fails to fire */
.databricks-focus-area__eyebrow,
.databricks-focus-area__subtitle {
  animation: forceShowText 0s 1.5s forwards;
}

@keyframes forceShowText {
  to {
    opacity: 1;
    transform: translateY(0);
  }
}

.databricks-focus-area__container.animate-in .databricks-focus-area__eyebrow,
.databricks-focus-area__container.animate-in .databricks-focus-area__subtitle {
  animation-name: slideUpFadeIn; /* overrides the fallback once JS kicks in */
}

.db-partnership__title {
  opacity: 0;
  transform: translateY(24px);
}

.db-partnership__title.animate-in {
  animation: slideUpFadeIn 0.6s ease-out forwards;
}

@keyframes slideUpFadeIn {
  from {
    opacity: 0;
    transform: translateY(24px);
  }
  to {
    opacity: 1;
    transform: translateY(0);
  }
}

/* Fallback in case JS/observer fails to fire */
.db-partnership__title {
  animation: forceShowTitle 0s 1.5s forwards;
}

@keyframes forceShowTitle {
  to {
    opacity: 1;
    transform: translateY(0);
  }
}

.db-partnership__title.animate-in {
  animation-name: slideUpFadeIn; /* overrides fallback once JS kicks in */
}

.db-card {
  opacity: 0;
  transform: translateY(24px);
}

.db-partnership__grid.animate-in .db-card {
  animation: slideUpFadeIn 0.6s ease-out forwards;
}

.db-partnership__grid.animate-in .db-card:nth-child(1) { animation-delay: 0.1s; }
.db-partnership__grid.animate-in .db-card:nth-child(2) { animation-delay: 0.3s; }
.db-partnership__grid.animate-in .db-card:nth-child(3) { animation-delay: 0.5s; }

@keyframes slideUpFadeIn {
  from {
    opacity: 0;
    transform: translateY(24px);
  }
  to {
    opacity: 1;
    transform: translateY(0);
  }
}

/* Fallback in case JS/observer fails to fire */
.db-card {
  animation: forceShowCard 0s 1.8s forwards;
}

@keyframes forceShowCard {
  to {
    opacity: 1;
    transform: translateY(0);
  }
}

.db-partnership__grid.animate-in .db-card {
  animation-name: slideUpFadeIn; /* overrides fallback once JS kicks in */
}

.db-services-head h2 {
  opacity: 0;
  transform: translateY(24px);
}

.db-services-head h2.animate-in {
  animation: slideUpFadeIn 0.6s ease-out forwards;
}

@keyframes slideUpFadeIn {
  from {
    opacity: 0;
    transform: translateY(24px);
  }
  to {
    opacity: 1;
    transform: translateY(0);
  }
}

/* Fallback in case JS/observer fails to fire */
.db-services-head h2 {
  animation: forceShowHeading 0s 1.5s forwards;
}

@keyframes forceShowHeading {
  to {
    opacity: 1;
    transform: translateY(0);
  }
}

.db-services-head h2.animate-in {
  animation-name: slideUpFadeIn; /* overrides fallback once JS kicks in */
}
.db-industry-partner h2 {
  opacity: 0;
  transform: translateY(24px);
}

.db-industry-partner h2.animate-in {
  animation: slideUpFadeIn 0.6s ease-out forwards;
}

@keyframes slideUpFadeIn {
  from {
    opacity: 0;
    transform: translateY(24px);
  }
  to {
    opacity: 1;
    transform: translateY(0);
  }
}

/* Fallback in case JS/observer fails to fire */
.db-industry-partner h2 {
  animation: forceShowHeading 0s 1.5s forwards;
}

@keyframes forceShowHeading {
  to {
    opacity: 1;
    transform: translateY(0);
  }
}

.db-industry-partner h2.animate-in {
  animation-name: slideUpFadeIn; /* overrides fallback once JS kicks in */
}

.cta-content h2,
.cta-content .cta-subline,
.cta-content .db-cta-button {
  opacity: 0;
  transform: translateY(24px);
}

.cta-content.animate-in h2,
.cta-content.animate-in .cta-subline,
.cta-content.animate-in .db-cta-button {
  animation: slideUpFadeIn 0.6s ease-out forwards;
}

.cta-content.animate-in h2 { animation-delay: 0.1s; }
.cta-content.animate-in .cta-subline { animation-delay: 0.3s; }
.cta-content.animate-in .db-cta-button { animation-delay: 0.5s; }

@keyframes slideUpFadeIn {
  from {
    opacity: 0;
    transform: translateY(24px);
  }
  to {
    opacity: 1;
    transform: translateY(0);
  }
}

/* Fallback in case JS/observer fails to fire */
.cta-content h2,
.cta-content .cta-subline,
.cta-content .db-cta-button {
  animation: forceShowCta 0s 1.8s forwards;
}

@keyframes forceShowCta {
  to {
    opacity: 1;
    transform: translateY(0);
  }
}

.cta-content.animate-in h2,
.cta-content.animate-in .cta-subline,
.cta-content.animate-in .db-cta-button {
  animation-name: slideUpFadeIn; /* overrides fallback once JS kicks in */
}
@media (min-width: 2000px) and (max-width: 2499px) {
.pulse-ring:nth-child(2){
    left: 36%;
    width: 28%;
}
}
@media (min-width: 1600px) and (max-width: 2000px) {
.pulse-ring:nth-child(2){
    left: 36%;
    width: 27%;
}
}
@media (min-width: 1024px) and (max-width: 1199px) {
    /* ipad-pro */
    .pulse-ring:nth-child(2){
        left: 31%;
        width: 38%;
    }
}
