/* ==========================================================================
   LAZY.CSS - FENDIX
   Final comit for lazy
   ========================================================================== */

::selection {
  color: var(--swatch--light);
  background: var(--swatch--dark);
}

.hamburger_wrap {
  --thickness: .125rem;
  --gap: .5rem;
  --rotate: 45deg;
}

.navbar_menu-button.w--open .hamburger_line { color: var(--swatch--proactive-purple); }
.navbar_menu-button.w--open .hamburger_line:first-child {
  transform: translateY(calc(var(--thickness) * .5 + var(--gap) * .5)) rotate(var(--rotate));
}
.navbar_menu-button.w--open .hamburger_line:last-child {
  transform: translateY(calc(var(--thickness) * -.5 - var(--gap) * .5)) rotate(calc(var(--rotate) * -1));
}
.menu-button_label { transition: transform 350ms var(--nav-ease); }
.navbar_menu-button.w--open .menu-button_label.first,
.navbar_menu-button.w--open .menu-button_label.second { transform: translateY(-100%); }

.navbar_link.dropdown.w-dropdown-toggle { position: static !important; }
.navbar_link.dropdown.w-dropdown-toggle.w--open .button-icon_slot { transform: rotateX(180deg); }

@media (min-width: 992px) {
  .navbar_dropdown-list.w--open {
    position: absolute;
    top: 100%;
    left: 50%;
    transform: translateX(-50%);
    width: 100vw;
  }
}

@media (max-width: 991px) {
  .navbar_dropdown-list.w--open { position: relative; width: 100%; }
}

@media (hover: hover) {
  .navbar_link:hover .button-icon_slot { color: var(--swatch--proactive-purple); }
  .navbar_link:hover p { opacity: .6; }
  .hamburger_wrap:hover { --thickness: .15rem; }
}

.navbar_container.is-dropdown::before {
  content: "";
  position: absolute;
  inset: 0 auto 0 -100vw;
  width: 100vw;
  background: #fff;
  pointer-events: none;
}

p a {
  position: relative;
  color: var(--swatch--proactive-purple);
}
p a::before {
  content: "";
  position: absolute;
  bottom: -0.0625em;
  left: 0;
  width: 100%;
  height: 0.0625em;
  background-color: currentColor;
  transform: scaleX(0);
  transform-origin: right;
  transition: transform 0.45s cubic-bezier(0.625, 0.05, 0, 1);
}
@media (hover: hover) {
  p a:hover { color: var(--swatch--dark-purple); }
  p a:hover::before { transform: scaleX(1); transform-origin: left; }
}

.w-checkbox:before, .w-radio:before { content: none; }
.w-select { -webkit-appearance: none; -moz-appearance: none; }
.w-richtext li { list-style-type: inherit; }
li::marker { font-weight: bold; }
.unordered-list.colored li::marker, li.colored-list-item::marker { color: var(--swatch--proactive-purple); }
.w-input, .w-select { color: unset; }

.button-gradient {
  position: absolute;
  inset: 0;
  transform: scaleY(1);
  transform-origin: center;
  transition: transform var(--transition-button-duration) var(--transition-button-ease);
}
@media (hover: hover) {
  .button:hover .button-gradient { transform: scaleY(3); }
}

.accordion-css__item-bottom {
  display: grid;
  grid-template-rows: 0fr;
  transition: grid-template-rows 0.6s cubic-bezier(0.625, 0.05, 0, 1);
  height: auto !important;
  max-height: none !important;
}
.accordion-css__item-bottom-wrap { overflow: hidden; }
.accordion-css__item-icon { transition: transform 0.6s cubic-bezier(0.625, 0.05, 0, 1); }

.modal-box, .filter-modal-box {
  transition: transform 520ms cubic-bezier(.22,.61,.36,1);
}

.card-title {
  display: -webkit-box;
  -webkit-box-orient: vertical;
  overflow: hidden;
  -webkit-line-clamp: 2;
}
.card-title.is-case-archive { -webkit-line-clamp: 3; }
.card-title.small { -webkit-line-clamp: 6; }
.card-title.is-dark { -webkit-line-clamp: 4; }

