/* FlySpark home on the Olight Home 05 template (Elementor post 12).
   Slot images: the demo backgrounds of post-12.css replaced with the FlySpark versions in /olight/fs. */

.elementor-12 .elementor-element.elementor-element-0ab63c7 > .elementor-background-overlay {
  background-image: url("/olight/fs/fs-home5-half-x11.jpg");
}
.elementor-12 .elementor-element.elementor-element-bd6d6cc > .elementor-background-overlay {
  background-image: url("/olight/fs/fs-home5-half-s08.jpg");
}
.elementor-12 .elementor-element.elementor-element-dce2a1a:not(.elementor-motion-effects-element-type-background) {
  background-image: url("/olight/fs/vt_olight_home2_bg_1.jpg");
}
.elementor-12 .elementor-element.elementor-element-5e53bf2:not(.elementor-motion-effects-element-type-background) {
  background-image: url("/olight/fs/vt_olight_home5_bg_1.jpg");
}
.elementor-12 .elementor-element.elementor-element-fee1116:not(.elementor-motion-effects-element-type-background) {
  background-image: url("/olight/fs/vt_olight_home5_banner_1.jpg");
}
.elementor-12 .elementor-element.elementor-element-3f093b4:not(.elementor-motion-effects-element-type-background) {
  background-image: url("/olight/fs/vt_olight_home5_banner_2.jpg");
}
@media (min-width: 768px) and (min-resolution: 1.5dppx) {
  .elementor-12 .elementor-element.elementor-element-0ab63c7 > .elementor-background-overlay {
    background-image: url("/olight/fs/fs-home5-half-x11@2x.jpg");
  }
  .elementor-12 .elementor-element.elementor-element-dce2a1a:not(.elementor-motion-effects-element-type-background) {
    background-image: url("/olight/fs/vt_olight_home2_bg_1@2x.jpg");
  }
  .elementor-12 .elementor-element.elementor-element-5e53bf2:not(.elementor-motion-effects-element-type-background) {
    background-image: url("/olight/fs/vt_olight_home5_bg_1@2x.jpg");
  }
}

/* Half banners: text zone left, product zone right. The slot image is pinned right and its left part
   fades into the photo's own backdrop grey, so the copy never sits on the product. */
