/* AJ Nodes brand lock — primary (#4fbce6) + black (#000) only */
:root,
.elementor-kit-6 {
  --color-primary: #4fbce6;
  --color-secondary: #000000;
  --color-black: #000000;
  --e-global-color-primary: #4fbce6;
  --e-global-color-secondary: #000000;
  --e-global-color-text: rgba(0, 0, 0, 0.58);
  --e-global-color-accent: #4fbce6;

  --wp--preset--color--black: #000000;
  --wp--preset--color--cyan-bluish-gray: rgba(0, 0, 0, 0.45);
  --wp--preset--color--white: #ffffff;
  --wp--preset--color--pale-pink: #4fbce6;
  --wp--preset--color--vivid-red: #000000;
  --wp--preset--color--luminous-vivid-orange: #4fbce6;
  --wp--preset--color--luminous-vivid-amber: #4fbce6;
  --wp--preset--color--light-green-cyan: #4fbce6;
  --wp--preset--color--vivid-green-cyan: #4fbce6;
  --wp--preset--color--pale-cyan-blue: #4fbce6;
  --wp--preset--color--vivid-cyan-blue: #4fbce6;
  --wp--preset--color--vivid-purple: #000000;

  --wp--preset--gradient--vivid-cyan-blue-to-vivid-purple: linear-gradient(
    135deg,
    #4fbce6 0%,
    #000000 100%
  );
  --wp--preset--gradient--light-green-cyan-to-vivid-green-cyan: linear-gradient(
    135deg,
    #4fbce6 0%,
    #000000 100%
  );
  --wp--preset--gradient--luminous-vivid-amber-to-luminous-vivid-orange: linear-gradient(
    135deg,
    #4fbce6 0%,
    #000000 100%
  );
  --wp--preset--gradient--luminous-vivid-orange-to-vivid-red: linear-gradient(
    135deg,
    #4fbce6 0%,
    #000000 100%
  );
  --wp--preset--gradient--very-light-gray-to-cyan-bluish-gray: linear-gradient(
    135deg,
    #f3f4f6 0%,
    rgba(0, 0, 0, 0.35) 100%
  );
  --wp--preset--gradient--cool-to-warm-spectrum: linear-gradient(
    135deg,
    #4fbce6 0%,
    #000000 100%
  );
  --wp--preset--gradient--blush-light-purple: linear-gradient(
    135deg,
    #e8f6fb 0%,
    #4fbce6 100%
  );
  --wp--preset--gradient--blush-bordeaux: linear-gradient(
    135deg,
    #4fbce6 0%,
    #000000 100%
  );
  --wp--preset--gradient--luminous-dusk: linear-gradient(
    135deg,
    #4fbce6 0%,
    #000000 100%
  );
  --wp--preset--gradient--pale-ocean: linear-gradient(
    135deg,
    #e8f6fb 0%,
    #4fbce6 100%
  );
  --wp--preset--gradient--electric-grass: linear-gradient(
    135deg,
    #4fbce6 0%,
    #000000 100%
  );
  --wp--preset--gradient--midnight: linear-gradient(
    135deg,
    #000000 0%,
    #4fbce6 100%
  );
}

.under-line-btn::after {
  background: rgba(0, 0, 0, 0.18) !important;
}

.bg-dark-border-radious {
  background: linear-gradient(
      0deg,
      rgba(0, 0, 0, 0.82) 0%,
      rgba(0, 0, 0, 0.82) 100%
    ),
    var(--color-primary) !important;
}

.bg-dark-border-radious .title-style-one-left .pre {
  color: var(--color-primary) !important;
}

.wpcf7-not-valid,
.wpcf7-response-output.wpcf7-validation-errors,
.wpcf7 form .wpcf7-not-valid-tip,
span.wpcf7-not-valid-tip {
  color: var(--color-black) !important;
  border-color: var(--color-black) !important;
}

.elementor-social-icon {
  background-color: var(--color-black) !important;
  color: #fff !important;
}

.elementor-social-icon:hover {
  background-color: var(--color-primary) !important;
  color: var(--color-black) !important;
}

