/* Shared progressive enhancement for public interactive controls. */
.tn-control {
  --tn-control-ring: #4d65ff;
  --tn-control-glow: transparent;
  position: relative;
  isolation: isolate;
  transition: translate .28s cubic-bezier(.2, .8, .2, 1), scale .28s cubic-bezier(.2, .8, .2, 1), color .28s ease, background-color .28s ease, border-color .28s ease, box-shadow .28s ease, filter .28s ease;
}
.tn-control.button-arrow,
.tn-control.button,
.tn-control.button-arrow.is-black { --tn-control-glow: transparent; }
.tn-control.tn-control-dark,
.tn-control.is-black { --tn-control-ring: #b0ff00; }
.tn-control::after {
  position: absolute;
  z-index: -1;
  inset: -.22rem;
  border-radius: inherit;
  background: var(--tn-control-glow);
  content: "";
  opacity: 0;
  filter: blur(.55rem);
  pointer-events: none;
  transition: opacity .28s ease;
}
.tn-control.tn-is-interacting {
  will-change: translate, scale, filter, box-shadow;
  translate: 0 -.16rem;
  scale: 1.012;
  filter: saturate(1.06) brightness(1.025);
  box-shadow: 0 .75rem 1.5rem var(--tn-control-glow);
}
.tn-control.tn-is-interacting::after { opacity: 1; }
.tn-control .button-arrow_text,
.tn-control .text_button { transition: translate .28s cubic-bezier(.2, .8, .2, 1), color .28s ease; }
.tn-control .button_container-arrow { transition: translate .28s cubic-bezier(.2, .8, .2, 1), scale .28s cubic-bezier(.2, .8, .2, 1), color .28s ease, background-color .28s ease; }
.tn-control.tn-is-interacting .button-arrow_text,
.tn-control.tn-is-interacting .text_button { translate: .14rem 0; }
.tn-control.tn-is-interacting .button_container-arrow { translate: .18rem -.08rem; scale: 1.08; }
.tn-control.tn-is-pressed { translate: 0 -.04rem; scale: .985; }
.tn-control:disabled,
.tn-control[aria-disabled="true"] {
  translate: 0 0;
  scale: 1;
  filter: none;
  box-shadow: none;
  will-change: auto;
}
.tn-control:focus-visible {
  outline: .16rem solid var(--tn-control-ring);
  outline-offset: .2rem;
  box-shadow: 0 0 0 .2rem color-mix(in srgb, var(--tn-control-ring) 34%, transparent), 0 .75rem 1.5rem var(--tn-control-glow);
}
.tn-control.tn-nav_link,
.tn-control.footer_link,
.tn-control.footer_bottom-link,
.tn-control.tn-breadcrumb a,
.tn-control.tn-step_number {
  --tn-control-glow: transparent;
  border-radius: .35rem;
}
.tn-control.tn-card,
.tn-control.service_container { overflow: hidden; }
.tn-control.tn-card::after,
.tn-control.service_container::after { inset: .2rem; }
.tn-control.faq_top { --tn-control-ring: #4d65ff; border-radius: .5rem; }
@media (hover: hover) and (pointer: fine) {
  .tn-control:not(:disabled):not([aria-disabled="true"]):hover { will-change: translate, scale, filter, box-shadow; translate: 0 -.16rem; scale: 1.012; filter: saturate(1.06) brightness(1.025); box-shadow: 0 .75rem 1.5rem var(--tn-control-glow); }
  .tn-control:not(:disabled):not([aria-disabled="true"]):hover::after { opacity: 1; }
  .tn-control:not(:disabled):not([aria-disabled="true"]):hover .button-arrow_text,
  .tn-control:not(:disabled):not([aria-disabled="true"]):hover .text_button { translate: .14rem 0; }
  .tn-control:not(:disabled):not([aria-disabled="true"]):hover .button_container-arrow { translate: .18rem -.08rem; scale: 1.08; }
}
@media (prefers-reduced-motion: reduce) {
  .tn-control,
  .tn-control::after,
  .tn-control .button-arrow_text,
  .tn-control .text_button,
  .tn-control .button_container-arrow { transition-duration: 0s !important; }
  .tn-control.tn-is-interacting,
  .tn-control:hover,
  .tn-control.tn-is-pressed { translate: 0 0; scale: 1; filter: none; box-shadow: none; will-change: auto; }
  .tn-control.tn-is-interacting::after,
  .tn-control:hover::after { opacity: 0; }
  .tn-control.tn-is-interacting .button-arrow_text,
  .tn-control.tn-is-interacting .text_button,
  .tn-control.tn-is-interacting .button_container-arrow,
  .tn-control:hover .button-arrow_text,
  .tn-control:hover .text_button,
  .tn-control:hover .button_container-arrow { translate: 0 0; scale: 1; }
  .tn-control:focus-visible { outline: .18rem solid var(--tn-control-ring); outline-offset: .24rem; }
}


/* Hero CTA component: native Webflow class hierarchy, safely reusable without data-w-id. */
.tn-hero-arrow {
  isolation: isolate;
  overflow: hidden;
  transition: box-shadow .36s cubic-bezier(.19, 1, .22, 1), transform .36s cubic-bezier(.19, 1, .22, 1);
  display: inline-flex;
  width: max-content;
  max-width: 100%;
}
.tn-hero-arrow .button-arrow_wrap { width: 100%; }
.tn-hero-arrow .button-arrow_bg {
  opacity: 1;
  transform: translate3d(-102%, 0, 0);
  transition: transform .46s cubic-bezier(.19, 1, .22, 1);
  will-change: transform;
}
.tn-hero-arrow .button-arrow_text,
.tn-hero-arrow .button_container-arrow {
  transition: color .3s ease, background-color .3s ease, transform .46s cubic-bezier(.19, 1, .22, 1);
}
.tn-hero-arrow:hover .button-arrow_bg,
.tn-hero-arrow:focus-visible .button-arrow_bg,
.tn-hero-arrow:active .button-arrow_bg { transform: translate3d(0, 0, 0); }
.tn-hero-arrow:not(.is-black):hover .button-arrow_text,
.tn-hero-arrow:not(.is-black):focus-visible .button-arrow_text,
.tn-hero-arrow:not(.is-black):active .button-arrow_text { color: var(--text-color--text-on-primary); }

.tn-hero-arrow:not(.is-black):hover .button_container-arrow,
.tn-hero-arrow:not(.is-black):focus-visible .button_container-arrow,
.tn-hero-arrow:not(.is-black):active .button_container-arrow {
  color: var(--bg-color--bg-dark);
  background-color: var(--bg-color--bg-green);
  transform: translate3d(-.32rem, 0, 0) rotate(45deg);
}

.tn-hero-arrow.is-black:hover .button-arrow_text,
.tn-hero-arrow.is-black:focus-visible .button-arrow_text,
.tn-hero-arrow.is-black:active .button-arrow_text { color: var(--bg-color--bg-dark); }

.tn-hero-arrow.is-black:hover .button_container-arrow,
.tn-hero-arrow.is-black:focus-visible .button_container-arrow,
.tn-hero-arrow.is-black:active .button_container-arrow {
  color: var(--text-color--text-on-primary);
  background-color: var(--bg-color--bg-dark);
  transform: translate3d(-.32rem, 0, 0) rotate(45deg);
}
.tn-hero-arrow:focus-visible {
  outline: .16rem solid #4d65ff;
  outline-offset: .2rem;
}
.tn-hero-arrow.is-black:focus-visible { outline-color: #b0ff00; }
@media (prefers-reduced-motion: reduce) {
  .tn-hero-arrow,
  .tn-hero-arrow .button-arrow_bg,
  .tn-hero-arrow .button-arrow_text,
  .tn-hero-arrow .button_container-arrow { transition-duration: 0s !important; }
  .tn-hero-arrow:is(:hover, :focus-visible, :active) .button_container-arrow { transform: none; }
}

/* Footer newsletter: one compact email control with the lime submit capsule. */
.footer .footer-form {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  align-items: center;
  gap: .625rem;
  min-height: 5.25rem;
  margin: 0;
  padding: .55rem .6rem .55rem 1.5rem;
  border: 1px solid rgba(255, 255, 255, .08);
  border-radius: 999px;
  background: #272727;
}
.footer .footer-form .text-field {
  width: 100%;
  min-width: 0;
  height: auto;
  min-height: 0;
  margin: 0;
  padding: .75rem 0;
  border: 0;
  border-radius: 0;
  outline: 0;
  background: transparent;
  color: #fff;
  box-shadow: none;
}
.footer .footer-form .text-field::placeholder { color: rgba(255, 255, 255, .58); }
.footer .footer-form .text-field:focus { box-shadow: none; }
.footer .footer_submit {
  display: inline-flex;
  flex: 0 0 auto;
  min-height: 4.1rem;
  margin: 0;
  padding: 0 .35rem 0 1.1rem;
  border: 0;
  border-radius: 999px;
  background: var(--bg-color--bg-green, #d6fd70);
  color: var(--bg-color--bg-dark, #111);
  cursor: pointer;
}
.footer .footer_submit .button-arrow_wrap {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: .75rem;
  min-height: 4.1rem;
}
.footer .footer_submit .button-arrow_text {
  position: relative;
  z-index: 2;
  color: inherit;
  white-space: nowrap;
}
.footer .footer_submit .text_button {
  font-size: .875rem;
  letter-spacing: .1em;
  text-transform: uppercase;
}
.footer .footer_submit .button_container-arrow {
  position: relative;
  z-index: 2;
  display: grid;
  width: 3.15rem;
  height: 3.15rem;
  flex: 0 0 3.15rem;
  border-radius: 50%;
  place-items: center;
  background: var(--bg-color--bg-dark, #111);
  color: var(--bg-color--bg-green, #d6fd70);
}
.footer .footer_submit .button-arrow_bg { background: var(--bg-color--bg-dark, #111); }
.footer .footer_submit:is(:hover, :focus-visible, :active) .button_container-arrow {
  background: var(--bg-color--bg-green, #d6fd70);
  color: var(--bg-color--bg-dark, #111);
}
.footer .footer_submit:focus-visible { outline-color: var(--bg-color--bg-green, #d6fd70); }
@media screen and (max-width: 479px) {
  .footer .footer-form { min-height: 4.5rem; padding: .4rem .45rem .4rem 1rem; gap: .4rem; }
  .footer .footer_submit,
  .footer .footer_submit .button-arrow_wrap { min-height: 3.6rem; }
  .footer .footer_submit { padding-left: .8rem; }
  .footer .footer_submit .button_container-arrow { width: 2.75rem; height: 2.75rem; flex-basis: 2.75rem; }
  .footer .footer_submit .text_button { font-size: .75rem; letter-spacing: .075em; }
}

/* Keep the original 3D animation, while reserving a visible stage for the full card arc. */
.section_hero ._3d {
  z-index: 3;
  width: 100%;
  min-height: clamp(8rem, 14vw, 11rem);
}
.section_hero ._3d .img3d {
  width: 10.55rem;
  margin: 0;
}
.section_hero ._3d .image3d {
  display: block;
  margin: 0;
  border-radius: .5rem;
  box-shadow: 0 .65rem 1.5rem rgba(5, 38, 93, .18);
}

/* Shared transparent brand logo: preserve its 2:1 artwork without stretching. */
.navbar_logo {
  width: 100%;
  height: 100%;
  object-fit: contain;
  object-position: left center;
}
/* The supplied mark is light, so retain contrast when the alternate light-page
   navbar variant is active. */
.navbar_logo.is-black {
}
.footer_logo {
  width: min(12rem, 100%);
  height: auto;
  object-fit: contain;
}

/* Shared bottom CTA: use the supplied sky-and-flowers artwork while retaining the existing responsive cover crop. */
.cta-wrap {
  background-image: url('../bottom.jpeg');
  background-position: center;
}


/* Added for fixing navbar layout on homepage */
.tn-navbar_list { display: flex; align-items: center; gap: .25rem; color: var(--text-color--text-on-primary); }
.tn-nav_link { padding: .5rem .75rem; opacity: .8; color: inherit; text-decoration: none; font-family: var(--_typography---font-family--alternate); text-transform: uppercase; font-size: .75rem; letter-spacing: .12em; transition: opacity .2s, color .2s; }
.tn-nav_link:hover, .tn-nav_link.is-current { opacity: 1; }
.tn-nav_link.is-current { font-weight: 600; }
@media screen and (max-width: 991px) { .tn-navbar_list { display: none; } }
.tn-nav_panel { display: none; }
.tn-nav_panel.is-open { display: block; }
@media screen and (min-width: 992px) { .tn-nav_panel, .tn-nav_panel.is-open { display: none; } }
.tn-nav_panel-inner { margin: .5rem 0 0; padding: 1rem; border-radius: 1.5rem; background-color: var(--bg-color--bg-dark); display: flex; flex-flow: column; gap: .25rem; }
.tn-nav_panel .tn-nav_link { color: var(--text-color--text-on-primary); opacity: .9; font-size: .8125rem; }
.main-wrapper { overflow-x: clip; }


.tn-nav-button { position: relative; float: right; padding: 18px; font-size: 24px; display: none; cursor: pointer; -webkit-tap-highlight-color: rgba(0,0,0,0); tap-highlight-color: rgba(0,0,0,0); -webkit-user-select: none; -moz-user-select: none; -ms-user-select: none; user-select: none; } @media screen and (max-width: 991px) { .tn-nav-button { display: block; } }

html, body { overflow-x: clip !important; max-width: 100%; }


/* Fix for inner page hero text visibility */
.tn-hero h1 { color: var(--text-color--text-primary) !important; }