.elementor-12 .elementor-element-0ab63c7,
.elementor-12 .elementor-element-bd6d6cc {
  background-color: #f0f0f0;
}
.elementor-12 .elementor-element.elementor-element-0ab63c7 > .elementor-background-overlay,
.elementor-12 .elementor-element.elementor-element-bd6d6cc > .elementor-background-overlay {
  background-position: right center;
  -webkit-mask-image: linear-gradient(90deg, transparent 0%, transparent 34%, #000 52%);
  mask-image: linear-gradient(90deg, transparent 0%, transparent 34%, #000 52%);
}
.elementor-12 .elementor-element-0ab63c7 .elementor-widget-wrap,
.elementor-12 .elementor-element-bd6d6cc .elementor-widget-wrap {
  padding-right: 54%;
}
/* Tablets: the 400px-tall card cover-scales the photo so the X11 (at ~69% of the photo width) lands under the
   copy — shift it right; the droppers banner copy gets the whole right column instead of the demo's fixed widths. */
@media (min-width: 768px) and (max-width: 1199px) {
  .elementor-12 .elementor-element.elementor-element-0ab63c7 > .elementor-background-overlay {
    background-position: right -110px center;
  }
  .elementor-12 .elementor-element.elementor-element-2b8bd70,
  .elementor-12 .elementor-element.elementor-element-848a53d {
    width: 100% !important;
    max-width: 380px;
  }
}
/* Phones: compact side-by-side cards — copy on the left, the product on the right. The slot photos'
   backdrop is the card's own #f0f0f0, so each photo is placed by its product (X11 sits at ~69% of the
   photo width, the S08 gun spans 44–100%) instead of being cover-cropped. */
@media (max-width: 767px) {
  .elementor-12 .elementor-element.elementor-element-0ab63c7 > .elementor-container,
  .elementor-12 .elementor-element.elementor-element-bd6d6cc > .elementor-container {
    min-height: 200px;
  }
  .elementor-12 .elementor-element.elementor-element-76c80db > .elementor-element-populated,
  .elementor-12 .elementor-element.elementor-element-f9c6bc2 > .elementor-element-populated {
    padding: 22px 44% 22px 20px;
  }
  .elementor-12 .elementor-element-0ab63c7 .elementor-widget-wrap,
  .elementor-12 .elementor-element-bd6d6cc .elementor-widget-wrap {
    padding-right: 0;
  }
  .elementor-12 .elementor-element.elementor-element-0ab63c7 > .elementor-background-overlay,
  .elementor-12 .elementor-element.elementor-element-bd6d6cc > .elementor-background-overlay {
    -webkit-mask-image: none;
    mask-image: none;
  }
  .elementor-12 .elementor-element.elementor-element-0ab63c7 > .elementor-background-overlay {
    background-size: auto 100%;
    background-position: right center;
  }
  .elementor-12 .elementor-element.elementor-element-bd6d6cc > .elementor-background-overlay {
    background-size: auto 112px;
    background-position: right 4px center;
  }
  .elementor-12 .elementor-element.elementor-element-7b6c8c0 .elementor-heading-title,
  .elementor-12 .elementor-element.elementor-element-e9e5c55 .elementor-heading-title {
    font-size: 10px;
    line-height: 16px;
  }
  .elementor-12 .elementor-element.elementor-element-4e74848 .elementor-heading-title,
  .elementor-12 .elementor-element.elementor-element-598fbe9 .elementor-heading-title {
    font-size: 21px;
    line-height: 26px;
  }
  .elementor-12 .elementor-element.elementor-element-4e74848 > .elementor-widget-container,
  .elementor-12 .elementor-element.elementor-element-598fbe9 > .elementor-widget-container {
    margin-bottom: 8px;
  }
  .elementor-12 .elementor-element.elementor-element-bd42071,
  .elementor-12 .elementor-element.elementor-element-bd42071 p,
  .elementor-12 .elementor-element.elementor-element-f460d68,
  .elementor-12 .elementor-element.elementor-element-f460d68 p {
    font-size: 13px;
    line-height: 18px;
    letter-spacing: 0;
  }
  .elementor-12 .elementor-element.elementor-element-bd42071 > .elementor-widget-container,
  .elementor-12 .elementor-element.elementor-element-f460d68 > .elementor-widget-container {
    margin-bottom: 14px;
  }
  .elementor-12 .elementor-element.elementor-element-bd42071 p,
  .elementor-12 .elementor-element.elementor-element-f460d68 p {
    margin: 0;
  }
  .elementor-12 .elementor-element.elementor-element-887ca4f .elementor-button,
  .elementor-12 .elementor-element.elementor-element-c2166ad .elementor-button {
    font-size: 13px;
    padding: 6px 14px;
  }
  .elementor-12 .elementor-element.elementor-element-a1486b9 > .elementor-element-populated {
    margin-bottom: 12px;
  }
}

/* Slideshow: FlySpark slides are light studio shots — scrim the caption side so white type stays readable. */
.page-home .iviewSlider::before {
  content: "";
  position: absolute;
  inset: 0;
  background: linear-gradient(90deg, rgba(0, 0, 0, 0.62) 0%, rgba(0, 0, 0, 0.38) 40%, rgba(0, 0, 0, 0) 68%);
  pointer-events: none;
}
.page-home .iviewSlider .tp-caption {
  text-shadow: 0 1px 12px rgba(0, 0, 0, 0.25);
}

/* First paint, before iView boots: the slides are still direct children of .iview (iView moves them into
   .iviewSlider), so show slide 1 the way iView will — background + scrim on .iview, captions at iView's
   coordinates on desktop; below 1200px the theme's own centred caption layout applies unchanged. */
.page-home .iview:not(:has(> .iviewSlider)) {
  position: relative;
  background: var(--fs-slide-bg) 0 0 / 100% no-repeat;
}
.page-home .iview:not(:has(> .iviewSlider))::before {
  content: "";
  position: absolute;
  inset: 0;
  background: linear-gradient(90deg, rgba(0, 0, 0, 0.62) 0%, rgba(0, 0, 0, 0.38) 40%, rgba(0, 0, 0, 0) 68%);
  pointer-events: none;
}
/* iView then wraps the slides in an opaque .iviewSlider and preloads every slide image before it starts
   (1–4 s on mobile); until it paints slide 1 (inline background on .iviewSlider) keep the same first frame. */
.page-home .iview > .iviewSlider:not([style*="background"]) {
  background: var(--fs-slide-bg) 0 0 / 100% no-repeat;
}
@media (min-width: 768px) and (min-resolution: 1.5dppx) {
  .page-home .iview:not(:has(> .iviewSlider)),
  .page-home .iview > .iviewSlider:not([style*="background"]) {
    background-image: var(--fs-slide-bg-2x, var(--fs-slide-bg));
  }
}
.page-home .iview > .slide_config:first-child,
.page-home .iview > .iviewSlider:not([style*="background"]) > .slide_config:first-child {
  display: block;
}
.page-home .iview > .slide_config:first-child > .slide__btn,
.page-home .iview > .iviewSlider:not([style*="background"]) > .slide_config:first-child > .slide__btn {
  text-transform: none;
}
@media (min-width: 1200px) {
  .page-home .iview > .slide_config:first-child,
  .page-home .iview > .iviewSlider:not([style*="background"]) > .slide_config:first-child {
    position: relative;
    height: 100%;
  }
  .page-home .iview > .slide_config:first-child > .tp-caption,
  .page-home .iview > .iviewSlider:not([style*="background"]) > .slide_config:first-child > .tp-caption {
    position: absolute;
    left: 104px;
  }
  .page-home .iview > .slide_config:first-child > .slide__heading,
  .page-home .iview > .iviewSlider:not([style*="background"]) > .slide_config:first-child > .slide__heading { top: 177px; }
  .page-home .iview > .slide_config:first-child > .slide__des,
  .page-home .iview > .iviewSlider:not([style*="background"]) > .slide_config:first-child > .slide__des { top: 343px; }
  .page-home .iview > .slide_config:first-child > .slide__btn,
  .page-home .iview > .iviewSlider:not([style*="background"]) > .slide_config:first-child > .slide__btn { top: 431px; }
  .page-home .iview > .slide_config[data-fs-compact]:first-child > .slide__heading,
  .page-home .iview > .iviewSlider:not([style*="background"]) > .slide_config[data-fs-compact]:first-child > .slide__heading { top: 80px; }
  .page-home .iview > .slide_config[data-fs-compact]:first-child > .slide__des,
  .page-home .iview > .iviewSlider:not([style*="background"]) > .slide_config[data-fs-compact]:first-child > .slide__des { top: 250px; }
  .page-home .iview > .slide_config[data-fs-compact]:first-child > .slide__btn,
  .page-home .iview > .iviewSlider:not([style*="background"]) > .slide_config[data-fs-compact]:first-child > .slide__btn { top: 480px; }
}
/* iView sizes the slide image to 100% width; below ~1410px wide that leaves a strip under it — fill it
   with a neutral studio grey. */
.page-home .iview,
.page-home .iviewSlider {
  background-color: #e4e4e4 !important;
}
/* Bullets: the theme hides the slide numbers with text-indent:-9999px, which RTL flips to +9999px
   (spans at x≈5700 on /uae). Size them to zero instead. */
.page-home .iview-controlNav div.iview-items ul li a.iview-control {
  text-indent: 0;
  font-size: 0;
  line-height: 0;
  overflow: hidden;
}

/* Mobile: the theme stacks the captions (centred, 40px heading) in a 450px slide — tighten FlySpark's
   longer copy so heading, intro and both buttons fit. */
@media (max-width: 767px) {
  .page-home .box__slide .slide__heading {
    font-size: 32px !important;
    margin-bottom: 12px;
  }
  .page-home .box__slide .slide__heading.fs-slide-compact {
    font-size: 26px !important;
  }
  .page-home .box__slide .slide__des {
    font-size: 15px !important;
    line-height: 1.5;
    margin-bottom: 20px;
  }
  .page-home .iview > .slide_config:first-child > .slide__des,
  .page-home .box__slide .slide__des .caption-contain {
    display: -webkit-box;
    -webkit-line-clamp: 4;
    -webkit-box-orient: vertical;
    overflow: hidden;
  }
  .page-home .fs-hero-cta {
    gap: 8px;
  }
}

/* Above-the-fold half banners: play the demo entrance from CSS at first paint instead of waiting for the
   theme runtime (Elementor later adds the same animation name, so it does not replay). */
.page-home .elementor-element-a1486b9.elementor-invisible,
.page-home .elementor-element-520030c.elementor-invisible {
  visibility: visible;
  animation: fadeInLeft 0.75s both;
}
.page-home .elementor-element-520030c.elementor-invisible {
  animation-name: fadeInRight;
}

/* Slideshow: the caption keeps the theme's button look, one button per link. */
.page-home .slide__heading span {
  display: inline;
}
.page-home .slide__heading.fs-slide-compact {
  white-space: normal;
  max-width: 760px;
  line-height: 1.15;
}
.page-home .slide__des {
  max-width: 620px;
  white-space: normal;
}
.page-home .box__slide .slide__btn .caption-contain,
.page-home .slide__btn .caption-contain {
  padding: 0;
  border: 0;
  background: none;
}
.page-home .fs-hero-cta {
  display: inline-flex;
  flex-wrap: wrap;
  gap: 12px;
}
.page-home .fs-slide-btn {
  display: inline-block;
  font-size: 14px;
  line-height: 24px;
  font-weight: 700;
  padding: 12px 39px;
  border-radius: 9px;
  border: 1px solid #fff;
  background-color: transparent;
  color: #fff;
  transition: 0.3s all ease;
}
.page-home .fs-slide-btn:hover {
  background-color: var(--theme-color-default);
  border-color: var(--theme-color-default);
  color: #000;
}
.page-home .fs-slide-btn--ghost {
  border-color: rgba(255, 255, 255, 0.6);
}

/* Experiment home_hero_cta: control (A) until HeroCtaVariant flags <body>. */
.page-home .fs-hero-cta--b,
body[data-home-hero-cta="B"] .page-home .fs-hero-cta--a {
  display: none;
}
body[data-home-hero-cta="B"] .page-home .fs-hero-cta--b {
  display: inline-flex;
}

/* Product tabs: one tab per mission sector — let the tab row wrap. Tab titles are sector anchors. */
.page-home .elementor-LeoProductTab .widget-tabs-wrapper {
  flex-wrap: wrap;
  row-gap: 10px;
}
@media (max-width: 767px) {
  .page-home .elementor-LeoProductTab .widget-tabs-wrapper {
    flex-wrap: nowrap;
    justify-content: flex-start;
    overflow-x: auto;
    -webkit-overflow-scrolling: touch;
    scrollbar-width: none;
    scroll-snap-type: x proximity;
  }
  .page-home .elementor-LeoProductTab .widget-tabs-wrapper::-webkit-scrollbar {
    display: none;
  }
  .page-home .elementor-LeoProductTab .widget-tab-title {
    flex: 0 0 auto;
    white-space: nowrap;
    scroll-snap-align: start;
  }
}
.page-home .elementor-LeoProductTab .fs-tab-heading {
  display: inline;
  margin: 0;
  font: inherit;
  letter-spacing: inherit;
  text-transform: inherit;
  color: inherit;
}
.page-home .elementor-LeoProductTab .fs-tab-heading > a {
  color: inherit;
}
/* Theme hovers that paint text in the theme colour with !important — yellow on white after the recolour. */
.page-home .elementor-LeoProductTab .widget-tabs-wrapper .widget-tab-title:hover,
.page-home .box__category--5 a:hover .item-sub-title {
  color: #22201d !important;
}
.page-home .elementor-LeoProductTab,
.page-home #capabilities {
  scroll-margin-top: 90px;
}

/* Product miniatures: catalogue photos come in mixed ratios — crop to the theme's 400×426 thumbnail. */
.page-home .product-miniature .product-thumbnail img {
  width: 100%;
  aspect-ratio: 400 / 426;
  object-fit: cover;
  background: #f6f6f6;
}

/* Service row (32882d6): Line Awesome glyphs in the 46px slot of the demo's PNG icons. */
.page-home .elementor-element-32882d6 .elementor-image-box-img {
  width: 46px;
  flex: none;
}
.page-home .fs-service-icon {
  display: block;
  font-size: 46px;
  line-height: 46px;
  color: #22201d;
  transition: 0.3s transform ease;
}
.page-home .elementor-element-32882d6 .elementor-image-box-wrapper:hover .fs-service-icon {
  transform: translateY(-3px);
}

/* Theme text widgets: inline links in the CTA / partner copy. */
.page-home #partners .elementor-text-editor a {
  font-weight: 600;
  text-decoration: underline;
  text-underline-offset: 3px;
}

