/* T&S GROUP v2-6-24
   Hub cards now use the same visual grammar as the cards on the home page.
   Legal confirmations are structurally side-by-side and the privacy link is emphasized. */
:root{
  --v2624-navy:#0b2b4d;
  --v2624-text:#183656;
  --v2624-muted:#687f98;
  --v2624-line:#c9d5df;
  --v2624-line-soft:#d6e0e8;
  --v2624-blue:#4c8bbd;
}

/* --------------------------------------------------------------------------
   SERVICES / INDUSTRIES HUBS — mirror the home-page card system
   -------------------------------------------------------------------------- */
body[data-page-key="services-hub"] .service-shell,
body[data-page-key="industries-hub"] .service-shell{
  width:min(1240px,calc(100% - 80px))!important;
  margin-inline:auto!important;
}
body[data-page-key="services-hub"] .services-hub-grid,
body[data-page-key="industries-hub"] .industries-hub-grid{
  display:grid!important;
  grid-template-columns:repeat(3,minmax(0,1fr))!important;
  gap:24px!important;
  align-items:stretch!important;
  margin-top:46px!important;
}
body[data-page-key="services-hub"] .services-hub-card,
body[data-page-key="industries-hub"] .industries-hub-card{
  padding:0!important;
  margin:0!important;
  border:1px solid var(--v2624-line)!important;
  background:#fff!important;
  display:flex!important;
  flex-direction:column!important;
  min-width:0!important;
  overflow:hidden!important;
  color:var(--v2624-text)!important;
  transform:none!important;
  box-shadow:none!important;
  font-family:Arial,Helvetica,sans-serif!important;
}
body[data-page-key="services-hub"] .services-hub-card{min-height:820px!important}
body[data-page-key="industries-hub"] .industries-hub-card{min-height:680px!important}
body[data-page-key="services-hub"] .services-hub-card:hover,
body[data-page-key="industries-hub"] .industries-hub-card:hover{
  border-color:#aebfce!important;
  transform:none!important;
  box-shadow:none!important;
}

/* Image is exactly the card width — no negative margins, no secondary frame. */
body[data-page-key="services-hub"] .services-hub-card__image,
body[data-page-key="industries-hub"] .industries-hub-card__image{
  display:block!important;
  width:100%!important;
  max-width:none!important;
  height:255px!important;
  margin:0!important;
  padding:0!important;
  border:0!important;
  outline:0!important;
  object-fit:cover!important;
  object-position:center!important;
  flex:0 0 255px!important;
  transform:none!important;
}

/* Content wrapper mirrors .card-body on the home page. */
body[data-page-key="services-hub"] .hub-card-body,
body[data-page-key="industries-hub"] .hub-card-body{
  padding:28px 28px 25px!important;
  display:flex!important;
  flex-direction:column!important;
  flex:1 1 auto!important;
  min-width:0!important;
}
body[data-page-key="services-hub"] .hub-card-body>span,
body[data-page-key="industries-hub"] .hub-card-body>span{
  display:block!important;
  margin:0 0 18px!important;
  padding:0!important;
  color:var(--v2624-blue)!important;
  font:800 11px/1 Arial,Helvetica,sans-serif!important;
  letter-spacing:.1em!important;
}
body[data-page-key="services-hub"] .hub-card-body>h2,
body[data-page-key="industries-hub"] .hub-card-body>h2{
  margin:0 0 24px!important;
  padding:0!important;
  color:var(--v2624-text)!important;
  font:400 24px/1.08 Arial,Helvetica,sans-serif!important;
  letter-spacing:0!important;
  text-transform:none!important;
}
body[data-page-key="services-hub"] .hub-card-body>p,
body[data-page-key="industries-hub"] .hub-card-body>p{
  margin:0 0 22px!important;
  padding:0!important;
  color:var(--v2624-muted)!important;
  font:400 14px/1.5 Arial,Helvetica,sans-serif!important;
  letter-spacing:0!important;
}

