/* ============================================================
   STM component stylesheet (WP TEST) — bounded design tokens +
   repeating-card component classes + chrome utilities + Loop
   Carousel/Grid skinning. NOT the full design system; only the
   classes our native Elementor widgets/loop-items actually use.
   Loaded after elementor-frontend so component rules win cleanly.
   ============================================================ */
:root{
  --space-1:.25rem;--space-2:.5rem;--space-3:.75rem;--space-4:1rem;--space-5:1.25rem;
  --space-6:1.5rem;--space-8:2rem;--space-10:2.5rem;--space-12:3rem;--space-16:4rem;
  --space-20:5rem;--space-24:6rem;
  --radius-sm:5px;--radius-md:8px;--radius-lg:12px;--radius-pill:999px;
  --shadow-sm:0 1px 3px rgba(28,28,27,.08),0 1px 2px rgba(28,28,27,.04);
  --shadow-md:0 4px 12px rgba(28,28,27,.08),0 2px 4px rgba(28,28,27,.05);
  --shadow-lg:0 12px 28px rgba(28,28,27,.12),0 4px 8px rgba(28,28,27,.06);
  --border-subtle:#e2e2e0;--text-link:#215489;--surface-sunken:#f1f2f2;
  --ease-out:cubic-bezier(0.16,1,0.3,1);--dur-fast:120ms;
  --orange-400:#F48D26;--orange-500:#f48d26;--orange-600:#F48D26;
  --text-strong:#262625;--text-muted:#6b6b69;--border-default:#cdcdca;--border-strong:#aeaeab;
  --neutral-50:#f8f8f7;--neutral-950:#1c1c1b;
  --font-display:"Archivo","Arial Narrow",system-ui,sans-serif;
}