/* Logo strip (block carousel): logos on white tiles, not photos. */
.page-home #LeoBlockCarousel_fs_home5_logos .item-image img {
  object-fit: contain;
  aspect-ratio: 1 / 1;
  padding: 18px;
  background: #f6f6f6;
  border-radius: 9px;
}

/* "Deploy Advanced Defense Technology" CTA = the theme's banner_3 slot on a dark FlySpark plate (the demo
   slot image is Olight's cream/gold swirl): white centred copy, yellow accent word, theme white button. */
.elementor-12 .elementor-element.elementor-element-b64cfd3:not(.elementor-motion-effects-element-type-background) {
  background-color: #22201d;
  background-image: radial-gradient(120% 140% at 50% 0%, #34312c 0%, #22201d 60%);
}
.elementor-12 .elementor-element.elementor-element-e11909a.elementor-widget-heading .elementor-heading-title {
  color: #fff;
}
.elementor-12 .elementor-element.elementor-element-e11909a .elementor-heading-title span {
  color: #fade58;
}
.elementor-12 .elementor-element.elementor-element-2e8b54f,
.elementor-12 .elementor-element.elementor-element-2e8b54f p {
  color: rgba(255, 255, 255, 0.86);
}
.elementor-12 .elementor-element.elementor-element-2e8b54f a {
  font-weight: 600;
  color: #fff;
  text-decoration: underline;
  text-underline-offset: 3px;
}

/* Generic widgets (icon-box, image-box, counter, LeoBlockLink, button) in the FlySpark sections. */
.page-home .elementor-element.elementor-inner-section[data-id^="f5"] > .elementor-container {
  max-width: 1350px;
  margin: 0 auto;
}
.page-home .elementor-element[data-id^="f5"] > .elementor-element-populated > .elementor-widget-wrap {
  margin: 0;
  padding: 0;
}
.page-home .elementor-widget-LeoBlockLink .list-items.horizontal {
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
  gap: 10px;
  margin: 28px 0 0;
  padding: 0;
  list-style: none;
}
.page-home .elementor-widget-LeoBlockLink .list-item.horizontal {
  margin: 0;
  padding: 0;
}
.page-home .elementor-widget-LeoBlockLink .item-text {
  display: inline-block;
  padding: 6px 16px;
  border: 1px solid #e2e2e2;
  border-radius: 999px;
  font-size: 13px;
  line-height: 20px;
  letter-spacing: 0.2px;
  color: #22201d;
  transition: 0.3s all ease;
}
.page-home .elementor-widget-LeoBlockLink .item-text:hover,
.page-home .elementor-widget-LeoBlockLink .item-text:focus-visible {
  border-color: var(--theme-color-default);
  background-color: var(--theme-color-default);
  color: #000;
}
.page-home .elementor-widget-button[data-id^="f5"] .elementor-button {
  padding: 10px 24px;
  border: 1px solid #22201d;
  border-radius: 9px;
  font-size: 14px;
  font-weight: 600;
  line-height: 24px;
  letter-spacing: 0.28px;
  color: #22201d;
  background-color: transparent;
}
.page-home .elementor-widget-button[data-id$="000"] .elementor-button,
.page-home .elementor-widget-button.elementor-element-f5c1007 .elementor-button {
  border-color: var(--theme-color-default);
  background-color: var(--theme-color-default);
  color: #000;
}
.page-home .elementor-widget-button[data-id^="f5"] .elementor-button:hover,
.page-home .elementor-widget-button[data-id^="f5"] .elementor-button:focus-visible {
  border-color: #22201d;
  background-color: #22201d;
  color: #fff;
}

/* Intro: featured export markets as an icon-box grid (flag | country, code · region). */
.page-home #home-markets .elementor-element-f5a1000 {
  max-width: 1000px;
  margin: 30px auto 0;
}
.page-home #home-markets .elementor-element-f5a1001 .elementor-widget-wrap {
  gap: 12px;
}
.page-home #home-markets .elementor-widget-icon-box {
  width: calc((100% - 48px) / 5);
}
.page-home #home-markets .elementor-icon-box-wrapper {
  align-items: center;
  gap: 10px;
  height: 100%;
  padding: 12px 14px;
  border: 1px solid #e5e5e5;
  border-radius: 9px;
  text-align: start;
  transition: 0.3s border-color ease;
}
.page-home #home-markets .elementor-icon-box-wrapper:hover {
  border-color: #22201d;
}
.page-home #home-markets .elementor-icon-box-icon {
  margin: 0;
}
.page-home #home-markets .elementor-icon {
  font-size: 22px;
  color: inherit;
}
.page-home #home-markets .elementor-icon-box-title {
  margin: 0;
  font-size: 15px;
  font-weight: 600;
  line-height: 20px;
}
.page-home #home-markets .elementor-icon-box-title a {
  color: #22201d;
}
.page-home #home-markets .elementor-icon-box-content {
  min-width: 0;
}
.page-home #home-markets .elementor-icon-box-description {
  overflow: hidden;
  white-space: nowrap;
  text-overflow: ellipsis;
  font-size: 11px;
  line-height: 16px;
  letter-spacing: 0.05em;
  text-transform: uppercase;
  color: #777;
}

