@import url("bootstrap.min.css?v=10");
@import url("animate.css?v=10");
@import url("linear.css?v=10");
@import url("fontawesome.css?v=10");
@import url("flaticon.css?v=10");
@import url("tm-utility-classes.css?v=10");
@import url("style.css?v=10");

/* White Box theme — entry layer: self-hosted fonts, library css, template patches.
   Section styles live in style.css (imported legacy design, patched for local assets). */

@font-face {
  font-family: "DM Sans";
  font-style: normal;
  font-weight: 400;
  font-display: swap;
  src: url(../fonts/dmsans-400-latin.woff2) format("woff2");
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}
@font-face {
  font-family: "DM Sans";
  font-style: normal;
  font-weight: 400;
  font-display: swap;
  src: url(../fonts/dmsans-400-latin-ext.woff2) format("woff2");
  unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
}
@font-face {
  font-family: "DM Sans";
  font-style: normal;
  font-weight: 500;
  font-display: swap;
  src: url(../fonts/dmsans-500-latin.woff2) format("woff2");
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}
@font-face {
  font-family: "DM Sans";
  font-style: normal;
  font-weight: 500;
  font-display: swap;
  src: url(../fonts/dmsans-500-latin-ext.woff2) format("woff2");
  unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
}
@font-face {
  font-family: "DM Sans";
  font-style: normal;
  font-weight: 700;
  font-display: swap;
  src: url(../fonts/dmsans-700-latin.woff2) format("woff2");
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}
@font-face {
  font-family: "DM Sans";
  font-style: normal;
  font-weight: 700;
  font-display: swap;
  src: url(../fonts/dmsans-700-latin-ext.woff2) format("woff2");
  unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
}


/* Section title accent convention: `strong` = accent-1, second `strong` = accent-2.
   Content carries semantic emphasis; color stays presentation. */
.sec-title strong:nth-of-type(1) { color: var(--theme-color1); }
.sec-title strong:nth-of-type(2) { color: var(--theme-color2); }
.banner-section-two .title strong { color: inherit; }

/* Anchored sections need headroom under the sticky header */
section[id] { scroll-margin-top: 110px; }
html { scroll-behavior: smooth; }

/* Filter gallery (vanilla replacement for MixItUp) */
.filter-list .mix { transition: opacity 0.4s ease, transform 0.4s ease; }
.filter-list .mix.is-hidden { display: none; }
.filter-btns .filter { cursor: pointer; }
.filter-btns .filter.active { color: var(--theme-color1); }

/* Lightbox (native <dialog>) */
.wb-lightbox {
  border: 0; padding: 0; background: transparent; max-width: 92vw; max-height: 92vh;
}
.wb-lightbox::backdrop { background: rgba(10, 10, 10, 0.85); }
.wb-lightbox img, .wb-lightbox iframe { display: block; max-width: 92vw; max-height: 88vh; margin: 0 auto; }
.wb-lightbox__close {
  position: fixed; top: 18px; right: 24px; z-index: 10;
  background: none; border: 0; color: #fff; font-size: 34px; line-height: 1; cursor: pointer;
}

/* Theme block renderers (core content blocks dropped onto pages) */
.block { margin-bottom: var(--space-l, 30px); }
.block-heading { margin: 0 0 20px; }
.block-image figure { margin: 0; }
.block-image img { max-width: 100%; height: auto; }
.block-gallery ul { list-style: none; padding: 0; display: flex; flex-wrap: wrap; gap: 18px; }
.block-list ul { list-style: none; padding-left: 0; }
.block-quote blockquote { font-size: 22px; font-style: italic; }
/* CSP-safe animation support (WAAPI + classes, no inline styles) */
.wb-char, .wb-word { display: inline-block; }
.words-rotate-in { perspective: 1000px; }
.wow { visibility: hidden; }
.wow.wb-in { visibility: visible; }
.preloader.wb-done { opacity: 0; pointer-events: none; transition: opacity 0.5s ease; }
.scroll-to-top { display: none; }
.scroll-to-top.wb-show { display: block; }
@keyframes wbPop {
  from { opacity: 0; transform: scale(0.9); }
  to { opacity: 1; transform: scale(1); }
}
.filter-list .mix.wb-pop { animation: wbPop 0.4s ease; }
@media (prefers-reduced-motion: reduce) {
  .wow { visibility: visible; }
  .circle, .circle-follow { display: none; }
}

/* Rich-text section titles: CMS wraps title markdown in <p> inside the
   template's <h2>; inherit the heading look instead of paragraph style. */
.sec-title h2 p { display: inline; margin: 0; font: inherit; color: inherit; letter-spacing: inherit; }
.sec-title h2 p strong { font: inherit; color: inherit; }
.sec-title h2 .wb-word, .sec-title h2 .wb-char { display: inline-block; }

/* CSP-safe replacements for legacy inline styles */
.wb-hp { position: absolute; left: -9999px; }
.contact-section .footer-upper .title,
.main-footer .footer-upper .title { color: #fff; }

/* Partners: infinite logo marquee (vanilla replacement for the Owl carousel) */
.wb-marquee { overflow: hidden; width: 100%; }
.wb-marquee__track {
  display: flex;
  align-items: center;
  gap: 70px;
  width: max-content;
  padding-right: 70px;
  animation: wbMarquee 28s linear infinite;
}
.wb-marquee:hover .wb-marquee__track { animation-play-state: paused; }
.wb-marquee__track .client-block { flex: 0 0 auto; }
.wb-marquee__track img {
  height: 90px;
  width: auto;
  max-width: 220px;
  object-fit: contain;
  opacity: 0.2;
  transition: opacity 0.3s ease;
}
.wb-marquee__track .client-block:hover img { opacity: 1; }
@keyframes wbMarquee {
  from { transform: translateX(0); }
  to { transform: translateX(-50%); }
}
@media (prefers-reduced-motion: reduce) {
  .wb-marquee__track { animation: none; flex-wrap: wrap; justify-content: center; width: 100%; }
}
