/* V54 — unified mobile/tablet hardening for every public page. */
@media (max-width:1020px){
  html,body{max-width:100%;overflow-x:clip;}
  img,video,svg,canvas,iframe{max-width:100%;}
  input,select,textarea,button{max-width:100%;}
  .shell,.industry-shell,.service-shell,.article-shell,.articles-grid,.articles-hero{min-width:0;}
  .hero__grid>*,.two-col>*,.industry-grid>*,.service-grid>*,.management-grid>*,.principle-grid>*,.diagnostic-box>*,
  .ip-hero-grid>*,.ip-grid>*,.ip-spec-grid>*,.ip-diagnostic-box>*,
  .sp-hero-grid>*,.sp-grid>*,.sp-service-grid>*,.sp-step-grid>*,.sp-related-grid>*,.sp-diagnostic-box>*{min-width:0;}

  /* Services had desktop width + mobile margins at the same time. Use one real mobile shell. */
  .service-shell{width:calc(100% - 40px)!important;margin-left:auto!important;margin-right:auto!important;}
  .sp-hero-grid{grid-template-columns:1fr!important;gap:34px!important;}
  .sp-hero-media{width:100%!important;height:auto!important;aspect-ratio:4/3!important;}
  .sp-section{padding:68px 0!important;}
  .sp-grid-3,.sp-service-grid,.sp-step-grid,.sp-related-grid,.sp-diagnostic-box,.services-hub-grid{grid-template-columns:1fr!important;}
  .sp-info-card,.sp-step,.services-hub-card{min-height:0!important;}
  .sp-diagnostic-photo{width:100%!important;height:auto!important;min-height:0!important;aspect-ratio:16/10!important;}

  /* Industry pages */
  .ip-hero-grid{grid-template-columns:1fr!important;}
  .ip-hero-media,.ip-dark-hero .ip-hero-media{width:100%!important;max-width:none!important;height:auto!important;aspect-ratio:4/3!important;margin-top:0!important;}
  .ip-diagnostic-box{grid-template-columns:1fr!important;}
  .ip-diagnostic-photo{width:100%!important;height:auto!important;min-height:0!important;aspect-ratio:16/10!important;}

  /* Long editor/user text must never create horizontal scrolling. */
  [data-cms-id],.article-content,.public-article-card,.sp-related-card,.ts-global-footer__col{min-width:0;}
  .article-content pre,.article-content code{max-width:100%;overflow:auto;}
  .article-content table{display:block;max-width:100%;overflow-x:auto;border-collapse:collapse;}
}

