/* Final responsive pass — loaded after every page stylesheet. */

/* Header */
.mnav-inner { width: 100%; max-width: var(--site-max-width); margin-inline: auto; padding-inline: var(--site-gutter); }
.mnav-link, .mnav-dropdown-toggle { font-size: clamp(.82rem, .9vw, .94rem); }
.mnav-cta { white-space: nowrap; }

/* Shared legacy page structure */
.masthead_content, .masthead_paragraph, .career_page_heading { min-width: 0; }
.masthead_paragraph { max-width: min(100%, var(--site-reading-width)); }
:where(.tp-masthead-copy, .ws-masthead-copy, .masthead_title, .career_page_heading, .tc_sticky_wrap) :where(h1, h2) {
  max-width: min(100%, 24ch);
  overflow-wrap: normal;
  text-wrap: balance;
}
.g_sec_contain, .area_research_contain, .technical_blog_contain, .publications_contain, .tc_form_contain {
  padding-inline: var(--site-gutter) !important;
}
.g_sec_wrap, .area_research_wrap, .technical_blog_wrap, .publications_wrap { overflow: clip; }

/* Homepage */
.new_home-slider, .slider-base { min-height: clamp(39rem, 78vh, 54rem); }
.masthead_slide_contain { padding-inline: var(--site-gutter); }
.slider_content_wrap { max-width: 48rem; }
.card_layout .card { min-width: 0; padding: var(--site-card-pad); }
.cta_card_content .sales_card-nohover { min-width: 0; padding: clamp(1.5rem, 3vw, 3rem) !important; }
.cta_card_content .sales_card-nohover h4 { font-size: clamp(1.7rem, 3vw, 2.625rem) !important; }
.home-offerings__contain { padding-inline: var(--site-gutter); }

/* About and careers */
.locations_inner_layout.u-column-7 { width: min(100%, 62rem); }
.locations_card { min-width: 0; padding: var(--site-card-pad) !important; }
.career_layout { width: 100%; max-width: var(--site-max-width); margin-inline: auto; }
.career_page_heading { min-height: auto; }
.career_job_item, .career_job_body { min-width: 0; }
.career_job_btn, .career_resume_email { min-height: 2.75rem; }

/* Contact */
.tc_form_layout, .tc_content_contain { min-width: 0; }
.tc_form_contain { width: 100%; max-width: var(--site-max-width); margin-inline: auto; }
.tc_form_wrap---masthead input,
.tc_form_wrap---masthead select,
.tc_form_wrap---masthead textarea { max-width: 100%; }

/* Research list and article */
.area_research_tc_card_layout > *, .technical_blog_content_layout > *, .publications_content_layout > * { min-width: 0; }
.area_research_tc_card_layout { gap: clamp(1rem, 2vw, 1.75rem); }
.blog_maincontent_contain { overflow: clip; }
.article-header { padding-inline: max(var(--site-gutter), calc((100vw - 74rem) / 2)); }
.content-body-row { width: min(calc(100% - (var(--site-gutter) * 2)), 74rem); }
.blog_content img, .blog_content iframe, .pdf_page_image { max-width: 100%; }

/* Product pages */
.tp-shell { width: min(calc(100% - (var(--site-gutter) * 2)), 82rem); }
.tp-page :where(.processor-card, .engagement-card, .capability-card, .sfq-service-card, .application-card) { min-width: 0; }

@media (max-width: 1100px) {
  .mnav-inner { gap: 1rem; }
  .mnav-menu { gap: clamp(.65rem, 1.4vw, 1.25rem); }
  .home-offerings__heading { gap: 2.5rem; }
  .home-offerings__grid { grid-template-columns: 1fr; }
  .home-offering--featured { min-height: 38rem; }
  .home-offerings__services { grid-template-columns: repeat(2, minmax(0, 1fr)); grid-template-rows: auto; }
  .home-offering--service { min-height: 21rem; align-items: flex-end; padding: 2rem; }
  .home-offering--service .home-offering__content { padding-top: 4rem; }
}

@media (max-width: 991px) {
  .masthead_layout.u-grid-desktop, .tc_content_contain.u-grid-desktop { display: grid; grid-template-columns: minmax(0, 1fr); }
  .masthead_main_wrap.is--xl { min-height: clamp(35rem, 70vh, 46rem); }
  .career_list_heading { padding: 1.75rem var(--site-card-pad) 1.15rem; }
  .career_jobs_column { padding-inline: var(--site-card-pad); }
  .content-body-row { grid-template-columns: minmax(0, 1fr); }
  .article-sidebar { position: static; }
  .tp-section-heading { column-gap: 2rem; }
  .processor-grid { grid-template-columns: minmax(0, 1fr); gap: 1px; }
  .processor-tabs { display: flex; }
  .processor-card:not(.is-active) { display: none; }
}

@media (max-width: 767px) {
  [data-padding-top="main"] { padding-top: var(--site-section-space) !important; }
  [data-padding-bottom="main"] { padding-bottom: var(--site-section-space) !important; }
  [data-padding-top="small"] { padding-top: var(--site-section-space-sm) !important; }
  [data-padding-bottom="small"] { padding-bottom: var(--site-section-space-sm) !important; }
  .tc_form_contain[data-padding-top="main"] { padding-top: 2.5rem !important; }
  .tc_form_contain[data-padding-bottom="main"] { padding-bottom: 1.75rem !important; }
  .mnav-inner { min-height: 4.5rem; }
  .new_home-slider, .slider-base { min-height: 39rem; }
  .home-offerings__services { grid-template-columns: minmax(0, 1fr); }
  .home-offering--featured { min-height: 34rem; }
  .home-offering--service { min-height: 20rem; }
  .tp-section { padding-top: 3rem; padding-bottom: 3rem; }
  .tp-cta { padding-top: 3rem; padding-bottom: 3rem; }
  .tp-section-heading { margin-bottom: 1.9rem; }
  .career_page_heading h2.heading-style-h2 { font-size: clamp(2.35rem, 11vw, 3rem); }
  .career_job_header { flex-direction: column; }
  .career_job_header .career_job_btn { width: 100%; }
  .career_resume_section { align-items: flex-start; flex-direction: column; }
  .career_resume_email { width: 100%; justify-content: center; }
  .article-header { padding-inline: var(--site-gutter); }
  .article-meta-row, .article-actions { align-items: flex-start; }
  .article-actions { width: 100%; }
  .article-action-btn { flex: 1; justify-content: center; }
  .blog_content { padding: clamp(1.25rem, 5vw, 2rem); }
  .tp-actions { align-items: stretch; flex-direction: column; }
  .tp-button { width: 100%; }
  .engagement-card dl div { grid-template-columns: minmax(0, 1fr); gap: .35rem; }
  .engagement-card dd { text-align: left; }
}

@media (max-width: 479px) {
  .home-offering--featured .home-offering__content { padding: 1.5rem; }
  .home-offering--service { padding: 1.5rem; }
  .home-service-mark { right: 1.5rem; }
  .processor-tabs { overflow-x: auto; scroll-snap-type: x mandatory; }
  .processor-tab { min-width: 8.5rem; scroll-snap-align: start; }
  .tp-metric-strip strong { font-size: 1.4rem; }
}
