/* ===== Local fonts (Instrument Sans + Inter, latin) ===== */
@font-face{font-family:"Instrument Sans";font-style:normal;font-weight:400;font-display:swap;src:url("assets/fonts/instrumentsans-400.woff2") format("woff2");}
@font-face{font-family:"Instrument Sans";font-style:normal;font-weight:500;font-display:swap;src:url("assets/fonts/instrumentsans-500.woff2") format("woff2");}
@font-face{font-family:"Instrument Sans";font-style:normal;font-weight:600;font-display:swap;src:url("assets/fonts/instrumentsans-600.woff2") format("woff2");}
@font-face{font-family:"Instrument Sans";font-style:normal;font-weight:700;font-display:swap;src:url("assets/fonts/instrumentsans-700.woff2") format("woff2");}
@font-face{font-family:"Inter";font-style:normal;font-weight:300;font-display:swap;src:url("assets/fonts/inter-300.woff2") format("woff2");}
@font-face{font-family:"Inter";font-style:normal;font-weight:400;font-display:swap;src:url("assets/fonts/inter-400.woff2") format("woff2");}
@font-face{font-family:"Inter";font-style:normal;font-weight:500;font-display:swap;src:url("assets/fonts/inter-500.woff2") format("woff2");}
@font-face{font-family:"Inter";font-style:normal;font-weight:600;font-display:swap;src:url("assets/fonts/inter-600.woff2") format("woff2");}
@font-face{font-family:"Inter";font-style:normal;font-weight:700;font-display:swap;src:url("assets/fonts/inter-700.woff2") format("woff2");}

/* ===== Global fluid responsive base (from template global styles) ===== */
html { font-size: calc(0.5991091314031181rem + 0.4454342984409799vw); }
@media screen and (max-width:1440px) { html { font-size: calc(0.5991091314031181rem + 0.4454342984409799vw); } }
@media screen and (max-width:991px) { html { font-size: calc(0.44698660714285715rem + 0.8928571428571428vw); } }
@media screen and (max-width:767px) { html { font-size: calc(0.6671006944444444rem + 0.6944444444444444vw); } }
@media screen and (max-width:479px) { html { font-size: calc(0.7494769874476988rem + 0.8368200836820083vw); } }

body {
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
  font-smoothing: antialiased;
  text-rendering: optimizeLegibility;
  overflow-x: clip;
}

*[tabindex]:focus-visible,
input[type="file"]:focus-visible {
  outline: 0.125rem solid #4d65ff;
  outline-offset: 0.125rem;
}

.container-medium, .container-small, .container-large {
  margin-right: auto !important;
  margin-left: auto !important;
}

.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; }
}

/* ===== Scroll-into-view reveal (replaces Webflow IX) ===== */
.scroll-into-view {
  opacity: 0;
  transform: translate3d(0, 15%, 0);
  transition: opacity 0.7s cubic-bezier(0.16, 1, 0.3, 1), transform 0.7s cubic-bezier(0.16, 1, 0.3, 1);
}
.scroll-into-view.in-view {
  opacity: 1;
  transform: translate3d(0, 0, 0);
}

/* ===== Image curtain reveal (replaces Webflow IX) ===== */
[data-reveal] .img-wrapper {
  overflow: hidden;
  transform: translate3d(0, -110%, 0);
  transition: transform 1s cubic-bezier(0.16, 1, 0.3, 1);
}
[data-reveal].in-view .img-wrapper {
  transform: translate3d(0, 0, 0);
}
[data-reveal] .img {
  transform: translate3d(0, 100%, 0) scale(1.5);
  filter: blur(10px);
  transition: transform 1s cubic-bezier(0.16, 1, 0.3, 1), filter 1s cubic-bezier(0.16, 1, 0.3, 1);
}
[data-reveal].in-view .img {
  transform: translate3d(0, 0, 0) scale(1, 1);
  filter: blur(0);
}

/* ===== Hero load-in (replaces Webflow IX) ===== */
@keyframes hero-bg-in {
  from { transform: scale3d(1.3, 1.3, 1); filter: blur(20px); }
  to { transform: scale3d(1, 1, 1); filter: blur(0); }
}
.hero-secondary_background {
  animation: hero-bg-in 1.4s cubic-bezier(0.16, 1, 0.3, 1) both;
}
@keyframes hero-fade-up {
  from { opacity: 0; transform: translate3d(0, 15%, 0); }
  to { opacity: 1; transform: translate3d(0, 0, 0); }
}
.hero-title { animation: hero-fade-up 0.9s cubic-bezier(0.16, 1, 0.3, 1) 0.15s both; }
.hero_description { animation: hero-fade-up 0.9s cubic-bezier(0.16, 1, 0.3, 1) 0.3s both; }
.hero_button-wrapper { animation: hero-fade-up 0.9s cubic-bezier(0.16, 1, 0.3, 1) 0.45s both; }

/* ===== Logos marquee (replaces Webflow IX loop) ===== */
@keyframes logos-marquee {
  from { transform: translateX(0); }
  to { transform: translateX(-110%); }
}
.logos-wrapper {
  animation: logos-marquee 30s linear infinite;
}

/* ===== Projects slider (replaces Webflow slider JS) ===== */
.projects_slide { width: 100%; }
.projects_mask {
  transition: transform 0.5s ease;
}

/* ===== Accordion (replaces Webflow dropdown IX) ===== */
.accordion-content {
  height: 0;
  transition: height 0.45s cubic-bezier(0.16, 1, 0.3, 1);
}
.accordion-icon {
  transition: transform 0.3s ease;
}
.accordion.w-dropdown-open .accordion-icon {
  transform: rotate(90deg);
}

/* ===== Mobile menu open state (Webflow JS sets inline display; mirrored here) ===== */
.w-nav.w-nav-opened .nav_mobile {
  display: flex !important;
}
