/* 4dsHub V19 — Global footer + mobile content flow */

:root{
  --v19-mobile-content-top:560px;
  --v19-footer-width:min(1480px,92vw);
}

/* Allow the document to flow to the global footer. State-specific modal/contact rules remain more specific and keep their own locks. */
html,body{
  height:auto!important;
  min-height:100svh!important;
  overflow-x:hidden!important;
  overflow-y:auto!important;
}
body{position:static!important;inset:auto!important;}


/* Retire the legacy footer visually; it remains in DOM because other scripts use it as an anchor. */
main.site > .footer{
  display:none!important;
  visibility:hidden!important;
  height:0!important;
  min-height:0!important;
  margin:0!important;
  padding:0!important;
  overflow:hidden!important;
}

/* Global footer */
.site-footer-v19{
  position:relative;
  z-index:120;
  width:100%;
  margin:0;
  overflow:hidden;
  color:#fff;
  background:
    radial-gradient(circle at 10% 0%,rgba(255,255,255,.055),transparent 28%),
    radial-gradient(circle at 88% 18%,rgba(255,255,255,.035),transparent 24%),
    linear-gradient(180deg,rgba(5,5,5,.94),rgba(0,0,0,.985));
  border-top:1px solid rgba(255,255,255,.10);
  box-shadow:0 -26px 90px rgba(0,0,0,.24);
  isolation:isolate;
}
.site-footer-v19::before{
  content:"";
  position:absolute;
  inset:0;
  z-index:-1;
  pointer-events:none;
  opacity:.38;
  background-image:
    radial-gradient(circle at 8% 24%,rgba(255,255,255,.48) 0 1px,transparent 1.4px),
    radial-gradient(circle at 24% 70%,rgba(255,255,255,.28) 0 1px,transparent 1.4px),
    radial-gradient(circle at 47% 16%,rgba(255,255,255,.36) 0 1px,transparent 1.4px),
    radial-gradient(circle at 72% 74%,rgba(255,255,255,.22) 0 1px,transparent 1.4px),
    radial-gradient(circle at 92% 30%,rgba(255,255,255,.44) 0 1px,transparent 1.4px);
}
.site-footer-v19::after{
  content:"4D";
  position:absolute;
  right:-.02em;
  bottom:-.34em;
  z-index:-1;
  font-family:Arial,Helvetica,sans-serif;
  font-size:clamp(190px,24vw,430px);
  font-weight:900;
  line-height:1;
  letter-spacing:-.12em;
  color:rgba(255,255,255,.014);
  pointer-events:none;
}

