html:has(.fb-signage) {
  scroll-behavior: smooth;
}

@keyframes fb-drop {
  from {
    opacity: 0;
    transform: translateY(-36px) scale(.97);
  }

  to {
    opacity: 1;
    transform: none;
  }
}

@keyframes fb-title {
  from {
    clip-path: inset(-20% -5% 100%);
    transform: translateY(.18em);
  }

  to {
    clip-path: inset(-20% -5%);
    transform: none;
  }
}

@keyframes fb-fill {
  from {
    transform: scaleX(0);
  }

  to {
    transform: scaleX(1);
  }
}

@keyframes fb-nudge {
  0%, 100% {
    transform: none;
  }

  50% {
    transform: translateY(3px);
  }
}

@keyframes fb-label {
  from {
    opacity: 0;
    transform: translateY(-6px);
  }

  to {
    opacity: 1;
    transform: none;
  }
}

.fb-signage {
  --bg: #f3f1ec;
  --tile: #fbfaf7;
  --ink: #181a1b;
  --muted: #5b616b;
  --line: #dcd8d0;
  --slate: #4a5568;
  --on-slate: #fff;
  --slate-soft: #a0aec0;
  --cta: #a32136;
  --on-cta: #fff;
  --black: #181a1b;
  --black-2: #23272a;
  --on-black: #f3f1ec;
  --f-display: "Barlow Semi Condensed", "Arial Narrow", Arial, sans-serif;
  --f-body: Roboto, system-ui, "Segoe UI", sans-serif;
  --r: 6px;
  --g: clamp(16px, 3vw, 32px);
  --admin: 0px;
  --hdr: 5.5rem;
  background: var(--bg);
  color: var(--ink);
  font: 400 1rem/1.6 var(--f-body);
  min-height: 100vh;
  margin: 0;
}

.fb-signage.admin-bar {
  --admin: 32px;
}

@media (max-width: 782px) {
  .fb-signage.admin-bar {
    --admin: 46px;
  }
}

@media (prefers-color-scheme: dark) {
  .fb-signage:not([data-mode="light"]) {
    --bg: #121415;
    --tile: #1c1f21;
    --ink: #eceae5;
    --muted: #a3a8af;
    --line: #2c3033;
    --black: #0b0c0d;
    --black-2: #1e2225;
    --on-black: #eceae5;
    --lightningcss-light: ;
    --lightningcss-dark: initial;
    color-scheme: dark;
  }
}

.fb-signage[data-mode="dark"] {
  --bg: #121415;
  --tile: #1c1f21;
  --ink: #eceae5;
  --muted: #a3a8af;
  --line: #2c3033;
  --black: #0b0c0d;
  --black-2: #1e2225;
  --on-black: #eceae5;
  --lightningcss-light: ;
  --lightningcss-dark: initial;
  color-scheme: dark;
}

.fb-signage * {
  box-sizing: border-box;
}

.fb-signage :where(.fb-home, .site-header, .site-footer, .fb-basic) img {
  max-width: 100%;
  display: block;
}

.fb-signage :where(.fb-home, .site-header, .site-footer, .fb-basic) a {
  color: inherit;
}

.fb-signage :where(.fb-home, .site-header, .site-footer, .fb-basic) :-webkit-any(h1, h2, h3) {
  font-family: var(--f-display);
  letter-spacing: -.02em;
  text-wrap: balance;
  margin: 0;
  font-weight: 900;
  line-height: .98;
}

.fb-signage :where(.fb-home, .site-header, .site-footer, .fb-basic) :is(h1, h2, h3) {
  font-family: var(--f-display);
  letter-spacing: -.02em;
  text-wrap: balance;
  margin: 0;
  font-weight: 900;
  line-height: .98;
}

.fb-signage :where(.fb-home, .site-footer) p {
  margin: 0;
}

.fb-signage :focus-visible {
  outline: 3px solid var(--cta);
  outline-offset: 3px;
}

.fb-signage .screen-reader-text {
  clip: rect(0, 0, 0, 0);
  white-space: nowrap;
  border: 0;
  width: 1px;
  height: 1px;
  margin: -1px;
  padding: 0;
  overflow: hidden;
  position: absolute !important;
}

.fb-signage .sr-only {
  clip: rect(0, 0, 0, 0);
  white-space: nowrap;
  border: 0;
  width: 1px;
  height: 1px;
  margin: -1px;
  padding: 0;
  overflow: hidden;
  position: absolute !important;
}

.fb-signage .skip-link:focus {
  left: 1rem;
  top: calc(var(--admin) + 1rem);
  z-index: 100;
  clip: auto;
  white-space: normal;
  background: var(--ink);
  width: auto;
  height: auto;
  color: var(--bg);
  border-radius: var(--r);
  margin: 0;
  padding: .8rem 1rem;
  position: fixed !important;
}

.fb-signage .wrap {
  max-width: 1360px;
  padding-inline: var(--g);
  margin-inline-start: auto;
  margin-inline-end: auto;
}

.fb-signage .tag {
  font: 700 .72rem/1 var(--f-body);
  letter-spacing: .14em;
  text-transform: uppercase;
  border-radius: var(--r);
  background: var(--ink);
  color: var(--bg);
  align-self: flex-start;
  align-items: center;
  gap: .5rem;
  padding: .5rem .8rem;
  display: inline-flex;
}

.fb-signage .tag.y {
  background: var(--slate);
  color: var(--on-slate);
}

.fb-signage .muted {
  color: var(--muted);
}

.fb-signage .btn {
  border-radius: var(--r);
  font: 700 .92rem/1 var(--f-body);
  border: 2px solid var(--ink);
  background: var(--ink);
  color: var(--bg);
  cursor: pointer;
  align-items: center;
  gap: .6rem;
  padding: 1rem 1.4rem;
  text-decoration: none;
  transition: transform .2s, background .2s, color .2s;
  display: inline-flex;
}

.fb-signage .btn:hover {
  transform: translateY(-2px);
}

.fb-signage .btn.y {
  background: var(--cta);
  border-color: var(--cta);
  color: var(--on-cta);
}

.fb-signage .c-est .btn {
  background: var(--cta);
  border-color: var(--cta);
  color: var(--on-cta);
}

.fb-signage .contact-form .btn {
  background: var(--cta);
  border-color: var(--cta);
  color: var(--on-cta);
}

.fb-signage .btn.o {
  color: inherit;
  background: none;
  border-color: currentColor;
}

.fb-signage .arr {
  border-radius: var(--r);
  background: var(--ink);
  width: 34px;
  height: 34px;
  color: var(--bg);
  flex: none;
  place-items: center;
  transition: transform .25s;
  display: grid;
}

.fb-signage .arr svg {
  width: 14px;
  height: 14px;
}

.fb-signage a:hover > .arr {
  transform: rotate(-45deg);
}

.fb-signage a:hover .arr {
  transform: rotate(-45deg);
}

.fb-signage .hazard {
  background: repeating-linear-gradient(-45deg, var(--slate) 0 18px, var(--tile) 18px 36px);
  height: 14px;
}

.fb-signage .site-header {
  top: var(--admin);
  z-index: 10;
  background: color-mix(in srgb, var(--bg) 90%, transparent);
  -webkit-backdrop-filter: blur(10px);
  padding-block-start: .8rem;
  padding-block-end: .8rem;
  position: sticky;
}

.fb-signage .bar {
  background: var(--tile);
  border: 1px solid var(--line);
  border-radius: var(--r);
  align-items: center;
  gap: 1rem;
  padding: .5rem .5rem .5rem 1.1rem;
  display: flex;
}

.fb-signage .brand {
  align-items: center;
  gap: .6rem;
  text-decoration: none;
  display: flex;
}

.fb-signage .brand i {
  background: var(--ink);
  flex: none;
  width: 17px;
  height: 29px;
  -webkit-mask: url("../img/mark.png") center / contain no-repeat;
  mask: url("../img/mark.png") center / contain no-repeat;
}

.fb-signage .brand .wm {
  aspect-ratio: 957 / 150;
  width: auto;
  height: 25px;
  -webkit-mask: url("../img/wordmark.png") center / contain no-repeat;
  mask: url("../img/wordmark.png") center / contain no-repeat;
}

.fb-signage .bar nav {
  gap: .2rem;
  margin-left: auto;
  display: flex;
}

.fb-signage .bar nav ul {
  gap: .2rem;
  margin: 0;
  padding: 0;
  list-style: none;
  display: flex;
}

.fb-signage .bar nav a {
  border-radius: var(--r);
  padding: .55rem .85rem;
  font-size: .9rem;
  font-weight: 500;
  text-decoration: none;
  display: block;
}

.fb-signage .bar nav a:hover {
  background: var(--bg);
}

.fb-signage .bar nav .current-menu-item > a {
  background: var(--bg);
}

.fb-signage .bar .btn {
  padding: .75rem 1.1rem;
}

.fb-signage .mode {
  border: 1px solid var(--line);
  border-radius: var(--r);
  color: var(--ink);
  font: 700 .82rem/1 var(--f-body);
  cursor: pointer;
  background: none;
  align-items: center;
  gap: .45rem;
  padding: .62rem .8rem;
  transition: background .2s, border-color .2s;
  display: inline-flex;
}

.fb-signage .mode:hover {
  background: var(--bg);
  border-color: var(--ink);
}

.fb-signage .mode svg {
  width: 16px;
  height: 16px;
}

.fb-signage .mode .sun {
  display: none;
}

.fb-signage[data-mode="dark"] .mode .moon {
  display: none;
}

.fb-signage[data-mode="dark"] .mode .sun {
  display: block;
}

@media (prefers-color-scheme: dark) {
  .fb-signage:not([data-mode]) .mode .moon {
    display: none;
  }

  .fb-signage:not([data-mode]) .mode .sun {
    display: block;
  }
}

.fb-signage .bar nav + .mode {
  margin-left: .4rem;
}

@media (max-width: 1260px) {
  .fb-signage .bar nav a {
    padding-inline-start: .55rem;
    padding-inline-end: .55rem;
    font-size: .86rem;
  }

  .fb-signage .bar .mode span {
    display: none;
  }
}

@media (max-width: 1080px) {
  .fb-signage .bar nav {
    display: none;
  }

  .fb-signage .bar > :-webkit-any(.mode, .btn) {
    margin-left: auto;
  }

  .fb-signage .bar > :is(.mode, .btn) {
    margin-left: auto;
  }

  .fb-signage .bar .mode + .btn {
    margin-left: 0;
  }
}

@media (max-width: 520px) {
  .fb-signage .mode span {
    display: none;
  }

  .fb-signage .site-header .brand .wm {
    display: none;
  }
}

@media (max-width: 360px) {
  .fb-signage .bar .btn {
    padding-inline-start: .8rem;
    padding-inline-end: .8rem;
    font-size: .84rem;
  }
}

.fb-signage .bento {
  grid-template-columns: repeat(12, minmax(0, 1fr));
  gap: 12px;
  display: grid;
}

.fb-signage .t {
  background: var(--tile);
  border: 1px solid var(--line);
  border-radius: var(--r);
  flex-direction: column;
  gap: 1rem;
  min-width: 0;
  padding: max(1.3rem, min(2.5vw, 2rem));
  display: flex;
  position: relative;
  overflow: hidden;
}

.fb-signage .t.y {
  background: var(--slate);
  color: var(--on-slate);
  border-color: var(--slate);
}

.fb-signage .t.y .muted {
  color: #ffffffc7;
}

.fb-signage .t.k {
  background: var(--black);
  color: var(--on-black);
  border-color: var(--black);
}

