/* Shared accessibility helpers used only by Formosa lower pages. */
.fm-subpage-body .fm-page {
  /* The TOP CONTACT route intentionally continues into the footer seam. */
  overflow: visible;
}

/* Keep the shared CONTACT motion identical to TOP, even on pages with local reveal rules. */
.fm-motion .fm-subpage-body .fm-final-cta [data-reveal] {
  opacity: 0;
  translate: 0 26px;
  transition:
    opacity 760ms cubic-bezier(.2, .7, .2, 1),
    translate 760ms cubic-bezier(.2, .7, .2, 1);
}

.fm-motion .fm-subpage-body .fm-final-cta [data-reveal].is-visible,
.fm-motion .fm-subpage-body .fm-final-cta [data-reveal].is-revealed,
.fm-motion .fm-subpage-body .fm-final-cta [data-reveal][data-reveal-state="visible"],
.fm-static .fm-subpage-body .fm-final-cta [data-reveal] {
  opacity: 1;
  translate: 0 0;
}

.fm-motion .fm-subpage-body .fm-final-cta [data-reveal-delay="80"] { transition-delay: 80ms; }
.fm-motion .fm-subpage-body .fm-final-cta [data-reveal-delay="100"] { transition-delay: 100ms; }
.fm-motion .fm-subpage-body .fm-final-cta [data-reveal-delay="160"] { transition-delay: 160ms; }
.fm-motion .fm-subpage-body .fm-final-cta [data-reveal-delay="200"] { transition-delay: 200ms; }
.fm-motion .fm-subpage-body .fm-final-cta [data-reveal-delay="240"] { transition-delay: 240ms; }
.fm-motion .fm-subpage-body .fm-final-cta [data-reveal-delay="280"] { transition-delay: 280ms; }
.fm-motion .fm-subpage-body .fm-final-cta [data-reveal-delay="320"] { transition-delay: 320ms; }

.fm-static .fm-subpage-body .fm-final-cta [data-reveal] {
  transition: none !important;
}

.fm-subpage-body .fm-visually-hidden {
  position: absolute !important;
  width: 1px !important;
  height: 1px !important;
  margin: -1px !important;
  padding: 0 !important;
  overflow: hidden !important;
  clip: rect(0 0 0 0) !important;
  clip-path: inset(50%) !important;
  border: 0 !important;
  white-space: nowrap !important;
}

/*
 * Ambient decoration shared by the lower pages.
 * Every image is an existing TOP-page asset. Content stays in the normal flow
 * above these non-interactive, section-scoped ornaments.
 */
.fm-subpage-body .fm-subpage-decor-host {
  position: relative;
  isolation: isolate;
}

.fm-subpage-body .fm-subpage-decor-host > :not(.fm-subpage-ornament) {
  position: relative;
  z-index: 2;
}

.fm-subpage-body .fm-subpage-ornament {
  position: absolute;
  z-index: 1;
  display: block;
  max-width: none !important;
  height: auto;
  pointer-events: none;
  user-select: none;
}

/* About */
.fm-subpage-ornament--about-features {
  top: 18px;
  right: -250px;
  width: 560px;
  opacity: .1;
}

.fm-subpage-ornament--about-group-route {
  bottom: 12px;
  left: 50%;
  width: min(78%, 980px);
  opacity: .32;
  transform: translateX(-50%) rotate(-1deg);
}

.fm-subpage-ornament--about-facility {
  bottom: -86px;
  left: -248px;
  width: 460px;
  opacity: .075;
}

/* Courses */
.fm-subpage-ornament--courses-comparison {
  top: 28px;
  right: -250px;
  width: 570px;
  opacity: .09;
}

.fm-subpage-ornament--courses-fit {
  bottom: -84px;
  left: -258px;
  width: 560px;
  opacity: .09;
  transform: rotate(180deg);
}

.fm-subpage-ornament--courses-contact {
  bottom: -242px;
  left: 50%;
  width: min(980px, 86vw);
  opacity: .15;
  transform: translateX(-50%);
}

/* Skills */
.fm-subpage-ornament--skills-learning {
  top: 24px;
  right: -286px;
  width: 540px;
  opacity: .065;
}

.fm-subpage-ornament--skills-jobs {
  top: 18px;
  right: -22px;
  width: 300px;
  opacity: .3;
}

.fm-subpage-ornament--skills-courses {
  bottom: -84px;
  left: -266px;
  width: 580px;
  opacity: .09;
  transform: rotate(178deg);
}

/* Staff */
.fm-subpage-ornament--staff-hero {
  top: 10px;
  right: -224px;
  width: 470px;
  opacity: .1;
}

.fm-subpage-ornament--staff-profile {
  top: 50%;
  left: -238px;
  width: 430px;
  opacity: .07;
  transform: translateY(-50%);
}

.fm-subpage-ornament--staff-consultations {
  right: -252px;
  bottom: -76px;
  width: 570px;
  opacity: .09;
}

/* Flow */
.fm-subpage-ornament--flow-hero {
  top: 14px;
  right: 2%;
  width: 300px;
  opacity: .32;
}

.fm-subpage-ornament--flow-detail {
  top: 36%;
  left: -286px;
  width: 620px;
  opacity: .075;
  transform: rotate(180deg);
}

.fm-subpage-ornament--flow-faq {
  right: -62px;
  bottom: -120px;
  width: 210px;
  opacity: .18;
  transform: rotate(-8deg);
}

/* Column */
.fm-subpage-ornament--column-hero {
  top: 16px;
  right: 7%;
  width: 340px;
  opacity: .34;
}