/* Lists use the same quiet horizontal separators as home cards. */
body[data-page-key="services-hub"] .hub-service-list,
body[data-page-key="industries-hub"] .hub-specializations{
  margin:auto 0 25px!important;
  padding:0!important;
  border:0!important;
  display:block!important;
}
body[data-page-key="services-hub"] .hub-service-list>b,
body[data-page-key="industries-hub"] .hub-specializations>b{
  display:block!important;
  margin:4px 0 14px!important;
  padding:0!important;
  color:var(--v2624-blue)!important;
  font:800 10px/1.2 Arial,Helvetica,sans-serif!important;
  letter-spacing:.12em!important;
  text-transform:uppercase!important;
}
body[data-page-key="industries-hub"] .hub-specializations__list{
  display:block!important;
  margin:0!important;
  padding:0!important;
  border-top:1px solid var(--v2624-line-soft)!important;
}
body[data-page-key="services-hub"] .hub-service-list>span,
body[data-page-key="industries-hub"] .hub-specializations__list>span{
  display:block!important;
  margin:0!important;
  padding:10px 0!important;
  border:0!important;
  border-bottom:1px solid var(--v2624-line-soft)!important;
  background:transparent!important;
  color:var(--v2624-text)!important;
  font:400 12px/1.35 Arial,Helvetica,sans-serif!important;
  letter-spacing:0!important;
}
body[data-page-key="services-hub"] .hub-service-list{
  border-top:1px solid var(--v2624-line-soft)!important;
  padding-top:16px!important;
}
body[data-page-key="services-hub"] .hub-service-list>b{margin-top:0!important}
body[data-page-key="services-hub"] .hub-card-body>em,
body[data-page-key="industries-hub"] .hub-card-body>em{
  display:block!important;
  margin:0!important;
  padding:0!important;
  border:0!important;
  background:transparent!important;
  color:var(--v2624-text)!important;
  font:800 12px/1.4 Arial,Helvetica,sans-serif!important;
  font-style:normal!important;
  letter-spacing:0!important;
}

/* Section intro follows the same typography rhythm as the home sections. */
body[data-page-key="services-hub"] .services-select-head,
body[data-page-key="industries-hub"] .industries-select-head{
  display:grid!important;
  grid-template-columns:1fr 1fr!important;
  gap:80px!important;
  align-items:start!important;
  margin-top:78px!important;
  padding-top:0!important;
  border-top:0!important;
}
body[data-page-key="services-hub"] .services-select-head h2,
body[data-page-key="industries-hub"] .industries-select-head h2{
  margin:0!important;
  color:var(--v2624-text)!important;
  font:400 50px/1.02 Arial,Helvetica,sans-serif!important;
  letter-spacing:0!important;
}
body[data-page-key="services-hub"] .services-select-head p,
body[data-page-key="industries-hub"] .industries-select-head p{
  margin:8px 0 0!important;
  max-width:560px!important;
  color:var(--v2624-muted)!important;
  font:400 16px/1.6 Arial,Helvetica,sans-serif!important;
}

/* --------------------------------------------------------------------------
   QUIET FRAMES ON NEWLY ADDED BLOCKS
   -------------------------------------------------------------------------- */
.principles-page .pr-card,
.principles-page .pr-result-card,
.service-page .sp-service-card,
.service-page .sp-related-card,
body[data-page-key="home"] .home-principle-card,
body[data-page-key="home"] .principles-home-teaser article{
  border-color:var(--v2624-line)!important;
  box-shadow:none!important;
}
.service-page .sp-info-card,
.service-page .sp-step{
  border-color:var(--v2624-line)!important;
  border-top-color:#879fb4!important;
  box-shadow:none!important;
}

/* --------------------------------------------------------------------------
   LEGAL FORM — checkbox and text are guaranteed to be on the same line
   -------------------------------------------------------------------------- */
