/* EquipeK — mobile stability and scroll performance fixes
   Safe to load after assets/css/style.css. It does not replace your main design. */

*,
*::before,
*::after {
  box-sizing: border-box;
}

html,
body {
  max-width: 100%;
  overflow-x: clip;
}

img,
svg,
video,
canvas,
iframe {
  max-width: 100%;
}

img,
iframe {
  display: block;
}

/* Anchors below sticky header */
section,
header[id] {
  scroll-margin-top: 96px;
}

/* AOS can cause visible jumps/jank on low-power mobile devices. */
[data-aos] {
  backface-visibility: hidden;
}

@media (prefers-reduced-motion: reduce) {
  *,
  *::before,
  *::after {
    animation-duration: 0.01ms !important;
    animation-iteration-count: 1 !important;
    scroll-behavior: auto !important;
    transition-duration: 0.01ms !important;
  }
}

@media (max-width: 767.98px), (prefers-reduced-motion: reduce) {
  [data-aos],
  [data-aos].aos-animate {
    opacity: 1 !important;
    transform: none !important;
    transition: none !important;
  }
}

/* Horizontal controls must never widen the viewport on mobile. */
.hero-actions,
.nav-tabs,
.footer-links,
.ek-mini,
.top-inner {
  min-width: 0;
}

.hero-actions,
.nav-tabs {
  max-width: 100%;
  overflow-x: auto;
  overflow-y: hidden;
  -webkit-overflow-scrolling: touch;
  scrollbar-width: none;
}

.hero-actions::-webkit-scrollbar,
.nav-tabs::-webkit-scrollbar {
  display: none;
}

/* Floating quick-action buttons: fixed, compact and safe-area aware. */
.fab-stack {
  position: fixed;
  right: max(12px, env(safe-area-inset-right));
  bottom: calc(12px + env(safe-area-inset-bottom));
  z-index: 1040;
  display: flex;
  flex-direction: column;
  align-items: flex-end;
  gap: 10px;
  max-width: calc(100vw - 24px);
  pointer-events: none;
  transform: translateZ(0);
}

.fab-stack .fab {
  pointer-events: auto;
  max-width: 100%;
  white-space: nowrap;
  overflow: hidden;
  transform: translateZ(0);
}

@media (max-width: 575.98px) {
  body {
    padding-bottom: calc(72px + env(safe-area-inset-bottom));
  }

  .fab-stack {
    right: 10px;
    bottom: calc(10px + env(safe-area-inset-bottom));
    gap: 8px;
  }

  .fab-stack .fab {
    inline-size: 46px;
    block-size: 46px;
    padding: 0 !important;
    border-radius: 999px;
    justify-content: center;
  }

  .fab-stack .fab .label {
    position: absolute !important;
    inline-size: 1px !important;
    block-size: 1px !important;
    padding: 0 !important;
    margin: -1px !important;
    overflow: hidden !important;
    clip: rect(0, 0, 0, 0) !important;
    white-space: nowrap !important;
    border: 0 !important;
  }
}

/* Cookie/privacy modal: always contained inside small screens. */
.cookie-backdrop {
  position: fixed;
  inset: 0;
  z-index: 1050;
}

.cookie-modal {
  position: fixed;
  inset: 0;
  z-index: 1060;
  display: grid;
  place-items: center;
  padding: max(12px, env(safe-area-inset-top)) max(12px, env(safe-area-inset-right)) max(12px, env(safe-area-inset-bottom)) max(12px, env(safe-area-inset-left));
  overflow-y: auto;
  overflow-x: hidden;
  overscroll-behavior: contain;
}

.cookie-backdrop.d-none,
.cookie-modal.d-none {
  display: none !important;
}

.cookie-card {
  inline-size: min(640px, calc(100vw - 24px));
  max-block-size: calc(100dvh - 24px);
  overflow-y: auto;
  overflow-x: hidden;
  overflow-wrap: anywhere;
  -webkit-overflow-scrolling: touch;
}