@media (max-width:640px){
  /* Shared chrome */
  .ts-global-header{height:min(var(--ts-h-height,90px),76px)!important;}
  .ts-global-header__inner{width:calc(100% - 28px)!important;gap:12px!important;}
  .ts-global-logo{font-size:min(var(--ts-h-logo-size,20px),17px)!important;letter-spacing:min(var(--ts-h-logo-spacing,.18em),.14em)!important;}
  .ts-global-menu{width:40px!important;height:40px!important;}
  .ts-global-footer{padding-top:min(var(--ts-f-pad-top,76px),54px)!important;}
  .ts-global-footer__grid{gap:34px!important;}
  .ts-global-footer__columns{grid-template-columns:1fr!important;gap:26px!important;}
  .ts-global-footer__bottom{margin-top:36px!important;}

  /* Home */
  .shell{width:calc(100% - 28px)!important;}
  .hero__grid{padding:42px 0!important;gap:28px!important;}
  .hero h1{font-size:clamp(36px,11vw,44px)!important;line-height:1.02!important;margin-bottom:28px!important;}
  .hero__lead{font-size:17px!important;line-height:1.55!important;}
  .hero__media{margin-top:4px!important;padding:8px 8px 0!important;}
  .hero-media-stage{aspect-ratio:4/3!important;}
  
  .hero__media figcaption{height:auto!important;min-height:42px!important;padding:10px 4px!important;line-height:1.35!important;white-space:normal!important;}
  .industries,.services,.participation,.management,.principles,.diagnostics{padding:58px 0!important;}
  .section-head{margin-bottom:38px!important;}
  .section-head h2,.management__title,.principles__title,.competence-panel h2{font-size:clamp(34px,10vw,40px)!important;}
  .industry-card>img,.service-card>img{height:auto!important;aspect-ratio:16/10!important;}
  .card-body{padding:24px 22px!important;}
  .text-card{padding:26px 22px!important;}
  .principle-card-img img{height:auto!important;aspect-ratio:4/3!important;}
  .diagnostic-photo{min-height:0!important;height:auto!important;aspect-ratio:4/3!important;}
  .diagnostic-form{padding:32px 20px!important;}
  .btn{width:100%;padding-left:18px!important;padding-right:18px!important;text-align:center;}

  /* Industries */
  .industry-shell{width:calc(100% - 24px)!important;}
  .ip-breadcrumb{gap:8px!important;padding-top:16px!important;padding-bottom:8px!important;line-height:1.35!important;}
  .ip-breadcrumb b,.ip-breadcrumb a{overflow-wrap:anywhere;}
  .ip-hero-grid{padding-top:22px!important;gap:26px!important;}
  .ip-hero h1{font-size:clamp(31px,9.6vw,38px)!important;line-height:1.06!important;letter-spacing:-.025em!important;overflow-wrap:break-word;hyphens:auto;}
  .ip-hero-copy>p{font-size:15.5px!important;line-height:1.58!important;}
  .ip-hero-media,.ip-dark-hero .ip-hero-media{aspect-ratio:4/3!important;}
  .ip-section{padding:52px 0!important;}
  .ip-section h2{font-size:clamp(30px,9vw,34px)!important;}
  .ip-section-lead{font-size:15.5px!important;margin-bottom:30px!important;}
  .ip-grid-3,.ip-spec-grid-3,.ip-spec-grid-4{grid-template-columns:1fr!important;}
  .ip-info-card{padding:26px 22px 28px!important;min-height:0!important;}
  .ip-spec-media,.ip-spec-grid-4 .ip-spec-media{height:auto!important;aspect-ratio:16/10!important;}
  .ip-spec-copy{padding:24px 22px 28px!important;min-height:0!important;}
  .ip-diagnostics{padding:42px 0!important;}
  .ip-diagnostic-photo{aspect-ratio:4/3!important;}
  .ip-diagnostic-form{padding:30px 20px!important;}
  .ip-diagnostic-form h2{font-size:32px!important;}

  /* Services */
  .service-shell{width:calc(100% - 24px)!important;}
  .sp-breadcrumb{padding:18px 0 30px!important;gap:8px!important;flex-wrap:wrap!important;line-height:1.35!important;}
  .sp-breadcrumb b,.sp-breadcrumb a{overflow-wrap:anywhere;}
  .sp-hero{padding-bottom:58px!important;}
  .sp-hero-grid{gap:26px!important;}
  .sp-hero-copy h1,.services-hub h1{font-size:clamp(32px,10vw,40px)!important;line-height:1.06!important;overflow-wrap:break-word;hyphens:auto;}
  .sp-hero-copy p,.sp-section-lead{font-size:15.5px!important;line-height:1.58!important;}
  .sp-hero-media{aspect-ratio:4/3!important;}
  .sp-section{padding:54px 0!important;}
  .sp-section h2{font-size:clamp(30px,9vw,38px)!important;}
  .sp-section-lead{margin-bottom:32px!important;}
  .sp-info-card,.sp-step{padding:25px 22px 28px!important;min-height:0!important;}
  .sp-service-media{height:auto!important;aspect-ratio:16/10!important;}
  .sp-service-copy{padding:24px 22px 28px!important;}
  .sp-logic-kicker{margin-top:42px!important;}
  .sp-related-grid{margin-top:26px!important;}
  .sp-related-card{grid-template-columns:34px minmax(0,1fr) 20px!important;gap:10px!important;padding:16px 15px!important;}
  .sp-diagnostics{padding:54px 0 64px!important;}
  .sp-diagnostic-photo{aspect-ratio:4/3!important;}
  .sp-diagnostic-form{padding:30px 20px!important;}
  .sp-diagnostic-form h2{font-size:32px!important;}
  .services-hub{padding:32px 0 70px!important;}
  .services-hub-grid{margin-top:34px!important;}
  .services-hub-card{padding:24px 22px!important;min-height:0!important;}
  .services-hub-card h2{font-size:24px!important;}

  /* Articles */
  .articles-hero,.articles-grid,.article-shell{width:calc(100% - 28px)!important;}
  .articles-hero{padding:50px 0 36px!important;}
  .articles-hero h1,.article-page h1{font-size:clamp(34px,10.5vw,40px)!important;line-height:1.06!important;overflow-wrap:break-word;}
  .articles-grid{gap:18px!important;padding-bottom:70px!important;}
  .public-article-card{min-height:0!important;}
  .public-article-card__body{padding:22px!important;}
  .public-article-card h2{font-size:23px!important;}
  .article-page{padding:38px 0 80px!important;}
  .article-back{margin-bottom:34px!important;}
  .article-byline{flex-wrap:wrap!important;gap:8px 14px!important;}
  .article-byline span+span:before{margin-right:14px!important;}
  .article-hero{margin-bottom:38px!important;}
  .article-content{font-size:16.5px!important;line-height:1.7!important;overflow-wrap:break-word;}
  .article-content h2{font-size:29px!important;margin-top:46px!important;}
  .article-content h3{font-size:23px!important;margin-top:34px!important;}
  .article-content blockquote{margin:30px 0!important;padding:20px 18px!important;font-size:18px!important;}
  .article-content ul,.article-content ol{padding-left:24px!important;}
}


