/* Source-matched component details, shared by the homepage and footer. */
@font-face {
  font-family: "Tongzheng Icons";
  src: url("../fonts/instry-icon-1.0.0.woff2") format("woff2");
  font-weight: normal;
  font-style: normal;
  font-display: block;
}
.theme-icon::before {
  font-family: "Tongzheng Icons";
  font-style: normal;
  font-weight: normal;
  line-height: 1;
  text-transform: none;
  -webkit-font-smoothing: antialiased;
}
.theme-icon--factory::before { content: "\e00a"; }
.theme-icon--maintenance::before { content: "\e014"; }
.theme-icon--quote::before { content: "\e02a"; }
.theme-icon--arrow::before { content: "\e03c"; }
.premium-features article > .theme-icon { font-size: 37px; line-height: 1; }
.workflow-heading .section-label { width: fit-content; justify-self: start; }
.site-main, .home-main { overflow-x: clip; }
html.lenis, html.lenis body { height: auto; }
.lenis.lenis-smooth { scroll-behavior: auto !important; }
.lenis.lenis-smooth [data-lenis-prevent] { overscroll-behavior: contain; }
.service-card { will-change: transform; }
.projects-section, .testimonials-section, .site-footer { -webkit-font-smoothing: antialiased; }

/* The illustration is intentionally allowed to extend above this section. */
.projects-section {
  min-height: 0;
  padding-bottom: 190px;
  overflow: visible;
  background-position: left top;
}
.projects-hero { height: auto; padding: 147px 0 93px; }
.projects-heading { width: 50%; max-width: none; }
.projects-heading .section-label { margin-bottom: 20px; gap: 10px; letter-spacing: 1px; }
.projects-heading .section-title { max-width: none; font-size: 80px; line-height: 84px; }
.projects-illustration { top: -115px; right: -134px; width: 50%; }
.projects-illustration img { height: auto; aspect-ratio: 770 / 580; }
.projects-illustration__motion { transition: transform 100ms ease; will-change: transform; }
.project-carousel.section-shell { width: calc(100% - 60px); max-width: none; }
.project-track { gap: 60px; }
.project-card { flex-basis: calc((100% - 120px) / 3); }
.project-card__media { height: 380px; }
.project-card__content { min-height: 110px; }
.project-card__media img { transition: transform 0.5s ease; }
.project-card__content h3 a { transition: background-size 0.5s ease; }
.project-card__arrow { min-width: 51px; height: 50px; transition: background-color 0.5s ease; }
.project-card__arrow .theme-icon { display: inline-block; margin-left: 3px; font-size: 18px; line-height: 1; transform: rotate(-45deg); transition: transform 0.5s ease; }
.project-card__arrow:hover .theme-icon { transform: rotate(0); }

