:root{
  --us-bg:#FFFFFF; --us-surface:#F3F5F7; --us-ink:#181926; --us-muted:#5B6376;
  --us-line:#DCE0E6; --us-accent:#E61E26; --us-accent-dark:#C0161D; --us-deep:#274156;
  --us-r-sm:2px; --us-r-md:4px;
  --us-sp-xs:8px; --us-sp-sm:16px; --us-sp-md:32px; --us-sp-lg:64px; --us-sp-xl:104px;
  --us-head:'Archivo',system-ui,sans-serif; --us-body:'Barlow',system-ui,sans-serif;
}

/* ---------- base ---------- */
body.us-site{font-family:var(--us-body);font-size:17px;line-height:1.6;color:var(--us-ink);background:var(--us-bg);-webkit-font-smoothing:antialiased;}
.us-site h1,.us-site h2,.us-site h3,.us-site h4,.us-site h5{font-family:var(--us-head);color:var(--us-ink);font-weight:700;line-height:1.08;letter-spacing:-0.015em;margin:0 0 var(--us-sp-sm);}
.us-site p{margin:0 0 1.1em;}
.us-site p:last-child{margin-bottom:0;}
.us-site a{color:var(--us-deep);text-decoration:none;}
.us-site a:hover{color:var(--us-accent);}
.us-site img{max-width:100%;height:auto;}

