:root {
  --fb-ink: #090a09;
  --fb-paper: #f0efe9;
  --fb-lime: #cbdd65;
  --fb-muted: #97988f;
  --fb-line: rgba(255, 255, 255, .22);
  --fb-side: clamp(22px, 3.2vw, 64px);
}

/* Link-in-bio hub. */
.page-template-page-go { background: var(--fb-ink); }
.page-template-page-go .fb-site-header { background: rgba(9, 10, 9, .94); backdrop-filter: blur(16px); }
.page-template-page-go .fb-primary-navigation,
.page-template-page-go .fb-menu-toggle,
.page-template-page-go .fb-site-footer { display: none; }
.page-template-page-go #__EAAPS_PORTAL { display: none !important; }
.page-template-page-go .userway_buttons_wrapper { display: none !important; }
.page-template-page-go .fb-site-header { height: 76px; }
.page-template-page-go .fb-header-inner { grid-template-columns: 1fr auto; }
.page-template-page-go .fb-header-cta { display: flex; }
.fb-link-hub {
  min-height: 100vh;
  padding: 86px 18px 28px;
  background: radial-gradient(circle at 50% -15%, rgba(203, 221, 101, .11), transparent 38%), var(--fb-ink);
  color: var(--fb-paper);
}
.fb-link-hub-shell { width: min(100%, 620px); margin: 0 auto; }
.fb-link-hub-site-link {
  min-height: 52px;
  margin-bottom: 10px;
  padding: 12px 16px;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 16px;
  border: 1px solid #3d3f3a;
  background: #151614;
  color: var(--fb-paper);
  transition: border-color .2s ease, transform .2s ease;
}
.fb-link-hub-site-link:hover,
.fb-link-hub-site-link:focus-visible { border-color: var(--fb-lime); transform: translateX(3px); }
.fb-link-hub-site-link span { min-width: 0; }
.fb-link-hub-site-link small,
.fb-link-hub-site-link strong { display: block; }
.fb-link-hub-site-link small {
  margin-bottom: 3px;
  color: var(--fb-lime);
  font: 700 9px/1.2 "Courier New", Courier, monospace;
  letter-spacing: .14em;
  text-transform: uppercase;
}
.fb-link-hub-site-link strong { font-size: 15px; line-height: 1.2; }
.fb-link-hub-site-link .fb-arrow-icon { flex: 0 0 auto; color: var(--fb-lime); }
.fb-link-hub-kicker,
.fb-link-hub-feature-label {
  margin: 0 0 22px;
  color: var(--fb-lime);
  font: 700 10px/1.2 "Courier New", Courier, monospace;
  letter-spacing: .14em;
	text-transform: uppercase;
}
.fb-link-hub-feature {
  min-height: 276px;
  padding: 24px;
  display: block;
  border: 1px solid var(--fb-lime);
  background: #11120f;
  color: var(--fb-paper);
  overflow: hidden;
  transition: transform .25s ease, border-color .25s ease;
}
.fb-link-hub-feature:hover,
.fb-link-hub-feature:focus-visible { transform: translateY(-3px); border-color: #e0ef8b; }
.fb-link-hub-feature-content { min-width: 0; min-height: 226px; display: flex; flex-direction: column; }
.fb-link-hub-feature-label { color: var(--fb-lime); }
.fb-link-hub-feature-title {
	margin: 0;
	display: block;
	max-width: 580px;
  color: var(--fb-paper);
  font-size: clamp(30px, 5vw, 42px);
  font-weight: 900;
  line-height: .9;
  letter-spacing: -.055em;
  text-transform: uppercase;
}
.fb-link-hub-feature-copy {
  max-width: 520px;
  margin-top: 16px;
  color: #b8bab3;
  font-size: 15px;
  line-height: 1.5;
}
.fb-link-hub-feature-action {
  margin-top: auto;
  padding-top: 18px;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 18px;
  border-top: 1px solid rgba(255, 255, 255, .18);
  color: var(--fb-lime);
  font-size: 10px;
  font-weight: 800;
  letter-spacing: .12em;
  text-transform: uppercase;
}
.fb-link-hub-intro {
  max-width: 540px;
  margin: 22px 4px 26px;
  color: #b8bab3;
  font-size: 15px;
  line-height: 1.5;
}
.fb-link-hub-intro p { margin: 0; }
.fb-link-hub-list { margin-top: 10px; display: grid; gap: 8px; }
.fb-link-hub-list > a {
  min-height: 76px;
  padding: 15px 18px;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 20px;
  border: 1px solid #3d3f3a;
  background: #151614;
  color: var(--fb-paper);
  transition: border-color .2s ease, transform .2s ease;
}
.fb-link-hub-list > a:hover,
.fb-link-hub-list > a:focus-visible { border-color: var(--fb-lime); transform: translateX(3px); }
.fb-link-hub-list span { min-width: 0; }
.fb-link-hub-list strong,
.fb-link-hub-list small { display: block; }
.fb-link-hub-list strong { font-size: 18px; line-height: 1.2; }
.fb-link-hub-list small { margin-top: 5px; color: #aeb0a9; font-size: 14px; line-height: 1.45; }
.fb-link-hub-list .fb-link-hub-card-kicker {
  margin: 0 0 6px;
  color: var(--fb-lime);
  font: 700 9px/1.2 "Courier New", Courier, monospace;
  letter-spacing: .14em;
  text-transform: uppercase;
}
.fb-link-hub-list .fb-arrow-icon { flex: 0 0 auto; color: var(--fb-lime); }
.fb-link-hub-latest { margin-top: 32px; }
.fb-link-hub-latest h2 {
  margin: 0;
  font-size: clamp(30px, 6vw, 44px);
  line-height: .95;
  letter-spacing: -.045em;
  text-transform: uppercase;
}
.fb-link-hub-latest .fb-link-hub-list { margin-top: 14px; }
.fb-link-hub-foot {
  padding: 20px 4px 6px;
  display: flex;
  justify-content: space-between;
  gap: 20px;
  color: #777a72;
  font: 10px/1.4 "Courier New", Courier, monospace;
  letter-spacing: .08em;
  text-transform: uppercase;
}
.fb-link-hub-foot a { color: var(--fb-lime); }

@media (max-width: 640px) {
	.page-template-page-go .fb-site-header { height: 70px; }
  .page-template-page-go .fb-header-inner { padding: 0 16px; }
  .page-template-page-go .fb-header-cta { padding: 11px 12px; gap: 10px; }
  .fb-link-hub { padding: 76px 12px 22px; }
  .fb-link-hub-feature { min-height: 252px; padding: 20px; }
  .fb-link-hub-feature-content { min-height: 210px; }
  .fb-link-hub-feature-title { font-size: 30px; }
  .fb-link-hub-list > a { min-height: 72px; padding: 14px 16px; }
  .fb-link-hub-latest { margin-top: 30px; }
  .fb-link-hub-foot { padding-right: 8px; padding-left: 8px; flex-direction: column; gap: 6px; }
}

* { box-sizing: border-box; }
html { max-width: 100%; scroll-behavior: smooth; background: var(--fb-ink); overflow-x: clip; }
body.fox-brand-site { max-width: 100%; margin: 0; background: var(--fb-ink); color: var(--fb-paper); font-family: Arial, Helvetica, sans-serif; overflow-x: clip; }
body.fb-menu-open { overflow: hidden; }
.grecaptcha-badge { visibility: hidden !important; }
.fox-brand-site a { color: inherit; text-decoration: none; }
.fox-brand-site img { display: block; max-width: 100%; }
.fox-brand-site button, .fox-brand-site input, .fox-brand-site textarea, .fox-brand-site select { font: inherit; }
.fox-brand-site ::selection { background: var(--fb-lime); color: var(--fb-ink); }
.fox-brand-site :focus-visible { outline: 2px solid var(--fb-lime); outline-offset: 4px; }
[id] { scroll-margin-top: 96px; }
.fb-skip-link { position: fixed; z-index: 99999; top: 12px; left: 12px; padding: 12px 16px; background: var(--fb-lime); color: var(--fb-ink) !important; transform: translateY(-150%); }
.fb-skip-link:focus { transform: translateY(0); }

.fb-site-header { position: absolute; z-index: 1000; top: 0; left: 0; width: 100%; height: 94px; border-bottom: 1px solid var(--fb-line); transition: background .25s ease, height .25s ease; }
.admin-bar .fb-site-header { top: 32px; }
.fb-header-scrolled { position: fixed; height: 76px; background: rgba(9, 10, 9, .93); backdrop-filter: blur(18px); }
@media (min-width: 981px) {
	.home .fb-site-header:not(.fb-header-scrolled):has(.fb-menu > .menu-item-has-children:hover),
	.home .fb-site-header:not(.fb-header-scrolled):has(.fb-menu > .menu-item-has-children:focus-within) { background: rgba(9, 10, 9, .93); backdrop-filter: blur(18px); }
}
.fb-header-inner { width: 100%; height: 100%; padding: 0 var(--fb-side); display: grid; grid-template-columns: minmax(180px, 1fr) auto minmax(180px, 1fr); align-items: center; }
.fb-brand, .custom-logo-link { width: 190px; min-height: 44px; display: flex; align-items: center; }
.fb-brand img, .custom-logo { width: 100%; height: auto; max-height: 44px; object-fit: contain; object-position: left center; }
.fb-primary-navigation { height: 100%; display: flex; align-items: center; }
.fb-menu { display: flex; align-items: center; gap: 34px; margin: 0; padding: 0; list-style: none; }
.fb-menu > li { position: relative; height: 100%; display: flex; align-items: center; }
.fb-menu > li > a { position: relative; padding: 38px 0; text-transform: uppercase; font-size: 12px; font-weight: 700; letter-spacing: .12em; white-space: nowrap; }
.fb-menu > .menu-item-has-children > a { padding-right: 17px; }
.fb-menu > .menu-item-has-children > a:before { content: ""; position: absolute; top: 50%; right: 1px; width: 6px; height: 6px; border-right: 1.5px solid var(--fb-lime); border-bottom: 1.5px solid var(--fb-lime); transform: translateY(-72%) rotate(45deg); transition: transform .22s ease; }
.fb-menu > .menu-item-has-children:hover > a:before, .fb-menu > .menu-item-has-children:focus-within > a:before, .fb-menu > .menu-item-has-children.fb-submenu-open > a:before { transform: translateY(-28%) rotate(225deg); }
.fb-header-scrolled .fb-menu > li > a { padding: 29px 0; }
.fb-header-scrolled .fb-menu > .menu-item-has-children > a { padding-right: 17px; }
.fb-menu > li > a:after { content: ""; position: absolute; right: 100%; bottom: 28px; left: 0; height: 1px; background: var(--fb-lime); transition: right .2s ease; }
.fb-menu > li:hover > a:after, .fb-menu > li:focus-within > a:after, .fb-menu > .current-menu-item > a:after, .fb-menu > .current-menu-ancestor > a:after { right: 0; }
.fb-menu .sub-menu { visibility: hidden; opacity: 0; position: fixed; z-index: 20; top: 94px; left: 0; width: 100%; margin: 0; padding: 46px var(--fb-side); list-style: none; background: var(--fb-ink); border-top: 1px solid var(--fb-line); display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 0; transform: translateY(-8px); transition: opacity .2s ease, transform .2s ease, visibility .2s; }
.fb-header-scrolled .fb-menu .sub-menu { top: 76px; }
.fb-menu li:hover > .sub-menu, .fb-menu li:focus-within > .sub-menu, .fb-menu .fb-submenu-open > .sub-menu { visibility: visible; opacity: 1; transform: translateY(0); }
.fb-menu .sub-menu li { border-top: 1px solid #363735; }
.fb-menu .sub-menu li:nth-last-child(-n+3) { border-bottom: 1px solid #363735; }
/* The Work menu has four entries in a three-column grid. Use one full-width
   rule per row instead of adjoining item borders, which can render one pixel
   out of alignment at fractional grid widths. */
@media (min-width: 981px) {
  .fb-menu .sub-menu:has(> li:nth-child(4):last-child) > li { border: 0; }
  .fb-menu .sub-menu:has(> li:nth-child(4):last-child):before { content: ""; position: absolute; top: 46px; right: var(--fb-side); left: var(--fb-side); height: 1px; background: #363735; pointer-events: none; }
  .fb-menu .sub-menu > li:nth-child(4):last-child { position: relative; grid-column: 1 / -1; }
  .fb-menu .sub-menu > li:nth-child(4):last-child:before, .fb-menu .sub-menu > li:nth-child(4):last-child:after { content: ""; position: absolute; right: 0; left: 0; height: 1px; background: #363735; pointer-events: none; }
  .fb-menu .sub-menu > li:nth-child(4):last-child:before { top: 0; }
  .fb-menu .sub-menu > li:nth-child(4):last-child:after { bottom: 0; }
}
.fb-menu .sub-menu a { display: flex; min-height: 86px; align-items: center; justify-content: flex-start; padding: 20px 18px 20px 0; text-transform: uppercase; font-size: clamp(17px, 1.55vw, 24px); font-weight: 800; letter-spacing: -.025em; }
.fb-menu .sub-menu a:after { content: ""; width: 11px; height: 11px; flex: 0 0 11px; margin-left: 16px; border-top: 1.5px solid var(--fb-lime); border-right: 1.5px solid var(--fb-lime); box-shadow: 3px -3px 0 -2px var(--fb-ink); opacity: 0; transition: opacity .18s ease; }
.fb-menu .sub-menu a:hover:after, .fb-menu .sub-menu a:focus-visible:after, .fb-menu .sub-menu .current-menu-item > a:after { opacity: 1; }
@media (prefers-reduced-motion: reduce) { .fb-menu .sub-menu a:after { transition: none; } }
.fb-menu .sub-menu a:hover { color: var(--fb-lime); }
.fb-menu .sub-menu .current-menu-item > a { color: var(--fb-lime); }
.fb-header-cta { position: relative; isolation: isolate; overflow: hidden; justify-self: end; display: flex; gap: 18px; align-items: center; padding: 14px 18px; border: 1px solid var(--fb-lime); text-transform: uppercase; font-size: 10px; font-weight: 700; letter-spacing: .12em; transition: color .25s ease; }
.fb-header-cta:before { content: ""; position: absolute; z-index: -1; inset: 0; background: var(--fb-lime); transform: scaleX(0); transform-origin: left center; transition: transform .32s cubic-bezier(.2, .65, .25, 1); }
.fb-header-cta span { color: var(--fb-lime); }
.fb-header-cta:hover:before, .fb-header-cta:focus-visible:before { transform: scaleX(1); }
.fb-header-cta:hover, .fb-header-cta:focus-visible { color: var(--fb-ink); }
.fb-header-cta:hover span, .fb-header-cta:focus-visible span { color: var(--fb-ink); }
.fb-menu-toggle, .fb-submenu-toggle, .fb-mobile-nav-label, .fb-mobile-nav-meta { display: none; }

.fb-arrow-icon { width: 14px; height: 14px; display: inline-flex; flex: 0 0 14px; align-items: center; justify-content: center; color: currentColor; }
.fb-arrow-icon svg { width: 100%; height: 100%; fill: none; stroke: currentColor; stroke-width: 1.5; stroke-linecap: square; stroke-linejoin: miter; }
a .fb-arrow-icon { transition: transform .24s cubic-bezier(.2, .65, .25, 1), background .2s ease, color .2s ease; }
a:hover .fb-arrow-icon:not(.fb-arrow-icon-down), a:focus-visible .fb-arrow-icon:not(.fb-arrow-icon-down) { transform: translate(3px, -3px); }
a:hover .fb-arrow-icon-down, a:focus-visible .fb-arrow-icon-down { transform: translateY(3px); }

/* The bottom padding is max(5vh, 72px), not 5vh.
   The hero is full height with its content anchored to the bottom edge, and the
   two fixed widgets, the accessibility button and the review badge, live in the
   bottom corners. A vh-based gutter is smallest exactly when the viewport is
   shortest, which is when the collision happens: at 768px tall 5vh is 38px
   against a widget zone of about 57px, so the button sat on the hero paragraph,
   and at 390px tall it is 19px and the button sat on the H1. It overlapped by
   about 12px even on a 900px-tall desktop.
   72px clears the widget zone at every height. Do not put this back to a bare
   viewport unit. */
.fb-hero { position: relative; isolation: isolate; min-height: 100svh; overflow: hidden; display: flex; align-items: flex-end; padding: 140px var(--fb-side) max(5vh, 72px); }
.fb-hero-media { position: absolute; inset: 0; overflow: hidden; background: url('../images/video/max-oceanside-home-poster.webp') center center / cover no-repeat; }
.fb-hero-video { position: absolute; z-index: 0; inset: 0; width: 100%; height: 100%; object-fit: cover; object-position: center; animation: fbHeroCameraPush 18s ease-in-out infinite alternate; will-change: transform; }
.fb-hero-media:before { content: ""; position: absolute; z-index: 1; inset: 0; background: linear-gradient(115deg, rgba(0, 0, 0, .18), transparent 60%); }
.fb-hero-media:after { content: ""; position: absolute; z-index: 2; inset: 0; background: linear-gradient(90deg, rgba(0, 0, 0, .75), rgba(0, 0, 0, .12) 62%, rgba(0, 0, 0, .45)); }
.fb-hero-shade { position: absolute; inset: 0; background: linear-gradient(0deg, rgba(0, 0, 0, .8), transparent 54%); }
.fb-hero-topline { position: absolute; z-index: 3; top: 122px; right: var(--fb-side); left: var(--fb-side); display: flex; justify-content: space-between; color: #fff; font: 700 11px/1 monospace; text-shadow: 0 1px 18px rgba(0, 0, 0, .82); text-transform: uppercase; letter-spacing: .13em; animation: fbHeroMetaIn .65s .8s cubic-bezier(.2, .65, .25, 1) both; }
.fb-hero-content { position: relative; z-index: 2; width: 100%; }
.fb-eyebrow, .fb-section-label { margin: 0 0 20px; color: var(--fb-lime); font: 11px/1 monospace; text-transform: uppercase; letter-spacing: .17em; }
.fb-hero h1 { max-width: 1120px; margin: 0; font-size: clamp(64px, 10.2vw, 152px); line-height: .78; letter-spacing: -.075em; text-transform: uppercase; font-weight: 900; transform: scaleX(.92); transform-origin: left center; }
.fb-hero h1 em, .fb-contact-band h2 em { color: var(--fb-lime); font-style: normal; }
.fb-hero-bottom { position: relative; margin-top: 38px; padding-top: 22px; display: flex; align-items: center; justify-content: space-between; gap: 30px; }
.fb-hero-bottom:before { content: ""; position: absolute; top: 0; right: 0; left: 0; height: 1px; background: rgba(255, 255, 255, .42); transform-origin: left center; animation: fbHeroRuleIn .95s .7s cubic-bezier(.16, .76, .24, 1) both; }
.fb-hero-bottom > p { max-width: 540px; margin: 0; font-size: 18px; line-height: 1.5; }
.fb-hero-actions { display: flex; align-items: center; gap: 28px; }
.fb-button { min-width: 220px; padding: 18px 20px; display: flex; align-items: center; justify-content: space-between; gap: 25px; text-transform: uppercase; font-size: 10px; font-weight: 800; letter-spacing: .11em; transition: transform .2s ease, background .2s ease; }
.fb-button:hover { transform: translateY(-3px); }
.fb-button-lime { background: var(--fb-lime); color: var(--fb-ink) !important; }
.fb-button-dark { background: var(--fb-ink); color: var(--fb-paper) !important; }
.fb-button-outline-light { border: 1px solid #6d6f68; background: transparent; color: var(--fb-paper) !important; }
.fb-button-outline-light:hover, .fb-button-outline-light:focus-visible { border-color: var(--fb-lime); color: var(--fb-lime) !important; }
.fb-text-link { min-height: 44px; display: flex; align-items: center; gap: 10px; text-transform: uppercase; font-size: 10px; letter-spacing: .11em; }
.fb-play-icon { width: 36px; height: 36px; display: inline-flex; flex: 0 0 36px; color: currentColor; }
.fb-play-icon svg { width: 100%; height: 100%; fill: none; stroke: currentColor; stroke-width: 1; }
.fb-play-icon .fb-play-icon-fill { fill: currentColor; stroke: none; }
.fb-text-link .fb-play-icon { transition: transform .25s cubic-bezier(.2, .65, .25, 1); }
.fb-text-link:hover .fb-play-icon, .fb-text-link:focus-visible .fb-play-icon { transform: scale(1.08); }
.fb-frame-code { position: absolute; z-index: 3; top: 52%; right: var(--fb-side); writing-mode: vertical-rl; color: rgba(255, 255, 255, .72); font: 10px/1 monospace; letter-spacing: .18em; animation: fbHeroMetaIn .65s 1s cubic-bezier(.2, .65, .25, 1) both; }
.fb-ticker { overflow: hidden; border-top: 1px solid #222; border-bottom: 1px solid #222; background: var(--fb-lime); color: var(--fb-ink); padding: 15px 0; white-space: nowrap; font-size: 13px; font-weight: 800; letter-spacing: .14em; }
.fb-ticker-track { width: max-content; display: flex; animation: fbTicker 28s linear infinite; }
.fb-ticker-set { display: flex; flex: none; align-items: center; }
@media (min-width: 981px) {
	.fb-ticker { padding: 14px var(--fb-side); font-size: 10px; letter-spacing: .17em; }
	.fb-ticker-track { width: 100%; justify-content: center; animation: none; }
	.fb-ticker-set { padding: 0; }
	.fb-ticker-set[aria-hidden="true"] { display: none; }
	.fb-ticker-set > .fb-ticker-divider:last-child { display: none; }
	.fb-ticker-divider { margin: 0 23px; color: rgba(9, 10, 9, .48); }
}
.fb-spark-icon { width: 14px; height: 14px; margin: 0 26px; display: inline-flex; vertical-align: -2px; }
.fb-spark-icon svg { width: 100%; height: 100%; fill: none; stroke: currentColor; stroke-width: 1.25; }

.fb-section { padding: 120px var(--fb-side); }
.fb-intro-grid { display: grid; grid-template-columns: 1.7fr .65fr; gap: 9vw; align-items: end; }
.fb-intro h2, .fb-section-heading h2, .fb-approach h2, .fb-supporting-services h2, .fb-architecture-callout h2 { margin: 0; font-size: clamp(48px, 7vw, 104px); line-height: .88; letter-spacing: -.065em; text-transform: uppercase; font-weight: 900; }
.fb-intro h2 span, .fb-supporting-services h2 span { color: #b5b7b0; }
.fb-intro h2 .fb-see-it-line { color: var(--fb-lime); }
.fb-intro-grid > p { margin: 0 0 4px; color: #bebfb9; font-size: 17px; line-height: 1.65; }
.fb-capability-list { margin-top: 90px; border-top: 1px solid #41423f; }
.fb-service-stage + .fb-service-stage { margin-top: 58px; }
.fb-service-stage-label { margin: 0; padding: 18px 0 15px; color: var(--fb-lime); font: 700 11px/1 monospace; letter-spacing: .16em; text-transform: uppercase; }
.fb-capability { position: relative; display: grid; grid-template-columns: .18fr .7fr 1fr auto; gap: 40px; align-items: start; padding: 38px 0; border-bottom: 1px solid #41423f; }
.fb-capability > span:first-child { color: var(--fb-lime); font: 12px/1 monospace; }
.fb-capability h3 { margin: -4px 0 0; font-size: 28px; text-transform: uppercase; letter-spacing: -.03em; }
.fb-capability p { max-width: 560px; margin: -3px 0 0; color: #a8aaa3; line-height: 1.6; }
.fb-capability > .fb-arrow-icon { width: 44px; height: 44px; padding: 14px; display: grid; place-items: center; border: 1px solid #555; border-radius: 50%; transition: background .2s, color .2s; }
.fb-capability h3 { transition: color .2s; }
.fb-capability:hover h3 { color: var(--fb-lime); }
.fb-capability:hover > .fb-arrow-icon { background: var(--fb-lime); color: var(--fb-ink); }

.fb-client-carousel-section { padding: 110px 0 72px; overflow: hidden; background: #fff; color: #121310; }
.fb-client-carousel-heading { width: min(1180px, calc(100% - (var(--fb-side) * 2))); margin: 0 auto 64px; display: grid; grid-template-columns: 1.3fr .7fr; gap: 8vw; align-items: end; }
.fb-client-carousel-heading h2 { margin: 18px 0 0; font-size: clamp(54px, 7.2vw, 104px); line-height: .82; font-weight: 900; letter-spacing: -.065em; text-transform: uppercase; }
.fb-client-carousel-kicker { width: max-content; margin: 0; padding: 9px 12px 8px; background: var(--fb-lime); color: #121310; font: 10px/1 monospace; font-weight: 700; letter-spacing: .13em; text-transform: uppercase; }
.fb-client-carousel-heading > p { max-width: 430px; margin: 0 0 5px; padding-top: 20px; border-top: 1px solid #282a25; color: #5e605a; font-size: 17px; line-height: 1.6; }
.fb-client-carousel-viewport { width: 100%; margin: 0; padding: 34px 0; overflow: hidden; border-top: 1px solid #b8bab3; border-bottom: 1px solid #b8bab3; background: #f4f3ee; cursor: grab; touch-action: pan-y; user-select: none; }
.fb-client-carousel-viewport.fb-client-carousel-dragging { cursor: grabbing; }
.fb-client-carousel-track { display: flex; width: max-content; animation: fbClientCarousel 78s linear infinite; will-change: transform; }
.fb-client-carousel-set { display: flex; flex: none; }
.fb-client-carousel-logo { flex: 0 0 180px; width: 180px; height: 58px; margin-right: 100px; display: grid; place-items: center; overflow: hidden; }
.fb-client-carousel-logo img { width: 180px; height: 58px; object-fit: contain; filter: grayscale(1); pointer-events: none; transition: filter .25s ease; }
.fb-client-carousel-logo:hover img { filter: grayscale(0); }
.fb-client-carousel-viewport:hover .fb-client-carousel-track,
.fb-client-carousel-viewport.fb-client-carousel-dragging .fb-client-carousel-track { animation-play-state: paused; }

.fb-home-project-cta { padding: 54px var(--fb-side); display: grid; grid-template-columns: 1.15fr .85fr auto; gap: 5vw; align-items: end; border-top: 1px solid #42433f; border-bottom: 1px solid #42433f; background: #151614; }
.fb-home-project-cta .fb-section-label { margin-bottom: 17px; }
.fb-home-project-cta h2 { margin: 0; font-size: clamp(38px, 4.5vw, 70px); line-height: .86; letter-spacing: -.055em; text-transform: uppercase; }
.fb-home-project-cta > p { max-width: 470px; margin: 0 0 3px; color: #b3b5ad; font-size: 16px; line-height: 1.6; }
.fb-home-project-cta .fb-button { width: max-content; }

.fb-selected-work { background: var(--fb-paper); color: var(--fb-ink); }
.fb-selected-work .fb-section-label { color: #62645f; }
.fb-section-heading { display: flex; justify-content: space-between; align-items: end; margin-bottom: 60px; }
.fb-outline-link { min-width: 205px; min-height: 44px; padding: 14px 0; border-bottom: 1px solid var(--fb-ink); display: flex; align-items: center; justify-content: space-between; text-transform: uppercase; font-size: 10px; font-weight: 700; letter-spacing: .12em; }
.fb-work-grid, .fb-project-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 18px; }
.fb-work-feature { position: relative; grid-column: 1 / -1; height: 70vw; max-height: 860px; overflow: hidden; background: #111; }
.fb-work-feature > img { width: 100%; height: 100%; object-fit: cover; }
.fb-project-card:hover img { transform: scale(1.025); }
.fb-work-overlay { position: absolute; inset: auto 0 0; padding: 32px; display: flex; justify-content: space-between; align-items: end; color: white; background: linear-gradient(transparent, rgba(0, 0, 0, .82)); }
.fb-work-overlay > div > span { font: 11px/1 monospace; text-transform: uppercase; letter-spacing: .15em; }
.fb-work-overlay h3 { margin: 10px 0 4px; font-size: clamp(36px, 6vw, 86px); line-height: .9; letter-spacing: -.055em; text-transform: uppercase; }
.fb-work-overlay p { margin: 0; text-transform: uppercase; font-size: 11px; letter-spacing: .12em; }
.fb-round-arrow { width: 64px; height: 64px; display: grid; place-items: center; border: 1px solid rgba(255, 255, 255, .6); border-radius: 50%; font-size: 26px; }
.fb-work-card { position: relative; overflow: hidden; background: #d7d7d1; }
.fb-work-card > img { width: 100%; height: 100%; object-fit: cover; }
.fb-work-card-standard { min-height: 0; aspect-ratio: 16 / 10; }
.fb-work-card-standard > img { transition: transform .7s ease; }
.fb-work-card-standard:hover > img { transform: scale(1.025); }
.fb-work-card-tall { grid-row: span 2; min-height: 820px; }
.fb-work-card-wide { min-height: 400px; }
.fb-work-caption { position: absolute; inset: auto 0 0; padding: 18px 20px; display: grid; grid-template-columns: auto 1fr; gap: 16px; align-items: end; color: white; background: linear-gradient(transparent, rgba(0, 0, 0, .82)); }
.fb-work-caption > span:not(.fb-arrow-icon) { font: 11px/1 monospace; }
.fb-work-caption div { margin-left: 10px; }
.fb-work-caption h3 { margin: 0 0 5px; text-transform: uppercase; font-size: 22px; }
.fb-work-caption p { margin: 0; color: rgba(255, 255, 255, .72); font-size: 11px; text-transform: uppercase; letter-spacing: .1em; }
.fb-project-card { position: relative; min-height: 520px; background: #ddd; overflow: hidden; }
.fb-project-card > a { position: relative; display: block; height: 100%; }
.fb-project-card-image, .fb-project-card-image img { width: 100%; height: 100%; min-height: 520px; object-fit: cover; transition: transform .7s ease; }
.fb-project-card-copy { position: absolute; inset: auto 0 0; padding: 24px; color: white; background: linear-gradient(transparent, rgba(0, 0, 0, .84)); display: grid; grid-template-columns: 1fr auto; }
.fb-project-card-copy h3 { margin: 0; text-transform: uppercase; font-size: 28px; }
.fb-project-card-copy p { margin: 8px 0 0; text-transform: uppercase; font-size: 11px; letter-spacing: .11em; }
.fb-project-card-copy > span { grid-column: 2; grid-row: 1 / span 2; align-self: end; font-size: 22px; }

.fb-architecture-callout { min-height: 740px; padding: 120px var(--fb-side); display: grid; grid-template-columns: 1.2fr .8fr; gap: 8vw; align-items: center; background: #171816; }
.fb-architecture-copy > p:not(.fb-section-label) { max-width: 620px; margin: 36px 0; color: #aaaca5; font-size: 18px; line-height: 1.65; }
.fb-architecture-copy .fb-button { width: max-content; }
.fb-architecture-frame { position: relative; min-height: 460px; border: 1px solid #444640; background: #0a0b09; overflow: hidden; }
.fb-architecture-frame img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; object-position: center; transition: transform .7s ease; }
.fb-architecture-frame:hover img { transform: scale(1.025); }
.fb-architecture-frame:before { z-index: 2; }
.fb-architecture-frame:after { z-index: 2; }
.fb-architecture-frame:before, .fb-architecture-frame:after { content: ""; position: absolute; background: var(--fb-lime); }
.fb-architecture-frame:before { top: 0; right: 0; width: 44%; height: 1px; }
.fb-architecture-frame:after { right: 0; bottom: 0; width: 1px; height: 44%; }
.fb-architecture-frame span { position: absolute; z-index: 3; right: 0; bottom: 0; left: 0; padding: 72px 32px 28px; color: rgba(255, 255, 255, .84); background: linear-gradient(transparent, rgba(0, 0, 0, .88)); font: 12px/1.6 monospace; text-transform: uppercase; letter-spacing: .08em; }

.fb-approach { display: grid; grid-template-columns: 1fr 1fr; min-height: 900px; }
.fb-approach-image { position: relative; min-height: 760px; overflow: hidden; }
.fb-approach-image img { width: 100%; height: 100%; object-fit: cover; filter: grayscale(1); }
.fb-approach-image > span { position: absolute; left: 24px; bottom: 24px; font: 10px/1 monospace; letter-spacing: .14em; }
.fb-approach-copy { padding: 110px 6vw; display: flex; flex-direction: column; justify-content: center; }
.fb-approach-lead { max-width: 570px; margin: 36px 0 40px; color: #b0b1ab; font-size: 18px; line-height: 1.6; }
.fb-approach ol { list-style: none; padding: 0; margin: 0; border-top: 1px solid #3d3e3b; }
.fb-approach li { display: grid; grid-template-columns: 60px 1fr; padding: 25px 0; border-bottom: 1px solid #3d3e3b; }
.fb-approach li > span { color: var(--fb-lime); font: 11px/1 monospace; }
.fb-approach strong { text-transform: uppercase; font-size: 16px; letter-spacing: .04em; }
.fb-approach li p { margin: 7px 0 0; color: #8f918b; line-height: 1.5; }

.fb-supporting-services { background: #151614; }
.fb-supporting-services h2 { margin-bottom: 70px; }
.fb-service-row { display: grid; grid-template-columns: .2fr 1.2fr 1fr auto; align-items: center; gap: 30px; padding: 29px 0; border-top: 1px solid #3f403d; }
.fb-service-row:last-child { border-bottom: 1px solid #3f403d; }
.fb-service-row > span { color: var(--fb-lime); font: 11px/1 monospace; }
.fb-service-row h3 { margin: 0; font-size: 28px; text-transform: uppercase; }
.fb-service-row p { color: #8f918b; }
.fb-service-row > .fb-arrow-icon { width: 18px; height: 18px; }
.fb-service-row:hover h3 { color: var(--fb-lime); }

.fb-quote { padding: 130px 12vw; text-align: center; background: var(--fb-paper); color: var(--fb-ink); }
.fb-quote-mark { width: 80px; height: 52px; margin: 0 auto; display: block; color: var(--fb-lime); }
.fb-quote-mark svg { width: 100%; height: 100%; fill: currentColor; }
.fb-quote blockquote { max-width: 1100px; margin: 30px auto 38px; font-size: clamp(30px, 4vw, 58px); line-height: 1.08; letter-spacing: -.045em; font-weight: 700; }
.fb-quote p { margin: 0; text-transform: uppercase; font-size: 10px; letter-spacing: .12em; }
.fb-quote p span { color: #4f514b; margin-left: 10px; }

.fb-contact-band { background: #111210; color: var(--fb-paper); overflow: hidden; }
.fb-contact-band-link { display: block; padding: 110px var(--fb-side) 80px; transition: background .25s ease; }
.fb-contact-band-link:hover { background: #171916; }
.fb-contact-band-link:focus-visible { outline-offset: -5px; }
.fb-contact-band .fb-section-label { color: var(--fb-lime); }
.fb-contact-band h2 { margin: 0; font-size: clamp(80px, 14vw, 210px); line-height: .75; letter-spacing: -.085em; text-transform: uppercase; font-weight: 900; }
.fb-contact-band h2 em { color: var(--fb-lime); -webkit-text-stroke: 0; -webkit-text-fill-color: currentColor; }
.fb-contact-band-bottom { margin-top: 60px; padding-top: 24px; border-top: 1px solid rgba(255, 255, 255, .28); display: flex; align-items: center; justify-content: space-between; }
.fb-contact-band-bottom p { max-width: 530px; margin: 0; font-size: 18px; line-height: 1.5; }
.fb-contact-band-link .fb-button { pointer-events: none; }
.fb-contact-band-link:hover .fb-button { transform: translateY(-3px); }

.fb-site-footer { padding: 64px var(--fb-side); display: grid; grid-template-columns: 1.45fr .55fr .85fr .75fr; gap: 48px; align-items: start; color: #b1b2ac; font-size: 11px; line-height: 1.7; text-transform: uppercase; letter-spacing: .08em; }
.fb-footer-brand img { width: 220px; }
.fb-footer-brand p { max-width: 400px; margin: 22px 0 0; color: #85877f; text-transform: none; font-size: 13px; letter-spacing: 0; }
.fb-footer-phone { width: max-content; min-height: 44px; margin-top: 18px; display: flex; align-items: center; color: var(--fb-paper) !important; font-size: 14px; font-weight: 800; letter-spacing: .1em; }
.fb-footer-menu { list-style: none; margin: 0; padding: 0; }
.fb-footer-menu a, .fb-footer-social a { min-height: 44px; display: flex; align-items: center; }
.fb-footer-menu a:hover, .fb-footer-phone:hover, .fb-footer-social a:hover { color: var(--fb-lime) !important; }
.fb-footer-social { display: flex; flex-direction: column; }
.fb-footer-social p { min-height: 44px; margin: 0; display: flex; align-items: center; color: #b6b8b2; }
/* The arrow belongs to the word, not to the column.
   space-between across a 245px grid column parked the arrow at the far right,
   about 155px from the end of "Instagram", so it read as a stray mark in the
   margin rather than as part of the link. max-content shrinks the link to its
   own text and the existing 12px gap does the rest. Full width again on a
   phone, where the column is narrow and a right-hand arrow is a useful target. */
.fb-footer-social a { justify-content: flex-start; width: max-content; max-width: 100%; gap: 12px; }
/* The arrow was shifting its own row by 0.7px.
   These links are flex rows holding a text node and an inline SVG. An inline
   SVG sits on the text baseline and carries the line box's descender space with
   it, so the four rows that have an arrow resolved half a pixel differently
   from Follow, which is a plain paragraph with no arrow. Four rows out by 0.7px
   against a column that is exactly aligned reads as a wobble even though no
   single row looks wrong. display:block takes the SVG out of inline layout so
   both columns compute the same line box. */
.fb-footer-social a svg { display: block; flex: none; }
.fb-footer-social a span { color: var(--fb-lime); }
.fb-footer-legal { text-align: right; }
.fb-footer-legal p { margin: 0; }
.fb-footer-legal .fb-footer-privacy { margin-top: 10px; }
.fb-footer-privacy a { color: inherit; text-decoration: underline; text-underline-offset: 3px; }
.fb-footer-privacy a:hover { color: var(--fb-lime); }
.fb-footer-legal .fb-recaptcha-note { margin-top: 18px; color: #85877f; font-size: 12px; line-height: 1.55; letter-spacing: 0; text-transform: none; }
.fb-recaptcha-note a { text-decoration: underline; text-underline-offset: 2px; }

.fb-page-shell { min-height: 70vh; padding-top: 94px; }
.fb-page-hero { padding: 100px var(--fb-side) 80px; background: #171816; border-bottom: 1px solid #3d3e3a; }
.fb-page-hero h1 { max-width: 1200px; margin: 0; font-size: clamp(64px, 11vw, 160px); line-height: .8; letter-spacing: -.075em; text-transform: uppercase; font-weight: 900; }
.fb-page-deck { max-width: 760px; margin: 40px 0 0; color: #a9aaa5; font-size: 20px; line-height: 1.6; }
.fb-contact-hero-actions { width: max-content; margin-top: 36px; display: grid; gap: 10px; }
.fb-contact-jump { width: 100%; margin-top: 0; }
.fb-contact-call { min-height: 44px; padding: 10px 2px 8px; border-bottom: 1px solid #555750; display: flex; align-items: center; justify-content: space-between; gap: 28px; color: #b8bab3; font-size: 10px; letter-spacing: .1em; text-transform: uppercase; transition: color .2s, border-color .2s; }
.fb-contact-call strong { color: var(--fb-paper); font-size: 12px; letter-spacing: .06em; }
.fb-contact-call:hover { color: var(--fb-lime); border-color: var(--fb-lime); }
.fb-page-content { padding: 90px var(--fb-side); }
.fb-prose { max-width: 980px; margin: 0 auto; font-size: 18px; line-height: 1.75; }
.fb-prose h2, .fb-page-content h2 { font-size: clamp(38px, 5vw, 72px); line-height: .95; letter-spacing: -.05em; text-transform: uppercase; }
.fb-single-hero-image { max-height: 82vh; overflow: hidden; }
.fb-single-hero-image img { width: 100%; height: 82vh; object-fit: cover; }
.fb-architecture-gallery { padding: 18px; display: grid; grid-template-columns: 1.35fr .65fr; gap: 18px; background: var(--fb-paper); }
.fb-architecture-gallery figure { min-height: 620px; margin: 0; overflow: hidden; background: #d8d8d2; }
.fb-architecture-gallery figure:last-child { min-height: 620px; }
.fb-architecture-gallery img { width: 100%; height: 100%; object-fit: cover; }
.fb-architecture-definition { padding: 90px var(--fb-side); display: grid; grid-template-columns: 1fr 1fr; gap: 8vw; align-items: start; }
.fb-architecture-definition h2 { margin: 0; font-size: clamp(44px, 7vw, 104px); line-height: .86; letter-spacing: -.065em; text-transform: uppercase; }
.fb-architecture-definition p { max-width: 620px; margin: 0; color: #aaaca5; font-size: 19px; line-height: 1.7; }
.fb-contact-form { display: grid; grid-template-columns: .75fr 1.25fr; gap: 8vw; margin-top: 70px; padding: 70px; background: var(--fb-paper); color: var(--fb-ink); }
.fb-contact-form h2 { margin: 0 0 20px; }
.fb-contact-form .fb-section-label { color: #565852; }
.fb-contact-form input, .fb-contact-form textarea, .fb-contact-form select { width: 100%; padding: 14px; border: 1px solid rgba(0, 0, 0, .45); border-radius: 0; background: transparent; color: var(--fb-ink); }
.fb-contact-form input[type="submit"], .fb-contact-form button[type="submit"] { width: auto; padding: 16px 24px; border: 0; background: var(--fb-ink); color: var(--fb-paper); text-transform: uppercase; font-size: 11px; font-weight: 800; letter-spacing: .1em; }
.fb-contact-form .gform_wrapper .gform_validation_errors { margin: 0 0 32px !important; padding: 26px 28px 18px !important; border: 0 !important; border-top: 3px solid var(--fb-lime) !important; border-radius: 0 !important; background: var(--fb-ink) !important; box-shadow: none !important; color: var(--fb-paper) !important; animation: fbFormErrorIn .38s cubic-bezier(.2, .65, .25, 1) both; }
.fb-contact-form .gform_wrapper .gform_validation_errors:focus { outline: 1px solid var(--fb-lime) !important; outline-offset: 3px !important; }
.fb-contact-form .gform_validation_errors .gform_submission_error { margin: 0 !important; display: grid; grid-template-columns: 24px minmax(0, 1fr); gap: 12px; align-items: start; color: var(--fb-paper) !important; font-size: 15px !important; font-weight: 800 !important; line-height: 1.4 !important; letter-spacing: -.01em !important; text-transform: none !important; }
.fb-contact-form .gform_validation_errors .gform-icon { position: static !important; inset: auto !important; width: 22px !important; height: 22px !important; margin: 0 !important; border: 1px solid var(--fb-lime); border-radius: 50%; display: grid !important; place-items: center; color: var(--fb-lime) !important; font-size: 0 !important; transform: none !important; }
.fb-contact-form .gform_validation_errors .gform-icon:before { content: "!" !important; color: var(--fb-lime) !important; font: 800 11px/1 monospace !important; }
.fb-contact-form .gform_validation_errors ol { margin: 20px 0 0 !important; padding: 0 !important; list-style: none !important; }
.fb-contact-form .gform_validation_errors li { margin: 0 !important; padding: 11px 0 !important; border-top: 1px solid #3d3e3a; list-style: none !important; }
.fb-contact-form .gform_wrapper.gravity-theme .gform_validation_errors > ol > li { display: block !important; list-style: none !important; }
.fb-contact-form .gform_validation_errors li:before { display: none !important; content: none !important; }
.fb-contact-form .gform_validation_errors a { color: #c4c6bf !important; font-size: 13px !important; line-height: 1.45 !important; text-decoration: none !important; transition: color .2s ease; }
.fb-contact-form .gform_validation_errors a:hover, .fb-contact-form .gform_validation_errors a:focus-visible { color: var(--fb-paper) !important; }
.fb-contact-form .gfield_error .gfield_label, .fb-contact-form .gfield_error .gfield_required { color: var(--fb-ink) !important; }
.fb-contact-form .gfield_error input:not([type="submit"]), .fb-contact-form .gfield_error textarea, .fb-contact-form .gfield_error select { border-color: var(--fb-ink) !important; background: #f7f6f1 !important; box-shadow: inset 4px 0 0 var(--fb-lime); }
.fb-contact-form .gfield_error input:focus, .fb-contact-form .gfield_error textarea:focus, .fb-contact-form .gfield_error select:focus { outline: 2px solid var(--fb-lime); outline-offset: 2px; }
.fb-contact-form .gfield_validation_message { margin-top: 8px !important; padding: 10px 12px 10px 15px !important; border: 0 !important; border-left: 3px solid var(--fb-lime) !important; border-radius: 0 !important; background: #151614 !important; color: var(--fb-paper) !important; font: 10px/1.45 monospace !important; letter-spacing: .07em !important; text-transform: uppercase; animation: fbFormErrorIn .32s cubic-bezier(.2, .65, .25, 1) both; }
.fb-contact-form .gfield_error .gfield_description.instruction:not(.gfield_validation_message) { margin-top: 7px !important; padding: 0 !important; border: 0 !important; background: transparent !important; color: #60625c !important; font-size: 11px !important; line-height: 1.4 !important; }
@keyframes fbFormErrorIn { from { opacity: 0; transform: translateY(-8px); } to { opacity: 1; transform: translateY(0); } }
.fb-contact-direct { margin-top: 42px; padding-top: 20px; border-top: 1px solid rgba(0, 0, 0, .4); display: flex; flex-direction: column; }
.fb-contact-direct a { width: max-content; min-height: 44px; display: flex; align-items: center; font-size: 22px; font-weight: 800; }
.fb-contact-direct span { margin-top: 8px; text-transform: uppercase; font: 10px/1.4 monospace; letter-spacing: .1em; }
/* Sits on the dark page ground under the paper form card, so it reads as a
   footnote to the page rather than a competing offer. Lime is spent on the
   hairline and the label only. */
/* One column, and the control sits under the copy it belongs to.
   It was a text link off to the right, which put the words and the way to act
   on them at opposite ends of a wide row, and gave the only thing on this
   block worth clicking the quietest treatment on the page. A filled button
   directly under the paragraph reads as one thought. */
.fb-contact-concept { margin-top: 56px; padding-top: 34px; border-top: 1px solid rgba(203, 221, 101, .34); }
.fb-contact-concept-copy { max-width: 62ch; }
.fb-contact-concept .fb-section-label { color: var(--fb-lime); }
.fb-contact-concept h2 { margin: 14px 0 12px; font-size: clamp(24px, 2.6vw, 34px); line-height: 1.1; letter-spacing: -.02em; text-wrap: balance; }
.fb-contact-concept p { margin: 0; color: #b8bab3; font-size: 16px; line-height: 1.55; }
/* width: max-content so it is a button, not a bar the width of the column. */
.fb-contact-concept-btn { width: max-content; max-width: 100%; margin-top: 24px; }
.fb-contact-concept-btn:hover { transform: translateY(-2px); }
.fb-video-feed-section { padding: 90px var(--fb-side) 120px; background: var(--fb-paper); color: var(--fb-ink); }
.fb-video-feed-heading { display: grid; grid-template-columns: 1fr 1fr; gap: 8vw; align-items: end; margin-bottom: 55px; }
.fb-video-feed-heading h2 { margin: 0; font-size: clamp(44px, 7vw, 104px); line-height: .86; letter-spacing: -.065em; text-transform: uppercase; }
.fb-video-feed-heading p { max-width: 540px; margin: 0; color: #5d5f5a; font-size: 18px; line-height: 1.6; }
.fb-video-feed { min-height: 240px; }
.fb-video-feed-empty { padding: 45px; border: 1px solid #b7b8b2; text-align: center; }
.fb-video-feed .sby_follow_btn a { min-height: 44px !important; color: var(--fb-ink) !important; }
.fb-video-feed .sby_load_btn { min-height: 44px !important; }
.fb-post-list { padding: 0 var(--fb-side) 100px; }
.fb-post-card > a { display: grid; grid-template-columns: 120px 1fr 1fr auto; gap: 30px; align-items: start; padding: 32px 0; border-top: 1px solid #3d3e3a; }
.fb-post-card h2 { margin: 0; text-transform: uppercase; font-size: 26px; }
.fb-post-card p { margin: 0; color: #979991; line-height: 1.6; }
.fb-404-page { overflow: hidden; background: var(--fb-ink); }
.fb-404-stage { position: relative; min-height: min(900px, 100svh); padding: 160px var(--fb-side) 70px; overflow: hidden; display: flex; align-items: flex-end; isolation: isolate; }
.fb-404-image { position: absolute; z-index: -4; inset: 0; background: url('../images/fox-brand-welder-sparks-hero.webp') 66% center / cover no-repeat; filter: grayscale(.8) contrast(1.08); animation: fb404Drift 12s ease-in-out infinite alternate; }
.fb-404-image:after { content: ""; position: absolute; inset: 0; background: linear-gradient(90deg, rgba(9, 10, 9, .97) 0%, rgba(9, 10, 9, .82) 45%, rgba(9, 10, 9, .3) 76%, rgba(9, 10, 9, .7) 100%), linear-gradient(0deg, rgba(9, 10, 9, .94), transparent 60%); }
.fb-404-grid { position: absolute; z-index: -2; inset: 94px 0 0; opacity: .17; background-image: linear-gradient(rgba(203, 221, 101, .22) 1px, transparent 1px), linear-gradient(90deg, rgba(203, 221, 101, .22) 1px, transparent 1px); background-size: 64px 64px; mask-image: linear-gradient(90deg, #000, transparent 68%); }
.fb-404-signal { position: absolute; z-index: -1; top: 48%; right: -2vw; width: min(48vw, 700px); color: rgba(255, 255, 255, .78); transform: translateY(-50%); }
.fb-404-signal strong { display: block; margin: -8px 0 -2px; color: transparent; font-size: clamp(210px, 30vw, 520px); line-height: .72; letter-spacing: -.1em; -webkit-text-stroke: 1px rgba(203, 221, 101, .7); }
.fb-404-signal span { display: block; font: 10px/1 monospace; letter-spacing: .17em; text-transform: uppercase; }
.fb-404-signal span:last-child { padding-right: max(4vw, 54px); text-align: right; }
.fb-404-corners { position: absolute; z-index: 2; inset: 122px var(--fb-side) 38px; pointer-events: none; }
.fb-404-corners i { position: absolute; width: 58px; height: 58px; border-color: rgba(203, 221, 101, .7); border-style: solid; }
.fb-404-corners i:nth-child(1) { top: 0; left: 0; border-width: 1px 0 0 1px; }
.fb-404-corners i:nth-child(2) { top: 0; right: 0; border-width: 1px 1px 0 0; }
.fb-404-corners i:nth-child(3) { right: 0; bottom: 0; border-width: 0 1px 1px 0; }
.fb-404-corners i:nth-child(4) { bottom: 0; left: 0; border-width: 0 0 1px 1px; }
.fb-404-copy { position: relative; z-index: 3; width: min(840px, 76%); }
.fb-404-copy h1 { margin: 0; font-size: clamp(72px, 10vw, 148px); font-weight: 900; line-height: .78; letter-spacing: -.075em; text-transform: uppercase; }
.fb-404-copy h1 em { color: var(--fb-lime); font-style: normal; }
.fb-404-copy > p:not(.fb-section-label) { max-width: 570px; margin: 34px 0 0; color: #c2c4bc; font-size: clamp(17px, 1.4vw, 20px); line-height: 1.6; }
.fb-404-actions { margin-top: 34px; display: flex; align-items: center; gap: 28px; }
.fb-404-actions .fb-button { width: max-content; }
.fb-404-text-link { min-height: 44px; padding: 10px 0; display: flex; align-items: center; gap: 18px; border-bottom: 1px solid rgba(255, 255, 255, .45); font-size: 10px; font-weight: 800; letter-spacing: .11em; text-transform: uppercase; transition: color .2s, border-color .2s; }
.fb-404-text-link:hover { color: var(--fb-lime); border-color: var(--fb-lime); }
.fb-404-frame-code { position: absolute; z-index: 3; right: calc(var(--fb-side) + 18px); bottom: 66px; margin: 0; color: rgba(255, 255, 255, .7); font: 9px/1 monospace; letter-spacing: .16em; text-transform: uppercase; writing-mode: vertical-rl; }
.fb-404-routes { display: grid; grid-template-columns: repeat(3, 1fr); border-top: 1px solid #40413d; border-bottom: 1px solid #40413d; }
.fb-404-routes a { min-height: 150px; padding: 30px var(--fb-side); border-right: 1px solid #40413d; display: grid; grid-template-columns: auto 1fr auto; gap: 22px; align-items: center; transition: background .2s, color .2s; }
.fb-404-routes a:last-child { border-right: 0; }
.fb-404-routes a:hover { background: var(--fb-lime); color: var(--fb-ink); }
.fb-404-routes a > span { color: var(--fb-lime); font: 10px/1 monospace; }
.fb-404-routes a:hover > span { color: var(--fb-ink); }
.fb-404-routes strong { font-size: clamp(18px, 1.8vw, 28px); letter-spacing: -.03em; text-transform: uppercase; }

@keyframes fb404Drift { from { transform: scale(1.03); } to { transform: scale(1.09) translateX(-1%); } }

@keyframes fbHeroCameraPush { from { transform: scale(1.02); } to { transform: scale(1.065); } }
@keyframes fbHeroMetaIn { from { opacity: 0; transform: translateY(-8px); } to { opacity: 1; transform: translateY(0); } }
@keyframes fbHeroRuleIn { from { transform: scaleX(0); } to { transform: scaleX(1); } }
@keyframes fbHeroStoryFill { from { clip-path: inset(0 100% 0 0); } to { clip-path: inset(0 0 0 0); } }
@keyframes fbHeroStoryColor { from { color: #fff; } to { color: var(--fb-lime); } }
@keyframes fbCommercialHeroMove {
  from { transform: scale(1.02) translate3d(-.35%, 0, 0); }
  to { transform: scale(1.075) translate3d(.65%, -.45%, 0); }
}
@keyframes fbHeroStoryCursor {
  0%, 8% { left: 0; opacity: 0; }
  16% { opacity: .95; }
  90% { opacity: .95; }
  100% { left: 100%; opacity: 0; }
}
@keyframes fbTicker { to { transform: translateX(-50%); } }

@media (min-width: 981px) {
  .fox-brand-front-page.fb-motion-ready .fb-heading-line-inner { transition-delay: calc(var(--fb-heading-delay, 0ms) + 260ms); }
}

@media (max-width: 1180px) {
  .fb-menu { gap: 22px; }
  .fb-header-inner { grid-template-columns: minmax(160px, 1fr) auto minmax(160px, 1fr); }
  .fb-header-cta { padding-inline: 14px; }
}

@media (max-width: 980px) {
  .admin-bar .fb-site-header { top: 46px; }
  .fb-site-header { position: absolute; height: 76px; }
  .fb-header-scrolled { position: fixed; }
  .fb-header-inner { grid-template-columns: 1fr auto; }
  .fb-brand, .custom-logo-link { width: 160px; }
  .fb-menu-toggle { position: relative; z-index: 5; justify-self: end; width: 52px; height: 52px; padding: 0; border: 1px solid rgba(255, 255, 255, .34); border-radius: 50%; background: transparent; color: white; display: grid; place-items: center; cursor: pointer; }
  .fb-menu-toggle-label { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); }
  .fb-menu-toggle-lines { width: 18px; display: grid; gap: 5px; }
  .fb-menu-toggle-lines i { display: block; height: 1px; background: currentColor; transition: transform .2s; }
  .fb-menu-open .fb-menu-toggle-lines i:first-child { transform: translateY(3px) rotate(45deg); }
  .fb-menu-open .fb-menu-toggle-lines i:last-child { transform: translateY(-3px) rotate(-45deg); }
  .fb-header-cta { display: none; }
  .fb-primary-navigation { visibility: hidden; opacity: 0; position: fixed; z-index: 4; inset: 0; width: 100%; height: 100dvh; padding: 110px 22px 34px; overflow-y: auto; display: block; background: var(--fb-ink); transform: translateY(-12px); transition: visibility .25s, opacity .25s, transform .25s; }
  .fb-menu-open .fb-primary-navigation { visibility: visible; opacity: 1; transform: translateY(0); }
  .fb-mobile-nav-label { display: block; margin: 0 0 28px; color: var(--fb-lime); font: 10px/1 monospace; text-transform: uppercase; letter-spacing: .14em; }
  .fb-menu { display: block; }
  .fb-menu > li { display: grid; grid-template-columns: 1fr auto; height: auto; border-top: 1px solid #3e403b; }
  .fb-menu > li:last-child { border-bottom: 1px solid #3e403b; }
  .fb-menu > li > a, .fb-header-scrolled .fb-menu > li > a { display: block; padding: 18px 0; font-size: clamp(28px, 8vw, 44px); line-height: 1; letter-spacing: -.04em; }
  .fb-menu > .menu-item-has-children > a, .fb-header-scrolled .fb-menu > .menu-item-has-children > a { padding-right: 0; }
  .fb-menu > .menu-item-has-children > a:before { display: none; }
  .fb-menu > li > a:after { display: none; }
  .fb-submenu-toggle { width: 48px; min-height: 44px; align-self: stretch; border: 0; background: transparent; color: var(--fb-lime); display: grid; place-items: center; cursor: pointer; }
  .fb-submenu-toggle-icon { position: relative; width: 18px; height: 18px; display: block; }
  .fb-submenu-toggle-icon i { position: absolute; top: 50%; left: 50%; width: 16px; height: 1.5px; display: block; background: currentColor; transform: translate(-50%, -50%); transition: transform .2s ease, opacity .2s ease; }
  .fb-submenu-toggle-icon i:last-child { transform: translate(-50%, -50%) rotate(90deg); }
  .fb-submenu-toggle-open .fb-submenu-toggle-icon i:last-child { opacity: 0; transform: translate(-50%, -50%) rotate(0); }
  .fb-menu .sub-menu, .fb-header-scrolled .fb-menu .sub-menu { visibility: hidden; opacity: 1; position: static; grid-column: 1 / -1; width: auto; max-height: 0; padding: 0; overflow: hidden; display: block; border: 0; background: transparent; transform: none; transition: max-height .35s ease, visibility .35s; }
  .fb-menu li:hover > .sub-menu, .fb-menu li:focus-within > .sub-menu { visibility: hidden; max-height: 0; }
  .fb-menu .menu-item-has-children.fb-submenu-open > .sub-menu { visibility: visible; max-height: 600px; padding-bottom: 16px; }
  .fb-menu .sub-menu li, .fb-menu .sub-menu li:nth-last-child(-n+3) { border: 0; }
  .fb-menu .sub-menu a { min-height: 0; padding: 9px 0; color: #a6a8a0; font-size: 17px; }
  .fb-menu .sub-menu a:after { display: none; }
  .fb-mobile-nav-meta { display: flex; flex-direction: column; gap: 7px; margin-top: 28px; color: #85877f; font: 10px/1.4 monospace; text-transform: uppercase; letter-spacing: .1em; }
  .fb-mobile-nav-meta a { width: max-content; min-height: 44px; display: flex; align-items: center; color: var(--fb-paper); font-size: 16px; font-weight: 700; letter-spacing: .06em; }
  .fb-hero { min-height: 820px; padding: 120px 22px 34px; }
  /* Mobile Safari's small viewport ends above its persistent bottom controls.
     A hero that merely matches 100svh can therefore finish early enough for
     the services ribbon and the white section to enter the first screen.
     Keep the copy in its established position by growing the hero and its
     lower safe area by the same amount. The extra 96px remains video, not
     blank space, and is only reached after the visitor starts scrolling. */
  .fox-brand-front-page .fb-hero {
    min-height: calc(100svh + 96px);
    padding: 116px 22px 204px;
  }
  .fb-hero-topline { top: 98px; left: 22px; right: 22px; }
  .fb-hero-topline span:last-child { display: none; }
  .fb-hero-media { background-position: 46% center; }
  .fb-hero h1 { font-size: clamp(64px, 12.2vw, 92px); line-height: .82; }
  .fb-hero-bottom { align-items: flex-start; flex-direction: column; }
  .fox-brand-front-page .fb-hero-bottom { margin-top: 22px; padding-top: 16px; }
  .fb-hero-bottom > p { max-width: 390px; font-size: 16px; }
  .fb-hero-actions { width: 100%; flex-direction: column; align-items: stretch; gap: 18px; }
  .fb-button { width: 100%; }
  .fb-frame-code { display: none; }
  .fb-section { padding: 80px 22px; }
  .fb-intro-grid { grid-template-columns: 1fr; gap: 35px; }
  .fb-intro h2, .fb-section-heading h2, .fb-approach h2, .fb-supporting-services h2, .fb-architecture-callout h2 { font-size: 50px; }
  .fb-capability-list { margin-top: 55px; }
  .fb-capability { grid-template-columns: 40px 1fr auto; gap: 14px; }
  .fb-capability h3 { font-size: 21px; }
  .fb-capability p { grid-column: 2 / -1; }
  .fb-client-carousel-section { padding: 80px 0 54px; }
  .fb-client-carousel-heading { width: calc(100% - 44px); margin-bottom: 44px; grid-template-columns: 1fr; gap: 32px; }
  .fb-client-carousel-heading h2 { font-size: 56px; }
  .fb-client-carousel-heading > p { max-width: 520px; }
  .fb-client-carousel-viewport { width: 100%; padding: 28px 0; }
	.fb-home-project-cta { padding: 60px 22px; grid-template-columns: 1fr; gap: 28px; align-items: start; }
	.fb-home-project-cta h2 { font-size: clamp(46px, 10vw, 64px); }
	.fb-home-project-cta > p { max-width: 580px; }
	.fb-home-project-cta .fb-button { width: 100%; }
  .fb-section-heading { align-items: flex-start; flex-direction: column; gap: 30px; }
  .fb-work-grid, .fb-project-grid { grid-template-columns: 1fr; }
  .fb-work-feature { height: 620px; }
  .fb-work-feature img { object-position: 45% center; }
  .fb-work-overlay { padding: 22px; }
  .fb-round-arrow { width: 48px; height: 48px; }
  .fb-work-card-tall, .fb-work-card-wide { min-height: 510px; grid-row: auto; }
  .fb-work-card-wide:last-child { min-height: 330px; }
  .fb-work-card-standard { min-height: 0; aspect-ratio: 4 / 3; }
  /* Except the website screenshots.
     Every shot in this grid is 1425x891, which is 16:10, and the card is 16:10
     at full width, so nothing is cropped there. This breakpoint squares the
     cards to 4:3 to give the photography more presence on a narrow screen,
     which is right for a photograph and wrong for a screenshot: it takes 20% off
     the width, and no matter which side you anchor to, something goes. Centre
     lost the logo on Pacific Stone and 3GM, left lost the end of 3GM's headline.
     A screenshot of a page has no spare edges, so it keeps the shape it was
     taken at and is simply a little shorter than its neighbours. */
  .fb-work-card-standard:has(> img[src*="-desktop"]) { aspect-ratio: 16 / 10; }
  .fb-architecture-callout { padding: 80px 22px; grid-template-columns: 1fr; }
  .fb-architecture-copy .fb-button { width: 100%; }
  .fb-architecture-frame { min-height: 300px; }
  .fb-approach { grid-template-columns: 1fr; }
  .fb-approach-image { min-height: 620px; }
  .fb-approach-copy { padding: 80px 22px; }
  .fb-service-row { grid-template-columns: 34px 1fr auto; }
  .fb-service-row p { grid-column: 2 / -1; margin: 0; }
  .fb-quote { padding: 100px 24px; }
  .fb-quote p span { display: block; margin: 8px 0 0; }
	.fb-contact-band { overflow: hidden; }
	.fb-contact-band-link { padding: 80px 22px 60px; }
  .fb-contact-band h2 { font-size: clamp(88px, 16vw, 132px); }
  .fb-contact-band h2 em { display: block; width: 100%; }
  .fb-contact-band-bottom { align-items: flex-start; flex-direction: column; gap: 34px; }
  .fb-site-footer { grid-template-columns: 1fr 1fr; padding: 55px 22px; }
  .fb-footer-legal { text-align: left; }
  .fb-page-shell { padding-top: 76px; }
  .fb-page-hero { padding: 75px 22px 60px; }
  .fb-page-hero h1, .fb-page-hero-split h1 { font-size: clamp(68px, 12vw, 96px); }
  .fb-page-content { padding: 65px 22px; }
  .fb-architecture-gallery { grid-template-columns: 1fr; }
  .fb-architecture-gallery figure, .fb-architecture-gallery figure:last-child { min-height: 440px; }
  .fb-architecture-definition { padding: 70px 22px; grid-template-columns: 1fr; gap: 28px; }
  .fb-contact-form { grid-template-columns: 1fr; padding: 40px 22px; }
  /* Full width on a phone, matching every other button on this page. */
  .fb-contact-concept-btn { width: 100%; }
  .fb-video-feed-section { padding: 70px 22px 90px; }
  .fb-video-feed-heading { grid-template-columns: 1fr; gap: 28px; }
  .fb-post-list { padding: 0 22px 80px; }
  .fb-post-card > a { grid-template-columns: 1fr auto; }
  .fb-post-card h2, .fb-post-card p { grid-column: 1 / -1; }
	.fb-404-stage { min-height: 800px; padding: 130px 22px 54px; }
	.fb-404-grid { inset: 76px 0 0; background-size: 48px 48px; }
	.fb-404-signal { top: 33%; right: -7vw; width: 76vw; opacity: .76; }
	.fb-404-signal strong { font-size: clamp(190px, 49vw, 360px); }
	.fb-404-corners { inset: 100px 22px 24px; }
	.fb-404-copy { width: min(680px, 100%); }
	.fb-404-copy h1 { font-size: clamp(65px, 14vw, 104px); }
	.fb-404-routes { grid-template-columns: 1fr; }
	.fb-404-routes a { min-height: 104px; padding: 24px 22px; border-right: 0; border-bottom: 1px solid #40413d; }
	.fb-404-routes a:last-child { border-bottom: 0; }
}

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

/* Phone held sideways.
   The mobile nav sizes its links with clamp(28px, 8vw, 44px), which reads the
   width and ignores the height. Turn a phone landscape and the width jumps to
   roughly 850px, pinning the type to its 44px maximum, while the height drops
   to about 390. Measured at 844x390: two top level links at 80px each, 600px of
   menu inside a 390px viewport, and the rest scrolled out of sight below the
   fold. The nav's own 110px top padding was taking another quarter of it.
   Keyed on height and orientation rather than width, because the problem is
   vertical space. This also catches a small tablet held sideways and anything
   in split screen. */
@media (max-height: 500px) and (orientation: landscape) {
  .fb-primary-navigation { padding: 76px 22px 24px; }
  .fb-mobile-nav-label { margin: 0 0 14px; }
  .fb-menu > li > a,
  .fb-header-scrolled .fb-menu > li > a { padding: 9px 0; font-size: 22px; }
  .fb-submenu a { font-size: 15px; }
  .fb-mobile-nav-meta { margin-top: 16px; }

  /* A phone held sideways is about 390 to 430px tall, and the full height
     stages were still asking for the whole viewport and sizing their display
     type off the width. At 844x390 the H1 rendered at 86px over three lines,
     which is more than the entire screen: the headline ran off the bottom
     before the paragraph beneath it had anywhere to go.

     So they stop filling the viewport, because they cannot, and the display
     type steps down to something that fits the height rather than the width.
     Everything else about the design holds; this is the same hero, shorter. */
  /* The topline is position:absolute at top:98px, so it is not in the flow and
     the hero's own padding is the only thing keeping the content clear of it.
     Dropping min-height to auto pulled the bottom-aligned content up under it
     and "Southern California" landed on top of the eyebrow. The two numbers
     below are a pair: the topline sits at 88-99px, the content starts at 118px.
     Change one and you have to change the other. */
  .fb-hero-topline { top: 88px; }
  .fb-hero { min-height: auto; padding-top: 118px; }
  /* Sized so the hero paragraph finishes above the accessibility button rather
     than behind it. Measured at 844x390: the paragraph ran to y=346 against a
     button starting at y=333, so the content had to come up 13px. This buys
     about 24, which leaves a real gap rather than a photo finish. The button is
     fixed to the viewport, so no amount of padding on a hero taller than the
     screen can fix this; the content itself has to be shorter. */
  .fb-hero h1 { font-size: clamp(34px, 5.6vw, 48px); }
  .fb-hero-bottom { margin-top: 16px; padding-top: 12px; }

  /* The shade has to follow the content.
     Its default is linear-gradient(0deg, rgba(0,0,0,.8), transparent 54%): a
     bottom-up wash that is completely clear across the top 46%. That was safe
     while the hero filled the viewport and the copy sat on the bottom edge,
     inside the dark part. Once the copy moved up it landed in the clear zone,
     and the white headline disappeared into a bright photograph: still there at
     opacity 1, 47px, simply unreadable. Nothing in the CSS for the headline
     looks wrong, which is what makes it worth the comment.
     Gradient only, with no solid colour under it. This element is an overlay
     on top of the hero media, not the backdrop behind it, so a flat base is not
     a fallback, it is paint: the first attempt put #1a1a18 beneath the gradient
     and covered the photograph entirely. The top stop is .38 rather than
     transparent, which carries white type over a bright frame while still
     letting the image read. */
  .fb-hero-shade {
    background: linear-gradient(0deg, rgba(0, 0, 0, .84), rgba(0, 0, 0, .55) 62%, rgba(0, 0, 0, .38));
  }
  .fb-hero-bottom > p { font-size: 15px; }
  .fb-404-stage { min-height: auto; padding-top: 104px; }
  .fb-review-hero { min-height: auto; padding-bottom: 76px; }
}

/* Work hub and recurring field-content program. */
.fb-work-empty { padding: 110px var(--fb-side); background: var(--fb-paper); color: var(--fb-ink); }
.fb-work-empty h2 { max-width: 900px; margin: 0; font-size: clamp(48px, 7vw, 104px); line-height: .84; letter-spacing: -.065em; text-transform: uppercase; }
.fb-work-empty p { max-width: 560px; margin: 34px 0 0; color: #60625d; font-size: 18px; line-height: 1.6; }
.fb-field-content-prompt, .fb-case-study-next { padding: 112px max(22px, var(--fb-side)); display: grid; grid-template-columns: minmax(0, 1.15fr) minmax(280px, .65fr); gap: 8vw; align-items: end; overflow: clip; background: #151614; color: var(--fb-paper); }
.fb-field-content-prompt h2, .fb-case-study-next h2 { max-width: 920px; margin: 0; font-size: clamp(48px, 6.8vw, 104px); line-height: .84; letter-spacing: -.065em; text-transform: uppercase; }
.fb-field-content-prompt h2 em, .fb-case-study-next h2 em { color: var(--fb-lime); font-style: normal; }
.fb-field-content-prompt > div:last-child > p, .fb-case-study-next > div:last-child > p { max-width: 510px; margin: 0 0 30px; color: #b5b7b0; font-size: 18px; line-height: 1.6; }
.fb-case-study-hero { background: #171816; color: var(--fb-paper); }
.fb-case-study-hero-inner { width: min(calc(100% - (var(--fb-side) * 2)), 2200px); margin: 0 auto; padding: 96px 0 24px; display: grid; grid-template-columns: minmax(0, 1.2fr) minmax(280px, .55fr); gap: 8vw; align-items: end; }
.fb-case-study-hero-copy > .fb-section-label { margin-top: 74px; }
.fb-case-back { min-height: 44px; display: inline-flex; align-items: center; gap: 12px; color: var(--fb-lime); font-size: 10px; font-weight: 800; letter-spacing: .11em; text-transform: uppercase; }
.fb-case-back .fb-arrow-icon { width: 15px; height: 15px; transform: rotate(180deg); }
.fb-case-study-hero h1 { max-width: 1000px; margin: 0; font-size: clamp(62px, 9vw, 142px); line-height: .78; letter-spacing: -.075em; text-transform: uppercase; }
.fb-case-study-deck { max-width: 720px; margin: 38px 0 0; color: #b5b7b0; font-size: clamp(18px, 1.8vw, 23px); line-height: 1.55; }
.fb-case-study-facts { grid-column: 2; grid-row: 1; border-top: 1px solid rgba(255, 255, 255, .28); }
.fb-case-study-facts > div { padding: 19px 0; border-bottom: 1px solid rgba(255, 255, 255, .2); display: grid; gap: 8px; }
.fb-case-study-facts span { color: var(--fb-lime); font: 10px/1 monospace; letter-spacing: .12em; text-transform: uppercase; }
.fb-case-study-facts strong { font-size: 15px; font-weight: 600; line-height: 1.45; }
.fb-case-study-feature { grid-column: 1 / -1; grid-row: 2; margin: 0; padding: clamp(12px, 1.5vw, 24px); display: grid; place-items: center; background: #111; }
.fb-case-study-feature img { width: 100%; max-width: 2100px; height: auto; display: block; }
.fb-case-study-content { max-width: 920px; padding: 118px var(--fb-side); color: var(--fb-paper); }
.fb-case-study-content h2 { max-width: 790px; margin: 0 0 24px; font-size: clamp(34px, 4.5vw, 68px); line-height: .9; letter-spacing: -.055em; text-transform: uppercase; }
.fb-case-study-content h2:not(:first-child) { margin-top: 88px; }
.fb-case-study-content p, .fb-case-study-content li { max-width: 680px; color: #b5b7b0; font-size: 18px; line-height: 1.65; }
.fb-case-study-content p { margin: 0; }
.fb-case-study-content ul { max-width: 720px; margin: 0; padding: 0; list-style: none; border-top: 1px solid #3f413d; }
.fb-case-study-content li { max-width: none; padding: 19px 0 19px 34px; border-bottom: 1px solid #3f413d; position: relative; }
.fb-case-study-content li:before { content: ''; position: absolute; left: 0; top: 29px; width: 10px; height: 10px; background: var(--fb-lime); }
.fb-case-gallery { margin: 92px calc(var(--fb-side) * -1) -118px; padding: 18px; display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 18px; background: var(--fb-paper); align-items: start; }
.fb-case-gallery figure { min-width: 0; margin: 0; background: #d5d6d1; }
.fb-case-gallery img { width: 100%; height: auto; display: block; }
.fb-case-study-content { max-width: none; padding: 0; }
.fb-case-intro, .fb-case-chapter { padding: 118px var(--fb-side); }
.fb-case-intro { max-width: 1080px; }
.fb-case-intro h2 { max-width: 790px; margin: 0 0 28px; font-size: clamp(42px, 6vw, 86px); line-height: .86; letter-spacing: -.065em; text-transform: uppercase; }
.fb-case-intro > p:last-child { max-width: 685px; margin: 0; color: #b5b7b0; font-size: clamp(18px, 1.75vw, 23px); line-height: 1.6; }
.fb-case-ledger { padding: 66px var(--fb-side); background: #151614; color: var(--fb-paper); }
.fb-case-ledger > div { max-width: 920px; margin: 0 0 32px; }
.fb-case-ledger .fb-section-label { color: var(--fb-lime); }
.fb-case-ledger h2 { max-width: 780px; margin: 0; font-size: clamp(40px, 5.8vw, 82px); line-height: .86; letter-spacing: -.065em; text-transform: uppercase; }
.fb-case-ledger ol { margin: 0; padding: 0; display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); list-style: none; border-top: 1px solid rgba(255, 255, 255, .28); }
.fb-case-ledger li { min-width: 0; padding: 16px 18px 18px 0; border-right: 1px solid rgba(255, 255, 255, .18); }
.fb-case-ledger li:before { content: none; }
.fb-case-ledger li + li { padding-left: 18px; }
.fb-case-ledger li:last-child { border-right: 0; }
.fb-case-ledger a { display: block; color: inherit; text-decoration: none; }
.fb-case-ledger a:hover strong, .fb-case-ledger a:focus-visible strong { color: var(--fb-lime); }
.fb-case-ledger a:focus-visible { outline: 2px solid var(--fb-lime); outline-offset: 6px; }
.fb-case-ledger span { display: block; margin-bottom: 12px; color: var(--fb-lime); font: 10px/1 monospace; letter-spacing: .12em; text-transform: uppercase; }
.fb-case-ledger strong { display: block; font-size: clamp(20px, 2.05vw, 30px); line-height: .92; letter-spacing: -.04em; text-transform: uppercase; }
.fb-case-ledger p { margin: 10px 0 0; color: #b5b7b0; font-size: 13px; line-height: 1.45; }
.fb-case-route { padding: 26px var(--fb-side); display: flex; align-items: center; justify-content: space-between; gap: 28px; background: #11120f; color: var(--fb-paper); border-top: 1px solid rgba(255, 255, 255, .18); }
.fb-case-route p { max-width: 560px; margin: 0; color: #b5b7b0; font-size: 16px; line-height: 1.5; }
.fb-case-route a { min-height: 44px; flex: 0 0 auto; display: inline-flex; align-items: center; gap: 12px; color: var(--fb-lime); font-size: 10px; font-weight: 800; letter-spacing: .11em; text-decoration: none; text-transform: uppercase; }
.fb-case-route a:hover, .fb-case-route a:focus-visible { color: var(--fb-paper); }
.fb-case-chapter { display: grid; grid-template-columns: 120px minmax(0, 1fr); gap: 36px; border-top: 1px solid #3f413d; }
.fb-case-chapter[id] { scroll-margin-top: 96px; }
.fb-case-chapter-number { margin: 5px 0 0; color: var(--fb-lime); font: 12px/1 monospace; letter-spacing: .14em; }
.fb-case-chapter > div { max-width: 760px; }
.fb-case-chapter .fb-section-label { margin: 0 0 18px; }
.fb-case-chapter h2 { max-width: 720px; margin: 0 0 24px; font-size: clamp(38px, 5vw, 74px); line-height: .88; letter-spacing: -.06em; text-transform: uppercase; }
.fb-case-chapter p:not(.fb-section-label) { max-width: 680px; margin: 0; color: #b5b7b0; font-size: 18px; line-height: 1.65; }
.fb-case-chapter p + p { margin-top: 18px; }
.fb-case-media-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 18px; padding: 18px; background: var(--fb-paper); align-items: start; }
.fb-case-media-grid--three { grid-template-columns: repeat(3, minmax(0, 1fr)); }
.fb-case-figure { min-width: 0; margin: 0; background: #d5d6d1; }
.fb-case-figure img { width: 100%; height: auto; display: block; }
.fb-case-figure figcaption { max-width: 560px; box-sizing: border-box; padding: 10px 5px 11px; color: #555750; font-size: 13px; line-height: 1.45; }
/* Gallery rule: a row is either a deliberate pair or one complete full-width
   image. Never leave an accidental paper-colored grid cell beside a frame. */
.fb-case-mosaic { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 18px; padding: 18px; background: var(--fb-paper); align-items: start; }
.fb-case-mosaic .fb-case-figure { margin: 0; }
.fb-case-mosaic .fb-case-figure--mosaic-wide, .fb-case-mosaic .fb-case-figure--mosaic-tall, .fb-case-mosaic .fb-case-figure--mosaic-full { grid-column: 1 / -1; }
/* A paired gallery row is a deliberate matched frame, not two natural-height
   images that leave a paper-colored void under the shorter source. Wide and
   tall records already span the whole row so their composition stays intact. */
.fb-case-mosaic .fb-case-figure--mosaic-half img, .fb-case-mosaic .fb-case-figure--mosaic-third img, .fb-case-media-grid .fb-case-figure img { aspect-ratio: 4 / 3; height: auto; object-fit: cover; }
.fb-case-media-grid--offset .fb-case-figure:last-child { margin-top: 8vw; }
.fb-case-media-grid--paired-tall { grid-template-columns: minmax(0, 1.35fr) minmax(0, 1fr); }
.fb-case-media-grid--paired-portrait { grid-template-columns: minmax(0, 2.25fr) minmax(0, 1fr); }
.fb-case-media-grid--archive { grid-template-columns: minmax(0, 1.35fr) minmax(260px, .65fr); }
.fb-case-media-grid--archive .fb-case-figure--portrait { max-width: 520px; justify-self: end; }
/* A portrait poster and a landscape brochure can share one purposeful row when
   their column widths match their natural proportions. This keeps both full
   applications visible without a vacant paper field around either one. */
.fb-case-media-grid--graphic-pair { grid-template-columns: minmax(0, .75fr) minmax(0, 1.5fr); }
.fb-case-media-grid--graphic-pair .fb-case-figure img { aspect-ratio: auto; object-fit: contain; }
.fb-case-gallery--field { grid-template-columns: minmax(0, 1fr); }
.fb-case-gallery--field .fb-case-figure { width: 100%; max-width: none; }
.fb-case-gallery--wide { grid-template-columns: minmax(0, 1fr); }
.fb-case-gallery--wide .fb-case-figure { width: 100%; max-width: none; }
.fb-case-gallery--panorama { grid-template-columns: minmax(0, 1fr); }
.fb-case-gallery--document { grid-template-columns: minmax(0, 1fr); }
.fb-case-gallery--document .fb-case-figure { width: min(100%, 1040px); justify-self: center; padding: clamp(12px, 2.4vw, 34px); background: #ebeae6; }
.fb-case-film { padding: 72px var(--fb-side); display: grid; grid-template-columns: minmax(0, .76fr) minmax(360px, 1.24fr); gap: 7vw; align-items: center; background: var(--fb-lime); color: var(--fb-ink); }
.fb-case-film > * { min-width: 0; }
.fb-case-film .fb-section-label { color: #45463f; }
.fb-case-film h2 { max-width: 590px; margin: 0 0 24px; font-size: clamp(42px, 5vw, 76px); line-height: .87; letter-spacing: -.06em; text-transform: uppercase; }
.fb-case-film p:last-child { max-width: 480px; margin: 0; color: #30322c; font-size: 17px; line-height: 1.6; }
.fb-case-film-frame { width: 100%; max-width: 100%; min-width: 0; aspect-ratio: 16 / 9; overflow: hidden; background: #111; box-shadow: 0 20px 55px rgba(0, 0, 0, .18); }
.fb-case-film iframe { width: 100%; max-width: 100%; height: 100%; display: block; border: 0; }
.fb-case-film--ink { background: #151614; color: var(--fb-paper); }
.fb-case-film--ink .fb-section-label { color: var(--fb-lime); }
.fb-case-film--ink p:last-child { color: #b5b7b0; }
.fb-case-film--paper { background: var(--fb-paper); color: var(--fb-ink); }
.fb-case-film--paper .fb-section-label { color: #555750; }
.fb-case-film--paper p:last-child { color: #555750; }
.fb-case-film-pair { padding: 72px var(--fb-side); background: #11120f; color: var(--fb-paper); }
.fb-case-film-pair-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 34px 18px; }
.fb-case-film-pair article { min-width: 0; }
.fb-case-film-pair h2 { margin: 19px 0 8px; font-size: clamp(27px, 3vw, 44px); line-height: .9; letter-spacing: -.05em; text-transform: uppercase; }
.fb-case-film-pair p { max-width: 520px; margin: 0; color: #b5b7b0; font-size: 16px; line-height: 1.55; }
.fb-case-study-content .fb-case-intro h2, .fb-case-study-content .fb-case-chapter h2, .fb-case-study-content .fb-case-film h2 { margin-top: 0; }
.fb-case-gallery { margin: 0; }
.fb-case-gallery .fb-case-figure figcaption { padding: 16px 4px 6px; }
.fb-field-content-hero { min-height: 760px; padding: 140px var(--fb-side) 90px; display: grid; grid-template-columns: minmax(0, 1.15fr) minmax(300px, .55fr); gap: 8vw; align-items: end; background: linear-gradient(rgba(9, 10, 9, .55), rgba(9, 10, 9, .94)), url('../images/commercial/pro-craft-cod-fire-hero.webp') center / cover; color: var(--fb-paper); }
.fb-field-content-hero h1 { max-width: 940px; margin: 0; font-size: clamp(64px, 9.5vw, 145px); line-height: .78; letter-spacing: -.075em; text-transform: uppercase; }
.fb-field-content-hero h1 em { color: var(--fb-lime); font-style: normal; }
.fb-field-content-hero > div:last-child > p { max-width: 510px; margin: 0 0 30px; font-size: 20px; line-height: 1.6; }
.fb-field-content-definition { padding: 116px var(--fb-side); display: grid; grid-template-columns: minmax(0, 1.08fr) minmax(300px, .72fr); gap: 9vw; background: var(--fb-paper); color: var(--fb-ink); }
.fb-field-content-definition h2 { margin: 0; font-size: clamp(44px, 5.8vw, 88px); line-height: .86; letter-spacing: -.065em; text-transform: uppercase; }
.fb-field-content-definition p { margin: 0; color: #555750; font-size: 18px; line-height: 1.65; }
.fb-field-content-definition ul { margin: 34px 0 0; padding: 0; list-style: none; border-top: 1px solid #aaaca5; }
.fb-field-content-definition li { padding: 15px 0; border-bottom: 1px solid #aaaca5; font-size: 13px; font-weight: 700; letter-spacing: .05em; text-transform: uppercase; }
.fb-field-content-definition .fb-button { width: max-content; margin-top: 30px; }
.fb-field-content-steps { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); background: #151614; color: var(--fb-paper); }
.fb-field-content-steps article { min-height: 345px; padding: 40px 3vw; border-right: 1px solid rgba(255, 255, 255, .2); }
.fb-field-content-steps article:last-child { border-right: 0; }
.fb-field-content-steps span { color: var(--fb-lime); font: 10px/1 monospace; letter-spacing: .12em; }
.fb-field-content-steps h2 { margin: 104px 0 17px; font-size: clamp(28px, 3vw, 48px); line-height: .9; letter-spacing: -.05em; text-transform: uppercase; }
.fb-field-content-steps p { max-width: 300px; margin: 0; color: #b5b7b0; line-height: 1.55; }
.fb-field-content-proof { padding: 116px var(--fb-side); background: #e4e3dd; color: var(--fb-ink); }
.fb-field-content-proof > div:first-child { margin-bottom: 62px; display: grid; grid-template-columns: minmax(0, 1.2fr) minmax(280px, .55fr); gap: 8vw; align-items: end; }
.fb-field-content-proof h2 { max-width: 900px; margin: 0; font-size: clamp(46px, 6.5vw, 98px); line-height: .84; letter-spacing: -.065em; text-transform: uppercase; }
.fb-field-content-proof-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 18px; }
.fb-field-content-proof-grid article { min-width: 0; }
.fb-field-content-proof-grid img { width: 100%; height: auto; display: block; }
.fb-field-content-proof-grid article > div { padding: 19px 2px 0; border-top: 1px solid #989a93; }
.fb-field-content-proof-grid strong { font-size: clamp(24px, 2.5vw, 38px); line-height: .9; text-transform: uppercase; }
.fb-field-content-proof-grid p { margin: 10px 0 0; color: #555750; font-size: 14px; line-height: 1.5; }
@media (max-width: 980px) {
  .fb-field-content-prompt, .fb-case-study-next, .fb-field-content-hero, .fb-field-content-definition, .fb-field-content-proof > div:first-child { grid-template-columns: 1fr; gap: 34px; }
  .fb-case-study-hero-inner { grid-template-columns: 1fr; gap: 34px; padding-top: 88px; }
  .fb-case-study-facts { grid-column: auto; grid-row: auto; }
  .fb-case-study-hero-copy > .fb-section-label { margin-top: 56px; }
  .fb-field-content-hero { min-height: 680px; }
  .fb-field-content-steps { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .fb-field-content-steps article:nth-child(2) { border-right: 0; }
  .fb-field-content-steps article { border-bottom: 1px solid rgba(255, 255, 255, .2); }
  .fb-case-gallery { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .fb-case-intro, .fb-case-chapter, .fb-case-ledger { padding: 92px var(--fb-side); }
  .fb-case-ledger ol { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .fb-case-ledger li:nth-child(2) { border-right: 0; }
  .fb-case-ledger li:nth-child(n + 3) { border-top: 1px solid rgba(255, 255, 255, .18); }
  .fb-case-media-grid--three { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .fb-case-film { grid-template-columns: 1fr; padding: 84px var(--fb-side); gap: 42px; }
  .fb-case-film-pair { padding: 84px var(--fb-side); }
}
@media (max-width: 680px) {
  .fb-work-empty, .fb-field-content-prompt, .fb-case-study-next, .fb-field-content-definition, .fb-field-content-proof { padding: 76px 22px; }
  .fb-case-study-hero-inner { width: calc(100% - 44px); padding: 76px 0 12px; }
  .fb-case-study-hero h1 { font-size: clamp(42px, 12vw, 50px); line-height: .82; }
  .fb-field-content-hero h1 { font-size: clamp(50px, 14vw, 64px); line-height: .82; }
  .fb-case-study-deck, .fb-field-content-hero > div:last-child > p { font-size: 18px; }
  .fb-case-study-content h2:not(:first-child) { margin-top: 62px; }
  .fb-case-study-content p, .fb-case-study-content li { font-size: 17px; }
  .fb-case-gallery { margin: 64px -22px -76px; padding: 12px; grid-template-columns: 1fr; gap: 12px; }
  .fb-case-gallery { margin: 0; }
  .fb-case-intro, .fb-case-chapter, .fb-case-ledger { padding: 76px 22px; }
  .fb-case-ledger > div { margin-bottom: 38px; }
  .fb-case-ledger ol { grid-template-columns: 1fr; }
  .fb-case-ledger li, .fb-case-ledger li + li { padding: 19px 0 24px; border-right: 0; border-top: 1px solid rgba(255, 255, 255, .18); }
  .fb-case-ledger li:first-child { border-top: 0; }
  .fb-case-ledger a { min-height: 0; }
  .fb-case-ledger span { margin-bottom: 22px; }
  .fb-case-route { padding: 24px 22px; align-items: flex-start; flex-direction: column; gap: 14px; }
  .fb-case-intro h2 { font-size: clamp(38px, 11.5vw, 54px); }
  .fb-case-chapter { grid-template-columns: 1fr; gap: 22px; }
  .fb-case-chapter h2 { font-size: clamp(36px, 11.5vw, 54px); }
  .fb-case-chapter p:not(.fb-section-label) { font-size: 17px; }
  .fb-case-media-grid, .fb-case-media-grid--three, .fb-case-media-grid--graphic-pair { grid-template-columns: 1fr; padding: 12px; gap: 12px; }
  .fb-case-mosaic { grid-template-columns: 1fr; padding: 12px; gap: 12px; }
  .fb-case-mosaic .fb-case-figure--mosaic-wide, .fb-case-mosaic .fb-case-figure--mosaic-tall, .fb-case-mosaic .fb-case-figure--mosaic-full { grid-column: auto; }
  .fb-case-figure figcaption { min-height: 0; padding: 14px 4px 8px; }
  .fb-case-media-grid--offset .fb-case-figure:last-child { margin-top: 0; }
  .fb-case-media-grid--archive { grid-template-columns: 1fr; }
  .fb-case-media-grid--archive .fb-case-figure--portrait { max-width: none; justify-self: auto; }
  .fb-case-film { padding: 76px 22px; gap: 32px; }
  .fb-case-film-pair { padding: 76px 22px; }
  .fb-case-film-pair-grid { grid-template-columns: 1fr; gap: 42px; }
  .fb-case-film h2 { font-size: clamp(40px, 12vw, 58px); }
  .fb-field-content-hero { min-height: 600px; padding: 118px 22px 62px; }
  .fb-field-content-definition h2 { font-size: clamp(38px, 11.5vw, 52px); }
	.fb-field-content-definition .fb-button { width: 100%; }
  .fb-field-content-steps { grid-template-columns: 1fr; }
  .fb-field-content-steps article, .fb-field-content-steps article:nth-child(2) { min-height: 0; padding: 34px 22px 42px; border-right: 0; }
  .fb-field-content-steps h2 { margin-top: 68px; font-size: clamp(31px, 9vw, 41px); }
  .fb-field-content-proof > div:first-child { margin-bottom: 42px; }
  .fb-field-content-proof h2 { font-size: clamp(40px, 12vw, 55px); }
  .fb-field-content-proof-grid { grid-template-columns: 1fr; gap: 42px; }
  .fb-field-content-proof-grid img { aspect-ratio: 4 / 3; }
}

/* Client-story titles need their own compact landscape rule. At 844 by 390 and
   932 by 430, the normal fluid title scale used too much of the already short
   first viewport before the reader could reach the record. */
@media (max-height: 500px) and (orientation: landscape) {
  .fb-case-study-hero h1 { font-size: clamp(46px, 6.5vw, 62px); }
}

/* A touch device held sideways, which is where the review badge is at its
   largest relative to the screen and sits in the same bottom right corner as
   the 404 page's vertical frame code. Measured overlaps of 4 to 9px against the
   badge's own label at 1024x768, 1180x820 and 932x430.

   The code is decoration and carries nothing a reader needs, so it gives way
   instead of being nudged somewhere else and colliding with something new.

   pointer:coarse for the same reason as the badge rules in the elfsight
   mu-plugin: without it, max-height:940px in landscape also matches an ordinary
   1280x800 laptop, where there is no collision and nothing should change. */
@media (orientation: landscape) and (max-height: 940px) and (pointer: coarse) {
  .fb-404-frame-code { display: none; }
}

@media (max-width: 600px) {
  .fb-footer-social a { justify-content: space-between; width: 100%; }
	#wpadminbar { position: fixed; }
	.fb-primary-navigation { padding: 84px 18px 14px; }
	.fb-mobile-nav-label { margin-bottom: 12px; }
	.fb-menu > li > a, .fb-header-scrolled .fb-menu > li > a { padding: 9px 0; font-size: clamp(25px, 7vw, 31px); }
	.fb-submenu-toggle { width: 44px; }
	.fb-menu .menu-item-has-children.fb-submenu-open > .sub-menu { padding-bottom: 8px; }
	.fb-menu .sub-menu a { min-height: 36px; padding: 6px 0; font-size: 15px; line-height: 1.15; }
	.fb-mobile-nav-meta { gap: 3px; margin-top: 8px; }
	.fb-site-footer { grid-template-columns: 1fr; }
	.fb-contact-hero-actions { width: 100%; }
	.fb-approach h2 { font-size: clamp(31px, 10vw, 42px); }
	.fb-approach-title-line { white-space: nowrap; }
	.fb-404-stage { min-height: 780px; padding-bottom: 46px; }
	.fb-404-image { background-position: 64% center; }
	.fb-404-signal { top: 28%; right: -11vw; width: 92vw; }
	.fb-404-signal strong { font-size: 54vw; }
	.fb-404-signal span { font-size: 8px; }
	.fb-404-signal span:last-child { padding-right: 18vw; }
	.fb-404-corners i { width: 34px; height: 34px; }
	.fb-404-copy h1 { font-size: clamp(54px, 16vw, 74px); line-height: .82; }
	.fb-404-copy > p:not(.fb-section-label) { max-width: 420px; margin-top: 26px; font-size: 16px; }
	.fb-404-actions { align-items: stretch; flex-direction: column; gap: 14px; }
	.fb-404-actions .fb-button, .fb-404-text-link { width: 100%; }
	.fb-404-text-link { padding: 15px 2px; justify-content: space-between; }
	.fb-404-frame-code { display: none; }
}

/* Keep the complete navigation visible on short phones without changing the
   more relaxed spacing used on standard mobile screens. */
@media (max-width: 600px) and (max-height: 600px) {
	.fb-primary-navigation { padding: 74px 18px 8px; }
	.fb-mobile-nav-label { margin-bottom: 8px; }
	.fb-menu > li > a, .fb-header-scrolled .fb-menu > li > a { padding: 7px 0; font-size: clamp(24px, 6.7vw, 29px); }
	.fb-menu .menu-item-has-children.fb-submenu-open > .sub-menu { padding-bottom: 4px; }
	.fb-menu .sub-menu a { min-height: 33px; padding: 4px 0; font-size: 14px; }
	.fb-mobile-nav-meta { margin-top: 4px; }
	.fb-mobile-nav-meta a { min-height: 38px; }
}

@media (prefers-reduced-motion: reduce) {
  *, *:before, *:after { scroll-behavior: auto !important; animation: none !important; transition: none !important; }
  .fb-hero-video { display: none; }
}

/* Free website audit landing page. */
.fb-audit-shell .fb-site-header { background: rgba(9, 10, 9, .92); backdrop-filter: blur(18px); }
.fb-audit-shell .fb-primary-navigation,
.fb-audit-shell .fb-menu-toggle { display: none; }
.fb-audit-shell .userway_buttons_wrapper { display: none !important; }
/* Three tracks now that the section nav is in the middle, matching the concept
   funnel's header: brand left, sections centred, CTA right. */
.fb-audit-shell .fb-header-inner { grid-template-columns: minmax(180px, 1fr) auto minmax(180px, 1fr); }
.fb-audit-shell .fb-header-cta { display: flex; }
/* Same type as the funnel's nav links: mono, uppercase, .18em, dimmed until
   hover. The two landing pages should not look like they came from different
   studios. */
.fb-review-nav { justify-self: center; display: flex; align-items: center; gap: 30px; }
.fb-review-nav a { color: #97988f; font-size: 10px; font-weight: 700; letter-spacing: .18em; text-transform: uppercase; text-decoration: none; transition: color .18s ease; }
.fb-review-nav a:hover, .fb-review-nav a:focus-visible { color: var(--fb-paper); }
@media (max-width: 900px) {
  /* Under 900 the funnel drops its links and lets the CTA carry the header.
     Same here, so the two behave identically on a phone. */
  .fb-review-nav { display: none; }
  .fb-audit-shell .fb-header-inner { grid-template-columns: 1fr auto; }
}
.fb-audit-shell .fb-review-brand { cursor: default; }
.fb-audit-shell .fb-section-label { font-size: 11px; }
.fb-review-landing { padding-top: 94px; background: var(--fb-ink); }
/* Bottom padding pinned at 76px for the same reason as .fb-hero: the vh-based
   value bottomed out at 48px on a short viewport, inside the 57px the fixed
   corner widgets occupy. */
.fb-review-hero { min-height: calc(100svh - 94px); padding: clamp(48px, 6vh, 72px) var(--fb-side) 76px; display: grid; grid-template-columns: 1.08fr .92fr; gap: clamp(42px, 7vw, 110px); align-items: center; background: radial-gradient(circle at 86% 13%, rgba(203, 221, 101, .12), transparent 26%), #11120f; }
.fb-review-hero-copy h1 { max-width: 820px; margin: 0; font-size: clamp(54px, 5.4vw, 80px); font-weight: 900; line-height: .84; letter-spacing: -.065em; text-transform: uppercase; }
.fb-review-deck { max-width: 670px; margin: 26px 0 0; color: #b9bbb4; font-size: clamp(17px, 1.3vw, 19px); line-height: 1.55; }
.fb-review-trust { margin: 22px 0 0; padding: 0; display: flex; flex-wrap: wrap; gap: 8px; list-style: none; }
.fb-review-trust li { min-height: 40px; padding: 10px 13px; border: 1px solid #484a45; border-radius: 100px; display: flex; align-items: center; color: #d6d7d1; font: 700 11px/1.3 monospace; letter-spacing: .06em; text-transform: uppercase; }
.fb-review-hero-actions { margin-top: 28px; display: flex; align-items: center; gap: 24px; }
.fb-review-jump { width: max-content; }
.fb-review-example-jump { width: max-content; display: block; color: #d0d2ca; font-size: 14px; font-weight: 700; text-decoration: underline; text-underline-offset: 5px; }
.fb-review-example-jump:hover { color: var(--fb-lime); }
.fb-review-mobile-proof { display: none; }
.fb-review-score-value { display: flex; align-items: baseline; gap: 3px; font-variant-numeric: tabular-nums; }
.fb-review-score-value span { font-size: .34em; font-weight: 800; letter-spacing: .02em; }
.fb-review-hero-visual { position: relative; min-width: 0; padding: 42px 0 58px; }
.fb-review-sample-card { position: relative; z-index: 1; overflow: hidden; border: 1px solid #4d4f49; background: var(--fb-paper); color: var(--fb-ink); box-shadow: 0 40px 90px rgba(0, 0, 0, .45); }
.fb-review-sample-card header { min-height: 67px; padding: 18px 22px; display: flex; align-items: center; justify-content: space-between; border-bottom: 1px solid #c4c5bf; background: #10110f; color: var(--fb-paper); }
.fb-review-sample-card header span { font-size: 17px; font-weight: 900; text-transform: uppercase; }
.fb-review-sample-card header small,
.fb-review-sample-title p,
.fb-review-sample-note span { font: 700 11px/1.25 monospace; letter-spacing: .1em; text-transform: uppercase; }
.fb-review-sample-card header small { color: var(--fb-lime); }
.fb-review-sample-title { padding: clamp(38px, 5vw, 70px) clamp(25px, 4vw, 54px) 42px; }
.fb-review-sample-title p { margin: 0 0 15px; padding-left: clamp(2px, .25vw, 4px); color: #777971; }
.fb-review-sample-title strong { display: block; font-size: clamp(42px, 5.5vw, 80px); font-weight: 900; line-height: .84; letter-spacing: -.06em; text-transform: uppercase; }
.fb-review-sample-title span { max-width: 530px; margin-top: 30px; padding-top: 22px; border-top: 1px solid #a6a8a1; display: block; color: #555750; font-size: 17px; font-weight: 700; line-height: 1.45; }
.fb-review-sample-scores { display: grid; grid-template-columns: repeat(3, 1fr); border-top: 1px solid #b3b5ae; }
.fb-review-sample-scores > div { min-width: 0; padding: 22px; border-right: 1px solid #b3b5ae; display: flex; flex-direction: column; }
.fb-review-sample-scores > div:last-child { border-right: 0; }
.fb-review-sample-scores b { font-size: clamp(34px, 3.6vw, 54px); line-height: .9; }
.fb-review-sample-scores > div > small { margin-top: 11px; color: #5b5d57; font: 700 10px/1.25 monospace; letter-spacing: .06em; text-transform: uppercase; }
.fb-review-sample-note { position: absolute; z-index: 2; right: 0; bottom: 0; min-width: 310px; padding: 18px 20px; border-left: 4px solid var(--fb-lime); background: #191a17; box-shadow: 0 18px 44px rgba(0, 0, 0, .45); }
.fb-review-sample-note span { display: block; color: var(--fb-lime); }
.fb-review-sample-note strong { display: block; margin-top: 7px; font-size: 14px; text-transform: uppercase; }

.fb-review-form-section { padding: 100px var(--fb-side); display: grid; grid-template-columns: .72fr 1.28fr; gap: clamp(55px, 9vw, 150px); background: var(--fb-lime); color: var(--fb-ink); }
#get-review { scroll-margin-top: 94px; }
#audit-form { scroll-margin-top: 112px; }
.fb-review-form-copy .fb-section-label { color: #4f5e08; }
.fb-review-form-copy h2,
.fb-review-included h2,
.fb-review-example-report h2,
.fb-review-concept-copy h2,
.fb-review-process h2,
.fb-review-proof h2,
.fb-review-final h2 { margin: 0; font-size: clamp(48px, 6.6vw, 100px); font-weight: 900; line-height: .85; letter-spacing: -.065em; text-transform: uppercase; }
.fb-review-form-copy > p:not(.fb-section-label) { max-width: 520px; margin: 30px 0 0; font-size: 18px; line-height: 1.6; }
.fb-review-delivery { margin-top: 52px; padding-top: 21px; border-top: 1px solid rgba(9, 10, 9, .42); display: flex; flex-direction: column; }
.fb-review-delivery span,
.fb-review-delivery small { font: 700 9px/1.4 monospace; letter-spacing: .11em; text-transform: uppercase; }
.fb-review-delivery strong { margin: 8px 0; font-size: 26px; text-transform: uppercase; }
.fb-review-why-free { margin: 34px 0 0; padding: 20px 22px; border-left: 4px solid var(--fb-ink); background: rgba(244, 241, 233, .48); font-size: 15px; line-height: 1.6; }
.fb-review-why-free strong { display: block; margin-bottom: 6px; font-size: 15px; }
.fb-review-form-card { padding: clamp(28px, 4.5vw, 62px); background: var(--fb-paper); color: var(--fb-ink); box-shadow: 0 28px 65px rgba(57, 67, 5, .22); }
.fb-review-form-intro { margin: 0 0 24px; padding: 0 0 18px; border-bottom: 1px solid #b6b7b1; color: #555750; font-size: 15px; line-height: 1.5; }
.fb-review-form-intro strong { color: var(--fb-ink); }
.fb-review-form-card .gform_heading { display: none; }
.fb-review-form-card .gform_wrapper.gravity-theme .gform_fields { grid-row-gap: 22px; }
.fb-review-form-card .gfield_label { margin-bottom: 8px !important; color: #292b27 !important; font-size: 12px !important; font-weight: 800 !important; letter-spacing: .05em; text-transform: uppercase; }
.fb-review-form-card .gfield_required { color: #596908 !important; }
.fb-review-form-card input:not([type="submit"]),
.fb-review-form-card select,
.fb-review-form-card textarea { width: 100% !important; max-width: none !important; min-height: 54px; padding: 13px 14px !important; border: 1px solid #8e9089 !important; border-radius: 0 !important; background: #f8f7f2 !important; color: var(--fb-ink) !important; box-sizing: border-box !important; box-shadow: none !important; }
.fb-review-form-card input:focus,
.fb-review-form-card select:focus,
.fb-review-form-card textarea:focus { border-color: var(--fb-ink) !important; outline: 2px solid #a5b83e; outline-offset: 2px; }
.fb-review-form-card .gform_footer { margin-top: 28px !important; padding: 0 !important; }
.fb-review-form-card input[type="submit"],
.fb-review-form-card button[type="submit"] { width: 100% !important; min-height: 58px; margin: 0 !important; padding: 17px 20px !important; border: 0 !important; border-radius: 0 !important; background: var(--fb-ink) !important; color: var(--fb-paper) !important; font-size: 11px !important; font-weight: 800 !important; letter-spacing: .1em; text-transform: uppercase; cursor: pointer; transition: background .2s, color .2s; }
.fb-review-form-card input[type="submit"]:hover,
.fb-review-form-card button[type="submit"]:hover { background: #30322d !important; }
.fb-review-form-card .gform_validation_errors { margin: 0 0 28px !important; padding: 20px !important; border: 0 !important; border-top: 3px solid var(--fb-lime) !important; border-radius: 0 !important; background: var(--fb-ink) !important; color: var(--fb-paper) !important; box-shadow: none !important; }
.fb-review-form-card .gform_submission_error { margin: 0 !important; color: var(--fb-paper) !important; font-size: 14px !important; line-height: 1.45 !important; }
.fb-review-form-card .gform_validation_errors .gform-icon { display: none !important; }
.fb-review-form-card .gfield_validation_message { margin-top: 8px !important; padding: 12px 14px !important; border: 0 !important; border-left: 3px solid var(--fb-lime) !important; border-radius: 0 !important; background: var(--fb-ink) !important; color: var(--fb-paper) !important; font-size: 13px !important; font-weight: 700 !important; line-height: 1.45 !important; letter-spacing: 0; text-transform: none; }
.fb-review-privacy { margin: 20px 0 0; color: #555750; font-size: 12px; line-height: 1.6; }
.fb-review-privacy a { text-decoration: underline; text-underline-offset: 2px; }
.fb-review-form-card .gform_confirmation_message { padding: 30px; border-top: 4px solid var(--fb-lime); background: var(--fb-ink); color: var(--fb-paper); font-size: 18px; line-height: 1.6; }

.fb-review-concept-preview { padding: 115px var(--fb-side) 125px; background: #e8e2d6; color: var(--fb-ink); }
.fb-review-concept-preview > header { display: grid; grid-template-columns: 1.1fr .9fr; gap: 7vw; align-items: end; }
.fb-review-concept-preview > header .fb-section-label { color: #6a5f52; }
.fb-review-concept-preview h2 { max-width: 930px; margin: 0; font-size: clamp(52px, 7vw, 104px); font-weight: 900; line-height: .84; letter-spacing: -.066em; text-transform: uppercase; }
.fb-review-concept-preview > header > p { max-width: 610px; margin: 0 0 8px; padding-top: 22px; border-top: 1px solid #9f9588; color: #514b43; font-size: 18px; line-height: 1.65; }
.fb-review-concept-board { position: relative; max-width: 1380px; margin: 70px auto 0; padding: clamp(22px, 3.2vw, 48px); overflow: hidden; border: 1px solid #b6aa9b; background-color: #d7cdbd; background-image: linear-gradient(rgba(80, 70, 58, .075) 1px, transparent 1px), linear-gradient(90deg, rgba(80, 70, 58, .075) 1px, transparent 1px); background-size: 28px 28px; box-shadow: 0 35px 75px rgba(55, 43, 29, .2); }
.fb-review-concept-board::before,
.fb-review-concept-board::after { content: ""; position: absolute; z-index: 0; width: 92px; height: 92px; border-color: #756755; pointer-events: none; }
.fb-review-concept-board::before { top: 18px; left: 18px; border-top: 1px solid; border-left: 1px solid; }
.fb-review-concept-board::after { right: 18px; bottom: 18px; border-right: 1px solid; border-bottom: 1px solid; }
.fb-review-concept-board > figcaption { position: relative; z-index: 2; padding-bottom: 24px; display: grid; grid-template-columns: auto 1fr auto; gap: 22px; align-items: center; border-bottom: 1px solid #918576; }
.fb-review-concept-board > figcaption span,
.fb-review-concept-board > figcaption small,
.fb-review-artboard-label,
.fb-review-concept-board-footer { font: 800 9px/1.3 monospace; letter-spacing: .1em; text-transform: uppercase; }
.fb-review-concept-board > figcaption span { color: #744934; }
.fb-review-concept-board > figcaption strong { font-size: 22px; letter-spacing: -.025em; text-transform: uppercase; }
.fb-review-concept-board > figcaption small { color: #625a50; text-align: right; }
.fb-review-concept-board-grid { position: relative; z-index: 1; margin-top: 38px; display: grid; grid-template-columns: minmax(0, 1fr) minmax(220px, .31fr); gap: clamp(22px, 3vw, 42px); align-items: start; }
.fb-review-artboard { min-width: 0; overflow: hidden; border: 10px solid #f5f0e7; background: #f5f0e7; box-shadow: 0 24px 50px rgba(55, 43, 29, .28); transform-origin: center; }
.fb-review-artboard-desktop { height: 720px; transform: rotate(-.35deg); }
.fb-review-artboard-mobile { height: 720px; transform: rotate(.75deg); }
.fb-review-artboard-label { height: 31px; padding: 0 4px 8px; display: flex; align-items: center; justify-content: space-between; color: #685e52; }
.fb-review-artboard-label i { width: 38px; height: 1px; display: block; background: #9e3e2c; }
.fb-contractor-site { overflow: hidden; background: #f4efe6; color: #191815; font-family: Arial, Helvetica, sans-serif; }
.fb-contractor-site header { display: flex; align-items: center; background: #f4efe6; color: #191815; }
.fb-contractor-brand { display: flex; flex-direction: column; line-height: 1; text-transform: uppercase; }
.fb-contractor-brand b { letter-spacing: -.04em; }
.fb-contractor-brand span { margin: 4px 0 0 2px; color: #8e3f2c; font-weight: 800; letter-spacing: .22em; }
.fb-contractor-desktop > header { min-height: 72px; padding: 0 28px; gap: 28px; }
.fb-contractor-desktop .fb-contractor-brand b { font-size: 18px; }
.fb-contractor-desktop .fb-contractor-brand span { font-size: 7px; }
.fb-contractor-desktop nav { margin-left: auto; display: flex; gap: clamp(13px, 1.5vw, 25px); color: #5d574f; font-size: 10px; font-weight: 700; }
.fb-contractor-header-cta { padding: 11px 14px; border: 1px solid #1e1c19; font-size: 9px; font-weight: 800; letter-spacing: .05em; text-transform: uppercase; }
.fb-contractor-hero { position: relative; isolation: isolate; background-image: var(--fb-contractor-hero); background-position: center; background-size: cover; color: #fffaf1; }
.fb-contractor-hero::before { content: ""; position: absolute; z-index: -1; inset: 0; background: linear-gradient(90deg, rgba(22, 19, 15, .9) 0%, rgba(22, 19, 15, .58) 48%, rgba(22, 19, 15, .12) 78%); }
.fb-contractor-desktop .fb-contractor-hero { min-height: 420px; padding: 52px 42px 36px; display: flex; align-items: end; }
.fb-contractor-hero-copy { max-width: 540px; }
.fb-contractor-hero-copy small,
.fb-contractor-story small,
.fb-contractor-detail small,
.fb-contractor-close small { display: block; color: #d9ab87; font-size: 8px; font-weight: 800; letter-spacing: .12em; text-transform: uppercase; }
.fb-contractor-hero-copy h3 { margin: 15px 0 0; font-family: Georgia, "Times New Roman", serif; font-size: clamp(46px, 4.9vw, 72px); font-weight: 400; line-height: .9; letter-spacing: -.045em; }
.fb-contractor-hero-copy p { max-width: 445px; margin: 18px 0 0; color: #ece6dc; font-size: 13px; line-height: 1.55; }
.fb-contractor-hero-copy > span { width: max-content; margin-top: 22px; padding: 12px 15px; display: block; background: #a44832; color: #fffaf1; font-size: 9px; font-weight: 800; letter-spacing: .06em; text-transform: uppercase; }
.fb-contractor-hero-index { position: absolute; right: 28px; bottom: 30px; padding-left: 16px; display: flex; align-items: end; gap: 9px; border-left: 1px solid rgba(255,255,255,.42); }
.fb-contractor-hero-index b { font: 400 28px/1 Georgia, serif; }
.fb-contractor-hero-index span { max-width: 52px; color: #ddd6cc; font-size: 7px; line-height: 1.2; text-transform: uppercase; }
.fb-contractor-story { padding: 38px 38px 42px; display: grid; grid-template-columns: .9fr 1.1fr; gap: 48px; background: #f4efe6; }
.fb-contractor-story h4,
.fb-contractor-detail h4 { margin: 11px 0 0; font-family: Georgia, "Times New Roman", serif; font-size: 34px; font-weight: 400; line-height: .95; letter-spacing: -.035em; }
.fb-contractor-story p,
.fb-contractor-detail p { margin: 0; color: #5c554d; font-size: 11px; line-height: 1.55; }
.fb-contractor-story ul { margin: 22px 0 0; padding: 0; display: grid; grid-template-columns: repeat(3, 1fr); border-top: 1px solid #bcb1a3; list-style: none; }
.fb-contractor-story li { padding: 12px 8px 0 0; color: #483f38; font-size: 8px; font-weight: 800; text-transform: uppercase; }
.fb-contractor-detail { min-height: 310px; display: grid; grid-template-columns: 1fr 1fr; background: #24241f; color: #fffaf1; }
.fb-contractor-detail img { width: 100%; height: 100%; object-fit: cover; }
.fb-contractor-detail > div { padding: 46px 38px; }
.fb-contractor-detail p { margin-top: 18px; color: #c8c2b9; }
.fb-contractor-close { min-height: 180px; padding: 38px; display: flex; flex-direction: column; justify-content: center; background: #a44832; color: #fffaf1; }
.fb-contractor-close small { color: #f1c1a8; }
.fb-contractor-close strong { margin-top: 12px; font: 400 42px/.95 Georgia, serif; }
.fb-contractor-close > span { width: max-content; margin-top: 19px; padding-bottom: 5px; border-bottom: 1px solid #fffaf1; font-size: 8px; font-weight: 800; text-transform: uppercase; }
.fb-contractor-mobile > header { min-height: 61px; padding: 0 17px; justify-content: space-between; }
.fb-contractor-mobile .fb-contractor-brand b { font-size: 13px; }
.fb-contractor-mobile .fb-contractor-brand span { font-size: 6px; }
.fb-contractor-mobile-menu { width: 25px; height: 18px; display: flex; flex-direction: column; justify-content: center; gap: 6px; }
.fb-contractor-mobile-menu i { width: 100%; height: 1px; display: block; background: #211e1a; }
.fb-contractor-mobile .fb-contractor-hero { min-height: 385px; padding: 42px 18px 26px; display: flex; align-items: end; background-position: 63% center; }
.fb-contractor-mobile .fb-contractor-hero::before { background: linear-gradient(0deg, rgba(22, 19, 15, .92) 0%, rgba(22, 19, 15, .38) 70%, rgba(22, 19, 15, .1)); }
.fb-contractor-mobile .fb-contractor-hero-copy h3 { font-size: 41px; line-height: .9; }
.fb-contractor-mobile .fb-contractor-hero-copy p { font-size: 10px; }
.fb-contractor-mobile .fb-contractor-story { padding: 32px 18px; display: block; }
.fb-contractor-mobile .fb-contractor-story h4 { font-size: 30px; }
.fb-contractor-mobile .fb-contractor-story p { margin-top: 17px; }
.fb-contractor-mobile-photo { position: relative; min-height: 245px; }
.fb-contractor-mobile-photo img { width: 100%; height: 245px; object-fit: cover; }
.fb-contractor-mobile-photo span { position: absolute; right: 0; bottom: 0; left: 0; padding: 12px 15px; background: rgba(24,22,18,.9); color: #eee7dc; font-size: 7px; font-weight: 800; letter-spacing: .07em; text-transform: uppercase; }
.fb-review-concept-board-footer { position: relative; z-index: 2; margin-top: 34px; padding-top: 22px; display: grid; grid-template-columns: repeat(4, 1fr); border-top: 1px solid #918576; color: #5d554c; }
.fb-review-concept-board-footer span { padding-left: 13px; border-left: 3px solid #a44832; }
.fb-review-concept-preview-footer { margin-top: 38px; display: flex; align-items: center; justify-content: space-between; gap: 45px; }
.fb-review-concept-preview-footer p { max-width: 760px; margin: 0; color: #575149; font-size: 15px; line-height: 1.65; }
.fb-review-concept-preview-footer .fb-button { flex: 0 0 auto; }

.fb-review-included { padding: 120px var(--fb-side); background: var(--fb-paper); color: var(--fb-ink); }
.fb-review-included > header { display: grid; grid-template-columns: 1.15fr .85fr; gap: 6vw; align-items: end; }
.fb-review-included > header .fb-section-label { grid-column: 1 / -1; margin-bottom: -5px; color: #5c5e58; }
.fb-review-included > header > p:last-child { max-width: 520px; margin: 0 0 7px; padding-top: 22px; border-top: 1px solid #a4a69f; color: #5e605a; font-size: 17px; line-height: 1.6; }
.fb-review-included-grid { margin-top: 80px; display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); border-top: 3px solid var(--fb-ink); }
.fb-review-included-grid article { min-height: 300px; padding: 30px 24px; border-right: 1px solid #adafa8; }
.fb-review-included-grid article:nth-child(3n) { border-right: 0; }
.fb-review-included-grid article:last-child { border-right: 0; }
.fb-review-included-grid span,
.fb-review-process article > span { color: #6b6d66; font: 11px/1 monospace; }
.fb-review-included-grid h3 { margin: 82px 0 18px; font-size: 25px; line-height: .94; letter-spacing: -.04em; text-transform: uppercase; }
.fb-review-included-grid p { margin: 0; color: #555750; font-size: 16px; line-height: 1.55; }

.fb-review-example-report { padding: 115px var(--fb-side) 125px; background: #d9d8d1; color: var(--fb-ink); }
.fb-review-example-report > header { display: grid; grid-template-columns: 1.1fr .9fr; gap: 7vw; align-items: end; }
.fb-review-example-report > header .fb-section-label { color: #5d5f58; }
.fb-review-example-report > header > p { max-width: 620px; margin: 0 0 8px; padding-top: 22px; border-top: 1px solid #9a9c95; color: #555750; font-size: 17px; line-height: 1.65; }
.fb-review-report-preview { position: relative; max-width: 1250px; margin: 65px auto 0; padding: clamp(24px, 3vw, 42px) clamp(24px, 3.5vw, 50px) 86px; display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: clamp(16px, 2vw, 28px); overflow: hidden; border: 8px solid #090a09; border-radius: 13px 13px 5px 5px; background: #171815; box-shadow: 0 38px 85px rgba(0, 0, 0, .28); }
.fb-review-preview-page { min-width: 0; min-height: 525px; padding: clamp(25px, 2.5vw, 38px); display: flex; flex-direction: column; border: 1px solid #b7b8b1; background: #f4f2eb; box-shadow: 0 18px 38px rgba(0, 0, 0, .3); }
.fb-review-preview-page > div:first-child > span,
.fb-review-preview-page > section strong,
.fb-review-preview-page footer span,
.fb-review-preview-score-grid > div > small,
.fb-review-preview-reveal span { font: 800 9px/1.35 monospace; letter-spacing: .1em; text-transform: uppercase; }
.fb-review-preview-page h3 { margin: 16px 0 0; font-size: clamp(30px, 3vw, 48px); font-weight: 900; line-height: .88; letter-spacing: -.055em; text-transform: uppercase; }
.fb-review-preview-cover { border-color: #32332f; background: #10110f; color: var(--fb-paper); }
.fb-review-preview-cover > div:first-child > span { padding-left: clamp(2px, .25vw, 4px); display: block; color: var(--fb-lime); }
.fb-review-preview-cover > p { margin: auto 0; padding: 28px 0; border-top: 1px solid #454741; border-bottom: 1px solid #454741; color: #d0d2ca; font-size: 16px; font-weight: 700; line-height: 1.55; }
.fb-review-preview-cover footer { display: flex; align-items: end; }
.fb-review-preview-cover footer span { color: #90928b; }
.fb-review-preview-scores > div:first-child > span,
.fb-review-preview-detail > div:first-child > span { color: #676960; }
.fb-review-preview-score-grid { margin: 46px 0 30px; display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); border-top: 2px solid var(--fb-ink); border-bottom: 1px solid #b0b2aa; }
.fb-review-preview-score-grid > div { min-width: 0; padding: 18px 10px 17px 0; display: flex; flex-direction: column; border-right: 1px solid #b0b2aa; }
.fb-review-preview-score-grid > div + div { padding-left: 10px; }
.fb-review-preview-score-grid > div:last-child { border-right: 0; }
.fb-review-preview-score-grid b { font-size: clamp(29px, 2.7vw, 42px); line-height: .9; }
.fb-review-preview-score-grid > div > small { margin-top: 9px; color: #5e6059; font: 800 8px/1.35 monospace; letter-spacing: .07em; text-transform: uppercase; overflow-wrap: anywhere; }
.fb-review-preview-scores > p { margin: auto 0 0; color: #4f514b; font-size: 14px; line-height: 1.6; }
.fb-review-preview-detail > section { margin-top: 30px; padding-top: 19px; border-top: 1px solid #a9aaa4; }
.fb-review-preview-detail > section:first-of-type { margin-top: auto; }
.fb-review-preview-detail > section strong { color: #5f615a; }
.fb-review-preview-detail > section p { margin: 10px 0 0; color: #4f514b; font-size: 14px; line-height: 1.55; }
.fb-review-preview-reveal { position: absolute; z-index: 5; right: 0; bottom: 0; left: 0; min-height: 66px; padding: 15px clamp(24px, 3.5vw, 50px); display: flex; justify-content: space-between; gap: 24px; align-items: center; background: linear-gradient(90deg, #090a09, #22231f); color: var(--fb-paper); }
.fb-review-preview-reveal span { color: var(--fb-lime); }
.fb-review-preview-reveal strong { font-size: 14px; text-align: right; text-transform: uppercase; }
.fb-review-preview-cta { width: max-content; margin-top: 36px; }

.fb-review-concept { padding: 115px var(--fb-side); background: #151614; }
.fb-review-concept-copy { display: grid; grid-template-columns: 1.15fr .85fr; gap: 7vw; align-items: end; }
.fb-review-concept-copy .fb-section-label { grid-column: 1 / -1; margin-bottom: -5px; }
.fb-review-concept-copy > p:not(.fb-section-label) { max-width: 560px; margin: 0 0 8px; padding-top: 22px; border-top: 1px solid #4b4d47; color: #afb1aa; font-size: 17px; line-height: 1.65; }
.fb-review-example-grid { max-width: 1100px; margin-top: 70px; display: grid; grid-template-columns: minmax(0, 1fr); }
.fb-review-example-card { min-width: 0; padding: clamp(24px, 3vw, 40px); border: 1px solid #3f413c; background: #1d1e1b; }
.fb-review-example-card > header { min-height: 190px; }
.fb-review-example-card > header span { color: var(--fb-lime); font: 800 10px/1.2 monospace; letter-spacing: .11em; text-transform: uppercase; }
.fb-review-example-card > header h3 { margin: 18px 0 16px; color: var(--fb-paper); font-size: clamp(31px, 3vw, 48px); line-height: .92; letter-spacing: -.05em; text-transform: uppercase; }
.fb-review-example-card > header p { max-width: 610px; margin: 0; color: #bfc1ba; font-size: 15px; line-height: 1.6; }
.fb-review-example-card-completed { border-color: #66751e; background: #20231a; }
.fb-review-example-card .fb-review-device-stage { margin-top: 34px; }
.fb-review-concept > .fb-button { width: max-content; margin-top: 34px; }
.fb-review-device-stage { position: relative; min-width: 0; padding: 0 8% 60px 0; }
.fb-review-browser { overflow: hidden; border: 7px solid #090a09; border-radius: 12px 12px 4px 4px; background: #090a09; box-shadow: 0 32px 75px rgba(0, 0, 0, .48); }
.fb-review-browser-bar { min-height: 29px; padding: 0 12px; display: flex; align-items: center; gap: 6px; }
.fb-review-browser-bar i { width: 7px; height: 7px; border-radius: 50%; background: #62645e; }
.fb-review-browser-bar i:first-child { background: var(--fb-lime); }
.fb-review-browser-bar span { margin-left: auto; color: #8f918a; font: 8px/1 monospace; letter-spacing: .08em; text-transform: uppercase; }
.fb-review-browser img { width: 100%; aspect-ratio: 1.6 / 1; object-fit: cover; object-position: top; }
.fb-review-phone { position: absolute; z-index: 2; right: 0; bottom: 25px; width: 25%; padding: 10px 5px 6px; overflow: hidden; border: 5px solid #090a09; border-radius: 25px; background: #090a09; box-shadow: 0 28px 58px rgba(0, 0, 0, .62); }
.fb-review-phone > span { width: 34%; height: 4px; margin: 0 auto 7px; display: block; border-radius: 8px; background: #555750; }
.fb-review-phone img { width: 100%; aspect-ratio: .46 / 1; object-fit: cover; object-position: top; border-radius: 12px; }

.fb-review-process { padding: 110px var(--fb-side); background: var(--fb-lime); color: var(--fb-ink); }
.fb-review-process .fb-section-label { color: #4f5e08; }
.fb-review-process > div { margin-top: 70px; display: grid; grid-template-columns: repeat(3, 1fr); border-top: 3px solid var(--fb-ink); }
.fb-review-process article { min-height: 300px; padding: 30px 3.5vw; border-right: 1px solid rgba(9, 10, 9, .42); }
.fb-review-process article:last-child { border-right: 0; }
.fb-review-process h3 { margin: 90px 0 17px; font-size: clamp(28px, 3vw, 44px); line-height: .9; letter-spacing: -.05em; text-transform: uppercase; }
.fb-review-process article p { max-width: 430px; margin: 0; font-size: 15px; line-height: 1.55; }

.fb-review-proof { padding: 110px var(--fb-side) 125px; background: #11120f; }
.fb-review-proof > div:first-child { max-width: 920px; }
.fb-review-proof > div > p:last-child { max-width: 610px; margin: 32px 0 0; color: #b2b4ad; font-size: 18px; line-height: 1.7; }
.fb-review-work-grid { margin-top: 66px; display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: clamp(18px, 2vw, 30px); }
.fb-review-work-card { position: relative; min-width: 0; margin: 0; padding: 0 10% 44px 0; }
.fb-review-work-card .fb-review-browser { border-width: 5px; }
.fb-review-work-card .fb-review-browser-bar { min-height: 24px; }
.fb-review-work-card .fb-review-browser img { width: 100%; height: auto; aspect-ratio: 1.6 / 1; object-fit: cover; object-position: top; }
.fb-review-work-card .fb-review-phone { bottom: 8px; width: 28%; padding: 7px 3px 4px; border-width: 3px; border-radius: 17px; }
.fb-review-work-card .fb-review-phone > span { height: 3px; margin-bottom: 5px; }
.fb-review-work-card .fb-review-phone img { width: 100%; height: auto; aspect-ratio: .46 / 1; object-fit: cover; object-position: top; border-radius: 9px; }
.fb-review-final { padding: 125px var(--fb-side); background: var(--fb-paper); color: var(--fb-ink); }
.fb-review-final .fb-section-label { color: #5e605a; }
.fb-review-final h2 { max-width: 1060px; }
.fb-review-final-note { max-width: 620px; margin: 30px 0 0; color: #555750; font-size: 18px; line-height: 1.6; }
.fb-review-final .fb-button { width: max-content; margin-top: 45px; }
/* Privacy policy sheet, site wide. Sized off dvh so the close button stays
   reachable on a phone with the address bar showing. */
dialog.fb-privacy-sheet { width: min(760px, calc(100% - 32px)); max-height: 86vh; max-height: 86dvh; padding: 0; border: 1px solid var(--fb-lime); border-radius: 0; background: #101210; color: #cfd1c9; overflow-y: auto; overscroll-behavior: contain; }
dialog.fb-privacy-sheet::backdrop { background: rgba(9, 10, 9, .84); }
.fb-privacy-sheet-in { padding: 26px 26px 0; }
.fb-privacy-sheet h2 { margin: 0 0 20px; padding: 14px 16px; border: 1px solid var(--fb-lime); color: var(--fb-lime); font-size: 12px; font-weight: 800; letter-spacing: .16em; text-transform: uppercase; }
.fb-privacy-sheet h2:focus { outline: none; }
/* Every rule here is qualified with dialog.fb-privacy-sheet on purpose. The
   policy comes through the_content, so the theme's own article typography
   applies to it and won a plain .fb-privacy-sheet-body p at 18px, which is
   reading size for an essay and far too loud for boilerplate somebody is
   skimming. Legal small print, matching the funnel's sheet. */
dialog.fb-privacy-sheet .fb-privacy-sheet-body { font-size: 13px; line-height: 1.62; color: #b6b8b0; }
dialog.fb-privacy-sheet .fb-privacy-sheet-body p,
dialog.fb-privacy-sheet .fb-privacy-sheet-body li { margin: 0 0 11px; font-size: 13px; line-height: 1.62; color: #b6b8b0; }
dialog.fb-privacy-sheet .fb-privacy-sheet-body h1,
dialog.fb-privacy-sheet .fb-privacy-sheet-body h2,
dialog.fb-privacy-sheet .fb-privacy-sheet-body h3,
dialog.fb-privacy-sheet .fb-privacy-sheet-body h4 { margin: 22px 0 7px; padding: 0; border: 0; color: var(--fb-paper); font-size: 10.5px; font-weight: 800; line-height: 1.4; letter-spacing: .15em; text-transform: uppercase; }
dialog.fb-privacy-sheet .fb-privacy-sheet-body > *:first-child { margin-top: 0; }
dialog.fb-privacy-sheet .fb-privacy-sheet-body ul,
dialog.fb-privacy-sheet .fb-privacy-sheet-body ol { margin: 0 0 11px; padding-left: 18px; }
dialog.fb-privacy-sheet .fb-privacy-sheet-body strong { color: var(--fb-paper); font-weight: 700; }
dialog.fb-privacy-sheet .fb-privacy-sheet-body a { color: var(--fb-lime); font-size: inherit; text-decoration: underline; text-underline-offset: 2px; }
/* Sticky, so the way out is always on screen however long the policy runs. */
.fb-privacy-sheet-foot { position: sticky; bottom: 0; padding: 14px 0 22px; background: #101210; }
.fb-privacy-sheet-foot::before { content: ""; position: absolute; left: 0; right: 0; bottom: 100%; height: 34px; background: linear-gradient(rgba(16, 18, 16, 0), #101210); pointer-events: none; }
.fb-privacy-sheet-close { width: 100%; padding: 15px 20px; border: 0; background: var(--fb-lime); color: var(--fb-ink); font-size: 12px; font-weight: 800; letter-spacing: .18em; text-transform: uppercase; cursor: pointer; }
.fb-privacy-sheet-close:hover { background: var(--fb-paper); }
/* Audit pages footer. A landing page footer: enough to be a real page, no
   navigation away from the one thing this page is asking for. */
.fb-review-footer { padding: 58px var(--fb-side) 34px; border-top: 1px solid #343531; background: #090a09; color: #aeb0a8; font-size: 12px; }
.fb-review-footer-cols { display: grid; grid-template-columns: 1.6fr repeat(3, 1fr); gap: 40px; }
.fb-review-footer-brand img { width: 175px; }
.fb-review-footer-brand p { max-width: 34ch; margin: 16px 0 0; line-height: 1.55; }
.fb-review-footer-place { color: #7f817a; }
.fb-review-footer-col { display: flex; flex-direction: column; align-items: flex-start; gap: 9px; }
.fb-review-footer-head { color: var(--fb-paper); font-size: 10px; font-weight: 800; letter-spacing: .16em; text-transform: uppercase; }
/* Buttons and links both live in these columns elsewhere on the site, and a
   button centres its own label where a link does not. Pinning both to the left
   here keeps a future button from sitting off axis. */
.fb-review-footer-col a, .fb-review-footer-col button { align-self: flex-start; padding: 0; border: 0; background: none; color: #aeb0a8; font: inherit; text-align: left; text-decoration: none; cursor: pointer; transition: color .2s ease; }
.fb-review-footer-col a:hover, .fb-review-footer-col a:focus-visible, .fb-review-footer-col button:hover { color: var(--fb-lime); }
.fb-review-footer-legal { margin-top: 46px; padding-top: 20px; border-top: 1px solid #26271f; display: grid; gap: 10px; }
.fb-review-footer-legal p { margin: 0; color: #85877f; font-size: 11px; }
.fb-review-footer-legal .fb-recaptcha-note { font-size: 12px; line-height: 1.55; }
.fb-review-footer-legal a { color: #85877f; text-decoration: underline; text-underline-offset: 2px; }
.fb-review-footer-legal a:hover { color: var(--fb-lime); }

.fb-review-privacy-page { padding-top: 94px; background: var(--fb-paper); color: var(--fb-ink); }
.fb-review-privacy-hero { padding: 90px var(--fb-side) 82px; display: grid; grid-template-columns: 1.15fr .85fr; gap: 7vw; align-items: end; background: #11120f; color: var(--fb-paper); }
.fb-review-privacy-hero h1 { max-width: 900px; margin: 0; font-size: clamp(68px, 9vw, 132px); font-weight: 900; line-height: .82; letter-spacing: -.07em; text-transform: uppercase; }
.fb-review-privacy-hero > div:last-child { max-width: 600px; padding-top: 22px; border-top: 1px solid #4b4d47; }
.fb-review-privacy-hero > div:last-child p { margin: 0; color: #c2c4bd; font-size: 18px; line-height: 1.65; }
.fb-review-privacy-hero > div:last-child a { width: max-content; margin-top: 24px; display: flex; align-items: center; gap: 12px; color: var(--fb-lime); font-size: 12px; font-weight: 800; letter-spacing: .08em; text-decoration: none; text-transform: uppercase; }
.fb-review-privacy-content { padding: 90px var(--fb-side) 110px; }
.fb-review-privacy-content .fb-prose { max-width: 900px; }
.fb-review-privacy-content .fb-prose h2 { margin: 70px 0 22px; }
.fb-review-privacy-content .fb-prose h2:first-of-type { margin-top: 58px; }
.fb-review-privacy-content .fb-prose p,
.fb-review-privacy-content .fb-prose li { color: #3f413c; }
.fb-review-privacy-content .fb-prose a { color: #394600; font-weight: 700; text-decoration: underline; text-underline-offset: 3px; }
.fb-review-privacy-return { padding: 85px var(--fb-side); background: var(--fb-lime); }
.fb-review-privacy-return .fb-section-label { color: #4f5e08; }
.fb-review-privacy-return h2 { max-width: 1020px; margin: 0; font-size: clamp(52px, 6.5vw, 96px); font-weight: 900; line-height: .86; letter-spacing: -.06em; text-transform: uppercase; }
.fb-review-privacy-return .fb-button { width: max-content; margin-top: 34px; }

@media (max-width: 1100px) {
  .fb-review-hero { grid-template-columns: 1fr 1fr; gap: 45px; }
	.fb-contractor-desktop > header { padding: 0 20px; gap: 18px; }
	.fb-contractor-desktop nav { gap: 11px; font-size: 8px; }
	.fb-contractor-header-cta { padding: 9px 10px; font-size: 8px; }
  .fb-review-included-grid { grid-template-columns: repeat(2, 1fr); }
  .fb-review-included-grid article { border-bottom: 1px solid #adafa8; }
	.fb-review-included-grid article:nth-child(3n) { border-right: 1px solid #adafa8; }
	.fb-review-included-grid article:nth-child(even) { border-right: 0; }
	.fb-review-included-grid article:nth-child(odd) { border-right: 1px solid #adafa8; }
  .fb-review-included-grid article:last-child { grid-column: 1 / -1; }
}

@media (min-width: 821px) and (max-height: 820px) {
	.fb-review-hero { grid-template-columns: 1fr; min-height: calc(100svh - 94px); padding-top: 34px; padding-bottom: 34px; }
	.fb-review-hero-copy { max-width: 1060px; }
	.fb-review-hero-copy h1 { max-width: 1050px; font-size: clamp(52px, 5.2vw, 72px); }
	.fb-review-deck { max-width: 820px; }
	.fb-review-hero-visual { display: none; }
}

@media (max-width: 820px) {
  .fb-audit-shell .fb-site-header { height: 76px; }
  .fb-review-landing { padding-top: 76px; }
  .fb-review-hero,
	.fb-review-form-section,
	.fb-review-concept-preview > header,
	.fb-review-included > header,
	.fb-review-example-report > header,
	.fb-review-concept-copy { grid-template-columns: 1fr; }
  .fb-review-hero { min-height: 0; padding: 38px 22px 42px; }
	.fb-review-hero-visual { display: none; }
	.fb-review-mobile-proof { margin-top: 20px; border: 1px solid #4d4f49; display: block; background: #171815; color: var(--fb-paper); }
	.fb-review-mobile-proof header { padding: 12px 14px; display: flex; align-items: baseline; justify-content: space-between; gap: 16px; border-bottom: 1px solid #3c3e38; }
	.fb-review-mobile-proof header span { color: var(--fb-lime); font: 800 10px/1.2 monospace; letter-spacing: .08em; text-transform: uppercase; }
	.fb-review-mobile-proof header strong { min-width: 0; font-size: 15px; line-height: 1.1; text-align: right; text-transform: uppercase; }
	.fb-review-mobile-proof > p { margin: 0; padding: 13px 14px; color: #c9cbc4; font-size: 14px; font-weight: 700; line-height: 1.4; }
	.fb-review-mobile-proof-scores { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); border-top: 1px solid #3c3e38; }
	.fb-review-mobile-proof-scores > div { min-width: 0; padding: 11px 12px 12px; border-right: 1px solid #3c3e38; }
	.fb-review-mobile-proof-scores > div:last-child { border-right: 0; }
	.fb-review-mobile-proof-scores b { color: var(--fb-paper); font-size: 22px; line-height: 1; }
	.fb-review-mobile-proof-scores small { margin-top: 6px; display: block; color: #aeb0a8; font: 800 9px/1.2 monospace; letter-spacing: .04em; text-transform: uppercase; overflow-wrap: anywhere; }
	.fb-review-trust-detail { display: none !important; }
  .fb-review-form-section { padding: 80px 22px; }
	#get-review { scroll-margin-top: 76px; }
	#audit-form { scroll-margin-top: 92px; }
	.fb-review-concept-preview,
	.fb-review-included,
	.fb-review-example-report,
	.fb-review-concept,
  .fb-review-process,
  .fb-review-final { padding: 82px 22px; }
  .fb-review-included > header .fb-section-label { grid-column: auto; margin-bottom: 0; }
	.fb-review-concept-preview > header { gap: 28px; }
	.fb-review-concept-preview > header > p { max-width: 690px; }
	.fb-review-concept-board { margin-top: 50px; }
	.fb-review-concept-board > figcaption { grid-template-columns: auto 1fr; }
	.fb-review-concept-board > figcaption small { grid-column: 1 / -1; text-align: left; }
	.fb-review-concept-board-grid { display: block; padding-bottom: 45px; }
	.fb-review-artboard-desktop { height: 620px; }
	.fb-review-artboard-mobile { position: absolute; z-index: 3; right: 0; bottom: 0; width: 32%; height: 520px; }
	.fb-review-concept-preview-footer { align-items: flex-start; flex-direction: column; }
	.fb-review-included > header { gap: 28px; }
	.fb-review-example-report > header { gap: 28px; }
	.fb-review-included-grid { margin-top: 55px; }
	.fb-review-report-preview { min-height: 0; margin-top: 48px; padding: 18px 18px 84px; grid-template-columns: 1fr; gap: 18px; }
	.fb-review-preview-page { position: relative; min-height: 0; padding: 28px; }
	.fb-review-preview-cover { min-height: 360px; }
	.fb-review-preview-page h3 { font-size: clamp(31px, 6.5vw, 45px); }
	.fb-review-preview-score-grid { margin: 32px 0 24px; }
	.fb-review-concept-copy { gap: 28px; }
	.fb-review-concept-copy .fb-section-label { grid-column: auto; margin-bottom: 0; }
	.fb-review-example-grid { grid-template-columns: 1fr; }
  .fb-review-device-stage { width: min(100%, 720px); margin: 0 auto; }
  .fb-review-process > div { grid-template-columns: 1fr; }
  .fb-review-process article { min-height: 0; border-right: 0; border-bottom: 1px solid rgba(9, 10, 9, .42); }
  .fb-review-process article:last-child { border-bottom: 0; }
  .fb-review-proof { padding: 82px 22px 90px; }
  .fb-review-work-grid { grid-template-columns: 1fr; width: min(100%, 680px); margin: 52px auto 0; gap: 34px; }
  .fb-review-footer { padding: 44px 22px 30px; }
  .fb-review-footer-cols { grid-template-columns: 1fr 1fr; gap: 32px 24px; }
  .fb-review-footer-brand { grid-column: 1 / -1; }
	.fb-review-privacy-page { padding-top: 76px; }
	.fb-review-privacy-hero { padding: 72px 22px 64px; grid-template-columns: 1fr; gap: 38px; }
	.fb-review-privacy-content { padding: 72px 22px 85px; }
	.fb-review-privacy-return { padding: 70px 22px; }
}

@media (max-width: 560px) {
	.fb-audit-shell .fb-header-inner { padding: 0 16px; }
	.fb-audit-shell .fb-brand,
	.fb-audit-shell .custom-logo-link { width: 150px; }
	.fb-audit-shell .fb-header-cta { padding: 11px 12px; gap: 9px; }
	.fb-review-hero { min-height: 0; padding: 24px 18px 28px; }
	.admin-bar.fb-audit-shell .fb-review-hero { padding-top: 10px; }
	.fb-review-hero-copy h1 { font-size: clamp(40px, 10.8vw, 46px); line-height: .86; letter-spacing: -.055em; }
	.fb-review-deck { margin-top: 16px; font-size: 15.5px; line-height: 1.42; }
	.fb-review-mobile-proof { margin-top: 16px; }
	.fb-review-mobile-proof header { padding: 10px 12px; }
	.fb-review-mobile-proof header strong { max-width: 56%; font-size: 14px; }
	.fb-review-mobile-proof > p { padding: 11px 12px; font-size: 13px; }
	.fb-review-mobile-proof-scores > div { padding: 9px 10px 10px; }
	.fb-review-mobile-proof-scores b { font-size: 20px; }
	.fb-review-mobile-proof-scores small { font-size: 9px; }
	.fb-review-trust { margin-top: 12px; display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 7px; }
	.fb-review-trust li { min-height: 39px; padding: 8px 9px; border-radius: 4px; font-size: 10px; }
	.fb-review-hero-actions { margin-top: 16px; flex-direction: column; gap: 11px; align-items: stretch; }
	.admin-bar.fb-audit-shell .fb-review-hero-actions { margin-top: 16px; }
  .fb-review-jump { width: 100%; }
	.fb-review-example-jump { margin: 0 auto 0 0; font-size: 13px; }
	.fb-review-hero-visual { display: none; }
	.fb-audit-shell .slide-in-position-container {
		width: 100vw !important;
		justify-content: flex-end !important;
		padding-right: 10px !important;
		box-sizing: border-box !important;
	}
	.fb-audit-shell .slide-in-position-container .es-badge-container { transform: translateY(18px) !important; }
	.fb-review-sample-card header { min-height: 52px; padding: 14px 17px; }
	.fb-review-sample-card header span { font-size: 15px; }
	.fb-review-sample-title { padding: 24px 18px 20px; }
	.fb-review-sample-title strong { font-size: 32px; line-height: .9; letter-spacing: -.045em; }
	.fb-review-sample-title span { display: none; }
  .fb-review-sample-scores > div { padding: 16px 11px; }
	.fb-review-sample-scores b { font-size: 31px; }
	.fb-review-sample-note { position: static; min-width: 0; padding: 15px 17px; border-left-width: 3px; box-shadow: none; }
	.fb-review-sample-note strong { font-size: 12px; line-height: 1.4; }
	.fb-review-form-section { padding: 65px 22px; gap: 40px; }
	.fb-review-form-copy > p:not(.fb-section-label) { font-size: 17px; }
	.fb-review-delivery { margin-top: 36px; }
	.fb-review-why-free { margin-top: 28px; padding: 18px 17px; font-size: 16px; }
	.fb-review-why-free strong { font-size: 16px; }
  .fb-review-form-card { padding: 25px 18px; }
	.fb-review-form-card .gfield_label { font-size: 14px !important; line-height: 1.35 !important; }
	.fb-review-form-card input[type="submit"],
	.fb-review-form-card button[type="submit"] { min-height: 62px; font-size: 14px !important; letter-spacing: .08em; }
	.fb-review-privacy { font-size: 14px; line-height: 1.55; }
  .fb-review-form-copy h2,
	.fb-review-concept-preview h2,
	.fb-review-included h2,
	.fb-review-example-report h2,
	.fb-review-concept-copy h2,
  .fb-review-process h2,
  .fb-review-proof h2,
  .fb-review-final h2 { font-size: clamp(44px, 12.6vw, 56px); }
	.fb-review-concept-preview,
	.fb-review-included { padding: 70px 22px; }
	.fb-review-concept-preview > header > p { font-size: 17px; }
	.fb-review-concept-board { margin-top: 42px; padding: 16px 16px 22px; }
	.fb-review-concept-board::before { display: none; }
	.fb-review-concept-board::after { width: 50px; height: 50px; }
	.fb-review-concept-board > figcaption { padding-bottom: 17px; display: flex; align-items: flex-start; flex-direction: column; gap: 7px; }
	.fb-review-concept-board > figcaption strong { font-size: 18px; }
	.fb-review-concept-board > figcaption small { text-align: left; }
	.fb-review-concept-board-grid { margin-top: 22px; padding-bottom: 0; display: grid; grid-template-columns: 1fr; gap: 18px; }
	.fb-review-artboard { border-width: 5px; }
	.fb-review-artboard-desktop { height: 410px; transform: rotate(-.25deg); }
	.fb-review-artboard-mobile { position: relative; right: auto; bottom: auto; width: min(74%, 280px); height: 520px; margin: -34px 0 0 auto; transform: rotate(.65deg); }
	.fb-review-artboard-label { height: 29px; padding-bottom: 6px; font-size: 10px; }
	.fb-contractor-desktop > header { min-height: 50px; padding: 0 13px; }
	.fb-contractor-desktop nav { display: none; }
	.fb-contractor-desktop .fb-contractor-brand b { font-size: 13px; }
	.fb-contractor-desktop .fb-contractor-brand span { font-size: 6px; }
	.fb-contractor-header-cta { margin-left: auto; padding: 7px 8px; font-size: 8px; }
	.fb-contractor-desktop .fb-contractor-hero { min-height: 326px; padding: 28px 17px 22px; }
	.fb-contractor-desktop .fb-contractor-hero-copy { max-width: 78%; }
	.fb-contractor-desktop .fb-contractor-hero-copy small { font-size: 7px; }
	.fb-contractor-desktop .fb-contractor-hero-copy h3 { margin-top: 9px; font-size: 36px; }
	.fb-contractor-desktop .fb-contractor-hero-copy p { margin-top: 11px; font-size: 10px; }
	.fb-contractor-desktop .fb-contractor-hero-copy > span { margin-top: 13px; padding: 8px 9px; font-size: 8px; }
	.fb-contractor-hero-index { display: none; }
	.fb-contractor-desktop .fb-contractor-story { display: none; }
	.fb-contractor-mobile > header { min-height: 52px; padding: 0 13px; }
	.fb-contractor-mobile .fb-contractor-brand b { font-size: 11px; }
	.fb-contractor-mobile .fb-contractor-brand span { font-size: 6px; }
	.fb-contractor-mobile-menu { width: 21px; gap: 5px; }
	.fb-contractor-mobile .fb-contractor-hero { min-height: 310px; padding: 30px 14px 21px; }
	.fb-contractor-mobile .fb-contractor-hero-copy small { font-size: 8px; }
	.fb-contractor-mobile .fb-contractor-hero-copy h3 { margin-top: 10px; font-size: 34px; }
	.fb-contractor-mobile .fb-contractor-hero-copy p { margin-top: 12px; font-size: 11px; }
	.fb-contractor-mobile .fb-contractor-hero-copy > span { margin-top: 14px; padding: 8px 9px; font-size: 8px; }
	.fb-contractor-mobile .fb-contractor-story { padding: 24px 14px; }
	.fb-contractor-mobile .fb-contractor-story small { font-size: 8px; }
	.fb-contractor-mobile .fb-contractor-story h4 { margin-top: 8px; font-size: 25px; }
	.fb-contractor-mobile .fb-contractor-story p { margin-top: 11px; font-size: 11px; }
	.fb-contractor-mobile-photo { min-height: 150px; }
	.fb-contractor-mobile-photo img { height: 150px; }
	.fb-review-concept-board-footer { margin-top: 24px; grid-template-columns: repeat(2, 1fr); gap: 13px; font-size: 10px; }
	.fb-review-concept-preview-footer { margin-top: 28px; gap: 24px; }
	.fb-review-concept-preview-footer p { font-size: 16px; }
	.fb-review-concept-preview-footer .fb-button { width: 100%; }
	.fb-review-included-grid { grid-template-columns: 1fr; gap: 14px; margin-top: 42px; border-top: 0; }
  .fb-review-included-grid article,
	.fb-review-included-grid article:nth-child(even),
	.fb-review-included-grid article:nth-child(odd) { min-height: 0; padding: 25px 20px 28px; border: 1px solid #adafa8; }
  .fb-review-included-grid article:last-child { grid-column: auto; }
	.fb-review-included-grid h3 { margin: 30px 0 13px; font-size: 24px; }
	.fb-review-included-grid p { font-size: 16px; line-height: 1.55; }
	.fb-review-example-report,
	.fb-review-concept,
	.fb-review-process,
	.fb-review-final { padding: 70px 22px; }
	.fb-review-report-preview { min-height: 0; padding: 14px 14px 88px; gap: 14px; border-width: 4px; border-radius: 8px 8px 3px 3px; }
	.fb-review-preview-page { min-height: 0; padding: 22px 20px; }
	.fb-review-preview-cover { min-height: 315px; }
	.fb-review-preview-cover > p { font-size: 14px; }
	.fb-review-preview-score-grid { margin: 24px 0 18px; }
	.fb-review-preview-scores > p,
	.fb-review-preview-detail > section p { font-size: 13px; }
	.fb-review-preview-detail > section { margin-top: 18px; padding-top: 13px; }
	.fb-review-preview-reveal { min-height: 72px; padding: 12px 16px; flex-direction: column; justify-content: center; gap: 4px; align-items: flex-start; }
	.fb-review-preview-reveal strong { font-size: 12px; text-align: left; }
	.fb-review-preview-cta { width: 100%; margin-top: 28px; }
	.fb-review-example-grid { margin-top: 44px; gap: 28px; }
	.fb-review-example-card { padding: 22px 16px 24px; }
	.fb-review-example-card > header { min-height: 0; }
	.fb-review-example-card > header h3 { font-size: 34px; }
	.fb-review-example-card > header p { font-size: 16px; }
  .fb-review-device-stage { padding-right: 6%; padding-bottom: 38px; }
  .fb-review-browser { border-width: 4px; border-radius: 8px 8px 3px 3px; }
  .fb-review-browser-bar { min-height: 22px; }
  .fb-review-phone { bottom: 19px; width: 28%; padding: 7px 3px 4px; border-width: 4px; border-radius: 18px; }
  .fb-review-phone > span { height: 3px; margin-bottom: 4px; }
  .fb-review-phone img { border-radius: 8px; }
	.fb-review-process > div { margin-top: 46px; }
  .fb-review-process article { padding: 25px 0 28px; }
	.fb-review-process h3 { margin-top: 34px; }
  .fb-review-proof figure { min-height: 390px; }
  .fb-review-final .fb-button,
  .fb-review-concept > .fb-button { width: 100%; }
	.fb-review-privacy-hero { padding: 52px 22px 48px; }
	.fb-review-privacy-hero h1 { font-size: clamp(48px, 14vw, 58px); }
	.fb-review-privacy-hero > div:last-child p { font-size: 16px; }
	.fb-review-privacy-content { padding: 58px 22px 70px; }
	.fb-review-privacy-content .fb-prose { font-size: 16px; line-height: 1.7; }
	.fb-review-privacy-content .fb-prose h2 { margin-top: 52px; font-size: 38px; }
	.fb-review-privacy-return { padding: 58px 22px; }
	.fb-review-privacy-return h2 { font-size: 48px; }
	.fb-review-privacy-return .fb-button { width: 100%; }
}

@keyframes fbClientCarousel { to { transform: translateX(-50%); } }

/* Full site service and portfolio system. */
.fb-page-hero-split { display: grid; grid-template-columns: 1.35fr .65fr; gap: 8vw; align-items: end; }
.fb-page-hero-split > *, .fb-definition-row > *, .fb-service-index-card > *, .fb-service-index-copy > *, .fb-contact-form > *, .fb-website-meta > * { min-width: 0; }
.fb-page-hero-split h1 { font-size: clamp(64px, 7.6vw, 118px); }
.fb-page-hero-split .fb-page-deck { margin: 0 0 8px; }
.fb-web-hero-actions { margin-top: 30px; flex-wrap: wrap; gap: 14px; }
.fb-web-hero-actions .fb-hero-cta { margin-top: 0; }
@media (max-width: 700px) {
  .fb-web-hero-actions { width: 100%; align-items: stretch; flex-direction: column; }
  /* Stacked, the three read as one list, so what has to line up is the text,
     not the boxes. The boxes already agree: all three start at the same x. The
     buttons then indent their labels by their own 20px padding while the plain
     link has none, so the link sat 20px to the left of everything above it and
     looked like it had slipped out of the column. */
  .fb-web-hero-actions .fb-text-link { padding-left: 20px; }
}
.fb-service-hero { position: relative; min-height: min(860px, 92vh); overflow: hidden; display: flex; align-items: end; }
.fb-service-hero > img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; }
.fb-service-hero-media { position: absolute; z-index: 0; inset: 0; overflow: hidden; background: #111; }
.fb-service-hero-media > img, .fb-service-hero-media > video { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; object-position: center; }
.fb-service-hero-media > img { z-index: 0; }
.fb-service-hero-media > video { z-index: 1; }
.fb-service-hero-shade { position: absolute; z-index: 1; inset: 0; background: linear-gradient(90deg, rgba(0, 0, 0, .88) 0%, rgba(0, 0, 0, .38) 58%, rgba(0, 0, 0, .2)), linear-gradient(0deg, rgba(0, 0, 0, .72), transparent 55%); }
.fb-service-hero-copy { position: relative; z-index: 2; width: min(1060px, 85%); padding: 160px var(--fb-side) 85px; }
.fb-service-hero-copy h1 { max-width: 1100px; margin: 0; font-size: clamp(72px, 11vw, 168px); line-height: .76; letter-spacing: -.078em; text-transform: uppercase; }
.fb-service-hero-copy > p:not(.fb-section-label) { max-width: 720px; margin: 40px 0 0; color: #d0d1cc; font-size: 20px; line-height: 1.6; }
.fb-hero-cta { width: max-content; margin-top: 30px; }
.fb-paid-hero { min-height: 860px; padding-top: 94px; display: grid; grid-template-columns: .88fr 1.12fr; align-items: center; background: #0d0e0c; }
.fb-paid-hero::before { content: ""; position: absolute; inset: 94px 0 0; opacity: .32; background-image: linear-gradient(rgba(255, 255, 255, .055) 1px, transparent 1px), linear-gradient(90deg, rgba(255, 255, 255, .055) 1px, transparent 1px); background-size: 54px 54px; mask-image: linear-gradient(90deg, transparent, #000 46%, #000); }
.fb-paid-hero-copy { width: auto; padding: 90px 2vw 90px var(--fb-side); }
.fb-paid-hero-copy h1 { font-size: clamp(68px, 8.5vw, 130px); }
.fb-paid-hero-stage { position: relative; z-index: 2; min-width: 0; min-height: 650px; margin: 60px var(--fb-side) 60px 0; }
.fb-paid-hero-browser { position: absolute; top: 5%; right: 2%; width: 90%; overflow: hidden; border: 7px solid #171816; border-radius: 14px 14px 5px 5px; background: #171816; box-shadow: 0 35px 80px rgba(0, 0, 0, .55); }
.fb-paid-hero-browser-bar { height: 30px; padding: 0 13px; display: flex; align-items: center; gap: 6px; }
.fb-paid-hero-browser-bar i { width: 7px; height: 7px; border-radius: 50%; background: #555750; }
.fb-paid-hero-browser-bar i:first-child { background: var(--fb-lime); }
.fb-paid-hero-browser img { width: 100%; aspect-ratio: 1.6 / 1; object-fit: cover; object-position: top; }
.fb-paid-hero-phone { position: absolute; z-index: 3; right: 0; bottom: 4%; width: 23%; padding: 11px 5px 6px; overflow: hidden; border: 5px solid #171816; border-radius: 27px; background: #171816; box-shadow: 0 28px 60px rgba(0, 0, 0, .6); }
.fb-paid-hero-phone > span { width: 35%; height: 4px; margin: 0 auto 8px; display: block; border-radius: 10px; background: #555750; }
.fb-paid-hero-phone img { width: 100%; aspect-ratio: .46 / 1; object-fit: cover; object-position: top; border-radius: 13px; }
.fb-paid-hero-report { position: absolute; z-index: 4; left: 0; bottom: 5%; width: 58%; padding: 20px 22px; border: 1px solid #41433e; background: rgba(20, 21, 19, .96); box-shadow: 0 24px 55px rgba(0, 0, 0, .48); }
.fb-paid-hero-report > span { color: #969890; font: 9px/1.3 monospace; letter-spacing: .08em; text-transform: uppercase; }
.fb-paid-hero-report > div { margin-top: 18px; display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); }
.fb-paid-hero-report p { min-width: 0; margin: 0; padding-right: 13px; border-right: 1px solid #41433e; display: flex; flex-direction: column; }
.fb-paid-hero-report p + p { padding-left: 13px; }
.fb-paid-hero-report p:last-child { border-right: 0; }
.fb-paid-hero-report strong { color: var(--fb-paper); font-size: clamp(30px, 3.4vw, 52px); line-height: .85; }
.fb-paid-hero-report small { margin-top: 8px; color: #9ea099; font-size: 9px; line-height: 1.25; text-transform: uppercase; letter-spacing: .05em; }
.fb-definition-row { padding: 110px var(--fb-side); display: grid; grid-template-columns: 1fr 1fr; gap: 9vw; background: #151614; }
.fb-definition-row h2, .fb-capability-columns h2, .fb-about-lead h2, .fb-ad-copy h2 { margin: 0; font-size: clamp(48px, 7vw, 104px); line-height: .86; letter-spacing: -.065em; text-transform: uppercase; }
.fb-definition-row > div > p { margin: 0 0 36px; color: #abadA5; font-size: 19px; line-height: 1.7; }
.fb-definition-row ul { list-style: none; margin: 0; padding: 0; border-top: 1px solid #444640; display: grid; grid-template-columns: 1fr 1fr; }
.fb-definition-row li { padding: 17px 0; border-bottom: 1px solid #444640; color: #d7d8d3; text-transform: uppercase; font-size: 11px; letter-spacing: .1em; }
.fb-definition-row li:nth-child(even) { padding-left: 24px; border-left: 1px solid #444640; }

.fb-service-index { background: var(--fb-paper); color: var(--fb-ink); }
.fb-service-index-card { display: grid; grid-template-columns: .78fr 1.22fr; min-height: 470px; border-bottom: 1px solid #b8bab3; }
.fb-service-index-card:nth-child(even) { grid-template-columns: 1.22fr .78fr; }
.fb-service-index-card:nth-child(even) .fb-service-index-image { order: 2; }
.fb-service-index-image { position: relative; overflow: hidden; background: #d2d3cd; }
.fb-service-index-image img { width: 100%; height: 100%; object-fit: cover; transition: transform .7s ease; }
.fb-service-index-play { position: absolute; left: 30px; bottom: 30px; width: 58px; height: 58px; border-radius: 50%; display: grid; place-items: center; background: var(--fb-lime); color: var(--fb-ink); }
.fb-service-index-play .fb-play-icon { width: 22px; height: 22px; margin-left: 2px; }
.fb-service-index-image-mockup { position: relative; min-width: 0; padding: 48px; display: grid; place-items: center; background: #d7d7d1; }
.fb-service-index-image-mockup > img { height: auto; }
.fb-service-card-browser { position: relative; width: 88%; overflow: hidden; border: 6px solid #151614; border-radius: 11px 11px 4px 4px; background: #151614; box-shadow: 0 25px 55px rgba(0, 0, 0, .32); }
.fb-service-card-browser > div { height: 25px; padding: 0 10px; display: flex; align-items: center; gap: 5px; }
.fb-service-card-browser > div i { width: 6px; height: 6px; border-radius: 50%; background: #62645e; }
.fb-service-card-browser > div i:first-child { background: var(--fb-lime); }
.fb-service-card-browser img { width: 100%; height: auto; aspect-ratio: 1.6 / 1; object-fit: cover; object-position: top; }
.fb-service-card-phone { position: absolute; z-index: 2; right: 8%; bottom: 6%; width: 23%; padding: 9px 4px 5px; overflow: hidden; border: 5px solid #151614; border-radius: 23px; background: #151614; box-shadow: 0 22px 45px rgba(0, 0, 0, .42); }
.fb-service-card-phone > span { width: 34%; height: 4px; margin: 0 auto 6px; display: block; border-radius: 8px; background: #5c5e58; }
.fb-service-card-phone img { width: 100%; height: auto; aspect-ratio: .46 / 1; object-fit: cover; object-position: top; border-radius: 11px; }
.fb-service-index-image-paid { background: #151614; }
.fb-service-index-image-paid .fb-service-card-browser { width: 90%; transform: translateY(-7%); }
.fb-service-card-paid-report { position: absolute; z-index: 2; left: 7%; right: 12%; bottom: 7%; padding: 16px 18px; border: 1px solid #3f413c; background: rgba(12, 13, 11, .96); color: var(--fb-paper); box-shadow: 0 20px 42px rgba(0, 0, 0, .42); }
.fb-service-card-paid-report > span { color: #a0a29b; font: 9px/1 monospace; letter-spacing: .1em; text-transform: uppercase; }
.fb-service-card-paid-report > div { margin-top: 13px; display: grid; grid-template-columns: repeat(3, 1fr); }
.fb-service-card-paid-report p { margin: 0; display: flex; flex-direction: column; }
.fb-service-card-paid-report strong { font-size: clamp(24px, 3vw, 42px); line-height: .85; }
.fb-service-card-paid-report small { margin-top: 6px; color: #a0a29b; font-size: 8px; text-transform: uppercase; letter-spacing: .06em; }
.fb-service-index-card:hover img { transform: scale(1.035); }
.fb-service-index-copy { position: relative; padding: 70px 6vw; display: grid; grid-template-columns: 70px 1fr auto; align-content: center; }
.fb-service-index-copy > span { color: #6a6c66; font: 11px/1 monospace; }
.fb-service-index-copy h2 { grid-column: 2 / -1; margin: 0; font-size: clamp(42px, 6vw, 86px); line-height: .88; letter-spacing: -.06em; text-transform: uppercase; }
.fb-service-index-copy p { grid-column: 2; max-width: 560px; margin: 25px 0 0; color: #5e605a; font-size: 17px; line-height: 1.6; }
.fb-service-index-copy > .fb-arrow-icon { grid-column: 3; grid-row: 2 / span 2; align-self: end; width: 54px; height: 54px; padding: 17px; border: 1px solid #8d8f89; border-radius: 50%; }

.fb-field-grid { padding: 18px; display: grid; grid-template-columns: 1.1fr .9fr; gap: 18px; background: var(--fb-paper); color: var(--fb-ink); }
.fb-field-grid figure { position: relative; min-height: 560px; margin: 0; overflow: hidden; }
.fb-field-grid figure:first-child { grid-row: span 2; }
.fb-field-grid figure:nth-child(2), .fb-field-grid figure:nth-child(3) { min-height: 400px; }
.fb-field-grid figure:last-child { grid-column: 1 / -1; min-height: 650px; }
.fb-field-grid img { width: 100%; height: 100%; object-fit: cover; transition: transform .7s ease; }
.fb-field-grid figure:hover img { transform: scale(1.025); }
.fb-field-grid figcaption { position: absolute; inset: auto 0 0; padding: 70px 24px 22px; display: flex; justify-content: space-between; gap: 20px; color: #fff; background: linear-gradient(transparent, rgba(0, 0, 0, .82)); text-transform: uppercase; font-size: 10px; letter-spacing: .1em; }
.fb-field-grid figcaption span { font-size: 17px; font-weight: 800; letter-spacing: 0; }
.fb-note-band { padding: 48px var(--fb-side); display: grid; grid-template-columns: .35fr 1.2fr auto; gap: 5vw; align-items: center; border-top: 1px solid #393a37; border-bottom: 1px solid #393a37; }
.fb-note-band > span { color: var(--fb-lime); font: 10px/1.4 monospace; text-transform: uppercase; letter-spacing: .12em; }
.fb-note-band p { margin: 0; color: #b2b3ad; font-size: 19px; line-height: 1.55; }
.fb-note-band a { min-height: 44px; padding-bottom: 7px; border-bottom: 1px solid #676963; display: flex; align-items: center; justify-content: space-between; gap: 14px; text-transform: uppercase; font-size: 10px; letter-spacing: .1em; }

.fb-video-stills { display: grid; grid-template-columns: 1fr 1fr 1fr; gap: 1px; background: #4a4b47; }
.fb-video-stills figure { position: relative; min-height: 560px; margin: 0; overflow: hidden; background: #111; }
.fb-video-stills img { width: 100%; height: 100%; object-fit: cover; filter: saturate(.82); transition: transform .7s ease; }
.fb-video-stills figure:hover img { transform: scale(1.03); }
.fb-video-stills figcaption { position: absolute; left: 24px; bottom: 22px; padding: 9px 11px; background: var(--fb-lime); color: var(--fb-ink); text-transform: uppercase; font: 10px/1 monospace; letter-spacing: .1em; }

.fb-design-grid { padding: 18px; display: grid; grid-template-columns: 1fr 1fr; gap: 18px; background: var(--fb-paper); color: var(--fb-ink); }
.fb-design-grid figure { margin: 0; background: #deded8; }
.fb-design-grid figure.fb-design-wide { grid-column: 1 / -1; }
.fb-design-grid img { width: 100%; aspect-ratio: 4 / 3; object-fit: cover; }
.fb-design-grid .fb-design-contained img { object-fit: contain; padding: clamp(18px, 3vw, 42px); background: #f4f3ef; }
.fb-design-grid .fb-design-wide img { aspect-ratio: 2 / 1; }
.fb-design-grid figcaption { padding: 20px 4px 28px; display: grid; grid-template-columns: 55px 1fr; border-top: 1px solid #b4b5af; }
.fb-design-grid figcaption > span { color: #555750; font: 11px/1 monospace; }
.fb-design-grid strong { text-transform: uppercase; font-size: 18px; }
.fb-design-grid p { margin: 5px 0 0; color: #4f514b; font-size: 12px; text-transform: uppercase; letter-spacing: .08em; }
.fb-capability-columns { padding: 110px var(--fb-side); display: grid; grid-template-columns: 1fr 1fr; gap: 9vw; }
.fb-capability-tags { display: flex; flex-wrap: wrap; align-content: start; gap: 10px; }
.fb-capability-tags span { padding: 13px 16px; border: 1px solid #4c4e49; border-radius: 100px; color: #c0c1bc; text-transform: uppercase; font-size: 10px; letter-spacing: .1em; }

.fb-web-intro { display: grid; grid-template-columns: 1fr 1fr 1fr; background: #151614; color: var(--fb-paper); }
.fb-web-intro > div { min-height: 330px; padding: 50px 3.5vw; border-right: 1px solid rgba(255, 255, 255, .2); }
.fb-web-intro > div:last-child { border-right: 0; }
.fb-web-intro span { color: var(--fb-lime); font: 10px/1 monospace; text-transform: uppercase; letter-spacing: .12em; }
.fb-web-intro h2 { margin: 48px 0 18px; font-size: clamp(32px, 3.2vw, 54px); line-height: .92; letter-spacing: -.045em; text-transform: uppercase; }
.fb-web-intro p { max-width: 420px; margin: 0; color: #b2b4ad; line-height: 1.55; }
.fb-website-showcase { padding: 100px var(--fb-side); display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 78px 24px; background: #f0efe9; color: var(--fb-ink); }
.fb-website-project { min-width: 0; margin: 0; }
.fb-device-stage { position: relative; width: 100%; min-height: 0; aspect-ratio: 16 / 10; padding: clamp(25px, 3.6vw, 58px) clamp(22px, 3.2vw, 52px); overflow: hidden; display: block; background: transparent; }
.fb-device-stage .fb-device-desktop, .fb-device-stage .fb-device-mobile { transition: transform .45s ease; }
.fb-device-stage:hover .fb-device-desktop { transform: scale(1.012); }
.fb-device-stage:hover .fb-device-mobile { transform: translateY(-7px); }
.fb-website-project:nth-child(3n+2) .fb-browser-dots i:first-child { background: var(--fb-lime); }
.fb-device-desktop { position: relative; width: 88%; overflow: hidden; border: 7px solid #151614; border-radius: 12px 12px 4px 4px; background: #151614; box-shadow: 0 22px 55px rgba(0, 0, 0, .26); }
.fb-browser-dots { height: 24px; padding: 7px 9px; display: flex; gap: 5px; }
.fb-browser-dots i { width: 7px; height: 7px; border-radius: 50%; background: #767872; }
.fb-device-desktop img { width: 100%; aspect-ratio: 1.6 / 1; object-fit: cover; object-position: top; }
.fb-device-site-headline { position: absolute; z-index: 1; right: 8%; bottom: 10%; left: 8%; color: #fff; font-family: Impact, Haettenschweiler, "Arial Narrow Bold", sans-serif; font-size: clamp(24px, 3.1vw, 52px); font-weight: 900; line-height: .84; letter-spacing: .015em; text-transform: uppercase; text-shadow: 0 2px 18px rgba(0, 0, 0, .85); }
.fb-device-mobile { position: absolute; z-index: 2; right: 5%; bottom: 7%; width: 23%; padding: 10px 5px; overflow: hidden; border: 5px solid #151614; border-radius: 23px; background: #151614; box-shadow: 0 22px 44px rgba(0, 0, 0, .38); }
.fb-device-mobile > .fb-device-notch { width: 34%; height: 5px; margin: 0 auto 8px; display: block; border-radius: 8px; background: #555752; }
.fb-device-mobile img { width: 100%; aspect-ratio: .46 / 1; object-fit: cover; object-position: top; border-radius: 12px; }
.fb-device-live-preview { position: relative; width: 100%; aspect-ratio: .46 / 1; display: block; overflow: hidden; border-radius: 12px; background: #fff; }
.fb-device-live-preview iframe { width: 217.4%; height: 217.4%; display: block; border: 0; pointer-events: none; transform: scale(.46); transform-origin: top left; }
.fb-device-mobile .fb-device-site-headline { right: 8%; bottom: 8%; left: 8%; font-size: clamp(9px, 1.02vw, 16px); line-height: .88; }
.fb-website-meta { padding-top: 22px; display: grid; grid-template-columns: 42px minmax(0, 1fr); gap: 16px; border-top: 1px solid #94968f; }
.fb-website-meta > span { font: 11px/1 monospace; color: #555750; }
.fb-website-meta h2 { margin: 0; text-transform: uppercase; font-size: clamp(26px, 2.7vw, 42px); line-height: .9; letter-spacing: -.05em; }
.fb-website-meta p { max-width: 590px; margin: 15px 0 0; color: #64665f; line-height: 1.55; }
.fb-website-meta h2 a { transition: color .2s; }
.fb-website-meta h2 a:hover { color: #687814; }
.fb-website-meta > a { grid-column: 2; width: max-content; max-width: 100%; min-height: 44px; align-self: start; padding-bottom: 8px; border-bottom: 1px solid #767872; display: flex; align-items: center; justify-content: space-between; gap: 12px; overflow-wrap: anywhere; text-transform: uppercase; font-size: 10px; letter-spacing: .08em; }

.fb-paid-process { display: grid; grid-template-columns: 1fr 1fr; background: var(--fb-paper); color: var(--fb-ink); }
.fb-paid-process > div { min-height: 380px; padding: 65px 5vw; border-right: 1px solid #b9bbb4; border-bottom: 1px solid #b9bbb4; }
.fb-paid-process > div:nth-child(even) { border-right: 0; }
.fb-paid-process span, .fb-values span { color: #6c6e68; font: 11px/1 monospace; }
.fb-paid-process h2, .fb-values h2 { margin: 85px 0 18px; font-size: clamp(32px, 4vw, 58px); line-height: .92; letter-spacing: -.05em; text-transform: uppercase; }
.fb-paid-process p, .fb-values p { max-width: 540px; margin: 0; color: #62645e; line-height: 1.6; }
.fb-ad-creative { padding: 120px var(--fb-side); display: grid; grid-template-columns: .75fr 1.25fr; gap: 7vw; align-items: center; }
.fb-ad-copy > p:not(.fb-section-label) { margin: 32px 0; color: #acaea7; font-size: 18px; line-height: 1.65; }
.fb-landing-mockups { display: grid; gap: 72px; }
.fb-landing-mockup { position: relative; min-width: 0; padding: 0 9% 56px 0; display: block; }
.fb-landing-browser { overflow: hidden; border: 7px solid #111210; border-radius: 13px 13px 4px 4px; background: #111210; box-shadow: 0 28px 68px rgba(0, 0, 0, .35); }
.fb-landing-browser-bar { height: 30px; padding: 0 13px; display: flex; align-items: center; gap: 6px; background: #111210; }
.fb-landing-browser-bar i { width: 7px; height: 7px; border-radius: 50%; background: #656760; }
.fb-landing-browser-bar i:first-child { background: var(--fb-lime); }
.fb-landing-browser img { width: 100%; aspect-ratio: 1.6 / 1; object-fit: cover; object-position: top; }
.fb-landing-phone { position: absolute; z-index: 2; right: 0; bottom: 30px; width: 25%; padding: 11px 5px 6px; overflow: hidden; border: 5px solid #111210; border-radius: 26px; background: #111210; box-shadow: 0 24px 50px rgba(0, 0, 0, .45); }
.fb-landing-phone > span { width: 34%; height: 4px; margin: 0 auto 8px; display: block; border-radius: 10px; background: #5e605a; }
.fb-landing-phone img { width: 100%; aspect-ratio: .46 / 1; object-fit: cover; object-position: top; border-radius: 13px; }
.fb-landing-caption { margin-top: 18px; padding-top: 15px; border-top: 1px solid #4b4d48; display: grid; grid-template-columns: 1fr auto; gap: 7px 20px; }
.fb-landing-caption span { color: #8f918b; font: 10px/1.2 monospace; letter-spacing: .1em; text-transform: uppercase; }
.fb-landing-caption strong { grid-column: 1; font-size: clamp(22px, 2.4vw, 34px); line-height: .95; text-transform: uppercase; }
.fb-landing-caption svg { grid-column: 2; grid-row: 1 / span 2; width: 18px; align-self: end; color: var(--fb-lime); }
.fb-report-showcase { padding: 120px var(--fb-side); background: var(--fb-paper); color: var(--fb-ink); }
.fb-report-heading { margin-bottom: 64px; display: grid; grid-template-columns: 1.25fr .75fr; gap: 7vw; align-items: end; }
.fb-report-heading .fb-section-label { color: #5f615b; }
.fb-report-heading h2 { max-width: 900px; margin: 0; font-size: clamp(52px, 7vw, 104px); line-height: .84; letter-spacing: -.065em; text-transform: uppercase; }
.fb-report-heading > p { max-width: 480px; margin: 0 0 7px; padding-top: 20px; border-top: 1px solid #9b9d96; color: #60625c; font-size: 17px; line-height: 1.6; }
.fb-report-shell { overflow: hidden; border: 1px solid #adafa8; background: #fff; box-shadow: 0 28px 70px rgba(20, 22, 18, .14); }
.fb-report-toolbar { min-height: 74px; padding: 20px 26px; display: flex; align-items: center; justify-content: space-between; gap: 24px; border-bottom: 1px solid #d1d2cc; background: #151614; color: #f0efe9; text-transform: uppercase; font-size: 11px; letter-spacing: .09em; }
.fb-report-toolbar strong { display: flex; align-items: center; gap: 10px; }
.fb-report-toolbar i { width: 9px; height: 9px; border-radius: 50%; background: var(--fb-lime); box-shadow: 0 0 0 5px rgba(203, 221, 101, .12); }
.fb-report-toolbar span { color: #aeb0a9; font: 10px/1.4 monospace; }
.fb-report-kpis { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); }
.fb-report-kpis article { min-width: 0; min-height: 210px; padding: 28px; border-right: 1px solid #d1d2cc; border-bottom: 1px solid #d1d2cc; display: flex; flex-direction: column; }
.fb-report-kpis article:last-child { border-right: 0; }
.fb-report-kpis span { color: #5f615b; font-size: 11px; letter-spacing: .08em; text-transform: uppercase; }
.fb-report-kpis strong { margin: auto 0 9px; font-size: clamp(52px, 5.2vw, 78px); line-height: .8; letter-spacing: -.06em; }
.fb-report-kpis small { color: #73756e; font-size: 11px; }
.fb-report-kpis .fb-report-positive { width: max-content; padding: 7px 9px; background: var(--fb-lime); color: var(--fb-ink); font-weight: 800; text-transform: uppercase; letter-spacing: .06em; }
.fb-report-detail { display: grid; grid-template-columns: 1.15fr .85fr; }
.fb-report-sources, .fb-report-insights { min-width: 0; padding: 34px 28px 40px; }
.fb-report-sources { border-right: 1px solid #d1d2cc; }
.fb-report-panel-title { margin-bottom: 34px; display: flex; align-items: baseline; justify-content: space-between; gap: 18px; }
.fb-report-panel-title span { font-size: 19px; font-weight: 800; text-transform: uppercase; }
.fb-report-panel-title small { color: #777971; font: 10px/1 monospace; text-transform: uppercase; letter-spacing: .08em; }
.fb-report-sources ol { margin: 0; padding: 0; list-style: none; display: grid; gap: 19px; }
.fb-report-sources li { display: grid; grid-template-columns: 165px minmax(80px, 1fr) 38px; gap: 16px; align-items: center; }
.fb-report-sources li > span { color: #52544e; font-size: 12px; }
.fb-report-sources li > i { height: 10px; overflow: hidden; background: #e4e5df; }
.fb-report-sources li > i b { height: 100%; display: block; background: var(--fb-lime); }
.fb-report-sources li > strong { text-align: right; font-size: 12px; }
.fb-report-insights article { padding: 18px 0; border-top: 1px solid #d1d2cc; display: grid; grid-template-columns: 34px 1fr; gap: 12px; }
.fb-report-insights article > span { color: #74766f; font: 10px/1 monospace; }
.fb-report-insights p { margin: 0; color: #656760; font-size: 13px; line-height: 1.55; }
.fb-report-insights p strong { margin-bottom: 4px; display: block; color: var(--fb-ink); font-size: 14px; }
.fb-report-shell > footer { padding: 17px 28px; border-top: 1px solid #d1d2cc; color: #74766f; background: #f4f3ee; font: 10px/1.5 monospace; text-transform: uppercase; letter-spacing: .06em; }

.fb-about-lead { padding: 18px 18px 90px; display: grid; grid-template-columns: 1.05fr .95fr; gap: 7vw; align-items: center; }
.fb-about-image { height: min(570px, 48vw); min-height: 480px; overflow: hidden; }
.fb-about-image img { width: 100%; height: 100%; object-fit: cover; }
.fb-about-lead > div:last-child { padding-right: var(--fb-side); }
.fb-about-lead > div:last-child > p:not(.fb-section-label) { color: #adafa8; font-size: 18px; line-height: 1.7; }
.fb-values { display: grid; grid-template-columns: repeat(3, 1fr); background: var(--fb-paper); color: var(--fb-ink); }
.fb-values article { min-height: 390px; padding: 55px 4vw; border-top: 3px solid var(--fb-lime); border-right: 1px solid #b9bbb4; }
.fb-values article:last-child { border-right: 0; }
.fb-values h2 { margin-top: 100px; }
.fb-team { padding: 110px var(--fb-side); background: #151614; }
.fb-team-heading { margin-bottom: 62px; display: grid; grid-template-columns: 1.3fr .7fr; gap: 8vw; align-items: end; }
.fb-team-heading > * { min-width: 0; }
.fb-team-heading h2 { max-width: 900px; margin: 0; font-size: clamp(52px, 7vw, 104px); line-height: .84; letter-spacing: -.065em; text-transform: uppercase; }
.fb-team-heading > p { max-width: 470px; margin: 0 0 6px; padding-top: 20px; border-top: 1px solid #444640; color: #b1b3ac; font-size: 17px; line-height: 1.6; }
.fb-team-lead { display: grid; grid-template-columns: .85fr 1.15fr; border-top: 3px solid var(--fb-lime); background: var(--fb-paper); color: var(--fb-ink); }
.fb-team-lead-image { height: 560px; min-height: 0; overflow: hidden; }
.fb-team-lead-image img, .fb-team-card-image img { width: 100%; height: 100%; object-fit: cover; object-position: center top; transition: transform .7s ease; }
.fb-team-lead:hover img, .fb-team-card:hover img { transform: scale(1.025); }
.fb-team-lead-copy { padding: 58px 5vw; display: flex; flex-direction: column; justify-content: center; }
.fb-team-lead-copy > span, .fb-team-card-copy > span { color: #555750; font: 10px/1 monospace; letter-spacing: .1em; text-transform: uppercase; }
.fb-team-lead h3 { margin: 42px 0 9px; font-size: clamp(27px, 2.5vw, 40px); line-height: .9; letter-spacing: -.045em; text-transform: uppercase; }
.fb-team-role { margin: 0 0 34px !important; color: #5e605a !important; font: 11px/1.35 monospace; letter-spacing: .1em; text-transform: uppercase; }
.fb-team-lead-copy > p:last-child { max-width: 650px; margin: 0; color: #5f615a; font-size: 14px; line-height: 1.58; }
.fb-team-grid { margin-top: 18px; display: grid; grid-template-columns: repeat(5, minmax(0, 1fr)); gap: 18px; }
.fb-team-card { min-width: 0; border-top: 3px solid var(--fb-lime); background: var(--fb-paper); color: var(--fb-ink); }
.fb-team-card-image { aspect-ratio: 4 / 5; overflow: hidden; background: #d5d6cf; }
.fb-team-card-copy { padding: 28px 24px 34px; }
.fb-team-card h3 { margin: 42px 0 9px; font-size: clamp(27px, 2.5vw, 40px); line-height: .9; letter-spacing: -.045em; text-transform: uppercase; }
.fb-team-card-copy > p:last-child { margin: 0; color: #5f615a; font-size: 14px; line-height: 1.58; }
.fb-about-mosaic { padding: 18px; display: grid; grid-template-columns: 1.2fr .8fr; gap: 18px; background: var(--fb-paper); }
.fb-about-mosaic figure { margin: 0; min-height: 420px; overflow: hidden; }

@media (min-width: 981px) and (max-width: 1180px) {
  .fb-team-grid { grid-template-columns: repeat(3, minmax(0, 1fr)); }
}

/* Keep the primary action easy to find and tap at every mobile hero. */
@media (max-width: 700px) {
  .fb-button,
  .fb-contact-form input[type="submit"],
  .fb-contact-form button[type="submit"] { width: 100%; }
}
.fb-about-mosaic figure:first-child { grid-row: span 2; }
.fb-about-mosaic img { width: 100%; height: 100%; object-fit: cover; }

.fb-work-index { padding: 18px; display: grid; grid-template-columns: 1fr 1fr; gap: 18px; background: var(--fb-paper); color: var(--fb-ink); }
.fb-work-index-card { position: relative; min-height: 620px; overflow: hidden; }
.fb-work-index-card:nth-child(3n+1) { grid-column: 1 / -1; min-height: 780px; }
.fb-work-index-card > img { width: 100%; height: 100%; object-fit: cover; transition: transform .7s ease; }
.fb-work-index-card:hover > img { transform: scale(1.025); }
.fb-work-index-card > div { position: absolute; inset: auto 0 0; padding: 85px 24px 24px; display: grid; grid-template-columns: 50px 1fr auto; color: #fff; background: linear-gradient(transparent, rgba(0, 0, 0, .86)); }
.fb-work-index-card span { font: 11px/1 monospace; }
.fb-work-index-card h2 { margin: 0; text-transform: uppercase; font-size: clamp(30px, 5vw, 72px); line-height: .9; letter-spacing: -.05em; }
.fb-work-index-card p { grid-column: 2; margin: 9px 0 0; text-transform: uppercase; font-size: 10px; letter-spacing: .1em; }
.fb-work-index-card b { grid-column: 3; grid-row: 1 / span 2; align-self: end; font-size: 24px; }
.fb-architecture-gallery-full { grid-template-columns: 1.25fr .75fr; }
.fb-architecture-gallery-full figure:nth-child(3) { grid-column: 1 / -1; min-height: 760px; }

@media (max-width: 980px) {
  .fb-page-hero-split, .fb-definition-row, .fb-capability-columns, .fb-about-lead, .fb-ad-creative { grid-template-columns: 1fr; }
  .fb-page-hero-split h1 { font-size: clamp(68px, 12vw, 96px); }
  .fb-page-hero-split { gap: 35px; }
  .fb-page-hero-split .fb-page-deck { margin: 0; }
  .fb-service-hero { min-height: 780px; }
  .fb-service-hero-copy { width: 100%; padding: 140px 22px 65px; }
  .fb-service-hero-copy h1 { font-size: clamp(68px, 12vw, 96px); }
	.fb-paid-hero { min-height: 0; padding-top: 94px; grid-template-columns: 1fr; }
	.fb-paid-hero-copy { padding: 80px 22px 30px; }
	.fb-paid-hero-stage { min-height: 600px; margin: 0 22px 65px; }
  .fb-definition-row { padding: 80px 22px; gap: 42px; }
  .fb-service-index-card, .fb-service-index-card:nth-child(even) { grid-template-columns: 1fr; }
  .fb-service-index-card:nth-child(even) .fb-service-index-image { order: 0; }
  .fb-service-index-image { min-height: 420px; }
	.fb-service-index-image-mockup { padding: 42px 32px; }
  .fb-service-index-copy { padding: 55px 22px; }
  .fb-field-grid { grid-template-columns: 1fr; }
  .fb-field-grid figure:first-child, .fb-field-grid figure:last-child { grid-row: auto; grid-column: auto; min-height: 520px; }
  .fb-note-band { grid-template-columns: 1fr; gap: 20px; }
  .fb-video-stills { grid-template-columns: 1fr; }
  .fb-video-stills figure { min-height: 500px; }
  .fb-web-intro { grid-template-columns: 1fr; }
  .fb-web-intro > div { min-height: 0; border-right: 0; border-bottom: 1px solid rgba(255, 255, 255, .2); }
  .fb-website-showcase { padding: 70px 22px; grid-template-columns: 1fr; gap: 90px; }
  .fb-device-stage { min-height: 62vw; padding: 6vw; }
  .fb-device-desktop { width: 88%; }
  .fb-device-mobile { width: 24%; right: 5%; }
  .fb-website-meta { grid-template-columns: 45px 1fr; }
  .fb-website-meta > a { grid-column: 2; width: max-content; }
  .fb-ad-creative { gap: 55px; }
  .fb-about-lead { padding: 18px 18px 80px; }
  .fb-about-lead > div:last-child { padding: 0 22px; }
  .fb-values { grid-template-columns: 1fr; }
  .fb-values article { min-height: 0; border-right: 0; border-bottom: 1px solid rgba(0, 0, 0, .3); }
  .fb-values h2 { margin-top: 55px; }
  .fb-team { padding: 82px 22px; }
  .fb-team-heading { grid-template-columns: 1fr; gap: 30px; }
	.fb-report-heading, .fb-report-detail { grid-template-columns: 1fr; }
	.fb-report-heading { gap: 30px; }
	.fb-report-kpis { grid-template-columns: repeat(2, minmax(0, 1fr)); }
	.fb-report-kpis article:nth-child(2) { border-right: 0; }
	.fb-report-sources { border-right: 0; border-bottom: 1px solid #d1d2cc; }
  .fb-team-lead { grid-template-columns: 1fr; }
  .fb-team-lead-image { height: auto; min-height: 560px; }
  .fb-team-lead-copy { padding: 58px 7vw 68px; }
  .fb-team-lead h3 { margin-top: 42px; }
  .fb-team-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .fb-team-card { grid-column: auto; }
}

@media (max-width: 680px) {
  .fb-hero h1 { font-size: clamp(52px, 15vw, 64px); line-height: .84; }
  .fb-page-hero h1, .fb-page-hero-split h1, .fb-service-hero-copy h1 { font-size: clamp(46px, 12vw, 52px); line-height: .84; }
	.fb-paid-hero-copy { padding-top: 66px; }
	.fb-paid-hero-stage { min-height: 430px; margin: 0 16px 50px; }
	.fb-paid-hero-browser { top: 2%; right: 0; width: 96%; border-width: 4px; border-radius: 9px 9px 3px 3px; }
	.fb-paid-hero-browser-bar { height: 22px; padding: 0 9px; gap: 4px; }
	.fb-paid-hero-browser-bar i { width: 5px; height: 5px; }
	.fb-paid-hero-phone { right: 0; bottom: 4%; width: 28%; padding: 7px 3px 4px; border-width: 4px; border-radius: 18px; }
	.fb-paid-hero-phone > span { height: 3px; margin-bottom: 4px; }
	.fb-paid-hero-phone img { border-radius: 8px; }
	.fb-paid-hero-report { left: 0; bottom: 4%; width: 70%; padding: 14px; }
	.fb-paid-hero-report > span { font-size: 7px; }
	.fb-paid-hero-report > div { margin-top: 12px; }
	.fb-paid-hero-report p { padding-right: 7px; }
	.fb-paid-hero-report p + p { padding-left: 7px; }
	.fb-paid-hero-report strong { font-size: 27px; }
	.fb-paid-hero-report small { font-size: 7px; }
  .fb-contact-band h2 { font-size: clamp(48px, 14vw, 58px); line-height: .82; }
  .fb-definition-row ul, .fb-design-grid, .fb-paid-process, .fb-work-index, .fb-architecture-gallery-full { grid-template-columns: 1fr; }
  .fb-definition-row li:nth-child(even) { padding-left: 0; border-left: 0; }
  .fb-service-index-image { min-height: 320px; }
	.fb-service-index-image-mockup { padding: 28px 22px; }
	.fb-service-card-browser { width: 91%; border-width: 4px; border-radius: 8px 8px 3px 3px; }
	.fb-service-card-browser > div { height: 19px; padding: 0 7px; gap: 4px; }
	.fb-service-card-browser > div i { width: 5px; height: 5px; }
	.fb-service-card-phone { right: 5%; bottom: 6%; width: 25%; padding: 6px 3px 4px; border-width: 4px; border-radius: 16px; }
	.fb-service-card-phone > span { height: 3px; margin-bottom: 4px; }
	.fb-service-card-phone img { border-radius: 7px; }
	.fb-service-card-paid-report { left: 5%; right: 9%; bottom: 5%; padding: 13px 14px; }
  .fb-service-index-copy { grid-template-columns: 32px minmax(0, 1fr); gap: 8px; }
  .fb-service-index-copy h2 { grid-column: 2; }
  .fb-service-index-copy h2 { font-size: clamp(32px, 9.4vw, 38px); }
  .fb-service-index-copy > .fb-arrow-icon { display: none; }
  .fb-design-grid figure.fb-design-wide, .fb-work-index-card:nth-child(3n+1), .fb-architecture-gallery-full figure:nth-child(3) { grid-column: auto; }
  .fb-design-grid .fb-design-wide img, .fb-design-grid img { aspect-ratio: 4 / 3; }
  .fb-capability-columns { padding: 80px 22px; }
  .fb-device-stage { min-height: 77vw; padding: 8vw 4vw; }
  .fb-device-desktop { width: 92%; border-width: 5px; }
  .fb-browser-dots { height: 18px; padding: 5px 6px; }
  .fb-device-mobile { width: 27%; right: 3%; bottom: 5vw; padding: 7px 3px; border-width: 4px; border-radius: 16px; }
  .fb-device-mobile > .fb-device-notch { height: 3px; margin-bottom: 4px; }
  .fb-device-mobile img { border-radius: 7px; }
  .fb-device-live-preview { border-radius: 7px; }
  .fb-website-project { margin-bottom: 0; }
  .fb-paid-process > div { min-height: 0; border-right: 0; }
  .fb-paid-process h2 { margin-top: 55px; }
  .fb-team-heading h2 { font-size: clamp(46px, 13vw, 58px); }
  .fb-team-lead-image { height: auto; min-height: 0; aspect-ratio: 4 / 5; }
  .fb-team-lead-copy { padding: 42px 22px 50px; }
  .fb-team-lead h3 { margin-top: 42px; font-size: clamp(31px, 9vw, 40px); }
  .fb-team-grid { grid-template-columns: 1fr; }
  .fb-team-card h3 { font-size: clamp(31px, 9vw, 40px); }
  .fb-landing-mockups { gap: 58px; }
  .fb-landing-mockup { padding-right: 8%; padding-bottom: 42px; }
  .fb-landing-browser { border-width: 4px; border-radius: 8px 8px 3px 3px; }
  .fb-landing-browser-bar { height: 22px; padding: 0 9px; gap: 4px; }
  .fb-landing-browser-bar i { width: 5px; height: 5px; }
  .fb-landing-phone { bottom: 24px; width: 27%; padding: 7px 3px 4px; border-width: 4px; border-radius: 17px; }
  .fb-landing-phone > span { height: 3px; margin-bottom: 4px; }
  .fb-landing-phone img { border-radius: 8px; }
  .fb-landing-caption { margin-top: 14px; padding-top: 13px; }
  .fb-landing-caption strong { font-size: clamp(21px, 7vw, 29px); }
	.fb-report-showcase { padding: 80px 22px; }
	.fb-report-heading { margin-bottom: 42px; }
	.fb-report-heading h2 { font-size: clamp(46px, 13vw, 58px); }
	.fb-report-kpis { grid-template-columns: 1fr; }
	.fb-report-kpis article, .fb-report-kpis article:nth-child(2) { min-height: 170px; padding: 24px; border-right: 0; }
	.fb-report-kpis strong { font-size: 60px; }
	.fb-report-toolbar { align-items: flex-start; flex-direction: column; }
	.fb-report-sources, .fb-report-insights { padding: 28px 22px 34px; }
	.fb-report-sources li { grid-template-columns: 126px minmax(55px, 1fr) 32px; gap: 9px; }
	.fb-report-sources li > span { font-size: 10px; }
  .fb-about-image, .fb-about-image img { min-height: 520px; }
  .fb-about-mosaic { grid-template-columns: 1fr; }
  .fb-about-mosaic figure:first-child { grid-row: auto; }
  .fb-work-index-card, .fb-work-index-card:nth-child(3n+1) { min-height: 520px; }
}

/* 2026 portfolio expansion. */
.fb-work-hero { padding-bottom: 72px; }
.fb-work-hero-grid { width: min(100%, 1900px); margin: 0 auto; display: grid; grid-template-columns: minmax(0, 1.25fr) minmax(280px, .75fr); gap: 7vw; align-items: end; }
.fb-work-hero-grid > * { min-width: 0; }
.fb-work-hero-grid h1 { margin: 0; font-size: clamp(64px, 9vw, 138px); line-height: .79; letter-spacing: -.07em; text-transform: uppercase; }
.fb-work-hero-grid h1 em { color: var(--fb-lime); font-style: normal; }
.fb-work-hero-title-desktop, .fb-work-hero-title-mobile { display: block; }
.fb-work-hero-title-mobile { display: none; }
.fb-work-hero-grid p { max-width: 560px; margin: 0 0 8px; color: #b5b7b0; font-size: clamp(17px, 1.5vw, 21px); line-height: 1.6; }
.fb-work-service-jump { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); background: #151614; color: var(--fb-paper); }
.fb-work-service-jump a { min-width: 0; min-height: 132px; padding: 24px 30px; border-right: 1px solid rgba(255, 255, 255, .18); border-bottom: 1px solid rgba(255, 255, 255, .18); display: grid; grid-template-columns: 34px minmax(0, 1fr) 22px; gap: 13px; align-items: end; font-size: clamp(16px, 1.7vw, 25px); font-weight: 800; line-height: 1; text-transform: uppercase; letter-spacing: -.025em; transition: background .2s ease; }
.fb-work-service-jump a:hover { background: #20211f; }
.fb-work-service-jump a:nth-child(3n) { border-right: 0; }
.fb-work-service-jump a > span { align-self: start; color: var(--fb-lime); font: 10px/1 monospace; }
.fb-work-service-jump .fb-arrow-icon { width: 18px; height: 18px; color: var(--fb-lime); }
.fb-work-projects { padding: 18px; display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 18px; background: var(--fb-paper); color: var(--fb-ink); }
.fb-work-project { min-width: 0; border-bottom: 1px solid #aaaCA5; display: block; }
.fb-work-project-wide { grid-column: auto; }
.fb-work-project-image { aspect-ratio: 4 / 3; overflow: hidden; background: #d8d9d3; }
.fb-work-project-image img { width: 100%; height: 100%; display: block; object-fit: cover; }
.fb-work-project-meta { padding: 22px 4px 28px; display: grid; grid-template-columns: 48px minmax(0, 1fr); gap: 12px; align-items: start; }
.fb-work-project-meta > span { color: #555750; font: 10px/1 monospace; }
.fb-work-project-meta p { margin: 0 0 8px; color: #6c6e68; font-size: 10px; letter-spacing: .1em; text-transform: uppercase; }
.fb-work-project-meta h2 { margin: 0; font-size: clamp(26px, 3.3vw, 54px); line-height: .88; letter-spacing: -.05em; text-transform: uppercase; }
.fb-work-project-meta strong { margin-top: 8px; display: block; color: #686a64; font-size: 12px; font-weight: 500; letter-spacing: .06em; text-transform: uppercase; }
@media (min-width: 1800px) {
  .fb-work-project-image { aspect-ratio: 1.9 / 1; }
  .fb-work-project-meta h2 { font-size: clamp(34px, 2.8vw, 58px); }
}

.fb-commercial-hero > img { object-position: center 48%; animation: fbCommercialHeroMove 16s ease-in-out infinite alternate; will-change: transform; }
.fb-commercial-category-heading { padding: 94px var(--fb-side) 70px; display: grid; grid-template-columns: minmax(0, 1.25fr) minmax(280px, .75fr); gap: 8vw; align-items: end; background: var(--fb-paper); color: var(--fb-ink); }
.fb-commercial-category-heading .fb-section-label { grid-column: 1 / -1; margin-bottom: -28px; color: #657214; }
.fb-commercial-category-heading h2, .fb-event-coverage-heading h2 { max-width: 920px; margin: 0; font-size: clamp(52px, 7.5vw, 108px); line-height: .85; letter-spacing: -.065em; text-transform: uppercase; }
.fb-commercial-category-heading > p:last-child, .fb-event-coverage-heading > p:last-child { max-width: 560px; margin: 0; font-size: 18px; line-height: 1.65; }
.fb-commercial-gallery { padding: 18px; display: grid; grid-template-columns: repeat(12, minmax(0, 1fr)); gap: 18px; background: var(--fb-paper); }
.fb-commercial-shot { position: relative; min-width: 0; min-height: 500px; margin: 0; overflow: hidden; background: #c8c9c3; }
.fb-commercial-shot-1 { grid-column: 1 / 8; min-height: 720px; }
.fb-commercial-shot-2 { grid-column: 8 / -1; min-height: 720px; }
.fb-commercial-shot-3 { grid-column: 1 / -1; min-height: 660px; }
.fb-commercial-shot-4 { grid-column: 1 / 7; min-height: 590px; }
.fb-commercial-shot-5 { grid-column: 7 / -1; min-height: 590px; }
.fb-commercial-shot-6 { grid-column: 1 / 8; min-height: 610px; }
.fb-commercial-shot-7 { grid-column: 8 / -1; min-height: 610px; }
.fb-commercial-shot img { width: 100%; height: 100%; object-fit: cover; transition: transform .7s ease; }
.fb-commercial-shot:hover img { transform: scale(1.025); }
.fb-commercial-shot figcaption { position: absolute; inset: auto 0 0; padding: 105px 24px 24px; display: grid; grid-template-columns: 44px minmax(0, 1fr); color: #fff; background: linear-gradient(transparent, rgba(0, 0, 0, .85)); }
.fb-commercial-shot figcaption > span { font: 10px/1 monospace; }
.fb-commercial-shot figcaption p { margin: 0 0 7px; font-size: 10px; letter-spacing: .1em; text-transform: uppercase; }
.fb-commercial-shot figcaption strong { font-size: clamp(22px, 2.3vw, 38px); line-height: .95; text-transform: uppercase; }
.fb-event-coverage { padding: 110px var(--fb-side); background: #151614; color: var(--fb-paper); }
.fb-event-coverage-heading { margin-bottom: 64px; display: grid; grid-template-columns: minmax(0, 1.25fr) minmax(280px, .75fr); gap: 8vw; align-items: end; }
.fb-event-coverage-heading .fb-section-label { grid-column: 1 / -1; margin-bottom: -28px; }
.fb-event-coverage-heading > p:last-child { color: #abadA5; }
.fb-event-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 18px; }
.fb-event-card { min-width: 0; margin: 0; }
.fb-event-card > img { width: 100%; aspect-ratio: 3 / 2; object-fit: cover; }
.fb-event-card figcaption { padding: 20px 0 34px; display: grid; grid-template-columns: 44px minmax(0, 1fr); border-top: 1px solid #444640; }
.fb-event-card figcaption > span { padding-top: 4px; color: #8f9289; font: 10px/1 monospace; }
.fb-event-card figcaption p { margin: 0 0 8px; color: #abadA5; font-size: 10px; letter-spacing: .1em; text-transform: uppercase; }
.fb-event-card figcaption strong { font-size: clamp(24px, 2.6vw, 42px); line-height: .95; text-transform: uppercase; }

.fb-video-projects { padding: 110px var(--fb-side); background: var(--fb-paper); color: var(--fb-ink); }
.fb-video-project-heading { margin-bottom: 64px; display: grid; grid-template-columns: .55fr 1.1fr .75fr; gap: 5vw; align-items: end; }
.fb-video-project-heading > * { min-width: 0; }
.fb-video-project-heading h2 { margin: 0; font-size: clamp(48px, 6.2vw, 92px); line-height: .84; letter-spacing: -.065em; text-transform: uppercase; }
.fb-video-project-heading > p:last-child { margin: 0 0 5px; color: #656760; line-height: 1.6; }
.fb-video-project-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 58px 18px; }
.fb-video-project-card { min-width: 0; }
.fb-video-project-image { position: relative; aspect-ratio: 16 / 9; overflow: hidden; background: #151614; }
.fb-video-project-image img { width: 100%; height: 100%; object-fit: cover; transition: transform .7s ease; }
.fb-video-project-card:hover img { transform: scale(1.025); }
.fb-video-project-image > span { position: absolute; left: 22px; bottom: 22px; width: 54px; height: 54px; border-radius: 50%; display: grid; place-items: center; background: var(--fb-lime); color: var(--fb-ink); }
.fb-video-project-image .fb-play-icon { width: 18px; height: 18px; margin-left: 2px; }
.fb-video-project-meta { padding: 21px 3px 0; display: grid; grid-template-columns: 48px minmax(0, 1fr); border-top: 1px solid #a9aba4; }
.fb-video-project-meta > span { color: #74766f; font: 10px/1 monospace; }
.fb-video-project-meta p { margin: 0 0 8px; color: #6c6e68; font-size: 10px; letter-spacing: .1em; text-transform: uppercase; }
.fb-video-project-meta h3 { margin: 0; font-size: clamp(25px, 3vw, 44px); line-height: .9; letter-spacing: -.04em; text-transform: uppercase; }
.fb-video-project-meta strong { margin-top: 8px; display: block; color: #666861; font-size: 12px; font-weight: 500; text-transform: uppercase; letter-spacing: .06em; }
.fb-video-process { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); background: #151614; color: var(--fb-paper); }
.fb-video-process > div { min-width: 0; min-height: 330px; padding: 42px 3vw; border-right: 1px solid rgba(255, 255, 255, .2); }
.fb-video-process > div:last-child { border-right: 0; }
.fb-video-process span { color: var(--fb-lime); font: 10px/1 monospace; }
.fb-video-process h3 { margin: 100px 0 17px; font-size: clamp(30px, 3.2vw, 50px); line-height: .9; letter-spacing: -.045em; text-transform: uppercase; }
.fb-video-process p { max-width: 320px; margin: 0; color: #b1b3ac; line-height: 1.5; }

.fb-brandbook-showcase { padding: 110px var(--fb-side); background: var(--fb-paper); color: var(--fb-ink); }
.fb-brandbook-heading { margin-bottom: 62px; display: grid; grid-template-columns: .45fr 1.55fr; gap: 6vw; align-items: end; }
.fb-brandbook-heading h2 { max-width: 1050px; margin: 0; font-size: clamp(46px, 6.1vw, 92px); line-height: .84; letter-spacing: -.064em; text-transform: uppercase; }
.fb-brandbook-grid, .fb-identity-showcase { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 18px; }
.fb-brandbook-grid figure, .fb-identity-card { min-width: 0; margin: 0; }
.fb-brandbook-grid img, .fb-identity-card > div img { width: 100%; aspect-ratio: 16 / 9; object-fit: cover; }
.fb-brandbook-grid figure:nth-child(2) img { object-position: top; }
.fb-brandbook-grid figcaption, .fb-identity-card figcaption { padding: 20px 3px 28px; display: grid; grid-template-columns: 48px minmax(0, 1fr); border-top: 1px solid #a9aba4; }
.fb-brandbook-grid figcaption > span, .fb-identity-card figcaption > span { color: #555750; font: 10px/1 monospace; }
.fb-brandbook-grid strong, .fb-identity-card strong { font-size: 20px; text-transform: uppercase; }
.fb-brandbook-grid p, .fb-identity-card p { margin: 5px 0 0; color: #4f514b; font-size: 11px; letter-spacing: .08em; text-transform: uppercase; }
.fb-identity-showcase { padding: 18px; background: #e4e3dd; color: var(--fb-ink); }
.fb-identity-card > div { overflow: hidden; background: #d4d5cf; }
.fb-identity-card > div img { display: block; transition: transform .7s ease; }
.fb-identity-card:hover > div img { transform: scale(1.025); }
.fb-design-grid-refined { padding-top: 0; }
.fb-brandbook-showcase .fb-section-label,
.fb-video-projects .fb-section-label { color: #565852; }

.fb-architecture-gallery-complete { padding: clamp(18px, 2vw, 30px); grid-template-columns: repeat(2, minmax(0, 1fr)); gap: clamp(14px, 1.25vw, 20px); }
.fb-architecture-gallery-complete figure {
  grid-column: span 1;
  min-width: 0;
  min-height: 0;
  height: auto;
  aspect-ratio: 3 / 2;
}
.fb-architecture-gallery-complete figure:last-child { min-height: 0; }
.fb-architecture-gallery-complete img { transition: transform .7s ease; }
.fb-architecture-gallery-complete figure:hover img { transform: scale(1.02); }
.fb-residential-projects { padding: 110px var(--fb-side); background: var(--fb-paper); color: var(--fb-ink); }
.fb-residential-heading { margin-bottom: 56px; display: grid; grid-template-columns: .45fr 1.25fr .7fr; gap: 5vw; align-items: end; }
.fb-residential-heading > * { min-width: 0; }
.fb-residential-heading .fb-section-label { color: #565852; }
.fb-residential-heading h2 { margin: 0; font-size: clamp(44px, 5.6vw, 84px); line-height: .86; letter-spacing: -.06em; text-transform: uppercase; }
.fb-residential-heading > p:last-child { margin: 0 0 4px; color: #656760; font-size: 16px; line-height: 1.6; }
.fb-residential-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 46px 18px; }
.fb-residential-grid figure { min-width: 0; margin: 0; }
.fb-residential-grid figure > div { aspect-ratio: 3 / 2; overflow: hidden; background: #d8d9d3; }
.fb-residential-grid img { width: 100%; height: 100%; object-fit: cover; transition: transform .7s ease; }
.fb-residential-grid figure:hover img { transform: scale(1.02); }
.fb-residential-grid figcaption { padding: 20px 3px 0; border-top: 1px solid #a9aba4; display: grid; grid-template-columns: 48px minmax(0, 1fr); }
.fb-residential-grid figcaption > span { color: #5a5c56; font: 10px/1 monospace; }
.fb-residential-grid strong { font-size: clamp(20px, 2.2vw, 34px); line-height: .95; text-transform: uppercase; }
.fb-residential-grid p { margin: 7px 0 0; color: #666861; font-size: 11px; letter-spacing: .08em; text-transform: uppercase; }

/* Focused aerial service page. The page is intentionally outside the primary
   service menu, but its proof and related-service links make the offer
   crawlable and useful to a buyer comparing coverage options. */
.fb-drone-hero > img { object-position: center 44%; }
.fb-drone-definition { background: #11120f; }
.fb-drone-context-link { width: max-content; margin: -8px 0 34px; display: flex; align-items: center; gap: 12px; color: var(--fb-lime); font-size: 10px; font-weight: 800; letter-spacing: .11em; line-height: 1.2; text-transform: uppercase; }
.fb-drone-context-link:hover, .fb-drone-context-link:focus-visible { color: var(--fb-paper); }
.fb-drone-context-link-light { color: #657214; }
.fb-drone-context-link-light:hover, .fb-drone-context-link-light:focus-visible { color: var(--fb-ink); }
.fb-drone-gallery { padding: 110px var(--fb-side); background: var(--fb-paper); color: var(--fb-ink); }
.fb-drone-gallery-heading { margin-bottom: 64px; display: grid; grid-template-columns: minmax(0, 1.2fr) minmax(280px, .8fr); gap: 8vw; align-items: end; }
.fb-drone-gallery-heading .fb-section-label { grid-column: 1 / -1; margin-bottom: -28px; color: #657214; }
.fb-drone-gallery-heading h2 { max-width: 920px; margin: 0; font-size: clamp(52px, 7.5vw, 108px); line-height: .85; letter-spacing: -.065em; text-transform: uppercase; }
.fb-drone-gallery-heading > p:last-child { max-width: 560px; margin: 0; font-size: 18px; line-height: 1.65; }
.fb-drone-gallery-grid { display: grid; grid-template-columns: repeat(12, minmax(0, 1fr)); gap: 18px; }
.fb-drone-shot { position: relative; min-width: 0; min-height: 520px; margin: 0; overflow: hidden; background: #c8c9c3; }
.fb-drone-shot-1 { grid-column: 1 / 8; min-height: 700px; }
.fb-drone-shot-2 { grid-column: 8 / -1; min-height: 700px; }
.fb-drone-shot-3 { grid-column: 1 / -1; min-height: 650px; }
.fb-drone-shot-4 { grid-column: 1 / 7; min-height: 560px; }
.fb-drone-shot-5 { grid-column: 7 / -1; min-height: 560px; }
.fb-drone-shot-6 { grid-column: 1 / -1; min-height: 700px; }
.fb-drone-shot img { width: 100%; height: 100%; object-fit: cover; transition: transform .7s ease; }
.fb-drone-shot:hover img { transform: scale(1.025); }
.fb-drone-shot figcaption { position: absolute; inset: auto 0 0; padding: 105px 24px 24px; display: grid; grid-template-columns: 44px minmax(0, 1fr); color: #fff; background: linear-gradient(transparent, rgba(0, 0, 0, .85)); }
.fb-drone-shot figcaption > span { font: 10px/1 monospace; }
.fb-drone-shot figcaption p { margin: 0 0 7px; font-size: 10px; letter-spacing: .1em; text-transform: uppercase; }
.fb-drone-shot figcaption strong { font-size: clamp(22px, 2.3vw, 38px); line-height: .95; text-transform: uppercase; }
.fb-drone-process { padding: 110px var(--fb-side); background: #151614; color: var(--fb-paper); }
.fb-drone-process-heading { display: grid; grid-template-columns: minmax(0, 1.2fr) minmax(280px, .8fr); gap: 8vw; align-items: end; }
.fb-drone-process-heading .fb-section-label { grid-column: 1 / -1; margin-bottom: -28px; }
.fb-drone-process-heading h2 { max-width: 930px; margin: 0; font-size: clamp(48px, 6.8vw, 100px); line-height: .86; letter-spacing: -.065em; text-transform: uppercase; }
.fb-drone-process-steps { margin-top: 72px; display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); border-top: 1px solid #444640; }
.fb-drone-process-steps article { min-width: 0; min-height: 310px; padding: 24px 30px 28px 0; border-right: 1px solid #444640; }
.fb-drone-process-steps article + article { padding-left: 30px; }
.fb-drone-process-steps article:last-child { border-right: 0; }
.fb-drone-process-steps span { color: var(--fb-lime); font: 11px/1 monospace; }
.fb-drone-process-steps h3 { max-width: 360px; margin: 72px 0 18px; font-size: clamp(25px, 3vw, 42px); line-height: .95; letter-spacing: -.035em; text-transform: uppercase; }
.fb-drone-process-steps p { max-width: 360px; margin: 0; color: #abadA5; font-size: 16px; line-height: 1.6; }
.fb-drone-related { padding: 96px var(--fb-side); display: grid; grid-template-columns: minmax(0, 1.1fr) minmax(280px, .9fr); gap: 8vw; background: var(--fb-paper); color: var(--fb-ink); }
.fb-drone-related .fb-section-label { color: #657214; }
.fb-drone-related h2 { max-width: 780px; margin: 24px 0 0; font-size: clamp(42px, 5.7vw, 82px); line-height: .88; letter-spacing: -.06em; text-transform: uppercase; }
.fb-drone-related-links { border-top: 1px solid #a9aba4; }
.fb-drone-related-links a { min-height: 68px; padding: 16px 0; display: flex; align-items: center; justify-content: space-between; gap: 18px; border-bottom: 1px solid #a9aba4; font-size: clamp(17px, 1.7vw, 24px); font-weight: 800; line-height: 1; text-transform: uppercase; transition: padding .2s ease, color .2s ease; }
.fb-drone-related-links a:hover { padding-left: 12px; color: #657214; }
.fb-drone-related-links .fb-arrow-icon { flex: 0 0 auto; color: #657214; }

@media (max-width: 980px) {
  .fb-work-hero-grid, .fb-video-project-heading, .fb-brandbook-heading { grid-template-columns: 1fr; gap: 30px; }
  .fb-work-service-jump { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .fb-work-service-jump a:nth-child(3n) { border-right: 1px solid rgba(255, 255, 255, .18); }
  .fb-work-service-jump a:nth-child(even) { border-right: 0; }
  .fb-commercial-shot-1, .fb-commercial-shot-2, .fb-commercial-shot-3, .fb-commercial-shot-4, .fb-commercial-shot-5, .fb-commercial-shot-6, .fb-commercial-shot-7 { min-height: 520px; }
  .fb-commercial-shot-1, .fb-commercial-shot-4, .fb-commercial-shot-6 { grid-column: 1 / 7; }
  .fb-commercial-shot-2, .fb-commercial-shot-5, .fb-commercial-shot-7 { grid-column: 7 / -1; }
  .fb-commercial-shot-3 { grid-column: 1 / -1; }
  .fb-commercial-category-heading, .fb-event-coverage-heading { grid-template-columns: 1fr; gap: 30px; }
  .fb-commercial-category-heading .fb-section-label, .fb-event-coverage-heading .fb-section-label { margin-bottom: 0; }
  .fb-video-projects, .fb-brandbook-showcase { padding: 82px 22px; }
  .fb-video-process { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .fb-video-process > div:nth-child(2) { border-right: 0; }
  .fb-video-process > div { border-bottom: 1px solid rgba(255, 255, 255, .2); }
	.fb-architecture-gallery-complete { grid-template-columns: repeat(2, minmax(0, 1fr)); }
	.fb-architecture-gallery-complete figure { grid-column: span 1; min-height: 0; height: auto; aspect-ratio: 3 / 2; }
	.fb-residential-projects { padding: 82px 22px; }
	.fb-residential-heading { grid-template-columns: 1fr; gap: 26px; }
	.fb-drone-gallery-heading, .fb-drone-process-heading, .fb-drone-related { grid-template-columns: 1fr; gap: 30px; }
	.fb-drone-gallery-heading .fb-section-label, .fb-drone-process-heading .fb-section-label { margin-bottom: 0; }
	.fb-drone-process-steps { grid-template-columns: repeat(2, minmax(0, 1fr)); }
	.fb-drone-process-steps article:nth-child(2) { border-right: 0; }
	.fb-drone-process-steps article { border-bottom: 1px solid #444640; }
}

@media (max-width: 680px) {
  /* The desktop-only context labels compete with the hero eyebrow on phones. */
  .fb-hero-topline { display: none; }
  .fb-work-hero { padding-bottom: 55px; }
  .fb-work-hero-grid h1 { font-size: clamp(48px, 14vw, 62px); line-height: .82; }
  .fb-work-hero-title-desktop { display: none; }
  .fb-work-hero-title-mobile { display: block; }
  .fb-work-service-jump, .fb-work-projects, .fb-commercial-gallery, .fb-video-project-grid, .fb-brandbook-grid, .fb-identity-showcase, .fb-video-process { grid-template-columns: 1fr; }
  .fb-work-service-jump a, .fb-work-service-jump a:nth-child(3n), .fb-work-service-jump a:nth-child(even) { min-height: 96px; border-right: 0; }
  .fb-work-project-wide { grid-column: auto; }
  .fb-work-project-meta { grid-template-columns: 34px minmax(0, 1fr) 22px; }
  .fb-work-project-meta h2 { font-size: clamp(27px, 9vw, 38px); }
  .fb-commercial-shot-1, .fb-commercial-shot-2, .fb-commercial-shot-3, .fb-commercial-shot-4, .fb-commercial-shot-5, .fb-commercial-shot-6, .fb-commercial-shot-7 { grid-column: auto; min-height: 460px; }
  .fb-commercial-shot-3 { min-height: 520px; }
  .fb-commercial-shot figcaption { padding: 90px 18px 18px; }
  .fb-commercial-category-heading { padding: 72px 22px 48px; }
  .fb-commercial-category-heading h2, .fb-event-coverage-heading h2 { font-size: clamp(42px, 12vw, 56px); }
  .fb-event-coverage { padding: 76px 22px; }
  .fb-event-coverage-heading { margin-bottom: 44px; }
  .fb-event-grid { grid-template-columns: 1fr; gap: 30px; }
	.fb-drone-gallery { padding: 76px 22px; }
	.fb-drone-gallery-heading { margin-bottom: 44px; }
	.fb-drone-gallery-heading h2, .fb-drone-process-heading h2 { font-size: clamp(42px, 12vw, 56px); }
	.fb-drone-gallery-grid { grid-template-columns: 1fr; gap: 38px; }
	.fb-drone-shot, .fb-drone-shot-1, .fb-drone-shot-2, .fb-drone-shot-3, .fb-drone-shot-4, .fb-drone-shot-5, .fb-drone-shot-6 { grid-column: auto; min-height: 460px; }
	.fb-drone-shot-3, .fb-drone-shot-6 { min-height: 520px; }
	.fb-drone-shot figcaption { padding: 90px 18px 18px; }
	.fb-drone-process { padding: 76px 22px; }
	.fb-drone-process-steps { margin-top: 44px; grid-template-columns: 1fr; }
	.fb-drone-process-steps article, .fb-drone-process-steps article + article { min-height: 0; padding: 22px 0 30px; border-right: 0; }
	.fb-drone-process-steps h3 { margin-top: 52px; }
	.fb-drone-related { padding: 76px 22px; }
	.fb-drone-related h2 { font-size: clamp(38px, 11vw, 54px); }
  .fb-note-band a { width: 100%; }
  .fb-video-projects, .fb-brandbook-showcase { padding: 72px 22px; }
  .fb-video-project-heading h2, .fb-brandbook-heading h2 { font-size: clamp(42px, 12.5vw, 56px); }
  .fb-video-project-grid { gap: 48px; }
  .fb-video-project-meta { grid-template-columns: 34px minmax(0, 1fr); }
  .fb-video-process > div { min-height: 0; padding: 38px 22px 44px; border-right: 0; }
  .fb-video-process h3 { margin-top: 58px; }
  .fb-identity-showcase { padding-top: 0; }
  .fb-brandbook-grid strong, .fb-identity-card strong { font-size: 17px; }
  .fb-architecture-gallery-complete { grid-template-columns: 1fr; }
  .fb-architecture-gallery-complete figure,
  .fb-architecture-gallery-complete figure:nth-child(5n+1),
  .fb-architecture-gallery-complete figure:nth-child(5n+2),
  .fb-architecture-gallery-complete figure:nth-child(5n+3),
  .fb-architecture-gallery-complete figure:nth-child(5n+4),
  .fb-architecture-gallery-complete figure:nth-child(5n+5) { grid-column: 1; min-height: 0; height: auto; aspect-ratio: 3 / 2; }
	.fb-residential-projects { padding: 72px 22px; }
	.fb-residential-heading h2 { font-size: clamp(40px, 12vw, 54px); }
	.fb-residential-grid { grid-template-columns: 1fr; gap: 42px; }
	.fb-residential-grid figcaption { grid-template-columns: 34px minmax(0, 1fr); }
}

.fb-motion-ready .fb-reveal {
  opacity: 0;
  transform: translateY(30px);
  transition: opacity .72s cubic-bezier(.2, .65, .25, 1), transform .72s cubic-bezier(.2, .65, .25, 1);
  transition-delay: var(--fb-reveal-delay, 0ms);
  will-change: opacity, transform;
}
.fb-motion-ready .fb-reveal.fb-visible { opacity: 1; transform: translateY(0); }
.fb-motion-ready .fb-work-card.fb-reveal,
.fb-motion-ready .fb-team-card.fb-reveal,
.fb-motion-ready .fb-service-index-card.fb-reveal,
.fb-motion-ready .fb-website-project.fb-reveal {
  transform: translateY(24px) scale(.985);
}
.fb-motion-ready .fb-work-card.fb-reveal.fb-visible,
.fb-motion-ready .fb-team-card.fb-reveal.fb-visible,
.fb-motion-ready .fb-service-index-card.fb-reveal.fb-visible,
.fb-motion-ready .fb-website-project.fb-reveal.fb-visible {
  transform: translateY(0) scale(1);
}

.fb-motion-ready .fb-heading-mask { opacity: 1; }
.fb-motion-ready .fb-heading-line { display: block; overflow: hidden; padding-bottom: .08em; margin-bottom: -.08em; }
.fb-motion-ready .fb-heading-line-inner { display: block; transform: translateY(112%); transition: transform .86s cubic-bezier(.16, .76, .24, 1); transition-delay: var(--fb-heading-delay, 0ms); will-change: transform; }
.fb-motion-ready .fb-heading-mask.fb-visible .fb-heading-line-inner { transform: translateY(0); }

.fb-motion-ready .fb-see-it-line.fb-see-it-ready {
  display: inline-block;
  opacity: 0;
  clip-path: inset(0 100% 0 0);
  transition: opacity .2s ease, clip-path .95s .28s cubic-bezier(.16, .76, .24, 1);
}
.fb-motion-ready .fb-see-it-line.fb-see-it-ready.fb-see-it-visible {
  opacity: 1;
  clip-path: inset(0 0 0 0);
}

.fb-accent-callout { color: var(--fb-lime); }
.fb-motion-ready .fb-accent-callout.fb-accent-ready {
  color: inherit;
  transition: color .52s ease;
}
.fb-motion-ready .fb-accent-callout.fb-accent-ready.fb-accent-visible { color: var(--fb-lime); }

/* Keep the homepage statement still, then hand the emphasis to the delayed lime treatment. */
.fox-brand-front-page.fb-motion-ready .fb-hero-headline.fb-heading-mask {
  opacity: 0;
  transition: opacity .78s .35s ease;
}
.fox-brand-front-page.fb-motion-ready .fb-hero-headline.fb-heading-mask.fb-visible { opacity: 1; }
.fox-brand-front-page.fb-motion-ready .fb-hero-headline .fb-heading-line {
  position: relative;
  width: max-content;
  max-width: 100%;
  opacity: 1;
  transform: none;
  transition: none;
  will-change: auto;
}
.fox-brand-front-page.fb-motion-ready .fb-hero-headline .fb-heading-line-inner,
.fox-brand-front-page.fb-motion-ready .fb-hero-headline.fb-visible .fb-heading-line-inner {
  transform: none;
  transition: none;
  will-change: auto;
}
.fox-brand-front-page.fb-motion-ready .fb-hero-headline .fb-heading-line:nth-child(2) .fb-heading-line-inner em { color: #fff; }
.fox-brand-front-page.fb-motion-ready .fb-hero-headline.fb-visible .fb-heading-line:nth-child(2):after {
  content: attr(data-text);
  position: absolute;
  z-index: 2;
  inset: 0;
  pointer-events: none;
  overflow: hidden;
  color: var(--fb-lime);
  clip-path: inset(0 100% 0 0);
  animation: fbHeroStoryFill .78s 1.05s cubic-bezier(.16, .76, .24, 1) forwards;
}
.fox-brand-front-page.fb-motion-ready .fb-hero-headline.fb-visible .fb-heading-line:nth-child(2):before {
  content: "";
  position: absolute;
  z-index: 3;
  top: .03em;
  bottom: .08em;
  left: 0;
  width: 2px;
  pointer-events: none;
  background: #f4ffd0;
  opacity: 0;
  box-shadow: 0 0 14px rgba(203, 221, 101, .9);
  animation: fbHeroStoryCursor .78s 1.05s cubic-bezier(.16, .76, .24, 1) forwards;
}

@media (max-width: 980px) {
  .fox-brand-front-page.fb-motion-ready .fb-hero-headline .fb-heading-line:nth-child(2) .fb-heading-line-inner em {
    color: #fff;
    animation: fbHeroStoryColor .45s 1.05s ease forwards;
  }
  .fox-brand-front-page.fb-motion-ready .fb-hero-headline .fb-heading-line:nth-child(2):before,
  .fox-brand-front-page.fb-motion-ready .fb-hero-headline .fb-heading-line:nth-child(2):after { display: none; }
}

.fb-motion-ready .fb-line-draw { position: relative; }
.fb-motion-ready .fb-line-draw:before { content: ""; position: absolute; z-index: 3; top: -1px; right: 0; left: 0; height: 1px; pointer-events: none; background: var(--fb-lime); transform: scaleX(0); transform-origin: left center; transition: transform .9s cubic-bezier(.16, .76, .24, 1); }
.fb-motion-ready .fb-line-draw.fb-line-visible:before { transform: scaleX(1); }

/* Journal and article templates. */
.fb-journal { background: var(--fb-paper); color: var(--fb-ink); }
.fb-journal-hero { padding: 118px var(--fb-side) 92px; border-bottom: 1px solid #aaaCA5; background: #151614; color: var(--fb-paper); }
.fb-journal-hero h1 { max-width: 1100px; margin: 0; font-size: clamp(62px, 10vw, 148px); line-height: .79; letter-spacing: -.075em; text-transform: uppercase; }
.fb-journal-hero .fb-page-deck { max-width: 690px; color: #b5b7b0; }
.fb-journal-grid { padding: 18px; display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 18px; }
.fb-journal-card { min-width: 0; border-bottom: 1px solid #a9aba4; }
.fb-journal-card > a { height: 100%; display: flex; flex-direction: column; }
.fb-journal-card-featured { grid-column: 1 / -1; }
.fb-journal-card-featured > a { display: block; }
.fb-journal-card-image { aspect-ratio: 16 / 10; overflow: hidden; background: #d6d7d1; }
.fb-journal-card-featured .fb-journal-card-image { aspect-ratio: 16 / 8; }
.fb-journal-card-image img { width: 100%; height: 100%; object-fit: cover; transition: transform .7s ease; }
.fb-journal-card:hover .fb-journal-card-image img { transform: scale(1.025); }
.fb-journal-card-copy { flex: 1; padding: 28px 4px 36px; display: flex; flex-direction: column; }
.fb-journal-card-featured .fb-journal-card-copy { min-height: 580px; padding: 42px 40px; background: var(--fb-lime); }
.fb-journal-card-number { margin-bottom: 64px; color: #5c651c; font: 12px/1 monospace; letter-spacing: .12em; }
.fb-journal-card-featured .fb-journal-card-number { margin-bottom: auto; font-size: 14px; }
.fb-journal-card-featured .fb-journal-card-number,
.fb-journal-card-featured .fb-journal-card-meta,
.fb-journal-card.fb-journal-card-featured p { color: #333700; }
.fb-journal-card-meta, .fb-article-meta { display: flex; flex-wrap: wrap; gap: 10px 20px; color: #666861; font: 10px/1.3 monospace; letter-spacing: .1em; text-transform: uppercase; }
.fb-journal-card h2 { margin: 27px 0 18px; font-size: clamp(30px, 4vw, 58px); line-height: .9; letter-spacing: -.05em; text-transform: uppercase; }
.fb-journal-card-featured h2 { max-width: 1050px; font-size: clamp(58px, 8.3vw, 122px); }
.fb-journal-card p { margin: 0 0 32px; color: #656760; font-size: 16px; line-height: 1.6; }
.fb-journal-read { margin-top: auto; padding-top: 18px; border-top: 1px solid #a9aba4; display: flex; align-items: center; justify-content: space-between; gap: 18px; font-size: 10px; font-weight: 700; letter-spacing: .11em; text-transform: uppercase; }
.fb-journal-read .fb-arrow-icon { color: #6d791d; }
.fb-journal .navigation.pagination { padding: 30px var(--fb-side) 80px; }
.fb-journal .nav-links { display: flex; gap: 10px; }
.fb-journal .page-numbers { min-width: 44px; min-height: 44px; padding: 12px; display: grid; place-items: center; border: 1px solid #999b94; }
.fb-journal .page-numbers.current, .fb-journal .page-numbers:hover { background: var(--fb-ink); color: var(--fb-paper); }

.blog .fb-site-header, .single-post .fb-site-header { background: rgba(9, 10, 9, .92); backdrop-filter: blur(18px); }
.single-post .fb-page-shell { background: var(--fb-paper); }
.fb-article-hero { padding: 116px var(--fb-side) 74px; background: #151614; color: var(--fb-paper); }
.fb-article-hero h1 { max-width: 1260px; margin: 28px 0 0; font-size: clamp(54px, 8.5vw, 126px); line-height: .82; letter-spacing: -.07em; text-transform: uppercase; }
.fb-article-hero .fb-page-deck { max-width: 780px; color: #b5b7b0; }
.fb-article-feature { max-height: min(760px, 78vh); margin: 0; overflow: hidden; background: #d8d9d3; }
.fb-article-feature img { width: 100%; height: min(760px, 78vh); object-fit: cover; }
.fb-article-content { max-width: 860px; margin: 0 auto; padding: 92px 28px 110px; color: #252620; font-size: clamp(17px, 1.45vw, 20px); line-height: 1.75; }
.fb-article-content > *:first-child { margin-top: 0; }
.fb-article-content > *:last-child { margin-bottom: 0; }
.fb-article-content h2 { margin: 70px 0 22px; font-size: clamp(36px, 5vw, 66px); line-height: .94; letter-spacing: -.055em; text-transform: uppercase; }
.fb-article-content h3 { margin: 48px 0 16px; font-size: clamp(24px, 3vw, 38px); line-height: 1; letter-spacing: -.035em; text-transform: uppercase; }
.fb-article-content p, .fb-article-content ul, .fb-article-content ol { margin: 0 0 26px; }
.fb-article-content li + li { margin-top: 10px; }
.fb-article-content a { text-decoration: underline; text-decoration-color: #75821e; text-underline-offset: 3px; }
.fb-article-content blockquote { margin: 54px 0; padding: 8px 0 8px 28px; border-left: 5px solid var(--fb-lime); font-size: clamp(25px, 3vw, 38px); font-weight: 700; line-height: 1.18; }
.fb-article-nav { padding: 24px var(--fb-side); border-top: 1px solid #aaaCA5; border-bottom: 1px solid #aaaCA5; display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 24px; color: var(--fb-ink); }
.fb-article-nav > div { min-width: 0; }
.fb-article-nav > div:last-child { text-align: right; }
.fb-article-nav a { min-height: 54px; display: flex; align-items: center; font-size: 11px; font-weight: 700; line-height: 1.4; letter-spacing: .08em; text-transform: uppercase; }
.fb-article-nav > div:last-child a { justify-content: flex-end; }

@media (max-width: 780px) {
  .fb-journal-hero { padding: 84px 22px 64px; }
  .fb-journal-hero h1 { font-size: clamp(46px, 12vw, 50px); }
  .fb-journal-grid { grid-template-columns: 1fr; padding: 12px; gap: 46px; }
  .fb-journal-card-featured { grid-column: auto; }
  .fb-journal-card-featured > a { display: block; }
  .fb-journal-card-featured .fb-journal-card-image { aspect-ratio: 16 / 10; }
  .fb-journal-card-featured .fb-journal-card-copy { min-height: 520px; padding: 28px 22px; background: var(--fb-lime); }
  .fb-journal-card-copy { padding: 24px 3px 30px; background: transparent; }
  .fb-journal-card-number { margin-bottom: 44px; }
  .fb-journal-card-featured .fb-journal-card-number { margin-bottom: auto; }
  .fb-journal-card h2, .fb-journal-card-featured h2 { font-size: clamp(32px, 10.5vw, 48px); }
  .fb-article-hero { padding: 86px 22px 58px; }
  .fb-article-hero h1 { font-size: clamp(46px, 13.5vw, 66px); }
  .fb-article-feature, .fb-article-feature img { height: auto; max-height: none; aspect-ratio: 4 / 3; }
  .fb-article-content { padding: 64px 22px 78px; }
  .fb-article-content h2 { margin-top: 54px; font-size: clamp(35px, 11vw, 50px); }
  .fb-article-nav { grid-template-columns: 1fr; padding: 18px 22px; gap: 0; }
  .fb-article-nav > div:last-child { border-top: 1px solid #aaaCA5; text-align: left; }
  .fb-article-nav > div:last-child a { justify-content: flex-start; }
}

/* Elfsight reviews, styled through the widget's stable public class hooks. */
.fox-brand-site .es-badge-container,
.fox-brand-site .es-card-badge-container,
.fox-brand-site .es-reviews-popup-content-container,
.fox-brand-site .es-review-background-container {
  font-family: Arial, Helvetica, sans-serif !important;
}
.fox-brand-site .es-badge-container,
.fox-brand-site .es-card-badge-container {
  border-radius: 2px !important;
  background: #111210 !important;
}
.fox-brand-site .es-badge-container {
  border: 1px solid rgba(207, 229, 80, .42) !important;
  box-shadow: 0 16px 44px rgba(0, 0, 0, .32) !important;
}
.fox-brand-site .es-badge-label {
  font-size: 10px !important;
  font-weight: 800 !important;
  letter-spacing: .11em !important;
  text-transform: uppercase !important;
}
.fox-brand-site .es-badge-reviews-count,
.fox-brand-site .es-header-rating-reviews-count,
.fox-brand-site .es-review-info-container,
.fox-brand-site .es-review-info-info-block,
.fox-brand-site .es-review-info-date-container,
.fox-brand-site .es-review-info-date {
  color: #a6a8a0 !important;
  font-family: "Courier New", Courier, monospace !important;
  font-size: 10px !important;
  letter-spacing: .07em !important;
  text-transform: uppercase !important;
}
.fox-brand-site .es-badge-reviews-count {
  font-size: 12px !important;
  font-weight: 700 !important;
  letter-spacing: .04em !important;
}
.fox-brand-site .es-rating-value {
  font-family: Arial, Helvetica, sans-serif !important;
  font-weight: 900 !important;
}
.fox-brand-site .es-rating-item-filled path,
.fox-brand-site .es-verified-badge-icon path {
  fill: var(--fb-lime) !important;
}
.fox-brand-site .es-reviews-popup-content-container {
  border: 1px solid rgba(207, 229, 80, .25) !important;
  border-radius: 2px !important;
  background: #111210 !important;
  box-shadow: 0 28px 90px rgba(0, 0, 0, .62) !important;
}
.fox-brand-site .es-reviews-popup-content-header {
  padding: 34px 40px 20px !important;
  border-bottom: 1px solid #3d3e3a !important;
}
.fox-brand-site .es-header-heading-text {
  color: var(--fb-paper) !important;
  font-family: Arial, Helvetica, sans-serif !important;
  font-size: 22px !important;
  font-weight: 900 !important;
  letter-spacing: -.025em !important;
  text-transform: uppercase !important;
}
.fox-brand-site .es-reviews-popup-content-scrollable-container {
  padding: 0 34px 40px 40px !important;
  scrollbar-color: var(--fb-lime) #262824;
  scrollbar-width: thin;
}
.fox-brand-site .es-reviews-popup-content-scrollable-container::-webkit-scrollbar { width: 5px; }
.fox-brand-site .es-reviews-popup-content-scrollable-container::-webkit-scrollbar-track { background: #262824; }
.fox-brand-site .es-reviews-popup-content-scrollable-container::-webkit-scrollbar-thumb { background: var(--fb-lime); }
.fox-brand-site .es-reviews-popup-review-content { padding: 26px 0 !important; }
.fox-brand-site .es-review-background-container { background: transparent !important; }
.fox-brand-site .es-review-author-name {
  color: var(--fb-paper) !important;
  font-family: Arial, Helvetica, sans-serif !important;
  font-weight: 800 !important;
}
.fox-brand-site .es-review-content-text-container,
.fox-brand-site .es-text-shortener {
  color: #e8e9e3 !important;
  font-family: Arial, Helvetica, sans-serif !important;
  line-height: 1.58 !important;
}
.fox-brand-site .es-text-shortener-control {
  color: var(--fb-lime) !important;
  font-family: "Courier New", Courier, monospace !important;
  font-size: 10px !important;
  font-weight: 700 !important;
  letter-spacing: .08em !important;
  text-transform: uppercase !important;
}
.fox-brand-site .es-reviews-popup-review-separator-line { background: #3d3e3a !important; }
.fox-brand-site .es-close-button-reviews-popup-content {
  border: 1px solid #555750 !important;
  background: #151614 !important;
  transition: border-color .2s ease, background .2s ease !important;
}
.fox-brand-site .es-close-button-reviews-popup-content:hover,
.fox-brand-site .es-close-button-reviews-popup-content:focus-visible {
  border-color: var(--fb-lime) !important;
  background: var(--fb-lime) !important;
}
.fox-brand-site .es-close-button-reviews-popup-content:hover svg,
.fox-brand-site .es-close-button-reviews-popup-content:focus-visible svg { fill: var(--fb-ink) !important; }

@media (max-width: 640px) {
  .fox-brand-site .es-badge-reviews-count { font-size: 13px !important; }
  .fox-brand-site .es-reviews-popup-content-container { border: 0 !important; }
  .fox-brand-site .es-reviews-popup-content-header { padding: 28px 20px 17px !important; }
  .fox-brand-site .es-reviews-popup-content-scrollable-container { padding: 0 16px 28px 20px !important; }
  .fox-brand-site .es-reviews-popup-review-content { padding: 22px 0 !important; }
}

@media (prefers-reduced-motion: reduce) {
  .fb-service-hero-video { display: none; }
  .fb-motion-ready .fb-reveal,
  .fb-motion-ready .fb-reveal.fb-visible {
    opacity: 1 !important;
    transform: none !important;
    transition: none !important;
  }
  .fb-motion-ready .fb-heading-line-inner,
  .fb-motion-ready .fb-heading-mask.fb-visible .fb-heading-line-inner,
  .fb-motion-ready .fb-line-draw:before,
  .fb-motion-ready .fb-line-draw.fb-line-visible:before {
    transform: none !important;
    transition: none !important;
  }
  .fox-brand-front-page.fb-motion-ready .fb-hero-headline .fb-heading-line {
    opacity: 1 !important;
    transform: none !important;
  }
  .fox-brand-front-page.fb-motion-ready .fb-hero-headline .fb-heading-line:nth-child(2) .fb-heading-line-inner em { color: var(--fb-lime); }
  .fox-brand-front-page.fb-motion-ready .fb-hero-headline .fb-heading-line:nth-child(2):before,
  .fox-brand-front-page.fb-motion-ready .fb-hero-headline .fb-heading-line:nth-child(2):after { display: none !important; }
  .fb-motion-ready .fb-see-it-line.fb-see-it-ready {
    opacity: 1 !important;
    clip-path: none !important;
    transition: none !important;
  }
  .fb-motion-ready .fb-accent-callout.fb-accent-ready { color: var(--fb-lime) !important; transition: none !important; }
}

/* ---------- live client site viewer (web design page) ---------- */
/* The concept page's phone viewer, ported for live third party sites. The
   iframe scrolls itself here, so none of the stage/translate machinery the
   stored documents need is repeated. */
.fb-siteview { position: fixed; inset: 0; z-index: 3000; display: flex; align-items: center; justify-content: center; }
.fb-siteview[hidden] { display: none; }
.fb-siteview-backdrop { position: absolute; inset: 0; background: rgba(4, 5, 4, .88); backdrop-filter: blur(3px); }
.fb-siteview-inner { position: relative; z-index: 1; width: min(94vw, 420px); height: 100%; display: flex; flex-direction: column; gap: 10px; padding: 10px 0 14px; }
@media (min-width: 900px) {
  /* A handset on a big screen, not a full height column. */
  .fb-siteview-inner { height: min(92vh, 860px); width: min(92vw, 400px); }
}
.fb-siteview-bar { display: flex; align-items: center; gap: 12px; padding: 0 4px; }
.fb-siteview-title { flex: 1; min-width: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; color: var(--fb-paper); font-size: 10px; font-weight: 800; letter-spacing: .18em; text-transform: uppercase; }
.fb-siteview-title:focus { outline: none; }
/* Always present, never conditional: if the client ever blocks framing, this
   is the only thing standing between the visitor and a blank rectangle. */
.fb-siteview-open { flex: none; color: var(--fb-lime); font-size: 9.5px; font-weight: 700; letter-spacing: .12em; text-transform: uppercase; text-decoration: underline; text-underline-offset: 3px; }
.fb-siteview-x { flex: none; padding: 10px 16px; border: 0; background: var(--fb-lime); color: var(--fb-ink); font-size: 10px; font-weight: 800; letter-spacing: .16em; text-transform: uppercase; cursor: pointer; }
.fb-siteview-hint { margin: 0; padding: 0 8px; color: #97988f; font-size: 9px; letter-spacing: .14em; text-transform: uppercase; text-align: center; }
.fb-siteview-phone { position: relative; flex: 1; min-height: 0; border: 9px solid #161815; border-radius: 34px; background: #fff; box-shadow: 0 26px 70px rgba(0, 0, 0, .6); overflow: hidden; }
.fb-siteview-notch { position: absolute; top: 0; left: 50%; transform: translateX(-50%); z-index: 2; width: 104px; height: 20px; background: #161815; border-radius: 0 0 12px 12px; }
.fb-siteview-frame { display: block; width: 100%; height: 100%; border: 0; background: #fff; }
.fb-siteview-blocked { position: absolute; inset: 0; z-index: 1; display: grid; align-content: center; margin: 0; padding: 28px; background: #f0efe9; color: #10110f; font-size: 14px; line-height: 1.55; text-align: center; }
.fb-siteview-blocked[hidden] { display: none; }
.fb-siteview-xb { flex: none; align-self: center; width: 46px; height: 46px; margin-top: 2px; display: grid; place-items: center; border: 0; border-radius: 50%; background: var(--fb-lime); color: var(--fb-ink); cursor: pointer; transition: transform .18s ease, background .18s ease; }
.fb-siteview-xb:hover { transform: scale(1.07); background: var(--fb-paper); }
.fb-siteview-xb:active { transform: scale(.94); }
@media (prefers-reduced-motion: reduce) {
  .fb-siteview-xb { transition: none; }
  .fb-siteview-xb:hover, .fb-siteview-xb:active { transform: none; }
}
body.fb-siteview-open-state { overflow: hidden; }
/* The floating widgets sit at z-index 9999999, which no sane modal is going to
   outbid, and both land in the bottom corners: the reviews badge covers the
   close button under the phone and the accessibility button covers the other
   corner. Hide them for as long as the viewer is open rather than starting a
   z-index auction. They come straight back on close. */
body.fb-siteview-open-state .slide-in-position-container,
body.fb-siteview-open-state [class*="slide-in-popup"],
body.fb-siteview-open-state .userway_buttons_wrapper,
body.fb-siteview-open-state #userwayAccessibilityIcon { display: none !important; }

/* Short landscape screens need a height-aware display scale.
   The main responsive rules above are intentionally width-led, which works in
   portrait and on laptops. On an 844x390 phone, though, the Services H1 was
   still 96px and occupied 315px, or 81% of the viewport height. A later
   max-width rule also overrode the earlier homepage-only landscape fix.

   Keep this at the end of the stylesheet so every template-specific rule has
   already resolved. The caps use both vw and vh: width preserves the design's
   strong display type, while height prevents a short screen from becoming one
   oversized line of copy. */
@media (max-height: 500px) and (orientation: landscape) {
  .fb-page-hero,
  .fb-page-hero-split { padding-top: 44px; padding-bottom: 48px; }

  .fb-page-hero h1,
  .fb-page-hero-split h1,
  .fb-service-hero-copy h1,
  .fb-work-hero-grid h1,
  .fb-404-copy h1,
  .fb-review-hero-copy h1,
  .fb-review-privacy-hero h1,
  .fb-journal-hero h1,
  .fb-article-hero h1 {
    font-size: min(7vw, 14vh, 58px);
    line-height: .84;
  }

  .fb-service-hero { min-height: auto; }
  .fb-service-hero-copy { padding-top: 118px; padding-bottom: 54px; }

  .fb-intro h2,
  .fb-section-heading h2,
  .fb-client-carousel-heading h2,
  .fb-home-project-cta h2,
  .fb-architecture-callout h2,
  .fb-approach h2,
  .fb-supporting-services h2,
  .fb-architecture-definition h2,
  .fb-definition-row h2,
  .fb-capability-columns h2,
  .fb-video-feed-heading h2,
  .fb-team-heading h2,
  .fb-report-heading h2,
  .fb-commercial-category-heading h2,
  .fb-event-coverage-heading h2,
  .fb-video-project-heading h2,
  .fb-brandbook-heading h2,
  .fb-residential-heading h2,
  .fb-review-form-copy h2,
  .fb-review-concept-preview h2,
  .fb-review-included h2,
  .fb-review-example-report h2,
  .fb-review-concept-copy h2,
  .fb-review-process h2,
  .fb-review-proof h2,
  .fb-review-final h2,
  .fb-review-privacy-return h2,
  .fb-journal-card-featured h2,
  .fb-article-content h2 {
    font-size: min(6vw, 12vh, 52px);
    line-height: .88;
  }

  .fb-contact-band-link { padding-top: 58px; padding-bottom: 46px; }
  .fb-contact-band h2 {
    font-size: min(8vw, 16vh, 68px);
    line-height: .8;
  }
}