/* Notice / FAQ (testimonial slot 25da14e): image widget | heading, text, theme accordion (one item per Q&A), buttons. */
.elementor-12 .elementor-element.elementor-element-25da14e:not(.elementor-motion-effects-element-type-background) {
  background-image: none;
}
.elementor-12 .elementor-element.elementor-element-25da14e {
  padding-top: 60px;
  padding-bottom: 60px;
}
.page-home .elementor-element-f5b1000 > .elementor-container {
  max-width: 1410px;
}
.page-home .elementor-element-f5b1000 > .elementor-container > .elementor-row {
  align-items: flex-start;
}
.page-home .elementor-element-f5b1001.elementor-column {
  width: 42%;
}
.page-home .elementor-element-f5b1003.elementor-column {
  width: 58%;
}
.page-home .elementor-element-f5b1001 > .elementor-element-populated {
  padding: 0 30px 0 0;
}
[dir="rtl"] .page-home .elementor-element-f5b1001 > .elementor-element-populated {
  padding: 0 0 0 30px;
}
.page-home .elementor-element-f5b1002 .elementor-image {
  max-width: 520px;
  margin: 0 auto;
  border-radius: 18px;
  background: #f6f6f6;
  overflow: hidden;
}
.page-home .elementor-element-f5b1002 img {
  display: block;
  width: 100%;
  height: auto;
  mix-blend-mode: multiply;
}
.page-home .elementor-element-f5b1003 > .elementor-element-populated {
  padding: 10px 0 0 30px;
}
[dir="rtl"] .page-home .elementor-element-f5b1003 > .elementor-element-populated {
  padding: 10px 30px 0 0;
}
.page-home .elementor-element-f5b1003 .elementor-widget-heading,
.page-home .elementor-element-f5b1003 .elementor-widget-text-editor,
.page-home .elementor-element-f5b1003 .elementor-text-editor {
  text-align: start;
}
.elementor-12 .elementor-element.elementor-element-1470b43 .elementor-text-editor {
  text-align: start;
}
.elementor-12 .elementor-element.elementor-element-1470b43 > .elementor-widget-container {
  margin-bottom: 24px;
}
.page-home .elementor-element-f5b2000 {
  margin-bottom: 30px;
}
.page-home .elementor-element-f5b2000 .elementor-accordion-item {
  border: 0;
  border-top: 1px solid #e2e2e2;
}
.page-home .elementor-element-f5b2000 .elementor-accordion-item:last-child {
  border-bottom: 1px solid #e2e2e2;
}
.page-home .elementor-element-f5b2000 .elementor-tab-title {
  margin: 0;
  padding: 18px 0;
  font-size: 16px;
  font-weight: 600;
  line-height: 24px;
  color: #22201d;
}
.page-home .elementor-element-f5b2000 .elementor-tab-title:focus-visible {
  outline: 2px solid #22201d;
  outline-offset: 2px;
}
.page-home .elementor-element-f5b2000 .elementor-accordion-icon {
  width: auto;
  margin-inline-start: 16px;
  font-size: 18px;
  line-height: 24px;
}
[dir="rtl"] .page-home .elementor-element-f5b2000 .elementor-accordion-icon.elementor-accordion-icon-right {
  float: left;
  text-align: left;
}
.page-home .elementor-element-f5b2000 .elementor-tab-content {
  padding: 0 0 18px;
  border: 0;
}
/* Item 1 open before the Elementor frontend runs; afterwards the active class shows its item (the handler's
   initial jQuery show() can run before the island is attached and then sets no inline display). */
