/* Local interactivity and offline fixes. The source layout is in home.css.
   No rule here hides page sections pending JavaScript initialization. */
html { font-family: var(--site-font); scroll-behavior: smooth; }
body.local-design { background-color: var(--page-background); }
[data-section], [id^="product-"] { scroll-margin-top: 13rem; }
[hidden] { display: none !important; }
:where(a, button, summary, [tabindex]):focus-visible {
  outline: 2px solid var(--brand-primary);
  outline-offset: 5px;
}
summary { list-style: none; cursor: pointer; }
summary::-webkit-details-marker { display: none; }
summary::marker { content: ""; }

/* Native details retain the source FAQ styling, with or without JS. */
.KfoLmG > .ORhlBm { height: auto; }
.KfoLmG[open] > .jko29y .wW4IYy { transform: rotate(180deg); }
.KfoLmG > .jko29y { box-sizing: border-box; }

/* Dropdown panels use the existing component classes. */
.local-dropdown > summary { user-select: none; }
.local-dropdown[open] > ._835826 {
  background-color: var(--header-link-bg-color-hover, rgba(0, 0, 0, .066));
  color: var(--header-link-color-hover, #000);
}
.local-dropdown[open] > ._835826::before { top: 1.3rem; transform: rotate(225deg); }
.local-products .QC9R8Y {
  position: absolute;
  top: calc(100% + 1rem);
  max-width: calc(100% - 6rem);
}
.local-language[open] > .Dg63SU {
  background-color: rgba(0, 0, 0, .066);
  color: #000;
}
.local-language[open] > .Dg63SU::before { top: 1.2rem; transform: rotate(225deg); }
.local-language ._0sNHm { display: block; text-decoration: none; }
.local-mobile { display: none; flex-shrink: 0; }

/* Source overlaps, without a React hover-state component. */
[data-testimonial]:hover, [data-testimonial]:focus-visible {
  z-index: 10 !important;
  transform: translateY(-1.2rem);
  box-shadow: -2rem 0 5.6rem -1.2rem rgba(10,20,40,.2), 0 3.2rem 6.4rem -2.4rem rgba(10,20,40,.18);
}

/* The source markup has Swiper containers but no inline slide widths.
   Native horizontal scrolling replaces the original app's Swiper instance. */
.SNqDJI .swiper-wrapper {
  height: auto;
  align-items: stretch;
  gap: 3rem;
  overflow-x: auto;
  overflow-y: hidden;
  scroll-snap-type: x mandatory;
  scrollbar-width: none;
  padding: 4rem 0 1rem;
  margin-top: -4rem;
  box-sizing: border-box;
  overscroll-behavior-x: contain;
  scroll-behavior: smooth;
}
.SNqDJI .swiper-wrapper::-webkit-scrollbar { display: none; }
.SNqDJI .swiper-slide {
  flex: 0 0 calc((100% - 3rem) / 2);
  width: calc((100% - 3rem) / 2);
  height: auto;
  scroll-snap-align: start;
}
.SNqDJI .BZHQNY { height: 100%; box-sizing: border-box; }
.SNqDJI .WVaW4W:empty { display: none; }
.SNqDJI .nA9KPe { position: relative; border: 0; padding: 0; }
.SNqDJI .nA9KPe::after { content: ""; position: absolute; inset: -1rem; }
.SNqDJI .nA9KPe[aria-current="true"] { background-color: var(--brand-primary); }

/* The affiliation row remains manually scrollable without JavaScript. */
.d2Vzsf { overflow-x: auto; scrollbar-width: none; }
.d2Vzsf::-webkit-scrollbar { display: none; }
.d2Vzsf.local-marquee-ready { overflow-x: hidden; }
.local-marquee-ready .RRIQG1 {
  animation: local-marquee 45s linear infinite;
  will-change: transform;
}
.local-marquee-ready:hover .RRIQG1,
.local-marquee-ready:focus-within .RRIQG1 { animation-play-state: paused; }
@keyframes local-marquee {
  from { transform: translateX(0); }
  to { transform: translateX(calc(-1 * var(--marquee-distance, 0px))); }
}

/* Local placeholder dialog: no lead forms, login or API connection. */
.local-dialog {
  width: min(64rem, calc(100% - 4rem));
  padding: 5rem;
  box-sizing: border-box;
  border: 1px solid #e7edf8;
  border-radius: 2rem;
  color: #000;
  background: #fff;
  box-shadow: 0 2rem 8rem rgba(0, 0, 0, .16);
}
.local-dialog:not([open]) { display: none; }
.local-dialog::backdrop { background: rgba(8, 18, 42, .55); backdrop-filter: blur(3px); }
.local-dialog h2 { margin: 1.6rem 0 2rem; padding-right: 4rem; font-size: 3rem; line-height: 1.1; }
.local-dialog p { font-size: 1.7rem; line-height: 1.5; color: #637381; }
.local-dialog .local-dialog-note { margin: 2rem 0 3rem; font-size: 1.3rem; }
.local-preview-label { font-size: 1.2rem; font-weight: 700; letter-spacing: .08em; color: var(--brand-primary); }
.local-dialog .qL3B81 { top: 2rem; right: 2rem; }
.local-dialog .LJ7GIf { text-decoration: none; }

@media (max-width: 1024px) {
  .ZQfMnc { display: none; }
  .local-mobile { display: block; }
  .local-mobile .KwOTv_ { z-index: -1; }
  .local-mobile > summary { position: relative; z-index: 2; }
  .local-mobile ._wx08K { padding-top: 20rem; }
  .local-mobile-products {
    display: grid;
    gap: 1.6rem;
    margin-top: 1rem;
    padding-top: 2rem;
    border-top: 1px solid #e7edf8;
    width: min(36rem, 100%);
  }
  .local-mobile[open] .pIEvV8 i:first-child { top: .8rem; width: 75%; transform: rotate(45deg); }
  .local-mobile[open] .pIEvV8 i:nth-child(2) { opacity: 0; }
  .local-mobile[open] .pIEvV8 i:last-child { top: .8rem; width: 75%; transform: rotate(-45deg); }
}
@media (max-width: 767px) {
  [data-section], [id^="product-"] { scroll-margin-top: 8rem; }
  .SNqDJI .swiper-slide { flex-basis: 100%; width: 100%; }
  .SNqDJI .swiper-wrapper { gap: 1.6rem; }
  .local-mobile ._wx08K { padding-top: 14rem; }
  [data-testimonial]:hover, [data-testimonial]:focus-visible { transform: none; }
  .local-dialog { padding: 3rem 2.4rem; }
  .local-dialog h2 { font-size: 2.4rem; }
}
@media (prefers-reduced-motion: reduce) {
  html, .SNqDJI .swiper-wrapper { scroll-behavior: auto; }
  .local-marquee-ready .RRIQG1 { animation: none; }
  .d2Vzsf.local-marquee-ready { overflow-x: auto; }
  [data-marquee-copy] { display: none; }
  *, *::before, *::after { transition-duration: .01ms !important; }
}
/* Prevent the original inline 330px CTA minimum from clipping on narrow phones. */
@media (max-width: 400px) {
  .A_63JY > .LJ7GIf { min-width: 0 !important; width: 100%; max-width: 330px; }
}
@media (max-width: 1024px) {
  body:has(.local-mobile[open]) { overflow-y: hidden; }
}