/* V58 — mobile service/industry cards: media must stay inside the card bounds. */



/* =========================================================
   V62 — site-wide phone overflow guard.
   Keeps every public page inside the visual viewport without
   changing the desktop / Full HD composition.
   ========================================================= */
@media (max-width:1020px){
  html{
    width:100%!important;
    min-width:0!important;
    max-width:100%!important;
    overflow-x:hidden!important;
  }
  body,
  body:not(.cms-editor-page){
    width:100%!important;
    min-width:0!important;
    max-width:100%!important;
    
    transform:none!important;
    overflow-x:hidden!important;
  }

  body:not(.cms-editor-page) main,
  body:not(.cms-editor-page) header,
  body:not(.cms-editor-page) footer,
  body:not(.cms-editor-page) section,
  body:not(.cms-editor-page) article,
  body:not(.cms-editor-page) nav,
  body:not(.cms-editor-page) figure,
  body:not(.cms-editor-page) form{
    min-width:0!important;
    max-width:100%;
  }

  body:not(.cms-editor-page) .shell,
  body:not(.cms-editor-page) .industry-shell,
  body:not(.cms-editor-page) .service-shell,
  body:not(.cms-editor-page) .article-shell,
  body:not(.cms-editor-page) .articles-grid,
  body:not(.cms-editor-page) .articles-hero,
  body:not(.cms-editor-page) .ts-global-header__inner,
  body:not(.cms-editor-page) .ts-global-footer__shell{
    min-width:0!important;
    max-width:100%!important;
  }

  body.ts-public-page img,
  body.ts-public-page picture,
  body.ts-public-page video,
  body.ts-public-page svg,
  body.ts-public-page canvas,
  body.ts-public-page iframe{
    max-width:100%!important;
  }

  body.ts-public-page h1,
  body.ts-public-page h2,
  body.ts-public-page h3,
  body.ts-public-page h4,
  body.ts-public-page p,
  body.ts-public-page li,
  body.ts-public-page a,
  body.ts-public-page span,
  body.ts-public-page [data-cms-id]{
    min-width:0!important;
    max-width:100%;
  }

  body.ts-public-page h1,
  body.ts-public-page h2,
  body.ts-public-page h3,
  body.ts-public-page h4,
  body.ts-public-page p,
  body.ts-public-page li,
  body.ts-public-page [data-cms-id]{
    overflow-wrap:break-word;
    word-break:normal;
  }

  /* Any desktop min-width / translated child inside these common grids
     must be allowed to shrink on a phone. */
  .hero__grid>*,
  .industry-grid>*,
  .service-grid>*,
  .two-col>*,
  .management-grid>*,
  .principle-grid>*,
  .principle-mini-grid>*,
  .competence-grid>*,
  .competence-intro>*,
  .diagnostic-box>*,
  .ip-hero-grid>*,
  .ip-grid-3>*,
  .ip-spec-grid>*,
  .ip-spec-grid-3>*,
  .ip-spec-grid-4>*,
  .ip-diagnostic-box>*,
  .sp-hero-grid>*,
  .sp-grid>*,
  .sp-grid-3>*,
  .sp-service-grid>*,
  .sp-step-grid>*,
  .sp-related-grid>*,
  .sp-diagnostic-box>*,
  .services-hub-grid>*{
    min-width:0!important;
    max-width:100%!important;
  }

  

  /* A menu opened on the public site owns the screen, so the page behind
     it cannot drift or scroll horizontally/vertically. */
  body.ts-mobile-menu-open:not(.cms-editor-page){
    overflow:hidden!important;
    overscroll-behavior:none!important;
    touch-action:none;
  }
}