.page-home .elementor-element-f5b2000:not([data-olight-init]) .elementor-accordion-item:first-child .elementor-tab-content,
.page-home .elementor-element-f5b2000 .elementor-tab-content.elementor-active {
  display: block;
}
.page-home .elementor-element-f5b2000 .elementor-tab-content,
.page-home .elementor-element-f5b2000 .elementor-tab-content p {
  margin: 0;
  font-size: 15px;
  line-height: 24px;
  color: #4b4b4a;
}
.page-home .elementor-element-f5b2000 .elementor-tab-content em {
  display: block;
  margin-top: 6px;
  font-size: 11px;
  font-style: normal;
  font-weight: 600;
  line-height: 16px;
  letter-spacing: 0.06em;
  text-transform: uppercase;
  color: #6b6b6b;
}
.page-home .elementor-element-f5b1003 .elementor-widget-button {
  width: auto;
  margin: 0 12px 0 0;
}
[dir="rtl"] .page-home .elementor-element-f5b1003 .elementor-widget-button {
  margin: 0 0 0 12px;
}

/* Bottom directory (root: "Tactical Product Categories"; country: other editions). */
.elementor-12 .elementor-element.elementor-element-65b3b72#partners {
  padding-bottom: 10px;
}
.elementor-12 .elementor-element.elementor-element-3cfacd7#home-directory {
  margin-top: 60px;
  margin-bottom: 70px;
}
.page-home #home-directory .elementor-element-f5c1000 > .elementor-container {
  max-width: 900px;
  margin: 10px auto 50px;
}
.page-home #home-directory .elementor-widget-counter {
  width: 33.333%;
  padding: 0 16px;
}
.page-home #home-directory .elementor-widget-counter + .elementor-widget-counter {
  border-inline-start: 1px solid #e2e2e2;
}
.page-home #home-directory .elementor-counter-number-wrapper {
  justify-content: center;
  font-size: 48px;
  font-weight: 500;
  line-height: 1.1;
  color: #22201d;
}
.page-home #home-directory .elementor-counter-number-prefix,
.page-home #home-directory .elementor-counter-number-suffix {
  flex-grow: 0;
}
.page-home #home-directory .elementor-counter-title {
  margin-top: 6px;
  font-size: 15px;
  line-height: 22px;
  color: #4b4b4a;
}
/* Category directory: the 10 sectors as theme image-boxes (tile on top, 5 per row). */
.page-home #home-directory .elementor-element-f5c1003 .elementor-widget-wrap {
  gap: 20px;
}
.page-home #home-directory .elementor-widget-image-box {
  width: calc((100% - 80px) / 5);
}
.page-home #home-directory .elementor-image-box-wrapper {
  height: 100%;
  padding: 20px 16px 22px;
  border: 1px solid #ececec;
  border-radius: 18px;
  background: #fff;
  text-align: center;
  transition: 0.3s border-color ease;
}
.page-home #home-directory .elementor-image-box-wrapper:hover {
  border-color: #22201d;
}
.page-home #home-directory .elementor-image-box-img {
  display: block;
  width: 120px;
  margin: 0 auto 14px;
}
.page-home #home-directory .elementor-image-box-img img {
  display: block;
  width: 120px;
  height: auto;
  transition: 0.3s transform ease;
}
.page-home #home-directory .elementor-image-box-wrapper:hover .elementor-image-box-img img {
  transform: scale(1.04);
}
.page-home #home-directory .elementor-image-box-title {
  margin: 0 0 6px;
  font-size: 16px;
  font-weight: 600;
  line-height: 22px;
}
.page-home #home-directory .elementor-image-box-title a {
  color: #22201d;
}
.page-home #home-directory .elementor-image-box-title a:hover {
  text-decoration: underline;
}
.page-home #home-directory .elementor-image-box-description {
  margin: 0;
  font-size: 14px;
  line-height: 20px;
  color: #4b4b4a;
}
/* Link lists as the theme's tag cloud (leo-blog-tags anchors). */
.page-home #home-directory .elementor-widget-LeoBlockLink .list-items.horizontal {
  gap: 8px;
}
.page-home #home-directory .elementor-widget-LeoBlockLink .item-text {
  padding: 7px 9px;
  border: 1px solid #eaeae9;
  border-radius: 8px;
  background-color: #fff;
  font-size: 13px;
  font-weight: 500;
  line-height: 14px;
  letter-spacing: 0;
  color: #4b4b4a;
  transition: 0.25s all;
}
.page-home #home-directory .elementor-element-f5c1004 > .elementor-container {
  margin-top: 36px;
  padding: 24px 0 0;
  border-top: 1px solid #ececec;
}
.page-home #home-directory .elementor-element-f5c1005 .elementor-widget-wrap {
  align-items: center;
  justify-content: center;
  gap: 14px 24px;
}
.page-home #home-directory .elementor-element-f5c1007 {
  width: auto;
}
.page-home #home-directory .elementor-element-f5c1006 {
  width: auto;
  text-align: center;
  color: #4b4b4a;
}
.page-home #home-directory .elementor-element-f5c1006 p {
  margin: 0;
}
.page-home #home-directory .elementor-element-f5c1006 a {
  font-weight: 600;
  color: #22201d;
  text-decoration: underline;
  text-underline-offset: 3px;
}
@media (max-width: 1199px) {
  .page-home #home-directory .elementor-image-box-wrapper {
    display: flex;
    align-items: center;
    gap: 16px;
    padding: 14px 18px 14px 14px;
    text-align: start;
  }
  .page-home #home-directory .elementor-image-box-img,
  .page-home #home-directory .elementor-image-box-img img {
    flex: none;
    width: 84px;
    margin: 0;
  }
}

