/* Homepage continuum — soft section bridges + ambient glows (Figma 3934:3319) */

.homepage {
  position: relative;
  isolation: isolate;
  overflow: visible;
}

/* Soft blue orbs that sit across section boundaries (not clipped per-section) */
.homepage::before,
.homepage::after {
  content: "";
  position: absolute;
  left: 50%;
  width: min(1200px, 140vw);
  height: 720px;
  pointer-events: none;
  z-index: 0;
  transform: translate3d(-50%, 0, 0);
  contain: layout style;
  background:
    radial-gradient(ellipse 55% 45% at 18% 48%, rgba(69, 182, 255, 0.28) 0%, rgba(69, 182, 255, 0) 72%),
    radial-gradient(ellipse 50% 42% at 82% 55%, rgba(32, 98, 255, 0.18) 0%, rgba(32, 98, 255, 0) 70%);
}

.homepage::before {
  top: clamp(980px, 92vw, 1280px);
  opacity: 0.95;
}

.homepage::after {
  top: clamp(2100px, 195vw, 2680px);
  opacity: 0.85;
  background:
    radial-gradient(ellipse 52% 48% at 12% 40%, rgba(69, 182, 255, 0.22) 0%, rgba(69, 182, 255, 0) 70%),
    radial-gradient(ellipse 48% 44% at 88% 60%, rgba(54, 118, 245, 0.16) 0%, rgba(54, 118, 245, 0) 72%);
}

.homepage > .section {
  position: relative;
  z-index: 1;
  overflow: visible;
}

/* Let capability float into hero + bleed glow into data-flow */
.homepage .capability-section {
  padding-bottom: 0;
  overflow: visible;
  background: transparent;
}

.homepage .gt-capability__panel {
  position: relative;
  z-index: 2;
}

/* Tuck centered bridge under the capability card for a continuous timeline */
.homepage .gt-capability__panel {
  padding-bottom: 56px;
}

/* Centered dashed connector between capability card and data-flow heading */
.gt-section-bridge {
  position: relative;
  z-index: 2;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: flex-start;
  width: 100%;
  height: 96px;
  margin: -36px 0 -8px;
  pointer-events: none;
}

.gt-section-bridge__line {
  width: 2px;
  flex: 1 1 auto;
  min-height: 48px;
  border-radius: 2px;
  background: repeating-linear-gradient(
    to bottom,
    #2062ff 0 7px,
    transparent 7px 14px
  );
}

.gt-section-bridge__arrow {
  display: block;
  width: 16px;
  height: 16px;
  margin-top: 2px;
  object-fit: contain;
  transform: rotate(180deg);
  opacity: 0.95;
}

.gt-section-bridge--after-flow {
  height: 72px;
  margin: -8px 0 8px;
}

/* Data-flow: allow ellipse glows to bleed upward into capability gap */
.homepage .data-flow-section {
  padding-top: 48px;
  overflow: visible !important;
  background: transparent;
}

.homepage .data-flow-section .section-deco {
  opacity: 0.9;
  z-index: 0;
}

.homepage .data-flow-section .section-deco-left {
  top: -280px;
}

.homepage .data-flow-section .section-deco-right {
  bottom: -80px;
}

.homepage .data-flow-section .section-heading {
  position: relative;
  z-index: 2;
  padding-bottom: 32px;
}

.homepage .data-flow-section .section-divider {
  width: 2px;
  height: 40px;
  background: repeating-linear-gradient(
    to bottom,
    #2062ff 0 6px,
    transparent 6px 12px
  );
}

.homepage .data-flow-section .container {
  position: relative;
  z-index: 1;
}

/* Modules / difference: softer overlap, no hard white slabs */
.homepage .modules-section {
  overflow: visible;
  padding-top: 24px;
  background: transparent;
}

.homepage .difference-section {
  overflow: visible;
  background: transparent;
}

.homepage .testimonials-section,
.homepage .news-section,
.homepage .faq-section,
.homepage .contact-section {
  overflow: visible;
}

/* Capability FOUC gate — panel stays hidden until real scroll reveal */
.gt-capability__panel[data-gt-wow-defer="capability"]:not(.is-capability-live) {
  visibility: hidden;
  opacity: 0;
}

.gt-capability__panel.is-capability-live {
  visibility: visible;
  opacity: 1;
}