.form-dropdown_toggle .button-icon_slot.dropdown {
  transform-style: preserve-3d;
  transition: transform 0.3s cubic-bezier(0.4, 0, 0.2, 1);
}
.form-dropdown_toggle.w--open .button-icon_slot.dropdown { transform: rotateX(180deg); }
.form-dropdown-list {
  display: grid;
  grid-template-rows: 0fr;
  opacity: 0;
  max-height: 0px;
  transition: grid-template-rows 0.35s cubic-bezier(0.4, 0, 0.2, 1), opacity 0.25s cubic-bezier(0.4, 0, 0.2, 1);
}
.form-dropdown-list .collection-list_wrapper { overflow: hidden; min-height: 0; }
.form-dropdown-list.w--open { grid-template-rows: 1fr; opacity: 1; max-height: none; }

.breadcrumbs-wrapper, .bc-link, .bc-link_label {
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}

@keyframes translateX { to { transform: translateX(-100%); } }
[data-css-marquee-list] { animation: translateX linear infinite paused; }


/* === SWIPER OVERFLOW === */
.swiper,
.swiper-wrapper {
  overflow: visible !important;
}

/* =========================
   Scroll Animations
========================= */
@keyframes reveal { 
  from { 
    opacity: 0; 
    transform: translate3d(0, 2rem, 0); 
  } 
  to { 
    opacity: 1; 
    transform: translate3d(0, 0, 0); 
  } 
}

@keyframes reveal-mobile { 
  from { opacity: 0; } 
  to { opacity: 1; } 
}

[data-animate="reveal"] > * { 
  animation: reveal 0.4s ease-out calc((0.1s * var(--i)) + 0s) both;
  will-change: transform, opacity;
  backface-visibility: hidden;
}

[data-animate="reveal-list"] > :nth-child(1) { --i: 0; }
[data-animate="reveal-list"] > :nth-child(2) { --i: 1; }
[data-animate="reveal-list"] > :nth-child(3) { --i: 2; }
[data-animate="reveal-list"] > :nth-child(4) { --i: 3; }
[data-animate="reveal-list"] > :nth-child(5) { --i: 4; }
[data-animate="reveal-list"] > :nth-child(6) { --i: 5; }

.reset-animations,
.reset-animations * {
  animation: none !important;
}

[data-css-scroll].animation-ready,
[data-css-scroll].animation-ready * {
  animation-duration: 0s !important;
  animation-direction: reverse !important;
}

@media (max-width: 767px) {
  [data-animate="reveal"] > * { 
    animation-name: reveal-mobile;
    will-change: opacity;
  }
}

/* =========================
   Heading Breathe
========================= */
[data-wf--heading-display--variant="gradient"] {
  animation: breathe 4s cubic-bezier(0.45, 0, 0.55, 1) infinite;
}

[data-wf--heading-display--variant="gradient"] + h1,
[data-wf--heading-display--variant="gradient"] + h2 {
  animation: breathe 4s cubic-bezier(0.45, 0, 0.55, 1) infinite;
  animation-delay: 0.4s;
}

@keyframes breathe {
  0%, 100% { transform: translateY(0); }
  50% { transform: translateY(0.1em); }
}

/* =========================
   Chevron Animations
========================= */
@keyframes chevron-move {
  0% { transform: translate3d(-7.5vw, 0, 0) scale(1); opacity: 0.65; }
  15% { transform: translate3d(-4vw, 0, 0) scale(1.05); opacity: 0.75; }
  35% { transform: translate3d(2vw, 0, 0) scale(1.12); opacity: 0.9; }
  50% { transform: translate3d(7.5vw, 0, 0) scale(1.2); opacity: 1; }
  65% { transform: translate3d(4vw, 0, 0) scale(1.12); opacity: 0.9; }
  85% { transform: translate3d(-2vw, 0, 0) scale(1.05); opacity: 0.75; }
  100% { transform: translate3d(-7.5vw, 0, 0) scale(1); opacity: 0.65; }
}

