/* Final visual semantics shared by both languages and all routes. */
.tm-site {
  --brand-primary: #0d1d4a; --brand-secondary: #0d1d4a; --brand-accent: #1235c9;
  --main-color: #0d1d4a; --secondary-color: #0d1d4a; --accent-color: #1235c9;
  --heading-color: #0d1d4a; --text-color: #0d1d4a;
  --text-primary: #0d1d4a; --text-secondary: #465673; --text-muted: #65728a;
  --surface: #fff; --surface-2: #f5f8fc; --border: #dce4ef;
}
.tm-site main :is(h1,h2,h3,h4) { color: var(--text-primary); }
.tm-site main :is(.overview-card,.service-card,.why-us-card,.benefit-card,.timeline-content,.mission-vision .card,.contact-info,.project-detail-hero,.page-header,.global-network) p,
.tm-site :is(.project-subtitle,.project-meta-info,.blog-card-excerpt,.blog-featured-excerpt,.section-sub) { color: var(--text-secondary) !important; opacity: 1; }
.tm-site :is(.blog-card-meta,.blog-featured-meta,.video-meta-item,.meta-item,.blog-post-meta,.blog-article-meta) { color: var(--text-secondary); }
.tm-site :is(.back-link,.read-more,.tm-service-link,.service-link,.tm-text-link) { color: var(--brand-accent); }
.tm-site :is(.back-link,.read-more,.tm-service-link,.service-link,.tm-text-link):hover { color: var(--brand-primary); text-decoration: underline; text-underline-offset: 5px; }
.tm-site :is(.tag,.skill-tag,.blog-tag,.partner-cat-tag,.pf-new-badge,.partner-new) { background: #edf2ff !important; color: #183d8f !important; border-color: #d5def5 !important; }
.tm-site :is(.btn,.btn-sm,.btn-primary-custom,.tm-button,.btn-glow,.back-btn,.view-project-btn,.newsletter-btn,.blog-search-btn) {
  display: inline-flex; align-items: center; justify-content: center; gap: 10px;
  min-height: 44px; background: var(--brand-primary) !important; color: #fff !important;
  border: 1px solid var(--brand-primary); box-shadow: none; font-weight: 700;
  transition: background-color .2s, color .2s, border-color .2s, box-shadow .2s;
}
.tm-site :is(.btn,.btn-sm,.btn-primary-custom,.tm-button,.btn-glow,.back-btn,.view-project-btn,.newsletter-btn)::before { display: none; }
.tm-site :is(.btn-secondary,.btn-outline-light,.btn.btn-outline-light) { background: #fff !important; color: var(--brand-primary) !important; border-color: #b4c2db !important; }
.tm-site :is(.filter-btn,.blog-cat-btn,.blog-page-btn,.tm-language-switch,.tm-menu-toggle) {
  min-height: 44px; color: var(--text-secondary); border-color: #c7d2e4;
  background: #fff; transition: background-color .2s, color .2s, border-color .2s;
}
.tm-site :is(.filter-btn,.blog-cat-btn,.blog-page-btn).active { background: var(--brand-primary) !important; color: #fff !important; border-color: var(--brand-primary) !important; }
.tm-site .tm-icon { display: inline-flex; align-items: center; justify-content: center; font-style: normal; vertical-align: -.12em; line-height: 1; flex-shrink: 0; }
.tm-site .tm-icon::before { display: none !important; }
.tm-site .tm-icon > svg { display: block; width: 1em; height: 1em; flex-shrink: 0; }
.tm-site :is(.service-icon,.why-us-icon,.benefit-icon,.contact-icon,.icon-box),
.tm-site .overview-card > .tm-icon {
  display: inline-flex; align-items: center; justify-content: center; width: 48px; height: 48px;
  border-radius: 14px; background: #edf2ff !important; color: var(--brand-accent) !important;
  border: 1px solid #dce5fa; box-shadow: none; flex-shrink: 0;
  transition: background-color .2s, color .2s, border-color .2s; transform: none !important;
}
.tm-site :is(.service-icon,.why-us-icon,.benefit-icon,.contact-icon,.icon-box)::before { display: none; }
.tm-site :is(.service-icon,.why-us-icon,.benefit-icon,.contact-icon,.icon-box) .tm-icon,
.tm-site .overview-card > .tm-icon { font-size: 24px !important; margin: 0; }
.tm-site .overview-card > .tm-icon { margin-bottom: 20px; }
.tm-site :is(.service-icon,.why-us-icon,.benefit-icon,.contact-icon,.icon-box) .tm-icon { color: inherit !important; transform: none !important; }
.tm-site :is(.overview-card,.why-us-card,.benefit-card) { text-align: start; }
.tm-site :is(.overview-card,.service-card,.why-us-card,.benefit-card,.timeline-content) h3 { font-size: clamp(19px,1.7vw,23px); }
.tm-site .project-detail-hero .project-subtitle { max-width: 65ch; margin-inline: auto; }
.tm-site .page-header p { opacity: 1 !important; }
.tm-site .project-overview > .container > .section-title { margin-bottom: 32px; }
.tm-site .project-overview-grid { gap: 24px; }
.tm-site .project-meta-info { padding: 24px; border: 1px solid var(--border); border-radius: 16px; background: var(--surface-2); gap: 20px 32px; }
.tm-site .project-meta-info strong { color: var(--text-primary); }
.tm-site .global-network { background: #fff !important; color: var(--text-primary) !important; }
/* Dark inset calls to action: text and buttons have their own surface semantics. */
.tm-site main > .cta-section { background: #fff !important; }
.tm-site .cta-section::before { display: none; }
.tm-site .cta-section > .container { background: var(--brand-primary); border-radius: 24px; padding: clamp(28px,5vw,64px); overflow: hidden; }
.tm-site :is(.cta-section,.tm-case-cta) :is(h2,h3) { color: #fff !important; }
.tm-site :is(.cta-section,.tm-case-cta) p { color: #dce5f6 !important; opacity: 1; }
.tm-site :is(.cta-section,.tm-case-cta) :is(.btn,.tm-button) { background: #fff !important; color: var(--brand-primary) !important; border-color: #fff !important; }
.tm-site :is(input,textarea,select) { color: var(--text-primary); border-color: #bcc9dc; }
.tm-site :is(input,textarea)::placeholder { color: #65728a; opacity: 1; }
.tm-site :is(input,textarea,select):focus { border-color: var(--brand-accent); box-shadow: 0 0 0 3px #1235c918; }
.tm-site .contact-info { background: #0d1d4a !important; border-radius: 20px; }
.tm-site .contact-info :is(h1,h2,h3,h4) { color: #fff !important; }
.tm-site main .contact-info :is(p,a) { color: #dce5f6 !important; opacity: 1; }
.tm-site .contact-info .info-item > .tm-icon { color: #a8c6ff; }
.tm-site .contact-info a:hover { color: #a8c6ff !important; text-decoration: underline; text-underline-offset: 4px; }
.tm-site .contact-info :focus-visible { outline-color: #a8c6ff; }
.tm-site :focus-visible { outline: 3px solid var(--brand-accent); outline-offset: 4px; }
.tm-site :is(.cta-section,.tm-case-cta,.tm-footer) :focus-visible { outline-color: #a8c6ff; }
.tm-site .tm-footer { background: #0d1d4a !important; }
/* Footer links have to read as links before they are hovered: on a touch
   screen there is no hover at all, and giving a and p the same colour left
   them indistinguishable from the paragraph text around them. The logo link
   is excluded by targeting the four text groups rather than every a. */
.tm-site .tm-footer p { color: #b9c7e6; }
.tm-site .tm-footer a { color: #dce5f6; }
.tm-site :is(.tm-footer-links,.tm-footer-contact,.tm-footer-social,.tm-footer-bottom) a {
  color: #eaf1ff;
  text-decoration-line: underline;
  text-decoration-thickness: 1px;
  text-decoration-color: #ffffff59;
  text-underline-offset: 5px;
  transition: color .2s, text-decoration-color .2s;
}
.tm-site .tm-footer a:hover { color: #fff; text-decoration-line: underline; text-decoration-color: currentColor; text-underline-offset: 5px; }
.tm-site .tm-footer a:focus-visible { text-decoration-color: currentColor; }
@media (prefers-reduced-motion: reduce) {
  .tm-site :is(.tm-footer-links,.tm-footer-contact,.tm-footer-social,.tm-footer-bottom) a { transition: none; }
}
.tm-site .tm-footer h2 { color: #fff; }
.tm-site .tm-footer-bottom { color: #bfcee6; }
.tm-site .tm-nav > a[aria-current]:hover, .tm-site .tm-nav details.is-current > summary:hover { color: #fff; background: #1235c9; }
@media (hover: hover) {
  .tm-site :is(.btn,.btn-sm,.btn-primary-custom,.tm-button,.btn-glow,.back-btn,.view-project-btn,.newsletter-btn,.blog-search-btn):hover { background: #1235c9 !important; border-color: #1235c9; color: #fff !important; }
  .tm-site :is(.btn-secondary,.btn-outline-light,.btn.btn-outline-light):hover { background: #edf2ff !important; color: var(--brand-primary) !important; border-color: #1235c9 !important; }
  .tm-site :is(.filter-btn,.blog-cat-btn,.blog-page-btn,.tm-language-switch,.tm-menu-toggle):not(.active):not(:disabled):hover { background: #edf2ff; border-color: #1235c9; color: #1235c9; }
  .tm-site :is(.service-card,.overview-card,.why-us-card,.benefit-card):hover { border-color: #9baee0 !important; }
  .tm-site :is(.service-card,.overview-card,.why-us-card,.benefit-card):hover :is(.service-icon,.why-us-icon,.benefit-icon),
  .tm-site .overview-card:hover > .tm-icon, .tm-site .contact-item:hover .contact-icon { background: #1235c9 !important; color: #fff !important; border-color: #1235c9; }
  .tm-site :is(.cta-section,.tm-case-cta) :is(.btn,.tm-button):hover { background: #e8efff !important; color: #0d1d4a !important; border-color: #e8efff !important; }
}
.tm-site :is(.service-card,.overview-card,.why-us-card,.benefit-card):focus-within :is(.service-icon,.why-us-icon,.benefit-icon),
.tm-site .overview-card:focus-within > .tm-icon { background: #1235c9 !important; color: #fff !important; border-color: #1235c9; }
.tm-site :is(button,.btn)[disabled] { cursor: not-allowed; }
@media (max-width: 767px) {
  .tm-site .project-meta-info { padding: 20px; justify-content: start; }
  .tm-site .cta-section > .container { border-radius: 18px; }
}
@media (prefers-reduced-motion: reduce) {
  .tm-site .fade-in-up { opacity: 1 !important; transform: none !important; }
}