.ts-form-confirmations{
  display:grid!important;
  grid-template-columns:1fr!important;
  gap:12px!important;
  margin:16px 0 10px!important;
}
.diagnostic-form label.ts-form-confirmation,
.ip-diagnostic-form label.ts-form-confirmation,
.sp-diagnostic-form label.ts-form-confirmation,
form.ts-feedback-form label.ts-form-confirmation,
label.ts-form-confirmation{
  position:relative!important;
  display:block!important;
  width:100%!important;
  min-height:18px!important;
  margin:0!important;
  padding:0!important;
  text-transform:none!important;
  letter-spacing:0!important;
  cursor:pointer!important;
}
.ts-form-confirmation>input[type="checkbox"]{
  position:absolute!important;
  width:1px!important;
  height:1px!important;
  min-width:0!important;
  min-height:0!important;
  margin:0!important;
  padding:0!important;
  opacity:0!important;
  pointer-events:none!important;
}
.ts-form-confirmation__line{
  display:flex!important;
  align-items:flex-start!important;
  justify-content:flex-start!important;
  gap:10px!important;
  width:100%!important;
  min-width:0!important;
}
.ts-form-confirmation__line>.ts-form-checkbox{
  display:block!important;
  flex:0 0 18px!important;
  width:18px!important;
  height:18px!important;
  min-width:18px!important;
  min-height:18px!important;
  margin:0!important;
  padding:0!important;
  border:1px solid #9fb5c8!important;
  background:#fff!important;
  box-sizing:border-box!important;
  position:relative!important;
}
.ts-form-confirmation__line>.ts-form-confirmation__text{
  display:block!important;
  flex:1 1 auto!important;
  min-width:0!important;
  margin:0!important;
  padding:0!important;
  color:#0b3158!important;
  font:700 11px/18px Arial,Helvetica,sans-serif!important;
  text-transform:none!important;
  letter-spacing:0!important;
}
.ts-form-confirmation__text a{
  color:#0b3158!important;
  font-weight:800!important;
  text-decoration:underline!important;
  text-decoration-thickness:1px!important;
  text-underline-offset:2px!important;
  border-bottom:0!important;
}
.ts-form-confirmation>input[type="checkbox"]:checked+.ts-form-confirmation__line>.ts-form-checkbox{
  background:#0b3158!important;
  border-color:#0b3158!important;
}
.ts-form-confirmation>input[type="checkbox"]:checked+.ts-form-confirmation__line>.ts-form-checkbox:after{
  content:'✓';
  position:absolute;
  inset:0;
  display:flex;
  align-items:center;
  justify-content:center;
  color:#fff;
  font:900 12px/1 Arial,Helvetica,sans-serif;
}
.ts-form-confirmation>input[type="checkbox"]:focus-visible+.ts-form-confirmation__line>.ts-form-checkbox{
  outline:2px solid #2980c2!important;
  outline-offset:2px!important;
}
.ts-form-consent-note{
  margin:15px 0 16px!important;
  color:#70859a!important;
  font:400 12px/1.55 Arial,Helvetica,sans-serif!important;
  text-transform:none!important;
  letter-spacing:0!important;
}
.ts-form-consent-note strong{font-weight:800!important}
.ts-form-consent-note a{
  color:#0b3158!important;
  font-weight:800!important;
  text-decoration:underline!important;
  text-decoration-thickness:1px!important;
  text-underline-offset:2px!important;
  border-bottom:0!important;
}

@media(max-width:1050px){
  body[data-page-key="services-hub"] .services-hub-grid,
  body[data-page-key="industries-hub"] .industries-hub-grid{grid-template-columns:repeat(2,minmax(0,1fr))!important}
  body[data-page-key="services-hub"] .services-select-head,
  body[data-page-key="industries-hub"] .industries-select-head{grid-template-columns:1fr!important;gap:20px!important}
}
@media(max-width:700px){
  body[data-page-key="services-hub"] .service-shell,
  body[data-page-key="industries-hub"] .service-shell{width:calc(100% - 36px)!important}
  body[data-page-key="services-hub"] .services-hub-grid,
  body[data-page-key="industries-hub"] .industries-hub-grid{grid-template-columns:1fr!important;gap:18px!important}
  body[data-page-key="services-hub"] .services-hub-card,
  body[data-page-key="industries-hub"] .industries-hub-card{min-height:0!important}
  body[data-page-key="services-hub"] .services-hub-card__image,
  body[data-page-key="industries-hub"] .industries-hub-card__image{height:230px!important;flex-basis:230px!important}
  body[data-page-key="services-hub"] .hub-card-body,
  body[data-page-key="industries-hub"] .hub-card-body{padding:24px 22px 24px!important}
  body[data-page-key="services-hub"] .services-select-head h2,
  body[data-page-key="industries-hub"] .industries-select-head h2{font-size:40px!important}
  .ts-form-confirmation__line>.ts-form-confirmation__text{font-size:10px!important;line-height:17px!important}
  .ts-form-consent-note{font-size:10px!important}
}
