/* 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-scroll {
    overflow: hidden;
    height: 100vh;
}

.w-checkbox-input--inputType-custom.w--redirected-checked {
    background-size: 14px;
}

.w-checkbox-input--inputType-custom.w--redirected-focus {
    box-shadow: none;
}

h1,
.heading-style-h1,
.heading-line>*,
.heading-style-trend-report {
    /* trim both sides to the capital letters */
    text-box: trim-both cap alphabetic;
}

/* 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 {
    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;
}

/* 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;
}

.w-slider-nav-invert .w-slider-dot {
    width: .5rem;
    height: .5rem;
    background-color: #D3D3D3;
}

::selection {
    color: #fff;
    background: var(--base-color-brand--vd-blue);
}

.insights_list>*:nth-child(1) {
    grid-column: span 8 !important;
}

.case_studies_list>*:nth-child(1),
.case_studies_list>*:nth-child(4) {
    grid-column: span 7 !important;
}

.case_studies_list>*:nth-child(2),
.case_studies_list>*:nth-child(3) {
    grid-column: span 5 !important;
}

.section_related .insights_list>*:nth-child(1) {
    grid-column: span 4 !important;
}

.radio-button.w--redirected-checked~.radio-label {
    background: #000;
    color: #fff;
}

.radio-button.is-inverted.w--redirected-checked~.radio-label {
    background: #fff;
    color: #000;
}

.nav_anim:hover a,
.nav_anim:hover a div {
    color: #fff !important;
}

.dark-nav .nav_anim:hover a,
.dark-nav .nav_anim:hover a div {
    color: #000 !important;
}

.filter-button.is-inverted img,
.show_filters_button:hover img {
    filter: invert(1);
}

.filter-button.is-inverted:hover img {
    filter: invert(0);
}

.filter-button.is-inverted.fs-cmsfilter_active {
    background: #fff;
    color: #000;
}

.solutions_item:nth-child(1) {
    margin-top: -5rem;
}


.solutions_item:nth-child(1) .solutions_card {
    padding: 0;
}

.solutions_item:nth-child(1) .solutions_card .button_secondary_wrap {
    background: #000;
    color: #fff;
}

.solutions_item:nth-child(1) .solutions_card .button_secondary_wrap .button_secondary_text {
    color: #fff;
}

.solutions_item:nth-child(1) .solutions_card .button_secondary_wrap .button_plus_wrap {
    background: #fff;
}

.solutions_item:nth-child(1) .solutions_card .button_secondary_wrap .button_line {
    background: #000;
}


.video-fill {
    position: absolute;
    right: 0;
    bottom: 0;
    height: 100%;
    z-index: 5;
}

.work_rich_text img {
    border-radius: 1rem;
    width: 100%;
}

.w-richtext figure,
.w-richtext figure div {
    width: 100%;
    max-width: 100% !important;
}

.vimeo-wrapper {
    height: 101%;
    aspect-ratio: 16 / 9;
    border: none;
    display: block;
    position: absolute;
    z-index: 3;
    top: 50%;
    left: 50%;
    transform: translate(-50%, -50%);
}

.wide-aspect .vimeo-wrapper {
    aspect-ratio: 3 / 1;
}

.case_studies_list_wrapper .vimeo-wrapper,
.related-list .vimeo-wrapper,
.work-section-item .vimeo-wrapper {
    opacity: 0;
}

.vimeo-wrapper-hero {
    width: 100vw;
    height: 56.25vw;
    min-height: 100vh;
    min-width: 177.77vh;
    position: absolute;
    top: 50%;
    left: 50%;
    transform: translate(-50%, -50%);
}

.animate-flip.active {
    height: 100vh;
    width: 100vw;
    max-height: none;
    opacity: 1 !important;
    position: fixed;
    top: 0;
    left: 0;
    bottom: 0;
    right: 0;
    z-index: 99 !important;
    z-index: 6;
    border-radius: 0;
}

.case_studies_list .category_pill:nth-child(n+2) {
    display: none;
}

.w-select {
    /* resetting default form style*/
    -moz-appearance: none;
    -webkit-appearance: none;
    appearance: none;
    border: none;
}

.select-wrap::after {
    content: "";
    background-image: url(../../assets/images/select_chevron.svg);
    background-size: 12px 6px;
    height: 6px;
    width: 12px;
    display: inline-block;
    content: "";
    position: absolute;
    right: 16px;
    top: 21px;
}

.dark-nav .button_hover_bg {
    background: #fff;
}

.dark-nav .nav_contact:hover .nav_menu_link {
    color: #000 !important;
}



.results-popup .quote-attribution_name p:nth-child(1) {
    color: var(--text-color--text-secondary);
}

.insights_card_wrapper:hover .fill {
    transform: scale(1.04);
}

.solution_card_left p,
.solution_card_left li {
    opacity: .8;
}

.section_hero_image {
    background-size: cover;
}

.w-slider-dot {
    background-color: #D3D3D3;
}

.w-slider-dot.w-active {
    background-color: #000;
}

.w-input:focus+.field-label,
.w-select:focus+.field-label {
    opacity: 1;
}

.field-wrap:focus-within .field-label {
    opacity: 1;
}

.field-input:not(:placeholder-shown)+.field-label {
    opacity: 1;
}

.menu.is-active .nav_contact {
    background: none;
}

.dropdown-toggle.w--open {
    border-bottom-left-radius: 0;
    border-bottom-right-radius: 0;
    border-bottom: none;
}

.home-solutions_item.is-active .solutions_servcies {
    height: auto;
    opacity: 1;
}