.testimonials-section { background-size: auto; }
.testimonials-section__inner { grid-template-columns: repeat(2, minmax(0, 1fr)); align-items: start; }
.testimonial-visual__photo { max-width: 640px; margin-inline: auto; }
.testimonial-visual__photo img { height: auto; aspect-ratio: 640 / 660; }
.testimonial-visual__decoration img { aspect-ratio: 234 / 195; }
.testimonial-heading .section-label { min-height: 33px; margin-bottom: 15px; padding: 10px; gap: 10px; letter-spacing: 1px; }
.testimonial-copy .section-title { margin-bottom: 40px; font-size: 80px; line-height: 84px; }
.testimonial-slide__quote { color: var(--tz-color-brand); font-size: 46px; font-weight: normal; line-height: 1; }
.testimonial-slide p { min-height: 0; color: #000; }
.testimonial-slide footer span { color: #555; line-height: 1.411765; }

/* Separate animation layers keep the glass panel and backdrop logo independent. */
.site-footer {
  padding: 313px 0 79px;
  background: linear-gradient(rgb(31 31 31 / 64%), rgb(31 31 31 / 64%)),
    url("../images/footer-bg.jpg") left top / cover fixed;
  color: #fff;
}
.site-footer__watermark { top: 140px; width: min(76vw, 1055px); opacity: 1; }
.site-footer__watermark-motion { --reveal-delay: 500ms; }
.site-footer__panel {
  position: relative;
  z-index: 1;
  border: 2px solid rgb(255 255 255 / 10%);
  backdrop-filter: blur(29px);
  -webkit-backdrop-filter: blur(29px);
  --reveal-delay: 300ms;
}
.site-footer__inner {
  grid-template-columns: 27.5% 43.5% 29%;
  gap: 0;
  padding: 88px 48px 96px 49px;
}
.footer-about { gap: 0; }
.footer-logo { margin: 6px 0 25px; }
.footer-logo img { height: auto; }
.footer-about p { max-width: 263px; margin: 0 0 14px; font-size: 17px; line-height: 24px; }
.footer-phone { margin-bottom: 14px; font-size: 24px; line-height: 24px; }
.footer-about > a[href^="mailto:"] { font-size: 18px; line-height: 24px; }
.social-links { gap: 15px; margin-top: 24px; }
.social-links a { display: grid; place-items: center; width: 33px; height: 33px; font-size: 14px; }
.footer-links { padding-right: 130px; }
.footer-links h2, .footer-newsletter h2 { margin-bottom: 23px; font-size: 24px; line-height: 28px; font-weight: 600; letter-spacing: -0.24px; }
.footer-links .menu { grid-template-columns: 63% 37%; gap: 0; }
.footer-links .menu a { font-size: 18px; line-height: 38px; font-weight: 600; }
.footer-newsletter h2 { max-width: 340px; margin: 6px 0 39px; }
.newsletter-form { grid-template-columns: minmax(0, 1fr) 50px; border: 0; border-bottom: 1px solid rgb(255 255 255 / 20%); }
.newsletter-form input { padding: 0; height: 50px; background: transparent; font-size: 15px; }
.newsletter-form input::placeholder { color: #fff; opacity: 1; }
.newsletter-form button { width: 50px; height: 50px; }
.newsletter-form button svg { width: 16px; height: 16px; }
.footer-newsletter p { max-width: 285px; margin: 18px 0 0; font-size: 17px; line-height: 24px; }
.footer-newsletter p a { text-decoration: underline; }
.site-footer__bottom { padding: 33px 30px 44px; border-color: rgb(255 255 255 / 10%); font-size: 17px; line-height: 24px; }

/* Match the source's 1.25s entrance, while keeping no-JS content visible. */
.js [data-reveal].reveal-pending { opacity: 0; }
[data-reveal].reveal-entered {
  animation: component-move-up 1.25s ease var(--reveal-delay, 0ms) both;
}
[data-reveal="left"].reveal-entered { animation-name: component-move-left; }
@keyframes component-move-up {
  from { opacity: 0; transform: translateY(100px); }
  to { opacity: 1; transform: translateY(0); }
}
@keyframes component-move-left {
  from { opacity: 0; transform: translateX(100px); }
  to { opacity: 1; transform: translateX(0); }
}

@media (max-width: 1366px) {
  .projects-hero { padding-top: 80px; padding-bottom: 60px; }
  .projects-heading .section-title { font-size: 60px; line-height: 64px; }
  .projects-illustration { top: -120px; right: -60px; }
  .project-track { gap: 30px; }
  .project-card { flex-basis: calc((100% - 30px) / 2); }
  .testimonials-section__inner { gap: 60px; }
  .testimonial-copy .section-title { font-size: 60px; line-height: 64px; }
  .testimonial-slide p { font-size: 20px; margin-bottom: 30px; }
  .site-footer__inner { padding-inline: 30px; }
  .footer-links { padding-right: 30px; }
}
@media (max-width: 1024px) and (min-width: 768px) {
  .projects-heading .section-title, .testimonial-copy .section-title { font-size: 40px; line-height: 44px; }
  .testimonials-section__inner { gap: 30px; }
  .testimonial-visual__decoration { width: 150px; }
  .site-footer__inner { grid-template-columns: 1fr 1fr; gap: 40px; }
  .footer-newsletter { grid-column: 1 / -1; max-width: 500px; }
}
@media (max-width: 767px) {
  .projects-section { padding-bottom: 50px; }
  .projects-hero { padding: 80px 0 30px; }
  .projects-heading { width: 100%; }
  .projects-heading .section-title { font-size: 30px; line-height: 30px; letter-spacing: -0.3px; }
  .project-carousel.section-shell { width: calc(100% - 30px); }
  .project-card { flex-basis: 100%; }
  .project-card__media { height: 200px; }
  .project-card__content { min-height: 100px; padding: 30px 10px 20px; gap: 15px; }
  .project-card__content h3 { font-size: 22px; line-height: 1.20833; }
  .testimonials-section { background-size: auto; }
  .testimonials-section__inner { gap: 30px; }
  .testimonial-visual__photo img { height: 300px; aspect-ratio: auto; }
  .testimonial-heading .section-label { min-height: 29px; padding: 8px; margin-bottom: 20px; }
  .testimonial-copy .section-title { margin-bottom: 30px; font-size: 30px; line-height: 30px; letter-spacing: -0.3px; }
  .testimonial-slide { gap: 35px; }
  .testimonial-slide p { line-height: 28px; }
  .testimonial-slide cite { font-size: 22px; }
  .site-footer { padding: 80px 0 60px; text-align: center; background-attachment: scroll; }
  .site-footer__watermark { display: block; top: 40px; }
  .site-footer__inner { grid-template-columns: 1fr; gap: 30px; padding: 60px 15px; }
  .footer-about { align-items: center; }
  .footer-logo { margin: 0 0 20px; }
  .footer-links { padding: 0; }
  .footer-links .menu { grid-template-columns: repeat(2, 1fr); gap: 0; }
  .footer-links h2 { font-size: 20px; letter-spacing: -0.2px; }
  .footer-newsletter h2 { max-width: none; margin: 0 0 30px; font-size: 20px; letter-spacing: -0.2px; }
  .footer-newsletter p { max-width: none; }
  .site-footer__bottom { padding: 30px 15px; font-size: 17px; }
}
@media (prefers-reduced-motion: reduce) {
  .js [data-reveal].reveal-pending { opacity: 1; }
  [data-reveal].reveal-entered { animation: none; }
  .projects-illustration__motion { transform: none !important; transition: none; will-change: auto; }
}
