:root {
    /* grid */
    --column-count: 12;
    --grid-main: repeat(var(--column-count), minmax(0, 1fr));
    --grid-1: repeat(1, minmax(0, 1fr));
    --grid-2: repeat(2, minmax(0, 1fr));
    --grid-3: repeat(3, minmax(0, 1fr));
    --grid-4: repeat(4, minmax(0, 1fr));
    --grid-5: repeat(5, minmax(0, 1fr));
    --grid-6: repeat(6, minmax(0, 1fr));
    --grid-7: repeat(7, minmax(0, 1fr));
    --grid-8: repeat(8, minmax(0, 1fr));
    --grid-9: repeat(9, minmax(0, 1fr));
    --grid-10: repeat(10, minmax(0, 1fr));
    --grid-11: repeat(11, minmax(0, 1fr));
    --grid-12: repeat(12, minmax(0, 1fr));
    --grid-gap-total: calc(var(--grid-gap--main) * (var(--column-count) - 1));
    --column-width: calc((100% - var(--grid-gap-total)) / var(--column-count) + var(--grid-gap--main));
    --breakout-gutter: minmax(calc(var(--padding-horizontal--main) - var(--grid-gap--main)), 1fr);
    --breakout-remaining: calc(var(--max-width--main) - (var(--padding-horizontal--main) * 2));
    --breakout-start: [full-start] var(--breakout-gutter) [content-start];
    --breakout-end: [content-end] var(--breakout-gutter) [full-end];
    --grid-breakout-single: var(--breakout-start) minmax(0, var(--breakout-remaining)) var(--breakout-end);
    --grid-breakout: var(--breakout-start) repeat(var(--column-count), minmax(0, calc((var(--breakout-remaining) - var(--grid-gap-total)) / var(--column-count)))) var(--breakout-end)));}

  /* Make text look crisper and more legible in all browsers */
  body {
    -webkit-font-smoothing: antialiased;
    -moz-osx-font-smoothing: grayscale;
    font-smoothing: antialiased;
    text-rendering: optimizeLegibility;
  }

  /* Focus state style for keyboard navigation for the focusable elements */
  *[tabindex]:focus-visible,
  input[type="file"]:focus-visible {
    outline: 0.125rem solid #4d65ff;
    outline-offset: 0.125rem;
  }

  .no-scrollbar {
    -ms-overflow-style: none;
  }

  /* Set color style to inherit */
  .inherit-color * {
    color: inherit;
  }

  /* Get rid of top margin on first element in any rich text element */
  .w-richtext > :not(div):first-child, .w-richtext > div:first-child > :first-child {
    margin-top: 0 !important;
  }

  /* Get rid of bottom margin on last element in any rich text element */
  .w-richtext>:last-child, .w-richtext ol li:last-child, .w-richtext ul li:last-child {
    margin-bottom: 0 !important;
  }


  /* Make sure containers never lose their center alignment */
  .container-medium,.container-small, .container-large .container-full {
    margin-right: auto !important;
    margin-left: auto !important;
  }

  /* 
  Make the following elements inherit typography styles from the parent and not have hardcoded values. 
  Important: You will not be able to style for example "All Links" in Designer with this CSS applied.
  Uncomment this CSS to use it in the project. Leave this message for future hand-off.
  */
  /*
  a,
  .w-input,
  .w-select,
  .w-tab-link,
  .w-nav-link,
  .w-dropdown-btn,
  .w-dropdown-toggle,
  .w-dropdown-link {
  color: inherit;
  text-decoration: inherit;
  font-size: inherit;
  }
  */

  /* Apply "..." after 3 lines of text */
  .text-style-3lines {
    display: -webkit-box;
    overflow: hidden;
    -webkit-line-clamp: 3;
    -webkit-box-orient: vertical;
  }

  /* Apply "..." after 2 lines of text */
  .text-style-2lines {
    display: -webkit-box;
    overflow: hidden;
    -webkit-line-clamp: 2;
    -webkit-box-orient: vertical;
  }

  .text-style-7lines {
    display: -webkit-box;
    overflow: hidden;
    -webkit-line-clamp: 7;
    -webkit-box-orient: vertical;
  }

  /* These classes are never overwritten */
  .hide {
    display: none !important;
  }

  @media screen and (max-width: 991px) {
    .hide, .hide-tablet {
      display: none !important;
    }
  }
  @media screen and (max-width: 767px) {
    .hide-mobile-landscape{
      display: none !important;
    }
  }
  @media screen and (max-width: 479px) {
    .hide-mobile{
      display: none !important;
    }
  }

  .margin-0 {
    margin: 0rem !important;
  }

  .padding-0 {
    padding: 0rem !important;
  }

  .spacing-clean {
    padding: 0rem !important;
    margin: 0rem !important;
  }

  .margin-top {
    margin-right: 0rem !important;
    margin-bottom: 0rem !important;
    margin-left: 0rem !important;
  }

  .padding-top {
    padding-right: 0rem !important;
    padding-bottom: 0rem !important;
    padding-left: 0rem !important;
  }

  .margin-right {
    margin-top: 0rem !important;
    margin-bottom: 0rem !important;
    margin-left: 0rem !important;
  }

  .padding-right {
    padding-top: 0rem !important;
    padding-bottom: 0rem !important;
    padding-left: 0rem !important;
  }

  .margin-bottom {
    margin-top: 0rem !important;
    margin-right: 0rem !important;
    margin-left: 0rem !important;
  }

  .padding-bottom {
    padding-top: 0rem !important;
    padding-right: 0rem !important;
    padding-left: 0rem !important;
  }

  .margin-left {
    margin-top: 0rem !important;
    margin-right: 0rem !important;
    margin-bottom: 0rem !important;
  }

  .padding-left {
    padding-top: 0rem !important;
    padding-right: 0rem !important;
    padding-bottom: 0rem !important;
  }

  .margin-horizontal {
    margin-top: 0rem !important;
    margin-bottom: 0rem !important;
  }

  .padding-horizontal {
    padding-top: 0rem !important;
    padding-bottom: 0rem !important;
  }

  .margin-vertical {
    margin-right: 0rem !important;
    margin-left: 0rem !important;
  }

  .padding-vertical {
    padding-right: 0rem !important;
    padding-left: 0rem !important;
  }

  textarea {
    resize: vertical;
  }

  select {
    appearance: none !important;
    -webkit-appearance: none !important;
    -moz-appearance: none !important;
  }

  /* Removes native scrollbar */
  .no-scrollbar {
    -ms-overflow-style: none;
    overflow: -moz-scrollbars-none; 
  }

  .no-scrollbar::-webkit-scrollbar {
    display: none;
  }

  .component-text-rich-text h1,
  .component-text-rich-text h2,
  .component-text-rich-text h3,
  .component-text-rich-text h4,
  .component-text-rich-text h5,
  .component-text-rich-text h6,
  .component-text-rich-text blockquote {
    font-size: inherit;
  }

  [data-parent]:not(:has([data-child]:not(:empty))) {
    display: none;
  }

  /* Global / Clickable Component */
  .wf-design-mode .g_clickable_wrap {
    z-index: 0;
  }
  .g_clickable_wrap a[href="#"] {
    display: none;
  }

  /* Hide */
  .u-hide-if-empty:empty,
  .u-hide-if-empty:not(:has(> :not(.w-condition-invisible))),
  .u-hide-if-empty-cms:not(:has(.w-dyn-item)),
  .w-richtext[class*="u-text-style-"] > :not(h1,h2,h3,h4,h5,h6,p,blockquote,ul,ol,span),
  {
    display: none !important;
  }

  img::selection {
    background: transparent;
  }

  section, header, footer {
    position: relative;
  }

  /* Global / Clickable Component */
  .wf-design-mode .clickable_wrap { z-index: 0; }
  .clickable_wrap a[href="#"] { display: none; }
  .clickable_wrap a[href="#"] ~ button { display: block; }

  button:not(:disabled) {
    cursor: pointer;
  }

  /* remove padding of empty element */
  .wf-empty:not(textarea) {
    padding: 0;
  }

  /* Clear Defaults */
  a:not([class]) {
    text-decoration: underline;
  }

  /* Line Clamp */
  [class*="u-line-clamp"]:not(.w-richtext),
  [class*="u-line-clamp"].w-richtext > * {
    display: -webkit-box;
    -webkit-line-clamp: 1;
    -webkit-box-orient: vertical;
    overflow: hidden;
  }

  [class*="u-line-clamp"].w-richtext > :not(:first-child) { 
    display: none; 
  }

  .u-line-clamp-2:not(.w-richtext), 
  .u-line-clamp-2.w-richtext > * { 
    -webkit-line-clamp: 2; 
  }

  .u-line-clamp-3:not(.w-richtext), 
  .u-line-clamp-3.w-richtext > * { 
    -webkit-line-clamp: 3; 
  }

  .u-line-clamp-4:not(.w-richtext), 
  .u-line-clamp-4.w-richtext > * { 
    -webkit-line-clamp: 4; 
  }

  /* Hide */
  .u-hide-if-empty:empty,
  .u-hide-if-empty:has(> *):not(:has(> :not(.w-condition-invisible))),
  .u-hide-if-empty-cms:not(:has(.w-dyn-item)),
  [class*="u-layout-column"]:empty {
    display: none !important;
  }


  /* Screen reader only text */
  .sr-only {
    position: absolute;
    width: 1px;
    height: 1px;
    padding: 0;
    margin: -1px;
    overflow: hidden;
    clip: rect(0, 0, 0, 0);
    white-space: nowrap;
    border-width: 0;
  }

  /* Expand link to cover full card (pseudo-element trick for improving accessibility) */
  .card-link::before {
    content: "";
    position: absolute;
    inset: 0;
    z-index: 1;
  }
  .article-card-link::before {
    content: "";
    position: absolute;
    top: -2000px;
    left: -2000px;
    right: -2000px;
    bottom: -2000px;
    z-index: 1;
  }

  /* Filter Select field */
  select.filter-select:has(option[value=""]:checked) { /* reset global color style */
    color: var(--swatch--neutral-1100);
  }
  select.filter-select {
    padding-right: calc(8px + 16px + 8px); 
    /* padding-top: 11px;
    padding-bottom: 11px; */
    background-image: url("data:image/svg+xml,%3Csvg width='16' height='16' viewBox='0 0 16 16' fill='none' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M5 6L8.33333 9.33333L11.6667 6' stroke='black' stroke-width='1.5' stroke-linecap='square'/%3E%3C/svg%3E");
    background-repeat: no-repeat;
    background-position: right 8px center;
    background-size: 16px 16px;
  }
  /* Search field */
  input.filter-search {
    padding-left: calc(8px + 16px + 8px);
    background-image: url("data:image/svg+xml,%3Csvg width='16' height='16' viewBox='0 0 16 16' fill='none' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M13.0667 14L8.86667 9.8C8.53333 10.0667 8.15 10.2778 7.71667 10.4333C7.28333 10.5889 6.82222 10.6667 6.33333 10.6667C5.12222 10.6667 4.09722 10.2472 3.25833 9.40833C2.41944 8.56944 2 7.54444 2 6.33333C2 5.12222 2.41944 4.09722 3.25833 3.25833C4.09722 2.41944 5.12222 2 6.33333 2C7.54444 2 8.56944 2.41944 9.40833 3.25833C10.2472 4.09722 10.6667 5.12222 10.6667 6.33333C10.6667 6.82222 10.5889 7.28333 10.4333 7.71667C10.2778 8.15 10.0667 8.53333 9.8 8.86667L14 13.0667L13.0667 14ZM6.33333 9.33333C7.16667 9.33333 7.875 9.04167 8.45833 8.45833C9.04167 7.875 9.33333 7.16667 9.33333 6.33333C9.33333 5.5 9.04167 4.79167 8.45833 4.20833C7.875 3.625 7.16667 3.33333 6.33333 3.33333C5.5 3.33333 4.79167 3.625 4.20833 4.20833C3.625 4.79167 3.33333 5.5 3.33333 6.33333C3.33333 7.16667 3.625 7.875 4.20833 8.45833C4.79167 9.04167 5.5 9.33333 6.33333 9.33333Z' fill='black'/%3E%3C/svg%3E");
    background-repeat: no-repeat;
    background-position: left 8px center;
    background-size: 16px 16px;
  }

  /* Article divider component - grid breakout */
  .article-divider {
    margin-left: calc(50% - 50vw);
    margin-right: calc(50% - 50vw);
  }

  /* Article stats - Gradient border */
  .article-stats-card:not(:last-of-type)::after {
    content: '';
    position: absolute;
    right: 0;
    top: 0;
    bottom: 0;
    width: 0.5px;
    background: linear-gradient(to bottom, rgba(116, 176, 202, 0.51) 51%, rgba(58, 87, 100, 0.23) 100%);
  }
  @media (max-width: 767px) {
    .article-stats-card:not(:last-of-type)::after {
      top: auto;
      bottom: 0;
      left: 0;
      right: 0;
      width: 100%;
      height: 0.5px;
      background: linear-gradient(to right, rgba(116, 176, 202, 0.51) 51%, rgba(58, 87, 100, 0.23) 100%);
    }
  }
  /* Article stats - border radius */
  .article-stats-card:first-child:not(:only-child) {
    border-radius: 20px 0 0 20px;
  }
  .article-stats-card:last-child:not(:only-child) {
    border-radius: 0 20px 20px 0;
  }
  .article-stats-card:only-child {
    border-radius: 20px;
  }
  @media (max-width: 768px) {
    .article-stats-card:first-child:not(:only-child) {
      border-radius: 20px 20px 0 0;
    }
    .article-stats-card:last-child:not(:only-child) {
      border-radius: 0 0 20px 20px;
    }
    .article-stats-card:not(:first-child):not(:last-child) {
      border-radius: 0;
    }
    .article-stats-card:only-child {
      border-radius: 20px;
    }
  }

  /* Success stories index - grid styles */
  .success-stories-col-list {
    display: grid;
    grid-template-columns: repeat(12, 1fr);
    gap: 1rem;
  }
  /* Pattern repeats every 4 items */
  .success-stories-col-item:nth-child(4n+1) {
    grid-column: 1 / span 8; /* Start at 1, span 8 columns */
  }
  .success-stories-col-item:nth-child(4n+2) {
    grid-column: 9 / span 4; /* Start at 9, span 4 columns */
  }
  .success-stories-col-item:nth-child(4n+3) {
    grid-column: 1 / span 4; /* Start at 1, span 4 columns */
  }
  .success-stories-col-item:nth-child(4n+4) {
    grid-column: 5 / span 8; /* Start at 5, span 8 columns */
  }
  @media (max-width: 996px) {
    .success-stories-col-list {
      grid-template-columns: 1fr;
    }

    .success-stories-col-item:nth-child(4n+1),
    .success-stories-col-item:nth-child(4n+2),
    .success-stories-col-item:nth-child(4n+3),
    .success-stories-col-item:nth-child(4n+4) {
      grid-column: 1 / -1; /* Reset to span full width */
    }
  }

  /* Product Card link hover state */
  .product-card:hover .product-card-link {
    background-color: var(--swatch--neutral-1100);
    color: var(--base-color-neutral--white);
  }
  .product-card:hover .icon-item { 
    filter: invert(1) ; 
  }
  .product-card:hover .product-card-heading {
  	color: var(--swatch--neutral-1100)
  }
  .product-card:hover .product-card-summary {
  	color: var(--swatch--neutral-1100)
  }
  
  /* Hide author placeholder images */
  .article-author-wrapper img[src*="placeholder"] {
    display: none;
  }

  /* Slider controls disabled state */
  /*.swiper-button-disabled {
  opacity: 0.5;
  }*/

  /* Select option styling - Removed due to contrast issues */
  /* select:has(option[value=""]:checked) {
  color: color-mix(in lab, currentcolor 60%, transparent)
  } */

  /* State Manager */
  [data-state] { --_state---true: 1; --_state---false: 0; }
  .is-active,
  [data-state~="checked"]:is(:checked, :has(:checked)),
  [data-state~="current"]:is(.w--current, :has(.w--current)),
  [data-state~="open"]:is(.w--open, :has(.w--open)),
  [data-state~="pressed"]:is([aria-pressed="true"], :has([aria-pressed="true"])),
  [data-state~="expanded"]:is([aria-expanded="true"], :has([aria-expanded="true"])),
  [data-state~="external"]:is([target="_blank"], :has([target="_blank"])) { 
    --_state---true: 0; --_state---false: 1;
  }
  .wf-design-mode [data-trigger~="preview"],
  [data-trigger~="focus"]:is(:focus-visible, :has(:focus-visible)),
  [data-trigger~="group"]:has([data-trigger~="focus-other"]:focus-visible, [data-trigger~="focus-other"] :focus-visible)
  [data-trigger~="focus-other"]:not(:focus-visible, :has(:focus-visible)) {
    --_trigger---on: 0; --_trigger---off: 1;
  }
  @media (hover: hover) {
    [data-trigger~="hover"]:hover,
    [data-trigger~="hover-if-clickable"]:has(.clickable_wrap:not(.w-condition-invisible)):hover,
    [data-trigger~="group"]:has([data-trigger~="hover-other"]:hover) [data-trigger~="hover-other"]:not(:hover) { 
      --_trigger---on: 0; --_trigger---off: 1;
    }
    [data-trigger~="hover-other"]:hover { --_trigger---on: 1 !important; --_trigger---off: 0 !important; }
  }
  @media (hover: none) {
    [data-trigger~="mobile"] { --_trigger---on: 0; --_trigger---off: 1; }
  }

  .navbar_product-item-tab {
    transition: opacity 0.2s ease;
  }

  /* add border to currency icons on index page */
  .currency-list-wrapper .currency_card-header .icon-item {
    border: 1px solid var(--_theme---border);
    border-radius: 99999px;
  }


  /* Careers card hover state */
  .careers_card-wrap:hover .careers-btn {
    background: var(--swatch--neutral-1100);
    color: var(--swatch--neutral-50);
  }
  .grid-wrapper .swiper-slide.solutions-wrapper {
    max-width: 100% !important;
    flex-shrink: 1;
  }
  .swiper_outer-wrapper .swiper-wrapper {
    min-height: 5rem;
  }
  
  .accordion_faq-p a {
    color: white;
  }
	.w-richtext figcaption {
    color: var(--_theme---paragraph);
    font-size: var(--_typography---font-size--text-small);
    line-height:var(--_typography---line-height--medium);
   }
   /* Locations card button height fix */
   .location-card-btn-wrapper .button_main_wrap {
      position: relative;
      display: flex;
      flex-direction: column;
      min-height: 0;
		}
    .location-card-btn-wrapper .button_main_wrap .button_main_element {
      flex: 1;
      display: flex;
      align-items: center;
      min-height: 0;
		}
    
    /* Hide safari's default video controls */
    .cards_video-item::-webkit-media-controls {
  		display: none !important;
		}
		
    /* Disable sticky nav when reduce motion enabled */
		@media (prefers-reduced-motion: reduce) { 
      .navbar_component {
        position: relative !important;
       }
    }