/* Supporting grid surfaces share the hero/footer linework without moving content. */
.naxit-grid-surface {
  --component-grid-ink: 255,255,255;
  --component-grid-column: calc(100% / 6);
  --component-grid-row: clamp(72px,9vw,140px);
  position: relative;
  isolation: isolate;
  overflow: hidden;
}
.naxit-grid-surface > :not(.naxit-component-grid,.naxit-grid-viewport) { position: relative; z-index: 1; }
.naxit-component-grid {
  position: absolute;
  z-index: 0;
  inset: 0;
  pointer-events: none;
  background-image: linear-gradient(rgba(var(--component-grid-ink),.08) 1px,transparent 1px),linear-gradient(90deg,rgba(var(--component-grid-ink),.08) 1px,transparent 1px);
  background-size: var(--component-grid-column) var(--component-grid-row);
  -webkit-mask-image: linear-gradient(90deg,transparent,#000 40%,#000 88%,transparent);
  mask-image: linear-gradient(90deg,transparent,#000 40%,#000 88%,transparent);
}
.naxit-component-grid::after {
  content: "";
  position: absolute;
  inset: -30% -15%;
  background: radial-gradient(ellipse at 65% 50%,rgba(134,181,194,.28),transparent 58%),radial-gradient(ellipse at 30% 65%,rgba(49,121,141,.32),transparent 62%);
  opacity: .45;
  transform: translate3d(-5%,2%,0);
  animation: naxit-component-grid-light 16s ease-in-out infinite alternate;
  animation-play-state: paused;
  transition: opacity .32s ease;
}
.naxit-grid-surface.naxit-motion-active .naxit-component-grid::after { animation-play-state: running; }
.naxit-page-hidden .naxit-grid-surface .naxit-component-grid::after { animation-play-state: paused; }
.naxit-grid-surface:focus-within .naxit-component-grid::after { opacity: .9; }
@media (hover: hover) {
  .naxit-grid-surface:hover .naxit-component-grid::after { opacity: .9; }
}
.naxit-component-grid > span { position: absolute; width: 12px; height: 12px; color: rgba(var(--component-grid-ink),.45); transform: translate(-50%,-50%); }
.naxit-component-grid > span:first-child { left: calc(var(--component-grid-column) * 2); top: var(--component-grid-row); }
.naxit-component-grid > span:nth-child(2) { left: calc(var(--component-grid-column) * 4); top: calc(var(--component-grid-row) * 2); }
.naxit-component-grid > span::before,.naxit-component-grid > span::after { content: ""; position: absolute; background: currentColor; }
.naxit-component-grid > span::before { top: 5.5px; left: 0; width: 12px; height: 1px; }
.naxit-component-grid > span::after { top: 0; left: 5.5px; width: 1px; height: 12px; }
@keyframes naxit-component-grid-light { to { transform: translate3d(6%,-3%,0) scale(1.06); } }

.naxit-team-content { display: grid; grid-template-columns: minmax(0,1fr) minmax(220px,.55fr); align-items: center; gap: clamp(28px,3vw,48px); width: 100%; min-width: 0; }
.naxit-team-bio { min-width: 0; }
.naxit-home-page .naxit-team-focus { --component-grid-column: 72px; --component-grid-row: 72px; align-self: stretch; display: flex; flex-direction: column; justify-content: center; padding: 24px 0 24px 32px; }
.naxit-team-focus > .naxit-grid-viewport { -webkit-mask-image: radial-gradient(ellipse closest-side,#000 38%,transparent 100%); mask-image: radial-gradient(ellipse closest-side,#000 38%,transparent 100%); }
.naxit-team-focus > .naxit-grid-viewport > .naxit-component-grid { -webkit-mask-image: none; mask-image: none; }
.naxit-team-focus h4 { margin: 0 0 20px; color: var(--naxit-color-white); font-size: 18px; font-weight: 500; line-height: 1.3; }
.naxit-team-focus ul { display: grid; gap: 16px; margin: 0; padding: 0; list-style: none; }
.naxit-team-focus li { display: flex; align-items: baseline; gap: 10px; margin: 0; color: var(--naxit-color-line); font-size: 16px; line-height: 1.5; }
.naxit-team-focus li::before { content: ""; flex: 0 0 4px; width: 4px; height: 4px; border-radius: 50%; background: var(--naxit-secondary); }
@media (max-width: 1199px) {
  .naxit-team-content { grid-template-columns: minmax(0,1fr); gap: 28px; }
  .naxit-home-page .naxit-team-focus { padding: 28px 0 0; border-left: 0; border-top: 1px solid rgba(255,255,255,.16); }
  .naxit-team-focus ul { grid-template-columns: repeat(2,minmax(0,1fr)); gap: 12px 24px; }
}
@media (max-width: 479px) { .naxit-team-focus ul { grid-template-columns: minmax(0,1fr); } }
@media (prefers-reduced-motion: reduce) { .naxit-component-grid::after { animation: none; transition: none; } }

/* Only the decoration enters perspective; copy and controls keep their plane. */
.naxit-depth-surface {
  --component-grid-column: calc(100% / 6);
  --component-grid-row: clamp(72px,9vw,140px);
  --component-grid-ink: 255,255,255;
  --grid-depth-base: 12deg;
}
.naxit-grid-viewport { position: absolute; z-index: 0; inset: 0; overflow: hidden; pointer-events: none; perspective: 1100px; perspective-origin: 50% 50%; }
.naxit-grid-viewport > .naxit-component-grid {
  inset: -8% -5%;
  transform: translate3d(var(--grid-shift-x,0px),var(--grid-shift-y,0px),0) rotateX(calc(var(--grid-depth-base) + var(--grid-tilt-x,0deg))) rotateY(var(--grid-tilt-y,0deg));
  transform-origin: 50% 55%;
}
.naxit-depth-surface[data-depth-motion="moving"] .naxit-grid-viewport > .naxit-component-grid { will-change: transform; }
.naxit-grid-viewport > .naxit-component-grid::before {
  content: ""; position: absolute; inset: 0; opacity: var(--grid-light,0);
  background-image: linear-gradient(rgba(var(--component-grid-ink),.34) 1px,transparent 1px),linear-gradient(90deg,rgba(var(--component-grid-ink),.34) 1px,transparent 1px);
  background-size: var(--component-grid-column) var(--component-grid-row);
  -webkit-mask-image: radial-gradient(ellipse 330px 270px at var(--grid-pointer-x,50%) var(--grid-pointer-y,50%),#000,transparent 80%);
  mask-image: radial-gradient(ellipse 330px 270px at var(--grid-pointer-x,50%) var(--grid-pointer-y,50%),#000,transparent 80%);
}
.naxit-grid-surface--light,.naxit-booking-section--light { --component-grid-ink: 49,121,141; }
.naxit-footer-stage { position: relative; isolation: isolate; --naxit-footer-grid-row: var(--component-grid-row); }
body .naxit-footer-stage.naxit-depth-surface { background: var(--naxit-canvas); }
.naxit-home-page .naxit-footer-stage { --naxit-footer-stage-start: var(--naxit-footer-base); }
body .naxit-footer-stage :is(.footer-hero,.footer-section) { background: transparent; }
body .naxit-footer-stage .footer-hero { height: auto; min-height: 0; background: linear-gradient(180deg,var(--naxit-footer-stage-start,var(--naxit-footer-top)),var(--naxit-canvas)); }
body .naxit-footer-stage .bg-blur-block-footer { height: 100%; bottom: 0; opacity: .2; }
body .naxit-footer-stage .footer-hero-logo { inset: auto; }
.naxit-footer-stage .footer-hero-logo .wrap { padding-bottom: 0; }
.naxit-grid-viewport--footer { z-index: 2; }
body .naxit-footer-stage .footer-hero { z-index: auto; isolation: auto; }
body .naxit-footer-stage .footer-hero::before { display: none; }
body .naxit-footer-stage .footer-hero .footer-hero-logo { z-index: 3; }
body .naxit-footer-stage .footer-section { z-index: auto; }
.naxit-footer-stage .footer-wrapper { position: relative; z-index: 3; }
.naxit-component-grid--footer { -webkit-mask-image: linear-gradient(180deg,transparent,#000 var(--component-grid-row)); mask-image: linear-gradient(180deg,transparent,#000 var(--component-grid-row)); }
.naxit-component-grid--footer::after { display: none; }
.naxit-component-grid--footer .footer-grid-stars { -webkit-mask-image: none; mask-image: none; }
.naxit-home-page .naxit-team-focus { --component-grid-column: 72px; --component-grid-row: 72px; --grid-depth-base: 8deg; }
.naxit-depth-sparks { position: absolute; inset: 0; }
.naxit-depth-sparks span { position: absolute; left: 0; top: 0; width: 10px; height: 10px; color: rgba(var(--component-grid-ink),.75); opacity: var(--grid-light,0); }
.naxit-depth-sparks span:nth-child(2) { width: 7px; height: 7px; opacity: calc(var(--grid-light,0) * .5); }
.naxit-depth-sparks span:nth-child(3) { width: 4px; height: 4px; opacity: calc(var(--grid-light,0) * .25); }
.naxit-depth-sparks span::before,.naxit-depth-sparks span::after { content: ""; position: absolute; background: currentColor; }
.naxit-depth-sparks span::before { left: 0; top: calc(50% - .5px); width: 100%; height: 1px; }
.naxit-depth-sparks span::after { top: 0; left: calc(50% - .5px); height: 100%; width: 1px; }

body .naxit-booking-section .primary-button { min-height: 60px; padding: 8px 8px 8px 24px; gap: 24px; font-size: 16px; font-weight: 700; border-color: rgba(255,255,255,.55); }
body .naxit-booking-section .primary-button .button-arrow { width: 42px; height: 42px; }
.naxit-home-page .naxit-booking-section .primary-button { --naxit-button-base: linear-gradient(110deg,var(--naxit-primary),#265b6a 75%,var(--naxit-primary)); min-height: 76px; min-width: 270px; padding: 10px 10px 10px 30px; gap: 30px; font-size: 20px; }
.naxit-home-page .naxit-booking-section .primary-button { background-image: none !important; background-color: var(--naxit-primary); transition: background-color .22s ease,border-color .22s ease !important; }
.naxit-home-page .naxit-booking-section .primary-button:is(:hover,:focus-visible) { background-color: #265b6a; }
.naxit-home-page .naxit-booking-section .primary-button .button-arrow { width: 54px; height: 54px; flex-basis: 54px; }
.naxit-home-page .naxit-booking-section .primary-button .button-arrow img { width: 22px; height: 22px; }
body .navbar .primary-button,body .naxit-subpage-actions .primary-button,body .product-detail-hero .product-button:not(.product-button--secondary) { font-weight: 700; }
@media (hover: none),(pointer: coarse),(prefers-reduced-motion: reduce) {
  .naxit-grid-viewport > .naxit-component-grid { inset: 0; transform: none; }
  .naxit-grid-viewport > .naxit-component-grid::before,.naxit-depth-sparks { display: none; }
}

/* Restore the original grid-line light streaks inside the perspective planes. */
.naxit-grid-streaks {
  --streak-column: var(--component-grid-column,calc(100% / 6));
  --streak-row: var(--component-grid-row,var(--naxit-footer-grid-row));
  --streak-length: 70px;
  position: absolute; z-index: 1; inset: 0; overflow: hidden; pointer-events: none;
}
.naxit-grid-streaks > span {
  position: absolute; top: 0; width: 1px; height: 100%;
  background-image: linear-gradient(180deg,transparent,rgba(var(--component-grid-ink,255,255,255),.9));
  background-size: 1px var(--streak-length); background-repeat: no-repeat;
  animation: naxit-grid-streak-y 5s linear infinite;
  animation-play-state: paused;
}
.naxit-grid-streaks > span:nth-child(1) { left: var(--streak-column); animation-delay: -1s; }
.naxit-grid-streaks > span:nth-child(2) { left: calc(var(--streak-column) * 2); animation-duration: 6.5s; animation-delay: -4s; }
.naxit-grid-streaks > span:nth-child(3) { left: calc(var(--streak-column) * 3); animation-duration: 7s; animation-delay: -2s; }
.naxit-grid-streaks > span:nth-child(4) { left: calc(var(--streak-column) * 4); animation-duration: 5.5s; animation-delay: -5s; }
.naxit-grid-streaks > span:nth-child(5) { left: calc(var(--streak-column) * 5); animation-duration: 8s; animation-delay: -3s; }
.naxit-grid-streaks > span:nth-child(n+6) {
  left: 0; top: var(--streak-row); width: 100%; height: 1px;
  background-image: linear-gradient(90deg,transparent,rgba(var(--component-grid-ink,255,255,255),.9));
  background-size: var(--streak-length) 1px;
  animation-name: naxit-grid-streak-x; animation-duration: 8.5s; animation-delay: -2.5s;
}
.naxit-grid-streaks > span:nth-child(7) {
  top: calc(var(--streak-row) * 2);
  background-image: linear-gradient(270deg,transparent,rgba(var(--component-grid-ink,255,255,255),.9));
  animation-duration: 10s; animation-delay: -4.5s; animation-direction: reverse;
}
.naxit-hero-grid-plane .naxit-grid-streaks > span:nth-child(6) { top: calc(var(--streak-row) * 2); }
.naxit-hero-grid-plane .naxit-grid-streaks > span:nth-child(7) { top: calc(var(--streak-row) * 4); }
.naxit-component-grid--footer .naxit-grid-streaks > span:nth-child(6) { top: calc(var(--streak-row) * 4); }
.naxit-component-grid--footer .naxit-grid-streaks > span:nth-child(7) { top: calc(var(--streak-row) * 7); }
.naxit-motion-active .naxit-grid-streaks > span { animation-play-state: running; }
.naxit-page-hidden .naxit-grid-streaks > span { animation-play-state: paused; }
@keyframes naxit-grid-streak-y { from { transform: translate3d(0,calc(-1 * var(--streak-length)),0); } to { transform: translate3d(0,100%,0); } }
@keyframes naxit-grid-streak-x { from { transform: translate3d(calc(-1 * var(--streak-length)),0,0); } to { transform: translate3d(100%,0,0); } }
@media (max-width: 767px) { .naxit-grid-streaks { --streak-length: 50px; } }
@media (prefers-reduced-motion: reduce) { .naxit-grid-streaks { display: none; } .naxit-grid-streaks > span:nth-child(n) { animation: none; } }

/* A quiet autonomous tilt keeps touch grids alive without moving the foreground. */
@keyframes naxit-grid-mobile-drift {
  from { transform: translate3d(-2px,-3px,0) rotateX(3deg) rotateY(-.3deg); }
  to { transform: translate3d(2px,3px,0) rotateX(4deg) rotateY(.3deg); }
}
@media (hover: none),(pointer: coarse) {
  .naxit-hero-grid-plane,.naxit-grid-viewport > .naxit-component-grid {
    inset: -16px;
    transform: translate3d(-2px,-3px,0) rotateX(3deg) rotateY(-.3deg);
    animation: naxit-grid-mobile-drift 14s ease-in-out infinite alternate;
    animation-play-state: paused;
  }
  .naxit-motion-active .naxit-hero-grid-plane,.naxit-motion-active .naxit-grid-viewport > .naxit-component-grid { animation-play-state: running; }
  .naxit-page-hidden .naxit-hero-grid-plane,.naxit-page-hidden .naxit-grid-viewport > .naxit-component-grid { animation-play-state: paused; }
}
@media (prefers-reduced-motion: reduce) {
  .naxit-hero-grid-plane,.naxit-grid-viewport > .naxit-component-grid { inset: 0; transform: none; animation: none; }
}

/* Keep the mobile contact actions consistent with the other contact links. */
.naxit-home-page .naxit-team-details .naxit-save-contact { justify-content: flex-start; border-color: #303039; background: #15151b; color: var(--naxit-color-white); font-weight: 400; }
.naxit-home-page .naxit-team-details .naxit-save-contact:is(:hover,:focus-visible) { background: #1b1b22; border-color: var(--naxit-primary); }
.naxit-save-contact svg { flex: 0 0 18px; }
.naxit-home-page .products-teaser-head .products-teaser-cta { width: 100%; margin-top: 24px; }
.naxit-home-page .products-teaser-preview { min-width: 0; width: 100%; max-width: 330px; }
.products-teaser-preview > h3 { display: none; }
.products-teaser-preview .reference-phone { width: 100%; max-width: 330px; }
.product-detail-page .product-detail-hero .product-actions { width: auto; justify-content: flex-start; }
.product-detail-page .product-detail-hero .product-actions .product-button { width: auto; flex: 0 0 auto; }
@media (max-width: 767px) {
  .naxit-home-page .products-teaser-head .products-teaser-cta { display: none; }
  .naxit-team-focus > .naxit-grid-viewport { display: none; }
  .naxit-home-page .naxit-team-content { gap: 24px; }
  .naxit-home-page .naxit-team-focus { padding-top: 24px; }
  .naxit-team-focus h4 { margin-bottom: 16px; }
  .naxit-home-page .products-teaser-preview { justify-self: center; }
  .products-teaser-preview > h3 { display: block; margin: 0 0 24px; color: var(--naxit-color-ink); font-size: var(--naxit-section-heading-size); font-weight: 400; line-height: 1.04; letter-spacing: -.03em; text-align: center; text-wrap: balance; }
  .products-teaser-preview > h3 strong { color: var(--naxit-primary); font-weight: 700; }
}
