/* ---- Main-site footer (markup copied from index.html) ---- */
.pcFooter {
  background: #5b5b5b; color: #fff; padding: 30px 60px;
  font-family: var(--jt-model-font-body, "HarmonyOS Sans", "Roboto", Arial, sans-serif);
  font-size: 16px;
}
.pcFooter *,
.pcFooter *::before,
.pcFooter *::after { box-sizing: border-box; }
.pcFooter ul { margin: 0; padding: 0; list-style: none; }
.pcFooter p { margin: 0; }
.pcFooter a { color: inherit; text-decoration: none; }
.pcFooter img { display: block; max-width: 100%; }

/* layout */
.pcFooter .flex { display: flex; }
.pcFooter .block { display: block; }
.pcFooter .justify-between { justify-content: space-between; }
.pcFooter .justify-start { justify-content: flex-start; }
.pcFooter .items-center { align-items: center; }
.pcFooter .flex-wrap { flex-wrap: wrap; }
.pcFooter .content-start { align-content: flex-start; }
.pcFooter .w-full { width: 100%; }
.pcFooter .h-full { height: 100%; }
.pcFooter .w-550 { width: 550px; }
.pcFooter .w-34 { width: 34px; }
.pcFooter .h-34 { height: 34px; }

/* colour + type */
.pcFooter .color-\#fff { color: #fff; }
.pcFooter .text-24 { font-size: 24px; }
.pcFooter .text-18 { font-size: 18px; }
.pcFooter .text-16 { font-size: 16px; }
.pcFooter .text-14 { font-size: 14px; }

/* spacing */
.pcFooter .p-r-20 { padding-right: 20px; }
.pcFooter .m-b-20 { margin-bottom: 20px; }
.pcFooter .m-t-20 { margin-top: 20px; }
.pcFooter .m-t-40 { margin-top: 40px; }
.pcFooter .m-y-40 { margin-top: 40px; margin-bottom: 40px; }
.pcFooter .m-r-6 { margin-right: 6px; }

/* interaction */
.pcFooter .hover\:color-\#76a498:hover { color: #76a498; }
.pcFooter .hover\:opacity-70:hover { opacity: .7; }

/* "/" separator after every top-level link */
.pcFooter .after\:\[content\:\'\/\'\]:after { content: "/"; }
.pcFooter .after\:text-16:after { font-size: 16px; }
.pcFooter .after\:m-l-20:after { margin-left: 20px; }

/* rule above the company line */
.pcFooter .before\:content-empty:before { content: ""; }
/* The main site's UnoCSS preflight sets border-width: 0; without it the
   default "medium" (3px) border would turn this into a thick white bar. */
.pcFooter .before\:border-solid:before { border-style: solid; border-width: 0; }
.pcFooter .before\:bg-\#fff\/20:before { background-color: rgba(255, 255, 255, .2); }
.pcFooter .before\:w-full:before { width: 100%; }
.pcFooter .before\:block:before { display: block; }
/* Main site uses 0.01rem, i.e. 1px at 1920w and a sub-pixel hairline below. */
.pcFooter .before\:h-1:before { height: max(.5px, calc(100vw / 1920)); }

/* logo */
.pcFooter .logo { width: 150px; height: auto; object-fit: contain; }
.pcFooter .logo img { width: 100%; height: auto; object-fit: contain; }

@media (max-width: 479px) {
  .pcFooter .xs\:text-14 { font-size: 14px; }
}
@media (min-width: 768px) {
  .pcFooter .md\:text-16 { font-size: 16px; }
  .pcFooter .md\:text-14 { font-size: 14px; }
}
@media (max-width: 767px) {
  .pcFooter { padding: 24px 16px; }
  .pcFooter .footer-top { flex-direction: column; align-items: flex-start; gap: 20px; }
  .pcFooter .footer-top > ul { width: 100%; flex-wrap: wrap; }
  .pcFooter .footer-bottom { margin-top: 16px; }
  .pcFooter .footer-bottom > div { margin: 12px 0; font-size: 18px; }
}
