/* NXDimension Frontend Experience Polish V9
   Shared presentation refinements only. */

/* ---------- Preloader: borderless logo + glow + timed progress ---------- */
.preloader {
  --intro-duration: 2500ms;
  background: #061d39;
  transition: opacity 340ms ease, visibility 340ms ease;
}
.preloader__backdrop::before {
  background:
    linear-gradient(180deg, rgba(4,18,42,.18), rgba(4,18,42,.58)),
    radial-gradient(circle at 50% 42%, rgba(32,166,174,.20), transparent 38%);
  opacity: 1;
}
.preloader__content {
  min-width: 0 !important;
  width: min(680px, 90vw);
  gap: .9rem;
  padding: 1.2rem !important;
  border: 0 !important;
  border-radius: 0 !important;
  background: transparent !important;
  box-shadow: none !important;
  backdrop-filter: none !important;
}
.preloader__content::before,
.preloader__content::after {
  opacity: .52;
  border-color: rgba(124,239,242,.26) !important;
}
.preloader__ring {
  opacity: .58;
  width: min(500px, 82vw);
  border-width: 1px;
}
.preloader__logo {
  width: min(420px, 74vw);
  filter:
    drop-shadow(0 0 7px rgba(255,255,255,.92))
    drop-shadow(0 0 20px rgba(68,226,233,.72))
    drop-shadow(0 20px 38px rgba(0,13,34,.48));
  animation: nxLogoGlow 2.1s ease-in-out infinite;
}
.preloader__tagline {
  color: rgba(255,255,255,.94) !important;
  text-shadow: 0 2px 15px rgba(0,0,0,.42);
}
.preloader__tagline::after { display: none; }
.preloader__progress {
  position: relative;
  z-index: 3;
  width: min(360px, 72vw);
  height: 6px;
  overflow: hidden;
  border: 1px solid rgba(255,255,255,.38);
  border-radius: 999px;
  background: rgba(2,17,38,.42);
  box-shadow: inset 0 1px 7px rgba(0,0,0,.34), 0 0 24px rgba(32,166,174,.16);
}
.preloader__progress-bar {
  display: block;
  width: 0;
  height: 100%;
  border-radius: inherit;
  background: linear-gradient(90deg, #1a7f91, #39d5dc 55%, #efffff);
  box-shadow: 0 0 16px rgba(67,226,233,.9);
  animation: nxPreloaderProgress var(--intro-duration, 2500ms) cubic-bezier(.2,.72,.25,1) forwards;
}
.preloader__status {
  position: relative;
  z-index: 3;
  margin: -.2rem 0 0;
  color: rgba(255,255,255,.76);
  font-size: .72rem;
  font-weight: 700;
  letter-spacing: .08em;
  text-transform: uppercase;
}
.preloader__skip {
  border-color: rgba(255,255,255,.32);
  background: rgba(3,24,51,.48);
  color: #fff;
  box-shadow: 0 12px 32px rgba(0,0,0,.24);
}
.preloader__skip:hover { background: rgba(6,38,71,.75); color: #fff; }
@keyframes nxLogoGlow {
  0%,100% { transform: translateY(0) scale(1); filter: drop-shadow(0 0 7px rgba(255,255,255,.92)) drop-shadow(0 0 18px rgba(68,226,233,.58)) drop-shadow(0 20px 38px rgba(0,13,34,.48)); }
  50% { transform: translateY(-2px) scale(1.012); filter: drop-shadow(0 0 9px rgba(255,255,255,1)) drop-shadow(0 0 30px rgba(68,226,233,.9)) drop-shadow(0 20px 42px rgba(0,13,34,.52)); }
}
@keyframes nxPreloaderProgress { to { width: 100%; } }

/* ---------- Header / footer logo presence and micro-effect ---------- */
.brand,
.footer-brand,
.mobile-drawer__header { position: relative; }
.brand-logo-effect {
  transition: transform 220ms ease, filter 220ms ease, opacity 220ms ease;
  transform-origin: center;
}
.brand:hover .brand-logo-effect,
.brand:focus-visible .brand-logo-effect {
  transform: translateY(-1px) scale(1.025);
  filter: drop-shadow(0 7px 14px rgba(20,140,150,.22));
}
.brand::after {
  content: "";
  position: absolute;
  left: 12%; right: 12%; bottom: -.25rem;
  height: 2px;
  border-radius: 999px;
  background: linear-gradient(90deg, transparent, rgba(32,166,174,.82), transparent);
  opacity: 0;
  transform: scaleX(.55);
  transition: opacity 220ms ease, transform 220ms ease;
}
.brand:hover::after,
.brand:focus-visible::after { opacity: 1; transform: scaleX(1); }
.footer-brand .brand-logo-effect {
  filter: brightness(0) invert(1) drop-shadow(0 0 14px rgba(76,225,231,.24));
}
.footer-brand:hover .brand-logo-effect {
  transform: translateY(-2px);
  filter: brightness(0) invert(1) drop-shadow(0 0 22px rgba(76,225,231,.48));
}

/* ---------- Remove unused controls / floating CTA leftovers ---------- */
.motion-toggle,
[data-motion-toggle],
.floating-whatsapp { display: none !important; }
.mobile-drawer__utilities { justify-content: flex-start; }

/* ---------- Compact layout rhythm: less accidental empty space ---------- */
main > .section,
main > .section-polish:not(.page-hero):not(.brand-quote):not(.social-band) {
  padding-block: clamp(3.25rem, 4.9vw, 5.25rem) !important;
}
.inner-page main > .section { padding-block: clamp(3.2rem, 4.8vw, 5.1rem) !important; }
.section-heading,
.section-heading--center { margin-bottom: clamp(1.65rem, 2.8vw, 2.7rem) !important; }
.split-editorial,
.inner-split,
.culture-layout,
.pillars-layout,
.recognition-layout,
.people-layout,
.media-layout { gap: clamp(1.5rem, 3vw, 3.1rem) !important; }
.page-hero { min-height: clamp(520px, 67vh, 700px); }
.footer-grid { gap: clamp(1.8rem, 3vw, 3.6rem); padding-block: clamp(3rem, 4.8vw, 4.6rem); }
.footer-brand img { margin-bottom: .75rem; }
.footer-brand address { margin-top: .55rem; }
.footer-bottom { padding-block: .9rem 1rem; }

/* ---------- Mobile sticky conversion CTA ---------- */
.mobile-sticky-cta { display: none; }
@media (max-width: 767px) {
  body { padding-bottom: calc(78px + env(safe-area-inset-bottom)); }
  body.is-drawer-open .mobile-sticky-cta,
  .mobile-sticky-cta.is-hidden { opacity: 0; visibility: hidden; transform: translateY(110%); pointer-events: none; }
  .mobile-sticky-cta {
    position: fixed;
    z-index: 1100;
    left: max(.55rem, env(safe-area-inset-left));
    right: max(.55rem, env(safe-area-inset-right));
    bottom: max(.55rem, env(safe-area-inset-bottom));
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: .7rem;
    min-height: 64px;
    padding: .58rem .62rem .58rem .88rem;
    border: 1px solid rgba(255,255,255,.2);
    border-radius: 1.15rem;
    background: linear-gradient(135deg, rgba(7,31,66,.96), rgba(9,79,98,.95));
    color: #fff;
    box-shadow: 0 18px 45px rgba(5,29,64,.32);
    backdrop-filter: blur(18px) saturate(1.25);
    transition: opacity 220ms ease, transform 220ms ease, visibility 220ms ease;
  }
  .mobile-sticky-cta::before {
    content: "";
    position: absolute;
    inset: 0;
    border-radius: inherit;
    pointer-events: none;
    background: linear-gradient(105deg, transparent 18%, rgba(80,228,233,.13) 48%, transparent 76%);
  }
  .mobile-sticky-cta__copy {
    position: relative;
    z-index: 1;
    display: grid;
    min-width: 0;
    line-height: 1.08;
  }
  .mobile-sticky-cta__copy span {
    margin-bottom: .2rem;
    color: #67e4e8;
    font-size: .59rem;
    font-weight: 900;
    letter-spacing: .12em;
  }
  .mobile-sticky-cta__copy strong {
    overflow: hidden;
    color: #fff;
    font-size: clamp(.78rem, 3.3vw, .93rem);
    text-overflow: ellipsis;
  }
  .mobile-sticky-cta__button {
    position: relative;
    z-index: 1;
    flex: 0 0 auto;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: .45rem;
    min-height: 46px;
    padding: .65rem .82rem;
    border: 1px solid rgba(255,255,255,.38);
    border-radius: .85rem;
    background: linear-gradient(135deg, #28d36a, #20b85b);
    color: #063719;
    box-shadow: 0 9px 22px rgba(25,190,91,.24);
    font-size: .78rem;
    font-weight: 900;
    white-space: nowrap;
  }
  .mobile-sticky-cta__button svg { width: 1.15rem; height: 1.15rem; fill: currentColor; }
  .site-footer { padding-bottom: .3rem; }
  main > .section,
  main > .section-polish:not(.page-hero):not(.brand-quote):not(.social-band),
  .inner-page main > .section { padding-block: clamp(2.7rem, 8.8vw, 3.8rem) !important; }
  .section-heading,
  .section-heading--center { margin-bottom: 1.45rem !important; }
  .page-hero { min-height: auto; }
  .footer-grid { padding-block: 2.5rem 1.7rem; gap: 1.45rem; }
  .footer-bottom { padding-bottom: 1rem; }
  .preloader__content { padding: .8rem !important; }
  .preloader__logo { width: min(320px, 75vw); }
  .preloader__progress { width: min(290px, 70vw); }
  .preloader__status { font-size: .62rem; }
}
@media (max-width: 370px) {
  .mobile-sticky-cta { left: .35rem; right: .35rem; bottom: max(.35rem, env(safe-area-inset-bottom)); padding-left: .68rem; gap: .45rem; }
  .mobile-sticky-cta__copy span { display: none; }
  .mobile-sticky-cta__copy strong { font-size: .76rem; }
  .mobile-sticky-cta__button { padding-inline: .68rem; }
}

/* ---------- Reduced motion remains automatic, with no unnecessary UI controls ---------- */
@media (prefers-reduced-motion: reduce) {
  .preloader__logo,
  .preloader__progress-bar { animation: none !important; }
  .preloader__progress-bar { width: 100%; }
  .brand-logo-effect { transition: none; }
}
