/* marquee-strip — merged from the static build's app.css, source order preserved. */

body.seo-page .seo-page-strip { height: 86px; display: flex; align-items: center; overflow: hidden; border-top: 1px solid rgba(0,0,0,.1); border-bottom: 1px solid rgba(0,0,0,.1); background-color: #fff; background-image: var(--noise); }
.seo-strip__track { display: flex; width: max-content; align-items: center; gap: 80px; padding-right: 80px; animation: seo-strip-scroll 42s linear infinite; }
.seo-strip__track img { height: 24px; width: auto; flex: none; object-fit: contain; }
.digital-page-strip { height: 92px; margin-top: 120px; border-block: 1px solid rgba(0,0,0,.09); background: rgba(255,255,255,.34); }
.web-page-strip { height: 79px; border-block: 1px solid rgba(0,0,0,.08); background: rgba(255,255,255,.34); }
body.web-development-page .web-page-strip { height: 79px; overflow: hidden; border: 0; background: var(--wine); color: #fff; }
body.web-development-page .web-page-strip__track { display: flex; height: 100%; width: max-content; align-items: center; animation: wd-ticker 38s linear infinite; }
body.web-development-page .web-page-strip__set { display: flex; align-items: center; gap: 36px; padding-right: 36px; font-size: 16px; line-height: 17px; }
body.web-development-page .web-page-strip__set i { color: var(--coral); font-style: normal; font-size: 18px; line-height: 1; }
body.web-development-page .web-page-strip__set b { font-weight: 400; }
/* The frame runs the strip straight off the foot of the hero. */
body.digital-marketing-page .digital-page-strip { margin-top: 0; overflow: hidden; border-block: 1px solid rgba(0,0,0,.1); background-color: #fff; background-image: var(--noise); }
body.digital-marketing-page .digital-page-strip__track { display: flex; width: max-content; height: 100%; align-items: center; animation: dm-logo-ticker 30s linear infinite; }
body.digital-marketing-page .digital-page-strip__set { display: flex; align-items: center; gap: 80px; padding-right: 80px; }
body.digital-marketing-page .digital-page-strip__set i { display: block; height: var(--logo-h, 30px); width: calc(var(--ratio) * var(--logo-h, 30px)); flex: none; background-color: rgba(72,12,8,.5); -webkit-mask: var(--logo) center / contain no-repeat; mask: var(--logo) center / contain no-repeat; }
body.email-marketing-page .email-page-strip { height: 79px; overflow: hidden; border-block: 1px solid rgba(0,0,0,.1); background: var(--wine); color: #fff; }
body.email-marketing-page .email-page-strip__track { display: flex; width: max-content; height: 100%; align-items: center; animation: em-ticker 38s linear infinite; }
body.email-marketing-page .email-page-strip__set { display: flex; align-items: center; gap: 36px; padding-right: 36px; font-size: 14px; line-height: 17px; }
body.email-marketing-page .email-page-strip__set i { color: var(--coral); font-size: 20px; font-style: normal; line-height: 1; }
body.email-marketing-page .email-page-strip__set b { font-weight: 400; }
.seo-page .seo-page-strip { height: 86px; display: flex; align-items: center; overflow: hidden; border-top: 1px solid rgba(0,0,0,.1); border-bottom: 1px solid rgba(0,0,0,.1); background-color: #fff; background-image: var(--noise); }
.web-development-page .web-page-strip { height: 79px; overflow: hidden; border: 0; background: var(--wine); color: #fff; }
.web-development-page .web-page-strip__track { display: flex; height: 100%; width: max-content; align-items: center; animation: wd-ticker 38s linear infinite; }
.web-development-page .web-page-strip__set { display: flex; align-items: center; gap: 36px; padding-right: 36px; font-size: 16px; line-height: 17px; }
.web-development-page .web-page-strip__set i { color: var(--coral); font-style: normal; font-size: 18px; line-height: 1; }
.web-development-page .web-page-strip__set b { font-weight: 400; }
.digital-marketing-page .digital-page-strip { overflow: hidden; border-block: 1px solid rgba(0,0,0,.1); background-color: #fff; background-image: var(--noise); }
.digital-marketing-page .digital-page-strip__track { display: flex; width: max-content; height: 100%; align-items: center; animation: dm-logo-ticker 30s linear infinite; }
.digital-marketing-page .digital-page-strip__set { display: flex; align-items: center; gap: 80px; padding-right: 80px; }
.digital-marketing-page .digital-page-strip__set i { display: block; height: var(--logo-h, 30px); width: calc(var(--ratio) * var(--logo-h, 30px)); flex: none; background-color: rgba(72,12,8,.5); -webkit-mask: var(--logo) center / contain no-repeat; mask: var(--logo) center / contain no-repeat; }
.email-marketing-page .email-page-strip { height: 79px; overflow: hidden; border-block: 1px solid rgba(0,0,0,.1); background: var(--wine); color: #fff; }
.email-marketing-page .email-page-strip__track { display: flex; width: max-content; height: 100%; align-items: center; animation: em-ticker 38s linear infinite; }
.email-marketing-page .email-page-strip__set { display: flex; align-items: center; gap: 36px; padding-right: 36px; font-size: 14px; line-height: 17px; }
.email-marketing-page .email-page-strip__set i { color: var(--coral); font-size: 20px; font-style: normal; line-height: 1; }
.email-marketing-page .email-page-strip__set b { font-weight: 400; }

/* ---- page variants ---------------------------------------
 * Rules that only apply on digital-marketing, email-marketing, seo.
 * Kept scoped to the page exactly as the design wrote them; they live here
 * rather than in a stylesheet of their own so a page is not a unit of CSS. */

body.digital-marketing-page .is-tcboxes { --ratio: 3.7084; --logo: url("../../assets/img/logos/tcboxes.png"); }
body.digital-marketing-page .is-biggin { --ratio: 4.4; --logo: url("../../assets/img/logos/biggin.png"); }
body.digital-marketing-page .is-kawasaki { --ratio: 2.2995; --logo: url("../../assets/img/logos/kawasaki.png"); }
body.digital-marketing-page .is-jll { --ratio: 2.0582; --logo: url("../../assets/img/logos/jll.png"); }
body.digital-marketing-page .is-wirilda { --ratio: 2.9354; --logo: url("../../assets/img/logos/wirilda.png"); }
body.digital-marketing-page .is-national { --ratio: 4.23; --logo: url("../../assets/img/logos/national.png"); }
body.digital-marketing-page .is-zagame { --ratio: 3.35; --logo: url("../../assets/img/logos/zagame.png"); }
body.digital-marketing-page .is-farmgate { --ratio: 2.105; --logo: url("../../assets/img/logos/farmgate.png"); }
body.digital-marketing-page .is-phaseone { --ratio: 4.2495; --logo: url("../../assets/img/logos/phaseone.png"); }
.digital-marketing-page .is-tcboxes { --ratio: 3.7084; --logo: url("../../assets/img/logos/tcboxes.png"); }
.digital-marketing-page .is-biggin { --ratio: 4.4; --logo: url("../../assets/img/logos/biggin.png"); }
.digital-marketing-page .is-kawasaki { --ratio: 2.2995; --logo: url("../../assets/img/logos/kawasaki.png"); }
.digital-marketing-page .is-jll { --ratio: 2.0582; --logo: url("../../assets/img/logos/jll.png"); }
.digital-marketing-page .is-wirilda { --ratio: 2.9354; --logo: url("../../assets/img/logos/wirilda.png"); }
.digital-marketing-page .is-national { --ratio: 4.23; --logo: url("../../assets/img/logos/national.png"); }
.digital-marketing-page .is-zagame { --ratio: 3.35; --logo: url("../../assets/img/logos/zagame.png"); }
.digital-marketing-page .is-farmgate { --ratio: 2.105; --logo: url("../../assets/img/logos/farmgate.png"); }
.digital-marketing-page .is-phaseone { --ratio: 4.2495; --logo: url("../../assets/img/logos/phaseone.png"); }
.email-marketing-page .email-page-strip { height: 79px; overflow: hidden; border-block: 1px solid rgba(0,0,0,.1); background: var(--wine); color: #fff; }
.seo-page .seo-page-strip { height: 86px; display: flex; align-items: center; overflow: hidden; border-top: 1px solid rgba(0,0,0,.1); border-bottom: 1px solid rgba(0,0,0,.1); background-color: #fff; background-image: var(--noise); }


/* ---- social media marketing ---------------------------------------------
 * The same wine phrase ticker the email frame draws, at the sizes this one
 * uses: 14px labels, a larger coral mark, and 36 between every item. The band
 * is 79 tall — 31 of padding either side of a 17px line. */

.social-page-strip { height: 79px; overflow: hidden; border-block: 1px solid rgba(0,0,0,.1); background: var(--wine); color: #fff; }
.social-page-strip__track { display: flex; width: max-content; height: 100%; align-items: center; animation: smm-ticker 38s linear infinite; }
.social-page-strip__set { display: flex; align-items: center; gap: 36px; padding-right: 36px; font-size: 14px; line-height: 17px; }
.social-page-strip__set i { color: var(--coral); font-size: 19.65px; font-style: normal; letter-spacing: .786px; line-height: 1; }
.social-page-strip__set b { font-weight: 400; }

@keyframes smm-ticker { to { transform: translateX(-33.3333%); } }

@media (prefers-reduced-motion: reduce) {
	.social-page-strip__track { animation: none; }
}

/* Three repeated sets make a seamless shared ticker loop. */
@keyframes dm-logo-ticker { to { transform: translateX(-33.333333%); } }
@keyframes wd-ticker { to { transform: translateX(-33.333333%); } }
@keyframes em-ticker { to { transform: translateX(-33.333333%); } }
/* SEO renders two identical passes, including their trailing gap. */
@keyframes seo-strip-scroll { to { transform: translateX(-50%); } }
