/* One palette and section rhythm across the existing routes. */
.tm-site {
  --brand-secondary: #0d1d4a;
  --brand-accent: #1235c9;
  --surface-2: #f5f8fc;
  --border: #dfe6ef;
  --section-space: clamp(72px,7vw,104px);
}
.tm-site main > section { position: relative; padding-block: var(--section-space); }
.tm-site main > section + section { border-top-color: var(--border); }
.tm-site main > .tm-hero { padding-block: 64px 0; }
.tm-site .tm-eyebrow { letter-spacing: .1px; }
.tm-site .section-header { align-items: center; padding-bottom: 26px; margin-bottom: 42px; border-bottom-color: var(--border); }
.tm-site .section-header h2 { max-width: 660px; line-height: 1.65; }
.tm-site .section-header > p { color: var(--text-secondary) !important; line-height: 1.9; }
.tm-site .section-header h2::before { color: var(--brand-accent); }
.tm-site .section-title { line-height: 1.65; }
.tm-site .tm-button, .tm-site .btn, .tm-site .btn-primary-custom { transition: background .25s, border-color .25s, box-shadow .25s, transform .25s; }
.tm-site .tm-button:hover { box-shadow: 0 8px 24px #0d1d7318; }
.tm-scroll-progress { position: absolute; bottom: -1px; left: 38px; right: 38px; height: 3px; overflow: hidden; border-radius: 3px; pointer-events: none; background: #1235c908; }
.tm-scroll-progress-fill { display: block; width: 100%; height: 100%; background: linear-gradient(90deg,#055392,#1235c9); transform: scaleX(0); transform-origin: right center; }
.tm-site .tm-scroll-clip { overflow: hidden; }
.tm-site img.tm-scroll-image { transition: none !important; transform-origin: center center; }
.tm-site .tm-scroll-card { transition-property: background-color,border-color,box-shadow,color !important; }

/* A small route marker joins successive sections without pinning them. */
.tm-section-bridge { position: absolute; top: 0; left: 50%; transform: translate(-50%,-50%); width: min(76%,540px); height: 40px; display: flex; align-items: center; justify-content: center; gap: 18px; pointer-events: none; z-index: 3; color: var(--brand-accent); }
.tm-bridge-line { flex: 1; height: 2px; background: linear-gradient(90deg,transparent,#c7d4ea); transform-origin: right center; }
.tm-bridge-line:last-child { background: linear-gradient(90deg,#c7d4ea,transparent); transform-origin: left center; }
.tm-bridge-mark { position: relative; width: 38px; height: 38px; display: grid; place-items: center; flex-shrink: 0; background: #fff; border: 1px solid var(--border); border-radius: 50%; }
.tm-bridge-mark::before { content: ''; width: 6px; height: 6px; border: 1px solid currentColor; border-radius: 2px; transform: rotate(45deg); }
.tm-bridge-mark::after { content: ''; position: absolute; top: 4px; left: 50%; width: 3px; height: 3px; border-radius: 50%; background: currentColor; }

.tm-site .portfolio-grid { gap: 42px; }
.tm-site .portfolio-grid > :nth-child(even) { margin-top: 32px; }
.tm-site .portfolio .project-image, .tm-site .project-card-home > img, .tm-site .blog-card-image, .tm-site .blog-card-img-wrap { border-radius: 16px; }
.tm-site .portfolio .project-image img, .tm-site .blog-card-image img, .tm-site .blog-card-img-wrap img { transition: transform .65s cubic-bezier(.2,.65,.3,1); }
.tm-site .project-content { min-width: 0; }
.tm-site .projects-list { grid-template-columns: repeat(2,minmax(0,1fr)); gap: 32px; align-items: stretch; max-width: 1080px; margin-inline: auto; }
.tm-site .projects-section .project-card { display: flex; flex-direction: column; margin-bottom: 0; padding-bottom: 0; gap: 0; border: 1px solid var(--border); border-radius: 16px; overflow: hidden; background: #fff; }
.tm-site .projects-section .project-image { height: auto; aspect-ratio: 16/9; flex-shrink: 0; border-radius: 0; }
.tm-site .projects-section .project-image:has(video) { padding-top: 0; }
.tm-site .projects-section .project-content { padding: 24px; }
.tm-site .projects-section .project-content h3 { font-size: 20px; line-height: 1.7; }
.tm-site .projects-section .project-summary { color: var(--text-secondary); font-size: 14px; line-height: 1.9; }
.tm-site .projects-section .project-details { padding: 18px; margin-block: 18px; border-radius: 12px; font-size: 13px; line-height: 1.85; }
.tm-site .services-grid { gap: 20px; border: 0; }
.tm-site .service-card { padding: 30px; border: 1px solid var(--border); border-radius: 16px; background: #fff; transition: border-color .3s, background .3s, transform .3s; }
.tm-site .service-card:nth-child(odd) { border-inline-end: 1px solid var(--border); }
.tm-site .service-card:hover { background: #f9fbff; border-color: #b7c7e8; transform: translateY(-4px); }
.tm-site .service-icon { width: 44px; height: 44px; border-radius: 12px; background: #edf2ff; color: var(--brand-accent); }
.tm-site .service-card h3 { font-size: 20px; margin-bottom: 12px; }
.tm-site .service-card p { font-size: 14px; line-height: 1.9; }
.tm-site .tm-service-link { margin-top: 18px; color: var(--brand-primary); }
.tm-site .about-content-wrapper { gap: clamp(32px,6vw,80px); }
.tm-site .about-image-column .image-card { padding: 30px; background: var(--surface-2); border: 1px solid var(--border); border-radius: 24px; }
.tm-site .about-image-column .image-card > img:first-child { max-height: 360px; object-fit: contain; }
.tm-site .about-description { font-size: 15px; line-height: 1.95; }
.tm-site .why-us-grid { gap: 18px; }
.tm-site .why-us-card { background: var(--surface-2); border: 1px solid var(--border); border-radius: 16px; padding: 26px 22px; }
.tm-site .why-us-card:hover { background: #f0f5fc; }
.tm-site .why-us-icon { color: var(--brand-accent); height: 36px; margin-bottom: 20px; }
.tm-site .why-us-icon i { font-size: 25px; }
.tm-site .stats > .container { border: 1px solid var(--border); border-radius: 24px; padding: 44px; }
.tm-site .stats h2, .tm-site .stats h3 { color: var(--brand-primary) !important; }
.tm-site .stats p { color: var(--text-secondary) !important; }
.tm-site .stat-number, .tm-site .stats .stat-item h3 { font-size: clamp(32px,3vw,42px) !important; font-weight: 900; }
.tm-site .stat-label, .tm-site .stats .stat-item p { font-size: 14px !important; }
.tm-site .stat-divider { background: var(--border); }
.tm-site .testimonial-card { border: 1px solid var(--border); border-radius: 16px; background: #fff; padding: 28px; }
.tm-site .testimonial-text { font-size: 14px; line-height: 1.95; }
.tm-site .testimonial-quote-icon { color: var(--brand-accent); font-size: 25px; margin-bottom: 18px; opacity: .6; }
.tm-site .p-card, .tm-site .p-pill { border: 1px solid var(--border); border-radius: 12px; background: #fff; }
.tm-site .p-pill-icon { background: #edf2ff !important; color: var(--brand-accent) !important; }
.tm-site .tm-closing { border: 0; }
.tm-site .tm-closing .tm-container { padding: 44px; background: var(--surface-2); border: 1px solid var(--border); border-radius: 24px; }
.tm-site .tm-closing .tm-eyebrow { margin-bottom: 16px; }

/* Inner sections share the same compact cards and readable headings. */
.tm-site main > :is(.hero,.page-header,.project-detail-hero,.blog-hero,.partner-hero) { background: #fff !important; color: var(--text-primary); }
.tm-site .hero h1, .tm-site .hero h2 { color: var(--text-primary) !important; }
.tm-site .hero p { color: var(--text-secondary) !important; }
.tm-site .service-layout { gap: clamp(32px,5vw,72px); }
.tm-site .service-layout > * { min-width: 0; }
.tm-site .service-info h2 { color: var(--brand-primary); font-size: clamp(26px,3vw,38px); line-height: 1.6; }
.tm-site .service-info p, .tm-site .service-text p { font-size: 15px; color: var(--text-secondary); line-height: 1.95; }
.tm-site .service-image { border-radius: 20px; background: var(--surface-2); border: 1px solid var(--border); }
.tm-site :is(.mission-vision .card,.timeline-content,.process-step,.overview-card,.team-card,.freelancer-card,.contact-form-wrapper,.blog-sidebar-widget) { border: 1px solid var(--border) !important; border-radius: 16px !important; background: #fff !important; box-shadow: 0 10px 36px #0d1d4a05 !important; }
.tm-site .overview-card { padding: 28px; }
.tm-site .timeline-content { padding: 28px; text-align: right; }
.tm-site .timeline-content h3 { color: var(--brand-primary); font-size: 21px; }
.tm-site .timeline-content p { color: var(--text-secondary); font-size: 14px; }
.tm-site .timeline::before { background: var(--border); }
.tm-site .team-card h3, .tm-site .freelancer-card h3 { color: var(--brand-primary); }
.tm-site .mission-vision .grid { grid-template-columns: repeat(2,minmax(0,1fr)) !important; gap: 24px !important; }
.tm-site .global-network { background: #fff; color: var(--text-primary); }
.tm-site .global-network > .container { padding: 44px; background: var(--surface-2); border: 1px solid var(--border); border-radius: 24px; }
.tm-site .global-network h2 { color: var(--brand-primary); font-size: clamp(27px,3vw,38px); line-height: 1.65; }
.tm-site .global-network p { color: var(--text-secondary); font-size: 15px; line-height: 1.95; }
.tm-site .global-network ul { color: var(--text-secondary) !important; font-size: 14px; line-height: 1.9; }
.tm-site .process-cta { padding: 32px; background: var(--surface-2); border: 1px solid var(--border); border-radius: 20px; }
.tm-site .video-showcase { background: #fff; }
.tm-site .video-description { line-height: 1.95; }
.tm-site .contact-info .info-item { gap: 18px; }
.tm-site .contact-grid { display: grid; grid-template-columns: minmax(0,.9fr) minmax(0,1.1fr); align-items: start; gap: clamp(30px,5vw,64px); }
.tm-site .contact-grid > * { min-width: 0; }
.tm-site .contact-info .info-item > i { color: var(--brand-accent); }
.tm-site .contact-form-wrapper { padding: 36px; }
.tm-site input:focus, .tm-site select:focus, .tm-site textarea:focus { border-color: #8099e6; box-shadow: 0 0 0 3px #1235c90c; }
.tm-site main > .blog-filters-section { padding-block: 24px; border-bottom: 1px solid var(--border); box-shadow: none; position: static; }
.tm-site .blog-featured-card { border-radius: 20px; }
.tm-site .blog-article-card:hover .blog-card-img-wrap img { transform: scale(1.025); }

/* White logo and text on one consistent, visibly navy footer. */
.tm-site .tm-footer { background: #0d1d4a; padding-block: 78px 24px; color: #d4dcf0; }
.tm-site .tm-footer-grid { gap: clamp(30px,5vw,70px); }
.tm-site .tm-footer h2 { color: #fff; font-size: 14px; font-weight: 700; }
.tm-site .tm-footer a, .tm-site .tm-footer p { color: #d4dcf0; }
.tm-site .tm-footer a:hover { color: #fff; }
.tm-site .tm-footer-bottom { border-top-color: #ffffff21; color: #b7c3dc; }
.tm-site .tm-footer-logo { background: transparent; }
@media (hover: hover) and (pointer: fine) {
  .tm-site .project-image:hover img, .tm-site .blog-card-image:hover img { transform: scale(1.025); }
}
@media (max-width: 1023px) {
  .tm-site .section-header { align-items: flex-start; }
  .tm-site .why-us-grid { grid-template-columns: repeat(2,minmax(0,1fr)); }
}
@media (max-width: 767px) {
  .tm-site { --section-space: 68px; }
  .tm-site main > .tm-hero { padding-block: 38px 0; }
  .tm-scroll-progress { left: 28px; right: 28px; height: 2px; }
  .tm-section-bridge { width: 58%; height: 30px; gap: 12px; }
  .tm-bridge-mark { width: 28px; height: 28px; }
  .tm-site .section-header { margin-bottom: 30px; padding-bottom: 22px; }
  .tm-site .section-header h2 { font-size: 27px; }
  .tm-site .portfolio-grid { gap: 32px; }
  .tm-site .portfolio-grid > :nth-child(even) { margin-top: 0; }
  .tm-site .projects-list { grid-template-columns: 1fr; }
  .tm-site .projects-section .project-content { padding: 22px; }
  .tm-site .service-card { padding: 26px 22px; }
  .tm-site .service-card:nth-child(odd) { border-inline-end: 1px solid var(--border); }
  .tm-site .why-us-grid { grid-template-columns: 1fr; }
  .tm-site .stats > .container { padding: 30px 22px; border-radius: 18px; }
  .tm-site .stat-divider { display: none; }
  .tm-site .tm-closing .tm-container { padding: 30px 24px; border-radius: 18px; }
  .tm-site .contact-form-wrapper { padding: 26px 22px; }
  .tm-site .contact-grid, .tm-site .mission-vision .grid { grid-template-columns: 1fr !important; }
  .tm-site .global-network > .container { padding: 30px 22px; border-radius: 18px; }
  .tm-site .overview-card { padding: 24px; }
  .tm-site .tm-footer { padding-top: 54px; }
}