/* Capability layers — fade/rise only (no left-right/scale that skews isometric plates).
   IMPORTANT: :not(.is-wow-in) so ready transforms never stick after reveal. */
.gt-capability__layer-wrap.is-wow-ready:not(.is-wow-in) {
  opacity: 0;
  transform: translate3d(0, 28px, 0);
  transition:
    opacity 0.9s cubic-bezier(0.22, 1, 0.36, 1),
    transform 0.9s cubic-bezier(0.22, 1, 0.36, 1);
}

.gt-capability__layer-wrap.is-wow-in {
  opacity: 1;
  transform: none;
  transition:
    opacity 0.9s cubic-bezier(0.22, 1, 0.36, 1),
    transform 0.9s cubic-bezier(0.22, 1, 0.36, 1);
}

/* Subtle float for section bridges once visible */
.gt-section-bridge.is-wow-ready {
  opacity: 0;
  transform: translate3d(0, -8px, 0);
  transition: opacity 0.6s ease, transform 0.6s ease;
}

.gt-section-bridge.is-wow-in {
  opacity: 1;
  transform: none;
}

@media (max-width: 1024px) {
  .homepage::before,
  .homepage::after {
    width: 160vw;
    height: 520px;
  }

  .homepage .data-flow-section .section-deco-left {
    top: -160px;
  }

  .gt-section-bridge {
    height: 64px;
    margin: -16px 0 0;
  }

}

@media (max-width: 768px) {
  .homepage::before,
  .homepage::after {
    opacity: 0.55;
  }

  .homepage .data-flow-section {
    padding-top: 32px;
  }

  .gt-section-bridge--after-flow {
    display: none;
  }
}

@media (prefers-reduced-motion: reduce) {
  .gt-capability__panel[data-gt-wow-defer="capability"]:not(.is-capability-live) {
    visibility: visible !important;
  }

  .gt-capability__layer-wrap.is-wow-ready,
  .gt-capability__layer-wrap.is-wow-in,
  .gt-section-bridge.is-wow-ready,
  .gt-section-bridge.is-wow-in {
    opacity: 1 !important;
    transform: none !important;
    transition: none !important;
  }
}





/* Home contact — Figma 3934:3524 (scoped) */
.homepage .gt-home-contact.contact-section {
  padding: 80px 32px;
}

.homepage .gt-home-contact .contact-grid {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 64px;
}

.homepage .gt-home-contact .contact-copy {
  flex: 1 1 auto;
  width: auto;
  max-width: 640px;
  display: flex;
  flex-direction: column;
  gap: 32px;
}

.homepage .gt-home-contact .contact-copy h2 {
  margin: 0;
  color: var(--text);
  font-size: 48px;
  font-weight: 400;
  line-height: 60px;
}

.homepage .gt-home-contact .contact-meta {
  margin-top: 0;
  display: flex;
  flex-direction: column;
  gap: 24px;
}

.homepage .gt-home-contact .contact-meta-row {
  display: flex;
  align-items: center;
  gap: 16px;
}

.homepage .gt-home-contact .contact-meta-row > img {
  width: 48px;
  height: 48px;
  flex: 0 0 48px;
  object-fit: contain;
  object-position: center;
}

.homepage .gt-home-contact .contact-meta-row > div {
  display: flex;
  flex-direction: column;
  gap: 4px;
  min-width: 0;
}

.homepage .gt-home-contact .contact-meta-row p {
  margin: 0;
  color: var(--text-3);
  font-size: 14px;
  line-height: 20px;
}

.homepage .gt-home-contact .contact-meta-row strong,
.homepage .gt-home-contact .contact-meta-row a {
  color: var(--text);
  font-size: 16px;
  font-weight: 400;
  line-height: 24px;
  text-decoration: none;
}

.homepage .gt-home-contact .contact-form {
  width: 527px;
  max-width: 100%;
  flex: 0 0 auto;
  display: flex;
  flex-direction: column;
  align-items: flex-end;
  gap: 16px;
}

.homepage .gt-home-contact .contact-form label {
  width: 100%;
  display: flex;
  flex-direction: column;
  gap: 6px;
  color: var(--text-3);
  font-size: 12px;
  line-height: 16px;
}

