/* Global border-box reset (Webflow applies this via runtime, missing in static export) */
*, *::before, *::after {
  box-sizing: border-box;
}

/* Text Selection Color */
::selection {
  background: var(--primary--text);
  color: var(--primary--background);
}
::-moz-selection {
  background: var(--primary--text);
  color: var(--primary--background);
}
/* Apply font smoothing */
body {
  -webkit-font-smoothing: antialiased;
  -moz-font-smoothing: antialiased;
  -o-font-smoothing: antialiased;
}
/* Ensure column stack on increased default browser font size (for accessibility) */
body.font-size-increased .row {
  container-type: inline-size;
}
body.font-size-increased {
  @container (max-width: 40rem) {
    .col:not([data-wf--grid-column--column-size="shrink"]) {
      flex: 0 0 100% !important;
      max-width: 100% !important;
    }
  }
}
/* Rich text modifiers */
.w-richtext>:first-child {
  margin-top: 0;
}
/* Line clamp modifiers */
.u-text-clamp-1 {
  -webkit-line-clamp: 1;
  -webkit-box-orient: vertical;
}
.u-text-clamp-2 {
  -webkit-line-clamp: 2;
  -webkit-box-orient: vertical;
}
.u-text-clamp-3 {
  -webkit-line-clamp: 3;
  -webkit-box-orient: vertical;
}
/* Row/col gap modifiers */
.row.row-gap-0 .col {
  --_layout---grid--gap-main: 0;
}
.row.row-gap-0:has( .col[class*="contain"]) .col {
  --_layout---grid--gap-main: 1px;
}
.row.row-gap-md .col {
  --_layout---grid--gap-main: var(--_layout---grid--gap-md);
}
.row.row-gap-sm .col {
  --_layout---grid--gap-main: var(--_layout---grid--gap-sm);
}
.row.row-gap-button .col {
  --_layout---grid--gap-main: var(--_layout---grid--gap-button);
}
/* Build mode modifiers */
.slot .button:not([data-slider]) {
  align-self: flex-start;
}
.slot > *:last-child,
.slot > .heading-component:last-child *,
.slot > .rich-text-component:last-child .rich-text > *:last-child,
.rich-text-component.u-mb-0 .rich-text > *:last-child,
.eyebrow-component.u-mb-0 .eyebrow {
  margin-bottom: 0;
}
.slot.cc-column > .eyebrow-component {
  align-self: start;
}
.card:has(>.u-link-cover:focus-visible) {
  outline: 2px solid var(--primary--accent);
  outline-offset: 2px;
}
.section:has( > .container > .slot > [data-wf--image--settings-aspect-ratio="background"]),
.page-wrapper:has( [data-wf--image--settings-aspect-ratio="background"]) {
  background: transparent !important;
  z-index: 1;
}
.card > .slot > [data-wf--image--settings-aspect-ratio="background"] {
  z-index: 0;
}
.card > .slot > *:not([data-wf--image--settings-aspect-ratio="background"]) {
  z-index: 1;
}

/* Set light/dark theme on HTML */
:root {
  color-scheme: light dark;
}
@media (prefers-color-scheme: dark) {
  /* Reset Webflow injected Lightning CSS Polyfill */
  --lightningcss-light: ;
  --lightningcss-dark: initial;
}
@media (prefers-color-scheme: light) {
  /* Reset Webflow injected Lightning CSS Polyfill */
  --lightningcss-light: initial;
  --lightningcss-dark: ;
}
/* Toggle switch styling */
[data-theme-toggle="checkbox"]::before {
  content: "";
  position: absolute;
  width: 1.1em;
  height: 1.1em;
  border-radius: 50%;
  background-color: var(--primary--text);
  top: 0.2em;
  left: 0.2em;
  transition: transform 0.3s ease;
}
[data-theme-toggle="checkbox"]:checked::before {
  transform: translateX(1.5em);
}

/* Reset apple form styles */
input, textarea, select {
  -webkit-appearance: none;
  -moz-appearance: none;
  appearance: none; border-radius: 0;
  background-image: none;
}
/* Adjust input autofill to brand colors */
input:-webkit-autofill,
input:-webkit-autofill:focus {
  background-color: var(--primary--background) !important;
  color: var(--primary--text) !important;
  -webkit-box-shadow: 0 0 0 50px var(--primary--background) inset;
  -webkit-text-fill-color: var(--primary--text);
}
/* Select input custom arrow */
.input-group:has(.input.cc-select)::after {
  content: "";
  position: absolute;
  top: 50%;
  right: 1.5rem;
  border-top: 2px solid var(--primary--text);
  border-right: 2px solid var(--primary--text);
  transform: translateY(-90%) rotate(135deg);
  width: 0.4rem;
  height: 0.4rem;
  pointer-events: none;
}