.cookie-head,
.cookie-actions {
  min-width: 0;
}

.cookie-body,
.cookie-sub,
.cookie-note,
.cookie-link {
  overflow-wrap: anywhere;
  word-break: normal;
}

.cookie-actions {
  display: flex;
  flex-wrap: wrap;
  gap: .75rem;
  justify-content: flex-end;
}

@media (max-width: 575.98px) {
  .cookie-modal {
    place-items: end center;
    padding: 10px;
  }

  .cookie-card {
    inline-size: 100%;
    max-block-size: calc(100dvh - 20px);
    border-radius: 20px;
  }

  .cookie-actions {
    flex-direction: column-reverse;
  }

  .cookie-actions .btn {
    inline-size: 100%;
  }
}

/* Generic legal/privacy page rescue styles.
   These help mipoly.html if it uses common legal wrappers or Bootstrap containers. */
.legal-page,
.privacy-page,
.policy-page,
main.legal,
main.privacy,
main.policy,
body.legal .container,
body.privacy .container,
body.policy .container {
  width: min(100% - 24px, 960px);
  max-width: 960px;
  margin-inline: auto;
  overflow-wrap: anywhere;
}

.legal-page table,
.privacy-page table,
.policy-page table,
main.legal table,
main.privacy table,
main.policy table {
  display: block;
  max-width: 100%;
  overflow-x: auto;
  -webkit-overflow-scrolling: touch;
}

.legal-page pre,
.privacy-page pre,
.policy-page pre,
.legal-page code,
.privacy-page code,
.policy-page code {
  white-space: pre-wrap;
  overflow-wrap: anywhere;
}






/* =========================
   HEADER BRAND PRO LOGOOO
   ========================= */

.ek-brand-pro{
  display:flex;
  align-items:center;
  gap:14px;
  text-decoration:none;
  min-width:0;
}

.ek-brand-pro:hover{
  text-decoration:none;
}

.ek-mark-pro{
  display:flex;
  align-items:center;
  justify-content:center;
  width:68px;
  height:68px;
  flex:0 0 68px;
}

.ek-logo-orbs{
  width:100%;
  height:100%;
  display:block;
}

.ek-brand-copy{
  display:flex;
  flex-direction:column;
  justify-content:center;
  min-width:0;
  line-height:1;
}

.ek-brand-copy strong{
  display:block;
  margin:0;
  color:#ffffff;
  font-size:2rem;
  font-weight:800;
  line-height:1;
  letter-spacing:-0.03em;
}

.ek-brand-copy small{
  display:block;
  margin-top:7px;
  color:rgba(255,255,255,.72);
  font-size:1rem;
  font-weight:600;
  line-height:1.15;
  letter-spacing:0.01em;
  white-space:nowrap;
}

.ek-brand-pro:hover .ek-mark-pro{
  transform:translateY(-1px) scale(1.02);
  transition:transform .25s ease;
}

.ek-brand-pro:hover .ek-brand-copy strong{
  opacity:1;
}

.ek-brand-pro:hover .ek-brand-copy small{
  color:rgba(255,255,255,.88);
  transition:color .25s ease;
}

/* Tablet */
@media (max-width: 991.98px){
  .ek-mark-pro{
    width:60px;
    height:60px;
    flex:0 0 60px;
  }

  .ek-brand-copy strong{
    font-size:1.65rem;
  }

  .ek-brand-copy small{
    font-size:.92rem;
    margin-top:6px;
  }
}

/* Mobile */
@media (max-width: 575.98px){
  .ek-brand-pro{
    gap:10px;
  }

  .ek-mark-pro{
    width:52px;
    height:52px;
    flex:0 0 52px;
  }

  .ek-brand-copy strong{
    font-size:1.28rem;
  }

  .ek-brand-copy small{
    font-size:.78rem;
    margin-top:4px;
  }
}