/* TTDigitals full-site visual quality layer, 2026-10-23.
   Presentation only: preserves page copy, headings, links and structured data. */
:root {
  --ttq-ink: #12243a;
  --ttq-muted: #4b5f73;
  --ttq-navy: #102a43;
  --ttq-orange: #d84c1b;
  --ttq-line: #d7e0e8;
  --ttq-wash: #f5f8fb;
  --ttq-paper: #fff;
  --ttq-radius: clamp(1rem, 1.8vw, 1.5rem);
  --ttq-shadow: 0 16px 42px rgba(16, 42, 67, .09);
}

html { scroll-padding-top: 9rem; }
body { color: var(--ttq-ink); overflow-wrap: normal; }
main { isolation: isolate; }
main :is(p, li) { color: inherit; }
main :is(p, li, dd) { line-height: 1.72; }
main :is(p, li, dd, figcaption) { text-wrap: pretty; }
main :is(h1, h2, h3, h4) {
  color: inherit;
  overflow-wrap: normal;
  word-break: normal;
  hyphens: none;
  text-wrap: balance;
}
main h1 { max-width: 18ch; line-height: 1; letter-spacing: -.05em; }
main h2 { max-width: 24ch; line-height: 1.06; letter-spacing: -.038em; }
main h3 { line-height: 1.24; letter-spacing: -.018em; }
main :is(.lead, .section-head > p, .service-section-head-v74 > p) { max-width: 66ch; }
main :is(.prose, .editorial-body, .article-body, .detail-content) :is(p, li) { max-width: 72ch; }

main > section:not(.hero):not(.page-hero):not(.service-hero):not(.cta),
main > article > section {
  padding-block: clamp(3.75rem, 6.5vw, 6.5rem);
}
main > section + section { border-top-color: rgba(16, 42, 67, .08); }
main :is(.section-head, .topic-carousel-head, .service-section-head-v74) {
  align-items: end;
  gap: clamp(1.25rem, 3vw, 3rem);
  margin-bottom: clamp(1.75rem, 4vw, 3.5rem);
}
main :is(.section-head, .topic-carousel-head, .service-section-head-v74) > :is(.eyebrow, h2) { text-align: left; }
main .cta :is(h2, p) { margin-inline: auto; text-align: center; }

main :is(.content-card, .topic-card, .location-card, .city-card, .industry-card, .case-card) {
  border: 1px solid var(--ttq-line);
  border-radius: var(--ttq-radius);
  background: var(--ttq-paper);
  box-shadow: var(--ttq-shadow);
  overflow: clip;
}
main :is(.content-card, .topic-card, .location-card, .city-card, .industry-card, .case-card) img {
  display: block;
  width: 100%;
  object-fit: cover;
}

main details:not(.mobile-menu):not(.services-menu):not(.footer-group) {
  border: 1px solid var(--ttq-line);
  border-radius: .9rem;
  background: #fff;
  box-shadow: 0 8px 24px rgba(16, 42, 67, .045);
}
main details:not(.mobile-menu):not(.services-menu):not(.footer-group)[open] {
  border-color: rgba(216, 76, 27, .58);
}
main details summary { min-height: 52px; }

:is(a, button, summary, input, select, textarea):focus-visible {
  outline: 3px solid #f47b4e !important;
  outline-offset: 3px !important;
}
main :is(input, select, textarea) {
  min-height: 50px;
  border-color: #aebdca !important;
  background: #fff !important;
  color: var(--ttq-ink) !important;
}
main textarea { min-height: 132px; }

.tt-page-nav { max-width: 100vw; }
.tt-page-nav-track { scrollbar-width: thin !important; scrollbar-color: #b9c6d2 transparent; }
.tt-page-nav-track a { min-height: 36px; display: inline-flex; align-items: center; }
.tt-page-nav-track a[aria-current="location"] { background: #fff6f1 !important; }

footer .footer-logo { box-shadow: 0 10px 28px rgba(0, 0, 0, .16); }
footer .footer-group-links > a { min-height: 34px; display: flex !important; align-items: center; }
footer .footer-address, footer address { font-style: normal; line-height: 1.7; }

@media (max-width: 1020px) {
  main h1 { max-width: 20ch; }
  .tt-page-nav { top: 0 !important; }
}

@media (max-width: 700px) {
  html { scroll-padding-top: 5.5rem; }
  main h1 { max-width: none; font-size: clamp(2.35rem, 10vw, 3.25rem) !important; line-height: 1.02; }
  main h2 { max-width: none; font-size: clamp(1.85rem, 8vw, 2.55rem) !important; line-height: 1.08; }
  main h3 { font-size: clamp(1.1rem, 5.4vw, 1.35rem); }
  main > section:not(.hero):not(.page-hero):not(.service-hero):not(.cta),
  main > article > section { padding-block: 3.25rem; }
  main :is(.section-head, .topic-carousel-head, .service-section-head-v74) { display: block; }
  main :is(.section-head, .topic-carousel-head, .service-section-head-v74) > p { margin-top: 1rem; }
  .tt-page-nav { gap: .35rem !important; padding-inline: .5rem !important; }
  .tt-page-nav-track { mask-image: linear-gradient(90deg, transparent, #000 10px, #000 calc(100% - 10px), transparent) !important; }
  .tt-page-nav-track a { min-height: 40px; font-size: .76rem !important; }
  .tt-page-nav-control { min-width: 34px !important; min-height: 34px !important; }
  footer .footer-group > summary { min-height: 54px; }
  footer .footer-group-links > a { min-height: 42px; }
}

@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after { scroll-behavior: auto !important; animation: none !important; transition-duration: .01ms !important; }
}