.site-footer-v19__inner{
  width:var(--v19-footer-width);
  margin:0 auto;
  padding:clamp(58px,6vw,92px) 0 26px;
}
.site-footer-v19__grid{
  display:grid;
  grid-template-columns:1.25fr .9fr 1fr 1.15fr;
  gap:clamp(34px,4vw,72px);
  align-items:start;
}
.site-footer-v19__brand-logo{
  display:block;
  width:clamp(150px,12vw,212px);
  height:auto;
  margin:0 0 22px;
  opacity:.98;
}
.site-footer-v19__eyebrow,
.site-footer-v19__heading{
  display:block;
  margin:0 0 14px;
  color:rgba(255,255,255,.42);
  font-size:11px;
  font-weight:800;
  letter-spacing:.20em;
  text-transform:uppercase;
}
.site-footer-v19__brand p,
.site-footer-v19__contact p{
  margin:0;
  color:rgba(255,255,255,.66);
  font-size:14px;
  line-height:1.55;
  max-width:360px;
}
.site-footer-v19__mail{
  display:inline-block;
  margin-top:20px;
  color:#fff;
  font-size:clamp(20px,1.65vw,28px);
  line-height:1.05;
  font-weight:800;
  letter-spacing:-.04em;
  text-decoration:none;
  border-bottom:1px solid rgba(255,255,255,.24);
  padding-bottom:6px;
  transition:border-color .22s ease,opacity .22s ease;
}
.site-footer-v19__mail:hover,
.site-footer-v19__mail:focus-visible{border-color:#fff;opacity:.84;outline:none;}

/* The phone shares the footer email typography on every page and in both languages. */
.site-footer-v19__phone{
  display:block;
  width:max-content;
  max-width:100%;
}
.site-footer-v19__phone + .site-footer-v19__mail{
  margin-top:12px;
}

.site-footer-v19__links{
  display:grid;
  gap:6px;
}
.site-footer-v19__link{
  position:relative;
  display:flex;
  align-items:center;
  min-height:40px;
  padding:0 0 0 20px;
  color:rgba(255,255,255,.72);
  font-size:14px;
  font-weight:700;
  text-decoration:none;
  border-bottom:1px solid rgba(255,255,255,.07);
  transition:color .22s ease,padding-left .22s ease,border-color .22s ease;
}
.site-footer-v19__link::before{
  content:"";
  position:absolute;
  left:0;
  top:50%;
  width:6px;
  height:6px;
  border:1px solid rgba(255,255,255,.34);
  transform:translateY(-50%) rotate(45deg);
  transition:background .22s ease,border-color .22s ease;
}
.site-footer-v19__link::after{
  content:"↗";
  margin-left:auto;
  color:rgba(255,255,255,.22);
  font-size:12px;
  transition:transform .22s ease,color .22s ease;
}
.site-footer-v19__link:hover,
.site-footer-v19__link:focus-visible{color:#fff;padding-left:24px;border-color:rgba(255,255,255,.16);outline:none;}
.site-footer-v19__link:hover::before,
.site-footer-v19__link:focus-visible::before{background:#fff;border-color:#fff;}
.site-footer-v19__link:hover::after,
.site-footer-v19__link:focus-visible::after{color:#fff;transform:translate(2px,-2px);}

.site-footer-v19__signals{
  display:grid;
  gap:10px;
  margin-top:18px;
}
.site-footer-v19__signal{
  appearance:none;
  width:100%;
  min-height:48px;
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:14px;
  padding:0 16px;
  color:#fff;
  background:rgba(255,255,255,.035);
  border:1px solid rgba(255,255,255,.11);
  border-radius:15px;
  font:inherit;
  font-size:12px;
  font-weight:800;
  letter-spacing:.05em;
  text-transform:uppercase;
  cursor:pointer;
  transition:background .22s ease,border-color .22s ease,transform .22s ease;
}
.site-footer-v19__signal span:first-child{
  display:inline-flex;
  align-items:center;
  gap:10px;
}
.site-footer-v19__signal i{
  width:8px;
  height:8px;
  border:1px solid rgba(255,255,255,.72);
  border-radius:50%;
  box-shadow:0 0 12px rgba(255,255,255,.18);
}
.site-footer-v19__signal:hover,
.site-footer-v19__signal:focus-visible{
  background:rgba(255,255,255,.075);
  border-color:rgba(255,255,255,.26);
  transform:translateY(-2px);
  outline:none;
}
.site-footer-v19__signal b{font-size:14px;color:rgba(255,255,255,.5);}

.site-footer-v19__socials{
  display:flex;
  flex-wrap:wrap;
  gap:10px;
  margin-top:20px;
}
.site-footer-v19__social{
  width:42px;
  height:42px;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  border:1px solid rgba(255,255,255,.10);
  border-radius:13px;
  background:rgba(255,255,255,.025);
  transition:transform .22s ease,border-color .22s ease,background .22s ease;
}
.site-footer-v19__social img{
  width:24px;
  height:24px;
  object-fit:contain;
  opacity:.83;
}
.site-footer-v19__social:hover,
.site-footer-v19__social:focus-visible{
  transform:translateY(-3px);
  border-color:rgba(255,255,255,.28);
  background:rgba(255,255,255,.07);
  outline:none;
}
.site-footer-v19__social:hover img,
.site-footer-v19__social:focus-visible img{opacity:1;}

.site-footer-v19__cta{
  padding:22px;
  border:1px solid rgba(255,255,255,.10);
  border-radius:22px;
  background:linear-gradient(135deg,rgba(255,255,255,.06),rgba(255,255,255,.018));
  box-shadow:inset 0 1px 0 rgba(255,255,255,.035);
}
.site-footer-v19__cta h3{
  margin:0 0 10px;
  font-size:clamp(24px,2vw,34px);
  line-height:.98;
  letter-spacing:-.055em;
}
.site-footer-v19__cta p{
  margin:0 0 18px;
  color:rgba(255,255,255,.56);
  font-size:13px;
  line-height:1.5;
}
.site-footer-v19__cta a{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  min-height:44px;
  padding:0 16px;
  border-radius:999px;
  background:#fff;
  color:#000;
  font-size:12px;
  font-weight:900;
  letter-spacing:.06em;
  text-transform:uppercase;
  text-decoration:none;
  transition:transform .22s ease,opacity .22s ease;
}
.site-footer-v19__cta a:hover,
.site-footer-v19__cta a:focus-visible{transform:translateY(-2px);opacity:.88;outline:none;}

.site-footer-v19__bottom{
  margin-top:clamp(34px,4vw,54px);
  padding-top:20px;
  border-top:1px solid rgba(255,255,255,.08);
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:20px;
  color:rgba(255,255,255,.34);
  font-size:10px;
  letter-spacing:.12em;
  text-transform:uppercase;
}
.site-footer-v19__bottom strong{font-weight:800;color:rgba(255,255,255,.52);}

/* CONTACT has its own stable scrolling host; when the footer is moved there, keep it in natural flow. */
#contact-stable-v7 > .site-footer-v19{
  position:relative!important;
  width:100%!important;
  margin-top:34px!important;
  flex:none!important;
}

/* MOBILE FLOW: remove all legacy runway/padding hacks and let content begin right after the real menu. */
@media(max-width:900px){
  body.home-reference-mode:not(.concept-mode):not(.services-mode):not(.contact-mode):not(.power-mode):not(.brand-universe-mode):not(.form-mode) .site,
  body.home-reference-mode.concept-mode:not(.contact-stable-v7-active) .site{
    min-height:100svh!important;
    height:auto!important;
    padding-top:0!important;
    padding-bottom:0!important;
    overflow:visible!important;
  }

  body.home-reference-mode.concept-mode:not(.contact-stable-v7-active) .concept-pages{
    display:block!important;
    padding-top:calc(var(--v19-mobile-content-top) + 10px)!important;
    margin-top:0!important;
    min-height:0!important;
  }

  body.home-reference-mode.concept-mode:not(.contact-stable-v7-active) .concept-page.is-active{
    margin-top:0!important;
    padding-top:0!important;
  }

  body.home-reference-mode:not(.concept-mode):not(.services-mode):not(.contact-mode):not(.power-mode):not(.brand-universe-mode):not(.form-mode) .home-game-stage-v18{
    position:relative!important;
    left:auto!important;
    top:auto!important;
    margin:calc(var(--v19-mobile-content-top) + 12px) auto 42px!important;
    transform:none!important;
  }

  body.home-reference-mode.power-mode .power-stage{
    position:relative!important;
    top:auto!important;
    margin-top:calc(var(--v19-mobile-content-top) + 10px)!important;
  }

  .site-footer-v19__inner{
    width:min(92vw,720px);
    padding:44px 0 22px;
  }
  .site-footer-v19__grid{
    grid-template-columns:1fr 1fr;
    gap:34px 24px;
  }
  .site-footer-v19__brand{grid-column:1 / -1;}
  .site-footer-v19__brand-logo{width:156px;margin-bottom:16px;}
  .site-footer-v19__cta{grid-column:1 / -1;}
}

@media(max-width:560px){
  .site-footer-v19__inner{width:min(90vw,430px);padding-top:36px;}
  .site-footer-v19__grid{grid-template-columns:1fr;gap:30px;}
  .site-footer-v19__brand,
  .site-footer-v19__cta{grid-column:auto;}
  .site-footer-v19__links{grid-template-columns:1fr 1fr;column-gap:14px;}
  .site-footer-v19__link{font-size:12px;min-height:38px;padding-left:16px;}
  .site-footer-v19__mail{font-size:22px;}
  .site-footer-v19__social{width:40px;height:40px;}
  .site-footer-v19__bottom{align-items:flex-start;flex-direction:column;gap:8px;line-height:1.45;}
  .site-footer-v19::after{font-size:220px;right:-28px;bottom:-48px;}
}