.fm-subpage-ornament--column-wave {
  bottom: -360px;
  left: 50%;
  width: min(1120px, 82vw);
  opacity: .19;
  transform: translateX(-50%);
}

.fm-subpage-ornament--column-book {
  bottom: 34px;
  left: 2.5%;
  width: 230px;
  opacity: .9;
}

.fm-subpage-ornament--column-plant {
  right: 3%;
  bottom: 22px;
  width: 92px;
  opacity: .9;
}

/* FAQ */
.fm-subpage-ornament--faq-top {
  top: 130px;
  right: -250px;
  width: 560px;
  opacity: .085;
}

.fm-subpage-ornament--faq-middle {
  top: 56%;
  left: -264px;
  width: 590px;
  opacity: .075;
  transform: rotate(180deg);
}

.fm-subpage-ornament--faq-help {
  top: -68px;
  right: -74px;
  width: 230px;
  opacity: .24;
}

/* Access */
.fm-subpage-ornament--access-location {
  top: 24px;
  right: -246px;
  width: 560px;
  opacity: .085;
}

.fm-subpage-ornament--access-gallery {
  right: 2.5%;
  bottom: 18px;
  width: 92px;
  opacity: .82;
}

/* Contact */
.fm-subpage-ornament--contact-hero {
  bottom: 16px;
  left: 34%;
  width: 360px;
  opacity: .25;
}

.fm-subpage-ornament--contact-form-top {
  top: 30px;
  right: -258px;
  width: 580px;
  opacity: .075;
}

.fm-subpage-ornament--contact-form-bottom {
  bottom: -88px;
  left: -266px;
  width: 590px;
  opacity: .065;
  transform: rotate(180deg);
}

.fm-subpage-ornament--contact-related {
  top: 8px;
  right: 2%;
  width: 260px;
  opacity: .28;
}

@media (max-width: 1199px) {
  .fm-subpage-body .fm-subpage-ornament {
    scale: .78;
  }

  .fm-subpage-ornament--about-group-route {
    scale: 1;
  }

  .fm-subpage-ornament--column-wave {
    scale: 1;
  }
}

@media (max-width: 767px) {
  .fm-subpage-body .fm-subpage-ornament {
    scale: 1;
  }

  .fm-subpage-body .fm-subpage-ornament--about-features,
  .fm-subpage-body .fm-subpage-ornament--courses-comparison,
  .fm-subpage-body .fm-subpage-ornament--skills-learning,
  .fm-subpage-body .fm-subpage-ornament--staff-profile,
  .fm-subpage-body .fm-subpage-ornament--flow-detail,
  .fm-subpage-body .fm-subpage-ornament--faq-middle,
  .fm-subpage-body .fm-subpage-ornament--faq-help,
  .fm-subpage-body .fm-subpage-ornament--access-location,
  .fm-subpage-body .fm-subpage-ornament--contact-form-top,
  .fm-subpage-body .fm-subpage-ornament--contact-form-bottom {
    display: none;
  }

  .fm-subpage-body .fm-subpage-ornament--about-group-route {
    display: none;
  }

  .fm-subpage-ornament--about-facility {
    bottom: -36px;
    left: -112px;
    width: 220px;
    opacity: .075;
  }

  .fm-subpage-ornament--courses-fit {
    bottom: -34px;
    left: -116px;
    width: 240px;
    opacity: .075;
  }

  .fm-subpage-ornament--courses-contact {
    bottom: -92px;
    width: 130vw;
    opacity: .13;
  }

  .fm-subpage-ornament--skills-jobs {
    top: 12px;
    right: -22px;
    width: 145px;
    opacity: .25;
  }

  .fm-subpage-ornament--skills-courses {
    bottom: -34px;
    left: -120px;
    width: 250px;
    opacity: .075;
  }

  .fm-subpage-ornament--staff-hero {
    top: 22px;
    right: -110px;
    width: 220px;
    opacity: .08;
  }

  .fm-subpage-ornament--staff-consultations {
    right: -120px;
    bottom: -40px;
    width: 250px;
    opacity: .075;
  }

  .fm-subpage-ornament--flow-hero {
    top: 12px;
    right: -12px;
    width: 145px;
    opacity: .26;
  }

  .fm-subpage-ornament--flow-faq {
    right: -26px;
    bottom: -62px;
    width: 124px;
    opacity: .14;
  }

  .fm-subpage-ornament--column-hero {
    top: 16px;
    right: -16px;
    width: 150px;
    opacity: .28;
  }

  .fm-subpage-ornament--column-wave {
    bottom: -74vw;
    width: 185vw;
    opacity: .14;
  }

  .fm-subpage-ornament--column-book {
    bottom: 10px;
    left: -8px;
    width: 190px;
    opacity: .88;
  }

  .fm-subpage-ornament--column-plant {
    right: 3%;
    bottom: 14px;
    width: 54px;
    opacity: .82;
  }

  .fm-subpage-ornament--faq-top {
    top: 86px;
    right: -118px;
    width: 250px;
    opacity: .07;
  }

  .fm-subpage-ornament--access-gallery {
    right: 2%;
    bottom: 10px;
    width: 52px;
    opacity: .78;
  }

  .fm-subpage-ornament--contact-hero {
    bottom: 10px;
    left: 2%;
    width: 150px;
    opacity: .2;
  }

  .fm-subpage-ornament--contact-related {
    top: 6px;
    right: -18px;
    width: 140px;
    opacity: .24;
  }
}