@media (max-width:640px){
  body:not(.cms-editor-page) .shell,
  body:not(.cms-editor-page) .ts-global-header__inner,
  body:not(.cms-editor-page) .ts-global-footer__shell{
    width:calc(100% - 28px)!important;
    margin-left:auto!important;
    margin-right:auto!important;
  }

  body:not(.cms-editor-page) .industry-shell,
  body:not(.cms-editor-page) .service-shell{
    width:calc(100% - 24px)!important;
    margin-left:auto!important;
    margin-right:auto!important;
  }

  body:not(.cms-editor-page) .hero__grid{
    width:calc(100% - 28px)!important;
    max-width:calc(100% - 28px)!important;
    margin-left:auto!important;
    margin-right:auto!important;
  }

  body:not(.cms-editor-page) .ip-hero-grid,
  body:not(.cms-editor-page) .sp-hero-grid{
    width:100%!important;
    max-width:100%!important;
  }

  /* Long labels in CMS-managed eyebrow fields must wrap instead of
     increasing the page width. */
  body:not(.cms-editor-page) .eyebrow,
  body:not(.cms-editor-page) .ip-kicker,
  body:not(.cms-editor-page) .sp-kicker,
  body:not(.cms-editor-page) .articles-kicker{
    white-space:normal!important;
    overflow-wrap:anywhere!important;
  }
}

/* =========================================================
   V67 — FullHD center lock.
   Keep the requested 85% visual scale without an artificial
   117.647% body width, which shifted the whole composition right.
   ========================================================= */


/* =========================================================
   V68 — FullHD small text readability boost
   Typography only. No block/layout scaling.
   ========================================================= */
@media (min-width:1600px) and (max-width:1999px){

  .ts-global-header__nav a,
  .site-header a,
  .header a,
  .nav a,
  .nav-link,
  .menu-link{
    font-size:1.06em!important;
  }

  .eyebrow,
  .hero__eyebrow,
  .section-eyebrow,
  .section-kicker,
  .kicker,
  .overline,
  .label,
  .meta-label{
    font-size:1.07em!important;
    line-height:1.35!important;
  }

  .hero__lead,
  .hero__text,
  .section-lead,
  .section-copy,
  .section-description,
  .card-copy,
  .card-description,
  .industry-copy,
  .service-copy,
  .principle-copy,
  .intro-copy,
  .lead,
  .muted,
  .subtext,
  .caption{
    font-size:1.055em!important;
    line-height:1.48!important;
  }

  .btn,
  .button,
  .cta,
  .hero__cta,
  .ts-global-header__cta,
  button{
    font-size:1.045em!important;
  }

  .ts-global-footer,
  footer,
  .footer,
  .footer a,
  .footer p,
  .footer small,
  .legal,
  .meta,
  small{
    font-size:1.055em!important;
  }

  .article-meta,
  .article-card__meta,
  .service-card__meta,
  .industry-card__meta,
  .breadcrumbs,
  .breadcrumb{
    font-size:1.06em!important;
  }
}

/* =========================================================
   V70 — unified card typography + FullHD no-clipping
   The two homepage card systems intentionally share the same
   typography. FullHD compensates typography for the 85% page zoom
   without enlarging card widths / columns / general blocks.
   ========================================================= */

/* Same type scale for both homepage card systems on desktop. */
@media (min-width:1021px){
  .industry-card .num,
  .service-card .num{
    font-size:11.5px!important;
  }

  .industry-card h3,
  .service-card h3{
    font-size:26px!important;
    line-height:1.08!important;
  }

  .industry-card p,
  .service-card p{
    font-size:15px!important;
    line-height:1.50!important;
  }

  .industry-card li,
  .service-card li{
    font-size:12.5px!important;
    line-height:1.38!important;
  }

  .industry-card a,
  .service-card a{
    font-size:12.5px!important;
  }

  .service-card h4{
    font-size:10.5px!important;
    line-height:1.30!important;
  }
}

/* FullHD: text stays visually close to the 2K size after compact desktop sizing.
   Only typography and the vertical room of the sticky card scene change. */