.fb-signage .t.k .muted {
  color: #f4f4f1ad;
}

.fb-signage .t.k .arr {
  background: var(--on-black);
  color: var(--black);
}

.fb-signage .t.y .arr {
  background: var(--black);
  color: var(--on-black);
}

.fb-signage .t.img {
  min-height: 220px;
  padding: 0;
}

.fb-signage .t.img img {
  object-fit: cover;
  width: 100%;
  height: 100%;
  transition: transform .9s cubic-bezier(.2, .7, .2, 1);
  position: absolute;
  top: 0;
  bottom: 0;
  left: 0;
  right: 0;
}

.fb-signage .t.img:hover img {
  transform: scale(1.04);
}

.fb-signage .t.img .tag {
  z-index: 1;
  position: absolute;
  top: 1rem;
  left: 1rem;
}

.fb-signage .hero {
  padding-block-start: .6rem;
  padding-block-end: max(3rem, min(6vw, 5rem));
}

.fb-signage .h-main {
  grid-area: span 2 / 1 / auto / 8;
  justify-content: space-between;
  min-height: 480px;
}

.fb-signage .h-main h1 {
  font-size: max(2.5rem, min(6.6vw, 6.4rem));
}

.fb-signage .h-main .sub {
  font: 500 clamp(1.15rem, 2vw, 1.45rem)/1.35 var(--f-body);
  max-width: 26ch;
}

.fb-signage .h-main .bottom {
  gap: 1.4rem;
  display: grid;
}

.fb-signage .h-main .row {
  flex-wrap: wrap;
  gap: .7rem;
  display: flex;
}

.fb-signage .h-img {
  grid-column: 8 / 13;
}

.fb-signage .h-stat {
  grid-column: 8 / 10;
}

.fb-signage .h-stat2 {
  grid-column: 10 / 13;
}

.fb-signage .stat b {
  font: 900 clamp(2.8rem, 5vw, 4.2rem)/1 var(--f-display);
  font-variant-numeric: tabular-nums;
}

.fb-signage .stat span {
  letter-spacing: .06em;
  text-transform: uppercase;
  font-size: .85rem;
  font-weight: 700;
}

.fb-signage .h-svc {
  flex-direction: row;
  grid-column: span 4;
  justify-content: space-between;
  align-items: center;
  text-decoration: none;
}

.fb-signage .h-svc b {
  font: 900 1.5rem/1 var(--f-display);
}

.fb-signage .hero .bento {
  grid-template-rows: minmax(340px, 1fr) auto auto;
}

.fb-signage .hero .h-img {
  min-height: 340px;
}

.fb-signage .hero .stat {
  justify-content: flex-end;
  gap: .4rem;
  padding: 1rem 1.4rem;
}

.fb-signage .hero .stat b {
  font-size: max(2.2rem, min(3.4vw, 3.1rem));
}

.fb-signage .hero .stat span {
  font-size: .78rem;
}

@media (max-width: 980px) {
  .fb-signage .hero .bento {
    grid-template-rows: none;
  }

  .fb-signage .hero .h-img {
    min-height: 300px;
  }

  .fb-signage .h-main {
    grid-area: auto / 1 / auto / -1;
    min-height: 0;
  }

  .fb-signage .h-img {
    grid-column: 1 / -1;
  }

  .fb-signage .h-stat {
    grid-column: span 6;
  }

  .fb-signage .h-stat2 {
    grid-column: span 6;
  }

  .fb-signage .h-svc {
    grid-column: 1 / -1;
  }
}

@media (prefers-reduced-motion: no-preference) {
  .fb-signage .hero .t {
    animation: .75s cubic-bezier(.34, 1.56, .64, 1) both fb-drop;
  }

  .fb-signage .hero .h-img {
    animation-delay: 80ms;
  }

  .fb-signage .hero .h-stat {
    animation-delay: .16s;
  }

  .fb-signage .hero .h-stat2 {
    animation-delay: .22s;
  }

  .fb-signage .hero .h-svc:first-of-type {
    animation-delay: .28s;
  }

  .fb-signage .hero .h-svc:nth-of-type(2) {
    animation-delay: .34s;
  }

  .fb-signage .hero .h-svc:nth-of-type(3) {
    animation-delay: .4s;
  }

  .fb-signage .hero h1 {
    animation: .85s cubic-bezier(.65, 0, .25, 1) .3s both fb-title;
  }
}

.fb-signage .slides {
  position: absolute;
  top: 0;
  bottom: 0;
  left: 0;
  right: 0;
}

.fb-signage .slide {
  opacity: 0;
  transition: opacity 1.6s;
  position: absolute;
  top: 0;
  bottom: 0;
  left: 0;
  right: 0;
}

.fb-signage .slide.on {
  opacity: 1;
}

.fb-signage .t.img .slide img {
  transition: transform 6s cubic-bezier(.2, .6, .3, 1);
  transform: scale(1.12);
}

.fb-signage .t.img .slide.on img {
  transform: scale(1);
}

.fb-signage .slides-progress {
  z-index: 3;
  gap: 6px;
  display: flex;
  position: absolute;
  bottom: 1rem;
  right: 1rem;
}

.fb-signage .slides-progress span {
  background: #ffffff4d;
  border-radius: 2px;
  width: 22px;
  height: 3px;
  position: relative;
  overflow: hidden;
}

.fb-signage .slides-progress span.on:after {
  content: "";
  transform-origin: 0;
  animation: fb-fill var(--interval, 4s) linear forwards;
  background: #fff;
  position: absolute;
  top: 0;
  bottom: 0;
  left: 0;
  right: 0;
}

@media (prefers-reduced-motion: no-preference) {
  .fb-signage .slide-label {
    animation: .5s both fb-label;
  }
}

.fb-signage.is-armed :-webkit-any(.fb-home > section, .site-footer):not([data-revealed]) :-webkit-any(.t, .help-in, .skyline, .ft) {
  opacity: 0;
}

.fb-signage.is-armed :is(.fb-home > section, .site-footer):not([data-revealed]) :is(.t, .help-in, .skyline, .ft) {
  opacity: 0;
}

.fb-signage.is-armed :-webkit-any(.fb-home > section, .site-footer)[data-revealed] :-webkit-any(.t, .help-in, .skyline, .ft) {
  animation: .75s cubic-bezier(.34, 1.56, .64, 1) both fb-drop;
}

.fb-signage.is-armed :is(.fb-home > section, .site-footer)[data-revealed] :is(.t, .help-in, .skyline, .ft) {
  animation: .75s cubic-bezier(.34, 1.56, .64, 1) both fb-drop;
}

.fb-signage.is-armed [data-revealed] :-webkit-any(.t, .help-in, .skyline, .ft):nth-child(2) {
  animation-delay: 70ms;
}

.fb-signage.is-armed [data-revealed] :is(.t, .help-in, .skyline, .ft):nth-child(2) {
  animation-delay: 70ms;
}

.fb-signage.is-armed [data-revealed] :-webkit-any(.t, .help-in, .skyline, .ft):nth-child(3) {
  animation-delay: .14s;
}

.fb-signage.is-armed [data-revealed] :is(.t, .help-in, .skyline, .ft):nth-child(3) {
  animation-delay: .14s;
}

.fb-signage.is-armed [data-revealed] :-webkit-any(.t, .help-in, .skyline, .ft):nth-child(4) {
  animation-delay: .21s;
}

.fb-signage.is-armed [data-revealed] :is(.t, .help-in, .skyline, .ft):nth-child(4) {
  animation-delay: .21s;
}

.fb-signage.is-armed [data-revealed] :-webkit-any(.t, .help-in, .skyline, .ft):nth-child(5) {
  animation-delay: .28s;
}

.fb-signage.is-armed [data-revealed] :is(.t, .help-in, .skyline, .ft):nth-child(5) {
  animation-delay: .28s;
}

.fb-signage.is-armed [data-revealed] :-webkit-any(.t, .help-in, .skyline, .ft):nth-child(6) {
  animation-delay: .35s;
}

.fb-signage.is-armed [data-revealed] :is(.t, .help-in, .skyline, .ft):nth-child(6) {
  animation-delay: .35s;
}

.fb-signage.is-armed [data-revealed] :-webkit-any(.t, .help-in, .skyline, .ft):nth-child(n+7) {
  animation-delay: .42s;
}

.fb-signage.is-armed [data-revealed] :is(.t, .help-in, .skyline, .ft):nth-child(n+7) {
  animation-delay: .42s;
}

.fb-signage.is-armed .fb-home > section:not([data-revealed]) h2 {
  clip-path: inset(-20% -5% 100%);
}

.fb-signage.is-armed .fb-home > section[data-revealed] h2 {
  animation: .85s cubic-bezier(.65, 0, .25, 1) .25s both fb-title;
}

.fb-signage .fb-home section {
  padding-block-start: max(3rem, min(7vw, 5.5rem));
  padding-block-end: max(3rem, min(7vw, 5.5rem));
}

.fb-signage .fb-home section.flush-top {
  padding-top: 0;
}

.fb-signage .sec-title {
  flex-wrap: wrap;
  justify-content: space-between;
  align-items: flex-end;
  gap: 1.5rem;
  margin-bottom: 1.6rem;
  display: flex;
}

.fb-signage .sec-title h2 {
  margin-top: .9rem;
  font-size: max(2.2rem, min(5vw, 4rem));
}

.fb-signage .w-main {
  grid-column: 1 / 8;
}

.fb-signage .w-main h2 {
  font-size: max(2rem, min(4vw, 3.3rem));
}

.fb-signage .w-main .lede {
  max-width: 58ch;
  font-size: 1.1rem;
}

.fb-signage .w-img {
  grid-area: span 2 / 8 / auto / 13;
  min-height: 420px;
}

.fb-signage .w-p {
  grid-column: span 2;
}

.fb-signage .w-p b {
  font: 700 1.02rem/1.25 var(--f-body);
}

.fb-signage .w-p span {
  font-size: .9rem;
}

.fb-signage .w-p .ico {
  border-radius: var(--r);
  background: var(--slate);
  width: 40px;
  height: 40px;
  color: var(--on-slate);
  place-items: center;
  display: grid;
}

.fb-signage .w-p .ico svg {
  width: 20px;
  height: 20px;
}

.fb-signage .w-cta {
  flex-direction: row;
  grid-column: 1 / 8;
  justify-content: space-between;
  align-items: center;
  text-decoration: none;
}

.fb-signage .w-cta b {
  font: 900 1.2rem/1 var(--f-display);
}

.fb-signage .w-cta.t {
  padding-block-start: 1.1rem;
  padding-block-end: 1.1rem;
}

.fb-signage .w-p-wrap {
  grid-column: 1 / 8;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 12px;
  display: grid;
}

.fb-signage .w-p-wrap .w-p {
  grid-column: auto;
}