/* ---- chrome utilities ---- */
.stm .hl,.hl{color:#f48d26;}
.hl--blue{color:#2864a9;}
.stm-kicker{font-family:var(--font-display);font-weight:700;font-size:.75rem;letter-spacing:.14em;text-transform:uppercase;color:var(--orange-600);display:block;margin-bottom:var(--space-3);}
.stm-sectionhead{display:flex;flex-direction:row;align-items:flex-end;justify-content:space-between;gap:var(--space-8);margin-bottom:0;flex-wrap:wrap;}
.stm-sectionhead__col{max-width:880px;align-items:flex-start;text-align:left;}
.stm-lead>.elementor-widget-container{margin:0;}
.stm-lead p{margin:0;}
/* zero inner heading-tag default margins in the section head so only the baked widget margins set the rhythm */
.stm-sectionhead__col .elementor-heading-title{margin:0!important;}
.stm-sectionhead h2{font-size:clamp(2.25rem,3.4vw,2.85rem);margin:var(--space-2) 0 var(--space-4);line-height:1.08;letter-spacing:.01em;text-transform:uppercase;color:var(--text-strong);font-family:var(--font-display);font-weight:800;}
.stm-sectionhead p{font-size:1.125rem;color:var(--text-muted);line-height:1.55;margin:0;max-width:62ch;}
.stm-btn{display:inline-flex;align-items:center;gap:8px;font-family:var(--font-display);font-weight:700;font-size:.875rem;border-radius:var(--radius-md);padding:11px 20px;cursor:pointer;border:1.5px solid transparent;text-decoration:none;white-space:nowrap;transition:background var(--dur-fast),border-color var(--dur-fast);}
.stm-btn svg{width:18px;height:18px;flex:none;}
.stm-btn--outline{background:transparent;color:var(--text-strong);border-color:var(--border-default);}
.stm-btn--outline:hover{border-color:var(--border-strong);background:var(--neutral-50);}
.stm-btn--primary{background:#f48d26;color:var(--neutral-950);border-color:#f48d26;}
.stm-btn--primary:hover{background:var(--orange-600);border-color:var(--orange-600);}
/* Button (Elementor Button widget): ALL box styling is baked into widget settings.
   Only fix the Lucide arrow icon (stroke-based, must not be filled). No wrapper border here. */
.stm-cta .elementor-button-icon svg,.stm-cta .elementor-button svg{width:18px;height:18px;fill:none;stroke:currentColor;}

/* ---- Services tile (Loop Item) ---- */
.svc-tile{position:relative;display:block;aspect-ratio:3/4;border-radius:var(--radius-md);overflow:hidden;box-shadow:var(--shadow-md);text-decoration:none;}
.svc-tile__bg{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;transition:transform 600ms var(--ease-out);}
.svc-tile::after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,rgba(20,40,64,.16) 0%,rgba(11,28,46,.5) 52%,rgba(8,20,33,.9) 100%);z-index:1;}
.svc-tile:hover .svc-tile__bg{transform:scale(1.06);}
.svc-tile__logo{position:absolute;top:var(--space-5);left:50%;transform:translateX(-50%);z-index:2;width:46px;height:46px;border-radius:50%;background:rgba(255,255,255,.92);display:inline-flex;align-items:center;justify-content:center;}
.svc-tile__logo img{width:60%;height:60%;object-fit:contain;}
.svc-tile__title{position:absolute;left:var(--space-5);right:var(--space-5);top:50%;transform:translateY(-50%);z-index:2;margin:0;text-align:center;color:#fff;text-transform:uppercase;font-family:var(--font-display);font-weight:800;font-size:1.375rem;line-height:1.18;letter-spacing:.01em;text-shadow:0 2px 12px rgba(0,0,0,.4);}
.svc-tile__plus{position:absolute;bottom:var(--space-5);left:50%;transform:translateX(-50%);z-index:2;width:46px;height:46px;border-radius:50%;background:var(--orange-400);color:#383837;display:inline-flex;align-items:center;justify-content:center;box-shadow:var(--shadow-md);transition:transform var(--dur-fast);}
.svc-tile:hover .svc-tile__plus{transform:translateX(-50%) scale(1.12);}
.svc-tile__plus svg{width:24px;height:24px;}

/* neutralise Elementor widget wrappers inside a tile so the absolute overlay children
   (bg img, title h3, logo/plus badge spans) position against .svc-tile, not their widget wrapper */
.svc-tile>.e-con-inner,.svc-tile{position:relative;}
.svc-tile .elementor-widget,.svc-tile .elementor-widget-container,.svc-tile .elementor-widget-wrap{position:static!important;margin:0!important;padding:0!important;}
.svc-tile .elementor-element{position:static;}

/* ---- Loop Carousel skin to match the design's svc-nav / svc-dots ---- */
.stm-svc-carousel .swiper{padding:var(--space-2) 4px var(--space-4);overflow:visible;}
.stm-svc-carousel{overflow:hidden;}
.stm-svc-carousel .swiper-slide{height:auto;}
/* nav arrows = 46px white round buttons sitting on the tile edges */
.stm-svc-carousel .elementor-swiper-button{width:46px;height:46px;border-radius:50%;background:#fefefe;color:var(--text-strong);box-shadow:var(--shadow-lg);display:inline-flex;align-items:center;justify-content:center;top:calc(50% - var(--space-6));transform:translateY(-50%);z-index:5;}
.stm-svc-carousel .elementor-swiper-button:hover{background:var(--orange-400);color:#fefefe;}
.stm-svc-carousel .elementor-swiper-button svg,.stm-svc-carousel .elementor-swiper-button i{width:22px;height:22px;font-size:20px;}
.stm-svc-carousel .elementor-swiper-button-prev{left:16px;right:auto;}
.stm-svc-carousel .elementor-swiper-button-next{right:16px;left:auto;}
/* pagination dots = centered under the carousel, orange active pill */
.stm-svc-carousel .swiper-pagination,
.stm-svc-carousel .swiper-horizontal>.swiper-pagination-bullets,
.stm-svc-carousel .swiper-pagination-bullets.swiper-pagination-horizontal{position:static!important;left:0!important;right:0!important;bottom:auto!important;width:100%!important;display:block!important;text-align:center!important;margin-top:var(--space-6)!important;transform:none!important;line-height:0;}
.stm-svc-carousel .swiper-pagination-bullet{display:inline-block!important;width:9px;height:9px;margin:0 4px!important;background:var(--border-default);opacity:1;border-radius:var(--radius-pill);transition:all var(--dur-fast);vertical-align:middle;}
.stm-svc-carousel .swiper-pagination-bullet-active{background:var(--orange-500);width:26px;}
@media(max-width:760px){.stm-svc-carousel .elementor-swiper-button{display:none;}}

/* ---- Industries + Compliance cards (icon card, orange top bar, dark icon square) ---- */
.stm-card{position:relative;overflow:hidden;display:flex;flex-direction:column;gap:var(--space-4);background:#fff;border:1px solid var(--border-subtle);border-radius:var(--radius-lg);padding:calc(var(--space-6) + 6px) var(--space-6) var(--space-6);box-shadow:var(--shadow-sm);text-decoration:none;color:inherit;height:100%;transition:box-shadow .2s var(--ease-out),transform .2s,border-color .2s;}
.stm-card::before{content:"";position:absolute;top:0;left:0;right:0;height:5px;background:#F48D26;z-index:2;}
.stm-card:hover{box-shadow:var(--shadow-lg);transform:translateY(-2px);border-color:var(--border-strong);}
.stm-card__icon{width:56px;height:56px;border-radius:var(--radius-md);background:#383837;color:#F48D26;display:inline-flex;align-items:center;justify-content:center;flex:none;transition:background .2s var(--ease-out),color .2s;}
.stm-card:hover .stm-card__icon{background:#F48D26;color:#383837;}
.stm-card__icon svg{width:26px;height:26px;}
.stm-card__title{font-size:var(--space-4);margin:0;color:var(--text-strong);line-height:1.25;font-family:var(--font-display);font-weight:800;text-transform:none;}
.stm-card__title *{font-size:1.125rem;line-height:1.25;}
.stm-card__desc{color:var(--text-muted);font-size:.875rem;margin:0;line-height:1.55;flex:1;}
.stm-card__more{display:inline-flex;align-items:center;gap:6px;margin-top:auto;color:var(--text-link);font-weight:700;font-size:.875rem;text-decoration:none;font-family:var(--font-display);}
.stm-card__more svg{width:15px;height:15px;}
/* neutralise Elementor widget wrappers inside a card so spacing = the card's own gap */
.stm-card .elementor-widget,.stm-card .elementor-widget-container{margin:0!important;padding:0!important;}
.stm-card .elementor-heading-title{margin:0!important;}
.stm-card__title .elementor-heading-title{font-size:1.125rem;font-weight:800;color:var(--text-strong);line-height:1.25;text-transform:none;}
/* Loop Grid cells stretch so cards are equal height */
.stm-grid .elementor-loop-container{align-items:stretch;}
.stm-grid .e-loop-item{display:flex;}

/* ---- Testimonials (blue panel, ghost heading, centered quote card) ---- */
:root{--shadow-xl:0 24px 48px rgba(28,28,27,.16);--neutral-100:#f1f2f2;}
.stm-tst-wrap{position:relative;max-width:1320px;margin:0 auto;}
.tst-ghost{text-align:center;font-family:var(--font-display);font-weight:800;text-transform:uppercase;font-size:clamp(2.25rem,9.5vw,9rem);line-height:.86;letter-spacing:-.01em;margin:0 0 -.32em!important;color:transparent;-webkit-text-stroke:1.5px rgba(255,255,255,.34);position:relative;z-index:0;user-select:none;white-space:nowrap;overflow:visible;}
.tst-ghost .elementor-heading-title{color:transparent!important;-webkit-text-stroke:1.5px rgba(255,255,255,.34);font-size:inherit;line-height:.86;letter-spacing:-.01em;text-transform:uppercase;}
.tst-card{position:relative;z-index:1;max-width:920px;margin:0 auto;background:#fefefe;border-radius:var(--radius-lg);box-shadow:var(--shadow-xl);border-top:4px solid var(--orange-400);}
.tst-badge{position:absolute;top:-30px;left:50%;transform:translateX(-50%);z-index:2;width:64px;height:64px;border-radius:var(--radius-sm);background:var(--orange-400);color:#383837;display:inline-flex;align-items:center;justify-content:center;box-shadow:var(--shadow-md);}
.tst-badge svg{width:30px;height:30px;stroke-width:2.5;}
.tst-slide{box-sizing:border-box;padding:var(--space-12) clamp(var(--space-8),6vw,90px) var(--space-10);display:flex;flex-direction:column;align-items:center;text-align:center;gap:var(--space-6);}
.tst-text{font-size:clamp(1.125rem,1.4vw,1.375rem);color:var(--charcoal,#383837);line-height:1.6;margin:0;max-width:70ch;}
.tst-text::before{content:'\201C';}.tst-text::after{content:'\201D';}
.tst-mark{width:66px;height:66px;border-radius:50%;background:var(--neutral-50);border:1px solid var(--border-subtle);display:inline-flex;align-items:center;justify-content:center;overflow:hidden;flex:none;}
.tst-mark img{width:62%;height:62%;object-fit:contain;}
.tst-by{font-family:var(--font-display);font-weight:700;color:var(--text-strong);font-size:1.125rem;}
/* carousel arrows on the card = round white tst-arrow */
.stm-tst-carousel{overflow:visible;}
.stm-tst-carousel .swiper{overflow:hidden;border-radius:var(--radius-lg);}
.stm-tst-carousel .elementor-swiper-button{width:44px;height:44px;border-radius:50%;border:1px solid var(--border-subtle);background:#fefefe;color:var(--text-strong);box-shadow:var(--shadow-sm);display:inline-flex;align-items:center;justify-content:center;top:50%;transform:translateY(-50%);}
.stm-tst-carousel .elementor-swiper-button:hover{background:var(--orange-400);color:#fefefe;border-color:var(--orange-400);}
.stm-tst-carousel .elementor-swiper-button svg,.stm-tst-carousel .elementor-swiper-button i{width:20px;height:20px;}
.stm-tst-carousel .elementor-swiper-button-prev{left:12px;}
.stm-tst-carousel .elementor-swiper-button-next{right:12px;}
.stm-tst-carousel .swiper-pagination{display:none;}
/* google reviews badge */
.tst-google{display:flex;flex-direction:column;align-items:center;justify-content:center;margin-top:var(--space-8);}
.google-badge{display:inline-flex;align-items:center;gap:12px;background:#fefefe;border:1px solid var(--border-subtle);border-radius:var(--radius-md);padding:12px 18px;text-decoration:none;box-shadow:var(--shadow-sm);}
.google-badge img.google-badge__logo{height:32px!important;width:auto!important;max-width:none;flex:none;display:block;}
.google-badge__right{display:flex;flex-direction:column;justify-content:center;align-self:stretch;}
.google-badge__top{display:flex;align-items:center;gap:8px;}
.google-badge__num{font-family:var(--font-display);font-weight:800;font-size:1.5rem;color:var(--text-strong);line-height:1;}
.google-badge__stars{color:#F48D26;font-size:17px;letter-spacing:1px;line-height:1;}

/* ---- FAQ (blue panel, native <details> accordion) ---- */
.faq-section-grid{display:grid!important;grid-template-columns:.85fr 1.15fr;gap:var(--space-16);align-items:start;}
.faq-list{display:flex;flex-direction:column;gap:var(--space-3);}
.faq-item{background:rgba(255,255,255,0.06);border:1px solid rgba(255,255,255,0.14);border-radius:var(--radius-lg);overflow:hidden;transition:border-color var(--dur-fast);}
.faq-item[open]{background:rgba(255,255,255,0.09);border-color:rgba(255,255,255,0.30);border-top:3px solid #F48D26;}
.faq-q{width:100%;text-align:left;list-style:none;cursor:pointer;display:flex;align-items:center;justify-content:space-between;gap:var(--space-4);padding:var(--space-5) var(--space-6);font-family:var(--font-display);font-weight:700;font-size:1.125rem;color:#FEFEFE;}
.faq-q::-webkit-details-marker{display:none;}
.faq-icon{width:30px;height:30px;border-radius:var(--radius-sm);background:rgba(255,255,255,0.12);color:#F48D26;display:inline-flex;align-items:center;justify-content:center;flex:none;transition:background var(--dur-fast),transform var(--dur-base);}
.faq-icon svg{width:18px;height:18px;}
.faq-item[open] .faq-icon{background:#F48D26;color:#383837;transform:rotate(180deg);}
.faq-a p{margin:0;padding:0 var(--space-6) var(--space-6);color:rgba(255,255,255,0.80);font-size:1rem;line-height:1.55;}
.faq-list .elementor-widget,.faq-list .elementor-widget-container{margin:0!important;padding:0!important;}
/* FAQ head is a 2-col grid; left col holds kicker/h2/lead/button */
.faq-head-col .elementor-heading-title{margin:0!important;}

/* ---- Locations (heading left, 2x2 tabs top-right, full-width panels below; CSS radio tabs) ---- */
.stm-loc-section>.e-con-inner{position:relative;}
.stm-loc-tabswrap,.stm-loc-tabswrap .elementor-widget,.stm-loc-tabswrap .elementor-widget-container,.stm-loc-tabswrap .elementor-shortcode,.loc-tabsblock{position:static!important;}
.loc-tabsblock .loc-radio{position:absolute;width:0;height:0;opacity:0;pointer-events:none;}
.loc-tabs{position:absolute;right:0;top:132px;display:grid;grid-template-columns:1fr 1fr;gap:8px;width:390px;z-index:3;}
.loc-tab{cursor:pointer;border:1px solid var(--border-default);background:#fff;border-radius:var(--radius-md);padding:11px 20px;font-family:var(--font-display);font-weight:700;font-size:.875rem;color:#383837;display:inline-flex;align-items:center;justify-content:center;gap:8px;white-space:nowrap;transition:all var(--dur-fast);}
.loc-tab svg{width:16px;height:16px;}
.loc-tab:hover{border-color:var(--border-strong);}
.loc-panel{display:none;}
.loc-grid{display:grid;grid-template-columns:1fr 1.15fr;gap:var(--space-12);align-items:stretch;}
.loc-info h3{font-size:2.25rem;margin:var(--space-2) 0 var(--space-3);font-family:var(--font-display);font-weight:800;color:var(--text-strong);line-height:1.1;}
.loc-intro{font-size:1.125rem;color:var(--text-muted);line-height:1.55;margin:0;}
.loc-contacts{list-style:none;margin:var(--space-6) 0 var(--space-8);padding:0;display:grid;gap:var(--space-4);}
.loc-contacts li{display:flex;align-items:center;gap:12px;color:#383837;font-weight:600;font-size:1rem;}
.loc-contacts a{color:inherit;text-decoration:none;}
.loc-contacts a:hover{color:var(--orange-600);}
.loc-ci{width:40px;height:40px;border-radius:var(--radius-md);background:#eaf1f8;color:#215489;display:inline-flex;align-items:center;justify-content:center;flex:none;}
.loc-ci svg{width:19px;height:19px;}
.loc-map{position:relative;border-radius:16px;overflow:hidden;border:1px solid var(--border-default);min-height:380px;box-shadow:var(--shadow-sm);}
.loc-map img{position:absolute!important;inset:0;width:100%!important;height:100%!important;object-fit:cover;max-width:none;display:block;}
.textlink{display:inline-flex;align-items:center;gap:8px;font-family:var(--font-display);font-weight:700;font-size:.875rem;color:var(--text-link);text-decoration:none;}
.textlink svg{width:16px;height:16px;}

/* ---- Hero (bg photo + blue gradient overlay + H1 + 2 CTAs + 2x2 trust) ---- */
.stm-hero{position:relative;overflow:hidden;border-bottom:4px solid #f48d26;}
.hero__bg-overlay{position:absolute;inset:0;background:linear-gradient(to right,#2864a9 0%,#2864a9 26%,rgba(40,100,169,0.92) 44%,rgba(40,100,169,0.55) 68%,rgba(40,100,169,0.18) 100%);pointer-events:none;z-index:1;}
.hero__inner{position:relative;z-index:2;}
.hero__content{max-width:660px;}
.hero__content .elementor-heading-title{color:#fefefe;}
.hero-h1 .elementor-heading-title{color:#fefefe;font-size:clamp(2.2rem,3.5vw,3.25rem);line-height:1.06;letter-spacing:0;margin:0;max-width:24ch;font-family:var(--font-display);font-weight:800;text-transform:uppercase;}
.hero__lead{color:rgba(255,255,255,0.84)!important;font-size:1rem;line-height:1.55;max-width:58ch;margin:0;}
.hero__lead p{margin:0;color:rgba(255,255,255,0.84);}
.hero__divider{height:1px;background:rgba(255,255,255,0.24);width:100%;}
.hero__trust{display:grid;grid-template-columns:repeat(2,max-content);justify-content:start;gap:var(--space-4) var(--space-10);}
.hero__trust-item{display:flex;align-items:center;gap:8px;color:rgba(255,255,255,0.88);font-weight:600;font-size:.875rem;white-space:nowrap;font-family:var(--font-display);}
.hero__trust-item svg{width:18px;height:18px;color:#f48d26;flex:none;}
.hero__trust-item .elementor-widget{width:auto;}
/* lg button (hero) */
.stm-btn-lg .elementor-button{font-size:1rem!important;padding:14px 26px!important;}
.stm-btn-lg .elementor-button svg{width:20px;height:20px;}

/* ---- CTA strip (orange band) ---- */
.stm-ctastrip{background:#f48d26;}
.ctastrip__inner{display:flex;align-items:center;justify-content:space-between;gap:var(--space-5) var(--space-8);flex-wrap:wrap;}
.ctastrip__title .elementor-heading-title{font-family:var(--font-display);font-weight:800;font-size:1.375rem;color:#1c1c1b;margin:0;line-height:1.15;text-transform:none;}
.ctastrip__sub p{color:rgba(28,28,27,0.82);font-weight:600;font-size:.875rem;margin:2px 0 0;}
.ctastrip__actions{display:flex;align-items:center;gap:var(--space-5);flex-wrap:wrap;}
.ctastrip__call .elementor-button{background:transparent!important;border:0!important;padding:0!important;color:#1c1c1b!important;font-family:var(--font-display);font-weight:800;font-size:1.125rem;}
.ctastrip__call .elementor-button svg{width:20px;height:20px;stroke:currentColor;fill:none;}
/* ---- Intro (grey panel, 2-col + 6-point row) ---- */
.stm-intro{background:var(--surface-sunken);}
.intro-grid{display:grid;grid-template-columns:0.9fr 1.1fr;gap:var(--space-10) var(--space-16);align-items:start;}
.intro-lead .elementor-heading-title{margin:0;color:var(--text-strong);}
.intro-body__lead p{font-size:1.125rem;color:#383837;line-height:1.7;margin:0 0 var(--space-5);}
.intro-body__text p{font-size:1.125rem;color:#383837;line-height:1.7;margin:0;}
.intro-points{display:grid;grid-template-columns:repeat(3,1fr);gap:var(--space-8) var(--space-10);margin-top:var(--space-12)!important;padding-top:var(--space-10);border-top:1px solid var(--border-subtle);}
.intro-point{display:flex;align-items:flex-start;gap:var(--space-4);}
.intro-point__icon{width:56px;height:56px;flex:none;border-radius:var(--radius-md);background:#383837;color:#F48D26;display:inline-flex;align-items:center;justify-content:center;}
.intro-point__icon svg{width:26px;height:26px;}
.intro-point__b{display:block;color:var(--text-strong);font-family:var(--font-display);font-weight:700;font-size:1.125rem;margin-bottom:4px;}
.intro-point__t{display:block;color:var(--text-muted);font-size:.875rem;line-height:1.55;}
.intro-point .elementor-widget{margin:0!important;}
/* ---- Stats (blue photo panel, 4 centered counters) ---- */
.stm-stats{position:relative;overflow:hidden;}
.stats-section__overlay{position:absolute;inset:0;background:linear-gradient(160deg,rgba(61,146,214,0.82) 0%,rgba(40,100,169,0.93) 55%,rgba(26,65,105,0.97) 100%);z-index:1;}
.stats-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:var(--space-8);position:relative;z-index:2;}
.stat-card{display:flex;flex-direction:column;align-items:center;text-align:center;}
.stat-card__value{font-family:var(--font-display);font-weight:800;font-size:clamp(3rem,6vw,4.75rem);line-height:1;color:#fefefe;letter-spacing:-.01em;display:block;}
.stat-card__bar{display:block;width:92px;height:9px;background:var(--orange-400);margin:var(--space-4) 0;}
.stat-card__label{font-family:var(--font-display);font-weight:700;font-size:1.125rem;text-transform:uppercase;letter-spacing:.14em;color:#fefefe;}
.stat-card__caption{font-size:.875rem;color:rgba(255,255,255,0.68);margin-top:var(--space-2);line-height:1.4;max-width:26ch;}
.stat-card .elementor-widget{margin:0!important;}
/* ---- About (2-col text + photo) ---- */
.about-grid{display:grid;grid-template-columns:1fr 1fr;gap:var(--space-16);align-items:stretch;}
.about-media{position:relative;min-height:440px;border-radius:16px;overflow:hidden;box-shadow:var(--shadow-lg);}
.about-media img{position:absolute!important;inset:0;width:100%!important;height:100%!important;object-fit:cover;max-width:none;}
.about-values{display:grid;grid-template-columns:1fr 1fr;gap:var(--space-4);margin:var(--space-6) 0 var(--space-8);}
.about-value{display:flex;gap:10px;align-items:flex-start;}
.about-value>span:first-child{color:#1a4169;flex:none;margin-top:2px;display:inline-flex;}
.about-value>span:first-child svg{width:20px;height:20px;}
.about-value__b{display:block;color:var(--text-strong);font-size:.875rem;font-weight:700;font-family:var(--font-display);}
.about-value__t{color:var(--text-muted);font-size:.875rem;}
.about-value .elementor-widget{margin:0!important;}
.about-check{color:#1a4169;flex:none;margin-top:2px;display:inline-flex;}
.about-check svg{width:20px;height:20px;}
.ctastrip__title .elementor-heading-title{text-transform:none;}
.about-media .elementor-widget,.about-media .elementor-widget-container,.about-media .elementor-image{position:static!important;height:100%;}

/* ---- USP (blue panel, 3 frosted cards) ---- */
.stm-usp .stm-sectionhead__col{max-width:820px;}
.stm-usp .stm-sectionhead h2 .elementor-heading-title,.stm-usp .elementor-heading-title.usp-h2{color:#FEFEFE;}
.usp-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:var(--space-6);}
.usp-card{background:rgba(255,255,255,0.06);border:1px solid rgba(255,255,255,0.14);border-top:3px solid #F48D26;border-radius:var(--radius-lg);padding:var(--space-8);display:flex;flex-direction:column;gap:var(--space-3);height:100%;}
.usp-icon{width:56px;height:56px;border-radius:var(--radius-md);background:rgba(255,255,255,0.10);color:#F48D26;display:inline-flex;align-items:center;justify-content:center;}
.usp-icon svg{width:26px;height:26px;}
.usp-card__title .elementor-heading-title{color:#FEFEFE;font-size:1.125rem;font-weight:800;font-family:var(--font-display);line-height:1.25;}
.usp-card__desc p{color:rgba(255,255,255,0.80);font-size:.875rem;margin:0;line-height:1.55;}
.usp-card .elementor-widget{margin:0!important;}
/* ---- Capability (blue photo panel, Gov/Non-gov cards) ---- */
.stm-cap{position:relative;overflow:hidden;}
.cap-section__overlay{position:absolute;inset:0;z-index:0;background:linear-gradient(160deg,rgba(61,146,214,0.82) 0%,rgba(40,100,169,0.93) 55%,rgba(26,65,105,0.97) 100%);}
.cap-grid{display:grid;grid-template-columns:1fr 1fr;gap:var(--space-6);position:relative;z-index:1;}
.cap-card{background:rgba(255,255,255,0.04);border:1px solid rgba(255,255,255,0.1);border-top:3px solid #F48D26;border-radius:var(--radius-lg);padding:var(--space-8);display:flex;flex-direction:column;gap:var(--space-4);}
.cap-tag{display:inline-flex;align-items:center;gap:8px;font-size:.6875rem;text-transform:uppercase;letter-spacing:.12em;font-weight:700;color:var(--orange-400);font-family:var(--font-display);}
.cap-tag svg{width:16px;height:16px;}
.cap-card__title .elementor-heading-title{color:#fefefe;font-size:1.375rem;font-weight:800;font-family:var(--font-display);}
.cap-card__desc p{color:#cdcdca;font-size:.875rem;margin:0;line-height:1.55;}
.cap-list{list-style:none;margin:0;padding:0;display:grid;gap:8px;}
.cap-list li{display:flex;align-items:center;gap:9px;color:#f1f2f2;font-size:.875rem;font-weight:500;}
.cap-list li .stm-ci{color:var(--orange-400);flex:none;display:inline-flex;}
.cap-list li .stm-ci svg{width:16px;height:16px;}
.cap-card .elementor-widget{margin:0!important;}
.stm-cap .stm-sectionhead h2 .elementor-heading-title{color:#fefefe;}
/* ---- Closing CTA / Contact (blue photo panel, points + call + form card) ---- */
.stm-close{position:relative;overflow:hidden;}
.close-section__overlay{position:absolute;inset:0;z-index:0;background:linear-gradient(to right,#1a4169 0%,rgba(26,65,105,0.96) 30%,rgba(33,84,137,0.74) 62%,rgba(33,84,137,0.48) 100%);}
.close-grid{display:grid;grid-template-columns:1fr 1.1fr;gap:var(--space-16);align-items:start;position:relative;z-index:1;}
.close-points{list-style:none;margin:0;padding:0;display:grid;gap:var(--space-3);}
.close-points li{display:flex;gap:10px;align-items:flex-start;color:#eaf1f8;font-size:1rem;font-weight:500;}
.close-points li .stm-ci{color:var(--orange-400);flex:none;margin-top:2px;display:inline-flex;}
.close-points li .stm-ci svg{width:19px;height:19px;}
.contact-card{background:#fff;border-radius:16px;padding:var(--space-8);box-shadow:var(--shadow-xl);border-top:3px solid var(--orange-500);}
/* blue-panel section-head lead colour (beats the default .stm-sectionhead p muted) */
.stm-usp .stm-sectionhead p{color:rgba(255,255,255,0.80)!important;}
.stm-cap .stm-sectionhead p{color:#cdcdca!important;}

/* ---- Closing CTA / Contact: call card + Gravity Form styling ---- */
.stm-close .stm-sectionhead h2 .elementor-heading-title{color:#fff;}
.close-call{display:inline-flex;align-items:center;gap:12px;margin-top:var(--space-8);padding:var(--space-4) var(--space-5);background:rgba(255,255,255,0.1);border:1px solid rgba(255,255,255,0.2);border-radius:var(--radius-lg);text-decoration:none;width:fit-content;}
.close-call:hover{background:rgba(255,255,255,0.16);}
.close-call__ic{width:44px;height:44px;border-radius:var(--radius-md);background:var(--orange-500);color:#1c1c1b;display:inline-flex;align-items:center;justify-content:center;flex:none;}
.close-call__ic svg{width:22px;height:22px;}
.close-call .close-call__num .elementor-heading-title{font-family:var(--font-display);font-weight:800;font-size:1.375rem;color:#fff;line-height:1.1;}
.close-call .close-call__sub .elementor-heading-title{font-size:.75rem;color:#c7daed;font-weight:400;}
.close-call .elementor-widget{margin:0!important;}
/* Gravity Form inside the contact card = 2-col grid, styled inputs, full-width orange submit */
.contact-card form{display:flex;flex-direction:column;gap:16px;}
.contact-card .gform_fields{display:grid!important;grid-template-columns:1fr 1fr;gap:16px;margin:0;padding:0;list-style:none;}
.contact-card .gfield{grid-column:1 / -1;margin:0;}
.contact-card .gfield.gf-half{grid-column:span 1;}
.contact-card .gfield_label{font-size:.875rem!important;font-weight:700!important;color:#262625!important;margin:0 0 6px!important;font-family:var(--font-display);}
.contact-card .ginput_container input,.contact-card .ginput_container textarea{width:100%!important;padding:10px 14px!important;border:1.5px solid #cdcdca!important;border-radius:8px!important;font-family:var(--font-display)!important;font-size:16px!important;color:#383837!important;background:#fff!important;box-sizing:border-box!important;}
.contact-card .ginput_container textarea{min-height:88px;resize:vertical;}
.contact-card .gform_footer{margin:0!important;padding:0!important;}
.contact-card .gform_button{width:100%!important;background:#f48d26!important;color:#1c1c1b!important;border:0!important;border-radius:8px!important;padding:14px 26px!important;font-family:var(--font-display)!important;font-weight:700!important;font-size:16px!important;cursor:pointer;}
.contact-card .gform_button:hover{background-color:#db7711!important;}
.contact-card .gform_required_legend{display:none;}
/* align to Gravity Forms' native 12-col grid (override the earlier 2-col attempt) */
.contact-card .gform_fields{grid-template-columns:repeat(12,1fr)!important;column-gap:16px!important;row-gap:16px!important;}
.contact-card .gfield{grid-column:1 / -1!important;}
.contact-card .gfield.gf-half{grid-column:span 6!important;}
.contact-card .gfield_label{display:block!important;}

/* ============ HEADER ============ */
.stm-header{position:fixed;top:0;left:0;right:0;z-index:100;}
.stm-header .mainnav{background:transparent;border-bottom:1px solid transparent;transition:background .32s ease,border-color .32s,box-shadow .32s;}
.mainnav__inner{max-width:1320px;margin:0 auto;height:86px;display:flex;align-items:center;gap:var(--space-6);padding:0 var(--space-6);}
.mainnav__logo{background:#fefefe;padding:4px 12px;border-radius:var(--radius-md);display:inline-flex;align-items:center;flex:none;}
.mainnav__logo img{height:64px!important;width:auto!important;max-width:none;object-fit:contain;display:block;}
.mainnav__menu{display:flex;align-items:center;gap:1px;margin-left:var(--space-4);}
.nav-item{position:relative;}
.nav-link{display:inline-flex;align-items:center;gap:5px;font-family:var(--font-display);font-weight:600;font-size:.875rem;color:#fefefe;text-decoration:none;padding:10px 13px;border-radius:5px;white-space:nowrap;transition:color .12s,background .12s;}
.nav-link:hover{background:rgba(255,255,255,0.12);color:#fefefe;}
.nav-link .caret{width:15px;height:15px;}
.nav-call{display:inline-flex;align-items:center;gap:8px;font-family:var(--font-display);font-weight:800;font-size:1.125rem;color:#fefefe;text-decoration:none;white-space:nowrap;padding:0 var(--space-2);}
.nav-call svg{width:18px;height:18px;color:#f48d26;}
.mainnav__spacer{flex:1;}
.mainnav__actions{display:flex;align-items:center;gap:var(--space-3);flex:none;}
.stm-header .stm-btn--primary{display:inline-flex;align-items:center;gap:8px;background:#f48d26;color:#1c1c1b;border:1.5px solid #f48d26;border-radius:var(--radius-md);font-family:var(--font-display);font-weight:700;text-decoration:none;}
.stm-header .stm-btn--primary svg{width:18px;height:18px;}
.stm-btn--lgx{font-size:1rem;padding:12px 20px;}
.dd-menu{position:absolute;top:100%;left:0;min-width:250px;background:#fefefe;border:1px solid var(--border-subtle);border-radius:var(--radius-md);box-shadow:var(--shadow-lg);padding:8px;display:none;flex-direction:column;z-index:60;}
.nav-item.has-dd:hover .dd-menu{display:flex;}
.dd-menu a{display:block;padding:9px 12px;color:#383837;text-decoration:none;font-size:.875rem;font-weight:500;border-radius:5px;}
.dd-menu a:hover{background:#eaf1f8;color:#2864a9;}
.header--scrolled .mainnav{background:#fefefe;border-bottom-color:var(--border-subtle);box-shadow:var(--shadow-sm);}
.header--scrolled .nav-link{color:#383837;}
.header--scrolled .nav-link:hover{color:#2864a9;background:#eaf1f8;}
.header--scrolled .nav-call{color:#383837;}
/* the EB header doc wrapper shouldn't add height */
.stm-headerdoc{position:relative;z-index:100;}
/* ============ FOOTER ============ */
.stm-footer.footer{background:#1c1c1b;color:#cdcdca;padding:var(--space-24) 0 var(--space-8);}
.stm-footer .container{max-width:1320px;margin:0 auto;padding:0 var(--space-6);}
.footer__top{display:grid;grid-template-columns:1.5fr 1fr 1fr 1fr 1fr 1fr;gap:var(--space-10);}
.footer__logo-wrap{background:#fefefe;padding:12px 16px;border-radius:var(--radius-md);display:inline-block;margin-bottom:var(--space-5);}
.footer__logo-wrap img{height:56px;display:block;width:auto;}
.footer__about{font-size:.875rem;line-height:1.55;color:#aeaeab;max-width:38ch;margin:0 0 var(--space-5);}
.footer h3{font-family:var(--font-display);font-size:.75rem;text-transform:uppercase;letter-spacing:.12em;color:#8a8a87;font-weight:700;margin:0 0 var(--space-4);}
.footer__col ul{list-style:none;margin:0;padding:0;display:grid;gap:10px;}
.footer__col a{color:#cdcdca;font-size:.875rem;text-decoration:none;}
.footer__col a:hover{color:#f48d26;}
.footer__contactbar{display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:var(--space-5) var(--space-8);margin-top:var(--space-12);padding-top:var(--space-8);border-top:1px solid rgba(255,255,255,0.1);}
.footer__contact{list-style:none;margin:0;padding:0;display:flex;flex-wrap:wrap;align-items:center;gap:var(--space-4) var(--space-8);}
.footer__contact li{display:flex;align-items:center;gap:10px;font-size:.875rem;color:#cdcdca;}
.footer__contact a{color:#cdcdca;text-decoration:none;}
.footer__contact svg{width:18px;height:18px;color:#f69e44;flex:none;}
.footer__social{display:flex;align-items:center;gap:var(--space-3);}
.footer__social a{width:40px;height:40px;border-radius:var(--radius-md);border:1px solid rgba(255,255,255,0.16);display:inline-flex;align-items:center;justify-content:center;color:#cdcdca;}
.footer__social a:hover{background:#f48d26;color:#1c1c1b;border-color:#f48d26;}
.footer__social svg{width:18px;height:18px;}
.footer__certs{margin:var(--space-12) 0;padding:var(--space-10) 0;border-top:1px solid rgba(255,255,255,0.1);border-bottom:1px solid rgba(255,255,255,0.1);}
.footer__certs-label{font-size:.6875rem;text-transform:uppercase;letter-spacing:.12em;color:#8a8a87;font-weight:700;margin-bottom:var(--space-6);display:block;}
.footer__certs-main{display:flex;align-items:center;gap:var(--space-6);}
.footer__cert-row{display:flex;flex-wrap:wrap;align-items:flex-start;gap:var(--space-4);}
.footer__cert{flex:none;display:inline-flex;flex-direction:column;align-items:center;gap:10px;width:160px;text-align:center;}
.footer__cert-ic{width:56px;height:56px;border-radius:50%;background:rgba(255,255,255,0.07);display:inline-flex;align-items:center;justify-content:center;}
.footer__cert-ic svg{width:24px;height:24px;stroke:#e5e5e3;color:#e5e5e3;}
.footer__cert-label{font-size:.75rem;line-height:1.35;color:#cdcdca;font-weight:600;}
.footer__legal{display:flex;justify-content:flex-start;align-items:center;flex-wrap:wrap;gap:var(--space-4);font-size:.75rem;color:#8a8a87;}
.footer__legal-links{display:inline-flex;gap:var(--space-4);align-items:center;margin-left:auto;}
.footer__legal a{color:#aeaeab;text-decoration:none;}
/* mobile: stack legal into 3 lines — copyright, then links, then design credit */
@media(max-width:768px){
  .footer__legal{flex-direction:column;align-items:center;text-align:center;gap:14px;}
  .footer__legal-links{margin-left:0;justify-content:center;}
}
@media(max-width:1080px){.footer__top{grid-template-columns:1fr 1fr 1fr;}}
/* force header nav colours (transparent state = white; scrolled = charcoal) */
.stm-header .mainnav__menu .nav-link{color:#fefefe!important;}
.stm-header .nav-call{color:#fefefe!important;}
.stm-header.header--scrolled .mainnav__menu .nav-link,.stm-header.header--scrolled .nav-call{color:#383837!important;}

/* ---- pixel-pass fixes (2026-07-06) ---- */
/* hero divider = 1px hairline (Elementor empty container gets min-height otherwise) */
.hero__divider{height:1px!important;min-height:1px!important;max-height:1px!important;flex:0 0 1px;padding:0!important;}
/* stats values wider like design (Archivo width axis) */
.stat-card__value .elementor-heading-title{font-stretch:108%;}
/* CTA strip phone: normal Archivo, no wide spacing */
.ctastrip__call .elementor-button{font-family:var(--font-display)!important;font-weight:800!important;font-size:1.125rem!important;letter-spacing:0!important;color:#1c1c1b!important;gap:9px;}
.ctastrip__call .elementor-button svg{color:#1c1c1b;stroke:#1c1c1b;}
/* CTA strip: force single-row layout (text left grows, actions right fit-content) */
.ctastrip__inner{display:flex!important;flex-direction:row!important;align-items:center!important;justify-content:space-between!important;flex-wrap:wrap;}
.ctastrip__inner>*{width:auto!important;}
.ctastrip__inner>:first-child{flex:1 1 auto;}
.ctastrip__actions{flex:0 0 auto;flex-direction:row!important;}
/* CTA strip is a BOXED container -> flex layout lives on .e-con-inner */
.ctastrip__inner>.e-con-inner{display:flex!important;flex-direction:row!important;align-items:center!important;justify-content:space-between!important;flex-wrap:wrap;gap:var(--space-5) var(--space-8);}
.ctastrip__inner>.e-con-inner>*{width:auto!important;}
.ctastrip__inner>.e-con-inner>:first-child{flex:1 1 auto;}
.ctastrip__inner>.e-con-inner>.ctastrip__actions{flex:0 0 auto;}
/* intro 6-point grid: proper grid, tight rows */
.intro-points{display:grid!important;grid-template-columns:repeat(3,1fr)!important;gap:var(--space-8) var(--space-10)!important;align-content:start;}
/* section content = 1272px like the design (.container = 1320 max - 24px gutters) */
.elementor-widget-template>.elementor-widget-container>.e-con.e-con-boxed>.e-con-inner{padding-left:24px!important;padding-right:24px!important;}
/* section content = design's 1272px (top-level boxed .e-parent inner gets the 24px gutters) */
.e-con-boxed.e-parent>.e-con-inner{padding-left:24px;padding-right:24px;}
/* hero divider: equal 32px space above and below (owned by the divider, not the CTA row) */
.hero__cta{margin-bottom:0!important;}
.hero__divider{margin-top:32px!important;margin-bottom:32px!important;}
.hero__trust{margin-top:0!important;}
/* hero: fit H1 to 4 lines + tighten vertical rhythm so everything sits above the fold (like design) */
.hero-h1 .elementor-heading-title{font-size:48px!important;letter-spacing:-0.012em!important;line-height:1.04!important;}
.hero__inner{padding-top:84px!important;padding-bottom:44px!important;}
.hero__lead{margin-bottom:20px!important;}
.hero__divider{margin-top:24px!important;margin-bottom:24px!important;}
/* hero tighten v2 */
.hero__inner{padding-top:92px!important;padding-bottom:40px!important;}
.hero-h1 .elementor-heading-title{font-size:46px!important;line-height:1.03!important;}
.hero-h1{margin-bottom:12px!important;}
.hero__lead{margin-bottom:16px!important;}
.hero__divider{margin-top:20px!important;margin-bottom:20px!important;}
.hero__content>.stm-kicker,.hero__content .stm-kicker{margin-bottom:10px!important;}
/* hero tighten v3 (fit both trust rows above fold) */
.hero__inner{padding-top:88px!important;padding-bottom:36px!important;}
.hero-h1 .elementor-heading-title{font-size:44px!important;line-height:1.0!important;}
.hero-h1{margin-bottom:8px!important;}
.hero__content .stm-kicker{margin-bottom:8px!important;}
.hero__lead{margin-bottom:12px!important;}
.hero__divider{margin-top:16px!important;margin-bottom:16px!important;}
.hero__trust{gap:12px var(--space-10)!important;}
/* hero: pin content to top (remove vertical centering gap between header and kicker) */
.stm-hero>.e-con-inner,.hero__inner,.hero__inner>.e-con-inner{justify-content:flex-start!important;align-content:flex-start!important;}
.stm-hero{min-height:0!important;}
/* hero: the padding lives on .e-con-inner (not the outer) — set it there, zero the outer */
.hero__inner{padding-top:0!important;padding-bottom:0!important;}
.hero__inner>.e-con-inner{padding-top:96px!important;padding-bottom:36px!important;}
/* intro-point icon box = 56x56 square, icon centered (was shrinking + off-centre) */
.intro-point__icon{width:56px!important;height:56px!important;flex:0 0 56px!important;min-width:56px!important;border-radius:var(--radius-md);background:#383837;color:#F48D26;display:flex!important;flex-direction:column!important;align-items:center!important;justify-content:center!important;padding:0!important;overflow:hidden;}
.intro-point__icon>*,.intro-point__icon .elementor-widget,.intro-point__icon .elementor-widget-container,.intro-point__icon .elementor-shortcode{width:100%!important;height:100%!important;margin:0!important;padding:0!important;display:flex!important;align-items:center!important;justify-content:center!important;}
.intro-point__icon svg{width:26px!important;height:26px!important;display:block;flex:none;}
/* services carousel: full-bleed like design (shows peek), solid arrows, orange active dot */
.stm-svc-carousel{width:100vw!important;position:relative;left:50%;right:50%;margin-left:-50vw!important;margin-right:-50vw!important;padding-left:clamp(16px,2.5vw,40px);padding-right:clamp(16px,2.5vw,40px);box-sizing:border-box;}
.stm-svc-carousel .elementor-swiper-button{width:48px!important;height:48px!important;background:#fefefe!important;color:#262625!important;opacity:1!important;box-shadow:0 12px 28px rgba(28,28,27,.18),0 4px 10px rgba(28,28,27,.12)!important;}
.stm-svc-carousel .elementor-swiper-button svg,.stm-svc-carousel .elementor-swiper-button i{color:#262625!important;stroke:#262625!important;width:24px!important;height:24px!important;font-size:22px!important;}
.stm-svc-carousel .swiper-pagination-bullet-active{background:#f48d26!important;width:26px!important;}
/* service tile bg image must FILL the tile (beat Elementor's .elementor img{height:auto}) */
.svc-tile img.svc-tile__bg,.elementor .svc-tile__bg{position:absolute!important;inset:0!important;width:100%!important;height:100%!important;object-fit:cover!important;max-width:none!important;}
/* stats: left-aligned with a vertical divider line on the left (match approved design) */
.stat-card{align-items:flex-start!important;text-align:left!important;padding-left:var(--space-6)!important;border-left:2px solid rgba(255,255,255,0.32)!important;}
.stat-card__value .elementor-heading-title,.stat-card__label .elementor-heading-title{text-align:left!important;}
.stat-card__bar{margin-left:0!important;}
.stat-card .stm-lead p,.stat-card__caption p{text-align:left!important;}
/* stats: orange vertical divider + thinner horizontal bar */
.stat-card{border-left:2px solid var(--orange-500)!important;}
.stat-card__bar{width:88px!important;height:6px!important;min-height:6px!important;max-height:6px!important;flex:0 0 6px!important;background:var(--orange-400)!important;margin:14px 0!important;border-radius:2px;}
/* stats bar: centred under the value + half height */
.stat-card__head{width:fit-content!important;max-width:100%;display:flex!important;flex-direction:column!important;align-items:stretch!important;}
.stat-card__bar{width:88px!important;height:3px!important;min-height:3px!important;max-height:3px!important;flex:0 0 3px!important;margin:12px auto!important;}
/* stats: CENTER all content (design is centered, not left) + force bar thin */
.stat-card{align-items:center!important;text-align:center!important;}
.stat-card__head{align-items:center!important;}
.stat-card__value .elementor-heading-title,.stat-card__label .elementor-heading-title{text-align:center!important;}
.stat-card .stm-lead p,.stat-card__caption p,.stat-card__caption .elementor-widget-container{text-align:center!important;}
.stat-card__bar{width:92px!important;height:4px!important;min-height:4px!important;max-height:4px!important;flex:0 0 4px!important;margin:12px auto!important;padding:0!important;}
/* FAQ: tighten gap between accordion items (design = ~12px) */
.faq-list .elementor-loop-container,.faq-list .elementor-grid,.faq-list .swiper-wrapper{gap:12px!important;grid-gap:12px!important;row-gap:12px!important;column-gap:0!important;}
.faq-list .e-loop-item,.faq-list .elementor-loop-item{margin:0!important;padding:0!important;}
.faq-item{margin:0!important;}
/* FAQ: zero the loop-item container's default padding (was adding 10+10px to the 12px grid gap = 32px) */
.faq-list .elementor-loop-container .e-con,.faq-list .elementor-loop-container .e-con-full,.faq-list .e-loop-item>.e-con{padding-top:0!important;padding-bottom:0!important;}
.faq-list .elementor-loop-container{row-gap:12px!important;}
/* locations: bottom-align the 2x2 tabs with the heading block (align to lead bottom, not top) */
.loc-tabs{top:278px!important;}
@media(max-width:1200px){.loc-tabs{position:static!important;margin-top:24px;width:100%;}}
/* locations tabs: align right edge to the content (where the map ends), not the padding box */
.loc-tabs{right:24px!important;}
/* locations: remove horizontal padding on the panels chain so the map fills the content width (aligns with tabs) */
.stm-loc-tabswrap,.stm-loc-tabswrap .elementor-widget-container,.stm-loc-tabswrap .elementor-shortcode,.loc-tabsblock,.loc-panels{padding-left:0!important;padding-right:0!important;}
/* footer certs: vertical divider + google badge on the right */
.footer__certs-rule{flex:none;width:1px;align-self:stretch;min-height:72px;margin:0 var(--space-4);background:rgba(255,255,255,0.14);}
.footer__certs-right{flex:none;display:flex;justify-content:flex-end;margin-left:auto;}
.footer__certs-main{width:100%;}
/* footer certs right group: divider sits directly left of the Google badge */
.footer__certs-right{display:flex;align-items:center;gap:var(--space-6);margin-left:auto;}
.footer__certs-right .footer__certs-rule{margin:0;}

/* ============================================================
   RESPONSIVE — desktop (>1024px) unchanged; below only scales down
   ============================================================ */
/* mobile menu: hamburger + slide-in sheet (hidden on desktop) */
.nav-burger{display:none;align-items:center;justify-content:center;width:46px;height:46px;border:0;background:rgba(255,255,255,0.12);border-radius:var(--radius-md);color:#fefefe;cursor:pointer;flex:none;}
.nav-burger svg{width:26px;height:26px;}
.header--scrolled .nav-burger{background:#f1f2f2;color:#262625;}
.stm-sheet{display:none;position:fixed;inset:86px 0 0 0;background:#fefefe;z-index:99;overflow-y:auto;padding:20px 24px 64px;}
.stm-sheet--open{display:block;}
.stm-sheet__group{border-bottom:1px solid var(--border-subtle);padding:6px 0;}
.stm-sheet__head{display:block;font-family:var(--font-display);font-weight:800;font-size:1.125rem;color:#262625;padding:10px 0;text-decoration:none;}
.stm-sheet__sub{display:block;padding:8px 0 8px 16px;color:#6b6b69;text-decoration:none;font-weight:500;font-size:.9375rem;}
.stm-sheet__call{display:inline-flex;align-items:center;gap:8px;margin-top:20px;color:#262625;font-weight:800;font-family:var(--font-display);font-size:1.25rem;text-decoration:none;}
.stm-sheet__call svg{width:20px;height:20px;color:#f48d26;}
.stm-sheet__cta{display:flex;justify-content:center;gap:8px;margin-top:20px;padding:14px 20px;text-decoration:none;}

@media(max-width:1024px){
  /* header: switch to hamburger */
  .mainnav__menu,.mainnav__actions .nav-call,.mainnav__actions .stm-btn--lgx{display:none!important;}
  .nav-burger{display:inline-flex;}
  .mainnav__inner{justify-content:space-between;}
  /* grids: 4->2, 3->2 */
  .stats-grid{grid-template-columns:1fr 1fr!important;gap:var(--space-8) var(--space-6)!important;}
  .usp-grid{grid-template-columns:1fr 1fr!important;}
  .intro-points{grid-template-columns:1fr 1fr!important;}
  .footer__top{grid-template-columns:1fr 1fr 1fr!important;gap:var(--space-8)!important;}
}
@media(max-width:900px){
  /* 2-col content sections stack */
  .intro-grid,.about-grid,.faq-section-grid,.close-grid,.cap-grid,.loc-grid{grid-template-columns:1fr!important;gap:var(--space-8)!important;}
  .about-values{grid-template-columns:1fr 1fr!important;}
  .about-media{min-height:300px;}
  /* section-head: heading + button stack */
  .stm-sectionhead{flex-wrap:wrap;}
  .stm-sectionhead__col{width:100%!important;max-width:100%!important;}
  /* locations: tabs static below heading, full width */
  .loc-tabs{position:static!important;width:100%!important;margin-top:20px;top:auto!important;right:auto!important;}
  .loc-map{min-height:300px;}
  /* reduce big headings */
  .hero-h1 .elementor-heading-title{font-size:40px!important;}
  .stm-sectionhead .elementor-heading-title,.stm-usp .elementor-heading-title,.stm-cap .elementor-heading-title{font-size:34px!important;}
}
@media(max-width:768px){
  /* section vertical padding + gutters down */
  .e-con-boxed.e-parent>.e-con-inner{padding-top:56px!important;padding-bottom:56px!important;padding-left:20px!important;padding-right:20px!important;}
  .hero__inner>.e-con-inner{padding-top:96px!important;padding-bottom:40px!important;}
  .stm-ctastrip .ctastrip__inner>.e-con-inner{padding-top:20px!important;padding-bottom:20px!important;}
  /* single column everywhere */
  .stats-grid,.usp-grid,.intro-points,.footer__top,.about-values{grid-template-columns:1fr!important;}
  /* contact form fields full width */
  .contact-card .gfield.gf-half{grid-column:1 / -1!important;}
  .contact-card{padding:24px!important;}
  /* CTA strip stacks */
  .ctastrip__inner>.e-con-inner{flex-direction:column!important;align-items:flex-start!important;}
  /* hero trust one column */
  .hero__trust{grid-template-columns:1fr!important;}
  /* footer contact bar wraps, certs wrap */
  .footer__contactbar{flex-direction:column;align-items:flex-start;}
  .footer__certs-main{flex-wrap:wrap;}
  .footer__certs-right{margin-left:0;width:100%;justify-content:flex-start;margin-top:16px;}
  .footer__certs-rule{display:none;}
  /* headings smaller */
  .hero-h1 .elementor-heading-title{font-size:34px!important;}
  .stm-sectionhead .elementor-heading-title,.stm-usp .elementor-heading-title,.stm-cap .elementor-heading-title,.stm-close .elementor-heading-title{font-size:30px!important;}
  /* testimonials ghost heading smaller so it doesn't overflow */
  .tst-ghost .elementor-heading-title{font-size:clamp(2rem,14vw,4rem)!important;}
}
@media(max-width:480px){
  .footer__top{grid-template-columns:1fr!important;}
  .footer__contact{flex-direction:column;align-items:flex-start;gap:var(--space-3)!important;}
  .footer__cert{width:44%;}
  .hero-h1 .elementor-heading-title{font-size:30px!important;}
  .loc-tabs{grid-template-columns:1fr!important;}
}
/* prevent horizontal scroll from full-bleed carousel on small screens */
html{overflow-x:hidden;}
.stm-svc-carousel{overflow-x:clip;}
/* mobile: drop the full-bleed 100vw carousel (keep it contained -> no horizontal overflow) */
body{overflow-x:hidden;}
@media(max-width:1024px){
  .stm-svc-carousel{width:auto!important;left:auto!important;right:auto!important;margin-left:0!important;margin-right:0!important;padding-left:0!important;padding-right:0!important;}
}
/* FIX: carousel needs a defined width on mobile (width:auto made the swiper infinite-tall) */
@media(max-width:1024px){.stm-svc-carousel{width:100%!important;max-width:100%;}}

/* ===== MOBILE POLISH PASS 2 ===== */
/* ALL section headlines are <h2 class=elementor-heading-title> — scale them down globally so long words stop clipping */
@media(max-width:900px){
  .elementor h2.elementor-heading-title{font-size:32px!important;line-height:1.14!important;overflow-wrap:break-word;word-break:normal;}
  .stm-hero .elementor-widget-heading h1,.hero-h1 .elementor-heading-title{overflow-wrap:break-word;}
}
@media(max-width:600px){
  .elementor h2.elementor-heading-title{font-size:26px!important;}
  .hero-h1 .elementor-heading-title{font-size:30px!important;}
}
@media(max-width:400px){
  .elementor h2.elementor-heading-title{font-size:23px!important;}
}
/* consistent mobile gutters — nested section templates aren't .e-parent, so drop that requirement */
@media(max-width:768px){
  .e-con-boxed>.e-con-inner{padding-left:20px!important;padding-right:20px!important;}
  .hero__inner>.e-con-inner{padding-top:96px!important;padding-bottom:44px!important;}
  /* trim the very large vertical section padding on the known section wrappers */
  .stm-intro>.e-con-inner,.stm-stats>.e-con-inner,.stm-usp>.e-con-inner,.stm-cap>.e-con-inner,.stm-close>.e-con-inner,.stm-loc-section>.e-con-inner{padding-top:56px!important;padding-bottom:56px!important;}
}
/* close-call card: full width + breathing room between number and sub on mobile */
@media(max-width:768px){
  .close-call{width:100%!important;box-sizing:border-box;}
  .close-call__sub .elementor-heading-title{line-height:1.4;display:block;margin-top:3px;}
}

/* ===== MOBILE POLISH PASS 3 — clean section padding (stop stacked gutters) ===== */
@media(max-width:768px){
  /* single 16px horizontal gutter: put it on the boxed section, zero the inner + grid so they don't stack */
  .e-con-boxed{padding-left:16px!important;padding-right:16px!important;}
  .e-con-boxed>.e-con-inner,.e-con-boxed.e-parent>.e-con-inner{padding-left:0!important;padding-right:0!important;}
  .about-grid,.intro-grid,.faq-section-grid,.close-grid,.cap-grid,.loc-grid,.stats-grid,.usp-grid{padding-left:0!important;padding-right:0!important;}
  /* vertical: trim generous section padding, keep hero header clearance */
  .e-con-boxed:not(.hero__inner){padding-top:56px!important;padding-bottom:56px!important;}
  .hero__inner{padding-top:96px!important;padding-bottom:44px!important;}
  /* about value: keep the check icon inline with its text (was wrapping above) */
  .about-value{flex-wrap:nowrap!important;}
  .about-value>.e-con,.about-value>*:last-child{min-width:0;}
}
/* close-call: kit's mobile heading size (30px) was overriding the unbaked num/sub — force + keep inline */
@media(max-width:768px){
  .close-call{flex-wrap:nowrap!important;align-items:center!important;}
  .close-call .close-call__num .elementor-heading-title{font-size:22px!important;line-height:1.15!important;}
  .close-call .close-call__sub .elementor-heading-title{font-size:12px!important;line-height:1.4!important;}
}
/* intro "What is traffic management?" icon points: single column, icon-left + text-right on mobile */
@media(max-width:768px){
  .intro-points{grid-template-columns:1fr!important;gap:28px!important;}
  .intro-point{flex-direction:row!important;flex-wrap:nowrap!important;align-items:flex-start!important;gap:16px!important;}
  .intro-point__icon{flex:0 0 56px!important;}
  .intro-point>.e-con,.intro-point>*:last-child{min-width:0!important;flex:1 1 auto!important;}
}
/* services carousel on mobile: hide arrows + CENTRE the active card (CSS-only, no backend change) */
@media(max-width:768px){
  .stm-svc-carousel .elementor-swiper-button{display:none!important;}
  .stm-svc-carousel .swiper{width:86%!important;margin-left:auto!important;margin-right:auto!important;}
  .stm-svc-carousel .swiper-pagination{width:100%!important;left:auto!important;right:auto!important;}
}
/* stats: 2x2 on mobile (was 1 col) — matches design */
@media(max-width:768px){
  .stats-grid{grid-template-columns:1fr 1fr!important;gap:36px 16px!important;}
}
/* stats 2x2 mobile: scale the big figures down so they fit their columns (value has baked 68px) */
@media(max-width:768px){
  .stat-card__value .elementor-heading-title{font-size:42px!important;line-height:1!important;}
  .stat-card{padding-left:16px!important;}
}
@media(max-width:400px){
  .stat-card__value .elementor-heading-title{font-size:36px!important;}
}
/* locations: single-column stacked buttons across all mobile/tablet widths (was 2x2 until 480) */
@media(max-width:900px){.loc-tabs{grid-template-columns:1fr!important;}}
/* locations: fix mobile spacing above/below the stacked buttons (desktop 48px flex-gap unchanged) */
@media(max-width:900px){
  .stm-loc-section>.e-con-inner{row-gap:12px!important;}
  .loc-tabs{margin-top:0!important;margin-bottom:28px!important;}
}

/* ===== buttons: Archivo glyphs sit ~2-3px high in the flex line-box; nudge content down to visually centre ===== */
.elementor-button .elementor-button-content-wrapper{transform:translateY(2px);}
.stm-btn{padding-top:14px!important;padding-bottom:10px!important;}
.loc-tab{padding-top:13px!important;padding-bottom:9px!important;}

/* ===== Contact page: hero variant + sentence-case H1 ===== */
.hero--about .hero__content{max-width:820px;}
.contact-h1 .elementor-heading-title{color:#fefefe;max-width:none;line-height:1.04;font-family:var(--font-display);font-weight:800;}
@media(max-width:900px){.contact-h1 .elementor-heading-title{font-size:36px!important;line-height:1.08!important;}}
@media(max-width:600px){.contact-h1 .elementor-heading-title{font-size:30px!important;}}
/* contact form section: form card sits fine on the light sunken bg; keep grid from stacking too early is handled by responsive rules */
/* contact list: let the long email wrap instead of overflowing on narrow screens */
@media(max-width:768px){
  .loc-contacts li{min-width:0;}
  .loc-contacts a,.loc-contacts li{overflow-wrap:anywhere;word-break:break-word;}
}

/* ===== Contact page fixes: hero height, lighter placeholder, submit send icon ===== */
/* hero banner: match design's tall, vertically-centred hero--about */
.stm-hero.hero--about{min-height:620px!important;justify-content:center!important;align-items:stretch!important;}
.hero--about .hero__inner{width:100%!important;}
.hero--about .hero__inner>.e-con-inner{padding-top:80px!important;padding-bottom:80px!important;}
@media(max-width:768px){.stm-hero.hero--about{min-height:0;display:block;}.hero--about .hero__inner>.e-con-inner{padding-top:100px!important;padding-bottom:52px!important;}}
/* form placeholders: muted, not dark */
.contact-card input::placeholder,.contact-card textarea::placeholder,.contact-card .gfield input::placeholder,.contact-card .gfield textarea::placeholder{color:#9a9a97!important;opacity:1!important;}
/* submit button: add the send icon (GF renders an <input> so use a background SVG) */
.contact-card .gform_button{background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24' viewBox='0 0 24 24' fill='none' stroke='%231c1c1b' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M22 2 11 13'/%3E%3Cpath d='m22 2-7 20-4-9-9-4z'/%3E%3C/svg%3E")!important;background-repeat:no-repeat!important;background-position:calc(50% - 84px) 50%!important;background-size:18px 18px!important;}
/* hero v4: H1 52px (<=3 lines), keep kicker/H1/lead/CTAs/divider/4 trust all above the fold */
.hero-h1 .elementor-heading-title{font-size:52px!important;line-height:1.04!important;}
.hero__content{max-width:764px!important;}
.hero__inner{padding-top:88px!important;padding-bottom:30px!important;}
.hero-h1{margin-bottom:10px!important;}
.hero__content .stm-kicker{margin-bottom:8px!important;}
.hero__lead{margin-bottom:14px!important;}
.hero__divider{margin-top:18px!important;margin-bottom:18px!important;}
.hero__trust{gap:10px var(--space-10)!important;}
/* hero v4 fix: remove the 24ch cap so the <br> controls the 3-line wrap (was forcing a 4th line) */
.hero-h1 .elementor-heading-title{max-width:none!important;}
/* hero v4: condense H1 slightly so the 3 forced lines fit the content width (Google Archivo runs wide) */
.hero-h1 .elementor-heading-title{letter-spacing:-0.028em!important;}
/* hero v4: keep the 52px only on desktop — re-assert mobile H1 sizes (must come AFTER the 52px base rule) */
@media(max-width:900px){.hero-h1 .elementor-heading-title{font-size:40px!important;letter-spacing:-0.01em!important;}}
@media(max-width:600px){.hero-h1 .elementor-heading-title{font-size:32px!important;}}
@media(max-width:400px){.hero-h1 .elementor-heading-title{font-size:27px!important;}}
/* hero v5: kill the double-stacked top padding (outer 88 + inner 96) so the kicker sits just below the nav (design gap ~30px) */
@media(min-width:769px){
  .hero__inner{padding-top:0!important;}
  .hero__inner>.e-con-inner{padding-top:116px!important;padding-bottom:36px!important;}
}

/* ===== SITE STANDARD: every hero H1 = 52px desktop (40/32/27 mobile). Applies to all pages incl. future inner pages. ===== */
@media(min-width:769px){.stm-hero h1.elementor-heading-title{font-size:52px!important;}}
@media(max-width:900px){.stm-hero h1.elementor-heading-title{font-size:40px!important;}}
@media(max-width:600px){.stm-hero h1.elementor-heading-title{font-size:32px!important;}}
@media(max-width:400px){.stm-hero h1.elementor-heading-title{font-size:27px!important;}}
/* nav dropdown: orange line on top (design) + small gap + invisible bridge so hover survives the gap */
.dd-menu{margin-top:8px;}
.dd-menu::before{content:"";position:absolute;top:-4px;left:14px;right:14px;height:4px;background:#f48d26;border-radius:4px 4px 0 0;}
.dd-menu::after{content:"";position:absolute;left:0;right:0;top:-8px;height:8px;background:transparent;}

/* ===== FAQ native Nested Accordion — styled to match the original design ===== */
.faq-accordion .e-n-accordion{display:flex;flex-direction:column;gap:12px;}
.faq-accordion .e-n-accordion-item{background:rgba(255,255,255,0.06)!important;border:1px solid rgba(255,255,255,0.14)!important;border-radius:var(--radius-lg)!important;overflow:hidden;transition:border-color var(--dur-fast);}
.faq-accordion .e-n-accordion-item[open]{background:rgba(255,255,255,0.09)!important;border-color:rgba(255,255,255,0.30)!important;border-top:3px solid #F48D26!important;}
.faq-accordion .e-n-accordion-item-title{padding:var(--space-5) var(--space-6)!important;cursor:pointer;display:flex;align-items:center;justify-content:space-between;gap:var(--space-4);border:0!important;margin:0!important;}
.faq-accordion .e-n-accordion-item-title-header{flex:1;}
.faq-accordion .e-n-accordion-item-title-text{font-family:var(--font-display)!important;font-weight:700!important;font-size:1.125rem!important;color:#FEFEFE!important;line-height:1.3;}
/* toggle icon in a rounded box; orange + flipped when open */
.faq-accordion .e-n-accordion-item-title-icon{width:34px;height:34px;border-radius:8px;background:rgba(255,255,255,0.12);display:inline-flex;align-items:center;justify-content:center;flex:none;transition:background var(--dur-fast);}
.faq-accordion .e-n-accordion-item-title-icon svg{width:18px;height:18px;color:#FEFEFE;transition:transform var(--dur-fast);}
.faq-accordion .e-n-accordion-item[open] .e-n-accordion-item-title-icon{background:#F48D26;}
.faq-accordion .e-n-accordion-item[open] .e-n-accordion-item-title-icon svg{color:#383837;transform:rotate(180deg);}
/* answer body */
.faq-accordion .faq-answer-con{padding:0!important;background:transparent!important;}
.faq-accordion .faq-answer .elementor-widget-container{margin:0!important;padding:0!important;}
.faq-accordion .faq-answer p{margin:0!important;padding:0 var(--space-6) var(--space-6)!important;color:rgba(255,255,255,0.80);font-size:1rem;line-height:1.55;}
/* FAQ icon box: force 34x34, don't let the summary flex stretch it tall */
.faq-accordion .e-n-accordion-item-title{align-items:center!important;}
.faq-accordion .e-n-accordion-item-title-icon{width:34px!important;height:34px!important;min-height:0!important;max-height:34px!important;flex:0 0 34px!important;align-self:center!important;overflow:hidden;}
.faq-accordion .e-n-accordion-item-title-icon .e-opened,.faq-accordion .e-n-accordion-item-title-icon .e-closed{width:100%;height:100%;align-items:center;justify-content:center;}
/* FAQ pixel-match to design: 30x30 icon box (radius-sm 5px), orange closed chevron / dark open chevron, 16px answer */
.faq-accordion .e-n-accordion-item-title-icon{width:30px!important;height:30px!important;max-height:30px!important;flex:0 0 30px!important;border-radius:5px!important;}
.faq-accordion .e-n-accordion-item-title-icon svg{color:#F48D26!important;}
.faq-accordion .e-n-accordion-item[open] .e-n-accordion-item-title-icon svg{color:#383837!important;}
.faq-accordion .faq-answer p{font-size:16px!important;}
/* FAQ: toggle box on the RIGHT (design), not left */
.faq-accordion .e-n-accordion-item-title{flex-direction:row!important;}
.faq-accordion .e-n-accordion-item-title-header{order:0!important;flex:1 1 auto!important;}
.faq-accordion .e-n-accordion-item-title-icon{order:1!important;margin-left:auto!important;}
/* FAQ: remove Elementor's default box + divider around the answer (design flows directly under the question) */
.faq-accordion .e-n-accordion-item>[role=region],.faq-accordion .e-n-accordion-item>.e-con{border:0!important;border-top:0!important;background:transparent!important;padding:0!important;box-shadow:none!important;margin:0!important;}

/* stats value = Elementor Counter (counts 0→target): style number to match the old 68px value */
.stat-card__value .elementor-counter-number-wrapper{font-family:var(--font-display)!important;font-weight:800!important;font-size:68px!important;line-height:1!important;color:#FEFEFE!important;display:flex!important;justify-content:center;align-items:baseline;gap:0;}
.stat-card__value .elementor-counter-number,.stat-card__value .elementor-counter-number-prefix,.stat-card__value .elementor-counter-number-suffix{font:inherit!important;color:inherit!important;}
.stat-card__value .elementor-counter-title{display:none!important;}
@media(max-width:768px){.stat-card__value .elementor-counter-number-wrapper{font-size:42px!important;}}
@media(max-width:400px){.stat-card__value .elementor-counter-number-wrapper{font-size:36px!important;}}
/* services slider arrows: match design (#fefefe bg, #383837 chevron; hover orange + white) */
.stm-svc-carousel .elementor-swiper-button{background:#fefefe!important;color:#383837!important;}
.stm-svc-carousel .elementor-swiper-button svg,.stm-svc-carousel .elementor-swiper-button i{color:#383837!important;stroke:#383837!important;}
.stm-svc-carousel .elementor-swiper-button:hover{background:var(--orange-400)!important;color:#fefefe!important;}
.stm-svc-carousel .elementor-swiper-button:hover svg,.stm-svc-carousel .elementor-swiper-button:hover i{color:#fefefe!important;stroke:#fefefe!important;}
/* services arrows are Elementor FONT-ICONs (fill-based, was near-white fill) — force a dark fill */
.stm-svc-carousel .elementor-swiper-button svg,.stm-svc-carousel .elementor-swiper-button svg path{fill:#262625!important;stroke:none!important;color:#262625!important;}
.stm-svc-carousel .elementor-swiper-button:hover svg,.stm-svc-carousel .elementor-swiper-button:hover svg path{fill:#fefefe!important;}

/* ===== Services page: grid tile variant (4:3, title + hover-reveal description) ===== */
.svc-tile--grid{aspect-ratio:4/3!important;}
.svc-tile--grid .svc-tile__mid{position:absolute;left:var(--space-5);right:var(--space-5);top:50%;transform:translateY(-50%);z-index:2;text-align:center;}
.svc-tile--grid .svc-tile__title{position:static!important;transform:none!important;top:auto!important;left:auto!important;right:auto!important;margin:0!important;}
.svc-tile--grid .svc-tile__desc{margin:0;max-height:0;opacity:0;overflow:hidden;color:rgba(255,255,255,0.92);font-size:.875rem;line-height:1.55;transition:max-height .35s var(--ease-out),opacity .35s var(--ease-out),margin-top .35s var(--ease-out);}
.svc-tile--grid:hover .svc-tile__desc{max-height:180px;opacity:1;margin-top:var(--space-3);}
/* services grid = Loop Grid, 3 columns */
.svc-gridfeed .elementor-grid,.svc-gridfeed .elementor-loop-container{grid-template-columns:repeat(3,1fr)!important;gap:var(--space-5)!important;}
.svc-gridfeed .e-loop-item>.e-con,.svc-gridfeed .elementor-loop-container .e-con{padding:0!important;}
@media(max-width:1024px){.svc-gridfeed .elementor-grid,.svc-gridfeed .elementor-loop-container{grid-template-columns:1fr 1fr!important;}}
@media(max-width:640px){.svc-gridfeed .elementor-grid,.svc-gridfeed .elementor-loop-container{grid-template-columns:1fr!important;}.svc-tile--grid{aspect-ratio:3/2!important;}}
/* FAQ: hide the default <summary> disclosure triangle (the black mark) so only the chevron shows */
.faq-accordion .e-n-accordion-item-title{list-style:none!important;}
.faq-accordion .e-n-accordion-item-title::-webkit-details-marker,.faq-accordion summary::-webkit-details-marker{display:none!important;}
.faq-accordion .e-n-accordion-item-title::marker{content:""!important;font-size:0!important;}
/* FAQ chevron is a STROKED lucide icon — force fill:none (a rule was filling the open path into a solid triangle = the black mark) */
.faq-accordion .e-n-accordion-item-title-icon svg,.faq-accordion .e-n-accordion-item-title-icon svg path{fill:none!important;}

/* ===== Service detail "What's included" cards (svc-card) ===== */
.svc-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:var(--space-5);}
.svc-card{background:#fff;border:1px solid var(--border-subtle);border-top:3px solid var(--orange-500);border-radius:var(--radius-lg);padding:var(--space-6);box-shadow:var(--shadow-sm);display:flex;flex-direction:column;gap:var(--space-3);transition:box-shadow .2s var(--ease-out),transform .2s var(--ease-out),border-color .2s;}
.svc-card:hover{box-shadow:var(--shadow-md);transform:translateY(-2px);border-color:var(--border-strong);}
.svc-card__icon{width:52px;height:52px;border-radius:var(--radius-md);background:#f1f2f2;color:var(--orange-600);display:inline-flex;align-items:center;justify-content:center;flex:none;}
.svc-card__icon svg{width:24px;height:24px;}
/* svc-card__icon is an Elementor container (e-con) — its default flex (column, justify-start, 10px pad) pins the icon to the TOP of the box. Force true centre + kill the shortcode-widget wrapper + svg baseline gap so icons sit centred in every box. */
.svc-card__icon{display:flex!important;flex-direction:column!important;align-items:center!important;justify-content:center!important;padding:0!important;height:52px!important;}
.svc-card__icon>.elementor-widget-shortcode,.svc-card__icon .elementor-widget-container{display:flex!important;align-items:center!important;justify-content:center!important;width:100%;height:100%;line-height:0;margin:0!important;padding:0!important;}
.svc-card__icon svg{display:block!important;}
.svc-card__title{margin:0!important;font-family:var(--font-display);font-weight:700;font-size:1.125rem;color:var(--text-strong);line-height:1.3;}
.svc-card__desc p,.svc-card__desc{margin:0!important;color:var(--text-muted);font-size:.9375rem;line-height:1.55;}
.svc-card .elementor-widget{margin:0!important;}
@media(max-width:1024px){.svc-grid{grid-template-columns:1fr 1fr;}}
@media(max-width:640px){.svc-grid{grid-template-columns:1fr;}}
/* svc-card title: h3 was inheriting Elementor's global orange heading colour — force dark (design = text-strong) */
.svc-card__title .elementor-heading-title{color:#383837!important;}
/* service "what's included" head: left-align (was right-shifted by the sectionhead flex) */
.stm-svc-included .stm-sectionhead{display:block!important;}
.stm-svc-included .stm-sectionhead__col{max-width:62ch;margin:0!important;text-align:left!important;align-items:flex-start!important;}

/* hero fills viewport minus the CTA strip → the full CTA strip sits at the fold, no white below it (desktop) */
@media(min-width:769px){
  .stm-hero,.stm-hero.hero--about{min-height:calc(var(--vh,100vh) - 109px)!important;}
}
/* about-value: tick inline with the bold title (zero the text-col container padding that pushed the title below the tick) */
.about-value>.e-con,.about-value .e-con-inner{padding-top:0!important;padding-bottom:0!important;}
.about-value{align-items:flex-start!important;}
.about-check,.about-value>span:first-child{margin-top:3px!important;}

/* ===== Careers page ===== */
.section-head--center{flex-direction:column!important;align-items:center!important;text-align:center!important;}
.section-head--center .stm-sectionhead__col{max-width:760px;margin:0 auto!important;text-align:center!important;align-items:center!important;}
.section-head--center .stm-lead p,.section-head--center .elementor-heading-title{text-align:center!important;}
/* jobs grid */
.jobs-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:var(--space-5);margin-top:var(--space-10);}
.job-card{position:relative;overflow:hidden;background:#fff;border:1px solid var(--border-subtle);border-radius:var(--radius-lg);padding:calc(var(--space-6) + 6px) var(--space-6) var(--space-6);box-shadow:var(--shadow-sm);display:flex;flex-direction:column;gap:var(--space-3)!important;transition:box-shadow .2s var(--ease-out),transform .2s,border-color .2s;}
.job-card::before{content:"";position:absolute;top:0;left:0;right:0;height:5px;background:#F48D26;z-index:1;}
.job-card:hover{box-shadow:var(--shadow-md);transform:translateY(-2px);border-color:var(--border-strong);}
.job-card__title .elementor-heading-title{font-family:var(--font-display)!important;font-weight:700!important;font-size:1.0625rem!important;color:var(--text-strong)!important;margin:0!important;line-height:1.25;}
.job-card__loc{display:flex!important;align-items:center;gap:6px;color:#2864A9;}
.job-card__loc svg{width:15px;height:15px;flex:none;color:#2864A9;}
.job-card__loc .elementor-heading-title{font-size:.875rem!important;font-weight:600!important;color:#2864A9!important;margin:0!important;}
.job-card__extract p{color:var(--text-muted)!important;font-size:.875rem!important;line-height:1.55!important;margin:0!important;}
.job-card .elementor-widget{margin:0!important;}
.job-card .elementor-widget-button{margin-top:auto!important;}
@media(max-width:1024px){.jobs-grid{grid-template-columns:1fr 1fr;}}
@media(max-width:640px){.jobs-grid{grid-template-columns:1fr;}}
/* EOI */
.stm-eoi{background:#f1f2f2;}
.eoi-grid{display:grid;grid-template-columns:1fr 1.05fr;gap:var(--space-16);align-items:start;}
.eoi-points{display:grid;grid-template-columns:1fr 1fr;gap:var(--space-5) var(--space-6);margin-top:var(--space-6)!important;}
.eoi-point{display:flex!important;gap:10px;align-items:flex-start;}
.eoi-point svg{width:18px;height:18px;color:#F48D26;flex:none;margin-top:2px;}
.eoi-point .elementor-heading-title,.eoi-point p{color:#383837!important;font-size:.875rem!important;font-weight:600!important;line-height:1.5!important;margin:0!important;}
.eoi-point a{color:#215489;text-decoration:underline;}
.eoi-card{background:#fff;border:1px solid var(--border-subtle);border-top:3px solid #F48D26;border-radius:16px;padding:var(--space-8);box-shadow:var(--shadow-lg);}
@media(max-width:900px){.eoi-grid{grid-template-columns:1fr!important;gap:var(--space-10)!important;}.eoi-points{grid-template-columns:1fr!important;}}
/* EOI submit button: longer text, move the send icon further left so it sits before the text (not overlapping) */
.eoi-card .gform_button{background-position:calc(50% - 148px) 50%!important;}

/* ===== Careers fixes ===== */
/* positions head: left-align (was right-shifted by the sectionhead flex); keep the button on the right */
.stm-positions .stm-sectionhead{justify-content:space-between!important;align-items:flex-end!important;}
.stm-positions .stm-sectionhead__col{margin:0 auto 0 0!important;max-width:640px;flex:0 1 auto;}
/* job cards: full-width, larger Apply buttons + tighter internal spacing */
.job-card{gap:var(--space-2)!important;padding:calc(var(--space-6) + 6px) var(--space-6) var(--space-6)!important;}
.job-card .job-card__loc{margin-top:2px!important;}
.job-card .elementor-widget-button{width:100%!important;margin-top:var(--space-4)!important;}
.job-card .elementor-button{width:100%!important;justify-content:center!important;padding:13px 20px!important;font-size:.9375rem!important;border-radius:8px!important;}
/* EOI tick items: align left so the tick sits at the intro's left edge (text lines up under the paragraph) */
.eoi-point{padding:0!important;}
.eoi-point>.e-con,.eoi-point .e-con-inner{padding:0!important;}
/* EOI points grid: zero container padding so ticks align with the intro paragraph's left edge */
.stm-eoi .eoi-points{padding:0!important;}
.stm-eoi .eoi-points>.e-con-inner{padding:0!important;}
/* positions head: keep button on ONE row, bottom-aligned in line with the text; tighten gap to the listings */
.stm-positions .stm-sectionhead{flex-direction:row!important;flex-wrap:nowrap!important;justify-content:space-between!important;align-items:flex-end!important;gap:32px!important;}
.stm-positions .stm-sectionhead__col{margin:0!important;max-width:640px;flex:0 1 auto;}
.stm-positions .stm-sectionhead .elementor-widget-button{flex:0 0 auto;}
.stm-positions .jobs-grid{margin-top:24px!important;}
/* tick blocks (about-values): zero the item container's padding so the tick aligns with the paragraph above it */
.about-value{padding:0!important;}
/* about-values GRID container: zero padding so the first tick aligns with the paragraph above */
.about-values{padding:0!important;}
.about-values>.e-con-inner{padding-left:0!important;padding-right:0!important;}

/* ===== Industries page ===== */
.ind-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:var(--space-5);margin-top:var(--space-10);}
.ind-card{position:relative;overflow:hidden;display:flex!important;flex-direction:column;background:#fff;border:1px solid var(--border-subtle);border-radius:var(--radius-lg);padding:calc(var(--space-6) + 6px) var(--space-6) var(--space-6)!important;box-shadow:var(--shadow-sm);text-decoration:none;transition:box-shadow .2s var(--ease-out),transform .2s,border-color .2s;}
.ind-card::before{content:"";position:absolute;top:0;left:0;right:0;height:5px;background:#F48D26;z-index:1;}
.ind-card:hover{box-shadow:var(--shadow-lg);transform:translateY(-2px);border-color:var(--border-strong);}
.ind-icon{width:56px;height:56px;border-radius:var(--radius-md);background:#383837;color:#F48D26;display:inline-flex!important;align-items:center;justify-content:center;margin-bottom:var(--space-4)!important;flex:none;transition:background .2s,color .2s;}
.ind-card:hover .ind-icon{background:#F48D26;color:#383837;}
.ind-icon svg{width:26px;height:26px;}
.ind-card .ind-title .elementor-heading-title{font-size:1.0625rem!important;margin:0 0 6px!important;color:var(--text-strong)!important;font-weight:700!important;font-family:var(--font-display)!important;}
.ind-card .ind-desc p{color:var(--text-muted)!important;font-size:.875rem!important;margin:0 0 var(--space-4)!important;line-height:1.55!important;}
.ind-card .elementor-widget{margin:0!important;}
.ind-more{display:flex!important;align-items:center;gap:6px;margin-top:auto!important;}
.ind-more .elementor-heading-title{color:#215489!important;font-weight:700!important;font-size:.875rem!important;margin:0!important;}
.ind-more svg{width:15px;height:15px;color:#215489;}
@media(max-width:1024px){.ind-grid{grid-template-columns:1fr 1fr;}}
@media(max-width:560px){.ind-grid{grid-template-columns:1fr;}}
/* approach */
.approach-grid{display:grid;grid-template-columns:1fr 1.15fr;gap:var(--space-12);align-items:start;}
.approach-steps{display:grid!important;gap:var(--space-4)!important;}
.approach-step{display:flex!important;flex-direction:row!important;gap:var(--space-5)!important;align-items:flex-start;background:#fff;border:1px solid var(--border-subtle);border-left:3px solid #F48D26;border-radius:var(--radius-lg);padding:var(--space-5) var(--space-6)!important;box-shadow:var(--shadow-sm);transition:box-shadow .2s,transform .2s;}
.approach-step:hover{box-shadow:var(--shadow-md);transform:translateX(3px);}
.approach-num{flex:none!important;min-width:40px;}
.approach-num .elementor-heading-title{font-family:var(--font-display)!important;font-weight:900!important;font-size:2.6rem!important;color:#F48D26!important;line-height:1!important;}
.approach-step .approach-title .elementor-heading-title{font-size:1.0625rem!important;margin:0 0 4px!important;color:var(--text-strong)!important;font-weight:700!important;font-family:var(--font-display)!important;}
.approach-step .approach-desc p{margin:0!important;color:var(--text-muted)!important;font-size:.875rem!important;line-height:1.55!important;}
.approach-step .elementor-widget{margin:0!important;}
@media(max-width:900px){.approach-grid{grid-template-columns:1fr!important;gap:var(--space-8)!important;}}
/* approach-step: number is a container (defaults width:100%) — force it narrow so the body takes the rest */
.approach-num{flex:0 0 auto!important;width:auto!important;min-width:40px;}
.approach-body{flex:1 1 auto!important;width:auto!important;min-width:0;}

/* ===== Locations feed (dynamic cards from stm_location CPT) ===== */
.locfeed-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:var(--space-8);margin-top:var(--space-2);}
.locfeed-card{position:relative;display:flex;flex-direction:column;background:#fff;border:1px solid var(--border-subtle);border-radius:16px;overflow:hidden;box-shadow:var(--shadow-md);transition:box-shadow .2s var(--ease-out),transform .2s,border-color .2s;}
.locfeed-card:hover{box-shadow:var(--shadow-xl,0 20px 40px rgba(0,0,0,.12));transform:translateY(-3px);border-color:var(--border-strong);}
.locfeed-mapwrap{position:relative;height:230px;overflow:hidden;border-bottom:4px solid #F48D26;}
.locfeed-mapwrap img{width:100%;height:100%!important;object-fit:cover;display:block;transition:transform .6s var(--ease-out);}
.locfeed-card:hover .locfeed-mapwrap img{transform:scale(1.04);}
.locfeed-maplink{position:absolute;top:var(--space-4);left:var(--space-4);z-index:2;display:inline-flex;align-items:center;gap:7px;background:#fefefe;border-radius:var(--radius-md);padding:8px 14px;font-family:var(--font-sans,Archivo);font-weight:700;font-size:.875rem;color:#1e4d7b;text-decoration:none;box-shadow:var(--shadow-sm);}
.locfeed-maplink:hover{transform:translateY(-1px);box-shadow:var(--shadow-md);}
.locfeed-maplink svg{width:15px;height:15px;}
.locfeed-body{display:flex;flex-direction:column;flex:1;padding:var(--space-8);}
.locfeed-title{font-family:var(--font-display)!important;font-weight:900;font-size:1.5rem;color:var(--text-strong);margin:0 0 var(--space-4);line-height:1.1;}
.locfeed-desc{font-size:1.0625rem;color:var(--text-muted);line-height:1.65;margin:0;}
.locfeed-rule{height:1px;background:var(--border-subtle);margin:var(--space-8) 0;}
.locfeed-meta{list-style:none;margin:0 0 var(--space-8);padding:0;display:grid;gap:var(--space-5);}
.locfeed-meta li{display:flex;align-items:center;gap:14px;color:#383837;font-weight:600;font-size:1.0625rem;}
.locfeed-meta a{color:#383837;text-decoration:none;}
.locfeed-meta a:hover{color:var(--orange-700);}
.locfeed-meta svg{width:22px;height:22px;color:#2864A9;flex:none;}
.locfeed-actions{display:flex;flex-wrap:wrap;gap:var(--space-3);margin-top:auto;}
.locfeed-actions .btn{display:inline-flex;align-items:center;gap:8px;border-radius:999px;padding:13px 26px;font-family:var(--font-sans,Archivo);font-weight:700;font-size:1rem;text-decoration:none;border:1.5px solid transparent;transition:background .2s,border-color .2s,transform .2s;}
.locfeed-actions .btn svg{width:16px;height:16px;}
.locfeed-actions .btn--primary{background:#F48D26;color:#1C1C1B;border-color:#F48D26;}
.locfeed-actions .btn--primary:hover{background:#DB7711;border-color:#DB7711;}
.locfeed-actions .btn--outline{background:transparent;color:#262625;border-color:#CDCDCA;}
.locfeed-actions .btn--outline:hover{background:#F8F8F7;border-color:#AEAEAB;}
@media(max-width:820px){.locfeed-grid{grid-template-columns:1fr;}}
/* footer column headers as links to their overview pages */
.footer__colhead{color:inherit;text-decoration:none;transition:color .15s;}
.footer__colhead:hover{color:#F48D26;}

/* ===== Location contact strip (locstrip) — dynamic from stm_location meta ===== */
.locstrip{background:#fefefe;}
.locstrip__bar{background:#F48D26;height:9px;}
.locstrip__cardwrap{max-width:1320px;margin:0 auto;padding:0 24px;}
.locstrip__card{background:#fff;border-top:1px solid var(--border-subtle);border-bottom:1px solid var(--border-subtle);display:grid;grid-template-columns:1.7fr 1.05fr 0.95fr clamp(260px,23vw,410px);align-items:stretch;}
.locstrip__cell{padding:var(--space-6) var(--space-7);display:flex;flex-direction:column;justify-content:center;gap:0;border-right:1px solid var(--border-subtle);}
.locstrip__row{display:flex;align-items:flex-start;gap:14px;}
.locstrip__cell--stack .locstrip__row{padding:var(--space-4) 0;}
.locstrip__cell--stack .locstrip__row+.locstrip__row{border-top:1px solid var(--border-subtle);}
.locstrip__ic{width:30px;height:30px;flex:none;display:inline-flex;align-items:center;justify-content:center;color:#F48D26;margin-top:2px;}
.locstrip__ic svg{width:22px;height:22px;}
.locstrip__label{display:block;font-family:var(--font-display);font-weight:700;text-transform:uppercase;letter-spacing:.08em;font-size:.8125rem;color:var(--text-strong);margin-bottom:4px;}
.locstrip__value{display:block;color:var(--text-muted);font-size:.875rem;text-decoration:none;line-height:1.45;}
.locstrip__value--nowrap{white-space:nowrap;}
.locstrip__value[href]:hover{color:var(--orange-700);}
.locstrip__map{position:relative;min-height:180px;border-left:1px solid var(--border-subtle);}
.locstrip__map iframe{position:absolute;inset:0;width:100%;height:100%;border:0;display:block;}
@media(max-width:900px){.locstrip__card{grid-template-columns:1fr;}.locstrip__cell{border-right:0;border-bottom:1px solid var(--border-subtle);}.locstrip__value--nowrap{white-space:normal;}.locstrip__map{min-height:240px;border-left:0;}}

/* ===== Perf: metric-matched fallback for Archivo to eliminate font-swap layout shift (CLS) ===== */
@font-face{font-family:'Archivo Fallback';src:local('Arial');size-adjust:100%;ascent-override:87.8%;descent-override:21%;line-gap-override:0%;}
.elementor-widget-heading .elementor-heading-title,
.elementor-widget-text-editor,.elementor-widget-text-editor p,
.elementor-button,.elementor-widget-button .elementor-button,
.contact-h1 .elementor-heading-title,.hero-h1,.stm-kicker,
.stm-hero,.stm-lead,.about-value__b,.about-value__t,
.svc-card__title,.svc-card__desc,.job-card__title,.approach-title,
.locfeed-title,.locstrip__label,.locstrip__value{
  font-family:"Archivo","Archivo Fallback",Arial,Helvetica,sans-serif !important;
}

/* Self-hosted Archivo (variable, all weights) — loads before paint (preloaded) so no font-swap CLS; pixel-identical to the Google copy. */

@font-face{font-family:'Archivo';font-style:normal;font-weight:400 900;font-display:swap;src:url('../fonts/archivo-latin.woff2') format('woff2');unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+2074,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD;}
@font-face{font-family:'Archivo';font-style:normal;font-weight:400 900;font-display:swap;src:url('../fonts/archivo-latinext.woff2') format('woff2');unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF;}

/* ===== Mobile/alignment fixes (2026-07-07 round) ===== */
/* Careers "current positions" head: stack heading -> text -> button -> cards on mobile */
@media(max-width:768px){
  .stm-positions .stm-sectionhead{flex-direction:column!important;flex-wrap:wrap!important;align-items:flex-start!important;gap:18px!important;}
  .stm-positions .stm-sectionhead__col{max-width:none!important;width:100%!important;flex:1 1 100%!important;}
  .stm-positions .stm-sectionhead .elementor-widget-button{align-self:flex-start!important;flex:0 0 auto!important;}
}
/* Home hero: buttons + USP items were indented 10px (container padding) — align them with the heading/text/divider */
.stm-hero .hero__cta,.stm-hero .hero__trust{padding-left:0!important;padding-right:0!important;}
/* Location contact strip (mobile): equal top/bottom padding on opening-hours, address & map rows (match phone/email) */
@media(max-width:900px){
  .locstrip__cell .locstrip__row{padding:var(--space-4) 0!important;}
  .locstrip__map{margin-top:var(--space-4);min-height:260px;}
}
/* Services grid (/services/): the flex-column feed compressed the tall 1-/2-col grid below its content height, so cards overflowed onto the next section. Block flow lets it grow to content. Desktop (3-col) fits, so keep flex there. */
@media(max-width:1024px){
  .svc-gridfeed{display:block!important;}
}
/* Services carousel: left stays at the content/prev-button margin; let the right side bleed off-screen (tiles continue past the right edge) per design. Desktop/tablet only — mobile shows a single tile. */
@media(min-width:769px){.stm-svc-carousel{padding-right:0!important;}}
/* Perf: serve a mobile-weight home hero background to phones (identical photo, ~60KB vs 259KB) — faster LCP, no visual change (behind the blue overlay). */
@media(max-width:768px){body.home .stm-hero{background-image:url('../2026/07/iStock-1038532394-m.webp')!important;}}

/* ===== Client feedback round (2026-07-08) ===== */
/* Stats: vertical divider 2->3px, horizontal bar 4->6px */
.stat-card{border-left-width:3px!important;}
.stat-card__bar{height:6px!important;min-height:6px!important;max-height:6px!important;flex:0 0 6px!important;}
/* Service tile logo circle: opaque white so the STM mark blends */
.svc-tile__logo{background:#ffffff!important;}
/* Intro "how we help" point icons +15% (26 -> 30px) */
.intro-point__icon svg{width:30px!important;height:30px!important;}
/* Testimonials: never italic + dark nav chevron (eicon fill) on white */
.stm-tst-carousel *,.tst-slide *,.tst-card *{font-style:normal!important;}
.stm-tst-carousel .elementor-swiper-button{background:#fefefe!important;color:#383837!important;}
.stm-tst-carousel .elementor-swiper-button svg,.stm-tst-carousel .elementor-swiper-button svg path,.stm-tst-carousel .elementor-swiper-button i:before{fill:#383837!important;stroke:none!important;color:#383837!important;}
.stm-tst-carousel .elementor-swiper-button:hover{background:var(--orange-400)!important;}
.stm-tst-carousel .elementor-swiper-button:hover svg,.stm-tst-carousel .elementor-swiper-button:hover svg path,.stm-tst-carousel .elementor-swiper-button:hover i:before{fill:#fefefe!important;color:#fefefe!important;}
/* Header "Request A Quote": keep dark text/icon on hover (kit link-hover was turning it orange = invisible) */
.stm-header .stm-btn--primary:hover,.stm-header .stm-btn--primary:hover *{color:#1c1c1b!important;}
.stm-header .stm-btn--primary:hover svg{stroke:#1c1c1b!important;fill:none!important;}
/* Hero "Non-Government" outline button: keep the icon a clean white stroke on hover (was filling white/vanishing) */
.stm-hero .stm-cta .elementor-button svg,.stm-hero .stm-cta:hover .elementor-button svg,.stm-hero .elementor-widget-button:hover svg{fill:none!important;stroke:currentColor!important;}
/* USP blue-panel lead: fit the intro sentence on 2 lines */
.stm-usp .stm-sectionhead__col{max-width:1040px!important;}
/* Footer: clickable column headings use the heading grey (#8a8a87), not the link grey */
.footer__colhead{color:#8a8a87!important;}
/* Footer "Design by Five by Five" credit */
.footer__fbf{display:inline-flex;align-items:center;gap:10px;color:#87aaa1;text-decoration:none;font-weight:600;font-size:.875rem;}
.footer__fbf:hover{color:#aecabf;}
.footer__fbf img{height:22px;width:auto;}
/* Whole-card click overlay (service + industry cards link to their pages) */
.svc-tile,.svc-tile--grid,.stm-card,.ind-card{position:relative;}
.stm-cardlink{position:absolute;inset:0;z-index:6;}
/* USP blue-panel lead on 2 lines (was 62ch = 3 lines) */
.stm-usp .stm-sectionhead p{max-width:920px!important;}
/* Hero trust items: remove Elementor's default 10px container padding so the rows sit closer (match design ~22px item height) */
.stm-hero .hero__trust-item{padding:0!important;}

/* ===== Client feedback round 2 (2026-07-08) ===== */
/* Intro "how we help": remove the text column's 10px top padding so heading/text top-align with the icon */
.intro-point>.e-con{padding-top:0!important;}
/* Stats horizontal bar: 6 -> 8px */
.stat-card__bar{height:8px!important;min-height:8px!important;max-height:8px!important;flex:0 0 8px!important;}
/* Testimonial avatar circle -> white (blend the logo) */
.tst-mark{background:#ffffff!important;}
/* Industry/compliance cards: neutralise the card-link shortcode wrapper so the overlay stretches over the whole card (was resolving to a 0-height wrapper) */
.stm-card>.elementor-widget-shortcode,.stm-card .elementor-widget-shortcode,.stm-card .elementor-widget-shortcode>.elementor-widget-container{position:static!important;margin:0!important;padding:0!important;}

/* ===== 2026-07-08: header CTA hover + hero top space ===== */
/* Header "Request A Quote": match the Government hero CTA hover (darken #F48D26 -> #DB7711, 0.3s) */
.stm-header .stm-btn--primary{transition:background .3s ease,border-color .3s ease,color .3s ease!important;}
.stm-header .stm-btn--primary:hover{background:#DB7711!important;border-color:#DB7711!important;}
/* Small breathing space between the header and the home-hero eyebrow/content */
@media(min-width:769px){body.home .hero__inner>.e-con-inner{padding-top:136px!important;}}

/* ===== Client feedback round 3 (2026-07-08) ===== */
/* FAQ + closing-CTA headings -> 45px (exclude the kickers) */
.faq-head-col .elementor-widget-heading:not(.stm-kicker) .elementor-heading-title{font-size:45px!important;}
.stm-close .stm-sectionhead .elementor-widget-heading:not(.stm-kicker) .elementor-heading-title{font-size:45px!important;}
/* Slider dots: inactive grey (was black), active stays orange pill */
.swiper-pagination-bullet{background:#c4c4c4!important;}
.swiper-pagination-bullet-active{background:#f48d26!important;}
/* USP "why choose us" icons: centre in their boxes (svg sat ~4px high) */
.stm-usp .usp-icon{align-items:center!important;justify-content:center!important;}
.stm-usp .usp-icon svg{display:block!important;margin:auto!important;}
/* Stats: 8px above the caption; force all labels to 2 lines (max-width between "PUBLIC LIABILITY" 199 and "YEARS EXPERIENCE" 227) */
.stat-card__caption{margin-top:8px!important;}
.stat-card__label,.stat-card__label .elementor-heading-title{max-width:210px!important;}
.stat-card__label{margin-left:auto!important;margin-right:auto!important;}
/* Thinner arrows in buttons (2 -> 1.5), but keep the hero Government/Non-Gov icons at 2 */
.stm-cta svg,.stm-cta svg *,.stm-btn svg{stroke-width:1.5px!important;}
.stm-hero .stm-cta svg,.stm-hero .stm-cta svg *{stroke-width:2px!important;}
/* Closing-CTA H2 -> 45px (it's in .close-grid, not .stm-sectionhead) */
.stm-close h2.elementor-heading-title{font-size:45px!important;}
/* Capability panel: tighten the gap between the intro and the Gov/Non-Gov cards */
.stm-cap>.e-con-inner{row-gap:24px!important;}

/* ===== Client feedback round 4 (2026-07-08) ===== */
/* Orange line above the header on scroll (design #78) */
.header--scrolled::before{content:"";position:absolute;top:0;left:0;right:0;height:4px;background:#F48D26;z-index:10;}
/* All buttons: vertically centre their content */
.elementor-button,.stm-btn,.gform_button,.btn{align-items:center!important;}
.elementor-button .elementor-button-content-wrapper{align-items:center!important;}
/* No tap-highlight flash on mobile (burger + buttons/links) */
.nav-burger,#stmBurger,.elementor-button,.stm-btn,a,button{-webkit-tap-highlight-color:transparent;}
/* Prevent orphan words (single word on last line) in copy + headings */
p,li,.elementor-heading-title,.elementor-widget-text-editor,.stm-lead,.hero__lead{text-wrap:pretty;}
/* Mobile only: reduce the space between the header and the home-hero content (desktop unchanged) */
@media(max-width:768px){body.home .hero__inner>.e-con-inner{padding-top:28px!important;}}
/* Service GRID card titles: pad + wrap so long titles aren't clipped by the card edge (#81) */
.svc-tile--grid .svc-tile__title,.svc-tile--grid .svc-tile__title .elementor-heading-title{white-space:normal!important;overflow-wrap:break-word!important;}
.svc-tile--grid .svc-tile__mid{width:auto!important;}
/* Services page H1 -> 2 lines (line 1 "Traffic management services," needs 769px; container is 744) */
body.page-id-242 .stm-hero h1.elementor-heading-title,body.page-id-242 .stm-hero .contact-h1 .elementor-heading-title{font-size:52px!important;}
/* "Everything a compliant worksite needs" -> 2 lines: widen its heading column */
.stm-svc-overview .about-grid{grid-template-columns:1.35fr 1fr!important;}
/* Round 5: "Everything a compliant worksite needs" -> 45px (col already widened to ~700px, fits "EVERYTHING A COMPLIANT" 649px on 2 lines) */
.stm-svc-overview .about-grid .elementor-widget-heading:not(.stm-kicker) .elementor-heading-title{font-size:45px!important;}
/* Round 5: force the services H1 to a clean 2-line balance at 52px (global text-wrap:pretty was making it 3) */
body.page-id-242 .stm-hero h1.elementor-heading-title{text-wrap:normal!important;}

/* ===== Client feedback round 5b (2026-07-08) ===== */
/* Services H1: keep 52px + the design's baked <br> ("...services," / "end to end") by WIDENING the box to fit line-1 (954px); hero is full-width (1320px, no side image) */

/* Hamburger: kill the crimson :active/:focus background + focus outline (comes from the kit, not our CSS) */
.nav-burger,.nav-burger:active,.nav-burger:focus,.nav-burger:focus-visible,.nav-burger:hover,#stmBurger:active,#stmBurger:focus,#stmBurger:focus-visible{background:rgba(255,255,255,0.12)!important;outline:none!important;box-shadow:none!important;-webkit-tap-highlight-color:transparent!important;}
.header--scrolled .nav-burger,.header--scrolled .nav-burger:active,.header--scrolled .nav-burger:focus,.header--scrolled .nav-burger:hover{background:#f1f2f2!important;}
/* Capability card eyebrow: left-align icon+eyebrow with the heading (remove the .cap-tag 10px pad) + reduce space below */
.cap-card .cap-tag{padding:0!important;margin-bottom:-8px!important;}
/* Testimonial arrows: swap the filled eicon glyph for a thin lucide chevron (stroke-width 2) via mask */
.stm-tst-carousel .elementor-swiper-button svg,.stm-tst-carousel .elementor-swiper-button i{display:none!important;}
.stm-tst-carousel .elementor-swiper-button::after{content:"";width:22px;height:22px;background:currentColor;-webkit-mask:var(--chev) center/contain no-repeat;mask:var(--chev) center/contain no-repeat;}
.stm-tst-carousel .elementor-swiper-button-prev::after{--chev:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='m15 18-6-6 6-6'/%3E%3C/svg%3E");}
.stm-tst-carousel .elementor-swiper-button-next::after{--chev:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='m9 18 6-6-6-6'/%3E%3C/svg%3E");}
/* Slider dots: bigger to match the design's prominence */
.swiper-pagination-bullet{width:12px!important;height:12px!important;}
.swiper-pagination-bullet-active{width:34px!important;}
/* Round 5b fixes: active dot bigger (beat the older single-class rule), remove burger focus outline */
.swiper-pagination-bullet.swiper-pagination-bullet-active{width:34px!important;}
.nav-burger:focus,.nav-burger:focus-visible,.nav-burger:active,#stmBurger:focus,#stmBurger:focus-visible,#stmBurger:active{outline:0 none!important;outline-width:0!important;}
/* Round 6: clean LEFT border of the service carousel — clip the loop-clone sliver bleeding into the left padding gutter, keep the right bleed (#87) */

/* Round 7: clip the CLONE on the .swiper (arrows are OUTSIDE it, so their shadow is untouched — removes the grey crescent #88); move next arrow in to match the prev arrow's gap */
.stm-svc-carousel .swiper{overflow:hidden!important;}
.stm-svc-carousel .elementor-swiper-button-next{right:40px!important;}

/* ===== Client feedback round 8 (2026-07-08) ===== */
/* Service-detail "What's included" section head: widen so the H1 is 1 line + lead 2 lines (was 62ch) [#89->#90] */
.stm-svc-included .stm-sectionhead__col{max-width:1040px!important;}
/* Compliance/card headings -> 18px [#91] */
.stm-card__title{font-size:18px!important;}
/* Careers job cards: align headings/locations/text/buttons across cards — reserve 2 lines for the title (aligns locations) + push the button to the bottom */
.job-card__title{min-height:2.6em!important;}
.job-card{display:flex!important;flex-direction:column!important;}
.job-card .stm-cta{margin-top:auto!important;}
/* Industries H1 -> 2 lines at 52px (widen the hero content col so "Traffic management for" 774px fits line 1) */
body.page-id-256 .stm-hero .hero__content{max-width:860px!important;}
body.page-id-256 .stm-hero h1.elementor-heading-title{text-wrap:normal!important;}
/* Location strip: inset + round the map into a card (#93) + a bit more padding on the content cells */
.locstrip__map iframe{inset:16px!important;width:auto!important;height:auto!important;border-radius:14px!important;border:1px solid var(--border-subtle)!important;box-shadow:0 2px 10px rgba(28,28,27,.07);}
.locstrip__map{min-height:220px;}
.locstrip__cell{padding:var(--space-6) var(--space-7)!important;}
@media(min-width:769px){.locstrip__cell{padding-top:var(--space-7)!important;padding-bottom:var(--space-7)!important;}}

/* ===== Client feedback round 9 (2026-07-08) ===== */
/* Location map: taller + vertically centred in its cell (#94) */
.locstrip__map{min-height:260px;}
.locstrip__map iframe{top:16px!important;left:16px!important;bottom:auto!important;right:auto!important;width:calc(100% - 32px)!important;height:calc(100% - 32px)!important;}
/* Contact page: no background box behind the contact icons (#95) */
.loc-ci{background:transparent!important;}
/* Dropdown sub-items: orange chevron before each (matches design) */
.dd-menu a{display:flex!important;align-items:center;gap:11px;}
.dd-menu a svg{width:16px;height:16px;color:#F48D26;flex:none;}
/* Service-detail "included" card headings smaller (#96->#97) */
.stm-svc-included .svc-card__title .elementor-heading-title,.stm-svc-included .svc-card__title h3{font-size:20px!important;}
/* Mobile: all panel top/bottom padding -> 40px (exclude the hero, which needs header clearance) */
@media(max-width:768px){body .e-con.e-parent:not(.stm-hero):not(.hero__inner)>.e-con-inner{padding-top:28px!important;padding-bottom:28px!important;}}

/* ===== Client feedback round 10 (2026-07-08) ===== */
/* Remove the locations tab panel from the location detail pages (#98) — redundant on a single location */
body.single-stm_location .stm-loc-section{display:none!important;}
/* Header dropdowns: widen + no-wrap so every sub-item is on one line */
.dd-menu{min-width:290px!important;}
.dd-menu a{white-space:nowrap!important;}
/* Capability download buttons: counter the content-wrapper 2px shift on the icon so it aligns with the text (#100) */
body.page-id-255 .stm-cta .elementor-button-icon{transform:translateY(-2px)!important;}
/* Capability panels: tighten the gaps between lead, checklist and button (#101->#102) */
body.page-id-255 .about-values{margin-top:12px!important;}
body.page-id-255 .stm-cta{margin-top:14px!important;}
/* KEEPING PEOPLE SAFE: widen the heading grid column so "SAFE WHILE ESSENTIAL" (526px) fits -> clean 3 lines */
@media(min-width:1025px){body.home .intro-grid{grid-template-columns:570px minmax(0,1fr)!important;}}

/* ===== Client feedback round 11 (2026-07-08) ===== */
/* (a) Eyebrow/kicker headings render huge on mobile: Elementor Kit's responsive heading typography overrides the widget's baked 12px (which is desktop-only). Force every .stm-kicker back to the small eyebrow size on mobile, for every panel. 3-class selector beats the .elementor h2.elementor-heading-title mobile rule. [img #2] */
@media(max-width:900px){
  .elementor .stm-kicker,
  .elementor .stm-kicker .elementor-heading-title{font-size:.75rem!important;line-height:1.5!important;letter-spacing:.14em!important;}
}

/* ===== Client feedback: mobile type scale (2026-07-09) =====
   Flat mobile (<=768px) type scale per client:
   eyebrow 12 · panel heading (h2) 22 · card heading (h3) 18 · body p 16 · smaller p 14
   Appended at end of file so it wins on source order over the earlier mobile blocks. */
@media(max-width:768px){
  /* eyebrow = 12px (re-assert; beats the kit's mobile heading typography) */
  .elementor .stm-kicker,
  .elementor .stm-kicker .elementor-heading-title{font-size:12px!important;line-height:1.5!important;letter-spacing:.14em!important;}

  /* panel heading (h2) — fluid so it fills the panel on real phones, scales up toward tablet,
     and shrinks gracefully on tiny screens (no overflow). Was a flat 22px which read too small.
     ~29px @390, ~33px @768, floors at 25px on very small phones. Includes the desktop 45px
     overrides (FAQ / closing-CTA / services overview) so they don't stay large on phones. */
  .elementor h2.elementor-heading-title,
  .stm-sectionhead .elementor-heading-title,
  .stm-usp .elementor-heading-title,
  .stm-cap .elementor-heading-title,
  .stm-close .elementor-heading-title,
  .stm-close h2.elementor-heading-title,
  .faq-head-col .elementor-widget-heading:not(.stm-kicker) .elementor-heading-title,
  .stm-close .stm-sectionhead .elementor-widget-heading:not(.stm-kicker) .elementor-heading-title,
  .stm-svc-overview .about-grid .elementor-widget-heading:not(.stm-kicker) .elementor-heading-title{
    font-size:clamp(25px,7.4vw,33px)!important;line-height:1.15!important;overflow-wrap:break-word;word-break:normal;
  }
  /* keep the decorative testimonials "ghost" wordmark large (background flourish, not a readable panel heading) */
  .elementor .tst-ghost h2.elementor-heading-title,
  .tst-ghost .elementor-heading-title{font-size:clamp(2rem,13vw,3.6rem)!important;line-height:.86!important;}

  /* card heading (h3) — fluid ~20px @390, up to 22px on larger phones/tablet (was a flat 18px) */
  .elementor h3.elementor-heading-title,
  .stm-card__title,.stm-card__title .elementor-heading-title,
  .usp-card__title .elementor-heading-title,
  .cap-card__title .elementor-heading-title,
  .svc-card__title,.svc-card__title .elementor-heading-title,
  .stm-svc-included .svc-card__title .elementor-heading-title,.stm-svc-included .svc-card__title h3,
  .job-card__title,.job-card__title .elementor-heading-title,
  .ind-card .ind-title .elementor-heading-title,
  .approach-step .approach-title .elementor-heading-title,
  .svc-tile__title,.svc-tile__title .elementor-heading-title,
  .locfeed-title{font-size:clamp(18px,5.2vw,22px)!important;line-height:1.3!important;}

  /* body paragraph = 16px (leads / intro / section copy) */
  .stm-sectionhead p,
  .intro-body__lead p,.intro-body__text p,
  .loc-intro,.tst-text,
  .close-points li,
  .stm-lead,.stm-lead p,.hero__lead{font-size:16px!important;line-height:1.55!important;}

  /* smaller paragraph = 14px (card descriptions / captions / meta / list items) */
  .stm-card__desc,
  .usp-card__desc p,
  .cap-card__desc p,.cap-list li,
  .svc-card__desc,.svc-card__desc p,
  .job-card__extract p,
  .ind-card .ind-desc p,
  .approach-step .approach-desc p,
  .svc-tile--grid .svc-tile__desc,
  .intro-point__t,
  .about-value__b,.about-value__t,
  .stat-card__caption,
  .locfeed-desc,.locfeed-meta li,
  .locstrip__value{font-size:14px!important;line-height:1.5!important;}
}

/* ===== Legal / message pages (thank-you, terms) — appended ===== */
.stm-hero .stm-msg{align-items:center;text-align:center;max-width:760px;margin:0 auto}
.stm-hero .stm-msg .hero__lead{max-width:600px;margin-left:auto;margin-right:auto;color:rgba(255,255,255,.85)}
.stm-hero .stm-msg .hero__lead a{color:#F69E44}
.stm-legal .legal-content{max-width:820px;margin:0 auto}
.stm-legal .legal-content h2{font-family:Archivo,sans-serif;font-weight:800;font-size:22px;color:#262625;margin:34px 0 10px;line-height:1.25}
.stm-legal .legal-content h2:first-child{margin-top:0}
.stm-legal .legal-content p{font-family:Archivo,sans-serif;font-size:16px;line-height:1.7;color:#4a4a48;margin:0 0 14px}
.stm-legal .legal-content a{color:#2864A9;text-decoration:underline}
.stm-legal .legal-content ul{margin:0 0 14px;padding-left:22px;list-style:disc}
.stm-legal .legal-content li{font-family:Archivo,sans-serif;font-size:16px;line-height:1.7;color:#4a4a48;margin:0 0 8px}
.stm-legal .legal-content h2[id],.stm-legal .legal-content h3[id]{scroll-margin-top:110px}
.stm-legal .legal-content .legal-doctitle{font-size:30px;margin-top:64px;padding-top:44px;border-top:1px solid #e5e5e3;scroll-margin-top:110px}

/* ===== Client feedback 2026-07-16 ===== */
/* (1) Home intro: tighten the gap between the two body paragraphs (was ~40px: 20px <p> + 20px widget margin) */
.intro-body__lead.elementor-widget{margin-bottom:0!important;margin-block-end:0!important;}
.intro-body__lead p{margin-bottom:16px!important;}
/* (2) Services carousel: give the prev arrow a gap from the first card (was overlapping at left:36 = card edge) */
@media(min-width:1025px){
  .stm-svc-carousel{padding-left:84px!important;}
  /* arrow's left origin is the carousel content box (after padding-left), so a negative
     offset lifts it into the left gutter with a ~12px gap before the first card */
  .stm-svc-carousel .elementor-swiper-button-prev{left:-56px!important;right:auto!important;}
}
/* (3) close-call: centre the phone icon in the orange box (icon-in-shape line-height float + shrunk width) */
.close-call__ic{width:44px!important;height:44px!important;flex:0 0 44px!important;display:flex!important;align-items:center!important;justify-content:center!important;padding:0!important;line-height:0;}
.close-call__ic>*,.close-call__ic .elementor-widget-shortcode,.close-call__ic .elementor-widget-container{display:flex;align-items:center;justify-content:center;width:100%;height:100%;line-height:0;margin:0;}
.close-call__ic svg{display:block;}

/* ===== Client feedback 2026-07-16 (round 2) ===== */
/* (5) close-call: make the whole card click-to-call (EP container link doesn't render an <a>) — stretched tel: overlay */
.close-call{position:relative;}
.close-call>.elementor-widget,.close-call>.elementor-element,.close-call .elementor-widget-shortcode,.close-call .elementor-widget-shortcode>.elementor-widget-container{position:static;}
.close-call__link{position:absolute;inset:0;z-index:6;display:block;text-indent:-9999px;overflow:hidden;}
/* (6) Careers "Careers at STM" intro: widen so it sets on 4 lines (the <p> was capped ~639px) */
.page-id-254 .section-head--center .stm-sectionhead__col{max-width:1000px;}
body.page-id-254 .section-head--center .stm-sectionhead__col .stm-lead p{max-width:1000px!important;}
/* (7) CTA strip on mobile: was oversized/loose — compact padding, line-heights, title & button */
@media(max-width:768px){
  /* strip out the stacked vertical padding: outer .e-con (var), inner .e-con-inner (40px), and the column's default 10px — leave one tight 14px band on the inner */
  .stm-ctastrip .ctastrip__inner{padding-top:0!important;padding-bottom:0!important;--padding-top:0px!important;--padding-bottom:0px!important;row-gap:12px!important;}
  /* beat the global mobile panel-rhythm rule (body .e-con.e-parent...>.e-con-inner{padding:40px}, 0,0,5,1) */
  body .stm-ctastrip .ctastrip__inner.ctastrip__inner.e-con.e-parent>.e-con-inner{padding-top:14px!important;padding-bottom:14px!important;}
  .stm-ctastrip .ctastrip__inner>.e-con-inner>.e-con{padding-top:0!important;padding-bottom:0!important;}
  .ctastrip__title .elementor-heading-title{font-size:19px!important;line-height:1.2!important;}
  .ctastrip__sub,.ctastrip__sub p{font-size:14px!important;line-height:1.45!important;}
  .ctastrip__sub p{margin-top:3px!important;}
  .ctastrip__actions{gap:12px!important;row-gap:10px!important;margin-top:2px!important;}
  .ctastrip__call .elementor-button{font-size:16px!important;}
  .ctastrip__actions .stm-btn-lg .elementor-button{padding:11px 20px!important;font-size:14px!important;}
}

/* ===== Client feedback 2026-07-16 (round 3) ===== */
/* (1) Internal-page hero banners 20% shorter (home .stm-hero has no .hero--about, so untouched) */
@media(min-width:769px){
  .stm-hero.hero--about{min-height:calc((var(--vh,100vh) - 109px) * 0.8)!important;}
}
/* (2) Service "What's included" sub-lead on ONE line (was capped ~639px -> 2 lines): full width + slightly smaller */
@media(min-width:769px){
  .stm-svc-included .stm-sectionhead__col{max-width:100%!important;}
  .stm-svc-included .stm-lead,.stm-svc-included .stm-lead p{max-width:100%!important;font-size:16px!important;line-height:1.5!important;}
}
/* (4) Services overview panel: stack image under text on mobile (was locked 2-col by the .stm-svc-overview 1.35fr/1fr override) */
@media(max-width:768px){
  .stm-svc-overview .about-grid{grid-template-columns:1fr!important;}
}
/* (5) Testimonials ghost wordmark always one line (inner heading lacked nowrap so it wrapped); shrink to fit on mobile */
.tst-ghost,.tst-ghost .elementor-heading-title,.tst-ghost h2.elementor-heading-title{white-space:nowrap!important;}
@media(max-width:768px){
  .elementor .tst-ghost h2.elementor-heading-title,
  .tst-ghost .elementor-heading-title{font-size:min(11.5vw,3.6rem)!important;line-height:.86!important;white-space:nowrap!important;}
}

/* ===== Client feedback 2026-07-16 (round 4): more space below the header before the hero eyebrow/content, WITHOUT growing the hero (content shifts down within the fixed height; desktop only — mobile home hero is content-driven so adding there would extend it) ===== */
@media(min-width:769px){
  .stm-hero.hero--about{padding-top:60px!important;}
}

/* ===== Client feedback 2026-07-16 (round 5, MOBILE-ONLY — desktop untouched) ===== */
@media(max-width:768px){
  /* (2) careers EOI points: keep the check icon inline-left with its text (was wrapping icon above text) */
  .eoi-point{flex-wrap:nowrap!important;align-items:flex-start!important;}
  .eoi-point>.elementor-widget-text-editor,.eoi-point>.e-con,.eoi-point .elementor-widget-container{min-width:0!important;flex:1 1 auto!important;}
  .eoi-points{gap:18px!important;}
  /* (4a) Services hero H1 was locked at 52px on mobile -> "MANAGEMENT" broke mid-word; scale it down + never split words */
  body.page-id-242 .stm-hero h1.elementor-heading-title,body.page-id-242 .stm-hero .contact-h1 .elementor-heading-title{font-size:clamp(26px,7.6vw,34px)!important;line-height:1.1!important;}
  .stm-hero .elementor-widget-heading h1,.hero-h1 .elementor-heading-title,.stm-hero h1.elementor-heading-title{overflow-wrap:normal!important;word-break:normal!important;}
  /* (4b) CTA "Request A Quote" buttons: vertically centre the wording (drop the desktop 2px glyph nudge on mobile) */
  .ctastrip__actions .elementor-button .elementor-button-content-wrapper,.stm-btn-lg .elementor-button-content-wrapper,.stm-header .elementor-button-content-wrapper,.stm-sheet .elementor-button-content-wrapper{transform:none!important;}
  /* (5) footer "about" text: use the full content width (was capped at 38ch, leaving empty space) */
  .footer__about{max-width:none!important;}
}

/* ---- Capability pathway anchors (homepage hero buttons -> /capability/#government|#non-government) ---- */
#government,#non-government{scroll-margin-top:110px}