/* Buttons — solid black */
.wpr-btn,
.wpr-btn.btn-primary,
a.wpr-btn.btn-primary {
  background: radial-gradient(
      62.56% 62.56% at 28.14% -10.42%,
      rgba(255, 255, 255, 0.12) 0%,
      rgba(255, 255, 255, 0) 100%
    ),
    linear-gradient(137.66deg, #1a1a1a 21.13%, #000000 80.53%) !important;
  color: #fff !important;
  background-color: #000 !important;
}

.wpr-btn.btn-white {
  background: #fff !important;
  background-color: #fff !important;
  color: #000 !important;
}

.btn-primary {
  background-color: #000 !important;
  border-color: #000 !important;
  color: #fff !important;
}

.btn-primary:hover,
.btn-primary:focus {
  background-color: #000 !important;
  border-color: #000 !important;
  color: #fff !important;
}

/* with-icon buttons — nodes pulse in place (do NOT expand over label) */
.wpr-btn.with-icon.ajn-btn-nodes-trigger:hover .icon,
.wpr-btn.with-icon.ajn-btn-nodes-trigger:focus-visible .icon {
  width: 52px !important;
  justify-content: center;
  gap: 0;
  padding: 0 16px;
  box-shadow: 4px 8px 2px rgba(0, 0, 0, 0.12), inset 0px -2px 0.5px #3a9fc4,
    inset 0px 1px 0px #ffffff;
}

.wpr-btn.with-icon.ajn-btn-nodes-trigger:hover .icon span img {
  animation: none !important;
  opacity: 1 !important;
}

.wpr-btn.with-icon .icon.ajn-btn-nodes {
  display: flex !important;
  align-items: center;
  justify-content: center;
  overflow: visible;
  position: relative;
}

.ajn-btn-nodes__grid {
  position: relative;
  z-index: 2;
  display: grid;
  grid-template-columns: 8px 8px;
  grid-template-rows: 8px 8px;
  gap: 4px;
  transition: transform 0.4s cubic-bezier(0.34, 1.4, 0.64, 1), gap 0.4s ease;
}

.ajn-btn-nodes__grid i {
  display: block;
  width: 8px;
  height: 8px;
  border-radius: 2px;
  background: #000;
  transform-origin: center;
  animation: ajn-node-idle 2.4s ease-in-out infinite;
}

.ajn-btn-nodes__grid i:nth-child(1) {
  animation-delay: 0s;
}
.ajn-btn-nodes__grid i:nth-child(2) {
  animation-delay: 0.15s;
}
.ajn-btn-nodes__grid i:nth-child(3) {
  animation-delay: 0.3s;
}
.ajn-btn-nodes__grid i:nth-child(4) {
  animation-delay: 0.45s;
}

.ajn-btn-nodes__ripple {
  position: absolute;
  left: 50%;
  top: 50%;
  width: 10px;
  height: 10px;
  margin: -5px 0 0 -5px;
  border: 1.5px solid rgba(0, 0, 0, 0.4);
  border-radius: 50%;
  opacity: 0;
  pointer-events: none;
  z-index: 1;
}

.wpr-btn.ajn-btn-nodes-trigger:hover .ajn-btn-nodes__grid,
.wpr-btn.ajn-btn-nodes-trigger:focus-visible .ajn-btn-nodes__grid {
  transform: scale(1.12);
  gap: 5px;
}

.wpr-btn.ajn-btn-nodes-trigger:hover .ajn-btn-nodes__grid i,
.wpr-btn.ajn-btn-nodes-trigger:focus-visible .ajn-btn-nodes__grid i {
  animation: ajn-node-hover 0.65s ease-in-out infinite;
  background: #000;
}

.wpr-btn.ajn-btn-nodes-trigger:hover .ajn-btn-nodes__grid i:nth-child(1),
.wpr-btn.ajn-btn-nodes-trigger:focus-visible .ajn-btn-nodes__grid i:nth-child(1) {
  animation-delay: 0s;
}
.wpr-btn.ajn-btn-nodes-trigger:hover .ajn-btn-nodes__grid i:nth-child(2),
.wpr-btn.ajn-btn-nodes-trigger:focus-visible .ajn-btn-nodes__grid i:nth-child(2) {
  animation-delay: 0.1s;
}
.wpr-btn.ajn-btn-nodes-trigger:hover .ajn-btn-nodes__grid i:nth-child(3),
.wpr-btn.ajn-btn-nodes-trigger:focus-visible .ajn-btn-nodes__grid i:nth-child(3) {
  animation-delay: 0.2s;
}
.wpr-btn.ajn-btn-nodes-trigger:hover .ajn-btn-nodes__grid i:nth-child(4),
.wpr-btn.ajn-btn-nodes-trigger:focus-visible .ajn-btn-nodes__grid i:nth-child(4) {
  animation-delay: 0.3s;
}

.wpr-btn.ajn-btn-nodes-trigger:hover .ajn-btn-nodes__ripple,
.wpr-btn.ajn-btn-nodes-trigger:focus-visible .ajn-btn-nodes__ripple {
  animation: ajn-node-ripple 1s ease-out infinite;
}

/* Team hiring CTA — keep label readable on dark card */
.team-apply-wrapper .wpr-btn.with-icon.ajn-btn-nodes-trigger {
  overflow: hidden;
  height: auto !important;
  min-height: 66px;
}
.team-apply-wrapper .wpr-btn.with-icon.ajn-btn-nodes-trigger > span {
  position: relative;
  z-index: 2;
  color: #fff;
}
.team-apply-wrapper .wpr-btn.with-icon.ajn-btn-nodes-trigger:hover > span,
.team-apply-wrapper .wpr-btn.with-icon.ajn-btn-nodes-trigger:focus-visible > span {
  color: #fff;
  opacity: 1;
}

@keyframes ajn-node-idle {
  0%,
  100% {
    transform: scale(1);
    opacity: 1;
  }
  50% {
    transform: scale(0.72);
    opacity: 0.55;
  }
}

@keyframes ajn-node-hover {
  0%,
  100% {
    transform: scale(1) rotate(0deg);
    border-radius: 2px;
  }
  50% {
    transform: scale(1.2) rotate(6deg);
    border-radius: 3px;
  }
}

@keyframes ajn-node-ripple {
  0% {
    transform: scale(1);
    opacity: 0.5;
  }
  100% {
    transform: scale(3.2);
    opacity: 0;
  }
}

@media (prefers-reduced-motion: reduce) {
  .ajn-btn-nodes__grid i,
  .wpr-btn.ajn-btn-nodes-trigger:hover .ajn-btn-nodes__grid i,
  .wpr-btn.ajn-btn-nodes-trigger:focus-visible .ajn-btn-nodes__grid i,
  .wpr-btn.ajn-btn-nodes-trigger:hover .ajn-btn-nodes__ripple,
  .wpr-btn.ajn-btn-nodes-trigger:focus-visible .ajn-btn-nodes__ripple {
    animation: none !important;
  }
}

/* Contact offices — support 5 locations */
.wpr-contact-area .section-inner .left-content-area .location-area {
  flex-direction: column;
  gap: 24px;
}

.wpr-contact-area .section-inner .left-content-area .location-area ul {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 28px 40px;
  flex-wrap: wrap;
}

@media (max-width: 767px) {
  .wpr-contact-area .section-inner .left-content-area .location-area ul {
    grid-template-columns: 1fr;
    gap: 24px;
  }
}

/* Team cards — uniform size + brand image backdrop */
.wpr-team-area .team-wrapper .image-area {
  aspect-ratio: 3 / 4;
  width: 100%;
  overflow: hidden;
  border-radius: 12px;
  background: linear-gradient(
    160deg,
    #cfeaf5 0%,
    #e3f4fa 45%,
    #f4fafc 100%
  );
  display: flex;
  align-items: flex-end;
  justify-content: center;
}

.wpr-team-area .team-wrapper .image-area img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: center top;
  display: block;
}