@media (max-width: 980px) {
  .fb-signage .w-main {
    grid-area: auto / 1 / auto / -1;
  }

  .fb-signage .w-img {
    grid-area: auto / 1 / auto / -1;
  }

  .fb-signage .w-cta {
    grid-area: auto / 1 / auto / -1;
  }

  .fb-signage .w-p-wrap {
    grid-area: auto / 1 / auto / -1;
  }

  .fb-signage .w-img {
    min-height: 300px;
  }

  .fb-signage .w-p-wrap {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}

@media (max-width: 460px) {
  .fb-signage .w-p-wrap {
    grid-template-columns: 1fr;
  }
}

.fb-signage .s-t {
  grid-column: span 4;
  padding: 0;
}

.fb-signage .s-t figure {
  margin: 0;
  position: relative;
  overflow: hidden;
}

.fb-signage .s-t img {
  aspect-ratio: 4 / 3;
  object-fit: cover;
  width: 100%;
  transition: transform .9s cubic-bezier(.2, .7, .2, 1);
}

.fb-signage .s-t:hover img {
  transform: scale(1.04);
}

.fb-signage .s-t .in {
  flex-direction: column;
  flex: 1;
  gap: .8rem;
  padding: 1.5rem 1.6rem 1.7rem;
  display: flex;
}

.fb-signage .s-t h3 {
  font-size: 1.9rem;
}

.fb-signage .s-t p {
  flex: 1;
}

.fb-signage .s-t a {
  border-top: 1px solid var(--line);
  justify-content: space-between;
  align-items: center;
  gap: 1rem;
  padding-top: 1rem;
  font-weight: 700;
  text-decoration: none;
  display: flex;
}

.fb-signage .s-t.k a {
  border-color: #ffffff26;
}

.fb-signage .s-t.y a {
  border-color: #00000026;
}

@media (max-width: 900px) {
  .fb-signage .s-t {
    grid-column: 1 / -1;
  }
}

.fb-signage .c-intro {
  grid-column: 1 / 9;
}

.fb-signage .c-intro h2 {
  font-size: max(2rem, min(4.4vw, 3.6rem));
}

.fb-signage .c-intro p {
  max-width: 62ch;
}

.fb-signage .c-est {
  grid-column: 9 / 13;
  justify-content: space-between;
}

.fb-signage .c-est .feat {
  gap: .9rem;
  display: grid;
}

.fb-signage .c-est .feat b {
  display: block;
}

.fb-signage .c-est .feat span {
  font-size: .92rem;
}

.fb-signage .c-est .btn {
  align-self: flex-start;
}

.fb-signage .c-card {
  color: #fff;
  grid-column: span 3;
  justify-content: flex-end;
  min-height: 430px;
  padding: 0;
  text-decoration: none;
}

.fb-signage .c-card img {
  object-fit: cover;
  width: 100%;
  height: 100%;
  transition: transform .9s cubic-bezier(.2, .7, .2, 1);
  position: absolute;
  top: 0;
  bottom: 0;
  left: 0;
  right: 0;
}

.fb-signage .c-card:hover img {
  transform: scale(1.05);
}

.fb-signage .c-card:after {
  content: "";
  background: linear-gradient(#0000 35%, #000000d9);
  position: absolute;
  top: 0;
  bottom: 0;
  left: 0;
  right: 0;
}

.fb-signage .c-card .in {
  z-index: 1;
  gap: .6rem;
  padding: 1.4rem;
  display: grid;
  position: relative;
}

.fb-signage .c-card h3 {
  color: #fff;
  font-size: 1.45rem;
}

.fb-signage .c-card p {
  color: #ffffffd9;
  font-size: .92rem;
}

.fb-signage .c-card .arr {
  z-index: 1;
  background: var(--on-black);
  color: var(--black);
  position: absolute;
  top: 1rem;
  right: 1rem;
}

@media (max-width: 1000px) {
  .fb-signage .c-intro {
    grid-column: 1 / -1;
  }

  .fb-signage .c-est {
    grid-column: 1 / -1;
  }

  .fb-signage .c-card {
    grid-column: span 6;
    min-height: 340px;
  }
}

@media (max-width: 540px) {
  .fb-signage .c-card {
    grid-column: 1 / -1;
    min-height: 300px;
  }
}

.fb-signage .fb-home section.help {
  padding: 0;
}

.fb-signage .help-in {
  background: var(--black);
  color: var(--on-black);
  border-radius: var(--r);
  grid-template-columns: minmax(0, 1.3fr) minmax(0, 1fr);
  display: grid;
  overflow: hidden;
}

.fb-signage .help-in .txt {
  flex-direction: column;
  gap: 1.2rem;
  padding: max(1.6rem, min(4vw, 3.4rem));
  display: flex;
}

.fb-signage .help-in h2 {
  font-size: max(2rem, min(4.4vw, 3.6rem));
}

.fb-signage .help-in p {
  color: #f4f4f1bf;
}

.fb-signage .help-in .nums {
  grid-template-rows: 1fr 1fr;
  display: grid;
}

.fb-signage .help-in .nums div {
  background: var(--slate);
  color: var(--on-slate);
  justify-content: space-between;
  align-items: flex-end;
  gap: 1rem;
  padding: 1.6rem 2rem;
  display: flex;
}

.fb-signage .help-in .nums div + div {
  background: var(--black-2);
  color: var(--on-black);
}

.fb-signage .help-in .nums b {
  font: 900 clamp(3.6rem, 8vw, 6rem)/.9 var(--f-display);
  font-variant-numeric: tabular-nums;
}

.fb-signage .help-in .nums span {
  letter-spacing: .08em;
  text-transform: uppercase;
  font-size: .82rem;
  font-weight: 700;
}

@media (max-width: 860px) {
  .fb-signage .help-in {
    grid-template-columns: 1fr;
  }
}

.fb-signage .filters {
  flex-wrap: wrap;
  gap: .5rem;
  display: flex;
}

.fb-signage .filters button {
  font: 700 .82rem/1 var(--f-body);
  border-radius: var(--r);
  border: 1px solid var(--line);
  background: var(--tile);
  color: var(--ink);
  cursor: pointer;
  padding: .7rem 1rem;
}

.fb-signage .filters button[aria-pressed="true"] {
  background: var(--ink);
  color: var(--bg);
  border-color: var(--ink);
}

.fb-signage .p {
  padding: 0;
  text-decoration: none;
  transition: scale .35s cubic-bezier(.2, .7, .2, 1);
}

.fb-signage .p:hover {
  scale: 1.03;
}

.fb-signage .p figure {
  aspect-ratio: 3 / 2;
  margin: 0;
  position: relative;
  overflow: hidden;
}

.fb-signage .p img {
  object-fit: cover;
  width: 100%;
  height: 100%;
  position: absolute;
  top: 0;
  bottom: 0;
  left: 0;
  right: 0;
}

.fb-signage .p .st {
  font: 700 .7rem/1 var(--f-body);
  letter-spacing: .12em;
  text-transform: uppercase;
  border-radius: var(--r);
  color: #111;
  background: #fff;
  align-items: center;
  gap: .45rem;
  padding: .5rem .75rem;
  display: flex;
  position: absolute;
  top: 1rem;
  left: 1rem;
}

.fb-signage .p .st:before {
  content: "";
  background: #2e9e5b;
  border-radius: 50%;
  width: 8px;
  height: 8px;
}

.fb-signage .p .st.wip {
  background: var(--slate);
  color: var(--on-slate);
}

.fb-signage .p .st.wip:before {
  background: var(--on-slate);
}

.fb-signage .p .in {
  justify-content: space-between;
  align-items: center;
  gap: 1rem;
  padding: 1.2rem 1.4rem;
  display: flex;
}

.fb-signage .p h3 {
  font-size: 1.15rem;
  line-height: 1.15;
}

.fb-signage .p small {
  color: var(--muted);
  letter-spacing: .1em;
  text-transform: uppercase;
  margin-top: .35rem;
  font-size: .7rem;
  font-weight: 700;
  display: block;
}

.fb-signage .fb-home section.hs {
  padding-block-start: max(4rem, min(9vw, 7rem));
  padding-block-end: max(4rem, min(9vw, 7rem));
}

.fb-signage .hs-frame > .wrap {
  width: 100%;
}

.fb-signage .hs-strip {
  padding: 0 var(--g);
  scroll-snap-type: x mandatory;
  scroll-padding-inline: var(--g);
  scrollbar-width: none;
  gap: 16px;
  margin: 0;
  list-style: none;
  display: flex;
  overflow-x: auto;
}

.fb-signage .hs-strip::-webkit-scrollbar {
  display: none;
}

.fb-signage .hs-slide {
  scroll-snap-align: start;
  flex: 0 0 min(40rem, 82vw, 150svh - 13.5rem);
}

.fb-signage .hs-slide[hidden] {
  display: none;
}

.fb-signage .hs-foot {
  justify-content: center;
  align-items: center;
  gap: 1.5rem;
  margin-top: 1.8rem;
  display: flex;
}

.fb-signage .hs-progress {
  flex: 1;
  grid-auto-columns: 1fr;
  grid-auto-flow: column;
  gap: 8px;
  margin: 0;
  padding: 0;
  list-style: none;
  display: none;
}

.fb-signage .hs-progress li {
  background: var(--line);
  border-radius: 2px;
  height: 3px;
  overflow: hidden;
}

.fb-signage .hs-progress li[hidden] {
  display: none;
}

.fb-signage .hs-progress span {
  background: var(--ink);
  transform-origin: 0;
  height: 100%;
  display: block;
}

.fb-signage .hs.is-pinned .hs-track {
  position: relative;
}

.fb-signage .hs.is-pinned .hs-frame {
  top: calc(var(--admin) + var(--hdr));
  height: calc(100svh - var(--admin) - var(--hdr));
  flex-direction: column;
  padding-block-start: 1rem;
  padding-block-end: 1.4rem;
  display: flex;
  position: sticky;
  overflow: hidden;
}

.fb-signage .hs.is-pinned .hs-frame .sec-title {
  margin-bottom: 1.2rem;
}

.fb-signage .hs.is-pinned .hs-viewport {
  flex: 1;
  min-height: 0;
  position: relative;
}

.fb-signage .hs.is-pinned .hs-strip {
  scroll-snap-type: none;
  will-change: transform;
  align-items: center;
  height: 100%;
  padding: 0;
  overflow: visible;
}

.fb-signage .hs.is-pinned .hs-slide {
  flex-basis: var(--hs-card, min(40rem, 82vw));
}

.fb-signage .hs.is-pinned .hs-foot {
  justify-content: flex-start;
  margin-top: 1.2rem;
}

.fb-signage .hs.is-pinned .hs-progress {
  display: grid;
}

@media (max-width: 640px) {
  .fb-signage .hs.is-pinned .hs-foot .btn {
    display: none;
  }
}

@media (max-height: 760px) {
  .fb-signage .hs.is-pinned .hs-frame {
    padding-block-start: .5rem;
    padding-block-end: .9rem;
  }

  .fb-signage .hs.is-pinned .hs-frame .sec-title {
    margin-bottom: .6rem;
  }

  .fb-signage .hs.is-pinned .hs-frame .sec-title h2 {
    margin-top: .4rem;
    font-size: max(1.8rem, min(3.6vw, 2.6rem));
  }

  .fb-signage .hs.is-pinned .hs-foot {
    margin-top: .6rem;
  }
}

.fb-signage .w-video img {
  filter: brightness(.72);
}

.fb-signage .w-video:hover img {
  filter: brightness(.8);
}

.fb-signage .yt-play {
  z-index: 1;
  color: #fff;
  place-items: center;
  text-decoration: none;
  display: grid;
  position: absolute;
  top: 0;
  bottom: 0;
  left: 0;
  right: 0;
}

.fb-signage .yt-play i {
  border-radius: var(--r);
  background: var(--on-black);
  place-items: center;
  width: 84px;
  height: 84px;
  transition: transform .3s;
  display: grid;
}

.fb-signage .yt-play:hover i {
  transform: scale(1.08);
}

.fb-signage .yt-play:focus-visible i {
  transform: scale(1.08);
}

.fb-signage .yt-play svg {
  width: 26px;
  fill: var(--black);
  margin-left: 4px;
}

.fb-signage .w-video > .tag {
  top: auto;
  bottom: 1rem;
}

.fb-signage .w-video.is-playing {
  background: #000;
}

.fb-signage .w-video iframe {
  border: 0;
  width: 100%;
  height: 100%;
  position: absolute;
  top: 0;
  bottom: 0;
  left: 0;
  right: 0;
}

.fb-signage .tm-head {
  grid-column: 1 / -1;
  grid-template-columns: minmax(0, 1.2fr) minmax(0, 1fr);
  align-items: end;
  gap: .8rem 2.5rem;
  display: grid;
}

.fb-signage .tm-head .tag {
  grid-column: 1 / -1;
  justify-self: start;
}

.fb-signage .tm-head h2 {
  font-size: max(1.9rem, min(3.6vw, 3rem));
}

.fb-signage .tm-head p {
  max-width: 46ch;
}

.fb-signage .tm-reviews {
  grid-column: 1 / -1;
  padding: max(.75rem, min(2vw, 1.5rem));
}

.fb-signage .tm-note {
  color: var(--muted);
  margin: 0;
  font-size: .95rem;
}

@media (max-width: 760px) {
  .fb-signage .tm-head {
    grid-template-columns: 1fr;
  }
}

.fb-signage .ct-a {
  grid-column: 1 / 6;
  justify-content: space-between;
}

.fb-signage .ct-a h2 {
  font-size: max(2.4rem, min(5vw, 4.2rem));
}

.fb-signage .ct-a .ph {
  gap: .3rem;
  display: grid;
}

.fb-signage .ct-a .ph span {
  letter-spacing: .1em;
  text-transform: uppercase;
  font-size: .82rem;
  font-weight: 700;
}

.fb-signage .ct-a .ph a {
  font: 900 clamp(1.6rem, 3vw, 2.3rem)/1 var(--f-display);
  text-decoration: none;
}

.fb-signage .ct-f {
  grid-column: 6 / 13;
}

.fb-signage .contact-form {
  grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
  gap: 1rem;
  display: grid;
}

.fb-signage .contact-form input[type="datetime-local"] {
  min-width: 0;
}

.fb-signage .fld {
  gap: .45rem;
  display: grid;
}

.fb-signage .fld.full {
  grid-column: 1 / -1;
}

.fb-signage .contact-form label {
  font-size: .82rem;
  font-weight: 700;
}

.fb-signage .contact-form label .opt {
  color: var(--muted);
  font-weight: 400;
}

.fb-signage .contact-form select:focus {
  border-color: var(--ink);
  outline: none;
}

.fb-signage .contact-form input {
  font: 400 1rem/1.4 var(--f-body);
  color: var(--ink);
  background: var(--bg);
  border: 1px solid var(--line);
  border-radius: var(--r);
  width: 100%;
  padding: .95rem 1rem;
}

.fb-signage .contact-form textarea {
  font: 400 1rem/1.4 var(--f-body);
  color: var(--ink);
  background: var(--bg);
  border: 1px solid var(--line);
  border-radius: var(--r);
  width: 100%;
  padding: .95rem 1rem;
}

.fb-signage .contact-form input:focus {
  border-color: var(--ink);
  outline: none;
}

.fb-signage .contact-form textarea:focus {
  border-color: var(--ink);
  outline: none;
}

.fb-signage .contact-form textarea {
  resize: vertical;
  min-height: 150px;
}

.fb-signage .contact-form .btn {
  grid-column: 1 / -1;
  justify-self: start;
}

.fb-signage .hp {
  width: 1px;
  height: 1px;
  position: absolute;
  left: -9999px;
  overflow: hidden;
}

.fb-signage .notice {
  border-radius: var(--r);
  border: 1px solid var(--line);
  grid-column: 1 / -1;
  padding: .85rem 1rem;
  font-size: .95rem;
}

.fb-signage .notice.ok {
  border-color: #2e9e5b;
}

.fb-signage .notice.err {
  border-color: var(--cta);
}

@media (max-width: 900px) {
  .fb-signage .ct-a {
    grid-column: 1 / -1;
  }

  .fb-signage .ct-f {
    grid-column: 1 / -1;
  }
}

@media (max-width: 480px) {
  .fb-signage .contact-form {
    grid-template-columns: 1fr;
  }
}

.fb-signage.fb-float-header .site-header {
  -webkit-backdrop-filter: none;
  background: none;
  position: absolute;
  left: 0;
  right: 0;
}

.fb-signage .pj-hero {
  min-height: 100vh;
  background: var(--black);
  color: #fff;
  min-height: 100svh;
  padding-block: calc(var(--admin) + 8rem) clamp(2.5rem, 6vw, 4.5rem);
  align-items: flex-end;
  display: flex;
  position: relative;
  overflow: hidden;
}

.fb-signage .pj-hero:after {
  content: "";
  z-index: 1;
  pointer-events: none;
  background: linear-gradient(#181a1b99 0%, #181a1b26 35%, #181a1b40 60%, #181a1be6 100%);
  position: absolute;
  top: 0;
  bottom: 0;
  left: 0;
  right: 0;
}

.fb-signage .pj-hero .slide img {
  object-fit: cover;
  width: 100%;
  height: 100%;
  transition: transform 7s cubic-bezier(.2, .6, .3, 1);
  transform: scale(1.12);
}

.fb-signage .pj-hero .slide.on img {
  transform: scale(1);
}

.fb-signage .pj-hero .slides-progress {
  top: calc(var(--admin) + 7.5rem);
  bottom: auto;
  right: var(--g);
}

.fb-signage .pj-hero .slides-progress span {
  width: 34px;
}

.fb-signage .pj-hero-in {
  z-index: 2;
  justify-items: start;
  gap: 1.2rem;
  width: 100%;
  display: grid;
  position: relative;
}

.fb-signage .pj-hero h1 {
  color: #fff;
  font-size: max(3.6rem, min(12vw, 10rem));
  line-height: .86;
}

.fb-signage .pj-hero-foot {
  border-top: 1px solid #ffffff40;
  flex-wrap: wrap;
  justify-content: space-between;
  justify-self: stretch;
  align-items: flex-end;
  gap: 2rem;
  margin-top: 1.2rem;
  padding-top: 1.4rem;
  display: flex;
}

.fb-signage .pj-counts {
  flex-wrap: wrap;
  gap: max(1.5rem, min(4vw, 3.5rem));
  margin: 0;
  display: flex;
}

.fb-signage .pj-counts div {
  gap: .2rem;
  display: grid;
}

.fb-signage .pj-counts dt {
  letter-spacing: .14em;
  text-transform: uppercase;
  color: #ffffffb8;
  order: 2;
  font-size: .72rem;
  font-weight: 700;
}

.fb-signage .pj-counts dd {
  font: 900 clamp(2rem, 4vw, 3rem)/1 var(--f-display);
  font-variant-numeric: tabular-nums;
  margin: 0;
}

.fb-signage .pj-cue {
  color: #fff;
  border-radius: var(--r);
  border: 1px solid #ffffff80;
  align-items: center;
  gap: .5rem;
  padding: .8rem 1.1rem;
  font-size: .9rem;
  font-weight: 700;
  text-decoration: none;
  display: inline-flex;
}

.fb-signage .pj-cue:hover {
  color: var(--black);
  background: #fff;
}

@media (prefers-reduced-motion: no-preference) {
  .fb-signage .pj-hero h1 {
    animation: .9s cubic-bezier(.65, 0, .25, 1) .2s both fb-title;
  }

  .fb-signage .pj-cue span {
    animation: 1.8s ease-in-out infinite fb-nudge;
    display: inline-block;
  }
}

.fb-signage .pj-list .filters {
  margin-bottom: 1.6rem;
}

.fb-signage .pj-grid {
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 16px;
  margin: 0;
  padding: 0;
  list-style: none;
  display: grid;
}

.fb-signage .pj-grid li[hidden] {
  display: none;
}

.fb-signage .pj-grid .p {
  height: 100%;
}

@media (max-width: 960px) {
  .fb-signage .pj-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}

@media (max-width: 560px) {
  .fb-signage .pj-grid {
    grid-template-columns: 1fr;
  }
}

.fb-signage .fb-projects section.help {
  margin-bottom: max(3rem, min(7vw, 5.5rem));
}

.fb-signage .pd-main {
  grid-column: 1 / 6;
  justify-content: space-between;
  min-height: 460px;
}

.fb-signage .pd-crumbs {
  color: #ffffffc7;
  flex-wrap: wrap;
  gap: .4rem;
  font-size: .8rem;
  display: flex;
}

.fb-signage .pd-crumbs a {
  text-decoration: none;
}

.fb-signage .pd-crumbs a:hover {
  color: #fff;
  text-decoration: underline;
}

.fb-signage .pd-crumbs [aria-current] {
  color: #fff;
}

.fb-signage .pd-head {
  justify-items: start;
  gap: 1rem;
  display: grid;
}

.fb-signage .pd-main h1 {
  font-size: max(2.2rem, min(4.4vw, 4.2rem));
}

.fb-signage .pd-chips {
  flex-wrap: wrap;
  gap: .4rem;
  display: flex;
}

.fb-signage .pd-chips .chip {
  font: 700 .7rem/1 var(--f-body);
  letter-spacing: .12em;
  text-transform: uppercase;
  border-radius: var(--r);
  color: #fff;
  background: #ffffff24;
  padding: .5rem .7rem;
}

.fb-signage .pd-status {
  font: 700 .7rem/1 var(--f-body);
  letter-spacing: .12em;
  text-transform: uppercase;
  border-radius: var(--r);
  color: #111;
  background: #fff;
  align-items: center;
  gap: .45rem;
  padding: .5rem .7rem;
  display: inline-flex;
}

.fb-signage .pd-status:before {
  content: "";
  background: #2e9e5b;
  border-radius: 50%;
  width: 8px;
  height: 8px;
}

.fb-signage .pd-status.wip:before {
  background: #d99a1e;
}

.fb-signage .pd-main .row {
  flex-wrap: wrap;
  gap: .7rem;
  display: flex;
}

.fb-signage .pd-photo {
  grid-column: 6 / 13;
  min-height: 460px;
}

.fb-signage .hero.pd-hero .bento {
  grid-template-rows: auto;
}

@media (max-width: 980px) {
  .fb-signage .pd-main {
    grid-column: 1 / -1;
  }

  .fb-signage .pd-photo {
    grid-column: 1 / -1;
  }

  .fb-signage .pd-main {
    min-height: 0;
  }

  .fb-signage .pd-photo {
    min-height: 300px;
  }
}

.fb-signage .pd-facts {
  grid-template-columns: repeat(auto-fit, minmax(170px, 1fr));
  gap: 12px;
  margin: 0;
  display: grid;
}

.fb-signage .pd-facts .t {
  gap: .35rem;
  padding: 1.1rem 1.3rem 1.2rem;
}

.fb-signage .pd-facts dt {
  letter-spacing: .12em;
  text-transform: uppercase;
  color: var(--muted);
  font-size: .72rem;
  font-weight: 700;
}

.fb-signage .pd-facts dd {
  font: 800 1.35rem/1.15 var(--f-display);
  margin: 0;
}

.fb-signage .pd-about {
  grid-column: 1 / 9;
}

.fb-signage .pd-about h2 {
  font-size: max(1.9rem, min(3.4vw, 2.8rem));
}

.fb-signage .pd-content {
  max-width: 68ch;
}

.fb-signage .pd-content p {
  color: var(--muted);
  margin: 0 0 1em;
  font-size: 1.05rem;
  line-height: 1.75;
}

.fb-signage .pd-content p:last-child {
  margin-bottom: 0;
}

.fb-signage .pd-content :-webkit-any(strong, b) {
  color: var(--ink);
}

.fb-signage .pd-content :is(strong, b) {
  color: var(--ink);
}

.fb-signage .pd-cta {
  grid-column: 9 / 13;
  justify-content: space-between;
  gap: 2rem;
}

.fb-signage .pd-cta > div {
  justify-items: start;
  gap: 1rem;
  display: grid;
}

.fb-signage .pd-cta h2 {
  font-size: max(1.6rem, min(2.6vw, 2.2rem));
}

.fb-signage .pd-phone {
  font: 900 clamp(1.5rem, 2.4vw, 2rem)/1 var(--f-display);
  text-decoration: none;
}

@media (max-width: 900px) {
  .fb-signage .pd-about {
    grid-column: 1 / -1;
  }

  .fb-signage .pd-cta {
    grid-column: 1 / -1;
  }
}

.fb-signage .pd-gallery {
  grid-template-columns: repeat(12, minmax(0, 1fr));
  align-items: start;
  gap: max(1rem, min(3vw, 2.25rem)) max(10px, min(1.6vw, 20px));
  margin: 0;
  padding: 0;
  list-style: none;
  display: grid;
}

.fb-signage .pd-frame {
  grid-column: 1 / -1;
}

.fb-signage .pd-frame[hidden] {
  display: none;
}

.fb-signage .pd-frame:nth-child(5n+2) {
  grid-column: 1 / 8;
}

.fb-signage .pd-frame:nth-child(5n+3) {
  grid-column: 8 / 13;
  margin-top: max(2rem, min(7vw, 6rem));
}

.fb-signage .pd-frame:nth-child(5n+4) {
  grid-column: 1 / 6;
  margin-top: max(2rem, min(7vw, 6rem));
}

.fb-signage .pd-frame:nth-child(5n+5) {
  grid-column: 6 / 13;
}

.fb-signage .pd-frame:nth-child(5n+2):last-child {
  grid-column: 1 / -1;
  margin-top: 0;
}

.fb-signage .pd-frame:nth-child(5n+4):last-child {
  grid-column: 1 / -1;
  margin-top: 0;
}

.fb-signage .pd-shot {
  border-radius: var(--r);
  background: var(--line);
  cursor: zoom-in;
  aspect-ratio: 21 / 9;
  display: block;
  position: relative;
  overflow: hidden;
}

.fb-signage .pd-frame:nth-child(5n+2) .pd-shot {
  aspect-ratio: 4 / 3;
}

.fb-signage .pd-frame:nth-child(5n+5) .pd-shot {
  aspect-ratio: 4 / 3;
}

.fb-signage .pd-frame:nth-child(5n+3) .pd-shot {
  aspect-ratio: 4 / 5;
}

.fb-signage .pd-frame:nth-child(5n+4) .pd-shot {
  aspect-ratio: 4 / 5;
}

.fb-signage .pd-frame:nth-child(5n+2):last-child .pd-shot {
  aspect-ratio: 21 / 9;
}

.fb-signage .pd-frame:nth-child(5n+4):last-child .pd-shot {
  aspect-ratio: 21 / 9;
}

.fb-signage .pd-shot img {
  object-fit: cover;
  width: 100%;
  height: 100%;
  transition: transform .7s cubic-bezier(.2, .7, .2, 1), scale 1.6s cubic-bezier(.2, .7, .2, 1);
}

.fb-signage .pd-shot:hover img {
  transform: scale(1.04);
}

.fb-signage .pd-num {
  font: 700 .7rem/1 var(--f-body);
  letter-spacing: .14em;
  color: #fff;
  border-radius: var(--r);
  -webkit-backdrop-filter: blur(4px);
  background: #0a0c0d73;
  padding: .35rem .5rem;
  position: absolute;
  bottom: .65rem;
  left: .75rem;
}

.fb-signage .pd-gallery-meta {
  font-size: .9rem;
}

.fb-signage .pd-more {
  justify-content: center;
  margin-top: max(2rem, min(5vw, 3.5rem));
  display: flex;
}

.fb-signage .pd-more[hidden] {
  display: none;
}

.fb-signage .pd-gallery.is-anim .pd-shot {
  clip-path: inset(100% 0 0);
  transition: clip-path 1.1s cubic-bezier(.65, 0, .25, 1);
}

.fb-signage .pd-gallery.is-anim .pd-shot img {
  scale: 1.18;
}

.fb-signage .pd-gallery.is-anim .pd-frame.in .pd-shot {
  clip-path: inset(0);
}

.fb-signage .pd-gallery.is-anim .pd-frame.in img {
  scale: 1;
}

@media (max-width: 760px) {
  .fb-signage .pd-frame:nth-child(n) {
    grid-column: 1 / -1;
    margin-top: 0;
  }

  .fb-signage .pd-frame:nth-child(n) .pd-shot {
    aspect-ratio: 4 / 3;
  }

  .fb-signage .pd-frame:nth-child(5n+1) .pd-shot {
    aspect-ratio: 16 / 10;
  }
}

.fb-signage .ed-hero {
  min-height: 100vh;
  background: var(--black);
  color: #fff;
  min-height: 100svh;
  padding-block: calc(var(--admin) + 8rem) clamp(2rem, 5vw, 3.5rem);
  align-items: flex-end;
  display: flex;
  position: relative;
  overflow: hidden;
}

.fb-signage .ed-hero-img {
  object-fit: cover;
  width: 100%;
  height: 100%;
  position: absolute;
  top: 0;
  bottom: 0;
  left: 0;
  right: 0;
}

.fb-signage .ed-hero:after {
  content: "";
  background: linear-gradient(#181a1b8c 0%, #181a1b0d 35%, #181a1b33 60%, #181a1bd9 100%);
  position: absolute;
  top: 0;
  bottom: 0;
  left: 0;
  right: 0;
}

.fb-signage .ed-hero-in {
  z-index: 1;
  width: 100%;
  position: relative;
}

.fb-signage .ed-kicker {
  font: 700 .75rem/1 var(--f-body);
  letter-spacing: .16em;
  text-transform: uppercase;
  border-bottom: 1px solid #fff6;
  justify-content: space-between;
  padding-bottom: .9rem;
  display: flex;
}

.fb-signage .ed-hero h1 {
  letter-spacing: -.02em;
  color: #fff;
  margin: .18em 0 .12em -.04em;
  font-size: max(4.5rem, min(19vw, 17rem));
  line-height: .8;
}

.fb-signage .ed-hero-foot {
  flex-wrap: wrap;
  justify-content: space-between;
  align-items: flex-end;
  gap: 1.5rem 2rem;
  display: flex;
}

.fb-signage .ed-tagline {
  font: 500 clamp(1.2rem, 2.2vw, 1.6rem)/1.3 var(--f-body);
}

.fb-signage .ed-switch {
  flex-wrap: wrap;
  gap: .4rem;
  display: flex;
}

.fb-signage .ed-switch a {
  color: #fff;
  border-radius: var(--r);
  border: 1px solid #ffffff73;
  padding: .7rem 1rem;
  font-size: .88rem;
  font-weight: 700;
  text-decoration: none;
}

.fb-signage .ed-switch a:hover {
  border-color: #fff;
}

.fb-signage .ed-switch a[aria-current] {
  color: var(--black);
  background: #fff;
  border-color: #fff;
}

.fb-signage .ed-label {
  font: 700 .75rem/1 var(--f-body);
  letter-spacing: .16em;
  text-transform: uppercase;
  color: var(--muted);
  align-items: center;
  gap: .7rem;
  display: flex;
}

.fb-signage .ed-label:before {
  content: "";
  background: var(--cta);
  width: 28px;
  height: 2px;
}

.fb-signage .fb-home section.ed-intro {
  padding-block-start: max(4rem, min(10vw, 8rem));
  padding-block-end: max(4rem, min(10vw, 8rem));
}

.fb-signage .ed-statement {
  max-width: 17ch;
  margin: 1.4rem 0 max(2rem, min(5vw, 3.5rem));
  font-size: max(2.4rem, min(6vw, 5.6rem));
  line-height: .98;
}

.fb-signage .ed-cols {
  border-top: 1px solid var(--line);
  grid-template-columns: minmax(0, 1fr) minmax(0, 1.5fr);
  gap: max(2rem, min(6vw, 6rem));
  padding-top: 2rem;
  display: grid;
}

.fb-signage .ed-cols > p {
  color: var(--muted);
  font-size: 1.15rem;
  line-height: 1.8;
}

.fb-signage .ed-cols-side {
  flex-direction: column;
  order: -1;
  align-items: flex-start;
  gap: 1.2rem;
  display: flex;
}

.fb-signage .ed-link {
  border-bottom: 2px solid;
  padding-bottom: .15rem;
  font-weight: 700;
  text-decoration: none;
}

.fb-signage .ed-band {
  height: max(320px, min(75vh, 780px));
  margin: 0;
  overflow: hidden;
}

.fb-signage .ed-band img {
  object-fit: cover;
  width: 100%;
  height: 100%;
}

.fb-signage .ed-list-in {
  grid-template-columns: minmax(0, 5fr) minmax(0, 7fr);
  align-items: start;
  gap: max(2rem, min(6vw, 6rem));
  display: grid;
}

.fb-signage .ed-list-head {
  top: calc(var(--admin) + var(--hdr) + 1rem);
  gap: 1.2rem;
  display: grid;
  position: sticky;
}

.fb-signage .ed-list-head h2 {
  font-size: max(2rem, min(4vw, 3.4rem));
  line-height: 1;
}

.fb-signage .ed-rows {
  border-top: 2px solid var(--ink);
  margin: 0;
  padding: 0;
  list-style: none;
}

.fb-signage .ed-rows li {
  border-bottom: 1px solid var(--line);
  grid-template-columns: 4rem minmax(0, 1fr);
  gap: .5rem 1rem;
  padding-block-start: 1.6rem;
  padding-block-end: 1.6rem;
  transition: padding .35s cubic-bezier(.2, .7, .2, 1);
  display: grid;
}

.fb-signage .ed-rows li:hover {
  padding-left: .8rem;
}

.fb-signage .ed-no {
  font: 700 .8rem/2.4 var(--f-body);
  letter-spacing: .1em;
  color: var(--muted);
  grid-row: span 2;
}

.fb-signage .ed-rows h3 {
  font-size: max(1.4rem, min(2.6vw, 2.1rem));
}

.fb-signage .ed-proc-head {
  grid-template-columns: minmax(0, 1.2fr) minmax(0, 1fr);
  align-items: end;
  gap: 1.5rem max(2rem, min(6vw, 6rem));
  margin-bottom: max(2.5rem, min(6vw, 4.5rem));
  display: grid;
}

.fb-signage .ed-proc-head > div {
  gap: 1.2rem;
  display: grid;
}

.fb-signage .ed-proc h2 {
  font-size: max(2.2rem, min(5vw, 4.4rem));
  line-height: 1;
}

.fb-signage .ed-steps {
  border-top: 2px solid var(--ink);
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 0 max(1rem, min(2.5vw, 2rem));
  margin: 0;
  padding: 0;
  list-style: none;
  display: grid;
}

.fb-signage .ed-steps li {
  align-content: start;
  gap: .8rem;
  padding-top: 1.6rem;
  display: grid;
}

.fb-signage .ed-big {
  font: 900 clamp(4rem, 8vw, 7rem)/.85 var(--f-display);
  color: #0000;
  -webkit-text-stroke: 1.5px var(--ink);
}

.fb-signage .ed-steps h3 {
  font-size: 1.4rem;
}

.fb-signage .ed-cta {
  border-top: 1px solid var(--line);
}

.fb-signage .ed-cta-link {
  font: 900 clamp(2.8rem, 10vw, 9.5rem)/.9 var(--f-display);
  letter-spacing: -.02em;
  justify-content: space-between;
  align-items: center;
  gap: 1.5rem;
  margin: 1.4rem 0 2.2rem;
  text-decoration: none;
  display: flex;
}

.fb-signage .ed-cta-link .arr {
  background: var(--cta);
  color: #fff;
  width: max(56px, min(8vw, 110px));
  height: max(56px, min(8vw, 110px));
}

.fb-signage .ed-cta-link .arr svg {
  width: 40%;
  height: 40%;
}

.fb-signage .ed-cta-foot {
  border-top: 1px solid var(--line);
  flex-wrap: wrap;
  justify-content: space-between;
  align-items: center;
  gap: 1rem 2rem;
  padding-top: 1.5rem;
  display: flex;
}

@media (max-width: 900px) {
  .fb-signage .ed-cols {
    grid-template-columns: 1fr;
  }

  .fb-signage .ed-list-in {
    grid-template-columns: 1fr;
  }

  .fb-signage .ed-proc-head {
    grid-template-columns: 1fr;
  }

  .fb-signage .ed-list-head {
    position: static;
  }

  .fb-signage .ed-steps {
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 2rem 1.5rem;
  }
}

@media (max-width: 560px) {
  .fb-signage .ed-steps {
    grid-template-columns: 1fr;
  }

  .fb-signage .ed-rows li {
    grid-template-columns: 2.6rem minmax(0, 1fr);
  }
}

.fb-signage .ed-hero.is-long h1 {
  margin-top: .3em;
  font-size: max(3.4rem, min(12vw, 11.5rem));
  line-height: .86;
}

.fb-signage .ed-hero h1 span {
  color: #ffffff38;
  -webkit-text-stroke: clamp(1.5px, .25vw, 3px) #fff;
}

.fb-signage .ed-hero-lead {
  justify-items: start;
  gap: 1.2rem;
  max-width: 46ch;
  display: grid;
}

.fb-signage .ed-hero-lead p {
  color: #ffffffe0;
  font-size: max(1rem, min(1.5vw, 1.15rem));
  line-height: 1.6;
}

.fb-signage .ed-steps.n3 {
  grid-template-columns: repeat(3, minmax(0, 1fr));
}

.fb-signage .ed-row {
  flex-wrap: wrap;
  align-items: center;
  gap: 1rem 1.4rem;
  display: flex;
}

.fb-signage .fb-home section.cl-offer {
  padding-top: 0;
}

.fb-signage .cl-offer-in {
  background: var(--black);
  color: var(--on-black);
  border-radius: var(--r);
  grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
  align-items: center;
  gap: max(2rem, min(5vw, 5rem));
  padding: max(1.6rem, min(5vw, 4.5rem));
  display: grid;
}

.fb-signage .cl-offer-txt {
  align-content: start;
  gap: 1.2rem;
  display: grid;
}

.fb-signage .cl-offer .ed-label {
  color: var(--slate-soft);
}

.fb-signage .cl-offer h2 {
  color: var(--on-black);
  font-size: max(2rem, min(4.2vw, 3.6rem));
  line-height: 1;
}

.fb-signage .cl-offer-lead {
  color: #f4f4f1d9;
  font-size: 1.1rem;
}

.fb-signage .cl-includes {
  letter-spacing: .12em;
  text-transform: uppercase;
  color: var(--slate-soft);
  margin-top: .4rem;
  font-size: .8rem;
  font-weight: 700;
}

.fb-signage .cl-ticks {
  gap: .9rem;
  margin: 0;
  padding: 0;
  list-style: none;
  display: grid;
}

.fb-signage .cl-ticks li {
  gap: .2rem;
  padding-left: 2rem;
  display: grid;
  position: relative;
}

.fb-signage .cl-ticks li:before {
  content: "";
  background: var(--cta) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' fill='none' stroke='%23fff' stroke-width='2.4'%3E%3Cpath d='M3.5 8.5l3 3 6-7'/%3E%3C/svg%3E") center / 72% no-repeat;
  border-radius: 4px;
  width: 1.15rem;
  height: 1.15rem;
  position: absolute;
  top: .15rem;
  left: 0;
}

.fb-signage .cl-ticks b {
  font-weight: 700;
}

.fb-signage .cl-ticks span {
  color: #f4f4f1b3;
  font-size: .95rem;
}

.fb-signage .cl-form {
  background: var(--tile);
  color: var(--ink);
  border-radius: var(--r);
  padding: max(1.3rem, min(3vw, 2.2rem));
}

.fb-signage .cl-form .contact-form .btn {
  justify-content: center;
  justify-self: stretch;
}

.fb-signage .contact-form select {
  font: 400 1rem/1.4 var(--f-body);
  color: var(--ink);
  background: var(--bg);
  border: 1px solid var(--line);
  border-radius: var(--r);
  width: 100%;
  padding: .95rem 1rem;
}

.fb-signage .cl-svc-head {
  gap: 1.2rem;
  margin-bottom: max(2rem, min(4vw, 3rem));
  display: grid;
}

.fb-signage .cl-svc-head h2 {
  font-size: max(2.2rem, min(5vw, 4.4rem));
  line-height: 1;
}

.fb-signage .cl-svc-list {
  border-top: 2px solid var(--ink);
  padding: 0;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: max(1rem, min(2.5vw, 2rem));
  margin: 0;
  padding-top: max(1.4rem, min(3vw, 2rem));
  list-style: none;
  display: grid;
}

.fb-signage .cl-svc-list a {
  gap: .7rem;
  text-decoration: none;
  display: grid;
}

.fb-signage .cl-svc-list figure {
  border-radius: var(--r);
  aspect-ratio: 4 / 5;
  background: var(--line);
  margin: 0 0 .5rem;
  overflow: hidden;
}

.fb-signage .cl-svc-list img {
  object-fit: cover;
  width: 100%;
  height: 100%;
  transition: transform .9s cubic-bezier(.2, .7, .2, 1);
}

.fb-signage .cl-svc-list a:hover img {
  transform: scale(1.05);
}

.fb-signage .cl-svc-list .ed-no {
  grid-row: auto;
  line-height: 1;
}

.fb-signage .cl-svc-list h3 {
  font-size: max(1.4rem, min(2.2vw, 1.9rem));
  line-height: 1.05;
}

.fb-signage .cl-svc-go {
  align-items: center;
  gap: .7rem;
  margin-top: .3rem;
  font-weight: 700;
  display: inline-flex;
}

@media (max-width: 900px) {
  .fb-signage .ed-steps.n3 {
    grid-template-columns: 1fr;
  }

  .fb-signage .cl-offer-in {
    grid-template-columns: 1fr;
  }

  .fb-signage .cl-svc-list {
    grid-template-columns: 1fr 1fr;
  }

  .fb-signage .cl-svc-list li:last-child {
    grid-column: 1 / -1;
  }

  .fb-signage .cl-svc-list li:last-child figure {
    aspect-ratio: 16 / 9;
  }
}

@media (max-width: 560px) {
  .fb-signage .cl-svc-list {
    grid-template-columns: 1fr;
  }

  .fb-signage .cl-svc-list figure {
    aspect-ratio: 4 / 3;
  }
}

.fb-signage .ab-known {
  margin-top: max(2.5rem, min(6vw, 4.5rem));
}

.fb-signage .ab-pair {
  grid-template-columns: repeat(12, minmax(0, 1fr));
  align-items: start;
  gap: max(10px, min(1.6vw, 20px));
  display: grid;
}

.fb-signage .ab-pair figure {
  border-radius: var(--r);
  background: var(--line);
  margin: 0;
  overflow: hidden;
}

.fb-signage .ab-pair img {
  object-fit: cover;
  width: 100%;
  height: 100%;
}

.fb-signage .ab-pair figure:first-child {
  aspect-ratio: 4 / 3;
  grid-column: 1 / 8;
}

.fb-signage .ab-pair figure:last-child {
  aspect-ratio: 4 / 5;
  grid-column: 8 / 13;
  margin-top: max(2rem, min(8vw, 7rem));
}

.fb-signage .ab-stats dl {
  border-top: 2px solid var(--ink);
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 0 max(1rem, min(2.5vw, 2rem));
  margin: 0;
  display: grid;
}

.fb-signage .ab-stats dl > div {
  flex-direction: column-reverse;
  justify-content: flex-end;
  gap: .6rem;
  padding-top: 1.4rem;
  display: flex;
}

.fb-signage .ab-stats dd {
  font: 900 clamp(3.4rem, 7vw, 6.5rem)/.85 var(--f-display);
  font-variant-numeric: tabular-nums;
  margin: 0;
}

.fb-signage .ab-stats dt {
  letter-spacing: .12em;
  text-transform: uppercase;
  color: var(--muted);
  font-size: .78rem;
  font-weight: 700;
}

.fb-signage .fb-home section.ab-video-sec {
  padding-top: 0;
}

.fb-signage .ed-video {
  aspect-ratio: 16 / 9;
  border-radius: var(--r);
  background: #000;
  position: relative;
  overflow: hidden;
}

.fb-signage .ed-video img {
  object-fit: cover;
  filter: brightness(.68);
  width: 100%;
  height: 100%;
  transition: filter .4s;
  position: absolute;
  top: 0;
  bottom: 0;
  left: 0;
  right: 0;
}

.fb-signage .ed-video:hover img {
  filter: brightness(.78);
}

.fb-signage .ed-video iframe {
  border: 0;
  width: 100%;
  height: 100%;
  position: absolute;
  top: 0;
  bottom: 0;
  left: 0;
  right: 0;
}

.fb-signage .ed-video-cap {
  color: #fff;
  font: 900 clamp(1.5rem, 3.6vw, 3.2rem)/1 var(--f-display);
  pointer-events: none;
  margin: 0;
  position: absolute;
  bottom: max(1rem, min(3vw, 2.2rem));
  left: max(1rem, min(3vw, 2.5rem));
  right: 40%;
}

.fb-signage .fb-home section.ab-beliefs {
  background: var(--black);
  color: var(--on-black);
  padding-block-start: max(4rem, min(10vw, 8rem));
  padding-block-end: max(4rem, min(10vw, 8rem));
}

.fb-signage .ab-beliefs .ed-label {
  color: var(--slate-soft);
}

.fb-signage .ab-beliefs h2 {
  color: var(--on-black);
  margin: 1.2rem 0 max(2rem, min(5vw, 3.5rem));
  font-size: max(2.4rem, min(6vw, 5.4rem));
  line-height: .95;
}

.fb-signage .ab-vm {
  border-top: 1px solid #fff3;
  grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
  gap: 1.5rem max(2rem, min(6vw, 6rem));
  padding-top: 2rem;
  display: grid;
}

.fb-signage .ab-vm h3 {
  font: 700 .78rem/1 var(--f-body);
  letter-spacing: .14em;
  text-transform: uppercase;
  color: var(--slate-soft);
  margin-bottom: 1rem;
}

.fb-signage .ab-vm p {
  font: 700 clamp(1.35rem, 2.4vw, 2rem)/1.25 var(--f-display);
}

.fb-signage .ab-motto {
  border-top: 1px solid #fff3;
  margin: max(3rem, min(7vw, 5.5rem)) 0 0;
  padding-top: 2rem;
}

.fb-signage .ab-motto figcaption {
  font: 700 .78rem/1 var(--f-body);
  letter-spacing: .14em;
  text-transform: uppercase;
  color: var(--slate-soft);
}

.fb-signage .ab-motto blockquote {
  margin: 1.2rem 0 0;
}

.fb-signage .ab-motto p {
  font: 900 clamp(2.4rem, 7.5vw, 7rem)/.95 var(--f-display);
  letter-spacing: -.01em;
  color: var(--on-black);
}

.fb-signage .ab-motto p:before {
  content: "“";
  color: var(--cta);
  margin-right: .05em;
}

.fb-signage .ab-links-in {
  grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
  gap: 2.5rem max(2rem, min(6vw, 6rem));
  display: grid;
}

.fb-signage .ab-links ul {
  border-top: 2px solid var(--ink);
  margin: 1.2rem 0 0;
  padding: 0;
  list-style: none;
}

.fb-signage .ab-links li a {
  border-bottom: 1px solid var(--line);
  justify-content: space-between;
  align-items: center;
  gap: 1rem;
  padding: 1.1rem 0;
  text-decoration: none;
  transition: padding .35s cubic-bezier(.2, .7, .2, 1);
  display: flex;
}

.fb-signage .ab-links li a:hover {
  padding-left: .8rem;
}

.fb-signage .ab-links li span {
  font: 800 clamp(1.5rem, 3vw, 2.4rem)/1 var(--f-display);
}

@media (max-width: 900px) {
  .fb-signage .ab-stats dl {
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 1.5rem;
  }

  .fb-signage .ab-vm {
    grid-template-columns: 1fr;
  }

  .fb-signage .ab-links-in {
    grid-template-columns: 1fr;
  }

  .fb-signage .ed-video-cap {
    right: 1rem;
  }
}

@media (max-width: 600px) {
  .fb-signage .ab-pair figure:first-child {
    aspect-ratio: 4 / 3;
    grid-column: 1 / -1;
    margin-top: 0;
  }

  .fb-signage .ab-pair figure:last-child {
    aspect-ratio: 4 / 3;
    grid-column: 1 / -1;
    margin-top: 0;
  }
}

.fb-signage .ed-hero.is-short {
  min-height: 78vh;
  min-height: 78svh;
}

.fb-signage .ct-lines {
  border-top: 2px solid var(--ink);
  margin: 0;
  padding: 0;
  list-style: none;
}

.fb-signage .ct-lines a {
  border-bottom: 1px solid var(--line);
  grid-template-columns: minmax(8rem, 1fr) minmax(0, 4fr) auto;
  align-items: center;
  gap: .5rem 1.5rem;
  padding: max(1.1rem, min(2.5vw, 1.8rem)) 0;
  text-decoration: none;
  transition: padding .35s cubic-bezier(.2, .7, .2, 1);
  display: grid;
}

.fb-signage .ct-lines a:hover {
  padding-left: .8rem;
}

.fb-signage .ct-k {
  font: 700 .75rem/1 var(--f-body);
  letter-spacing: .14em;
  text-transform: uppercase;
  color: var(--muted);
}

.fb-signage .ct-v {
  font: 800 clamp(1.5rem, 4vw, 3.4rem)/1.05 var(--f-display);
  overflow-wrap: anywhere;
}

.fb-signage .ct-msg-in {
  grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
  align-items: stretch;
  gap: max(2rem, min(5vw, 4.5rem));
  display: grid;
}

.fb-signage .ct-msg-form {
  align-content: start;
  gap: 1.1rem;
  display: grid;
}

.fb-signage .ct-msg-form h2 {
  font-size: max(2.2rem, min(4.6vw, 4rem));
  line-height: 1;
}

.fb-signage .ct-msg-form .contact-form {
  margin-top: .8rem;
}

.fb-signage .ct-map {
  border-radius: var(--r);
  background: var(--line);
  min-height: 420px;
  position: relative;
  overflow: hidden;
}

.fb-signage .ct-map iframe {
  border: 0;
  width: 100%;
  height: 100%;
  position: absolute;
  top: 0;
  bottom: 0;
  left: 0;
  right: 0;
}

@media (max-width: 900px) {
  .fb-signage .ct-msg-in {
    grid-template-columns: 1fr;
  }

  .fb-signage .ct-map {
    min-height: 340px;
  }
}

@media (max-width: 560px) {
  .fb-signage .ct-lines a {
    grid-template-columns: minmax(0, 1fr) auto;
  }

  .fb-signage .ct-k {
    grid-column: 1 / -1;
  }
}

.fb-signage .pr-steps {
  border-top: 2px solid var(--ink);
  margin: 0;
  padding: 0;
  list-style: none;
}

.fb-signage .pr-steps li {
  border-bottom: 1px solid var(--line);
  grid-template-columns: max(5rem, min(9vw, 8rem)) minmax(0, 1fr);
  gap: 1.5rem;
  padding-block-start: max(2rem, min(5vw, 3.5rem));
  padding-block-end: max(2rem, min(5vw, 3.5rem));
  transition: opacity .5s;
  display: grid;
}

.fb-signage .pr-steps .ed-big {
  font-size: max(3.4rem, min(7vw, 6.2rem));
  transition: color .5s;
}

.fb-signage .pr-steps h3 {
  margin-top: .3rem;
  font-size: max(1.6rem, min(3vw, 2.5rem));
  line-height: 1.05;
}

.fb-signage .pr-steps p {
  max-width: 52ch;
  margin-top: .8rem;
  font-size: 1.08rem;
  line-height: 1.75;
}

.fb-signage .pr-journey.is-live .pr-steps li {
  opacity: .3;
}

.fb-signage .pr-journey.is-live .pr-steps li.on {
  opacity: 1;
}

.fb-signage .pr-journey.is-live .pr-steps li.on .ed-big {
  color: var(--ink);
}

.fb-signage .pr-meter {
  gap: .8rem;
  max-width: 22rem;
  display: grid;
}

.fb-signage .pr-meter > span:first-child {
  font: 700 .8rem/1 var(--f-body);
  letter-spacing: .12em;
  color: var(--muted);
}

.fb-signage .pr-meter b {
  font: 900 2.6rem/1 var(--f-display);
  color: var(--ink);
  letter-spacing: 0;
  font-variant-numeric: tabular-nums;
  margin-right: .2rem;
}

.fb-signage .pr-bar {
  background: var(--line);
  border-radius: 2px;
  height: 3px;
  position: relative;
  overflow: hidden;
}

.fb-signage .pr-bar i {
  background: var(--cta);
  transform-origin: 0;
  transform: scaleX(var(--p, 1));
  position: absolute;
  top: 0;
  bottom: 0;
  left: 0;
  right: 0;
}

@media (max-width: 900px) {
  .fb-signage .pr-meter {
    display: none;
  }
}

@media (max-width: 560px) {
  .fb-signage .pr-steps li {
    grid-template-columns: 1fr;
    gap: .4rem;
  }
}

.fb-signage .fp-in {
  grid-template-columns: minmax(0, 4fr) minmax(0, 8fr);
  align-items: stretch;
  gap: max(2rem, min(4.5vw, 4.5rem));
  display: grid;
}

.fb-signage .fp-side {
  top: calc(var(--admin) + var(--hdr) + 1rem);
  align-self: start;
  gap: 1.2rem;
  display: grid;
  position: sticky;
}

.fb-signage .fp-side h2 {
  font-size: max(2.2rem, min(4.6vw, 4rem));
  line-height: 1;
}

.fb-signage .fp-asks-h {
  font: 700 .75rem/1 var(--f-body);
  letter-spacing: .14em;
  text-transform: uppercase;
  color: var(--muted);
  margin-top: .6rem;
}

.fb-signage .fp-asks {
  border-top: 2px solid var(--ink);
  counter-reset: ask;
  margin: 0;
  padding: 0;
  list-style: none;
}

.fb-signage .fp-asks li {
  counter-increment: ask;
  border-bottom: 1px solid var(--line);
  grid-template-columns: 2.6rem minmax(0, 1fr);
  padding: .9rem 0;
  font-weight: 500;
  display: grid;
}

.fb-signage .fp-asks li:before {
  content: counter(ask, decimal-leading-zero);
  font: 700 .8rem/1.6 var(--f-body);
  letter-spacing: .1em;
  color: var(--muted);
}

.fb-signage .fp-direct {
  gap: .4rem;
  display: grid;
}

.fb-signage .fp-direct a {
  font: 800 clamp(1.3rem, 2.4vw, 1.8rem)/1.2 var(--f-display);
  overflow-wrap: anywhere;
  text-decoration: none;
}

.fb-signage .fp-form {
  background: var(--tile);
  border: 1px solid var(--line);
  border-radius: var(--r);
  min-height: 100%;
  padding: max(1.4rem, min(4.5vw, 3.6rem));
}

.fb-signage .fp-sec .fp-form .ff-el-group {
  margin-bottom: max(1.4rem, min(2.5vw, 2rem)) !important;
}

.fb-signage .fp-sec .fp-form .ff-el-input--label label {
  font: 700 clamp(1rem, 1.3vw, 1.15rem)/1.35 var(--f-body) !important;
}

.fb-signage .fp-sec .fp-form .ff-el-form-check label {
  font-size: 1.08rem !important;
}

.fb-signage .fp-sec .fp-form .ff-el-form-check-label {
  font-size: 1.08rem !important;
}

.fb-signage .fp-sec .fp-form .ff-el-form-check-input {
  width: 1.15rem;
  height: 1.15rem;
  accent-color: var(--cta);
  vertical-align: -.15rem;
}

.fb-signage .fp-sec .fp-form :-webkit-any(.ff-el-form-control, select.ff-el-form-control) {
  padding: 1.05rem 1.2rem !important;
  font-size: 1.08rem !important;
}

.fb-signage .fp-sec .fp-form :is(.ff-el-form-control, select.ff-el-form-control) {
  padding: 1.05rem 1.2rem !important;
  font-size: 1.08rem !important;
}

.fb-signage .fp-sec .fp-form :-webkit-any(.ff-btn-submit, .ff-btn-next, .ff-btn-prev) {
  padding: 1.1rem 1.9rem !important;
  font-size: 1rem !important;
}

.fb-signage .fp-sec .fp-form :is(.ff-btn-submit, .ff-btn-next, .ff-btn-prev) {
  padding: 1.1rem 1.9rem !important;
  font-size: 1rem !important;
}

.fb-signage .fp-sec .fp-form .ff-step-header {
  margin-bottom: max(1.6rem, min(3vw, 2.4rem)) !important;
}

.fb-signage .fp-sec .fp-form .ff-el-progress-status {
  letter-spacing: .12em;
  text-transform: uppercase;
  font: 700 .82rem/1 var(--f-body) !important;
  color: var(--muted) !important;
  margin-bottom: .9rem !important;
}

.fb-signage .fp-sec .fp-form .ff-el-progress {
  overflow: hidden;
  background: var(--line) !important;
  border-radius: 99px !important;
  height: 10px !important;
}

.fb-signage .fp-sec .fp-form .ff-el-progress-bar {
  border-radius: 99px;
  background: var(--cta) !important;
}

.fb-signage .fp-sec .fp-form .ff-el-progress-bar span {
  display: none !important;
}

.fb-signage .fp-sec .fp-form .ff_upload_btn.ff-btn {
  justify-content: center;
  align-items: center;
  width: 100%;
  min-height: 7.5rem;
  font: 700 1rem/1.3 var(--f-body) !important;
  color: var(--ink) !important;
  background: var(--bg) !important;
  border: 2px dashed color-mix(in srgb, var(--ink) 30%, transparent) !important;
  border-radius: var(--r) !important;
  padding: 1.5rem !important;
  display: flex !important;
}

.fb-signage .fp-sec .fp-form .ff_upload_btn.ff-btn:before {
  content: "↑";
  margin-right: .6rem;
  font-size: 1.2rem;
}

.fb-signage .fp-sec .fp-form .ff_upload_btn.ff-btn:hover {
  border-color: var(--ink) !important;
}

@media (max-width: 900px) {
  .fb-signage .fp-in {
    grid-template-columns: 1fr;
  }

  .fb-signage .fp-side {
    position: static;
  }

  .fb-signage .fp-form {
    min-height: 0;
  }
}

.fb-signage :-webkit-any(.fp-form, .cl-form) :-webkit-any(.ff-el-form-control, select.ff-el-form-control) {
  font: 400 1rem/1.4 var(--f-body) !important;
  color: var(--ink) !important;
  background: var(--bg) !important;
  border: 1px solid var(--line) !important;
  border-radius: var(--r) !important;
  box-shadow: none !important;
  padding: .9rem 1rem !important;
}

.fb-signage :is(.fp-form, .cl-form) :is(.ff-el-form-control, select.ff-el-form-control) {
  font: 400 1rem/1.4 var(--f-body) !important;
  color: var(--ink) !important;
  background: var(--bg) !important;
  border: 1px solid var(--line) !important;
  border-radius: var(--r) !important;
  box-shadow: none !important;
  padding: .9rem 1rem !important;
}

.fb-signage :-webkit-any(.fp-form, .cl-form) .ff-el-form-control:focus {
  border-color: var(--ink) !important;
}

.fb-signage :is(.fp-form, .cl-form) .ff-el-form-control:focus {
  border-color: var(--ink) !important;
}

.fb-signage :-webkit-any(.fp-form, .cl-form) .ff-el-input--label label {
  font: 700 .82rem/1.3 var(--f-body) !important;
  color: var(--ink) !important;
}

.fb-signage :is(.fp-form, .cl-form) .ff-el-input--label label {
  font: 700 .82rem/1.3 var(--f-body) !important;
  color: var(--ink) !important;
}

.fb-signage :-webkit-any(.fp-form, .cl-form) :-webkit-any(.ff-btn-submit, .ff-btn-next, .ff-btn-prev) {
  font: 700 .92rem/1 var(--f-body) !important;
  border-radius: var(--r) !important;
  border: 2px solid var(--cta) !important;
  background: var(--cta) !important;
  color: var(--on-cta) !important;
  padding: 1rem 1.4rem !important;
}

.fb-signage :is(.fp-form, .cl-form) :is(.ff-btn-submit, .ff-btn-next, .ff-btn-prev) {
  font: 700 .92rem/1 var(--f-body) !important;
  border-radius: var(--r) !important;
  border: 2px solid var(--cta) !important;
  background: var(--cta) !important;
  color: var(--on-cta) !important;
  padding: 1rem 1.4rem !important;
}

.fb-signage :-webkit-any(.fp-form, .cl-form) .ff-btn-prev {
  color: var(--ink) !important;
  border-color: var(--ink) !important;
  background: none !important;
}

.fb-signage :is(.fp-form, .cl-form) .ff-btn-prev {
  color: var(--ink) !important;
  border-color: var(--ink) !important;
  background: none !important;
}

.fb-signage :-webkit-any(.fp-form, .cl-form) .ff-step-header .ff-el-progress-bar {
  background: var(--cta) !important;
}

.fb-signage :is(.fp-form, .cl-form) .ff-step-header .ff-el-progress-bar {
  background: var(--cta) !important;
}

.fb-signage .lb {
  color: #fff;
  background: #0a0c0df2;
  border: 0;
  width: 100vw;
  max-width: none;
  height: 100vh;
  max-height: none;
  margin: 0;
  padding: 0;
}

.fb-signage .lb[open] {
  place-items: center;
  display: grid;
}

.fb-signage .lb::backdrop {
  background: #0a0c0d99;
}

.fb-signage .lb-img {
  border-radius: var(--r);
  object-fit: contain;
  width: auto;
  max-width: min(92vw, 1400px);
  height: auto;
  max-height: 84vh;
}

.fb-signage .lb-btn {
  border-radius: var(--r);
  color: #fff;
  width: 52px;
  height: 52px;
  font: 400 2rem/1 var(--f-body);
  cursor: pointer;
  background: #ffffff1f;
  border: 0;
  place-items: center;
  display: grid;
  position: absolute;
}

.fb-signage .lb-btn:hover {
  background: #ffffff3d;
}

.fb-signage .lb-prev {
  top: 50%;
  left: max(.5rem, min(2vw, 1.5rem));
  transform: translateY(-50%);
}

.fb-signage .lb-next {
  top: 50%;
  right: max(.5rem, min(2vw, 1.5rem));
  transform: translateY(-50%);
}

.fb-signage .lb-close {
  top: 1rem;
  right: 1rem;
}

.fb-signage .lb-count {
  letter-spacing: .1em;
  font-size: .85rem;
  font-weight: 700;
  position: absolute;
  bottom: 1.2rem;
  left: 50%;
  transform: translateX(-50%);
}

.fb-signage .fb-project section.pd-related {
  padding-bottom: max(3rem, min(7vw, 5.5rem));
}

.fb-signage .pd-nav-sec {
  padding-block-start: 0;
  padding-block-end: max(3rem, min(7vw, 5.5rem));
}

.fb-signage .pd-nav {
  grid-template-columns: 1fr 1fr;
  gap: 12px;
  display: grid;
}

.fb-signage .pd-adj {
  flex-direction: row;
  align-items: center;
  gap: 1.1rem;
  padding: .8rem;
  text-decoration: none;
  transition: border-color .2s;
}

.fb-signage .pd-adj:hover {
  border-color: var(--ink);
}

.fb-signage .pd-adj.next {
  text-align: right;
  flex-direction: row-reverse;
}

.fb-signage .pd-adj img {
  aspect-ratio: 3 / 2;
  object-fit: cover;
  border-radius: var(--r);
  flex: none;
  width: 120px;
}

.fb-signage .pd-adj-txt {
  gap: .25rem;
  min-width: 0;
  display: grid;
}

.fb-signage .pd-adj small {
  letter-spacing: .12em;
  text-transform: uppercase;
  color: var(--muted);
  font-size: .72rem;
  font-weight: 700;
}

.fb-signage .pd-adj b {
  font: 800 1.2rem/1.15 var(--f-display);
}

.fb-signage .pd-adj .muted {
  font-size: .85rem;
}

@media (max-width: 640px) {
  .fb-signage .pd-nav {
    grid-template-columns: 1fr;
  }

  .fb-signage .pd-adj img {
    width: 88px;
  }
}

.fb-signage .site-footer {
  padding-block-start: 0;
  padding-block-end: 1.5rem;
}

.fb-signage .skyline {
  color: var(--black);
  margin-bottom: -1px;
}

.fb-signage .skyline svg {
  width: 100%;
  height: auto;
  display: block;
}

.fb-signage .skyline + .ft {
  border-top-left-radius: 0;
  border-top-right-radius: 0;
}

.fb-signage .ft {
  background: var(--black);
  color: #f3f1ecb3;
  border-radius: var(--r);
  overflow: hidden;
}

.fb-signage .ft-in {
  grid-template-columns: minmax(0, 1.6fr) repeat(3, minmax(0, 1fr)) minmax(0, 1.6fr);
  gap: 2rem;
  padding: max(1.8rem, min(4vw, 3rem));
  display: grid;
}

.fb-signage .ft .brand i {
  background: var(--slate-soft);
  width: 23px;
  height: 40px;
}

.fb-signage .ft .brand {
  max-width: 100%;
}

.fb-signage .ft .brand .wm {
  background: var(--on-black);
  aspect-ratio: 957 / 150;
  flex: 0 204px;
  width: auto;
  min-width: 0;
  height: auto;
}

.fb-signage .ft .big {
  font: 900 clamp(1.5rem, 2.6vw, 2.1rem)/1.05 var(--f-display);
  color: var(--on-black);
  margin-top: 1rem;
}

.fb-signage .ft h4 {
  font: 700 .72rem/1 var(--f-body);
  letter-spacing: .16em;
  text-transform: uppercase;
  color: var(--slate-soft);
  margin: 0 0 1rem;
}

.fb-signage .ft ul {
  gap: .5rem;
  margin: 0;
  padding: 0;
  list-style: none;
  display: grid;
}

.fb-signage .ft ul a {
  font-size: .92rem;
  text-decoration: none;
}

.fb-signage .ft ul a:hover {
  color: var(--on-black);
}

.fb-signage .news {
  background: var(--black-2);
  border-radius: var(--r);
  padding: .3rem;
  display: flex;
}

.fb-signage .news input {
  font: 400 1rem/1.4 var(--f-body);
  color: var(--on-black);
  background: none;
  border: 0;
  flex: 1;
  min-width: 0;
  padding: .6rem .9rem;
}

.fb-signage .news input:focus {
  outline: none;
}

.fb-signage .news button {
  border-radius: var(--r);
  background: var(--on-black);
  color: var(--black);
  font: 700 .85rem/1 var(--f-body);
  cursor: pointer;
  border: 0;
  flex: none;
  padding: 0 1.1rem;
}

.fb-signage .news-note {
  color: var(--on-black);
  margin-top: .6rem;
  font-size: .85rem;
}

.fb-signage .follow {
  margin-top: 1.6rem;
}

.fb-signage .soc {
  flex-wrap: wrap;
  gap: .5rem;
  margin-top: 1.3rem;
  display: flex;
}

.fb-signage .soc a {
  border-radius: var(--r);
  background: var(--black-2);
  color: var(--on-black);
  padding: .5rem .8rem;
  font-size: .82rem;
  font-weight: 700;
  text-decoration: none;
}

.fb-signage .soc a:hover {
  background: var(--on-black);
  color: var(--black);
}

.fb-signage .fb {
  border-top: 1px solid #2a2a27;
  flex-wrap: wrap;
  justify-content: space-between;
  gap: 1rem;
  padding: 1.2rem max(1.8rem, min(4vw, 3rem));
  font-size: .82rem;
  display: flex;
}

@media (max-width: 1000px) {
  .fb-signage .ft-in {
    grid-template-columns: repeat(3, minmax(0, 1fr));
  }

  .fb-signage .ft-in > :first-child {
    grid-column: 1 / -1;
  }

  .fb-signage .ft-in > :last-child {
    grid-column: 1 / -1;
  }
}

@media (max-width: 520px) {
  .fb-signage .ft-in {
    grid-template-columns: 1fr 1fr;
  }
}

.fb-signage .fb-basic {
  max-width: 72ch;
  padding: clamp(2rem, 6vw, 4rem) var(--g);
  margin-inline-start: auto;
  margin-inline-end: auto;
}

.fb-signage .fb-basic h1 {
  margin-bottom: 1.5rem;
  font-size: max(2.4rem, min(6vw, 4rem));
}

.fb-signage .fb-basic :-webkit-any(p, ul, ol) {
  margin-block-start: 0;
  margin-block-end: 1em;
}

.fb-signage .fb-basic :is(p, ul, ol) {
  margin-block-start: 0;
  margin-block-end: 1em;
}

@media (prefers-reduced-motion: reduce) {
  .fb-signage * {
    transition: none !important;
  }
}