.homepage .gt-home-contact .contact-form input,
.homepage .gt-home-contact .contact-form textarea {
  width: 100%;
  margin: 0;
  padding: 8px 12px;
  border: 1px solid var(--line);
  border-radius: 8px;
  background: #fff;
  color: var(--text);
  font-size: 16px;
  line-height: 24px;
}

.homepage .gt-home-contact .contact-form-message {
  min-height: 120px;
}

.homepage .gt-home-contact .contact-form-message textarea {
  flex: 1 1 auto;
  min-height: 94px;
  resize: none;
}

.homepage .gt-home-contact .contact-form input::placeholder,
.homepage .gt-home-contact .contact-form textarea::placeholder {
  color: var(--text-3);
}

.homepage .gt-home-contact .contact-submit {
  align-self: flex-end;
}

.homepage .gt-home-contact .contact-submit img {
  width: 20px;
  height: 20px;
}

@media (max-width: 1024px) {
  .homepage .gt-home-contact .contact-grid {
    flex-direction: column;
    gap: 40px;
  }

  .homepage .gt-home-contact .contact-copy,
  .homepage .gt-home-contact .contact-form {
    width: 100%;
    max-width: 100%;
  }
}

@media (max-width: 768px) {
  .homepage .gt-home-contact.contact-section {
    padding: 48px 16px;
  }

  .homepage .gt-home-contact .contact-copy h2 {
    font-size: 32px;
    line-height: 40px;
  }

  .homepage .gt-home-contact .contact-submit {
    width: 100%;
  }
}

/* Home news — Figma 3934:3489 (scoped; do not alter blog news-page) */
.homepage .gt-home-news.news-section {
  padding: 80px 32px;
}

.homepage .gt-home-news > .container {
  display: flex;
  flex-direction: column;
  gap: 40px;
}

.homepage .gt-home-news .news-header {
  display: flex;
  align-items: flex-end;
  justify-content: space-between;
  gap: 24px;
  margin-bottom: 0;
  width: 100%;
}

.homepage .gt-home-news .news-header h2 {
  margin: 0;
  color: var(--text);
  font-size: 48px;
  font-weight: 400;
  line-height: 60px;
}

.homepage .gt-home-news .news-header .btn {
  flex-shrink: 0;
}

.homepage .gt-home-news .news-header .btn img {
  width: 20px;
  height: 20px;
}

.homepage .gt-home-news .news-grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 20px;
  margin-top: 0;
  width: 100%;
}

.homepage .gt-home-news .news-card--home {
  display: flex;
  flex-direction: column;
  gap: 16px;
  min-width: 0;
}

.homepage .gt-home-news .news-card-media {
  width: 100%;
  aspect-ratio: 416 / 277;
  border-radius: 16px;
  overflow: hidden;
}

.homepage .gt-home-news .news-card-media a,
.homepage .gt-home-news .news-card-media img {
  display: block;
  width: 100%;
  height: 100%;
}

.homepage .gt-home-news .news-card-media img {
  object-fit: cover;
  border-radius: 16px;
}

.homepage .gt-home-news .news-card-body {
  display: flex;
  flex-direction: column;
  gap: 8px;
  min-width: 0;
}

.homepage .gt-home-news .news-date {
  margin: 0;
  color: var(--text-3);
  font-size: 12px;
  font-weight: 400;
  line-height: 16px;
}

.homepage .gt-home-news .news-card-title {
  margin: 0;
  color: var(--text);
  font-size: 16px;
  font-weight: 500;
  line-height: 24px;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.homepage .gt-home-news .news-card-title a {
  color: inherit;
  text-decoration: none;
}

.homepage .gt-home-news .news-card-excerpt {
  margin: 0;
  color: var(--text-3);
  font-size: 16px;
  font-weight: 400;
  line-height: 24px;
  display: -webkit-box;
  -webkit-box-orient: vertical;
  -webkit-line-clamp: 3;
  overflow: hidden;
  text-overflow: ellipsis;
}

@media (max-width: 1024px) {
  .homepage .gt-home-news .news-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}

@media (max-width: 768px) {
  .homepage .gt-home-news.news-section {
    padding: 48px 16px;
  }

  .homepage .gt-home-news .news-header {
    flex-direction: column;
    align-items: flex-start;
  }

  .homepage .gt-home-news .news-header h2 {
    font-size: 32px;
    line-height: 40px;
  }

  .homepage .gt-home-news .news-grid {
    grid-template-columns: 1fr;
  }
}