@keyframes chevron-breathe {
  0% { transform: translate3d(0, 0, 0) scale(1); opacity: 0.65; }
  15% { transform: translate3d(-1vw, 0, 0) scale(1.05); opacity: 0.75; }
  35% { transform: translate3d(-2.5vw, 0, 0) scale(1.12); opacity: 0.9; }
  50% { transform: translate3d(-5vw, 0, 0) scale(1.2); opacity: 1; }
  65% { transform: translate3d(-2.5vw, 0, 0) scale(1.12); opacity: 0.9; }
  85% { transform: translate3d(-1vw, 0, 0) scale(1.05); opacity: 0.75; }
  100% { transform: translate3d(0, 0, 0) scale(1); opacity: 0.65; }
}

.background-chevron {
  animation: chevron-move 24s linear infinite;
  will-change: transform, opacity;
  backface-visibility: hidden;
}

.background-chevron.full {
  animation: chevron-breathe 12s linear infinite;
}

.modal-background-chevron {
  animation: chevron-breathe 16s linear infinite;
  will-change: transform, opacity;
  backface-visibility: hidden;
}

.background-chevron_cta {
  animation: chevron-breathe 16s linear infinite;
  will-change: transform, opacity;
  backface-visibility: hidden;
}

/* =========================
   Accordion (extended)
========================= */
[data-accordion-status="active"] .nav-tab_title { 
  color: var(--swatch--dark-purple); 
}

.accordion-icon_wrap { 
  color: var(--swatch--dark-purple);
  transition: transform 0.6s cubic-bezier(0.625, 0.05, 0, 1);
}

.accordion-icon_faq,
.accordion_css_heading {
  transition: transform 0.6s cubic-bezier(0.625, 0.05, 0, 1);
}

[data-accordion-status="active"] .accordion_css_heading { 
  color: var(--swatch--dark-purple); 
}

[data-accordion-status="active"] .accordion-icon_wrap { 
  background: var(--swatch--dark-secondary); 
}

[data-accordion-status="active"] .accordion-icon_faq {
  transform: rotate(0);
  color: var(--swatch--light);
}

.accordion-icon_faq { 
  transform: rotate(45deg);
}

/* Nav Accordion */
.accordion-css__item.is-nav .nav-tab {
  transition: background 0.4s cubic-bezier(0.625, 0.05, 0, 1);
}

.accordion-css__item-bottom.is-nav {
  opacity: 0;
  visibility: hidden;
  transition: grid-template-rows 0.6s cubic-bezier(0.625, 0.05, 0, 1),
              opacity 0.4s cubic-bezier(0.625, 0.05, 0, 1),
              visibility 0s linear 0.4s;
}

[data-accordion-status="active"] .accordion-css__item-bottom.is-nav {
  opacity: 1;
  visibility: visible;
  transition: grid-template-rows 0.6s cubic-bezier(0.625, 0.05, 0, 1),
              opacity 0.4s cubic-bezier(0.625, 0.05, 0, 1),
              visibility 0s linear 0s;
}

@media (min-width: 992px) {
  .accordion-css__item-icon.is-nav {
    transform: rotate(-90deg);
  }
  [data-accordion-status="active"] .accordion-css__item-icon.is-nav {
    transform: rotate(-90deg);
  }
  [data-accordion-status="active"].accordion-css__item.is-nav .nav-tab {
    background: linear-gradient(to right, white, var(--swatch--clear-grey-100));
  }
}

/* =========================
   Tabs
========================= */
.nav-tab_icon.default { opacity: 1; }
.nav-tab_icon.current { opacity: 0; }

.nav-tab.w--current .nav-tab_icon.current,
[data-accordion-status="active"] .nav-tab_icon.current { 
  opacity: 1; 
}

.nav-tab.w--current .nav-tab_icon.default,
[data-accordion-status="active"] .nav-tab_icon.default { 
  opacity: 0; 
}

.nav-tab.w--current .nav-tab_icon_bg,
[data-accordion-status="active"] .nav-tab_icon_bg {
  opacity: 0;
  transform: scale(0.1);
}