.home-solutions_item.is-active .vertical-line {
    transform: rotate(-90deg);
}


.vimeo-wrapper-home,
.vimeo-wrapper-about {
    height: 100vh;
    width: 100vw;
    border: none;
    display: block;
    position: absolute;
    z-index: 3;
    top: 50%;
    left: 50%;
    transform: translate(-50%, -50%);
    will-change: transform;
}

.insight-grid .text-rich-text h1,
.insight-grid .text-rich-text h2,
.insight-grid .text-rich-text h3 {
    margin-bottom: 2rem;
}

.insight-grid .text-rich-text p {
    margin-bottom: 2rem;
}

.section_content figure {
    margin-bottom: .5rem;
    margin-top: 0;
}

@media screen and (max-width: 1500px) {

    .stats-heading-wrap.stats {
        flex-direction: column;
        grid-column-gap: 2.25rem;
        grid-row-gap: 2.25rem;
    }

    .stats-inner {
        display: flex;
        grid-column-gap: 5rem;
        grid-row-gap: 5rem;
    }

    .stats_list_wrap {
        flex-flow: column;
        justify-content: flex-start;
        align-items: center;
        width: 100%;
        margin-left: auto;
        margin-right: auto;
        display: flex;
    }

    .stats-list {
        width: 100%;
        padding-left: 0;
        text-align: center;
    }

}

@media screen and (max-width: 991px) {

    .insight-grid .text-rich-text h1,
    .insight-grid .text-rich-text h2,
    .insight-grid .text-rich-text h3 {
        margin-bottom: 1.75rem;
    }

    .work-card-item .vimeo-video-wrap {
        display: none;
        visibility: hidden;
    }

    .home-solutions_item:nth-child(1) {
        border-top: none;
    }

    .related_slider .w-slider-dot {
        width: 8px;
        height: 8px;
        margin-left: 4px;
        margin-right: 4px;
    }

    .menu_items .nav_contact {
        left: 0;
    }

}

.team-section {
  /*padding: 60px 20px;*/
  text-align: center;
  background: linear-gradient(145deg, #ffffff, #e8ecf1);
}

.section-title {
  font-size: 32px;
  margin-bottom: 40px;
  color: #2b2b2b;
}

/* Grid */
.team-grid {
  display: grid;
  grid-template-columns: repeat(4, 1fr); /* Default: 4 columns on large screens */
  gap: 25px;
  justify-content: center;
  max-width: 1200px;
  margin: auto;
}

@media (max-width: 1024px) {
  .team-grid {
    grid-template-columns: repeat(3, 1fr); /* 3 columns for tablets and small laptops */
  }
}

@media (max-width: 768px) {
  .team-grid {
    grid-template-columns: repeat(2, 1fr); /* 2 columns for large phones / small tablets */
  }
}

@media (max-width: 480px) {
  .team-grid {
    grid-template-columns: 1fr; /* 1 column for phones */
  }
}


.team-card {
  height: 100%;
  display: flex;
  flex-direction: column;
}


.team-card img {
    width: 100%;
    height: auto;
    display: block;
    object-fit: cover;
    border-radius: 16px;
    box-shadow: 5px 5px 10px rgba(0, 0, 0, 0.1); /* subtle shadow */
    transition: transform 0.3s ease, box-shadow 0.3s ease;
}

.team-card img:hover {
    transform: scale(1.05); /* slight zoom */
    box-shadow: 0 8px 20px rgba(0, 0, 0, 0.2); /* deeper shadow on hover */
}


/* + Card */
.plus-card {
  background: linear-gradient(135deg, #007bff, #00c6ff);
  color: white;
  display: flex;
  flex-direction: column;
  justify-content: center;
  align-items: center;
  font-size: 40px;
  font-weight: 600;
  border: 2px dashed white;
  text-shadow: 1px 1px 2px rgba(0, 0, 0, 0.2);
  transition: background 0.3s ease;
}

.plus-card:hover {
  background: linear-gradient(135deg, #00c6ff, #007bff);
  transform: scale(1.1);
}

.plus-card span {
  font-size: 60px;
  margin-bottom: 10px;
}

/* Modal Styling */
.modal {
  display: none;
  position: fixed;
  z-index: 50;
  left: 0;
  top: 0;
  width: 100%;
  height: 100%;
  background: rgba(17, 17, 17, 0.7);
  justify-content: center;
  align-items: center;
}

.modal-content {
  background: #fff;
  padding: 35px;
  border-radius: 16px;
  width: 90%;
  max-width: 500px;
  animation: slideUp 0.4s ease-in-out;
  box-shadow: 0 20px 40px rgba(0, 0, 0, 0.2);
  position: relative;
}

@keyframes slideUp {
  from { transform: translateY(50px); opacity: 0; }
  to { transform: translateY(0); opacity: 1; }
}

.modal-content h2 {
  margin-bottom: 20px;
  font-size: 24px;
  color: #333;
}

.modal-content input,
.modal-content textarea {
  width: 100%;
  margin-bottom: 15px;
  padding: 12px;
  border: 1px solid #ccc;
  border-radius: 10px;
  font-size: 15px;
}

.modal-content button {
  background: #007bff;
  color: white;
  border: none;
  padding: 12px 25px;
  border-radius: 10px;
  font-size: 16px;
  cursor: pointer;
  transition: background 0.3s ease;
}

.modal-content button:hover {
  background: #0056b3;
}

/* Close Button */
.close-btn {
  position: absolute;
  top: 15px;
  right: 20px;
  font-size: 28px;
  color: #333;
  cursor: pointer;
}