/* ---------- layout bands ---------- */
.us-site .vc_row.us-band{padding:var(--us-sp-xl) 24px;margin:0;}
.us-site .vc_row.us-band>.vc_column_container{padding-left:14px;padding-right:14px;}
.us-band--surface{background:var(--us-surface);}
.us-band--navy{background:var(--us-deep);}
.us-band--ink{background:var(--us-ink);}
.us-band--navy,.us-band--ink{color:#fff;}
.us-band--navy h1,.us-band--navy h2,.us-band--navy h3,.us-band--ink h1,.us-band--ink h2,.us-band--ink h3{color:#fff;}
.us-band--tight{padding-top:var(--us-sp-lg);padding-bottom:var(--us-sp-lg);}
.us-wrap{max-width:1200px;margin:0 auto;}

/* ---------- type helpers ---------- */
.us-eyebrow{font-family:var(--us-head);font-weight:600;font-size:13px;letter-spacing:.12em;text-transform:uppercase;color:var(--us-accent);display:block;margin-bottom:14px;}
.us-band--navy .us-eyebrow,.us-band--ink .us-eyebrow{color:#FF5A60;}
.us-h1{font-size:clamp(38px,5.2vw,68px);line-height:1.04;letter-spacing:-0.025em;}
.us-h2{font-size:clamp(30px,3.4vw,44px);line-height:1.08;letter-spacing:-0.02em;}
.us-h3{font-size:clamp(20px,1.6vw,23px);line-height:1.2;}
.us-lead{font-size:19px;line-height:1.62;color:var(--us-muted);max-width:64ch;}
.us-band--navy .us-lead,.us-band--ink .us-lead{color:rgba(255,255,255,.78);}
.us-sechead{max-width:720px;margin:0 auto var(--us-sp-lg);text-align:center;}
.us-sechead .us-lead{margin-left:auto;margin-right:auto;}
.us-rule{width:56px;height:3px;background:var(--us-accent);border:0;margin:0 0 22px;}
.us-sechead .us-rule{margin-left:auto;margin-right:auto;}

/* ---------- buttons ---------- */
.us-btn{display:inline-block;font-family:var(--us-head);font-weight:600;font-size:14px;letter-spacing:.06em;text-transform:uppercase;padding:16px 30px;border-radius:var(--us-r-sm);border:1px solid transparent;transition:background .18s ease,color .18s ease,border-color .18s ease;cursor:pointer;}
.us-btn--primary{background:var(--us-accent);color:#fff!important;border-color:var(--us-accent);}
.us-btn--primary:hover{background:var(--us-accent-dark);border-color:var(--us-accent-dark);color:#fff!important;}
.us-btn--outline{background:transparent;color:var(--us-deep)!important;border-color:var(--us-deep);}
.us-btn--outline:hover{background:var(--us-deep);color:#fff!important;}
.us-band--navy .us-btn--outline,.us-band--ink .us-btn--outline,.us-hero .us-btn--outline{color:#fff!important;border-color:rgba(255,255,255,.6);}
.us-band--navy .us-btn--outline:hover,.us-band--ink .us-btn--outline:hover,.us-hero .us-btn--outline:hover{background:#fff;color:var(--us-deep)!important;border-color:#fff;}
.us-btns{display:flex;flex-wrap:wrap;gap:14px;margin-top:var(--us-sp-md);}

/* ---------- hero ---------- */
.us-hero{position:relative;padding:150px 24px 120px;background:var(--us-ink);overflow:hidden;}
.us-hero__bg{position:absolute;inset:0;background-size:cover;background-position:center;opacity:.34;}
.us-hero:after{content:'';position:absolute;inset:0;background:linear-gradient(90deg,rgba(24,25,38,.94) 0%,rgba(24,25,38,.82) 45%,rgba(39,65,86,.55) 100%);}
.us-hero__inner{position:relative;z-index:2;max-width:1200px;margin:0 auto;}
.us-hero__col{max-width:730px;}
.us-hero h1{color:#fff;font-size:clamp(34px,4.7vw,60px);line-height:1.12;letter-spacing:0.015em;margin-bottom:22px;}
.us-hero .us-lead{color:rgba(255,255,255,.8);font-size:20px;max-width:60ch;}
.us-hero__meta{display:flex;flex-wrap:wrap;gap:30px;margin-top:46px;padding-top:26px;border-top:1px solid rgba(255,255,255,.16);}
.us-hero__meta div{color:rgba(255,255,255,.62);font-size:14px;letter-spacing:.04em;text-transform:uppercase;font-family:var(--us-head);font-weight:500;}
.us-hero__meta strong{display:block;color:#fff;font-size:15px;letter-spacing:.02em;margin-top:4px;font-weight:700;}

/* ---------- logo wall ---------- */
.us-logos{display:grid;grid-template-columns:repeat(6,1fr);gap:1px;background:var(--us-line);border:1px solid var(--us-line);border-radius:var(--us-r-md);overflow:hidden;}
.us-logos div{background:#fff;display:flex;align-items:center;justify-content:center;padding:26px 18px;min-height:104px;}
.us-logos img{max-height:46px;width:auto;object-fit:contain;filter:grayscale(1);opacity:.62;transition:filter .2s ease,opacity .2s ease;}
.us-logos div:hover img{filter:grayscale(0);opacity:1;}

/* ---------- generic grid + cards ---------- */
.us-grid{display:grid;gap:26px;}
.us-grid--2{grid-template-columns:repeat(2,1fr);}
.us-grid--3{grid-template-columns:repeat(3,1fr);}
.us-grid--4{grid-template-columns:repeat(4,1fr);}
.us-card{background:#fff;border:1px solid var(--us-line);border-radius:var(--us-r-md);overflow:hidden;display:flex;flex-direction:column;transition:border-color .2s ease;}
.us-card:hover{border-color:var(--us-deep);}
.us-card__media{aspect-ratio:4/3;background:var(--us-surface) center/cover no-repeat;}
.us-card__body{padding:26px 24px 28px;flex:1;display:flex;flex-direction:column;}
.us-card__body h3{font-size:20px;margin-bottom:10px;}
.us-card__body p{font-size:15.5px;color:var(--us-muted);line-height:1.55;}
.us-card__link{margin-top:auto;padding-top:18px;font-family:var(--us-head);font-weight:600;font-size:13px;letter-spacing:.08em;text-transform:uppercase;color:var(--us-accent);}

/* ---------- split (about) ---------- */
.us-split{display:grid;grid-template-columns:1fr 1fr;gap:70px;align-items:center;}
.us-split__media img{width:100%;border-radius:var(--us-r-md);display:block;}

/* ---------- divisions ---------- */
.us-div{background:#fff;border:1px solid var(--us-line);border-top:3px solid var(--us-accent);border-radius:var(--us-r-md);padding:38px 32px 34px;display:flex;flex-direction:column;}
.us-div h3{font-size:22px;text-transform:uppercase;letter-spacing:.01em;margin-bottom:16px;}
.us-div ul{list-style:none;margin:0 0 26px;padding:0;}
.us-div li{position:relative;padding-left:22px;margin-bottom:11px;font-size:15.5px;color:var(--us-muted);line-height:1.5;}
.us-div li:before{content:'';position:absolute;left:0;top:9px;width:7px;height:7px;background:var(--us-accent);border-radius:1px;}
.us-div .us-card__link{margin-top:auto;}

/* ---------- why us ---------- */
.us-why{display:grid;grid-template-columns:repeat(2,1fr);gap:0;border-top:1px solid rgba(255,255,255,.14);border-left:1px solid rgba(255,255,255,.14);border-radius:var(--us-r-md);overflow:hidden;}
.us-why div{padding:38px 36px;border-right:1px solid rgba(255,255,255,.14);border-bottom:1px solid rgba(255,255,255,.14);}
.us-why h3{font-size:17px;text-transform:uppercase;letter-spacing:.05em;color:#fff;margin-bottom:10px;}
.us-why p{color:rgba(255,255,255,.72);font-size:15.5px;line-height:1.55;}
.us-why span{font-family:var(--us-head);font-size:13px;font-weight:700;color:var(--us-accent);display:block;margin-bottom:14px;letter-spacing:.1em;}

/* ---------- gigs ---------- */
.us-gigs{display:grid;grid-template-columns:repeat(4,1fr);gap:1px;background:var(--us-line);border:1px solid var(--us-line);border-radius:var(--us-r-md);overflow:hidden;}
.us-gigs div{background:#fff;padding:22px 20px;}
.us-gigs strong{display:block;font-family:var(--us-head);font-weight:700;font-size:16px;color:var(--us-ink);line-height:1.25;}
.us-gigs span{font-size:13px;color:var(--us-muted);letter-spacing:.06em;margin-top:5px;display:block;}

/* ---------- quotes ---------- */
.us-quotes{display:grid;grid-template-columns:repeat(3,1fr);gap:26px;}
.us-quote{background:#fff;border:1px solid var(--us-line);border-radius:var(--us-r-md);padding:32px 30px;display:flex;flex-direction:column;}
.us-quote:before{content:'';display:block;width:34px;height:3px;background:var(--us-accent);margin-bottom:20px;}
.us-quote p{font-size:16px;line-height:1.62;color:var(--us-ink);flex:1;}
.us-quote footer{margin-top:22px;padding-top:18px;border-top:1px solid var(--us-line);}
.us-quote strong{display:block;font-family:var(--us-head);font-size:15px;color:var(--us-ink);}
.us-quote span{font-size:14px;color:var(--us-muted);}

/* ---------- closing cta ---------- */
.us-cta{text-align:center;max-width:760px;margin:0 auto;}
.us-cta .us-btns{justify-content:center;}
.us-cta h2{color:#fff;}

/* ---------- responsive ---------- */
@media (max-width:1024px){
  .us-logos{grid-template-columns:repeat(4,1fr);}
  .us-gigs{grid-template-columns:repeat(3,1fr);}
  .us-grid--4{grid-template-columns:repeat(2,1fr);}
  .us-quotes{grid-template-columns:repeat(2,1fr);}
  .us-split{gap:44px;}
}
@media (max-width:782px){
  .us-site .vc_row.us-band{padding:var(--us-sp-lg) 20px;}
  .us-hero{padding:104px 20px 76px;}
  .us-grid--2,.us-grid--3,.us-grid--4,.us-quotes,.us-why,.us-split{grid-template-columns:1fr;}
  .us-logos{grid-template-columns:repeat(3,1fr);}
  .us-gigs{grid-template-columns:repeat(2,1fr);}
  .us-sechead{margin-bottom:var(--us-sp-md);}
  .us-hero__meta{gap:20px;}
  .us-btns .us-btn{width:100%;text-align:center;}
}

/* ---------- header chrome ---------- */
.us-site .branding img,.us-site .masthead .branding img{max-height:54px!important;width:auto!important;}
.us-site .masthead .main-nav>li>a .menu-text{font-family:var(--us-head);font-weight:600;font-size:14px;letter-spacing:.04em;text-transform:uppercase;}
.us-site .top-bar a:hover{color:var(--us-accent);}
.us-site #main{padding:0!important;}
.us-site .wf-wrap{max-width:100%!important;padding:0!important;}
.us-site .masthead .wf-wrap,.us-site .top-bar .wf-wrap,.us-site .footer .wf-wrap{max-width:1300px!important;padding-left:24px!important;padding-right:24px!important;}

/* ---------- whole-card click target ---------- */
.us-card{position:relative;}
.us-card .us-card__link{position:static;}
.us-card .us-card__link:after{content:'';position:absolute;inset:0;z-index:1;}
.us-card__media{transition:transform .35s ease;}
.us-card{overflow:hidden;}
.us-card:hover .us-card__media{transform:scale(1.04);}
/* stray empty paragraphs from the editor autop filter */
.us-site .wpb_text_column p:empty{display:none;margin:0;}
.us-site .wpb_text_column>.wpb_wrapper>p:empty{display:none;}

/* ---------- hero: let the row own the positioning context ---------- */
.us-site .vc_row.us-hero{position:relative;overflow:hidden;}
.us-site .us-hero .vc_column_container,.us-site .us-hero .vc_column-inner,.us-site .us-hero .wpb_wrapper,.us-site .us-hero .wpb_text_column,.us-site .us-hero .wpb_content_element{position:static!important;padding:0!important;margin:0!important;}
.us-site .us-hero .us-hero__bg{z-index:0;}
.us-site .us-hero:after{z-index:1;}
.us-site .us-hero .us-hero__inner{z-index:2;position:relative;}
/* band rows: kill builder padding so our own spacing rules */
.us-site .vc_row.us-band .vc_column-inner,.us-site .vc_row.us-band .wpb_text_column,.us-site .vc_row.us-band .wpb_content_element{padding-top:0!important;padding-bottom:0!important;margin-bottom:0!important;}
.us-site .vc_row.us-band>.vc_column_container>.vc_column-inner{max-width:1200px;margin:0 auto!important;}

/* ---------- hero scrim: guarantee AA text contrast over any photo ---------- */
.us-site .us-hero .us-hero__bg{opacity:1;}
.us-site .us-hero:after{background:linear-gradient(100deg,rgba(15,16,26,.96) 0%,rgba(18,20,32,.90) 38%,rgba(24,25,38,.70) 66%,rgba(39,65,86,.50) 100%);}
.us-site .us-hero h1{text-shadow:0 2px 24px rgba(0,0,0,.35);}
.us-site .us-hero .us-lead{color:rgba(255,255,255,.88);}
.us-site .us-hero__meta div{color:rgba(255,255,255,.7);}
/* even three-up meta strip instead of an awkward wrap */
.us-site .us-hero__meta{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:24px;max-width:640px;}
@media (max-width:782px){.us-site .us-hero__meta{grid-template-columns:1fr 1fr;}}

/* ---------- hero scrim as a real element (pseudo-elements collide with the builder clearfix) ---------- */
.us-site .us-hero .us-hero__scrim{position:absolute;inset:0;z-index:1;pointer-events:none;background:linear-gradient(100deg,rgba(13,14,22,.95) 0%,rgba(16,18,29,.90) 34%,rgba(20,22,34,.74) 58%,rgba(24,25,38,.55) 100%);}
.us-site .us-hero .us-hero__bg{position:absolute;inset:0;z-index:0;opacity:1;background-size:cover;background-position:center;}
.us-site .us-hero:after{background:none!important;}

/* ---------- mobile refinements ---------- */
@media (max-width:782px){
  .us-site .branding img,.us-site .masthead .branding img{max-height:40px!important;}
  .us-site .vc_row.us-hero{padding:76px 22px 56px!important;}
  .us-site .us-hero h1{font-size:29px;line-height:1.16;letter-spacing:0.012em;margin-bottom:16px;}
  .us-site .us-hero .us-lead{font-size:16px;line-height:1.55;}
  .us-site .us-hero__meta{margin-top:30px;padding-top:20px;gap:16px 20px;}
  .us-site .us-hero__meta div{font-size:11px;}
  .us-site .us-hero__meta strong{font-size:13px;}
  .us-site .us-btns{margin-top:26px;gap:10px;}
  .us-site .us-btn{padding:14px 22px;font-size:13px;}
  .us-site .us-h2{font-size:27px;}
  .us-site .us-lead{font-size:16px;}
  .us-site .vc_row.us-band{padding:56px 22px!important;}
}
@media (max-width:420px){
  .us-site .us-hero h1{font-size:26px;}
  .us-site .us-logos{grid-template-columns:repeat(2,1fr);}
  .us-site .us-gigs{grid-template-columns:1fr;}
}

/* ---------- footer ---------- */
.us-site .us-foot h4{font-family:var(--us-head);font-size:14px;font-weight:700;letter-spacing:.1em;text-transform:uppercase;color:#fff;margin:0 0 18px;}
.us-site .us-foot p{font-size:15px;line-height:1.6;color:rgba(255,255,255,.62);}
.us-site .us-foot ul{list-style:none;margin:0;padding:0;}
.us-site .us-foot li{margin-bottom:10px;font-size:15px;line-height:1.5;color:rgba(255,255,255,.62);}
.us-site .us-foot a{color:rgba(255,255,255,.72);}
.us-site .us-foot a:hover{color:var(--us-accent);}
.us-site .us-foot__cta{margin-top:20px;}
.us-site .us-foot__cta .us-btn{padding:13px 22px;font-size:13px;}
.us-site .footer{background:var(--us-footer,#181926)!important;}
.us-site .footer .widget{border:0!important;}

/* ================= full-bleed content + dark header ================= */
.us-site.us-fullwidth #main>.wf-wrap{width:100%!important;max-width:100%!important;margin:0!important;}
.us-site.us-fullwidth #main>.wf-wrap>.wf-container-main{width:100%!important;max-width:100%!important;}
.us-site.us-fullwidth .content,.us-site.us-fullwidth .wpb-content-wrapper{width:100%!important;max-width:100%!important;}
.us-site.us-fullwidth .vc_row.us-band,.us-site.us-fullwidth .vc_row.us-hero{width:100%!important;max-width:100%!important;margin-left:0!important;margin-right:0!important;}
.us-site.us-fullwidth .vc_row.us-band>.vc_column_container>.vc_column-inner{max-width:1200px;margin-left:auto!important;margin-right:auto!important;}
.us-site.us-fullwidth .us-hero__inner{max-width:1200px;margin-left:auto;margin-right:auto;}
@media (min-width:1700px){.us-site.us-fullwidth .vc_row.us-band,.us-site.us-fullwidth .vc_row.us-hero{padding-left:5vw;padding-right:5vw;}}
.us-site .masthead,.us-site .masthead.sticky-on .sticky-height,.us-site #phantom .masthead{background-color:#181926!important;}
.us-site .masthead .top-bar{background-color:#10111B!important;border-bottom:1px solid rgba(255,255,255,.10)!important;}
.us-site .masthead .top-bar a,.us-site .masthead .top-bar .mini-contacts{color:rgba(255,255,255,.72)!important;}
.us-site .masthead .top-bar a:hover{color:#E61E26!important;}
.us-site .masthead .main-nav>li>a,.us-site .masthead .main-nav>li>a .menu-text{color:#fff!important;}
.us-site .masthead .main-nav>li>a:hover .menu-text,.us-site .masthead .main-nav>li.act>a .menu-text{color:#E61E26!important;}
.us-site .masthead .mini-search .submit,.us-site .masthead .mini-search i,.us-site .masthead .soc-ico a{color:rgba(255,255,255,.8)!important;}
.us-site .masthead .sub-nav{background-color:#141521!important;border-color:rgba(255,255,255,.10)!important;}
.us-site .masthead .sub-nav li a{color:rgba(255,255,255,.75)!important;}
.us-site .masthead .sub-nav li a:hover{color:#fff!important;background-color:rgba(255,255,255,.06)!important;}
.us-site .masthead{border-bottom:1px solid rgba(255,255,255,.12)!important;box-shadow:none!important;}
.us-site .dt-mobile-header,.us-site .mobile-header-bar{background-color:#181926!important;}
.us-site .dt-mobile-menu-icon .lines,.us-site .dt-mobile-menu-icon .lines:before,.us-site .dt-mobile-menu-icon .lines:after{background-color:#fff!important;}
.us-site .dt-mobile-header .mobile-main-nav>li>a{color:#fff!important;}
.us-site .us-hero{border-top:0;}

/* ---------- logo sizing across header states ---------- */
.us-site .masthead .branding{display:flex;align-items:center;overflow:visible;}
.us-site .masthead .branding img{max-height:46px!important;width:auto!important;height:auto!important;object-fit:contain;}
.us-site .masthead.sticky-on .branding img,.us-site .masthead.fixed-masthead.sticky-on .branding img{max-height:38px!important;}
@media (max-width:782px){.us-site .masthead .branding img,.us-site .dt-mobile-header .branding img{max-height:34px!important;}}

/* ---------- mobile header logo ---------- */
.us-site .mobile-branding img,.us-site .dt-mobile-header .mobile-branding img,.us-site .sticky-mobile-logo-first-switch img,.us-site .sticky-mobile-logo-second-switch img{max-height:34px!important;width:auto!important;height:auto!important;}
.us-site .mobile-branding{display:flex;align-items:center;}
@media (max-width:420px){.us-site .mobile-branding img,.us-site .sticky-mobile-logo-first-switch img,.us-site .sticky-mobile-logo-second-switch img{max-height:30px!important;}}

/* ================= hero background film ================= */
.us-site .us-hero__video{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;z-index:0;opacity:0;transition:opacity 1s ease;pointer-events:none;border:0;}
.us-site .us-hero__video.is-ready{opacity:1;}
.us-site .us-hero .us-hero__scrim{background:linear-gradient(100deg,rgba(11,12,19,.96) 0%,rgba(14,15,25,.92) 36%,rgba(18,20,31,.80) 60%,rgba(24,25,38,.62) 100%);}
/* reduced-motion hide on the hero film removed by request */
@media (max-width:782px){.us-site .us-hero__video{display:none!important;}}

/* ================= client logo marquee ================= */
.us-site .us-marquee{position:relative;overflow:hidden;border-top:1px solid var(--us-line);border-bottom:1px solid var(--us-line);padding:0;}
.us-site .us-marquee{-webkit-mask-image:linear-gradient(90deg,transparent 0,#000 9%,#000 91%,transparent 100%);mask-image:linear-gradient(90deg,transparent 0,#000 9%,#000 91%,transparent 100%);}
.us-site .us-marquee__track{display:flex;width:max-content;animation:us-marquee-scroll 80s linear infinite;will-change:transform;}
.us-site .us-marquee__set{display:flex;flex:0 0 auto;}
.us-site .us-marquee__item{flex:0 0 180px;height:118px;display:flex;align-items:center;justify-content:center;padding:22px 26px;}
.us-site .us-marquee__item img{max-height:48px;max-width:100%;width:auto;object-fit:contain;filter:grayscale(1);opacity:.6;transition:filter .25s ease,opacity .25s ease;}
.us-site .us-marquee__item:hover img{filter:grayscale(0);opacity:1;}
@keyframes us-marquee-scroll{from{transform:translate3d(0,0,0);}to{transform:translate3d(-50%,0,0);}}
.us-site .us-marquee:hover .us-marquee__track,.us-site .us-marquee:focus-within .us-marquee__track{animation-play-state:paused;}
@media (max-width:1024px){.us-site .us-marquee__item{flex:0 0 158px;height:108px;padding:20px;}.us-site .us-marquee__item img{max-height:42px;}}
@media (max-width:782px){.us-site .us-marquee__item{flex:0 0 132px;height:94px;padding:16px;}.us-site .us-marquee__item img{max-height:36px;}.us-site .us-marquee__track{animation-duration:55s;}}
/* The reduced-motion stop on the marquee was removed by request: it also hid
   the duplicate set that makes the loop seamless, so the wall sat static. */

/* marquee: keep padding inside the declared item width so the visible count is predictable */
.us-site .us-marquee__item{box-sizing:border-box!important;flex:0 0 176px;}
@media (max-width:1024px){.us-site .us-marquee__item{flex:0 0 152px;}}
@media (max-width:782px){.us-site .us-marquee__item{flex:0 0 126px;}}

/* marquee: a touch more optical weight for the marks */
.us-site .us-marquee__item{height:112px;padding:20px 22px;}
.us-site .us-marquee__item img{max-height:54px;opacity:.66;}
@media (max-width:782px){.us-site .us-marquee__item{height:90px;padding:14px;}.us-site .us-marquee__item img{max-height:38px;}}

/* marquee on phones: run edge to edge so three marks fit instead of two */
@media (max-width:782px){.us-site .us-marquee{margin-left:-22px;margin-right:-22px;}}

/* ================= logo marquee: scaled up ================= */
.us-site .us-marquee__item{flex:0 0 212px;height:142px;padding:24px 26px;}
.us-site .us-marquee__item img{max-height:74px;opacity:.72;}
.us-site .us-marquee__track{animation-duration:95s;}
@media (max-width:1024px){.us-site .us-marquee__item{flex:0 0 180px;height:126px;padding:20px 22px;}.us-site .us-marquee__item img{max-height:62px;}}
@media (max-width:782px){.us-site .us-marquee__item{flex:0 0 140px;height:104px;padding:16px 18px;}.us-site .us-marquee__item img{max-height:48px;}.us-site .us-marquee__track{animation-duration:62s;}}

/* ================= logo marquee: scaled up again ================= */
.us-site .us-marquee__item{flex:0 0 230px;height:158px;padding:26px 18px;}
.us-site .us-marquee__item img{max-height:88px;opacity:.74;}
.us-site .us-marquee__track{animation-duration:103s;}
@media (max-width:1024px){.us-site .us-marquee__item{flex:0 0 196px;height:138px;padding:22px 16px;}.us-site .us-marquee__item img{max-height:74px;}}
@media (max-width:782px){.us-site .us-marquee__item{flex:0 0 146px;height:112px;padding:16px 14px;}.us-site .us-marquee__item img{max-height:54px;}.us-site .us-marquee__track{animation-duration:66s;}}

/* ================= photo-backed dark bands ================= */
.us-site .vc_row.us-band--photo{position:relative;overflow:hidden;background:var(--us-ink);}
.us-site .us-band--photo .vc_column_container,.us-site .us-band--photo .vc_column-inner,.us-site .us-band--photo .wpb_wrapper,.us-site .us-band--photo .wpb_text_column,.us-site .us-band--photo .wpb_content_element{position:static!important;max-width:100%!important;}
.us-site .us-band__bg{position:absolute;inset:0;background-size:cover;background-position:center;z-index:0;}
.us-site .us-band__scrim{position:absolute;inset:0;z-index:1;pointer-events:none;background:linear-gradient(180deg,rgba(13,14,22,.93) 0%,rgba(15,16,26,.88) 45%,rgba(13,14,22,.94) 100%);}
.us-site .us-band--navy .us-band__scrim{background:linear-gradient(180deg,rgba(26,42,56,.93) 0%,rgba(31,50,66,.88) 45%,rgba(24,38,51,.94) 100%);}
.us-site .us-band__inner{position:relative;z-index:2;max-width:1200px;margin:0 auto;}

/* ================= red section headings + rule ================= */
.us-site .us-h2{color:var(--us-accent);}
.us-site .us-band--navy .us-h2,.us-site .us-band--ink .us-h2,.us-site .us-band--photo .us-h2,.us-site .us-cta h2{color:#FF4A50;}
.us-site .us-sechead:before{content:'';display:block;width:64px;height:3px;background:var(--us-accent);margin:0 auto 24px;}
.us-site .us-band--photo .us-sechead:before,.us-site .us-band--navy .us-sechead:before,.us-site .us-band--ink .us-sechead:before{background:#FF4A50;}
.us-site .us-eyebrow{color:var(--us-deep);}
.us-site .us-band--navy .us-eyebrow,.us-site .us-band--ink .us-eyebrow,.us-site .us-band--photo .us-eyebrow{color:rgba(255,255,255,.62);}

/* ================= division cards on a dark ground ================= */
.us-site .us-band--photo .us-div{background:rgba(255,255,255,.055);border:1px solid rgba(255,255,255,.15);border-top:3px solid var(--us-accent);}
.us-site .us-band--photo .us-div h3{color:#fff;}
.us-site .us-band--photo .us-div li{color:rgba(255,255,255,.76);}
.us-site .us-band--photo .us-div li:before{background:#FF4A50;}
.us-site .us-band--photo .us-div .us-card__link{color:#FF4A50;}
.us-site .us-band--photo .us-why div{border-color:rgba(255,255,255,.16);}
.us-site .us-band--photo .us-why span{color:#FF4A50;}

/* closing CTA gets the same red rule as the other section heads */
.us-site .us-cta:before{content:'';display:block;width:64px;height:3px;background:#FF4A50;margin:0 auto 24px;}

/* ================= division cards, modernised ================= */
.us-site .us-band--photo .us-div{position:relative;display:flex;flex-direction:column;padding:38px 32px 32px;border:1px solid rgba(255,255,255,.14);border-top:1px solid rgba(255,255,255,.14);border-radius:var(--us-r-md);overflow:hidden;background:linear-gradient(180deg,rgba(255,255,255,.085) 0%,rgba(255,255,255,.028) 100%);transition:border-color .28s ease,transform .28s ease,background .28s ease;}
.us-site .us-band--photo .us-div:before{content:'';position:absolute;top:0;left:0;right:0;height:3px;background:linear-gradient(90deg,#E61E26 0%,#FF4A50 100%);}
.us-site .us-band--photo .us-div:hover{border-color:rgba(255,255,255,.32);transform:translateY(-4px);background:linear-gradient(180deg,rgba(255,255,255,.13) 0%,rgba(255,255,255,.05) 100%);}
.us-site .us-div__idx{display:block;font-family:var(--us-head);font-size:12px;font-weight:700;letter-spacing:.16em;color:#FF4A50;margin-bottom:14px;}
.us-site .us-band--photo .us-div h3{font-size:23px;line-height:1.15;text-transform:uppercase;letter-spacing:.005em;color:#fff;margin-bottom:22px;}
.us-site .us-band--photo .us-div ul{margin-bottom:30px;}
.us-site .us-band--photo .us-div li{position:relative;padding-left:21px;margin-bottom:13px;font-size:15.5px;line-height:1.5;color:rgba(255,255,255,.78);}
.us-site .us-band--photo .us-div li:before{content:'';position:absolute;left:0;top:8px;width:6px;height:6px;border-radius:1px;background:#FF4A50;}
.us-site .us-div__foot{margin-top:auto;}
.us-site .us-btn--sm{padding:12px 22px;font-size:12.5px;letter-spacing:.07em;}
.us-site .us-band--photo .us-div .us-btn--outline{border-color:rgba(255,255,255,.42);color:#fff!important;}
.us-site .us-band--photo .us-div:hover .us-btn--outline{border-color:#fff;}
.us-site .us-band--photo .us-div .us-btn--outline:hover{background:var(--us-accent);border-color:var(--us-accent);color:#fff!important;}
@media (prefers-reduced-motion:reduce){.us-site .us-band--photo .us-div{transition:none;}.us-site .us-band--photo .us-div:hover{transform:none;}}
@media (max-width:782px){.us-site .us-band--photo .us-div{padding:30px 24px 26px;}.us-site .us-band--photo .us-div h3{font-size:20px;}}

/* ================= division cards: larger ================= */
.us-site .us-band--photo .us-grid--3{gap:30px;}
.us-site .us-band--photo .us-div{padding:48px 38px 42px;min-height:452px;}
.us-site .us-band--photo .us-div:before{height:4px;}
.us-site .us-div__idx{font-size:13px;letter-spacing:.18em;margin-bottom:18px;}
.us-site .us-band--photo .us-div h3{font-size:27px;line-height:1.13;margin-bottom:26px;}
.us-site .us-band--photo .us-div ul{margin-bottom:36px;}
.us-site .us-band--photo .us-div li{font-size:16.5px;line-height:1.55;margin-bottom:15px;padding-left:23px;}
.us-site .us-band--photo .us-div li:before{width:7px;height:7px;top:9px;}
.us-site .us-band--photo .us-div .us-btn--sm{padding:15px 28px;font-size:13px;}
@media (max-width:1024px){.us-site .us-band--photo .us-div{padding:38px 30px 34px;min-height:0;}.us-site .us-band--photo .us-div h3{font-size:24px;}}
@media (max-width:782px){.us-site .us-band--photo .us-grid--3{gap:22px;}.us-site .us-band--photo .us-div{padding:34px 26px 30px;min-height:0;}.us-site .us-band--photo .us-div h3{font-size:22px;margin-bottom:20px;}.us-site .us-band--photo .us-div li{font-size:16px;}}

/* cards already equalise via grid stretch, so drop the forced min-height
   that was leaving a gap between the last bullet and the button */
.us-site .us-band--photo .us-div{min-height:0;}
.us-site .us-band--photo .us-div ul{margin-bottom:32px;}

/* ================= division brand lockups ================= */
.us-site .us-visually-hidden{position:absolute!important;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0 0 0 0);clip-path:inset(50%);white-space:nowrap;border:0;}
.us-site .us-band--photo .us-div .us-div__mark{display:flex;align-items:center;justify-content:center;min-height:74px;margin:0 0 26px;padding-bottom:26px;border-bottom:1px solid rgba(255,255,255,.14);}
.us-site .us-div__mark img{height:54px;width:auto;max-width:100%;object-fit:contain;display:block;}
.us-site .us-div__idx{display:none;}
.us-site .us-div__foot{margin-top:auto;display:flex;justify-content:center;}
@media (max-width:1024px){.us-site .us-div__mark img{height:46px;}.us-site .us-band--photo .us-div .us-div__mark{min-height:64px;margin-bottom:22px;padding-bottom:22px;}}
@media (max-width:782px){.us-site .us-div__mark img{height:44px;}}

/* ========= equipment cards: division-card treatment on a light ground ========= */
.us-site .us-card--panel{position:relative;display:flex;flex-direction:column;overflow:hidden;border:1px solid var(--us-line);border-radius:var(--us-r-md);background:linear-gradient(180deg,#FFFFFF 0%,#F6F8FA 100%);transition:border-color .28s ease,transform .28s ease;}
.us-site .us-card--panel:before{content:'';position:absolute;top:0;left:0;right:0;height:4px;z-index:3;background:linear-gradient(90deg,#E61E26 0%,#FF4A50 100%);}
.us-site .us-card--panel:hover{border-color:var(--us-deep);transform:translateY(-4px);}
.us-site .us-card--panel .us-card__media{aspect-ratio:4/3;margin-top:4px;}
.us-site .us-card--panel .us-card__body{flex:1;display:flex;flex-direction:column;text-align:center;padding:28px 24px 30px;}
.us-site .us-card--panel .us-card__body h3{font-size:21px;line-height:1.18;text-transform:uppercase;letter-spacing:.005em;color:var(--us-ink);margin-bottom:12px;}
.us-site .us-card--panel .us-card__body p{font-size:15.5px;line-height:1.55;color:var(--us-muted);margin-bottom:26px;}
.us-site .us-card__foot{margin-top:auto;display:flex;justify-content:center;}
.us-site .us-card--panel .us-card__foot .us-btn:after{content:'';position:absolute;inset:0;z-index:4;}
@media (prefers-reduced-motion:reduce){.us-site .us-card--panel{transition:none;}.us-site .us-card--panel:hover{transform:none;}}
@media (max-width:1024px){.us-site .us-card--panel .us-card__body{padding:24px 20px 26px;}.us-site .us-card--panel .us-card__body h3{font-size:19px;}}

/* equipment headings: reserve two lines so every description starts level */
.us-site .us-card--panel .us-card__body h3{font-size:19px;letter-spacing:.01em;min-height:calc(2 * 1.18em);display:flex;align-items:center;justify-content:center;margin-bottom:14px;}
@media (max-width:782px){.us-site .us-card--panel .us-card__body h3{min-height:0;display:block;}}

/* ================= comprehensive event services (tabs) ================= */
.us-site .us-tabs__nav{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px;max-width:920px;margin:0 auto 52px;}
.us-site .us-tabs__btn{font-family:var(--us-head);font-weight:600;font-size:15px;letter-spacing:.02em;padding:17px 18px;border-radius:var(--us-r-sm);border:1px solid rgba(255,255,255,.28);background:rgba(255,255,255,.94);color:var(--us-ink);cursor:pointer;transition:background .2s ease,color .2s ease,border-color .2s ease;}
.us-site .us-tabs__btn:hover{background:#fff;border-color:#fff;}
.us-site .us-tabs__btn.is-active{background:var(--us-accent);border-color:var(--us-accent);color:#fff;}
.us-site .us-tabs__btn:focus-visible{outline:2px solid #FF4A50;outline-offset:3px;}
.us-site .us-tabs__pane[hidden]{display:block;}
.us-site .us-tabs--ready .us-tabs__pane[hidden]{display:none;}
.us-site .us-tabs--ready .us-tabs__pane{animation:us-fade .35s ease both;}
@keyframes us-fade{from{opacity:0;transform:translateY(6px);}to{opacity:1;transform:none;}}
@media (prefers-reduced-motion:reduce){.us-site .us-tabs--ready .us-tabs__pane{animation:none;}}
.us-site .us-svc__head{display:flex;align-items:center;gap:44px;justify-content:center;margin-bottom:44px;flex-wrap:wrap;}
.us-site .us-svc__mark img{height:60px;width:auto;display:block;}
.us-site .us-svc__lines{list-style:none;margin:0;padding:0;max-width:620px;}
.us-site .us-svc__lines li{position:relative;padding-left:20px;margin-bottom:11px;font-size:16px;line-height:1.5;color:rgba(255,255,255,.76);}
.us-site .us-svc__lines li:last-child{margin-bottom:0;}
.us-site .us-svc__lines li:before{content:'';position:absolute;left:0;top:8px;width:6px;height:6px;border-radius:1px;background:#FF4A50;}
.us-site .us-svc__lines strong{color:#fff;font-weight:600;}
.us-site .us-svc__grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:22px;}
.us-site .us-svc__card{display:flex;flex-direction:column;background:rgba(255,255,255,.055);border:1px solid rgba(255,255,255,.13);border-radius:var(--us-r-md);overflow:hidden;padding:16px;transition:border-color .25s ease,background .25s ease;}
.us-site .us-svc__card:hover{border-color:rgba(255,255,255,.3);background:rgba(255,255,255,.1);}
.us-site .us-svc__media{aspect-ratio:4/3;border-radius:var(--us-r-sm);background:rgba(255,255,255,.06) center/cover no-repeat;}
.us-site .us-svc__body{padding:18px 6px 6px;text-align:center;}
.us-site .us-svc__body h4{font-family:var(--us-head);font-size:15px;font-weight:700;line-height:1.25;text-transform:uppercase;letter-spacing:.02em;color:#fff;margin:0 0 10px;}
.us-site .us-svc__body p{font-size:14px;line-height:1.5;color:rgba(255,255,255,.7);margin:0;}
@media (max-width:1024px){.us-site .us-svc__grid{grid-template-columns:repeat(2,minmax(0,1fr));}.us-site .us-svc__head{gap:28px;}}
@media (max-width:782px){.us-site .us-tabs__nav{grid-template-columns:1fr;gap:10px;margin-bottom:34px;}.us-site .us-svc__grid{grid-template-columns:1fr;}.us-site .us-svc__head{flex-direction:column;gap:22px;text-align:left;margin-bottom:32px;}.us-site .us-svc__mark img{height:48px;}}

/* ================= interior pages ================= */
.us-site .vc_row.us-phero-band{padding-top:120px!important;padding-bottom:104px!important;}
.us-site .us-phero{max-width:820px;}
.us-site .us-phero h1{color:#fff;font-size:clamp(34px,4.4vw,56px);line-height:1.05;letter-spacing:-0.025em;margin-bottom:20px;}
.us-site .us-phero .us-lead{color:rgba(255,255,255,.84);font-size:19px;max-width:62ch;}
@media (max-width:782px){.us-site .vc_row.us-phero-band{padding-top:76px!important;padding-bottom:60px!important;}.us-site .us-phero h1{font-size:30px;}}
.us-site .us-band:not(.us-band--photo):not(.us-band--navy):not(.us-band--ink) .us-why{border-top-color:var(--us-line);border-left-color:var(--us-line);}
.us-site .us-band:not(.us-band--photo):not(.us-band--navy):not(.us-band--ink) .us-why div{border-right-color:var(--us-line);border-bottom-color:var(--us-line);}
.us-site .us-band:not(.us-band--photo):not(.us-band--navy):not(.us-band--ink) .us-why h3{color:var(--us-ink);}
.us-site .us-band:not(.us-band--photo):not(.us-band--navy):not(.us-band--ink) .us-why p{color:var(--us-muted);}
.us-site .us-why--2{grid-template-columns:repeat(2,minmax(0,1fr));}
@media (max-width:782px){.us-site .us-why--2{grid-template-columns:1fr;}}
.us-site .us-faq{max-width:900px;margin:0 auto;}
.us-site .us-faq__group{margin-bottom:46px;}
.us-site .us-faq__group:last-child{margin-bottom:0;}
.us-site .us-faq__gh{font-size:15px;font-weight:700;letter-spacing:.12em;text-transform:uppercase;color:var(--us-deep);padding-bottom:14px;margin-bottom:8px;border-bottom:2px solid var(--us-accent);}
.us-site .us-faq__item{border-bottom:1px solid var(--us-line);}
.us-site .us-faq__item summary{cursor:pointer;list-style:none;padding:20px 40px 20px 0;position:relative;font-family:var(--us-head);font-weight:600;font-size:17px;line-height:1.35;color:var(--us-ink);}
.us-site .us-faq__item summary::-webkit-details-marker{display:none;}
.us-site .us-faq__item summary:after{content:'';position:absolute;right:8px;top:27px;width:11px;height:11px;border-right:2px solid var(--us-accent);border-bottom:2px solid var(--us-accent);transform:rotate(45deg);transition:transform .2s ease;}
.us-site .us-faq__item[open] summary:after{transform:rotate(-135deg);top:31px;}
.us-site .us-faq__item summary:hover{color:var(--us-accent);}
.us-site .us-faq__a{padding:0 40px 22px 0;font-size:16.5px;line-height:1.62;color:var(--us-muted);}
.us-site .us-faq__a ul{margin:10px 0 0;padding-left:20px;}
.us-site .us-faq__a li{margin-bottom:7px;}
.us-site .us-faq__a a{color:var(--us-accent);text-decoration:underline;}
.us-site .us-contact{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:1px;background:var(--us-line);border:1px solid var(--us-line);border-radius:var(--us-r-md);overflow:hidden;}
.us-site .us-contact>div{background:#fff;padding:34px 28px;}
.us-site .us-contact h3{font-size:13px;font-weight:700;letter-spacing:.12em;text-transform:uppercase;color:var(--us-accent);margin-bottom:12px;}
.us-site .us-contact p{font-size:16.5px;line-height:1.55;color:var(--us-ink);margin:0;}
.us-site .us-contact a{color:var(--us-ink);}
.us-site .us-contact a:hover{color:var(--us-accent);}
@media (max-width:1024px){.us-site .us-contact{grid-template-columns:repeat(2,minmax(0,1fr));}}
@media (max-width:600px){.us-site .us-contact{grid-template-columns:1fr;}}

/* ================= blog ================= */
.us-site .us-bloghero{position:relative;overflow:hidden;background:var(--us-ink);margin:0 0 64px;padding:104px 24px 92px;width:100vw;margin-left:calc(50% - 50vw);}
.us-site .us-bloghero__bg{position:absolute;inset:0;background-size:cover;background-position:center;z-index:0;}
.us-site .us-bloghero__scrim{position:absolute;inset:0;z-index:1;background:linear-gradient(100deg,rgba(13,14,22,.95) 0%,rgba(16,18,29,.9) 40%,rgba(24,25,38,.66) 100%);}
.us-site .us-bloghero__inner{position:relative;z-index:2;max-width:1200px;margin:0 auto;}
.us-site .us-bloghero h1{color:#fff;font-size:clamp(32px,4.2vw,52px);line-height:1.05;letter-spacing:-0.025em;margin-bottom:18px;max-width:18ch;}
.us-site .us-bloghero .us-lead{color:rgba(255,255,255,.82);max-width:60ch;}
.us-site.blog #main>.wf-wrap,.us-site.archive #main>.wf-wrap,.us-site.single-post #main>.wf-wrap{width:100%!important;max-width:100%!important;}
.us-site.blog .wf-container-main,.us-site.archive .wf-container-main,.us-site.single-post .wf-container-main{max-width:1200px;margin:0 auto;padding:0 24px;}
.us-site .blog-shortcode .post,.us-site #content .post{border-bottom:1px solid var(--us-line);padding-bottom:36px;margin-bottom:36px;background:transparent!important;}
.us-site #content .post .entry-title,.us-site #content .post .entry-title a{font-family:var(--us-head);font-weight:700;font-size:25px;line-height:1.2;letter-spacing:-0.01em;color:var(--us-ink)!important;}
.us-site #content .post .entry-title a:hover{color:var(--us-accent)!important;}
.us-site .entry-meta,.us-site .entry-meta a{font-family:var(--us-head);font-size:12.5px;font-weight:600;letter-spacing:.08em;text-transform:uppercase;color:var(--us-muted)!important;}
.us-site .entry-meta a:hover{color:var(--us-accent)!important;}
.us-site #content .post .entry-excerpt,.us-site #content .post .entry-content p{font-size:16.5px;line-height:1.62;color:var(--us-muted);}
.us-site .post .more-link,.us-site .post .details{font-family:var(--us-head);font-weight:600;font-size:12.5px;letter-spacing:.08em;text-transform:uppercase;color:var(--us-accent)!important;}
.us-site .blog-media img,.us-site .post-thumbnail img{border-radius:var(--us-r-md);}
.us-site.single-post .entry-content{max-width:760px;margin:0 auto;font-size:17.5px;line-height:1.72;color:var(--us-ink);}
.us-site.single-post .entry-content p{margin:0 0 1.35em;}
.us-site.single-post .entry-content h2{font-size:30px;margin:2em 0 .6em;color:var(--us-ink);}
.us-site.single-post .entry-content h3{font-size:22px;margin:1.8em 0 .5em;color:var(--us-ink);}
.us-site.single-post .entry-content img{border-radius:var(--us-r-md);height:auto;margin:1.4em 0;}
.us-site.single-post .entry-content ul,.us-site.single-post .entry-content ol{margin:0 0 1.35em;padding-left:22px;}
.us-site.single-post .entry-content li{margin-bottom:.5em;}
.us-site.single-post .entry-content a{color:var(--us-accent);text-decoration:underline;}
.us-site.single-post h1.entry-title{font-size:clamp(30px,3.6vw,44px);line-height:1.1;letter-spacing:-0.02em;max-width:900px;}
.us-site .us-postmeta-top{max-width:760px;margin:0 auto 22px;}
.us-site .us-backlink{font-family:var(--us-head);font-weight:600;font-size:12.5px;letter-spacing:.08em;text-transform:uppercase;color:var(--us-accent);}
@media (max-width:782px){.us-site .us-bloghero{padding:72px 22px 60px;margin-bottom:44px;}.us-site .us-bloghero h1{font-size:29px;}}

/* single post header */
.us-site .us-postheader{max-width:760px;margin:0 auto 34px;padding-top:40px;}
.us-site .us-postheader .us-backlink{display:inline-block;margin-bottom:20px;}
.us-site .us-posttitle{font-family:var(--us-head);font-weight:700;font-size:clamp(29px,3.4vw,42px);line-height:1.1;letter-spacing:-0.02em;color:var(--us-ink);margin:0 0 16px;}
.us-site .us-postmeta{display:flex;gap:18px;align-items:center;margin:0;font-family:var(--us-head);font-size:12.5px;font-weight:600;letter-spacing:.08em;text-transform:uppercase;color:var(--us-muted);}
.us-site .us-postmeta span:first-child{color:var(--us-accent);}
.us-site .us-postmeta span+span{position:relative;padding-left:18px;}
.us-site .us-postmeta span+span:before{content:'';position:absolute;left:0;top:50%;width:6px;height:1px;background:var(--us-line);}
.us-site.single-post .post .entry-meta{display:none;}
@media (max-width:782px){.us-site .us-postheader{padding-top:26px;margin-bottom:26px;}}

/* blog hero: keep its padding inside the 100vw width */
.us-site .us-bloghero{box-sizing:border-box;}
.us-site .us-bloghero__inner{box-sizing:border-box;}

/* ================= gigs: filter chips + project grid ================= */
.us-site .us-chips{display:flex;flex-wrap:wrap;gap:10px;justify-content:center;margin:0 0 44px;}
.us-site .us-chip{font-family:var(--us-head);font-weight:600;font-size:13.5px;letter-spacing:.02em;padding:11px 18px;border-radius:999px;border:1px solid var(--us-line);background:#fff;color:var(--us-ink);cursor:pointer;transition:background .2s ease,border-color .2s ease,color .2s ease;}
.us-site .us-chip span{display:inline-block;margin-left:7px;font-size:11.5px;color:var(--us-muted);}
.us-site .us-chip:hover{border-color:var(--us-deep);}
.us-site .us-chip.is-active{background:var(--us-accent);border-color:var(--us-accent);color:#fff;}
.us-site .us-chip.is-active span{color:rgba(255,255,255,.75);}
.us-site .us-chip:focus-visible{outline:2px solid var(--us-accent);outline-offset:3px;}
/* Filtered-out cards. The cards set their own display (flex), which would
   otherwise override the browser's default for the hidden attribute. */
.us-site [data-us-filter] [hidden]{display:none!important;}
.us-site .us-giggrid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:26px;}
.us-site .us-gig{position:relative;display:flex;flex-direction:column;overflow:hidden;border:1px solid var(--us-line);border-radius:var(--us-r-md);background:linear-gradient(180deg,#FFFFFF 0%,#F6F8FA 100%);transition:border-color .28s ease,transform .28s ease;}
.us-site .us-gig:before{content:'';position:absolute;top:0;left:0;right:0;height:4px;z-index:3;background:linear-gradient(90deg,#E61E26 0%,#FF4A50 100%);}
.us-site .us-gig:hover{border-color:var(--us-deep);transform:translateY(-4px);}
.us-site .us-gig__media{position:relative;aspect-ratio:16/10;margin-top:4px;background:var(--us-surface) center/cover no-repeat;transition:transform .4s ease;}
.us-site .us-gig:hover .us-gig__media{transform:scale(1.04);}
.us-site .us-gig__year{position:absolute;top:14px;left:14px;z-index:2;font-family:var(--us-head);font-weight:700;font-size:12.5px;letter-spacing:.08em;color:#fff;background:rgba(13,14,22,.78);padding:7px 12px;border-radius:var(--us-r-sm);}
.us-site .us-gig__body{flex:1;display:flex;flex-direction:column;padding:24px 22px 26px;}
.us-site .us-gig__cat{font-family:var(--us-head);font-weight:600;font-size:11.5px;letter-spacing:.12em;text-transform:uppercase;color:var(--us-accent);margin-bottom:10px;}
.us-site .us-gig__body h3{font-size:20px;line-height:1.2;letter-spacing:-0.01em;color:var(--us-ink);margin:0 0 10px;}
.us-site .us-gig__place{font-size:14.5px;line-height:1.45;color:var(--us-ink);margin:0 0 12px;font-weight:500;}
.us-site .us-gig__svc{font-size:14px;line-height:1.5;color:var(--us-muted);margin:auto 0 0;padding-top:12px;border-top:1px solid var(--us-line);}
.us-site .us-gigempty{text-align:center;color:var(--us-muted);padding:40px 0;}
@media (prefers-reduced-motion:reduce){.us-site .us-gig,.us-site .us-gig__media{transition:none;}.us-site .us-gig:hover{transform:none;}.us-site .us-gig:hover .us-gig__media{transform:none;}}
@media (max-width:1024px){.us-site .us-giggrid{grid-template-columns:repeat(2,minmax(0,1fr));}}
@media (max-width:782px){.us-site .us-giggrid{grid-template-columns:1fr;gap:20px;}.us-site .us-chips{gap:8px;margin-bottom:32px;}.us-site .us-chip{font-size:12.5px;padding:9px 14px;}}

/* ================= larger logo ================= */
.us-site .masthead .branding img{max-height:66px!important;}
.us-site .masthead.sticky-on .branding img,.us-site .masthead.fixed-masthead.sticky-on .branding img{max-height:52px!important;}
.us-site .masthead .branding{min-height:66px;}
.us-site .mobile-branding img,.us-site .dt-mobile-header .mobile-branding img,.us-site .sticky-mobile-logo-first-switch img,.us-site .sticky-mobile-logo-second-switch img{max-height:46px!important;}
@media (max-width:782px){.us-site .masthead .branding img{max-height:46px!important;}.us-site .masthead .branding{min-height:0;}}
@media (max-width:420px){.us-site .mobile-branding img,.us-site .sticky-mobile-logo-first-switch img,.us-site .sticky-mobile-logo-second-switch img{max-height:40px!important;}}

/* ================= dropdown indicator on parent menu items ================= */
.us-site .masthead .main-nav>li.menu-item-has-children>a .menu-text:after{content:'';display:inline-block;width:6px;height:6px;margin-left:9px;vertical-align:middle;border-right:2px solid currentColor;border-bottom:2px solid currentColor;transform:translateY(-2px) rotate(45deg);transition:transform .22s ease,opacity .22s ease;opacity:.7;}
.us-site .masthead .main-nav>li.menu-item-has-children:hover>a .menu-text:after,
.us-site .masthead .main-nav>li.menu-item-has-children>a[aria-expanded="true"] .menu-text:after{transform:translateY(1px) rotate(-135deg);opacity:1;}
.us-site .dt-mobile-header .mobile-main-nav>li.menu-item-has-children>a .menu-text:after{content:'';display:inline-block;width:6px;height:6px;margin-left:9px;vertical-align:middle;border-right:2px solid currentColor;border-bottom:2px solid currentColor;transform:translateY(-2px) rotate(45deg);opacity:.7;}

/* ================= header action buttons ================= */
.us-site .masthead .mini-widgets .microwidget-btn{font-family:var(--us-head)!important;font-weight:600!important;letter-spacing:.06em!important;text-transform:uppercase!important;border-radius:var(--us-r-sm)!important;border:1px solid transparent!important;transition:background .2s ease,border-color .2s ease,color .2s ease!important;line-height:1.1!important;white-space:nowrap;}
.us-site .masthead .mini-widgets .microwidget-btn span{letter-spacing:.06em;}
.us-site .masthead .header-elements-button-1{background:#FFFFFF!important;color:var(--us-ink)!important;border-color:#FFFFFF!important;font-size:12.5px!important;padding:13px 20px!important;}
.us-site .masthead .header-elements-button-1:hover{background:var(--us-surface)!important;border-color:var(--us-surface)!important;color:var(--us-ink)!important;}
.us-site .masthead .header-elements-button-2{background:var(--us-accent)!important;color:#FFFFFF!important;border-color:var(--us-accent)!important;font-size:13.5px!important;padding:15px 26px!important;}
.us-site .masthead .header-elements-button-2:hover{background:var(--us-accent-dark)!important;border-color:var(--us-accent-dark)!important;color:#FFFFFF!important;}
.us-site .masthead .mini-widgets>*+*{margin-left:12px;}
.us-site .masthead .mini-widgets{display:flex;align-items:center;}
@media (max-width:1100px){.us-site .masthead .header-elements-button-1,.us-site .masthead .header-elements-button-2{font-size:12px!important;padding:12px 16px!important;}}
.us-site .dt-mobile-header .microwidget-btn{display:block!important;text-align:center;margin:10px 0 0!important;padding:15px 20px!important;font-size:13px!important;}
.us-site .dt-mobile-header .header-elements-button-1{background:#fff!important;color:var(--us-ink)!important;}
.us-site .dt-mobile-header .header-elements-button-2{background:var(--us-accent)!important;color:#fff!important;}

/* header buttons: the theme paints a gradient image over the background colour */
.us-site .masthead .mini-widgets .microwidget-btn,
.us-site .dt-mobile-header .microwidget-btn{background-image:none!important;}
.us-site .masthead .mini-widgets .microwidget-btn:before,
.us-site .masthead .mini-widgets .microwidget-btn:after{display:none!important;background:none!important;}
.us-site .masthead .header-elements-button-1,
.us-site .masthead .header-elements-button-1 span{color:var(--us-ink)!important;}
.us-site .masthead .header-elements-button-2,
.us-site .masthead .header-elements-button-2 span{color:#FFFFFF!important;}
.us-site .masthead .header-elements-button-1:hover span{color:var(--us-ink)!important;}
.us-site .masthead .header-elements-button-2:hover span{color:#FFFFFF!important;}

/* ================= recent gigs reel ================= */
.us-site .us-reel__head{display:flex;align-items:center;justify-content:space-between;gap:24px;margin-bottom:38px;}
.us-site .us-reel__head .us-h2{margin:0;font-style:italic;text-transform:uppercase;letter-spacing:-0.01em;}
.us-site .us-reel__nav{display:flex;gap:10px;flex:0 0 auto;}
.us-site .us-reel__btn{position:relative;width:46px;height:46px;border-radius:999px;border:1px solid var(--us-deep);background:var(--us-deep);cursor:pointer;transition:background .2s ease,border-color .2s ease,opacity .2s ease;}
.us-site .us-reel__btn:hover:not(:disabled){background:var(--us-accent);border-color:var(--us-accent);}
.us-site .us-reel__btn:disabled{opacity:.3;cursor:default;}
.us-site .us-reel__btn:focus-visible{outline:2px solid var(--us-accent);outline-offset:3px;}
.us-site .us-reel__btn:before{content:'';position:absolute;top:50%;left:50%;width:8px;height:8px;border-top:2px solid #fff;border-right:2px solid #fff;}
.us-site .us-reel__btn[data-dir="next"]:before{transform:translate(-65%,-50%) rotate(45deg);}
.us-site .us-reel__btn[data-dir="prev"]:before{transform:translate(-35%,-50%) rotate(-135deg);}
.us-site .us-reel__track{display:flex;gap:26px;overflow-x:auto;scroll-snap-type:x mandatory;scroll-behavior:smooth;padding-bottom:8px;scrollbar-width:none;-ms-overflow-style:none;}
.us-site .us-reel__track::-webkit-scrollbar{display:none;}
.us-site .us-reel__card{flex:0 0 clamp(230px,24%,290px);scroll-snap-align:start;}
.us-site .us-reel__media{position:relative;background:var(--us-surface);border:1px solid var(--us-line);border-radius:var(--us-r-md);padding:16px;margin-bottom:18px;}
.us-site .us-reel__media img{display:block;width:100%;aspect-ratio:4/3;object-fit:cover;border-radius:var(--us-r-sm);}
.us-site .us-reel__go{position:absolute;right:-6px;bottom:-6px;width:48px;height:48px;border-radius:999px;background:var(--us-accent);color:#fff;display:flex;align-items:center;justify-content:center;transition:background .2s ease,transform .2s ease;}
.us-site .us-reel__go svg{width:20px;height:20px;}
.us-site .us-reel__go:hover{background:var(--us-accent-dark);transform:translate(2px,-2px);color:#fff;}
.us-site .us-reel__card h3{font-size:17px;line-height:1.2;font-style:italic;text-transform:uppercase;letter-spacing:.005em;color:var(--us-ink);margin:0 0 6px;}
.us-site .us-reel__year{font-family:var(--us-head);font-weight:600;font-size:15px;color:var(--us-accent);}
@media (prefers-reduced-motion:reduce){.us-site .us-reel__track{scroll-behavior:auto;}.us-site .us-reel__go:hover{transform:none;}}
@media (max-width:782px){.us-site .us-reel__head{margin-bottom:26px;}.us-site .us-reel__card{flex:0 0 74%;}.us-site .us-reel__btn{width:42px;height:42px;}}

/* ================= client reviews ================= */
.us-site .us-phero--center{max-width:900px;margin-left:auto;margin-right:auto;text-align:center;}
.us-site .us-phero--center .us-lead{margin-left:auto;margin-right:auto;}
.us-site .us-phero--center .us-btns{justify-content:center;}
.us-site .us-reviews{column-count:2;column-gap:30px;}
.us-site .us-review{display:block;break-inside:avoid;-webkit-column-break-inside:avoid;page-break-inside:avoid;background:#fff;border:1px solid var(--us-line);border-radius:var(--us-r-md);padding:30px;margin:0 0 30px;box-sizing:border-box;}
.us-site .us-review[hidden]{display:none;}
.us-site .us-review__head{display:flex;align-items:center;gap:18px;margin-bottom:20px;}
.us-site .us-review__mark{flex:0 0 auto;width:44px;height:31px;fill:var(--us-accent);}
.us-site .us-review__who{min-width:0;}
.us-site .us-review__who strong{display:block;font-family:var(--us-head);font-weight:600;font-size:17px;line-height:1.25;color:var(--us-ink);}
.us-site .us-review__who span{display:block;margin-top:3px;font-size:13.5px;line-height:1.35;color:var(--us-muted);}
.us-site blockquote.us-review__body{margin:0!important;padding:0!important;border:0!important;background:none!important;box-shadow:none!important;font-size:inherit;}
.us-site .us-review__body:before,.us-site .us-review__body:after{content:none;display:none;}
.us-site .us-review__body p{margin:0;font-size:15.5px;line-height:1.66;font-style:italic;color:rgba(24,25,38,.82);}
@media (max-width:900px){.us-site .us-reviews{column-count:1;column-gap:0;}
.us-site .us-review{padding:24px 22px;margin-bottom:22px;}
.us-site .us-review__head{gap:14px;margin-bottom:16px;}
.us-site .us-review__mark{width:36px;height:25px;}
.us-site .us-review__who strong{font-size:16px;}}

/* ================= rentals: category tiles ================= */
.us-site .us-cats{display:grid;grid-template-columns:repeat(2,1fr);gap:26px;}
.us-site .us-cat{position:relative;min-height:330px;display:flex;align-items:flex-end;border-radius:var(--us-r-md);overflow:hidden;background:var(--us-deep) center/cover no-repeat;}
.us-site .us-cat:before{content:'';position:absolute;inset:0;background:linear-gradient(205deg,rgba(230,30,38,.72) 0%,rgba(198,24,31,.80) 42%,rgba(20,21,32,.90) 100%);}
.us-site .us-cat:after{content:'';position:absolute;inset:0;background:linear-gradient(0deg,rgba(15,16,25,.55) 0%,rgba(15,16,25,0) 55%);}
.us-site .us-cat__in{position:relative;padding:34px 32px 32px;color:#fff;}
.us-site .us-cat__in h3{font-family:var(--us-head);font-weight:700;font-size:clamp(20px,2vw,25px);letter-spacing:.01em;text-transform:uppercase;color:#fff;margin:0 0 12px;}
.us-site .us-cat__in p{font-size:15px;line-height:1.6;color:rgba(255,255,255,.9);margin:0 0 20px;max-width:46ch;}
.us-site .us-cat__n{display:block;margin-top:14px;font-family:var(--us-head);font-size:12.5px;letter-spacing:.08em;text-transform:uppercase;color:rgba(255,255,255,.72);}
@media (max-width:820px){.us-site .us-cats{grid-template-columns:1fr;gap:20px;}
.us-site .us-cat{min-height:270px;}
.us-site .us-cat__in{padding:26px 22px 24px;}}

/* ================= gear: spec lists, plain why grid, crumb ================= */
.us-site .us-specs{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:1fr 1fr;gap:16px 34px;}
.us-site .us-specs--2{grid-template-columns:1fr 1fr;}
.us-site .us-specs li{margin:0;padding:16px 0 0;border-top:1px solid var(--us-line);}
.us-site .us-specs strong{display:block;font-family:var(--us-head);font-weight:600;font-size:16px;line-height:1.3;color:var(--us-ink);}
.us-site .us-specs span{display:block;margin-top:5px;font-size:14.5px;line-height:1.55;color:var(--us-muted);}
.us-site .us-band--ink .us-specs li{border-top-color:rgba(255,255,255,.22);}
.us-site .us-band--ink .us-specs strong{color:#fff;}
.us-site .us-band--ink .us-specs span{color:rgba(255,255,255,.76);}
.us-site .us-specs__h{font-family:var(--us-head);font-weight:600;font-size:18px;letter-spacing:.01em;margin:0 0 22px;color:var(--us-ink);}
.us-site .us-band--ink .us-specs__h{color:#fff;}
.us-site .us-why--plain > div > span{display:none;}
.us-site .us-crumb{text-align:center;font-size:13px;letter-spacing:.04em;text-transform:uppercase;color:var(--us-muted);margin:0 0 34px;}
.us-site .us-crumb a{color:var(--us-muted);text-decoration:none;}
.us-site .us-crumb a:hover{color:var(--us-accent);}
.us-site .us-crumb span{margin:0 9px;color:var(--us-line);}
.us-site .us-crumb > span:last-child{margin:0;color:var(--us-ink);}
@media (max-width:820px){.us-site .us-specs,.us-site .us-specs--2{grid-template-columns:1fr;gap:14px;}
.us-site .us-crumb{font-size:11.5px;margin-bottom:26px;}}

/* ================= contact form ================= */
.us-site .us-fgrid{display:grid;grid-template-columns:minmax(0,1.6fr) minmax(0,1fr);gap:56px;align-items:start;}
.us-site .us-fgrid__main .us-h2{text-align:left;}
.us-site .us-fgrid__main .us-lead{margin:0 0 30px;max-width:56ch;}
.us-site .us-fside{background:var(--us-surface);border:1px solid var(--us-line);border-radius:var(--us-r-md);padding:30px 28px;}
.us-site .us-fside h3{font-family:var(--us-head);font-weight:700;font-size:18px;letter-spacing:.02em;text-transform:uppercase;margin:0 0 22px;color:var(--us-ink);}
.us-site .us-fside__item{padding:16px 0 0;border-top:1px solid var(--us-line);margin-top:16px;}
.us-site .us-fside__item:first-of-type{border-top:0;margin-top:0;padding-top:0;}
.us-site .us-fside__item span{display:block;font-family:var(--us-head);font-size:12px;letter-spacing:.09em;text-transform:uppercase;color:var(--us-muted);margin-bottom:6px;}
.us-site .us-fside__item p{margin:0;font-size:15.5px;line-height:1.55;color:var(--us-ink);}
.us-site .us-fside__item a{color:var(--us-ink);text-decoration:none;}
.us-site .us-fside__item a:hover{color:var(--us-accent);}
@media (max-width:900px){.us-site .us-fgrid{grid-template-columns:1fr;gap:34px;}
.us-site .us-fside{padding:24px 22px;}}

/* ---------- fluent forms skin ---------- */
.us-site .fluentform .ff-el-group{margin-bottom:22px;}
.us-site .fluentform .ff-el-input--label label{font-family:var(--us-head);font-weight:600;font-size:14px;letter-spacing:.01em;color:var(--us-ink);margin-bottom:8px;}
.us-site .fluentform .ff-el-is-required.asterisk-right label:after{color:var(--us-accent);margin-left:4px;}
.us-site .fluentform input[type=text],.us-site .fluentform input[type=email],.us-site .fluentform input[type=tel],.us-site .fluentform input[type=url],.us-site .fluentform input[type=number],.us-site .fluentform select,.us-site .fluentform textarea{width:100%;box-sizing:border-box;font-family:var(--us-body);font-size:15.5px;line-height:1.5;color:var(--us-ink);background:#fff;border:1px solid var(--us-line);border-radius:var(--us-r-md);padding:13px 15px;box-shadow:none;transition:border-color .18s ease,box-shadow .18s ease;height:auto;}
.us-site .fluentform textarea{min-height:140px;resize:vertical;}
.us-site .fluentform input:focus,.us-site .fluentform select:focus,.us-site .fluentform textarea:focus{border-color:var(--us-accent);box-shadow:0 0 0 3px rgba(230,30,38,.14);outline:none;}
.us-site .fluentform ::placeholder{color:#9AA1AE;opacity:1;}
.us-site .fluentform .ff-el-form-check{display:flex;align-items:flex-start;gap:10px;}
.us-site .fluentform .ff-el-form-check label{font-size:14.5px;line-height:1.5;color:var(--us-muted);font-family:var(--us-body);}
.us-site .fluentform .ff-el-help-message{font-size:13px;color:var(--us-muted);}
.us-site .fluentform .ff-el-help-message a{color:var(--us-accent);}
.us-site .fluentform .text-danger,.us-site .fluentform .error{color:var(--us-accent-dark);font-size:13.5px;}

.us-site .fluentform .ff-btn-submit,.us-site .fluentform button[type=submit]{font-family:var(--us-head);font-weight:600;font-size:14px;letter-spacing:.06em;text-transform:uppercase;background:var(--us-accent)!important;background-image:none!important;border:1px solid var(--us-accent)!important;color:#fff!important;border-radius:var(--us-r-md);padding:15px 34px;cursor:pointer;transition:background .18s ease,border-color .18s ease;box-shadow:none;}
.us-site .fluentform .ff-btn-submit:hover,.us-site .fluentform button[type=submit]:hover{background:var(--us-accent-dark)!important;border-color:var(--us-accent-dark)!important;}
.us-site .fluentform .ff-btn-submit:focus-visible{outline:2px solid var(--us-deep);outline-offset:3px;}
.us-site .ff-message-success{background:#fff;border:1px solid var(--us-line);border-left:4px solid var(--us-accent);border-radius:var(--us-r-md);padding:22px 24px;font-size:16px;line-height:1.6;color:var(--us-ink);}
@media (max-width:782px){.us-site .fluentform input[type=text],.us-site .fluentform input[type=email],.us-site .fluentform input[type=tel],.us-site .fluentform select,.us-site .fluentform textarea{font-size:16px;padding:12px 14px;}
.us-site .fluentform .ff-btn-submit{width:100%;text-align:center;}}

/* ---------- collapse the now-empty top bar ---------- */
.us-site .top-bar.top-bar-empty{display:none!important;height:0!important;min-height:0!important;padding:0!important;border:0!important;}

/* ================= blog archive: three-column card grid ================= */
.us-site .articles-list{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:34px 30px;align-items:stretch;}
.us-site .articles-list > article.post{display:flex!important;flex-direction:column;width:auto!important;float:none!important;margin:0!important;padding:0!important;background:#fff;border:1px solid var(--us-line)!important;border-radius:var(--us-r-md);overflow:hidden;transition:border-color .2s ease,transform .2s ease;}
.us-site .articles-list > article.post:hover{border-color:var(--us-deep)!important;transform:translateY(-3px);}
.us-site .articles-list .blog-media{width:100%!important;float:none!important;display:block;margin:0!important;padding:0!important;}
.us-site .articles-list .blog-media a.rollover{display:block;margin:0!important;float:none!important;width:100%;}
.us-site .articles-list .blog-media img{display:block;width:100%;height:auto;aspect-ratio:16/10;object-fit:cover;}
.us-site .articles-list .blog-content{width:100%!important;float:none!important;display:flex;flex-direction:column;flex:1 1 auto;padding:22px 22px 24px!important;margin:0!important;}

.us-site .articles-list .entry-title{font-family:var(--us-head);font-weight:700;font-size:19px;line-height:1.3;letter-spacing:-0.005em;margin:0 0 10px;}
.us-site .articles-list .entry-title a{color:var(--us-ink);text-decoration:none;}
.us-site .articles-list .entry-title a:hover{color:var(--us-accent);}
.us-site .articles-list .entry-meta{font-family:var(--us-head);font-size:11.5px;letter-spacing:.07em;text-transform:uppercase;color:var(--us-muted);margin:0 0 14px;}
.us-site .articles-list .entry-meta a{color:var(--us-muted);text-decoration:none;}
.us-site .articles-list .entry-meta a:hover{color:var(--us-accent);}
.us-site .articles-list .entry-meta .category-link a{color:var(--us-accent);}
.us-site .articles-list .blog-content p{font-size:14.5px;line-height:1.6;color:var(--us-muted);margin:0 0 18px;flex:1 1 auto;}
.us-site .articles-list a.details{align-self:flex-start;margin-top:auto;font-family:var(--us-head);font-weight:600;font-size:12.5px;letter-spacing:.07em;text-transform:uppercase;color:var(--us-accent);text-decoration:none;border:0;padding:0;background:none;}
.us-site .articles-list a.details:hover{color:var(--us-accent-dark);}
@media (max-width:1100px){.us-site .articles-list{grid-template-columns:repeat(2,minmax(0,1fr));gap:26px 22px;}}
@media (max-width:700px){.us-site .articles-list{grid-template-columns:1fr;gap:22px;}
.us-site .articles-list .blog-content{padding:20px 18px 22px!important;}
.us-site .articles-list .entry-title{font-size:18px;}}

.us-site .articles-list .blog-content p{display:-webkit-box;-webkit-line-clamp:4;-webkit-box-orient:vertical;overflow:hidden;}
.us-site .articles-list .entry-title{display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical;overflow:hidden;min-height:2.6em;}

/* the archive hero sits inside the loop container, so span it across the grid */
.us-site .articles-list > .us-bloghero{grid-column:1 / -1;}

/* The7 leaves these content-box, so width:100% + padding overflowed the card */
.us-site .articles-list > article.post,.us-site .articles-list .blog-media,.us-site .articles-list .blog-content{box-sizing:border-box;min-width:0;}
.us-site .articles-list .entry-title,.us-site .articles-list .blog-content p{overflow-wrap:break-word;}

/* ================= mobile menu: icon + action buttons ================= */
.us-site .dt-mobile-menu-icon,.us-site .dt-mobile-menu-icon .menu-line,.us-site .dt-mobile-menu-icon i{color:#FFFFFF!important;}
.us-site .dt-mobile-menu-icon .menu-line{background-color:#FFFFFF!important;}
.us-site .dt-mobile-menu-icon svg,.us-site .dt-mobile-menu-icon svg *{fill:#FFFFFF!important;stroke:#FFFFFF!important;}
.us-site .dt-mobile-menu-icon:hover .menu-line{background-color:#FFFFFF!important;}
.us-site .mobile-mini-widgets-in-menu{display:flex!important;flex-direction:column;gap:12px;margin-top:28px!important;}
.us-site .mobile-mini-widgets-in-menu .microwidget-btn{display:block!important;width:100%;box-sizing:border-box;text-align:center;margin:0!important;padding:15px 22px!important;font-family:var(--us-head)!important;font-weight:600!important;font-size:13px!important;letter-spacing:.06em!important;text-transform:uppercase!important;border-radius:var(--us-r-sm)!important;border:1px solid transparent!important;background-image:none!important;line-height:1.1!important;}
.us-site .mobile-mini-widgets-in-menu .microwidget-btn:before,.us-site .mobile-mini-widgets-in-menu .microwidget-btn:after{display:none!important;}
.us-site .mobile-mini-widgets-in-menu .header-elements-button-1{background:#FFFFFF!important;border-color:#FFFFFF!important;}
.us-site .mobile-mini-widgets-in-menu .header-elements-button-1,.us-site .mobile-mini-widgets-in-menu .header-elements-button-1 span{color:var(--us-ink)!important;}
.us-site .mobile-mini-widgets-in-menu .header-elements-button-2{background:var(--us-accent)!important;border-color:var(--us-accent)!important;}
.us-site .mobile-mini-widgets-in-menu .header-elements-button-2,.us-site .mobile-mini-widgets-in-menu .header-elements-button-2 span{color:#FFFFFF!important;}

/* mobile menu: the submenu plus/minus toggle was white at 17% opacity */
.us-site .dt-mobile-header .next-level-button,
.us-site .dt-mobile-header .next-level-button svg,
.us-site .dt-mobile-header .next-level-button svg path{fill:#FFFFFF!important;color:#FFFFFF!important;}
.us-site .dt-mobile-header .next-level-button:hover svg path,
.us-site .dt-mobile-header .act > .next-level-button svg path{fill:var(--us-accent)!important;}
.us-site .dt-mobile-header .next-level-button{opacity:1!important;}

/* hero poster: WebP where supported, JPEG everywhere else */
.us-site .us-hero .us-hero__bg{background-image:url(https://new.upstagecompanies.com/wp-content/uploads/upstage/hero-poster.jpg)!important;background-image:image-set(url(https://new.upstagecompanies.com/wp-content/uploads/upstage/hero-poster.webp) type('image/webp'),url(https://new.upstagecompanies.com/wp-content/uploads/upstage/hero-poster.jpg) type('image/jpeg'))!important;}


/* ================= DARK MODE: tokens ================= */
:root{--us-card:#FFFFFF;}
html[data-us-theme='dark']{--us-bg:#14151F;--us-surface:#1C1E2B;--us-card:#1A1C28;--us-ink:#EDEFF3;--us-muted:#A2A9B8;--us-line:#2E3140;--us-deep:#3D6C8F;}
html[data-us-theme='dark'] body,html[data-us-theme='dark'] .us-site,html[data-us-theme='dark'] #main,html[data-us-theme='dark'] .page-inner,html[data-us-theme='dark'] .content{background-color:var(--us-bg);color:var(--us-ink);}
html[data-us-theme='dark'] .us-site .vc_row.us-band{background-color:var(--us-bg);}
html[data-us-theme='dark'] .us-site .vc_row.us-band.us-band--surface{background-color:var(--us-surface);}
/* feature bands stay the darkest layer so the rhythm survives */
html[data-us-theme='dark'] .us-site .vc_row.us-band--ink,html[data-us-theme='dark'] .us-site .vc_row.us-band--photo{background-color:#0D0E15;}
html[data-us-theme='dark'] .us-site .vc_row.us-band--navy{background-color:#16283A;}
html[data-us-theme='dark'] .us-site h1,html[data-us-theme='dark'] .us-site h2,html[data-us-theme='dark'] .us-site h3,html[data-us-theme='dark'] .us-site h4,html[data-us-theme='dark'] .us-site p,html[data-us-theme='dark'] .us-site li,html[data-us-theme='dark'] .us-site td,html[data-us-theme='dark'] .us-site th{color:var(--us-ink);}
html[data-us-theme='dark'] .us-site .us-lead,html[data-us-theme='dark'] .us-site .us-muted{color:var(--us-muted);}

/* ================= DARK MODE: card surfaces ================= */
html[data-us-theme='dark'] .us-card,html[data-us-theme='dark'] .us-div,html[data-us-theme='dark'] .us-quote,html[data-us-theme='dark'] .us-site .us-review,html[data-us-theme='dark'] .us-gigs div,html[data-us-theme='dark'] .us-logos div,html[data-us-theme='dark'] .us-site .us-contact>div,html[data-us-theme='dark'] .us-site .articles-list > article.post,html[data-us-theme='dark'] .us-site .us-fside,html[data-us-theme='dark'] .us-site .ff-message-success{background:var(--us-card)!important;border-color:var(--us-line)!important;}
html[data-us-theme='dark'] .us-site .us-chip{background:var(--us-card);border-color:var(--us-line);color:var(--us-ink);}
html[data-us-theme='dark'] .us-site .us-chip.is-active{background:var(--us-accent);border-color:var(--us-accent);color:#fff;}
html[data-us-theme='dark'] .us-site .us-gig,html[data-us-theme='dark'] .us-site .us-reel__card,html[data-us-theme='dark'] .us-site .us-svc__card{background:var(--us-card);border-color:var(--us-line);}
html[data-us-theme='dark'] .us-site .us-reel__media{background:var(--us-surface);border-color:var(--us-line);}
html[data-us-theme='dark'] .us-site .us-card--panel .us-card__body{background:var(--us-card);}
html[data-us-theme='dark'] .us-site .us-specs li{border-top-color:var(--us-line);}
html[data-us-theme='dark'] .us-site .us-faq__item{border-color:var(--us-line);background:var(--us-card);}
html[data-us-theme='dark'] .us-site .us-tabs__btn{background:var(--us-card);border-color:var(--us-line);color:var(--us-ink);}
html[data-us-theme='dark'] .us-site .us-tabs__btn:hover{background:var(--us-surface);}
html[data-us-theme='dark'] .us-site .us-tabs__btn.is-active{background:var(--us-accent);border-color:var(--us-accent);color:#fff;}

/* ================= DARK MODE: theme chrome and forms ================= */
html[data-us-theme='dark'] .us-site .fluentform input[type=text],html[data-us-theme='dark'] .us-site .fluentform input[type=email],html[data-us-theme='dark'] .us-site .fluentform input[type=tel],html[data-us-theme='dark'] .us-site .fluentform input[type=url],html[data-us-theme='dark'] .us-site .fluentform input[type=number],html[data-us-theme='dark'] .us-site .fluentform select,html[data-us-theme='dark'] .us-site .fluentform textarea{background:var(--us-card)!important;border-color:var(--us-line)!important;color:var(--us-ink)!important;}
html[data-us-theme='dark'] .us-site .fluentform ::placeholder{color:#7A8193;}
html[data-us-theme='dark'] .us-site .fluentform .ff-el-input--label label{color:var(--us-ink);}
html[data-us-theme='dark'] .us-site .fluentform .ff-el-form-check label,html[data-us-theme='dark'] .us-site .fluentform .ff_t_c{color:var(--us-muted);}
html[data-us-theme='dark'] .us-site .articles-list .entry-title a{color:var(--us-ink);}
html[data-us-theme='dark'] .us-site .articles-list .blog-content p,html[data-us-theme='dark'] .us-site .articles-list .entry-meta{color:var(--us-muted);}
html[data-us-theme='dark'] .us-site .us-crumb,html[data-us-theme='dark'] .us-site .us-crumb a{color:var(--us-muted);}
html[data-us-theme='dark'] .us-site .us-crumb > span:last-child{color:var(--us-ink);}
html[data-us-theme='dark'] .us-site .us-btn--outline{color:var(--us-ink);border-color:var(--us-line);}
html[data-us-theme='dark'] .us-site .us-btn--outline:hover{background:var(--us-surface);border-color:var(--us-deep);color:var(--us-ink);}
html[data-us-theme='dark'] .us-site .us-rule,html[data-us-theme='dark'] .us-site hr{border-color:var(--us-line);background:var(--us-line);}
html[data-us-theme='dark'] .us-site .us-review__body p{color:rgba(237,239,243,.80);}
html[data-us-theme='dark'] .us-site .us-split__text p{color:var(--us-muted);}

/* ================= theme toggle ================= */
.us-themetoggle{position:fixed;left:16px;top:50%;transform:translateY(-50%);z-index:9000;width:46px;height:46px;border-radius:999px;border:1px solid var(--us-line);background:var(--us-card);color:var(--us-ink);display:flex;align-items:center;justify-content:center;cursor:pointer;padding:0;box-shadow:0 6px 20px rgba(16,17,27,.18);transition:background .2s ease,border-color .2s ease,color .2s ease,transform .2s ease;}
.us-themetoggle:hover{border-color:var(--us-accent);color:var(--us-accent);transform:translateY(-50%) scale(1.06);}
.us-themetoggle:focus-visible{outline:2px solid var(--us-accent);outline-offset:3px;}
.us-themetoggle svg{width:21px;height:21px;fill:none;stroke:currentColor;stroke-width:2;stroke-linecap:round;stroke-linejoin:round;display:block;}
.us-themetoggle .us-tt-moon{display:none;}
html[data-us-theme='dark'] .us-themetoggle .us-tt-sun{display:none;}
html[data-us-theme='dark'] .us-themetoggle .us-tt-moon{display:block;}
html[data-us-theme='dark'] .us-themetoggle{background:var(--us-card);border-color:var(--us-line);box-shadow:0 6px 20px rgba(0,0,0,.5);}
@media (max-width:782px){.us-themetoggle{left:12px;width:42px;height:42px;}
.us-themetoggle svg{width:19px;height:19px;}}
@media print{.us-themetoggle{display:none;}}

/* ---------- dark mode fixes ---------- */
/* header buttons sit on the dark masthead in BOTH themes, so pin their colours */
html[data-us-theme='dark'] .us-site .masthead .header-elements-button-1,html[data-us-theme='dark'] .us-site .masthead .header-elements-button-1 span,html[data-us-theme='dark'] .us-site .mobile-mini-widgets-in-menu .header-elements-button-1,html[data-us-theme='dark'] .us-site .mobile-mini-widgets-in-menu .header-elements-button-1 span{background-color:#FFFFFF;color:#181926!important;border-color:#FFFFFF!important;}
html[data-us-theme='dark'] .us-site .masthead .header-elements-button-1 span,html[data-us-theme='dark'] .us-site .mobile-mini-widgets-in-menu .header-elements-button-1 span{background:none;}
/* client marks are dark artwork on transparent: flip them to white */
html[data-us-theme='dark'] .us-site .us-marquee__item img,html[data-us-theme='dark'] .us-site .us-logos img{filter:brightness(0) invert(1);opacity:.62;transition:opacity .2s ease;}
html[data-us-theme='dark'] .us-site .us-marquee__item img:hover,html[data-us-theme='dark'] .us-site .us-logos img:hover{opacity:1;}
html[data-us-theme='dark'] .us-site .us-logos div,html[data-us-theme='dark'] .us-site .us-marquee__item{background:transparent!important;border-color:var(--us-line)!important;}

/* An earlier rule strips The7's post background with '.us-site #content .post'
   (ID specificity), which also flattened our own blog cards. Re-assert them. */
.us-site #content .articles-list > article.post{background:var(--us-card)!important;}
html[data-us-theme='dark'] .us-site #content .articles-list > article.post{background:var(--us-card)!important;border-color:var(--us-line)!important;}

/* ---------- footer: a dark band in BOTH themes ----------
   It previously borrowed --us-ink, which flips to near-white in dark mode
   and left white text on a white footer. It gets its own token now. */
:root{--us-footer:#181926;}
html[data-us-theme='dark']{--us-footer:#0D0E15;}
html[data-us-theme='dark'] .us-site .footer,html[data-us-theme='dark'] .us-site #footer{background:var(--us-footer)!important;color:rgba(255,255,255,.72)!important;}
html[data-us-theme='dark'] .us-site .footer h3,html[data-us-theme='dark'] .us-site .footer h4,html[data-us-theme='dark'] .us-site .footer .widget-title,html[data-us-theme='dark'] .us-site .us-foot h4{color:#FFFFFF!important;}
html[data-us-theme='dark'] .us-site .footer p,html[data-us-theme='dark'] .us-site .footer li,html[data-us-theme='dark'] .us-site .footer span{color:rgba(255,255,255,.72)!important;}
html[data-us-theme='dark'] .us-site .footer a{color:rgba(255,255,255,.72)!important;}
html[data-us-theme='dark'] .us-site .footer a:hover{color:#FFFFFF!important;}
html[data-us-theme='dark'] .us-site #bottom-bar{background:transparent!important;color:rgba(255,255,255,.55)!important;}
html[data-us-theme='dark'] .us-site #bottom-bar a{color:rgba(255,255,255,.7)!important;}
html[data-us-theme='dark'] .us-site .footer .widget,html[data-us-theme='dark'] .us-site .footer .widget li{border-color:rgba(255,255,255,.12)!important;background:transparent!important;}

/* ================= logo marquee: marks 1.5x ================= */
.us-site .us-marquee__item{flex:0 0 318px;height:190px;padding:26px 22px;}
.us-site .us-marquee__item img{max-height:132px;}
.us-site .us-marquee__track{animation-duration:142s;}
@media (max-width:1024px){.us-site .us-marquee__item{flex:0 0 270px;height:166px;padding:22px 18px;}
.us-site .us-marquee__item img{max-height:111px;}}
@media (max-width:782px){.us-site .us-marquee__item{flex:0 0 200px;height:134px;padding:16px 14px;}
.us-site .us-marquee__item img{max-height:81px;}
.us-site .us-marquee__track{animation-duration:90s;}}

/* Phones: a full 1.5x would leave barely one and a half marks on screen,
   so the marquee runs edge to edge and the marks scale a little less. */
@media (max-width:782px){.us-site .us-marquee{margin-left:calc(50% - 50vw);margin-right:calc(50% - 50vw);width:100vw;max-width:100vw;}
.us-site .us-marquee__item{flex:0 0 142px;height:112px;padding:14px 12px;}
.us-site .us-marquee__item img{max-height:70px;}
.us-site .us-marquee__track{animation-duration:72s;}}

/* ================= leadership team ================= */
.us-site .us-people{display:grid;grid-template-columns:1fr;gap:26px;}
.us-site .us-person{display:grid;grid-template-columns:260px minmax(0,1fr);gap:34px;align-items:start;background:var(--us-card);border:1px solid var(--us-line);border-radius:var(--us-r-md);padding:28px;box-sizing:border-box;}
.us-site .us-person__photo{width:100%;aspect-ratio:4/5;background:var(--us-surface) center/cover no-repeat;border-radius:var(--us-r-md);}
.us-site .us-person__photo--empty{background:var(--us-surface);}
.us-site .us-person__body h3{font-family:var(--us-head);font-weight:700;font-size:23px;line-height:1.2;margin:0 0 6px;color:var(--us-ink);}
.us-site .us-person__role{display:block;font-family:var(--us-head);font-size:12.5px;letter-spacing:.08em;text-transform:uppercase;color:var(--us-accent);margin-bottom:18px;}
.us-site .us-person__bio p{font-size:15.5px;line-height:1.66;color:var(--us-muted);margin:0 0 14px;}
.us-site .us-person__bio p:last-child{margin-bottom:0;}
html[data-us-theme='dark'] .us-site .us-person{background:var(--us-card);border-color:var(--us-line);}
@media (max-width:820px){.us-site .us-person{grid-template-columns:1fr;gap:20px;padding:20px;}
.us-site .us-person__photo{max-width:220px;aspect-ratio:1/1;}
.us-site .us-person__body h3{font-size:20px;}}

/* gig cards now link through to their own page */
.us-site .us-gig__body h3 a{color:inherit;text-decoration:none;}
.us-site .us-gig__body h3 a:hover{color:var(--us-accent);}
.us-site .us-gig__foot{margin-top:auto;padding-top:16px;}
.us-site .us-gig__body{display:flex;flex-direction:column;}

/* ================= gig page: project photo + facts ================= */
.us-site .us-gigdetail{display:grid;grid-template-columns:minmax(0,1.15fr) minmax(0,1fr);gap:44px;align-items:start;}
.us-site .us-gigdetail--nophoto{grid-template-columns:1fr;}
.us-site .us-gigshot{margin:0;padding:0;}
.us-site .us-gigshot img{display:block;width:100%;height:auto;aspect-ratio:3/2;object-fit:cover;border:1px solid var(--us-line);border-radius:var(--us-r-md);background:var(--us-surface);}
.us-site .us-gigshot figcaption{margin-top:12px;font-family:var(--us-head);font-size:12.5px;letter-spacing:.05em;text-transform:uppercase;color:var(--us-muted);}
.us-site .us-gigdetail__facts .us-specs{grid-template-columns:1fr;gap:0;}
.us-site .us-gigdetail__facts .us-specs li:first-child{border-top:0;padding-top:0;}
.us-site .us-gigdetail__facts .us-specs li{padding:15px 0;border-top:1px solid var(--us-line);}
html[data-us-theme='dark'] .us-site .us-gigshot img{border-color:var(--us-line);background:var(--us-card);}
@media (max-width:900px){.us-site .us-gigdetail{grid-template-columns:1fr;gap:26px;}
.us-site .us-gigshot img{aspect-ratio:16/10;}}

/* ================= legal pages ================= */
.us-site .us-legal{max-width:820px;margin:0 auto;}
.us-site .us-legal h1{font-family:var(--us-head);font-weight:800;font-size:clamp(30px,4vw,46px);line-height:1.08;letter-spacing:-0.02em;color:var(--us-ink);margin:0 0 18px;}
.us-site .us-legal .us-lead{margin:0 0 40px;padding-bottom:28px;border-bottom:1px solid var(--us-line);}
.us-site .us-legal h2{font-family:var(--us-head);font-weight:700;font-size:21px;line-height:1.3;color:var(--us-ink);margin:38px 0 12px;}
.us-site .us-legal h3{font-family:var(--us-head);font-weight:600;font-size:17px;color:var(--us-ink);margin:26px 0 10px;}
.us-site .us-legal p{font-size:15.5px;line-height:1.7;color:var(--us-muted);margin:0 0 14px;}
.us-site .us-legal strong{color:var(--us-ink);}
.us-site .us-legal a{color:var(--us-accent);}
.us-site .us-legal ul,.us-site .us-legal ol{margin:0 0 18px 20px;}
.us-site .us-legal li{font-size:15.5px;line-height:1.7;color:var(--us-muted);margin-bottom:7px;}

/* ================= proof quote ================= */
.us-site .us-proof{max-width:760px;margin:0 auto;padding:0;text-align:center;}
.us-site blockquote.us-proof__quote{margin:0!important;padding:0!important;border:0!important;background:none!important;}
.us-site .us-proof__quote p{font-family:var(--us-head);font-weight:500;font-size:clamp(18px,2.1vw,23px);line-height:1.52;color:var(--us-ink);margin:0 0 22px;font-style:italic;}
.us-site .us-proof__by{display:block;}
.us-site .us-proof__by strong{display:block;font-family:var(--us-head);font-weight:600;font-size:15px;color:var(--us-ink);}
.us-site .us-proof__by span{display:block;margin-top:4px;font-size:13.5px;color:var(--us-muted);}
.us-site .us-proof+.us-btns{margin-top:28px;}
.us-site .us-band--ink .us-proof__quote p,.us-site .us-band--navy .us-proof__quote p{color:#fff;}
.us-site .us-band--ink .us-proof__by strong{color:#fff;}
.us-site .us-band--ink .us-proof__by span{color:rgba(255,255,255,.7);}

/* ================= closing CTA with the quote form ================= */
.us-site .us-ctaform{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.05fr);gap:56px;align-items:start;text-align:left;}
.us-site .us-ctaform .us-h2{text-align:left;margin-top:0;}
.us-site .us-ctaform__copy .us-lead{margin:0 0 24px;max-width:46ch;}
.us-site .us-ctaform__points{list-style:none;margin:0 0 28px;padding:0;}
.us-site .us-ctaform__points li{position:relative;padding-left:26px;margin-bottom:11px;font-size:15px;line-height:1.55;color:rgba(255,255,255,.82);}
.us-site .us-ctaform__points li:before{content:'';position:absolute;left:0;top:8px;width:9px;height:9px;border-radius:2px;background:var(--us-accent);}
.us-site .us-ctaform__form{background:rgba(255,255,255,.055);border:1px solid rgba(255,255,255,.14);border-radius:var(--us-r-md);padding:28px 26px;box-sizing:border-box;}
.us-site .us-ctaform__form .ff-el-input--label label{color:#fff!important;}
.us-site .us-ctaform__form input[type=text],.us-site .us-ctaform__form input[type=email],.us-site .us-ctaform__form input[type=tel],.us-site .us-ctaform__form select,.us-site .us-ctaform__form textarea{background:rgba(255,255,255,.07)!important;border-color:rgba(255,255,255,.2)!important;color:#fff!important;}
.us-site .us-ctaform__form ::placeholder{color:rgba(255,255,255,.5)!important;}
.us-site .us-ctaform__form textarea{min-height:104px!important;}
.us-site .us-ctaform__form .ff-el-form-check label,.us-site .us-ctaform__form .ff_t_c{color:rgba(255,255,255,.72)!important;}
.us-site .us-ctaform__form .ff_t_c a{color:#FF6A70;}
.us-site .us-ctaform__form .ff-message-success{background:rgba(255,255,255,.08);border-color:rgba(255,255,255,.2);color:#fff;}
@media (max-width:980px){.us-site .us-ctaform{grid-template-columns:1fr;gap:32px;}
.us-site .us-ctaform__form{padding:22px 18px;}}

/* ================= page loader: never let it block clicks =================
   The7 hides the loader with 'body #load.loader-removed{opacity:0;visibility:hidden}',
   but its reveal animation uses fill-mode 'both', which pins opacity back to 1
   after the class is added. The overlay is fixed, full-viewport and z-index 9901,
   so it silently swallowed every click on the page. Take it out of the layer
   entirely once the theme has marked it removed. */
#load.loader-removed,
body #load.loader-removed{display:none!important;opacity:0!important;visibility:hidden!important;pointer-events:none!important;animation:none!important;}

/* Category tiles: the two gradient overlays are ::before/::after, and ::after
   paints above .us-cat__in, so it was sitting on top of the Learn more button
   and eating the click. Overlays are decoration only. */
.us-site .us-cat:before,.us-site .us-cat:after{pointer-events:none!important;}
.us-site .us-cat__in{position:relative;z-index:2;}
.us-site .us-cat a{position:relative;z-index:3;}

/* ================= service cards: whole card is a link ================= */
.us-site .us-svc__card{position:relative;transition:transform .2s ease,border-color .2s ease;}
.us-site .us-svc__card:hover{transform:translateY(-3px);}
.us-site .us-svc__card:focus-within{outline:2px solid var(--us-accent);outline-offset:3px;}
.us-site .us-svc__link{position:static;text-decoration:none;display:inline-flex;align-items:center;gap:7px;margin-top:14px;font-family:var(--us-head);font-weight:600;font-size:12.5px;letter-spacing:.07em;text-transform:uppercase;color:var(--us-accent);}
.us-site .us-svc__link:before{content:'';position:absolute;inset:0;z-index:4;}
.us-site .us-svc__cta:after{content:'';display:inline-block;width:7px;height:7px;border-right:2px solid currentColor;border-top:2px solid currentColor;transform:rotate(45deg);margin-left:3px;transition:transform .2s ease;}
.us-site .us-svc__card:hover .us-svc__link{color:#FF6A70;}
.us-site .us-svc__card:hover .us-svc__cta:after{transform:rotate(45deg) translate(2px,-2px);}
/* No positioning on the inner blocks: the stretched link's ::before resolves
   against the nearest positioned ancestor, and if that were .us-svc__body the
   overlay would only cover the text, not the image. */
.us-site .us-svc__media,.us-site .us-svc__body{position:static;}
.us-site .screen-reader-text{position:absolute!important;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0;}

/* ================= Tabbed feature blocks (replaces the .us-why grid) =================
   Markup: .us-ftabs > (input.us-ftabs__r + h3.us-ftabs__tab + div.us-ftabs__p) x N
   Desktop: flex-wrap + order puts every tab on the first row(s) and the checked
   panel underneath. Mobile: container goes display:block, DOM order takes over
   and the same markup reads as an accordion. No JavaScript involved. */
.us-site .us-ftabs{display:flex;flex-wrap:wrap;align-items:flex-start;position:relative;margin-top:6px;}
.us-site .us-ftabs__r{position:absolute;top:0;left:0;width:1px;height:1px;margin:0;padding:0;opacity:0;pointer-events:none;}

/* ---- the tabs themselves (h3 wraps the label so the headings survive) ---- */
.us-site .us-ftabs__tab{order:1;margin:0!important;padding:0;border:0;background:none;}
.us-site .us-ftabs__tab label{
  display:flex;align-items:baseline;gap:9px;cursor:pointer;margin:0;
  padding:13px 20px 14px;border-bottom:2px solid var(--us-line);
  font-family:var(--us-head);font-size:12.5px;font-weight:700;
  letter-spacing:.07em;text-transform:uppercase;line-height:1.3;
  color:var(--us-muted);white-space:nowrap;
  transition:color .18s ease,border-color .18s ease;
}
.us-site .us-ftabs__tab label:hover{color:var(--us-ink);border-bottom-color:var(--us-muted);}
.us-site .us-ftabs__n{font-size:10.5px;letter-spacing:.12em;color:var(--us-accent);opacity:.65;transition:opacity .18s ease;}
.us-site .us-ftabs__r:checked + .us-ftabs__tab label{color:var(--us-ink);border-bottom-color:var(--us-accent);}
.us-site .us-ftabs__r:checked + .us-ftabs__tab .us-ftabs__n{opacity:1;}
.us-site .us-ftabs__r:focus-visible + .us-ftabs__tab label{outline:2px solid var(--us-accent);outline-offset:3px;border-radius:2px;}

/* ---- the panel ---- */
.us-site .us-ftabs__p{order:2;width:100%;display:none;}
.us-site .us-ftabs__r:checked + .us-ftabs__tab + .us-ftabs__p{display:block;}
.us-site .us-ftabs__pin{display:flex;align-items:flex-start;gap:26px;padding:34px 20px 8px;min-height:150px;animation:us-tabin .3s ease both;}
@keyframes us-tabin{from{opacity:0;transform:translateY(9px);}to{opacity:1;transform:none;}}
.us-site .us-ftabs__big{
  flex:0 0 auto;font-family:var(--us-head);font-size:62px;font-weight:800;line-height:.85;
  letter-spacing:-.02em;color:transparent;-webkit-text-stroke:1.5px var(--us-line);
}
.us-site .us-ftabs__body{min-width:0;}
.us-site .us-ftabs__ph{font-family:var(--us-head);font-size:25px;font-weight:700;line-height:1.2;letter-spacing:-.01em;color:var(--us-ink);margin-bottom:11px;}
.us-site .us-ftabs__p p{margin:0;color:var(--us-muted);font-size:17px;line-height:1.6;max-width:62ch;}
/* ---- tabs on the dark bands (photo / navy / ink) ---- */
.us-site .us-band--photo .us-ftabs__tab label,
.us-site .us-band--navy .us-ftabs__tab label,
.us-site .us-band--ink .us-ftabs__tab label{color:rgba(255,255,255,.60);border-bottom-color:rgba(255,255,255,.18);}
.us-site .us-band--photo .us-ftabs__tab label:hover,
.us-site .us-band--navy .us-ftabs__tab label:hover,
.us-site .us-band--ink .us-ftabs__tab label:hover{color:#fff;border-bottom-color:rgba(255,255,255,.45);}
.us-site .us-band--photo .us-ftabs__r:checked + .us-ftabs__tab label,
.us-site .us-band--navy .us-ftabs__r:checked + .us-ftabs__tab label,
.us-site .us-band--ink .us-ftabs__r:checked + .us-ftabs__tab label{color:#fff;border-bottom-color:var(--us-accent);}
.us-site .us-band--photo .us-ftabs__n{color:#FF4A50;}
.us-site .us-band--photo .us-ftabs__ph,
.us-site .us-band--navy .us-ftabs__ph,
.us-site .us-band--ink .us-ftabs__ph{color:#fff;}
.us-site .us-band--photo .us-ftabs__p p,
.us-site .us-band--navy .us-ftabs__p p,
.us-site .us-band--ink .us-ftabs__p p{color:rgba(255,255,255,.76);}
.us-site .us-band--photo .us-ftabs__big,
.us-site .us-band--navy .us-ftabs__big,
.us-site .us-band--ink .us-ftabs__big{-webkit-text-stroke-color:rgba(255,255,255,.26);}

/* ---- narrow screens: the same markup becomes an accordion ---- */
@media (max-width:900px){
  .us-site .us-ftabs__tab label{padding:12px 15px 13px;font-size:11.5px;letter-spacing:.05em;}
}
@media (max-width:782px){
  .us-site .us-ftabs{display:block;}
  .us-site .us-ftabs__tab label{
    position:relative;white-space:normal;padding:16px 34px 16px 0;
    border-bottom:1px solid var(--us-line);font-size:12.5px;letter-spacing:.06em;
  }
  .us-site .us-ftabs__tab label:after{
    content:'';position:absolute;right:8px;top:50%;width:8px;height:8px;
    border-right:2px solid currentColor;border-bottom:2px solid currentColor;
    transform:translateY(-70%) rotate(45deg);transition:transform .2s ease;opacity:.6;
  }
  .us-site .us-ftabs__r:checked + .us-ftabs__tab label{border-bottom-color:var(--us-accent);}
  .us-site .us-ftabs__r:checked + .us-ftabs__tab label:after{transform:translateY(-25%) rotate(-135deg);opacity:1;}
  .us-site .us-ftabs__p{width:auto;}
  .us-site .us-ftabs__pin{display:block;padding:15px 0 22px;min-height:0;}
  .us-site .us-ftabs__big,.us-site .us-ftabs__ph{display:none;}
  .us-site .us-ftabs__p p{font-size:16px;}
  .us-site .us-band--photo .us-ftabs__tab label,
  .us-site .us-band--navy .us-ftabs__tab label,
  .us-site .us-band--ink .us-ftabs__tab label{border-bottom-color:rgba(255,255,255,.18);}
}
@media (prefers-reduced-motion:reduce){
  .us-site .us-ftabs__pin{animation:none;}
}
/* ---- tab bar refinements: let each tab grow so every row of the bar ends in a
   continuous rule instead of a ragged one, and tighten the panel. ---- */
@media (min-width:783px){
  .us-site .us-ftabs__tab{flex:1 1 auto;min-width:0;}
  .us-site .us-ftabs__tab label{justify-content:center;padding:14px 18px 15px;}
  .us-site .us-ftabs__t{overflow:hidden;text-overflow:ellipsis;}
  .us-site .us-ftabs__pin{min-height:128px;padding:36px 4px 6px;}
  .us-site .us-ftabs__ph{font-size:27px;}
  .us-site .us-ftabs__p p{font-size:17.5px;}
  .us-site .us-ftabs__big{font-size:66px;}
}
/* ---- tab bar, final form: equal-width tabs on one row, number stacked over the
   title, so the bar reads as a bar and every underline lines up. ---- */
@media (min-width:783px){
  .us-site .us-ftabs{align-items:stretch;}
  .us-site .us-ftabs__tab{flex:1 1 0;min-width:0;}
  .us-site .us-ftabs__tab label{
    flex-direction:column;align-items:center;justify-content:flex-end;text-align:center;
    gap:7px;white-space:normal;padding:16px 12px 14px;min-height:78px;height:100%;
    font-size:12px;letter-spacing:.06em;line-height:1.35;
  }
  .us-site .us-ftabs__t{overflow:visible;text-overflow:clip;}
  .us-site .us-ftabs--num .us-ftabs__tab label{padding-top:14px;}
  .us-site .us-ftabs:not(.us-ftabs--num) .us-ftabs__tab label{justify-content:center;}
  .us-site .us-ftabs__n{font-size:11px;letter-spacing:.14em;opacity:.55;}
}
@media (min-width:783px) and (max-width:1100px){
  .us-site .us-ftabs__tab label{font-size:11px;padding-left:8px;padding-right:8px;}
}
/* A zero flex-basis let the full-width panel share the first flex line with the
   tabs, collapsing them to 0px. Give the tabs a real basis so the panel wraps. */
@media (min-width:783px){
  .us-site .us-ftabs__tab{flex:1 1 130px;}
}
@media (min-width:783px){
  .us-site .us-ftabs__pin{padding:46px 4px 10px;min-height:132px;}
  .us-site .us-ftabs__tab label{padding-top:18px;}
}
/* Over a photograph the inactive tabs need more weight than they do on white. */
.us-site .us-band--photo .us-ftabs__tab label,
.us-site .us-band--navy .us-ftabs__tab label,
.us-site .us-band--ink .us-ftabs__tab label{color:rgba(255,255,255,.74);}
.us-site .us-band--photo .us-ftabs__n,
.us-site .us-band--navy .us-ftabs__n,
.us-site .us-band--ink .us-ftabs__n{opacity:.85;}
.us-site .us-band--photo .us-ftabs__tab label{text-shadow:0 1px 10px rgba(0,0,0,.35);}
/* ---- Tab bar at 2x: numbers and titles doubled. Letter-spacing comes down a
   little because tracking that reads well at 12px looks loose at 24px. ---- */
@media (min-width:783px){
  .us-site .us-ftabs__tab label{
    font-size:24px;line-height:1.18;letter-spacing:.015em;gap:9px;
    padding:20px 14px 16px;min-height:118px;
  }
  .us-site .us-ftabs--num .us-ftabs__tab label{padding-top:18px;}
  .us-site .us-ftabs__n{font-size:22px;letter-spacing:.06em;opacity:.6;}
  .us-site .us-ftabs__tab{flex:1 1 170px;}
  .us-site .us-ftabs__pin{padding-top:50px;}
}
@media (min-width:783px) and (max-width:1200px){
  .us-site .us-ftabs__tab label{font-size:20px;padding-left:10px;padding-right:10px;min-height:108px;}
  .us-site .us-ftabs__n{font-size:18px;}
}
/* Accordion headings scale too, but not to 25px on a 375px phone. */
@media (max-width:782px){
  .us-site .us-ftabs__tab label{font-size:17px;letter-spacing:.02em;line-height:1.25;padding:18px 36px 18px 0;}
  .us-site .us-ftabs__n{font-size:15px;}
  .us-site .us-ftabs__tab label:after{width:10px;height:10px;}
}
/* At 2x the numbers are big enough that bottom-aligning the labels left them on
   four different baselines. Top-align instead, so the row of numbers reads as a
   row; the tabs still stretch to equal height so the underline stays straight. */
@media (min-width:783px){
  .us-site .us-ftabs__tab label,
  .us-site .us-ftabs:not(.us-ftabs--num) .us-ftabs__tab label{justify-content:flex-start;}
}
/* ---- At 24px a long single word (CONFIGURATIONS, TRANSPORTATION) needs ~245px,
   so the number of tabs per row is set per block from its item count rather than
   left to flex. Every row divides evenly, so the underline always runs full
   width. Blocks of 6 and 7 now use two rows; 3, 4 and 5 stay on one. ---- */
@media (min-width:783px){
  .us-site .us-ftabs__tab{flex:1 1 25%;}
  .us-site .us-ftabs--n2 .us-ftabs__tab{flex-basis:50%;}
  .us-site .us-ftabs--n3 .us-ftabs__tab{flex-basis:33.3333%;}
  .us-site .us-ftabs--n4 .us-ftabs__tab{flex-basis:25%;}
  .us-site .us-ftabs--n5 .us-ftabs__tab{flex-basis:20%;}
  .us-site .us-ftabs--n6 .us-ftabs__tab{flex-basis:33.3333%;}
  .us-site .us-ftabs--n7 .us-ftabs__tab{flex-basis:25%;}
  .us-site .us-ftabs--n5 .us-ftabs__tab label{font-size:21px;padding-left:10px;padding-right:10px;}
  .us-site .us-ftabs--n5 .us-ftabs__n{font-size:19px;}
  .us-site .us-ftabs__t{overflow-wrap:break-word;}
}
@media (min-width:783px) and (max-width:1200px){
  .us-site .us-ftabs--n5 .us-ftabs__tab label{font-size:17px;}
  .us-site .us-ftabs--n5 .us-ftabs__n{font-size:16px;}
}
/* ---- Dialled back from 2x to about 1.5x: 18px titles, 16px numbers. At this
   size six tabs fit on one row again on a full desktop, so the per-count layout
   relaxes; seven still needs two rows. ---- */
@media (min-width:783px){
  .us-site .us-ftabs__tab label{
    font-size:18px;line-height:1.22;letter-spacing:.025em;gap:7px;
    padding:17px 12px 15px;min-height:96px;
  }
  .us-site .us-ftabs--num .us-ftabs__tab label{padding-top:16px;}
  .us-site .us-ftabs__n{font-size:16px;letter-spacing:.08em;}
  .us-site .us-ftabs--n5 .us-ftabs__tab label{font-size:18px;padding-left:12px;padding-right:12px;}
  .us-site .us-ftabs--n5 .us-ftabs__n{font-size:16px;}
  .us-site .us-ftabs__pin{padding-top:44px;}
}
@media (min-width:1201px){
  .us-site .us-ftabs--n6 .us-ftabs__tab{flex-basis:16.6667%;}
  .us-site .us-ftabs--n6 .us-ftabs__tab label{padding-left:9px;padding-right:9px;}
}
@media (min-width:783px) and (max-width:1200px){
  .us-site .us-ftabs__tab label{font-size:16px;padding-left:9px;padding-right:9px;min-height:92px;}
  .us-site .us-ftabs__n{font-size:14px;}
  .us-site .us-ftabs--n5 .us-ftabs__tab label{font-size:15px;}
  .us-site .us-ftabs--n5 .us-ftabs__n{font-size:13px;}
}
@media (max-width:782px){
  .us-site .us-ftabs__tab label{font-size:15px;padding-top:16px;padding-bottom:16px;}
  .us-site .us-ftabs__n{font-size:13px;}
}
/* ---- Centre the open panel under the bar, and give both the tab numbers and the
   big outlined numeral more presence. ---- */
@media (min-width:783px){
  .us-site .us-ftabs__pin{justify-content:center;text-align:center;}
  .us-site .us-ftabs__p p{margin-left:auto;margin-right:auto;}
}
.us-site .us-ftabs__n{opacity:.82;}
.us-site .us-ftabs__r:checked + .us-ftabs__tab .us-ftabs__n{opacity:1;}
.us-site .us-ftabs__big{-webkit-text-stroke-width:2px;-webkit-text-stroke-color:#BFC6D1;}
html[data-us-theme='dark'] .us-site .us-ftabs__big{-webkit-text-stroke-color:rgba(255,255,255,.30);}
.us-site .us-band--photo .us-ftabs__big,
.us-site .us-band--navy .us-ftabs__big,
.us-site .us-band--ink .us-ftabs__big{-webkit-text-stroke-color:rgba(255,255,255,.42);}
.us-site .us-band--photo .us-ftabs__n,
.us-site .us-band--navy .us-ftabs__n,
.us-site .us-band--ink .us-ftabs__n{opacity:1;}
/* Centring the number and the text as one inline group pushed the text off the
   page's centre axis. Stack instead: numeral over title, all on one axis, which
   also echoes how the tabs themselves are set. */
@media (min-width:783px){
  .us-site .us-ftabs__pin{flex-direction:column;align-items:center;gap:6px;padding:40px 4px 14px;}
  .us-site .us-ftabs__big{font-size:58px;line-height:1;}
  .us-site .us-ftabs__body{width:100%;}
}
/* ---- Home: a brand-red rule across the seam between the hero and the section
   that follows it, so two dark full-bleed bands do not run together. The
   .us-hero row only exists on the front page, so this needs no page scoping. ---- */
.us-site .us-hero + .us-band{border-top:5px solid var(--us-accent)!important;}
/* ================= Hero: taller, and let the footage through =================
   The scrim was carrying about .9 opacity all the way across, which flattened
   the video into a dark panel. It now stays dense on the left, where the words
   are, and thins out sharply on the right so the arena reads as footage. The
   type earns its legibility back from tighter shadows rather than from a slab
   of darkness over the whole frame. */
@media (min-width:783px){
  /* about 50px taller than before, not so tall that Three Divisions falls
     entirely below the fold on a laptop. */
  .us-site .vc_row.us-hero{padding-top:176px;padding-bottom:145px;}
}
.us-site .us-hero .us-hero__scrim{
  background:linear-gradient(100deg,
    rgba(10,11,18,.93) 0%,
    rgba(12,14,22,.84) 30%,
    rgba(15,17,27,.55) 56%,
    rgba(18,20,31,.24) 78%,
    rgba(20,22,34,.12) 100%);
}
/* Second, vertical pass: keeps the top edge under the sticky header and the
   bottom edge above the red rule from washing out, without darkening the middle. */
.us-site .us-hero .us-hero__scrim:after{
  content:'';position:absolute;inset:0;pointer-events:none;
  background:linear-gradient(180deg,rgba(8,9,15,.55) 0%,rgba(8,9,15,0) 26%,rgba(8,9,15,0) 66%,rgba(8,9,15,.50) 100%);
}
.us-site .us-hero__video,
.us-site .us-hero .us-hero__bg{filter:saturate(1.14) contrast(1.07);}
.us-site .us-hero h1{text-shadow:0 2px 20px rgba(0,0,0,.62),0 1px 3px rgba(0,0,0,.45);}
.us-site .us-hero .us-lead{color:#fff;text-shadow:0 1px 14px rgba(0,0,0,.55);}
.us-site .us-hero__meta{border-top-color:rgba(255,255,255,.26);}
.us-site .us-hero__meta div{color:rgba(255,255,255,.82);text-shadow:0 1px 10px rgba(0,0,0,.5);}
.us-site .us-hero__meta strong{text-shadow:0 1px 10px rgba(0,0,0,.55);}
/* On phones the video is off and the poster is a bright arena shot behind
   narrower text, so the scrim stays dense there. Hero grows a little too. */
@media (max-width:782px){
  .us-site .vc_row.us-hero{padding-top:96px!important;padding-bottom:70px!important;}
  .us-site .us-hero .us-hero__scrim{
    background:linear-gradient(170deg,
      rgba(11,12,19,.94) 0%,
      rgba(14,16,25,.88) 45%,
      rgba(17,19,30,.82) 100%);
  }
  .us-site .us-hero .us-hero__scrim:after{background:none;}
}
/* ================= Hero: centred =================
   The column was left-aligned against a left-heavy scrim. Centring the content
   means the scrim has to be rebalanced too, or the right-hand half of every line
   would sit over the thinnest part of the veil. The horizontal gradient is
   replaced by an even vertical veil plus a soft radial behind the centre, so the
   footage still reads at the edges while the words keep a dark ground. */
.us-site .us-hero__col{max-width:880px;margin-left:auto;margin-right:auto;text-align:center;}
.us-site .us-hero .us-lead{margin-left:auto;margin-right:auto;max-width:62ch;}
.us-site .us-hero .us-btns{justify-content:center;}
.us-site .us-hero__meta{margin-left:auto;margin-right:auto;text-align:center;justify-items:center;}

.us-site .us-hero .us-hero__scrim{
  background:
    radial-gradient(ellipse 68% 64% at 50% 50%,
      rgba(8,9,15,.66) 0%, rgba(8,9,15,.52) 62%, rgba(8,9,15,0) 90%),
    linear-gradient(180deg,
      rgba(8,9,15,.72) 0%, rgba(8,9,15,.34) 26%,
      rgba(8,9,15,.34) 62%, rgba(8,9,15,.80) 100%);
}
.us-site .us-hero .us-hero__scrim:after{background:none;}
/* Re-assert the phone treatment after the centred scrim above: no video there,
   so the text sits on a bright still and needs the denser veil. The stat row
   also becomes a single centred column -- with two columns the third item sat
   under the left one instead of on the centre line. */
@media (max-width:782px){
  .us-site .us-hero .us-hero__scrim{
    background:linear-gradient(170deg,
      rgba(11,12,19,.93) 0%,
      rgba(14,16,25,.87) 45%,
      rgba(17,19,30,.82) 100%);
  }
  .us-site .us-hero__meta{grid-template-columns:1fr;gap:18px;max-width:none;}
}
/* Privacy link in the bottom bar: same colour as the copyright it sits beside,
   so it needs an underline to read as a link at all. */
.us-site #bottom-bar .us-legal{color:inherit;text-decoration:underline;text-underline-offset:3px;opacity:.85;transition:opacity .15s ease,color .15s ease;}
.us-site #bottom-bar .us-legal:hover,.us-site #bottom-bar .us-legal:focus{opacity:1;color:#fff;}
/* ================= Process steps (.us-steps) =================
   Deliberately NOT the tab component: a process has to be readable in order at
   a glance, and tabs would hide four steps out of five behind a click. */
.us-site .us-steps{list-style:none;margin:6px 0 0;padding:0;display:grid;gap:0;
  grid-template-columns:repeat(auto-fit,minmax(210px,1fr));}
.us-site .us-step{position:relative;padding:30px 26px 34px;border-top:2px solid var(--us-line);}
.us-site .us-step + .us-step{border-left:1px solid var(--us-line);}
.us-site .us-step:first-child{border-top-color:var(--us-accent);}
.us-site .us-step__n{display:block;font-family:var(--us-head);font-size:14px;font-weight:700;
  letter-spacing:.14em;color:var(--us-accent);margin-bottom:14px;}
.us-site .us-step__t{font-family:var(--us-head);font-size:19px;font-weight:700;line-height:1.25;
  letter-spacing:-.01em;color:var(--us-ink);margin:0 0 10px;}
.us-site .us-step__b{margin:0;color:var(--us-muted);font-size:15.5px;line-height:1.6;}

/* dark grounds */
.us-site .us-band--photo .us-step,.us-site .us-band--navy .us-step,.us-site .us-band--ink .us-step{border-top-color:rgba(255,255,255,.22);}
.us-site .us-band--photo .us-step + .us-step,.us-site .us-band--navy .us-step + .us-step,.us-site .us-band--ink .us-step + .us-step{border-left-color:rgba(255,255,255,.16);}
.us-site .us-band--photo .us-step__t,.us-site .us-band--navy .us-step__t,.us-site .us-band--ink .us-step__t{color:#fff;}
.us-site .us-band--photo .us-step__b,.us-site .us-band--navy .us-step__b,.us-site .us-band--ink .us-step__b{color:rgba(255,255,255,.78);}

@media (max-width:782px){
  .us-site .us-steps{grid-template-columns:1fr;}
  .us-site .us-step{padding:22px 0 24px;}
  .us-site .us-step + .us-step{border-left:0;}
  .us-site .us-step__n{margin-bottom:8px;}
}
/* ---- Hero brightness ----
   Two separate things make the hero dark: the footage itself, and the scrim
   over it. Lifting only the scrim washes the type out; lifting only the footage
   leaves the veil doing all the darkening. So do both, and keep the radial
   behind the centre strong enough that the centred headline still holds. */
.us-site .us-hero__video,
.us-site .us-hero .us-hero__bg{filter:brightness(1.16) saturate(1.16) contrast(1.04);}
.us-site .us-hero .us-hero__scrim{
  background:
    radial-gradient(ellipse 68% 64% at 50% 50%,
      rgba(8,9,15,.60) 0%, rgba(8,9,15,.45) 62%, rgba(8,9,15,0) 90%),
    linear-gradient(180deg,
      rgba(8,9,15,.62) 0%, rgba(8,9,15,.22) 26%,
      rgba(8,9,15,.22) 62%, rgba(8,9,15,.70) 100%);
}
/* ---- Hero: maximum practical brightness ----
   The full-frame veil is gone. What is left darkens only the two edges that
   need it -- under the sticky header and above the red rule -- plus a soft,
   tight pool behind the copy itself. The type now carries its own legibility
   through shadows rather than through a sheet of darkness over the footage.
   brightness(1.28) is about the ceiling: past that the arena lights clip and
   the picture reads as blown out rather than bright. */
.us-site .us-hero__video,
.us-site .us-hero .us-hero__bg{filter:brightness(1.28) saturate(1.18) contrast(1.02);}
.us-site .us-hero .us-hero__scrim{
  background:
    radial-gradient(ellipse 54% 48% at 50% 47%,
      rgba(8,9,15,.50) 0%, rgba(8,9,15,.30) 58%, rgba(8,9,15,0) 76%),
    linear-gradient(180deg,
      rgba(8,9,15,.58) 0%, rgba(8,9,15,0) 17%,
      rgba(8,9,15,0) 84%, rgba(8,9,15,.62) 100%);
}
/* With the veil mostly gone the words have to hold themselves up. */
.us-site .us-hero h1{text-shadow:0 2px 4px rgba(0,0,0,.55),0 4px 26px rgba(0,0,0,.65);}
.us-site .us-hero .us-lead{color:#fff;text-shadow:0 1px 3px rgba(0,0,0,.6),0 2px 18px rgba(0,0,0,.6);}
.us-site .us-hero__meta div{color:#fff;text-shadow:0 1px 3px rgba(0,0,0,.6),0 2px 14px rgba(0,0,0,.6);}
.us-site .us-hero__meta strong{text-shadow:0 1px 3px rgba(0,0,0,.65),0 2px 14px rgba(0,0,0,.6);}
.us-site .us-hero__meta{border-top-color:rgba(255,255,255,.34);}
/* ---- ROLLBACK: no CSS filter on the hero video ----
   A CSS filter on a <video> takes it off the browser's hardware video overlay
   path and onto the normal compositor. On some GPU/driver combinations that
   renders as nothing at all -- the frames decode fine, they just never get
   painted. Every check we ran read the decoded frame (canvas drawImage), which
   bypasses compositing entirely, so all of them passed while the screen stayed
   empty. Filter removed from the video; the scrim goes back to the moderate
   centred version that was working. */
.us-site .us-hero__video{filter:none!important;}
.us-site .us-hero .us-hero__bg{filter:none;}
.us-site .us-hero .us-hero__scrim{
  background:
    radial-gradient(ellipse 68% 64% at 50% 50%,
      rgba(8,9,15,.60) 0%, rgba(8,9,15,.44) 62%, rgba(8,9,15,0) 90%),
    linear-gradient(180deg,
      rgba(8,9,15,.68) 0%, rgba(8,9,15,.30) 26%,
      rgba(8,9,15,.30) 62%, rgba(8,9,15,.76) 100%);
}
/* ---- Hero grade, restored ----
   The earlier rollback was based on a wrong theory (a compositing failure); the
   real cause was the reduce-motion gate, so the filter was never the problem.
   Saturation does most of the "vibrant" work here -- brightness alone just
   greys the image out. This is a stopgap until the clip is graded properly at
   the file level, which is the only way to fix crushed shadows. */
.us-site .us-hero__video{filter:brightness(1.18) saturate(1.38) contrast(1.06)!important;}
.us-site .us-hero .us-hero__bg{filter:brightness(1.18) saturate(1.38) contrast(1.06);}
.us-site .us-hero .us-hero__scrim{
  background:
    radial-gradient(ellipse 66% 60% at 50% 48%,
      rgba(8,9,15,.54) 0%, rgba(8,9,15,.36) 60%, rgba(8,9,15,0) 84%),
    linear-gradient(180deg,
      rgba(8,9,15,.60) 0%, rgba(8,9,15,.16) 22%,
      rgba(8,9,15,.16) 66%, rgba(8,9,15,.68) 100%);
}
/* ================= Hero media, final =================
   The grade now lives in the video file itself, so the CSS filter that used to
   fake it is switched off -- running both would double the lift and blow the
   sunlit floor to white. The poster is a frame from the same graded footage, so
   the handover from still to film is invisible instead of cutting between two
   different scenes. The film now plays on phones too, from a 637KB encode. */
.us-site .us-hero__video,
.us-site .us-hero .us-hero__bg{filter:none!important;}

.us-site .us-hero .us-hero__bg{
  background-image:url(https://new.upstagecompanies.com/wp-content/uploads/2026/09/upstage-hero-poster.jpg)!important;
  background-image:image-set(
    url(https://new.upstagecompanies.com/wp-content/uploads/2026/09/upstage-hero-poster.webp) type('image/webp'),
    url(https://new.upstagecompanies.com/wp-content/uploads/2026/09/upstage-hero-poster.jpg) type('image/jpeg'))!important;
  background-size:cover;background-position:center;opacity:1;
}

/* phones get the film now, so the old hard hide has to go */
@media (max-width:782px){
  .us-site .us-hero__video{display:block!important;}
}

/* The footage carries its own brightness now, so the scrim only has to protect
   the type: dense behind the centred copy, light at the edges. */
.us-site .us-hero .us-hero__scrim{
  background:
    radial-gradient(ellipse 64% 58% at 50% 48%,
      rgba(8,9,15,.56) 0%, rgba(8,9,15,.38) 60%, rgba(8,9,15,0) 84%),
    linear-gradient(180deg,
      rgba(8,9,15,.58) 0%, rgba(8,9,15,.18) 22%,
      rgba(8,9,15,.18) 66%, rgba(8,9,15,.66) 100%);
}
@media (max-width:782px){
  .us-site .us-hero .us-hero__scrim{
    background:linear-gradient(170deg,
      rgba(10,11,18,.80) 0%, rgba(13,15,24,.72) 45%, rgba(16,18,28,.74) 100%);
  }
}
/* Explicit hero stacking. The poster and the film both sat at z-index 0, so DOM
   order decided which won -- and a restored poster landed after the video and
   covered it. Pin the layers instead of relying on source order. */
.us-site .us-hero .us-hero__bg{z-index:0!important;}
.us-site .us-hero .us-hero__video{z-index:1!important;}
.us-site .us-hero .us-hero__scrim{z-index:2!important;}
.us-site .us-hero .us-hero__inner{z-index:3!important;}
/* ---- Marquee speed ----
   142s for one cycle worked out at roughly 69px/sec, slow enough to read as a
   static row at a glance. These land nearer 110px/sec: clearly moving, still
   calm enough to read the marks. Hover still pauses it. */
.us-site .us-marquee__track{animation-duration:90s;}
@media (max-width:1024px){.us-site .us-marquee__track{animation-duration:76s;}}
@media (max-width:782px){.us-site .us-marquee__track{animation-duration:48s;}}
/* ---- Desktop hero: ungraded high-bitrate file, so restore the CSS grade ----
   Scoped to desktop deliberately. The phone encode already has the grade baked
   in; applying this to it as well would lift it twice and blow the sunlit floor. */
@media (min-width:783px){
  .us-site .us-hero__video{filter:brightness(1.16) saturate(1.34) contrast(1.05)!important;}
}
@media (max-width:782px){
  .us-site .us-hero__video{filter:none!important;}
}
/* ================= Upstage display face =================
   UpstageFont-Regular is a Calligraphr handwriting font covering letters and
   basic punctuation only -- no digits, no & - ( ) + / %. The unicode-range
   below lists exactly what it has, so the browser uses Archivo for everything
   else deterministically rather than attempting a substitute. Digits inside a
   heading will therefore render in Archivo; that is unavoidable without a
   version of the font that includes them. */
@font-face{
  font-family:'UpstageDisplay';
  src:url('https://new.upstagecompanies.com/wp-content/uploads/2025/02/UpstageFont-Regular.ttf') format('truetype');
  font-weight:400;font-style:normal;font-display:swap;
  unicode-range:U+0020-0022,U+0027,U+002C,U+002E,U+003A-003B,U+003F,U+0041-005A,U+0061-007A,U+00A0,U+2018-201A,U+201C-201E;
}

/* Titles and headings across the site. Buttons, nav, eyebrows and stat labels
   are deliberately left on Archivo -- they are UI, not titles. */
.us-site h1,.us-site h2,.us-site h3,.us-site h4,.us-site h5,.us-site h6,
.us-site .us-h2,.us-site .us-hero h1,.us-site .us-sechead h2,
.us-site .us-step__t,.us-site .us-ftabs__ph,.us-site .us-div h3,
.us-site .entry-title,.us-site .widget-title,.us-site .us-foot h4,
.us-site .us-card__body h3,.us-site .us-gig h3,.us-site .us-svc__body h3{
  font-family:'UpstageDisplay','Archivo',system-ui,-apple-system,sans-serif!important;
}

/* ---------- Core Values (UPSTAGE acrostic) ---------- */
.us-site .us-sechead--core{text-align:center;}
.us-site .us-sechead--core .us-h2{margin-bottom:var(--us-sp-sm);}
.us-site .us-core-tag{display:inline-block;background:var(--us-accent);padding:.10em .54em .16em;transform:skewX(-10deg);}
.us-site .us-core-tag > span{display:inline-block;transform:skewX(10deg);color:#fff;}
.us-site .us-core{max-width:880px;margin:clamp(30px,4.2vw,56px) auto 0;}
.us-site .us-core__item{display:grid;grid-template-columns:clamp(26px,2.7vw,38px) 1fr;column-gap:clamp(14px,1.7vw,26px);padding:clamp(14px,2vw,20px) 0;border-top:1px solid rgba(255,255,255,.12);}
.us-site .us-core__item:first-child{border-top:0;padding-top:0;}
.us-site .us-core__word{grid-column:2;grid-row:1;font-size:min(calc(5.4vw - 3px),2.5rem);line-height:.98;text-transform:uppercase;color:#fff;font-weight:400;letter-spacing:.005em;margin:0 0 .24em;}
.us-site .us-core__ltr{color:var(--us-accent);}
.us-site .us-core__desc{grid-column:2;grid-row:2;font-size:clamp(.95rem,1.2vw,1.12rem);line-height:1.45;color:rgba(255,255,255,.80);margin:0;}
.us-site .us-core__icon{grid-column:1;grid-row:1 / span 2;align-self:center;width:100%;height:auto;max-height:clamp(24px,2.45vw,35px);object-fit:contain;filter:invert(1);opacity:.88;}

/* ---------- Division cards: visible name above the lockup ---------- */
.us-site .us-band--photo .us-div .us-div__mark{flex-direction:column;align-items:center;justify-content:flex-end;min-height:0;}
.us-site .us-div__name{position:relative;display:block;width:100%;text-align:center;font-size:26px;line-height:1.1;text-transform:uppercase;letter-spacing:.02em;color:#fff;margin:0 0 20px;padding-bottom:16px;}
.us-site .us-div__name:after{content:'';position:absolute;left:50%;bottom:0;transform:translateX(-50%);width:100%;height:3px;background:var(--us-accent);border-radius:1px;}
@media (max-width:1024px){.us-site .us-div__name{font-size:22px;margin-bottom:17px;padding-bottom:14px;}.us-site .us-div__name:after{height:3px;}}
@media (max-width:782px){.us-site .us-div__name{font-size:20px;margin-bottom:15px;padding-bottom:12px;}.us-site .us-div__name:after{height:2px;}}

/* ---------- Hero slideshow (replaces the film) ---------- */
.us-site .us-hero .us-hero__slides{position:absolute;inset:0;z-index:1;overflow:hidden;}
/* Art-directed hero slides.
   Every photo is cut to five shapes, one per screen tier (phone, tablet, laptop,
   desktop, ultra-wide), each matching the hero's real shape at that size, so
   no screen crops more than a sliver. Only the image the active media query
   uses is downloaded. Tiers must match us_hero_tier_media() in PHP and the JS. */
.us-site .us-hero .us-hero__slide{position:absolute;inset:0;background-image:var(--bg-d);background-size:cover;background-position:50% 50%;background-repeat:no-repeat;opacity:0;transition:opacity 2.2s ease-in-out;will-change:opacity;}
@media (max-width:599px){.us-site .us-hero .us-hero__slide{background-image:var(--bg-m,var(--bg-d));}}
@media (min-width:600px) and (max-width:1199px){.us-site .us-hero .us-hero__slide{background-image:var(--bg-t,var(--bg-d));}}
@media (min-width:1200px) and (max-width:1599px){.us-site .us-hero .us-hero__slide{background-image:var(--bg-l,var(--bg-d));}}
@media (min-width:2200px){.us-site .us-hero .us-hero__slide{background-image:var(--bg-w,var(--bg-d));}}
.us-site .us-hero .us-hero__slide.is-on{opacity:1;}
@media (prefers-reduced-motion:reduce){.us-site .us-hero .us-hero__slide{transition:none;}}

/* ---------- Footer social links ---------- */
.us-site .us-foot .us-social{display:flex;flex-wrap:wrap;gap:10px;list-style:none;margin:22px 0 0;padding:0;}
.us-site .us-foot .us-social li{margin:0;}
.us-site .us-foot .us-social a{display:flex;align-items:center;justify-content:center;width:40px;height:40px;border:1px solid rgba(255,255,255,.22);border-radius:var(--us-r-md);color:rgba(255,255,255,.72);transition:color .22s ease,border-color .22s ease,background .22s ease;}
.us-site .us-foot .us-social a:hover,.us-site .us-foot .us-social a:focus-visible{color:#fff;border-color:var(--us-accent);background:var(--us-accent);}
.us-site .us-foot .us-social svg{width:19px;height:19px;display:block;}

/* ---------- Service Area map ---------- */
.us-site .us-map{display:block;width:100%;max-width:900px;margin:clamp(30px,4vw,52px) auto 0;text-align:center;}
.us-site .us-map svg{display:block;width:100%;height:auto;overflow:visible;}
.us-site .us-map__state{fill:#1E2030;stroke:rgba(230,30,38,.55);stroke-width:2;stroke-linejoin:round;}
.us-site .us-map__state--home{fill:#252A3D;stroke:rgba(230,30,38,.85);stroke-width:2.5;}
.us-site .us-map__state-label{fill:#fff;opacity:.16;font-family:var(--us-head);font-size:28px;font-weight:700;letter-spacing:.24em;}
.us-site .us-map__pin{fill:var(--us-accent);stroke:#1E2030;stroke-width:2.5;}
.us-site .us-map__dot{fill:var(--us-accent);opacity:.7;stroke:#1E2030;stroke-width:2;}
.us-site .us-map__hq{fill:#fff;stroke:var(--us-accent);stroke-width:4;}
.us-site .us-map__halo{fill:none;stroke:var(--us-accent);stroke-width:2;opacity:.55;}
.us-site .us-map__city{fill:#fff;font-family:var(--us-body);font-size:21px;font-weight:600;}
.us-site .us-map__city--hq{font-size:23px;font-weight:700;}
.us-site .us-map__note{fill:rgba(255,255,255,.62);font-family:var(--us-body);font-size:16px;font-weight:500;}
.us-site .us-map__key{display:flex;gap:26px;justify-content:center;list-style:none;margin:24px 0 0;padding:0;}
.us-site .us-map__key li{display:flex;align-items:center;gap:9px;font-size:14.5px;color:var(--us-muted);}
.us-site .us-map__key span{width:14px;height:14px;border-radius:50%;background:var(--us-accent);display:inline-block;}
.us-site .us-map__key-hq{background:#fff;box-shadow:0 0 0 3px var(--us-accent);}
.us-site .us-map__key-pin{transform:scale(.72);}
html[data-us-theme='dark'] .us-site .us-map__state{fill:rgba(255,255,255,.07);}
html[data-us-theme='dark'] .us-site .us-map__state--home{fill:rgba(255,255,255,.11);}
html[data-us-theme='dark'] .us-site .us-map__pin,html[data-us-theme='dark'] .us-site .us-map__dot{stroke:var(--us-footer,#0D0E15);}
.us-site .us-sa__tag{font-family:var(--us-head);font-size:12px;font-weight:700;letter-spacing:.14em;text-transform:uppercase;color:var(--us-accent);margin:0 0 12px;}
.us-site .us-sa__cities{font-size:14.5px;line-height:1.7;color:var(--us-muted);margin-top:14px;padding-top:14px;border-top:1px solid var(--us-line);}
.us-site .us-band:not(.us-band--photo) .us-div .us-div__mark{display:block;min-height:0;margin:0 0 4px;padding:0;border:0;}
@media (max-width:640px){.us-site .us-map__note{font-size:19px;}.us-site .us-map__city{font-size:26px;}.us-site .us-map__city--hq{font-size:29px;}.us-site .us-map__state-label{font-size:32px;}}

/* ---------- Service Area: states and cities list ---------- */
.us-site .us-cities{display:grid;grid-template-columns:repeat(3,1fr);gap:clamp(24px,3vw,44px);max-width:1000px;margin:clamp(28px,3.6vw,46px) auto 0;}
.us-site .us-cities__state{font-size:clamp(1.35rem,2.2vw,1.75rem);line-height:1.1;text-transform:uppercase;letter-spacing:.02em;color:var(--us-ink);margin:0 0 10px;padding-bottom:12px;border-bottom:3px solid var(--us-accent);}
.us-site .us-cities__note{font-family:var(--us-head);font-size:12px;font-weight:700;letter-spacing:.12em;text-transform:uppercase;color:var(--us-muted);margin:0 0 16px;}
.us-site .us-cities ul{list-style:none;margin:0;padding:0;}
.us-site .us-cities li{position:relative;padding-left:18px;margin-bottom:9px;font-size:15.5px;line-height:1.5;color:var(--us-ink);}
.us-site .us-cities li:before{content:'';position:absolute;left:0;top:9px;width:6px;height:6px;border-radius:1px;background:var(--us-accent);}
@media (max-width:860px){.us-site .us-cities{grid-template-columns:repeat(2,1fr);}}
@media (max-width:560px){.us-site .us-cities{grid-template-columns:1fr;gap:26px;}}

/* ---------- Non-union page: trades list ---------- */
.us-site .us-trades{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:4px 34px;}
.us-site .us-trades li{font-size:16.5px;}
@media (max-width:640px){.us-site .us-trades{grid-template-columns:1fr;}}

/* ---------- Core layout, plain variant: no icon column, no red letter ---------- */
.us-site .us-core--plain .us-core__item{grid-template-columns:1fr;column-gap:0;}
.us-site .us-core--plain .us-core__word,.us-site .us-core--plain .us-core__desc{grid-column:1;}
.us-site .us-core--plain .us-core__word{grid-row:auto;}
.us-site .us-core--plain .us-core__desc{grid-row:auto;}



/* ---------- Homepage scroll cue (bottom-right, hides on scroll) ---------- */
.us-site button.us-scrollcue{position:fixed;right:28px;bottom:60px;z-index:9990;width:62px;height:62px;min-width:0;margin:0;padding:0!important;border-radius:50%;display:flex;align-items:center;justify-content:center;cursor:pointer;line-height:0;box-shadow:none;text-transform:none;background:rgba(24,25,38,.55)!important;border:2px solid rgba(255,255,255,.75)!important;color:#fff!important;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);opacity:1;visibility:visible;transition:opacity .35s ease,visibility .35s ease,background-color .2s ease,border-color .2s ease;}
.us-site button.us-scrollcue:hover,.us-site button.us-scrollcue:focus-visible{background:var(--us-accent,#E61E26)!important;border-color:var(--us-accent,#E61E26)!important;}
.us-site button.us-scrollcue:focus-visible{outline:2px solid #fff;outline-offset:3px;}
.us-site button.us-scrollcue svg{width:28px;height:28px;display:block;animation:us-cue-bob 1.8s ease-in-out infinite;}
.us-site button.us-scrollcue.is-hidden{opacity:0;visibility:hidden;pointer-events:none;}
@keyframes us-cue-bob{0%,100%{transform:translateY(-2px);}50%{transform:translateY(4px);}}
@media (prefers-reduced-motion:reduce){.us-site button.us-scrollcue svg{animation:none;}}
@media (max-width:782px){.us-site button.us-scrollcue{right:16px;bottom:36px;width:52px;height:52px;}.us-site button.us-scrollcue svg{width:23px;height:23px;}}

/* ---------- Theme toggle, moved into the header beside the logo ----------
   The header is dark in both themes, so the in-header button is styled for a
   dark background regardless of which theme is active. */
.us-site .masthead .branding,.us-site .mobile-header-bar .mobile-branding{display:flex;align-items:center;}
.us-site .us-themetoggle.is-in-header{position:relative;left:auto;top:auto;transform:none;z-index:auto;flex:0 0 auto;margin:0 18px 0 0;width:38px;height:38px;background:transparent!important;border:1px solid rgba(255,255,255,.32)!important;color:#fff!important;box-shadow:none!important;}
.us-site .us-themetoggle.is-in-header:hover,.us-site .us-themetoggle.is-in-header:focus-visible{transform:none;border-color:var(--us-accent)!important;background:var(--us-accent)!important;color:#fff!important;}
.us-site .us-themetoggle.is-in-header svg{width:18px;height:18px;}
@media (max-width:782px){.us-site .us-themetoggle.is-in-header{margin:0 12px 0 0;width:34px;height:34px;}.us-site .us-themetoggle.is-in-header svg{width:16px;height:16px;}}
/* The7 sets .masthead .mini-widgets>*{display:inline-block}, which beat the button's flex
   centring and pushed the icon against the left edge. Force it back. */
.us-site .us-themetoggle.is-in-header{display:inline-flex!important;align-items:center!important;justify-content:center!important;padding:0!important;line-height:0!important;box-sizing:border-box;}
.us-site .us-themetoggle.is-in-header svg{margin:0!important;flex:0 0 auto;}
.us-site .us-themetoggle.is-in-header.is-in-widgets{margin:0 0 0 12px!important;align-self:center;width:42px;height:42px;border-color:rgba(255,255,255,.45)!important;}
.us-site .us-themetoggle.is-in-header.is-in-widgets svg{width:19px;height:19px;}

/* ---------- Header bar a tad wider ----------
   The7 caps the header content at calc(1300px - 50px - 50px) = 1200px.
   Widened by 120px so the menu and buttons have a little more room. */
.us-site .masthead:not(.side-header) .header-bar{max-width:1320px!important;}

/* Recent Gigs cards: photo, arrow and title all open the gig's page. */
.us-site .us-reel__img{display:block;overflow:hidden;border-radius:var(--us-r-sm);}
.us-site .us-reel__img img{transition:transform .35s ease;}
.us-site .us-reel__card:hover .us-reel__img img{transform:scale(1.04);}
.us-site .us-reel__card h3 a{color:inherit;text-decoration:none;transition:color .2s ease;}
.us-site .us-reel__card:hover h3 a,.us-site .us-reel__card h3 a:hover,.us-site .us-reel__card h3 a:focus-visible{color:var(--us-accent);}
.us-site .us-reel__card h3 a:focus-visible{outline:2px solid var(--us-accent);outline-offset:3px;border-radius:2px;}
@media (prefers-reduced-motion:reduce){.us-site .us-reel__img img{transition:none;}.us-site .us-reel__card:hover .us-reel__img img{transform:none;}}

/* Gigs page: the card photo links to the gig's page. */
.us-site a.us-gig__media{display:block;text-decoration:none;cursor:pointer;}