@media (min-width:1600px) and (max-width:1999px){
  .industry-card .num,
  .service-card .num{
    font-size:13.5px!important;
  }

  .industry-card h3,
  .service-card h3{
    font-size:31px!important;
    line-height:1.08!important;
  }

  .industry-card p,
  .service-card p{
    font-size:17.7px!important;
    line-height:1.48!important;
  }

  .industry-card li,
  .service-card li{
    font-size:14.8px!important;
    line-height:1.36!important;
  }

  .industry-card a,
  .service-card a{
    font-size:14.8px!important;
  }

  .service-card h4{
    font-size:12.4px!important;
    line-height:1.30!important;
  }

  /* The previous viewport-height scene became too short after the larger
     readable type. Give the stacked cards enough vertical room so their
     bottom links/lists are not cut off. Width and column geometry stay intact. */
  
}

/* =========================================================
   V71 — crisp form typography
   One explicit system font stack for every public feedback form.
   Inputs no longer inherit the tiny 9–11px label font.
   Geometry / field heights / form widths are intentionally unchanged.
   ========================================================= */

.diagnostic-form,
.ip-diagnostic-form,
.sp-diagnostic-form{
  font-family:system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,Arial,sans-serif!important;
}

/* Labels */
.diagnostic-form label,
.ip-diagnostic-form label,
.sp-diagnostic-form label{
  font-family:inherit!important;
  font-size:12px!important;
  font-weight:700!important;
  letter-spacing:.055em!important;
}

/* All editable / selectable fields */
.diagnostic-form input,
.diagnostic-form select,
.diagnostic-form textarea,
.ip-diagnostic-form input:not([type="checkbox"]),
.ip-diagnostic-form select,
.ip-diagnostic-form textarea,
.sp-diagnostic-form input:not([type="checkbox"]),
.sp-diagnostic-form select,
.sp-diagnostic-form textarea{
  font-family:system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,Arial,sans-serif!important;
  font-size:16px!important;
  font-weight:500!important;
  line-height:1.25!important;
  letter-spacing:0!important;
  color:#173a61!important;
  opacity:1!important;
  -webkit-font-smoothing:auto;
  font-synthesis:none;
}

/* Placeholder text — explicit instead of inheriting the label typography */
.diagnostic-form input::placeholder,
.diagnostic-form textarea::placeholder,
.ip-diagnostic-form input::placeholder,
.ip-diagnostic-form textarea::placeholder,
.sp-diagnostic-form input::placeholder,
.sp-diagnostic-form textarea::placeholder{
  font-family:system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,Arial,sans-serif!important;
  font-size:16px!important;
  font-weight:500!important;
  letter-spacing:0!important;
  color:#62788f!important;
  opacity:1!important;
}

/* Select options use the same crisp font */
.diagnostic-form select option,
.ip-diagnostic-form select option,
.sp-diagnostic-form select option{
  font-family:system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,Arial,sans-serif!important;
  font-size:16px!important;
  font-weight:500!important;
}

/* Supporting form copy */
.diagnostic-form>p,
.ip-diagnostic-form>p,
.sp-diagnostic-form>p{
  font-family:inherit!important;
  font-size:14.5px!important;
  line-height:1.5!important;
}

.diagnostic-form .consent,
.diagnostic-form .form-note,
.ip-diagnostic-form .ip-consent,
.sp-diagnostic-form .sp-consent,
.diagnostic-form .form-status,
.ip-diagnostic-form .form-status,
.sp-diagnostic-form .form-status{
  font-family:inherit!important;
}

/* Buttons inside all feedback forms */
.diagnostic-form button,
.ip-diagnostic-form button,
.sp-diagnostic-form button{
  font-family:system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,Arial,sans-serif!important;
  font-weight:700!important;
  letter-spacing:0!important;
}

/* FullHD compensates only type size for the global 85% visual zoom.
   Field dimensions and the surrounding form stay exactly the same. */