/* =========================
   Clip-path Effects
========================= */
.nav-subitem_iconwrap,
.nav-cta_image,
.main-card-image_wrap,
.glass-icon_wrapper,
.has-clippath,
.team-card-image_wrapper,
.testimonial-card {
  clip-path: polygon(0 0, 100% 0, 100% 100%, 100% 100%, 0 100%);
  transition: clip-path 280ms var(--transition-button-ease);
}

@media (hover: hover) {
  .nav-subitem:hover .nav-subitem_iconwrap,
  .nav-cta_wrapper:hover .nav-cta_image,
  .main-card:hover .main-card-image_wrap,
  .main-card:hover .glass-icon_wrapper {
    clip-path: polygon(
      0 0, 
      100% 0, 
      100% calc(100% - var(--_utility---cutout-xs)), 
      calc(100% - var(--_utility---cutout-xs)) 100%, 
      0 100%
    );
  }

  .team-card:hover .team-card-image_wrapper,
  .testimonial-card:hover,
  .video-button_wrap {
    clip-path: polygon(
      0 0, 
      100% 0, 
      100% calc(100% - var(--_utility---cutout-m)), 
      calc(100% - var(--_utility---cutout-m)) 100%, 
      0 100%
    );
  }
}

/* =========================
   Card Interactions
========================= */
.card-background_hover {
  height: 0;
  transition: height 300ms cubic-bezier(0.645, 0.045, 0.355, 1);
}

.card-title {
  transition: color 200ms cubic-bezier(0.645, 0.045, 0.355, 1);
}

.card-meta {
  transition: background 200ms cubic-bezier(0.645, 0.045, 0.355, 1),
              color 200ms cubic-bezier(0.645, 0.045, 0.355, 1);
}

.button-background {
  transition: opacity 360ms, transform 360ms;
}

.team-card_blur {
  opacity: 0;
  transform: scale(0.25);
  transition: transform 300ms, opacity 200ms;
}

.button-icon_slot.in-card {
  transition: transform 300ms cubic-bezier(0.645, 0.045, 0.355, 1);
}

.case-card_content {
  transition: color 300ms, background 300ms, transform 300ms;
}

@media (hover: hover) {
  .main-card:hover .card-background_hover { 
    height: 100%; 
  }
  
  .main-card:hover .card-title { 
    color: var(--swatch--dark-purple); 
  }
  
  .main-card:hover .card-meta { 
    background: var(--swatch--clear-grey-200); 
  }
  
  .main-card.is-resource.is-dark .card-title { 
    color: inherit; 
  }
  
  .main-card.is-resource.is-dark .card-meta { 
    color: inherit; 
  }
  
  .main-card.is-service:hover .button,
  .main-card.is-partner-resource:hover .button { 
    color: white; 
  }
  
  .main-card:hover .button-background,
  .team-card:hover .button-background {
    transform: scale(0.1);
    opacity: 0;
  }
  
  .team-card:hover .team-card_blur {
    opacity: 0.75;
    transform: scale(0.9);
  }
  
  .team-card:hover .button-icon_slot.in-card { 
    transform: rotate(0); 
  }
  
  .case-card:hover .case-card_content {
    color: var(--_theme---body--body-font-color);
    background: rgba(255, 255, 255, 0.99);
    transform: scale(0.95);
  }
  
  .case-card:hover .card-title.is-case { 
    color: var(--_theme---headings--heading-font-colour); 
  }
  
  .case-card:hover .card-meta { 
    background: var(--swatch--clear-grey-100); 
  }
}

/* =========================
   Team Card
========================= */
.team-card_image {
  transition: transform 0.4s ease;
}

@media (hover: hover) {
  .team-card:hover .team-card_image {
    transform: scale(1.08);
  }
}

/* =========================
   Testimonial Cards
========================= */
.testimonial-card {
  transition: transform 0.3s ease, box-shadow 0.3s ease, clip-path 280ms var(--transition-button-ease);
}

@media (hover: hover) {
  .testimonial-card:hover {
    transform: translateY(-4px);
    box-shadow: 0 10px 30px rgba(0, 0, 0, 0.1);
  }
}

