/* TMA Commercial Print — minimal overrides.
   The Webflow export's IX2 animation DATA was not exported, so the engine never
   runs and the reveal initial-states (opacity:0 / translate offsets) would stay
   stuck forever. Those inline states are stripped at build time, leaving natural
   layout intact. The only thing left to neutralise here is the black "on-load"
   overlay, which Webflow's JS would normally remove after the (now-absent) load
   animation. */

.on-load-bg { display: none !important; }

/* Safety net: ensure the top-level content wrapper is never left invisible. */
.content { opacity: 1 !important; }

/* ── Services / Case Studies listing pages (rebuilt from the CMS data, since the
      Webflow dynamic collections were empty in the static export) ───────────── */
.cms-hero { background:#0b1f3a; color:#fff; padding:120px 0 70px; }
.cms-hero .container, .cms-section .container { max-width:1100px; margin:0 auto; padding:0 24px; }
.cms-hero h1 { font-size:3rem; margin:0 0 .4em; color:#fff; }
.cms-hero .cms-sub { font-size:1.15rem; opacity:.85; max-width:680px; }
.cms-section { padding:64px 0; background:#fff; }
.cms-grid { display:grid; gap:48px; }
.cms-card { display:grid; grid-template-columns:minmax(0,420px) 1fr; gap:36px; align-items:start;
            border-bottom:1px solid #e6e6e6; padding-bottom:48px; }
.cms-card:last-child { border-bottom:0; }
.cms-thumb { width:100%; height:auto; border-radius:10px; display:block; }
.cms-body h2 { font-size:1.9rem; margin:0 0 .3em; color:#0b1f3a; }
.cms-excerpt { font-size:1.1rem; font-weight:600; color:#444; margin:0 0 1em; }
.cms-content { color:#333; line-height:1.65; }
.cms-content h2, .cms-content h3 { color:#0b1f3a; margin:1.2em 0 .4em; }
.cms-content p { margin:0 0 1em; }
@media (max-width:820px){ .cms-card{ grid-template-columns:1fr; gap:18px; } .cms-hero h1{ font-size:2.2rem; } }

/* ── "We have worked with" brand logo strip ─────────────────────────────────
   Same root cause as the note at the top of this file: Webflow's IX2 slider
   animation data wasn't exported, so this sat as a static, fixed-width grid
   that just got clipped by the parent's overflow:hidden after ~4 logos
   (Billie, 2026-07-10: "is it supposed to scroll?" — yes). The HTML now has
   the 15 logos duplicated once (second copy is aria-hidden) so this can loop
   seamlessly via translateX(-50%), matching the carousel pattern already used
   on tmatech's site. */
.logo_component-slider {
  display: flex !important;
  align-items: center;
  gap: 4rem;
  width: max-content !important;
  animation: logo-marquee 32s linear infinite;
}
.logo_component-slider:hover { animation-play-state: paused; }
@keyframes logo-marquee {
  0%   { transform: translateX(0); }
  100% { transform: translateX(-50%); }
}
.logo-slider-img { width: 150px; flex: 0 0 auto; }