@media (min-width:1600px) and (max-width:1999px){
  .diagnostic-form label,
  .ip-diagnostic-form label,
  .sp-diagnostic-form label{
    font-size:14px!important;
  }

  .diagnostic-form input,
  .diagnostic-form select,
  .diagnostic-form textarea,
  .ip-diagnostic-form input:not([type="checkbox"]),
  .ip-diagnostic-form select,
  .ip-diagnostic-form textarea,
  .sp-diagnostic-form input:not([type="checkbox"]),
  .sp-diagnostic-form select,
  .sp-diagnostic-form textarea{
    font-size:18.5px!important;
    font-weight:500!important;
  }

  .diagnostic-form input::placeholder,
  .diagnostic-form textarea::placeholder,
  .ip-diagnostic-form input::placeholder,
  .ip-diagnostic-form textarea::placeholder,
  .sp-diagnostic-form input::placeholder,
  .sp-diagnostic-form textarea::placeholder{
    font-size:18.5px!important;
    font-weight:500!important;
  }

  .diagnostic-form select option,
  .ip-diagnostic-form select option,
  .sp-diagnostic-form select option{
    font-size:18.5px!important;
  }

  .diagnostic-form>p,
  .ip-diagnostic-form>p,
  .sp-diagnostic-form>p{
    font-size:16.5px!important;
  }

  .diagnostic-form .consent,
  .diagnostic-form .form-note,
  .ip-diagnostic-form .ip-consent,
  .sp-diagnostic-form .sp-consent{
    font-size:12.8px!important;
    line-height:1.45!important;
  }

  .diagnostic-form .form-status,
  .ip-diagnostic-form .form-status,
  .sp-diagnostic-form .form-status{
    font-size:14px!important;
  }

  .diagnostic-form button,
  .ip-diagnostic-form button,
  .sp-diagnostic-form button{
    font-size:17px!important;
  }
}

/* =========================================================
   V73 — crisp feedback forms + FullHD fit
   1) Form text uses a strongly hinted Windows-safe font.
   2) Form/reveal compositor layers are disabled so text is crisp
      immediately, not only after a click/repaint.
   3) FullHD vertical spacing is compacted without shrinking field text.
   ========================================================= */

/* Keep all public feedback form typography crisp on 2K and FullHD. */
.diagnostic-form,
.ip-diagnostic-form,
.sp-diagnostic-form,
.diagnostic-form input,
.diagnostic-form select,
.diagnostic-form textarea,
.diagnostic-form button,
.ip-diagnostic-form input,
.ip-diagnostic-form select,
.ip-diagnostic-form textarea,
.ip-diagnostic-form button,
.sp-diagnostic-form input,
.sp-diagnostic-form select,
.sp-diagnostic-form textarea,
.sp-diagnostic-form button{
  font-family:Arial,Helvetica,sans-serif!important;
  text-rendering:auto!important;
  -webkit-font-smoothing:auto!important;
  font-synthesis:none!important;
}

.diagnostic-form label,
.ip-diagnostic-form label,
.sp-diagnostic-form label{
  font-family:Arial,Helvetica,sans-serif!important;
  font-weight:700!important;
}

.diagnostic-form input,
.diagnostic-form select,
.diagnostic-form textarea,
.ip-diagnostic-form input:not([type="checkbox"]),
.ip-diagnostic-form select,
.ip-diagnostic-form textarea,
.sp-diagnostic-form input:not([type="checkbox"]),
.sp-diagnostic-form select,
.sp-diagnostic-form textarea{
  font-size:16.5px!important;
  font-weight:600!important;
  letter-spacing:0!important;
  color:#173a61!important;
  opacity:1!important;
}

.diagnostic-form input::placeholder,
.diagnostic-form textarea::placeholder,
.ip-diagnostic-form input::placeholder,
.ip-diagnostic-form textarea::placeholder,
.sp-diagnostic-form input::placeholder,
.sp-diagnostic-form textarea::placeholder{
  font-family:Arial,Helvetica,sans-serif!important;
  font-size:16.5px!important;
  font-weight:600!important;
  letter-spacing:0!important;
  color:#607891!important;
  opacity:1!important;
}

/* Do not keep the form on a GPU transform layer after reveal animation.
   This was the source of the "slightly blurry until click" repaint effect. */
.diagnostic-box.reveal,
.diagnostic-photo.motion-item,
.diagnostic-form.motion-item,
.ip-diagnostic-form.motion-item,
.sp-diagnostic-form.motion-item{
  will-change:auto!important;
}

.diagnostic-box.reveal.in,
.diagnostic-photo.motion-item.motion-in,
.diagnostic-form.motion-item.motion-in,
.ip-diagnostic-form.motion-item.motion-in,
.sp-diagnostic-form.motion-item.motion-in{
  transform:none!important;
  filter:none!important;
}

/* FullHD — compact vertical rhythm only.
   The field text stays large and crisp; the form now fits the viewport. */