.wpr-team-area .team-apply-wrapper {
  aspect-ratio: 3 / 4;
  height: auto;
  min-height: 0;
}

/* Footer — breathing room above & below (all pages) */
#colophon {
  margin-top: 48px;
  margin-bottom: 48px;
}

@media (max-width: 767px) {
  #colophon {
    margin-top: 32px;
    margin-bottom: 32px;
  }
}

/* Contact section (READY TO START?) — top & bottom spacing */
#contact.wpr-contact-area {
  margin-top: 48px;
  margin-bottom: 48px;
}

#contact.wpr-contact-area.mb--16 {
  margin-bottom: 48px;
}

#contact.wpr-contact-area .section-inner {
  padding-top: 56px;
  padding-bottom: 56px;
}

@media (max-width: 991px) {
  #contact.wpr-contact-area {
    margin-top: 32px;
    margin-bottom: 32px;
  }

  #contact.wpr-contact-area.mb--16 {
    margin-bottom: 32px;
  }

  #contact.wpr-contact-area .section-inner {
    padding-top: 40px;
    padding-bottom: 40px;
  }
}

@media (max-width: 575px) {
  #contact.wpr-contact-area .section-inner {
    padding-top: 32px;
    padding-bottom: 32px;
  }
}

/* Contact page — office pins + map */
.ajn-contact-offices {
  margin: 0 0 40px;
}

.ajn-contact-offices__list {
  list-style: none;
  margin: 0;
  padding: 0;
  display: grid;
  grid-template-columns: repeat(5, minmax(0, 1fr));
  gap: 16px;
}