/* Marquee */
@keyframes marquee-scroll-left { 0% { transform: translateX(0); } 100% { transform: translateX(-100%); } }
@keyframes marquee-scroll-right { 0% { transform: translateX(-100%); } 100% { transform: translateX(0); } }
@keyframes marquee-scroll-up { 0% { transform: translateY(0); } 100% { transform: translateY(-100%); } }
@keyframes marquee-scroll-down { 0% { transform: translateY(-100%); } 100% { transform: translateY(0); } }
.marquee-component[data-marquee-pause-on-hover="true"]:hover .marquee-group {
  animation-play-state: paused;
}
.marquee-component[data-marquee-reverse="false"] .marquee-group {
  animation: marquee-scroll-left var(--marquee-duration) linear infinite;
}
.marquee-component[data-marquee-reverse="true"] .marquee-group {
  animation: marquee-scroll-right var(--marquee-duration) linear infinite;
}
.marquee-component[data-wf--marquee--settings-orientation="vertical"][data-marquee-reverse="false"] .marquee-group {
  animation: marquee-scroll-down var(--marquee-duration) linear infinite;
}
.marquee-component[data-wf--marquee--settings-orientation="vertical"][data-marquee-reverse="true"] .marquee-group {
  animation: marquee-scroll-up var(--marquee-duration) linear infinite;
}
.marquee-component:not([data-wf--marquee--settings-orientation="vertical"])[data-marquee-fade-edges="true"] {
  -webkit-mask-image: linear-gradient(to right, transparent 0%, black 10%, black 90%, transparent 100%);
  mask-image: linear-gradient(to right, transparent 0%, black 10%, black 90%, transparent 100%);
}
.marquee-component[data-wf--marquee--settings-orientation="vertical"][data-marquee-fade-edges="true"] {
  -webkit-mask-image: linear-gradient(to bottom, transparent 0%, black 10%, black 90%, transparent 100%);
  mask-image: linear-gradient(to bottom, transparent 0%, black 10%, black 90%, transparent 100%);
}

/* Accordion */
:root {
  interpolate-size: allow-keywords; /* To animate accordions */
}
details[open] .accordion-icon{
  transform: rotate(45deg);
}
summary::-webkit-details-marker {
  display: none; /* Hide older Safari's default disclosure arrow */
}

/* Modal */
body:has(dialog[open]) {
  overflow: hidden !important;
}
dialog.modal[open] {
  animation: fadein 400ms ease-out forwards;
}
dialog.modal::backdrop {
  background: color-mix(in srgb, var(--_color---neutral--black) 80%, transparent);
}
@keyframes fadein{
  0%{
    opacity:0;
  }
  100%{
    opacity:1;
  }
}
dialog::-webkit-scrollbar {
  width: 10px;
}
dialog::-webkit-scrollbar-track {
  border-radius: 10px;
  background-color: transparent;
}
dialog::-webkit-scrollbar-thumb {
  border-radius: 10px;
  border: 2px solid var(--primary--background);
  background: var(--primary--text);
}
dialog::-webkit-scrollbar-thumb:window-inactive {
  background: var(--primary--text);
}

/* Slider */
.swiper-button-disabled {
  opacity: 0.5;
  pointer-events: none;
}
[data-slider="component"] {
  --lg: 3; /* Desktop (992px+) */
  --md: 2; /* Tablet (768-991px) */
  --sm: 1; /* Mobile Landscape (480-767px) */
  --xs: 1; /* Mobile Portrait (0-479px) */
  --gap: 24px; /* Spacing between slides */
  --current-slides-per-view: var(--xs); /* Current active slides per view (changes with media queries) */
}
@media (min-width: 480px) and (max-width: 767px) {
  [data-slider="component"] {--current-slides-per-view: var(--sm);}
}
@media (min-width: 768px) and (max-width: 991px) {
  [data-slider="component"] {--current-slides-per-view: var(--md);}
}
@media (min-width: 992px) {
  [data-slider="component"] {--current-slides-per-view: var(--lg);}
}
[data-slider="component"] .swiper-slide {
  width: calc((100% - (var(--current-slides-per-view) - 1) * var(--gap)) / var(--current-slides-per-view)) !important;
  margin-right: var(--gap);
}
[data-slider-overflow="false"] {
  overflow: hidden;
}
[data-slider-overflow="true"] {
  overflow: visible !important;
}
[data-slider="component"] .swiper-wrapper:empty {
  min-height: 300px;
}
[data-slider="component"] .swiper-wrapper .w-dyn-list,
[data-slider="component"] .swiper-wrapper .w-dyn-items,
[data-slider="component"] .swiper-wrapper .w-dyn-item {
  display: contents;
}