/* Country editions: deployment brief in the collection banner, English market line under the first slide intro. */
.page-home .slide__des small {
  display: block;
  margin-top: 10px;
  font-size: 14px;
  opacity: 0.85;
}
/* The English line is dir="ltr" (full stop at the end); keep it aligned with the RTL intro above. */
[dir=rtl] .page-home .slide__des small {
  text-align: right;
}
.elementor-12 .elementor-element.elementor-element-4634c8c p {
  max-width: 760px;
  margin: 0 auto 8px;
}

@media (max-width: 991px) {
  .page-home #home-markets .elementor-widget-icon-box {
    width: calc((100% - 24px) / 3);
  }
  .page-home #home-directory .elementor-widget-image-box {
    width: calc((100% - 20px) / 2);
  }
  .page-home .elementor-element-f5b1001.elementor-column,
  .page-home .elementor-element-f5b1003.elementor-column {
    width: 100%;
  }
  .page-home .elementor-element-f5b1001 > .elementor-element-populated,
  [dir="rtl"] .page-home .elementor-element-f5b1001 > .elementor-element-populated {
    padding: 0 0 24px;
  }
  .page-home .elementor-element-f5b1002 img {
    max-width: 360px;
  }
  .page-home .elementor-element-f5b1003 > .elementor-element-populated,
  [dir="rtl"] .page-home .elementor-element-f5b1003 > .elementor-element-populated {
    padding: 0;
  }
}
@media (max-width: 767px) {
  .elementor-12 .elementor-element.elementor-element-25da14e {
    padding-top: 40px;
    padding-bottom: 40px;
  }
  .page-home .elementor-element-f5b1002 img {
    max-width: 260px;
  }
  .page-home .elementor-element-f5b1003 .elementor-widget-button {
    flex: 1 1 auto;
    margin: 0 0 10px;
  }
  .page-home .elementor-element-f5b1003 .elementor-widget-button .elementor-button {
    display: block;
    text-align: center;
  }
  .elementor-12 .elementor-element.elementor-element-3cfacd7#home-directory {
    margin-top: 40px;
    margin-bottom: 40px;
  }
  .page-home #home-directory .elementor-element-f5c1000 > .elementor-container {
    margin-bottom: 28px;
  }
  .page-home #home-directory .elementor-widget-counter {
    padding: 0 6px;
  }
  .page-home #home-directory .elementor-counter-number-wrapper {
    font-size: 28px;
  }
  .page-home #home-directory .elementor-counter-title {
    font-size: 11px;
    letter-spacing: 0.02em;
  }
  .page-home #home-directory .elementor-widget-image-box {
    width: 100%;
  }
  .page-home #home-directory .elementor-image-box-wrapper {
    padding: 12px 16px 12px 12px;
  }
  .page-home #home-directory .elementor-image-box-img,
  .page-home #home-directory .elementor-image-box-img img {
    width: 64px;
  }
}
/* Phones: N-Defender (bg_1), collection (home2_bg_1) and droppers (banner_1) use the 780px-wide phone crops
   (product in the lower part, plain plate on top): copy on the plate, the image scaled to the card width and
   anchored to the bottom; the card colour is the plate colour. Card width = viewport - 30px. */