/* =========================
   Footer
========================= */
.footer-link .footer-chevron {
  width: 0;
  transition: width 300ms cubic-bezier(0.645, 0.045, 0.355, 1);
}

.footer-link:hover .footer-chevron { 
  width: var(--button--button-icon); 
}

.footer-link p {
  opacity: 0.8;
  transition: opacity 200ms cubic-bezier(0.645, 0.045, 0.355, 1);
}

.footer-link:hover p { 
  opacity: 0.6; 
}

.footer-badge {
  transition: transform 0.3s ease;
}

@media (hover: hover) {
  .footer-badge:hover {
    transform: scale(1.05);
  }
}

/* =========================
   Topbar Links
========================= */
.topbar-link {
  transition: background-color 180ms cubic-bezier(0.645, 0.045, 0.355, 1),
              color 180ms cubic-bezier(0.645, 0.045, 0.355, 1),
              padding 240ms cubic-bezier(0.645, 0.045, 0.355, 1);
}

@media (hover: hover) {
  .topbar-link:hover {
    opacity: 0.7;
  }
}

/* =========================
   Nav Subitem
========================= */
.nav-subitem_iconwrap {
  transition: transform 0.3s ease, clip-path 280ms var(--transition-button-ease);
}

@media (hover: hover) {
  .nav-subitem:hover .nav-subitem_iconwrap {
    transform: scale(1.05);
  }
}

/* =========================
   Misc Interactions
========================= */
.modal__btn-close:hover .button-icon.is-modal { 
  transform: rotate(0); 
}

.link-list .button-icon_slot {
  color: var(--swatch--proactive-purple);
}

.link-list:hover {
  color: var(--swatch--proactive-purple);
}

.link-list {
  transition-property: background-color, color, padding;
  transition-duration: 200ms;
  transition-timing-function: cubic-bezier(0.645, 0.045, 0.355, 1);
}

.link-list:hover .button-icon_slot {
  color: var(--swatch--dark-purple);
}

.modal__dark {
  backdrop-filter: blur(0rem);
  transition: backdrop-filter 0.3s ease;
}

.modal-box[data-modal-status="active"] ~ .modal__dark {
  backdrop-filter: blur(1rem);
}

/* =========================
   Focus States
========================= */
.button:focus-visible,
.navbar_link:focus-visible,
a:focus-visible {
  outline: 2px solid var(--swatch--proactive-purple);
  outline-offset: 2px;
}

/* =========================
   Loading States
========================= */
.is-loading {
  opacity: 0.6;
  pointer-events: none;
}

/* =========================
   Filter Transitions
========================= */
[data-filter-item] {
  transition: opacity 0.3s ease, transform 0.3s ease;
}

[data-filter-item].is-hidden {
  opacity: 0;
  transform: scale(0.95);
  pointer-events: none;
}

/* =========================
   Image Reveal
========================= */
.image-reveal {
  clip-path: inset(0 100% 0 0);
  transition: clip-path 0.8s cubic-bezier(0.65, 0, 0.35, 1);
}

.image-reveal.is-revealed {
  clip-path: inset(0 0 0 0);
}

/* =========================
   Nav Indicator
========================= */
.nav-indicator {
  position: absolute;
  bottom: 0;
  height: 2px;
  background: var(--swatch--proactive-purple);
  transition: left 0.3s ease, width 0.3s ease;
}

/* =========================
   Parallax Helper
========================= */
[data-parallax] {
  will-change: transform;
}

/* =========================
   Reduced Motion
========================= */
@media (prefers-reduced-motion: reduce) {
  *,
  *::before,
  *::after {
    animation-duration: 0.01ms !important;
    animation-iteration-count: 1 !important;
    transition-duration: 0.01ms !important;
  }
  
  [data-animate="reveal"] > *,
  .background-chevron,
  .modal-background-chevron,
  .background-chevron_cta {
    animation: none !important;
    opacity: 1 !important;
    transform: none !important;
  }
}

/* =========================
   Print Styles
========================= */
@media print {
  .navbar,
  .topbar,
  .footer,
  .modal-wrapper,
  .nav-overlay {
    display: none !important;
  }
  
  .section {
    break-inside: avoid;
  }
}