/* Tab pane animations  */
.tabs-pane {
  animation: tabsFadeIn 0.5s ease;
}
@keyframes tabsFadeIn {
  from { opacity: 0; }
  to { opacity: 1; }
}
.tabs-pane[aria-hidden="true"] {
  display: none;
}
/* Vertical menu mods  */
[data-wf--tabs-menu--settings-alignment="vertical"] .tabs-link {
  border-bottom: none;
  border-left: 2px solid var(--primary--border);
}
[data-wf--tabs-menu--settings-alignment="vertical"] .tabs-link.cc-active {
  border-color: var(--primary--text);
}
[data-wf--tabs-menu--settings-alignment="vertical"] .tabs-autoplay-progress {
  top: 0;
  right: auto;
  bottom: 0;
  left: -2px;
  width: 2px;
  height: 0%;
}
/* Autoplay animation  */
.tabs-menu[data-tabs-autoplay="true"] .tabs-link[aria-selected="true"] .tabs-autoplay-progress {
  animation: autoplayProgress var(--autoplay-duration, 5s) linear forwards;
}
.tabs-component.autoplay-paused .tabs-menu[data-tabs-autoplay="true"] .tabs-link[aria-selected="true"] .tabs-autoplay-progress {
  animation-play-state: paused;
}
@keyframes autoplayProgress {
  from { width: 0%; }
  to { width: 100%; }
}
.tabs-component .tabs-menu[data-wf--tabs-menu--settings-alignment="vertical"][data-tabs-autoplay="true"] .tabs-link[aria-selected="true"] .tabs-autoplay-progress {
  animation: autoplayProgressVertical var(--autoplay-duration, 5s) linear forwards;
}
.tabs-component.autoplay-paused .tabs-menu[data-wf--tabs-menu--settings-alignment="vertical"][data-tabs-autoplay="true"] .tabs-link[aria-selected="true"] .tabs-autoplay-progress {
  animation-play-state: paused;
}
@keyframes autoplayProgressVertical {
  from { height: 0%; }
  to { height: 100%; }
}
/* Play/pause button  */
.tabs-component.autoplay-paused .tabs-autoplay-toggle_pause {
  display: none;
}
.tabs-component.autoplay-paused .tabs-autoplay-toggle_play {
  display: flex;
}
/* Mobile dropdown */
@media (max-width: 767px) {
  .tabs-menu[data-tab-mobile-dropdown="true"] .tabs-menu_dropdown-toggle {
    display: flex;
  }
  .tabs-menu[data-tab-mobile-dropdown="true"] .tabs-menu_dropdown-toggle.cc-open {
    border-radius: var(--_components---button--border-radius) var(--_components---button--border-radius) 0 0;
  }
  .tabs-menu[data-tab-mobile-dropdown="true"] .tabs-menu_dropdown-toggle.cc-open .tabs-menu_dropdown-arrow {
    transform: rotate(180deg);
  }
  .tabs-menu[data-tab-mobile-dropdown="true"] .tabs-menu_dropdown-menu {
    display: none;
    position: absolute;
    top: calc(100% - 1px);
    left: 0;
    right: 0;
    background: var(--primary--background);
    border: 1px solid var(--primary--border);
    border-radius: 0 0 var(--_components---button--border-radius) var(--_components---button--border-radius);
    z-index: 10;
    max-height: 300px;
    overflow-x: hidden;
    overflow-y: auto;
  }
  .tabs-menu[data-tab-mobile-dropdown="true"] .tabs-menu_dropdown-menu.cc-open {
    display: block;
  }
  .tabs-menu[data-tab-mobile-dropdown="true"] .slot.cc-tabs-menu {
    display: flex;
    flex-direction: column;
  }
  .tabs-menu[data-tab-mobile-dropdown="true"] .tabs-link {
    border: none;
  }
  .tabs-menu[data-tab-mobile-dropdown="true"] .tabs-link.cc-active {
    background-color: var(--primary--border);
  }
}

.animation-line > div {
  padding-bottom: 15px;
  margin-top: -15px;
}