@media (min-width:1600px) and (max-width:1999px){

  .diagnostics{
    padding-top:38px!important;
    padding-bottom:42px!important;
  }

  .diagnostic-form{
    padding:34px 54px 30px!important;
  }

  .diagnostic-form .eyebrow{
    margin-bottom:12px!important;
  }

  .diagnostic-form h2{
    margin-bottom:14px!important;
  }

  .diagnostic-form>p:not(.consent):not(.form-note){
    margin-bottom:16px!important;
  }

  .diagnostic-form label{
    margin-bottom:10px!important;
    font-size:14px!important;
    line-height:1.15!important;
  }

  .diagnostic-form input,
  .diagnostic-form select,
  .diagnostic-form textarea{
    height:52px!important;
    margin-top:6px!important;
    font-size:18.5px!important;
    font-weight:600!important;
    line-height:1.2!important;
  }

  .diagnostic-form input::placeholder,
  .diagnostic-form textarea::placeholder{
    font-size:18.5px!important;
    font-weight:600!important;
  }

  .diagnostic-form .consent{
    margin-top:2px!important;
    margin-bottom:8px!important;
    font-size:12.5px!important;
    line-height:1.35!important;
  }

  .diagnostic-form [data-legal-form]{
    margin-top:0!important;
    margin-bottom:8px!important;
  }

  .diagnostic-form .form-note{
    margin-top:8px!important;
    margin-bottom:0!important;
    font-size:12.5px!important;
    line-height:1.35!important;
  }

  .diagnostic-form .form-status{
    min-height:14px!important;
    margin-top:5px!important;
  }

  .diagnostic-form button{
    font-size:17px!important;
  }

  /* Industry / service feedback forms get the same crisp font and a
     slightly tighter vertical rhythm on FullHD. */
  .ip-diagnostic-form,
  .sp-diagnostic-form{
    padding-top:34px!important;
    padding-bottom:30px!important;
  }

  .ip-diagnostic-form label,
  .sp-diagnostic-form label{
    margin-bottom:10px!important;
    font-size:14px!important;
    line-height:1.15!important;
  }

  .ip-diagnostic-form input:not([type="checkbox"]),
  .ip-diagnostic-form select,
  .ip-diagnostic-form textarea,
  .sp-diagnostic-form input:not([type="checkbox"]),
  .sp-diagnostic-form select,
  .sp-diagnostic-form textarea{
    font-size:18.5px!important;
    font-weight:600!important;
  }

  .ip-diagnostic-form input::placeholder,
  .ip-diagnostic-form textarea::placeholder,
  .sp-diagnostic-form input::placeholder,
  .sp-diagnostic-form textarea::placeholder{
    font-size:18.5px!important;
    font-weight:600!important;
  }
}

/* =========================================================
   V74 — balanced form field text
   Smaller and regular-weight input/select/textarea typography.
   Labels stay bold; only the text inside fields is softened.
   ========================================================= */

.diagnostic-form input,
.diagnostic-form select,
.diagnostic-form textarea,
.ip-diagnostic-form input:not([type="checkbox"]),
.ip-diagnostic-form select,
.ip-diagnostic-form textarea,
.sp-diagnostic-form input:not([type="checkbox"]),
.sp-diagnostic-form select,
.sp-diagnostic-form textarea{
  font-size:15px!important;
  font-weight:400!important;
  line-height:1.25!important;
}

.diagnostic-form input::placeholder,
.diagnostic-form textarea::placeholder,
.ip-diagnostic-form input::placeholder,
.ip-diagnostic-form textarea::placeholder,
.sp-diagnostic-form input::placeholder,
.sp-diagnostic-form textarea::placeholder{
  font-size:15px!important;
  font-weight:400!important;
}

.diagnostic-form select option,
.ip-diagnostic-form select option,
.sp-diagnostic-form select option{
  font-size:15px!important;
  font-weight:400!important;
}

@media (min-width:1600px) and (max-width:1999px){
  .diagnostic-form input,
  .diagnostic-form select,
  .diagnostic-form textarea,
  .ip-diagnostic-form input:not([type="checkbox"]),
  .ip-diagnostic-form select,
  .ip-diagnostic-form textarea,
  .sp-diagnostic-form input:not([type="checkbox"]),
  .sp-diagnostic-form select,
  .sp-diagnostic-form textarea{
    font-size:16px!important;
    font-weight:400!important;
  }

  .diagnostic-form input::placeholder,
  .diagnostic-form textarea::placeholder,
  .ip-diagnostic-form input::placeholder,
  .ip-diagnostic-form textarea::placeholder,
  .sp-diagnostic-form input::placeholder,
  .sp-diagnostic-form textarea::placeholder{
    font-size:16px!important;
    font-weight:400!important;
  }

  .diagnostic-form select option,
  .ip-diagnostic-form select option,
  .sp-diagnostic-form select option{
    font-size:16px!important;
    font-weight:400!important;
  }
}