@media (max-width: 767px) {
  .elementor-12 .elementor-element.elementor-element-5e53bf2:not(.elementor-motion-effects-element-type-background) {
    background-color: #161513;
    background-image: linear-gradient(#161513, rgba(22, 21, 19, 0) 22%), url("/olight/fs/vt_olight_home5_bg_1-m.jpg");
    background-size: 100% calc((100vw - 30px) * 0.9), 100% auto;
    background-position: center bottom;
    background-repeat: no-repeat;
  }
  .elementor-12 .elementor-element.elementor-element-5e53bf2 > .elementor-container {
    min-height: 0;
  }
  .elementor-12 .elementor-element.elementor-element-696ae5c > .elementor-element-populated {
    padding: 36px 0 calc((100vw - 30px) * 0.55);
  }
  .elementor-12 .elementor-element.elementor-element-dce2a1a:not(.elementor-motion-effects-element-type-background) {
    background-color: #161513;
    background-image: linear-gradient(#161513, rgba(22, 21, 19, 0) 22%), url("/olight/fs/vt_olight_home2_bg_1-m.jpg");
    background-size: 100% calc((100vw - 30px) * 1.154), 100% auto;
    background-position: center bottom;
    background-repeat: no-repeat;
  }
  .elementor-12 .elementor-element.elementor-element-dce2a1a > .elementor-container {
    min-height: 0;
  }
  .elementor-12 .elementor-element.elementor-element-379d5d9 > .elementor-element-populated {
    padding-bottom: calc((100vw - 30px) * 0.62);
  }
  .elementor-12 .elementor-element.elementor-element-fee1116:not(.elementor-motion-effects-element-type-background) {
    background-color: #eeeeee;
    background-image: linear-gradient(#eeeeee, rgba(238, 238, 238, 0) 18%), url("/olight/fs/vt_olight_home5_banner_1-m.jpg");
    background-size: 100% calc((100vw - 30px) * 0.77), 100% auto;
    background-position: center bottom;
    background-repeat: no-repeat;
  }
  .elementor-12 .elementor-element.elementor-element-fee1116 {
    padding: 0 20px;
  }
  .elementor-12 .elementor-element.elementor-element-fee1116 > .elementor-container {
    min-height: 0;
  }
  .elementor-12 .elementor-element.elementor-element-3b230ca > .elementor-element-populated {
    padding: 36px 0 calc((100vw - 30px) * 0.77 + 16px);
  }
  .elementor-12 .elementor-element.elementor-element-0ab63c7 > .elementor-background-overlay {
    background-image: url("/olight/fs/fs-home5-half-x11-m.jpg");
  }
  /* First paint of the hero on phones: the portrait slide-1 crop (iView swaps every slide's image the same way). */
  .page-home .iview:not(:has(> .iviewSlider)),
  .page-home .iview > .iviewSlider:not([style*="background"]) {
    background: var(--fs-slide-bg-m, var(--fs-slide-bg)) center bottom / cover no-repeat;
  }
}
@media (max-width: 575px) {
  .page-home #home-markets .elementor-widget-icon-box {
    width: calc((100% - 12px) / 2);
  }
  .page-home .fs-slide-btn {
    padding: 10px 20px;
  }
}

/* #wrapper has no .container on home, so the Bootstrap .row's -15px gutters overhang the viewport (and push
   the slider's next arrow off-canvas). Same content box without the overhang. */
.row:has(> #content-wrapper > #main > .page-home) {
  margin-right: 0;
  margin-left: 0;
}
.row > #content-wrapper:has(> #main > .page-home) {
  padding-right: 0;
  padding-left: 0;
}

/* Product carousels: mouse-drag the track, not the card image (native image drag swallowed slick's drag). */
.page-home .elementor-LeoProductCarousel img {
  -webkit-user-drag: none;
  user-select: none;
}
.page-home .elementor-LeoProductCarousel .slick-arrow {
  opacity: 0;
  transition: 0.3s opacity ease;
}
.page-home .elementor-LeoProductCarousel:hover .slick-arrow,
.page-home .elementor-LeoProductCarousel .slick-arrow:focus-visible {
  opacity: 1;
}
@media (hover: none) {
  .page-home .elementor-LeoProductCarousel .slick-arrow {
    display: none !important;
  }
}

/* Hero: pause/play control (WCAG 2.2.2) and slide bullets with a 28px hit area around the 10px dot. */
.page-home .LeoSlideshow {
  position: relative;
}
.page-home .fs-hero-pause {
  position: absolute;
  right: 20px;
  bottom: 14px;
  z-index: 30;
  display: flex;
  align-items: center;
  justify-content: center;
  width: 36px;
  height: 36px;
  padding: 0;
  border: 1px solid rgba(255, 255, 255, 0.6);
  border-radius: 50%;
  background: rgba(34, 32, 29, 0.45);
  color: #fff;
  font-size: 16px;
  cursor: pointer;
  transition: 0.3s all ease;
}
[dir="rtl"] .page-home .fs-hero-pause {
  right: auto;
  left: 20px;
}
.page-home .fs-hero-pause:hover,
.page-home .fs-hero-pause:focus-visible {
  border-color: #fade58;
  background: #fade58;
  color: #000;
}
.page-home .iview-controlNav div.iview-items ul li {
  height: auto;
}
.page-home .iview-controlNav div.iview-items ul li a.iview-control {
  box-sizing: content-box;
  width: 10px;
  height: 10px;
  margin: 0;
  border: 9px solid transparent;
  background-clip: padding-box;
}
/* Touch widths: 44px hit area around each dot (UX-42); the row keeps its 28px rhythm via negative margins. */
@media (max-width: 1024px) {
  .page-home .iview-controlNav div.iview-items ul li a.iview-control {
    border-width: 17px;
    margin: -8px;
  }
}
/* Product-tab panes never opened yet are not rendered (their markup stays in the HTML); the theme bundle
   marks a pane [data-fs-shown] on its first activation (_redesign/scripts/olight-perf-patch.js). */
.elementor-LeoProductTab .widget-tab-content:not(.active):not([data-fs-shown]) {
  content-visibility: hidden;
}
/* Below-the-fold section photos: fetched once the section is within one viewport of the screen
   (LAZY_BG_JS in home5-template.tsx sets [data-fs-bg]); the plate colour shows until then. */
[data-fs-lazy-bg] .elementor-element-dce2a1a:not([data-fs-bg]),
[data-fs-lazy-bg] .elementor-element-5e53bf2:not([data-fs-bg]),
[data-fs-lazy-bg] .elementor-element-fee1116:not([data-fs-bg]),
[data-fs-lazy-bg] .elementor-element-3f093b4:not([data-fs-bg]) {
  background-image: none !important;
}
/* RTL: with iView's overflow:hidden on the stage, Chrome scores the slideshow start (stage resized to 1410px
   and scaled from its right edge) as slide 1 jumping across half the hero (CLS 0.3 on /saudi-arabia, /uae
   desktop). .bannercontainer already clips to the same box, so the stage's own clip adds nothing visible. */
[dir='rtl'] .page-home .iview > .iviewSlider {
  overflow: visible !important;
}