.ajn-contact-offices__list li {
  display: flex;
  align-items: flex-start;
  gap: 12px;
  margin: 0;
  padding: 18px 16px;
  border-radius: 12px;
  background: linear-gradient(137.66deg, #f5f5f5 21.13%, #f2f2f2 80.53%);
  box-shadow: inset 0px 1px 0px rgba(255, 255, 255, 0.6),
    inset 0px -4px 0px #e4e4e4, inset 0px -5px 0px 1px #fafafa;
}

.ajn-contact-pin {
  flex-shrink: 0;
  width: 36px;
  height: 36px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  border-radius: 10px;
  color: #000;
  background: var(--color-primary, #4fbce6);
  font-size: 15px;
}

.ajn-contact-offices__list strong {
  display: block;
  font-size: 15px;
  font-weight: 700;
  color: var(--color-heading-1, #111);
  margin-bottom: 4px;
}

.ajn-contact-offices__list p {
  margin: 0;
  font-size: 12px;
  line-height: 1.45;
  opacity: 0.65;
}

.ajn-contact-map.box-contact-item {
  padding: 16px;
  overflow: hidden;
}

.ajn-contact-map__canvas {
  position: relative;
  width: 100%;
  min-height: 420px;
  border-radius: 20px;
  overflow: hidden;
  background:
    radial-gradient(ellipse 70% 55% at 50% 45%, rgba(79, 188, 230, 0.16), transparent 70%),
    linear-gradient(160deg, #0a0a0a 0%, #171717 55%, #0f0f0f 100%);
}

.ajn-contact-map__grid {
  position: absolute;
  inset: 0;
  background-image:
    radial-gradient(circle, rgba(79, 188, 230, 0.28) 1px, transparent 1.2px);
  background-size: 28px 28px;
  background-position: center;
  opacity: 0.45;
  mask-image: radial-gradient(ellipse 75% 65% at 50% 50%, #000 20%, transparent 75%);
  -webkit-mask-image: radial-gradient(ellipse 75% 65% at 50% 50%, #000 20%, transparent 75%);
}

.ajn-contact-map__links {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  pointer-events: none;
  z-index: 1;
}

.ajn-map-pin {
  appearance: none;
  border: 0;
  background: transparent;
  padding: 0;
  margin: 0;
  position: absolute;
  left: var(--x);
  top: var(--y);
  transform: translate(-50%, -100%);
  z-index: 2;
  cursor: pointer;
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 6px;
}

.ajn-map-pin__dot {
  position: relative;
  width: 16px;
  height: 16px;
  border-radius: 50% 50% 50% 0;
  transform: rotate(-45deg);
  background: var(--color-primary, #4fbce6);
  box-shadow: 0 0 0 4px rgba(79, 188, 230, 0.22);
}

.ajn-map-pin__dot::after {
  content: "";
  position: absolute;
  inset: 4px;
  border-radius: 50%;
  background: #000;
}

.ajn-map-pin.is-featured .ajn-map-pin__dot {
  width: 20px;
  height: 20px;
  box-shadow: 0 0 0 6px rgba(79, 188, 230, 0.28);
}

.ajn-map-pin__label {
  transform: none;
  white-space: nowrap;
  font-size: 12px;
  font-weight: 700;
  letter-spacing: 0.02em;
  color: #fff;
  background: rgba(0, 0, 0, 0.72);
  border: 1px solid rgba(79, 188, 230, 0.45);
  padding: 5px 10px;
  border-radius: 8px;
  opacity: 0.92;
  transition: transform 0.2s ease, background 0.2s ease;
}

.ajn-map-pin:hover .ajn-map-pin__label,
.ajn-map-pin:focus-visible .ajn-map-pin__label {
  background: var(--color-primary, #4fbce6);
  color: #000;
  border-color: transparent;
  transform: translateY(-2px);
}

.ajn-map-pin:hover .ajn-map-pin__dot,
.ajn-map-pin:focus-visible .ajn-map-pin__dot {
  box-shadow: 0 0 0 8px rgba(79, 188, 230, 0.3);
}

.wpr-contact-area .location-area .h4 .fa-location-dot {
  color: var(--color-primary, #4fbce6);
  margin-right: 8px;
  font-size: 0.7em;
  vertical-align: 0.05em;
}

/* Footer without social profiles */
.wpr-footer-area .copyright-area {
  justify-content: center;
  gap: 24px;
  position: relative;
}

.wpr-footer-area .copyright-area .copyright {
  margin: 0;
  text-align: center;
}

.wpr-footer-area .copyright-area .scroll-top-btn {
  position: absolute;
  right: 56px;
}

@media (max-width: 767px) {
  .wpr-footer-area .copyright-area {
    flex-direction: column;
    gap: 16px;
  }

  .wpr-footer-area .copyright-area .scroll-top-btn {
    position: static;
  }
}

@media (max-width: 1199px) {
  .ajn-contact-offices__list {
    grid-template-columns: repeat(3, minmax(0, 1fr));
  }
}

@media (max-width: 767px) {
  .ajn-contact-offices__list {
    grid-template-columns: 1fr;
  }

  .ajn-contact-map__canvas {
    min-height: 320px;
  }

  .ajn-map-pin__label {
    font-size: 10px;
    padding: 4px 7px;
  }
}