/* FullHD keeps the exact same style, only compensating type sizes
   for the existing global 85% visual scale. Card geometry remains shared. */







/* V260 — iOS Safari zooms the viewport when a focused control is below 16px.
   Keep all public text controls at 16px+ on phones without changing desktop typography. */
@media (max-width: 767px){
  html{-webkit-text-size-adjust:100%;text-size-adjust:100%}
  input:not([type=checkbox]):not([type=radio]):not([type=range]):not([type=file]),
  textarea,
  select{
    font-size:16px!important;
    line-height:1.35!important;
  }
}

/* =========================================================
   V268 — managed legal confirmations + success modal
   ========================================================= */
.ts-form-confirmations{display:grid!important;grid-template-columns:1fr!important;gap:9px!important;margin:14px 0 18px!important}
.ts-form-confirmation{position:relative!important;display:grid!important;grid-template-columns:20px minmax(0,1fr)!important;align-items:start!important;gap:10px!important;margin:0!important;padding:0!important;color:#526d87!important;font-size:12px!important;font-weight:500!important;letter-spacing:0!important;line-height:1.45!important;cursor:pointer!important}
.ts-form-confirmation>input{position:absolute!important;width:1px!important;height:1px!important;opacity:0!important;pointer-events:none!important}
.ts-form-checkbox{display:block;width:18px;height:18px;border:1px solid #9fb5c8;background:#fff;box-sizing:border-box;position:relative;margin-top:0}
.ts-form-confirmation>input:checked+.ts-form-checkbox{background:#0b3158;border-color:#0b3158}
.ts-form-confirmation>input:checked+.ts-form-checkbox:after{content:'✓';position:absolute;inset:0;display:flex;align-items:center;justify-content:center;color:#fff;font-size:12px;font-weight:900}
.ts-form-confirmation>input:focus-visible+.ts-form-checkbox{outline:2px solid #2980c2;outline-offset:2px}
.ts-form-confirmation>input:invalid:not(:focus)+.ts-form-checkbox{border-color:#9fb5c8}
.ts-form-confirmation__text a{color:#174f7f!important;text-decoration:none!important;border-bottom:1px solid rgba(23,79,127,.28)}
.ts-form-confirmation__text a:hover{border-bottom-color:#174f7f}
.ts-form-label-text{display:block}
.ts-context-custom[hidden]{display:none!important}
.ts-form-success-modal[hidden]{display:none!important}.ts-form-success-modal{position:fixed;inset:0;z-index:2147483000;display:grid;place-items:center;padding:24px}
.ts-form-success-modal__backdrop{position:absolute;inset:0;background:rgba(4,24,43,.64);backdrop-filter:blur(5px)}
.ts-form-success-modal__dialog{position:relative;width:min(620px,calc(100vw - 32px));background:#fff;border:1px solid #cbd9e4;padding:48px 52px 44px;box-shadow:0 28px 90px rgba(4,26,48,.28);color:#0b3158}
.ts-form-success-modal__close{position:absolute;right:18px;top:16px;width:38px;height:38px;border:1px solid #c7d5e0;background:#fff;color:#0b3158;font-size:25px;line-height:1;cursor:pointer}
.ts-form-success-modal__kicker{display:block;color:#2a7fbe;font-size:11px;font-weight:900;letter-spacing:.18em;margin-bottom:16px}
.ts-form-success-modal h2{font-size:34px;line-height:1.05;margin:0 0 18px;color:#0b3158}.ts-form-success-modal p{font-size:16px;line-height:1.65;color:#5f7890;margin:0 0 26px}
.ts-form-success-modal__home{display:inline-flex;min-height:44px;align-items:center;padding:0 20px;border:1px solid #0b3158;color:#0b3158;text-decoration:none;font-weight:800;font-size:12px}
html.ts-form-modal-open,html.ts-form-modal-open body{overflow:hidden!important}
@media(max-width:700px){.ts-form-success-modal__dialog{padding:38px 24px 30px}.ts-form-success-modal h2{font-size:28px}.ts-form-confirmation{font-size:11px!important}}
