/*
 TS Global UI Refresh v1.0 — targeted to the Elementor IDs in the 24 Sep 2026 export.
 All existing page content remains in WordPress. Sections can be disabled in Settings > TS Global UI.
*/
:root { --tsg-ink:#14212d; --tsg-muted:#637484; --tsg-teal:#009c9c; --tsg-deep:#10252e; --tsg-pale:#f1f8f8; --tsg-stroke:#e2ebeb; }
body.tsg-ui-refresh { overflow-x:clip; }
body.tsg-ui-refresh :is(a,button,input):focus-visible { outline:3px solid #007e7e !important; outline-offset:3px; }
/* Elementor / ElementsKit header: both live XML IDs and Site Kit IDs. */
body.tsg-ui-header .elementor-11 :is(.elementor-element-6d1e200,.elementor-element-5ef327c1) {
  padding:8px 20px !important; min-height:76px; background:#fff !important;
  box-shadow:0 1px 0 var(--tsg-stroke) !important;
}
body.tsg-ui-header .elementor-11 :is(.elementor-element-4e5b7c8,.elementor-element-7da13b19) {
  width:100% !important; max-width:1200px !important; margin-inline:auto !important;
  min-height:60px !important; align-items:center !important;
  grid-template-columns: minmax(120px,1fr) minmax(0,3fr) minmax(150px,1fr) !important;
  gap:18px !important;
}
body.tsg-ui-header .elementor-11 :is(.elementor-element-4b3b1c6,.elementor-element-71b81cdb,.elementor-element-07f3fd0,.elementor-element-54cbe45b,.elementor-element-40ec992,.elementor-element-48bb6064) { min-width:0; margin:0 !important; padding:0 !important; }
body.tsg-ui-header .elementor-11 :is(.elementor-element-d55de85,.elementor-element-4a0c3a15,.elementor-element-40ec992,.elementor-element-48bb6064) {
  margin:0 !important; padding:0 !important; width:auto !important;
}
body.tsg-ui-header .elementor-11 :is(.elementor-element-d55de85,.elementor-element-4a0c3a15) .elementor-button {
  color:var(--tsg-teal) !important; background:transparent !important;
  padding:11px 16px !important; border:1px solid #cae7e5 !important;
  border-radius:9px !important; font-size:14px !important; font-weight:650 !important;
  box-shadow:none !important; white-space:nowrap;
}
body.tsg-ui-header .elementor-11 :is(.elementor-element-40ec992,.elementor-element-48bb6064) .elementor-button {
  color:white !important; background:var(--tsg-teal) !important; background-image:none !important;
  padding:12px 19px !important; border-radius:9px !important;
  font-size:14px !important; font-weight:650 !important; white-space:nowrap; box-shadow:none !important;
}
body.tsg-ui-header .elementor-11 :is(.elementor-element-d55de85,.elementor-element-4a0c3a15,.elementor-element-40ec992,.elementor-element-48bb6064) .elementor-button:hover { transform:translateY(-1px); box-shadow:0 5px 15px #02484816 !important; }
body.tsg-ui-header .elementor-11 .elementskit-navbar-nav > li > a { font-size:15px !important; font-weight:550 !important; color:var(--tsg-ink) !important; padding:12px 13px !important; }
body.tsg-ui-header .elementor-11 .elementskit-navbar-nav > li > a:hover { color:var(--tsg-teal) !important; }
body.tsg-ui-header .elementor-11 :is(.elementor-element-7ad4f30,.elementor-element-65d22323) .elementskit-menu-container { min-height:0 !important; }
/* Homepage first section — CSS-only refinement, original content/image untouched. */
body.tsg-ui-home.home :is(.elementor-element-e3fa66a,.elementor-element-6f2f7b8b,.elementor-element-63e3ceb6) {
  max-width:1250px !important; margin:0 auto !important;
  padding:64px 22px 58px !important; gap:22px !important;
}
body.tsg-ui-home.home :is(.elementor-element-3b69c54,.elementor-element-241f232,.elementor-element-525af7a0) .elementor-heading-title {
  color:var(--tsg-ink) !important; font-size:clamp(36px,4.2vw,58px) !important;
  line-height:1.13 !important; letter-spacing:-.042em !important;
  max-width:920px; margin:0 auto !important;
}
body.tsg-ui-home.home :is(.elementor-element-836cdb6,.elementor-element-365f3f6e,.elementor-element-14c8d9af) { margin:0 !important; }
body.tsg-ui-home.home :is(.elementor-element-836cdb6,.elementor-element-365f3f6e,.elementor-element-14c8d9af) p {
  font-size:clamp(16px,1.25vw,19px) !important; line-height:1.65 !important; color:var(--tsg-muted) !important;
  max-width:700px; margin:0 auto !important;
}
body.tsg-ui-home.home :is(.elementor-element-10767d2,.elementor-element-1d5a60c9) .elementor-button,
body.tsg-ui-home.home .elementor-widget-button .elementor-button { border-radius:9px !important; }
body.tsg-ui-home.home :is(.elementor-element-97886d2,.elementor-element-21f86834) { margin-top:14px !important; }
body.tsg-ui-home.home :is(.elementor-element-97886d2,.elementor-element-21f86834) img { max-height:475px; width:100%; object-fit:cover; border-radius:18px !important; }
body.tsg-ui-home.home .elementor-element :is(.elementskit-section-title,.ekit-heading--title) { letter-spacing:-.035em; line-height:1.18; }
body.tsg-ui-home.home .elementor-widget-elementskit-icon-box .elementskit-infobox { box-shadow:0 3px 20px #14212d0c !important; border:1px solid var(--tsg-stroke); border-radius:13px !important; height:100%; }
body.tsg-ui-home.home .elementor-widget-elementskit-icon-box .elementskit-infobox p { font-size:16px !important; line-height:1.6 !important; }
body.tsg-ui-home.home .elementor-widget-elementskit-icon-box .elementskit-info-box-title { font-size:20px !important; line-height:1.3 !important; }
body.tsg-ui-home.home .elementor-widget-elementskit-blog-posts .elementskit-post-image-card { border-radius:13px !important; overflow:hidden; }
/* Footer: restrained spacing without changing forms, maps or contacts. */
body.tsg-ui-footer :is(.elementor-12 .elementor-element-a3e7bcb,.elementor-12 .elementor-element-4360a261) { padding-block:32px !important; }
body.tsg-ui-footer :is(.elementor-12 .elementor-element-dfb468e,.elementor-12 .elementor-element-42240f96) { padding-top:20px !important; margin-top:12px !important; }
body.tsg-ui-footer .elementor-12 p { line-height:1.6; }
/* Dynamic blog experience. */
body.tsg-ui-blog .tsg-blog { color:var(--tsg-ink); font-family:Inter, -apple-system, BlinkMacSystemFont, 'Segoe UI', sans-serif; background:#fff; }
body.tsg-ui-blog .tsg-blog * { box-sizing:border-box; }
body.tsg-ui-blog .tsg-blog-shell { max-width:1220px; padding-inline:24px; margin-inline:auto; }
body.tsg-ui-blog .tsg-blog-hero { background:#102831; color:#fff; position:relative; isolation:isolate; overflow:hidden; }
body.tsg-ui-blog .tsg-blog-hero::after { content:""; position:absolute; width:580px; height:580px; border:1px solid #ffffff1a; border-radius:50%; right:-70px; top:-260px; box-shadow:0 0 0 90px #ffffff06,0 0 0 200px #ffffff04; pointer-events:none; }
body.tsg-ui-blog .tsg-blog-hero .tsg-blog-shell { padding-block:86px 94px; position:relative; z-index:1; }
body.tsg-ui-blog .tsg-blog-eyebrow { color:#85d9d3; letter-spacing:.18em; font-size:11px; font-weight:800; margin-bottom:25px; }
body.tsg-ui-blog .tsg-blog-eyebrow span { color:#ffffff60; margin:0 10px; }
body.tsg-ui-blog .tsg-blog-hero h1 { max-width:840px; color:#fff; font-size:clamp(40px,5.2vw,72px); line-height:1.09; letter-spacing:-.055em; font-weight:700; margin:0 0 25px; }
body.tsg-ui-blog .tsg-dot { color:#26c9c2; }
body.tsg-ui-blog .tsg-blog-hero p { color:#c6d4d7; font-size:clamp(16px,1.4vw,19px); line-height:1.7; max-width:600px; margin:0 0 29px; }
body.tsg-ui-blog .tsg-blog-hero-link { display:inline-flex; gap:14px; align-items:center; color:#fff; text-decoration:none; font-size:14px; font-weight:750; border-bottom:1px solid #32beb8; padding:0 0 8px; }
body.tsg-ui-blog .tsg-blog-hero-link:hover { color:#73e3dc; }
body.tsg-ui-blog .tsg-blog-library { padding-top:72px; padding-bottom:86px; }
body.tsg-ui-blog .tsg-blog-head { display:flex; align-items:end; justify-content:space-between; gap:16px; margin:0 0 28px; }
body.tsg-ui-blog .tsg-section-kicker { color:var(--tsg-teal); font-size:11px; font-weight:800; letter-spacing:.17em; margin-bottom:10px; }
body.tsg-ui-blog .tsg-blog-head h2 { color:var(--tsg-ink); font-size:clamp(31px,3vw,42px); line-height:1.15; letter-spacing:-.04em; margin:0; font-weight:730; }
body.tsg-ui-blog .tsg-blog-count { color:#799096; font-size:11px; letter-spacing:.14em; font-weight:750; padding-bottom:7px; white-space:nowrap; }
body.tsg-ui-blog .tsg-blog-toolbar { display:flex; gap:20px; align-items:center; justify-content:space-between; border-block:1px solid var(--tsg-stroke); padding:17px 0; margin:0 0 32px; }
body.tsg-ui-blog .tsg-blog-filters { display:flex; flex-wrap:wrap; gap:7px; align-items:center; }
body.tsg-ui-blog .tsg-blog-filters a { font-size:13px; color:#536a73; background:transparent; padding:10px 15px; border-radius:50px; text-decoration:none; font-weight:650; line-height:1.2; }
body.tsg-ui-blog .tsg-blog-filters a:hover { color:var(--tsg-teal); background:#eaf5f4; }
body.tsg-ui-blog .tsg-blog-filters a.is-active { color:#fff; background:var(--tsg-deep); }
body.tsg-ui-blog .tsg-blog-search { display:flex; align-items:center; flex:0 0 245px; border:1px solid var(--tsg-stroke); border-radius:9px; overflow:hidden; height:43px; background:#fff; }
body.tsg-ui-blog .tsg-blog-search input { width:100%; padding:9px 12px; border:0 !important; outline:0; font-size:13px; line-height:1.4; box-shadow:none !important; background:transparent; min-width:0; color:var(--tsg-ink); }
body.tsg-ui-blog .tsg-blog-search button { border:0; background:transparent; color:var(--tsg-teal); font-size:19px; padding:7px 14px; cursor:pointer; }
body.tsg-ui-blog .tsg-blog-grid { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:26px; }
body.tsg-ui-blog .tsg-blog-card { border:1px solid var(--tsg-stroke); border-radius:14px; overflow:hidden; background:#fff; display:flex; flex-direction:column; box-shadow:0 3px 16px #14212d05; min-width:0; transition:transform .2s,box-shadow .2s; }
body.tsg-ui-blog .tsg-blog-card:hover { transform:translateY(-4px); box-shadow:0 16px 34px #14212d13; }
body.tsg-ui-blog .tsg-blog-card-media { display:block; position:relative; aspect-ratio:16/9; background:#e3f1f0; overflow:hidden; }
body.tsg-ui-blog .tsg-post-image { display:block; width:100%; height:100%; object-fit:cover; transition:transform .3s; }
body.tsg-ui-blog .tsg-blog-card:hover .tsg-post-image { transform:scale(1.04); }
body.tsg-ui-blog .tsg-blog-placeholder { width:100%; height:100%; display:flex; flex-direction:column; justify-content:center; padding:28px; background:radial-gradient(circle at 90% -10%,#c5e4df 0,#e6f3f0 50%,#d1ece9 100%); }
body.tsg-ui-blog .tsg-blog-placeholder > span { font-size:clamp(38px,5vw,75px); color:#145058; font-weight:800; letter-spacing:-.08em; }
body.tsg-ui-blog .tsg-blog-placeholder small { color:#39767d; font-size:11px; font-weight:800; letter-spacing:.18em; }
body.tsg-ui-blog .tsg-blog-open { position:absolute; right:16px; bottom:16px; width:36px; height:36px; display:grid; place-items:center; background:#fff; color:var(--tsg-ink); border-radius:100%; font-size:18px; font-weight:700; }
body.tsg-ui-blog .tsg-blog-card-body { display:flex; flex-direction:column; flex:1; padding:23px 23px 24px; }
body.tsg-ui-blog .tsg-blog-meta { display:flex; align-items:center; gap:9px; color:#74858d; font-size:12px; line-height:1.5; margin:0 0 12px; }
body.tsg-ui-blog .tsg-blog-meta > span:first-child { color:var(--tsg-teal); font-weight:750; }
body.tsg-ui-blog .tsg-meta-dot { color:#afbdbd; }
body.tsg-ui-blog .tsg-blog-card h3 { color:var(--tsg-ink); font-size:19px; line-height:1.36; letter-spacing:-.025em; margin:0 0 11px; font-weight:700; }
body.tsg-ui-blog .tsg-blog-card h3 a { color:inherit; text-decoration:none; }
body.tsg-ui-blog .tsg-blog-card h3 a:hover { color:var(--tsg-teal); }
body.tsg-ui-blog .tsg-blog-card-body p { font-size:14px; line-height:1.7; color:var(--tsg-muted); margin:0 0 22px; display:-webkit-box; -webkit-line-clamp:3; -webkit-box-orient:vertical; overflow:hidden; }
body.tsg-ui-blog .tsg-blog-read { color:#007c7a; text-decoration:none; display:inline-flex; justify-content:space-between; align-items:center; gap:10px; border-top:1px solid var(--tsg-stroke); padding-top:16px; margin-top:auto; font-size:13px; font-weight:750; }
body.tsg-ui-blog .tsg-blog-read:hover { color:var(--tsg-ink); }
body.tsg-ui-blog .tsg-blog-pagination { margin-top:46px; border-top:1px solid var(--tsg-stroke); display:flex; align-items:center; justify-content:space-between; gap:15px; padding-top:25px; color:#62717b; font-size:13px; }
body.tsg-ui-blog .tsg-blog-pagination a, body.tsg-ui-blog .tsg-blog-empty a { display:inline-block; text-decoration:none; padding:11px 16px; background:var(--tsg-pale); color:#007f7d; border-radius:8px; font-weight:700; }
body.tsg-ui-blog .tsg-blog-empty { text-align:center; padding:55px 20px; border:1px dashed var(--tsg-stroke); border-radius:13px; }
body.tsg-ui-blog .tsg-blog-empty h3 { color:var(--tsg-ink); }
body.tsg-ui-blog .tsg-blog-end-cta { background:var(--tsg-pale); padding:60px 0; }
body.tsg-ui-blog .tsg-blog-end-cta .tsg-blog-shell { display:flex; align-items:center; justify-content:space-between; gap:30px; }
body.tsg-ui-blog .tsg-blog-end-cta span { font-size:11px; letter-spacing:.16em; color:var(--tsg-teal); font-weight:800; }
body.tsg-ui-blog .tsg-blog-end-cta h2 { font-size:clamp(28px,3vw,41px); color:var(--tsg-ink); letter-spacing:-.04em; margin:12px 0; }
body.tsg-ui-blog .tsg-blog-end-cta p { color:var(--tsg-muted); margin:0; }
body.tsg-ui-blog .tsg-blog-end-cta a { background:var(--tsg-teal); color:#fff; font-weight:750; padding:16px 20px; border-radius:8px; white-space:nowrap; text-decoration:none; }
/* Article page typography without swapping existing theme templates/SEO output. */
body.tsg-ui-article.single-post :is(.entry-content,.wp-block-post-content,.elementor-widget-theme-post-content) { color:#35444c; font-size:17px; line-height:1.86; overflow-wrap:anywhere; }
body.tsg-ui-article.single-post :is(.entry-content,.wp-block-post-content,.elementor-widget-theme-post-content) > :is(p,ul,ol,h2,h3,h4,blockquote) { max-width:800px; margin-inline:auto; }
body.tsg-ui-article.single-post :is(.entry-content,.wp-block-post-content,.elementor-widget-theme-post-content) :is(h2,h3,h4) { color:var(--tsg-ink); letter-spacing:-.028em; line-height:1.3; margin-top:1.4em; }
body.tsg-ui-article.single-post :is(.entry-content,.wp-block-post-content) img { border-radius:10px; height:auto; }
/* Small screens */
@media (max-width:1024px) {
 body.tsg-ui-header .elementor-11 :is(.elementor-element-4e5b7c8,.elementor-element-7da13b19) { grid-template-columns:minmax(105px,1fr) minmax(0,2fr) auto !important; gap:8px !important; }
 body.tsg-ui-header .elementor-11 :is(.elementor-element-d55de85,.elementor-element-4a0c3a15) .elementor-button { padding:10px 12px !important; }
 body.tsg-ui-header .elementor-11 :is(.elementor-element-40ec992,.elementor-element-48bb6064) .elementor-button { padding:11px 13px !important; }
 body.tsg-ui-blog .tsg-blog-grid { grid-template-columns:repeat(2,minmax(0,1fr)); }
 body.tsg-ui-blog .tsg-blog-toolbar { align-items:stretch; flex-direction:column; }
 body.tsg-ui-blog .tsg-blog-search { flex:0 0 43px; max-width:360px; }
}
@media (max-width:767px) {
 body.tsg-ui-header .elementor-11 :is(.elementor-element-6d1e200,.elementor-element-5ef327c1) { padding:7px 11px !important; min-height:60px; }
 body.tsg-ui-header .elementor-11 :is(.elementor-element-4e5b7c8,.elementor-element-7da13b19) { grid-template-columns:minmax(0,1fr) auto auto !important; min-height:47px !important; gap:7px !important; }
 body.tsg-ui-header .elementor-11 :is(.elementor-element-4b3b1c6,.elementor-element-71b81cdb) { order:1 !important; justify-self:start !important; }
 body.tsg-ui-header .elementor-11 :is(.elementor-element-40ec992,.elementor-element-48bb6064) { order:2 !important; justify-self:end !important; }
 body.tsg-ui-header .elementor-11 :is(.elementor-element-07f3fd0,.elementor-element-54cbe45b) { order:3 !important; justify-self:end !important; }
 body.tsg-ui-header .elementor-11 :is(.elementor-element-d55de85,.elementor-element-4a0c3a15) .elementor-button,
 body.tsg-ui-header .elementor-11 :is(.elementor-element-40ec992,.elementor-element-48bb6064) .elementor-button { font-size:12px !important; padding:10px 9px !important; min-height:39px; }
 body.tsg-ui-header .elementor-11 :is(.elementor-element-07f3fd0,.elementor-element-54cbe45b) .elementskit-menu-hamburger { margin:0 !important; }
 body.tsg-ui-home.home :is(.elementor-element-e3fa66a,.elementor-element-6f2f7b8b,.elementor-element-63e3ceb6) { padding:43px 17px 43px !important; gap:15px !important; }
 body.tsg-ui-home.home :is(.elementor-element-3b69c54,.elementor-element-241f232,.elementor-element-525af7a0) .elementor-heading-title { font-size:clamp(32px,8vw,42px) !important; line-height:1.14 !important; }
 body.tsg-ui-blog .tsg-blog-shell { padding-inline:17px; }
 body.tsg-ui-blog .tsg-blog-hero .tsg-blog-shell { padding-block:66px 76px; }
 body.tsg-ui-blog .tsg-blog-hero h1 { font-size:clamp(36px,9vw,49px); }
 body.tsg-ui-blog .tsg-blog-library { padding-block:49px 60px; }
 body.tsg-ui-blog .tsg-blog-grid { grid-template-columns:1fr; gap:20px; }
 body.tsg-ui-blog .tsg-blog-count { display:none; }
 body.tsg-ui-blog .tsg-blog-filters { flex-wrap:nowrap; overflow-x:auto; padding-bottom:4px; }
 body.tsg-ui-blog .tsg-blog-filters a { flex:0 0 auto; white-space:nowrap; }
 body.tsg-ui-blog .tsg-blog-search { max-width:none; width:100%; }
 body.tsg-ui-blog .tsg-blog-end-cta .tsg-blog-shell { flex-direction:column; align-items:flex-start; }
 body.tsg-ui-blog .tsg-blog-card h3 { font-size:20px; }
}
@media (prefers-reduced-motion:reduce) { body.tsg-ui-blog .tsg-blog-card,body.tsg-ui-blog .tsg-post-image { transition:none; } }
/* Optional imported redesigned Elementor header/hero templates. */
body.tsg-ui-header .elementor-11 .tsg-header-grid { grid-template-columns:170px minmax(0,1fr) 105px 148px !important; gap:12px !important; }
body.tsg-ui-header .elementor-11 .tsg-header-brand img { width:164px; height:auto; max-width:100%; object-fit:contain; }
body.tsg-ui-header .elementor-11 .tsg-header-cta .elementor-button { background:var(--tsg-teal) !important; }
body.tsg-ui-home.home .tsg-redesigned-hero { max-width:1240px !important; grid-template-columns:minmax(0,1.06fr) minmax(0,.94fr) !important; gap:48px !important; }
body.tsg-ui-home.home .tsg-redesigned-hero .tsg-hero-copy .elementor-heading-title { max-width:none !important; margin:0 !important; }
body.tsg-ui-home.home .tsg-redesigned-hero .tsg-hero-copy p { max-width:none !important; margin:0 !important; }
body.tsg-ui-home.home .tsg-redesigned-hero .tsg-hero-art img { height:auto; min-height:340px; object-fit:cover; border-radius:16px !important; }
@media (max-width:1024px) {
 body.tsg-ui-header .elementor-11 .tsg-header-grid { grid-template-columns:140px minmax(0,1fr) 88px 135px !important; gap:7px !important; }
 body.tsg-ui-home.home .tsg-redesigned-hero { grid-template-columns:1fr !important; gap:26px !important; }
 body.tsg-ui-home.home .tsg-redesigned-hero .tsg-hero-art img { min-height:0; max-height:430px; }
}
@media (max-width:767px) {
 body.tsg-ui-header .elementor-11 .tsg-header-grid { grid-template-columns:minmax(112px,1fr) auto auto !important; gap:7px !important; }
 body.tsg-ui-header .elementor-11 .tsg-header-brand { order:1 !important; }
 body.tsg-ui-header .elementor-11 .tsg-header-menu { order:3 !important; }
 body.tsg-ui-header .elementor-11 .tsg-header-cta { order:2 !important; }
 body.tsg-ui-header .elementor-11 .tsg-header-grid .elementor-element-4b3b1c6 { display:none !important; }
 body.tsg-ui-header .elementor-11 .tsg-header-brand img { width:120px; }
 body.tsg-ui-home.home .tsg-redesigned-hero { grid-template-columns:minmax(0,1fr) !important; padding:43px 18px !important; }
 body.tsg-ui-home.home .tsg-redesigned-hero .tsg-hero-art img { max-height:300px; }
}
body.tsg-ui-header .elementor-11 .tsg-header-call .elementor-button {
 background:#eaf7f5 !important; color:#007e7d !important; border:1px solid #cbe7e4 !important;
 border-radius:9px !important; font-size:13px !important; padding:11px 12px !important;
}
body.tsg-ui-header .elementor-11 .tsg-header-cta .elementor-button {
 background:#009c9c !important; color:#fff !important; border:0 !important;
 border-radius:9px !important; font-size:13px !important; padding:12px 16px !important;
}
body.tsg-ui-header .elementor-11 .tsg-header-menu .elementskit-navbar-nav > li > a {
 font-size:15px !important; color:#14212d !important; padding:11px 10px !important;
}
@media (max-width:767px) {
 body.tsg-ui-header .elementor-11 .tsg-header-call { display:none !important; }
 body.tsg-ui-header .elementor-11 .tsg-header-cta .elementor-button { font-size:12px !important; padding:10px 10px !important; }
}
/* Consistent text rhythm on About / Services / Industries / Contact; don't rewrite content. */
body.tsg-ui-refresh :is(.elementor-18,.elementor-889,.elementor-807,.elementor-23) .elementor-widget-text-editor p {
 line-height:1.72; overflow-wrap:break-word;
}
body.tsg-ui-refresh :is(.elementor-18,.elementor-889,.elementor-807,.elementor-23) :is(.elementor-heading-title,.elementskit-section-title) {
 letter-spacing:-.035em; line-height:1.2;
}
body.tsg-ui-refresh :is(.elementor-18,.elementor-889,.elementor-807,.elementor-23) .elementor-widget-button .elementor-button {
 border-radius:9px !important;
}
body.tsg-ui-refresh .wpcf7 :is(input:not([type="submit"]):not([type="checkbox"]):not([type="radio"]),textarea,select) {
 max-width:100%; border:1px solid #dbe7e7; border-radius:9px; padding:12px 14px; background:#fff; box-sizing:border-box;
}

/* v1.0.1: Call Now and Get In Touch use the exact same teal, border and text treatment.
   Includes both live Elementor IDs and the optional imported header template. */
body.tsg-ui-header .elementor-11 :is(
 .elementor-element-d55de85, .elementor-element-4a0c3a15,
 .elementor-element-40ec992, .elementor-element-48bb6064,
 .tsg-header-call, .tsg-header-cta
) .elementor-button {
  background:var(--tsg-teal) !important;
  background-image:none !important;
  color:#fff !important;
  border:1px solid var(--tsg-teal) !important;
  box-shadow:none !important;
}
body.tsg-ui-header .elementor-11 :is(
 .elementor-element-d55de85, .elementor-element-4a0c3a15,
 .elementor-element-40ec992, .elementor-element-48bb6064,
 .tsg-header-call, .tsg-header-cta
) .elementor-button:hover {
  background:#007e7e !important;
  background-image:none !important;
  border-color:#007e7e !important;
  color:#fff !important;
}
/* v1.1.0 — opt-in two-column homepage refresh.
   Works on the known Home Elementor 14 first-container ID; no data/SEO changes.
   Does not affect optional imported "tsg-redesigned-hero" template. */
body.tsg-ui-home.tsg-ui-hero.home :is(.elementor-element-e3fa66a,.elementor-element-6f2f7b8b,.elementor-element-63e3ceb6):not(.tsg-redesigned-hero) {
  max-width:1240px !important;
  width:100% !important;
  margin:0 auto !important;
  padding:72px 28px 80px !important;
  background:#fff !important;
  box-sizing:border-box;
}
/* Elementor containers may be boxed (.e-con-inner) or full-width (direct children). */
body.tsg-ui-home.tsg-ui-hero.home :is(.elementor-element-e3fa66a,.elementor-element-6f2f7b8b,.elementor-element-63e3ceb6):not(.tsg-redesigned-hero).e-con-full,
body.tsg-ui-home.tsg-ui-hero.home :is(.elementor-element-e3fa66a,.elementor-element-6f2f7b8b,.elementor-element-63e3ceb6):not(.tsg-redesigned-hero) > .e-con-inner {
  display:grid !important;
  grid-template-columns:minmax(0,1.04fr) minmax(0,.96fr) !important;
  grid-template-rows:auto auto auto 1fr !important;
  column-gap:clamp(30px,5vw,72px) !important;
  row-gap:24px !important;
  align-items:center !important;
}
body.tsg-ui-home.tsg-ui-hero.home :is(.elementor-element-e3fa66a,.elementor-element-6f2f7b8b,.elementor-element-63e3ceb6):not(.tsg-redesigned-hero) > .e-con-inner {
  width:100% !important;
  max-width:1184px !important;
  margin-inline:auto !important;
}
/* Title */
body.tsg-ui-home.tsg-ui-hero.home :is(.elementor-element-3b69c54,.elementor-element-241f232,.elementor-element-525af7a0) {
  grid-column:1; grid-row:1; align-self:end; width:100% !important;
  text-align:left !important; margin:0 !important; padding:0 !important;
}
body.tsg-ui-home.tsg-ui-hero.home :is(.elementor-element-3b69c54,.elementor-element-241f232,.elementor-element-525af7a0) .elementor-widget-container::before {
  content:'NEW YORK  /  ACCOUNTING & OUTSOURCING';
  display:block; color:#008d8b; font:800 11px/1.4 Inter,Arial,sans-serif;
  letter-spacing:.15em; margin:0 0 20px;
}
body.tsg-ui-home.tsg-ui-hero.home :is(.elementor-element-3b69c54,.elementor-element-241f232,.elementor-element-525af7a0) .elementor-heading-title {
  max-width:none !important;
  margin:0 !important;
  color:#14212d !important;
  font-size:clamp(35px,3.7vw,54px) !important;
  line-height:1.115 !important;
  text-align:left !important;
  letter-spacing:-.048em !important;
  font-weight:700 !important;
}
/* Description */
body.tsg-ui-home.tsg-ui-hero.home :is(.elementor-element-836cdb6,.elementor-element-365f3f6e,.elementor-element-14c8d9af) {
  grid-column:1; grid-row:2; align-self:start;
  width:100% !important; max-width:none !important;
  margin:0 !important; padding:0 !important;
  text-align:left !important;
}
body.tsg-ui-home.tsg-ui-hero.home :is(.elementor-element-836cdb6,.elementor-element-365f3f6e,.elementor-element-14c8d9af) p {
  text-align:left !important;
  margin:0 !important;
  max-width:510px !important;
  color:#5c6e7a !important;
  font-size:clamp(16px,1.2vw,18px) !important;
  line-height:1.75 !important;
  font-weight:400 !important;
}
/* Primary CTA */
body.tsg-ui-home.tsg-ui-hero.home :is(.elementor-element-10767d2,.elementor-element-617412d3,.elementor-element-1d5a60c9) {
  grid-column:1; grid-row:3; align-self:start;
  justify-self:start; width:auto !important; margin:0 !important;
  text-align:left !important;
}
body.tsg-ui-home.tsg-ui-hero.home :is(.elementor-element-10767d2,.elementor-element-617412d3,.elementor-element-1d5a60c9) .elementor-button {
  padding:17px 26px !important;
  min-height:52px;
  border:0 !important;
  border-radius:10px !important;
  background:#009c9c !important;
  background-image:none !important;
  color:#fff !important;
  font:700 15px/1.2 Inter,Arial,sans-serif !important;
  box-shadow:0 10px 24px rgba(0,124,124,.12) !important;
  transition:transform .2s ease,background-color .2s ease;
}
body.tsg-ui-home.tsg-ui-hero.home :is(.elementor-element-10767d2,.elementor-element-617412d3,.elementor-element-1d5a60c9) .elementor-button:hover {
  background:#007e7e !important; transform:translateY(-2px);
}
/* Existing photographic asset, now on the right. */
body.tsg-ui-home.tsg-ui-hero.home :is(.elementor-element-97886d2,.elementor-element-1ee9abe5,.elementor-element-21f86834) {
  grid-column:2; grid-row:1 / 5;
  align-self:stretch; width:100% !important; max-width:none !important;
  margin:0 !important; padding:0 !important;
  border-radius:20px !important;
  overflow:hidden;
  min-width:0;
  background:#dcedea;
  box-shadow:0 22px 58px rgba(16,40,49,.11);
}
body.tsg-ui-home.tsg-ui-hero.home :is(.elementor-element-97886d2,.elementor-element-1ee9abe5,.elementor-element-21f86834) .elementor-widget-container,
body.tsg-ui-home.tsg-ui-hero.home :is(.elementor-element-97886d2,.elementor-element-1ee9abe5,.elementor-element-21f86834) .elementor-image {
  width:100%; height:100%;
}
body.tsg-ui-home.tsg-ui-hero.home :is(.elementor-element-97886d2,.elementor-element-1ee9abe5,.elementor-element-21f86834) img {
  display:block; width:100% !important;
  height:100% !important;
  min-height:405px; max-height:520px !important;
  object-fit:cover !important;
  object-position:center center !important;
  border-radius:0 !important;
}
/* Existing second section: reduce saturated neon and align to the journal's navy. */
body.tsg-ui-home.tsg-ui-hero.home :is(.elementor-element-198d10d,.elementor-element-6a2cb671,.elementor-element-4668a422) {
  background:#102831 !important;
  background-image:none !important;
  margin-top:0 !important;
  padding-block:clamp(54px,6vw,85px) !important;
}
/* Keep content width comfortable for existing Elementor sections. */
body.tsg-ui-home.tsg-ui-hero.home :is(.elementor-element-37a33a4,.elementor-element-16d5e54,.elementor-element-c42056d,.elementor-element-4e352d0) {
  padding-block:clamp(56px,6vw,82px) !important;
}
/* Optional logo insert: only after JavaScript confirms this is the exported header. */
body.tsg-ui-header.tsg-ui-logo .elementor-11 .tsg-logo-ready {
  display:grid !important;
  grid-template-columns:minmax(112px,176px) auto minmax(0,1fr) auto !important;
  gap:clamp(8px,1.7vw,22px) !important;
  align-items:center !important;
  width:100% !important;
  max-width:1200px !important;
  min-height:60px !important;
}
body.tsg-ui-header.tsg-ui-logo .elementor-11 .tsg-injected-brand {
  display:flex; align-items:center; justify-content:flex-start;
  min-width:0; max-width:176px;
  width:100%; text-decoration:none;
  grid-column:1;
}
body.tsg-ui-header.tsg-ui-logo .elementor-11 .tsg-injected-brand img {
  display:block; height:auto; width:100%; max-width:165px;
  max-height:45px; object-fit:contain; object-position:left center;
}
body.tsg-ui-header.tsg-ui-logo .elementor-11 .tsg-brand-fallback {
  font:800 15px/1.3 Inter,Arial,sans-serif;
  letter-spacing:.04em; color:#102831;
}
body.tsg-ui-header.tsg-ui-logo .elementor-11 .tsg-logo-ready > :is(.elementor-element-4b3b1c6,.elementor-element-71b81cdb) {
  grid-column:2; justify-self:start !important;
}
body.tsg-ui-header.tsg-ui-logo .elementor-11 .tsg-logo-ready > :is(.elementor-element-07f3fd0,.elementor-element-54cbe45b) {
  grid-column:3; justify-self:center; min-width:0;
}
body.tsg-ui-header.tsg-ui-logo .elementor-11 .tsg-logo-ready > :is(.elementor-element-40ec992,.elementor-element-48bb6064) {
  grid-column:4; justify-self:end !important;
}
@media (max-width:1024px) {
 body.tsg-ui-home.tsg-ui-hero.home :is(.elementor-element-e3fa66a,.elementor-element-6f2f7b8b,.elementor-element-63e3ceb6):not(.tsg-redesigned-hero) {
   padding:55px 28px !important;
 }
 body.tsg-ui-home.tsg-ui-hero.home :is(.elementor-element-e3fa66a,.elementor-element-6f2f7b8b,.elementor-element-63e3ceb6):not(.tsg-redesigned-hero).e-con-full,
 body.tsg-ui-home.tsg-ui-hero.home :is(.elementor-element-e3fa66a,.elementor-element-6f2f7b8b,.elementor-element-63e3ceb6):not(.tsg-redesigned-hero) > .e-con-inner {
   grid-template-columns:minmax(0,1fr) minmax(0,.9fr) !important;
   column-gap:26px !important;
 }
 body.tsg-ui-home.tsg-ui-hero.home :is(.elementor-element-3b69c54,.elementor-element-241f232,.elementor-element-525af7a0) .elementor-heading-title {
   font-size:clamp(32px,3.6vw,44px) !important;
 }
 body.tsg-ui-header.tsg-ui-logo .elementor-11 .tsg-logo-ready {
   grid-template-columns:minmax(105px,145px) auto minmax(0,1fr) auto !important;
   gap:8px !important;
 }
 body.tsg-ui-header.tsg-ui-logo .elementor-11 .tsg-injected-brand img { max-width:135px; }
 body.tsg-ui-header.tsg-ui-logo .elementor-11 .tsg-logo-ready .elementskit-navbar-nav > li > a { padding-inline:8px !important; font-size:13px !important; }
}
@media (max-width:767px) {
 body.tsg-ui-home.tsg-ui-hero.home :is(.elementor-element-e3fa66a,.elementor-element-6f2f7b8b,.elementor-element-63e3ceb6):not(.tsg-redesigned-hero) {
   padding:44px 19px 55px !important;
 }
 body.tsg-ui-home.tsg-ui-hero.home :is(.elementor-element-e3fa66a,.elementor-element-6f2f7b8b,.elementor-element-63e3ceb6):not(.tsg-redesigned-hero).e-con-full,
 body.tsg-ui-home.tsg-ui-hero.home :is(.elementor-element-e3fa66a,.elementor-element-6f2f7b8b,.elementor-element-63e3ceb6):not(.tsg-redesigned-hero) > .e-con-inner {
   grid-template-columns:minmax(0,1fr) !important;
   grid-template-rows:auto auto auto auto !important;
   row-gap:18px !important;
 }
 body.tsg-ui-home.tsg-ui-hero.home :is(.elementor-element-3b69c54,.elementor-element-241f232,.elementor-element-525af7a0) { grid-column:1;grid-row:1; }
 body.tsg-ui-home.tsg-ui-hero.home :is(.elementor-element-836cdb6,.elementor-element-365f3f6e,.elementor-element-14c8d9af) { grid-column:1;grid-row:2; }
 body.tsg-ui-home.tsg-ui-hero.home :is(.elementor-element-10767d2,.elementor-element-617412d3,.elementor-element-1d5a60c9) { grid-column:1;grid-row:3; }
 body.tsg-ui-home.tsg-ui-hero.home :is(.elementor-element-97886d2,.elementor-element-1ee9abe5,.elementor-element-21f86834) { grid-column:1;grid-row:4; margin-top:12px !important; }
 body.tsg-ui-home.tsg-ui-hero.home :is(.elementor-element-97886d2,.elementor-element-1ee9abe5,.elementor-element-21f86834) img {
   min-height:225px; max-height:300px !important;
 }
 body.tsg-ui-home.tsg-ui-hero.home :is(.elementor-element-3b69c54,.elementor-element-241f232,.elementor-element-525af7a0) .elementor-widget-container::before {
   font-size:10px; margin-bottom:14px;
 }
 body.tsg-ui-home.tsg-ui-hero.home :is(.elementor-element-3b69c54,.elementor-element-241f232,.elementor-element-525af7a0) .elementor-heading-title {
   font-size:clamp(31px,8vw,43px) !important;
 }
 body.tsg-ui-header.tsg-ui-logo .elementor-11 .tsg-logo-ready {
   grid-template-columns:minmax(74px,1fr) auto auto auto !important;
   gap:6px !important; min-height:44px !important;
 }
 body.tsg-ui-header.tsg-ui-logo .elementor-11 .tsg-injected-brand { grid-column:1; max-width:112px; }
 body.tsg-ui-header.tsg-ui-logo .elementor-11 .tsg-injected-brand img { max-width:110px; max-height:31px; }
 body.tsg-ui-header.tsg-ui-logo .elementor-11 .tsg-logo-ready > :is(.elementor-element-4b3b1c6,.elementor-element-71b81cdb) {grid-column:2;order:2!important;}
 body.tsg-ui-header.tsg-ui-logo .elementor-11 .tsg-logo-ready > :is(.elementor-element-40ec992,.elementor-element-48bb6064) {grid-column:3;order:3!important;}
 body.tsg-ui-header.tsg-ui-logo .elementor-11 .tsg-logo-ready > :is(.elementor-element-07f3fd0,.elementor-element-54cbe45b) {grid-column:4;order:4!important;justify-self:end;}
 body.tsg-ui-header.tsg-ui-logo .elementor-11 .tsg-logo-ready .elementor-button {padding:8px 8px!important;font-size:11px!important;min-height:36px!important;}
 body.tsg-ui-header.tsg-ui-logo .elementor-11 .tsg-logo-ready .elementskit-menu-hamburger {padding:6px !important;}
}
@media (max-width:390px) {
 body.tsg-ui-header.tsg-ui-logo .elementor-11 .tsg-logo-ready { gap:4px!important; }
 body.tsg-ui-header.tsg-ui-logo .elementor-11 .tsg-injected-brand { max-width:88px; }
 body.tsg-ui-header.tsg-ui-logo .elementor-11 .tsg-injected-brand img { max-width:88px; }
 body.tsg-ui-header.tsg-ui-logo .elementor-11 .tsg-logo-ready .elementor-button {padding:7px 5px!important;font-size:10px!important;}
}
@media (prefers-reduced-motion:reduce) {
 body.tsg-ui-home.tsg-ui-hero.home :is(.elementor-element-10767d2,.elementor-element-617412d3,.elementor-element-1d5a60c9) .elementor-button {transition:none;}
}
/* Keep Elementor anchor min-height inclusive of padding (particularly on mobile). */
body.tsg-ui-home.tsg-ui-hero.home :is(.elementor-element-10767d2,.elementor-element-617412d3,.elementor-element-1d5a60c9) .elementor-button,
body.tsg-ui-header.tsg-ui-logo .elementor-11 .tsg-logo-ready .elementor-button {
  box-sizing:border-box !important;
}

/* v1.1.1: desktop header order: logo | navigation | Call Now | Get In Touch.
 * The previous manually supplied CSS mistakenly hid the navigation container.
 * Keep mobile/tablet layout unchanged. */
@media screen and (min-width: 1025px) {
  body.tsg-ui-header.tsg-ui-logo .elementor-11 .tsg-logo-ready {
    display: grid !important;
    grid-template-columns: minmax(125px, 176px) minmax(0, 1fr) max-content max-content !important;
    column-gap: 14px !important;
    align-items: center !important;
  }
  body.tsg-ui-header.tsg-ui-logo .elementor-11 .tsg-logo-ready > .tsg-injected-brand {
    grid-column: 1 !important;
    grid-row: 1 !important;
  }
  body.tsg-ui-header.tsg-ui-logo .elementor-11 .tsg-logo-ready > :is(.elementor-element-07f3fd0, .elementor-element-54cbe45b) {
    grid-column: 2 !important;
    grid-row: 1 !important;
    justify-self: center !important;
    min-width: 0 !important;
  }
  body.tsg-ui-header.tsg-ui-logo .elementor-11 .tsg-logo-ready > :is(.elementor-element-4b3b1c6, .elementor-element-71b81cdb) {
    grid-column: 3 !important;
    grid-row: 1 !important;
    justify-self: end !important;
  }
  body.tsg-ui-header.tsg-ui-logo .elementor-11 .tsg-logo-ready > :is(.elementor-element-40ec992, .elementor-element-48bb6064) {
    grid-column: 4 !important;
    grid-row: 1 !important;
    justify-self: end !important;
  }
}
