/*
 * Single-service UI adjustments.
 * Loaded after the global design system so these component-specific contracts
 * are not undone by older service styles or broad theme selectors.
 */

/* Industries We Serve uses the homepage Blog Card as its visual master:
   square image, edge-to-edge media, sharp shell, restrained dark reveal and
   title-only hierarchy. Existing industry content remains structurally intact;
   the visible treatment matches the authored Blog Card. */
.svcx .svcx-ind__grid {
  grid-template-columns:repeat(3,minmax(0,1fr));
  gap:clamp(1.25rem,2.2vw,2rem);
  align-items:stretch;
}

.svcx .svcx-ind__card {
  position:relative;
  display:block;
  aspect-ratio:1 / 1;
  min-height:0;
  padding:0;
  overflow:hidden;
  border:0;
  border-radius:0;
  background:#111;
  box-shadow:none;
  isolation:isolate;
  transform:none;
}

.svcx .svcx-ind__card::after {
  content:"";
  position:absolute;
  z-index:2;
  inset:0;
  pointer-events:none;
  background:rgba(0,0,0,.64);
  opacity:0;
  transition:opacity .48s var(--ease-expo);
}

.svcx .svcx-ind__img {
  position:absolute;
  z-index:1;
  inset:0;
  display:block;
  width:100%;
  height:100%;
  object-fit:cover;
  filter:none;
  transform:scale(1.001);
  transition:transform .7s var(--ease-expo),filter .48s ease;
}

.svcx .svcx-ind__overlay {
  position:absolute;
  z-index:3;
  inset:0;
  display:flex;
  align-items:flex-end;
  justify-content:flex-start;
  width:100%;
  height:100%;
  padding:clamp(1.15rem,2.2vw,2rem);
  background:transparent;
  pointer-events:none;
}

.svcx .svcx-ind__icon,
.svcx .svcx-ind__text {
  display:none;
}

.svcx .svcx-ind__name {
  position:relative;
  z-index:1;
  margin:0;
  color:#fff;
  -webkit-text-fill-color:#fff;
  font-family:var(--font-display);
  font-size:clamp(1rem,1.25vw,1.14rem);
  font-weight:700;
  line-height:1.3;
  letter-spacing:-.02em;
  opacity:0;
  transform:translateY(12px);
  transition:opacity .42s ease,transform .48s var(--ease-expo);
}

.svcx .svcx-ind__card:is(:hover,:focus-visible,:focus-within)::after { opacity:1; }
.svcx .svcx-ind__card:is(:hover,:focus-visible,:focus-within) .svcx-ind__name {
  opacity:1;
  transform:translateY(0);
}
.svcx .svcx-ind__card:is(:hover,:focus-visible,:focus-within) .svcx-ind__img {
  transform:scale(1.035);
  filter:saturate(.88) contrast(1.04);
}
.svcx .svcx-ind__card:focus-visible {
  outline:3px solid var(--accent-teal,#008d98);
  outline-offset:3px;
}

/* Heading contrast follows the semantic surface assigned by design-system.js.
   This corrects the broad legacy rule that treated this section as permanently
   dark even when the section rhythm assigns it a light background. */
html[data-theme] .svcx-stories[data-design-surface="primary"] .svcx-stories__intro .svcx-h2 {
  color:var(--section-text,var(--text-primary,#0b1112))!important;
  -webkit-text-fill-color:currentColor!important;
  background-image:none!important;
}
html[data-theme] .svcx-stories[data-design-surface="primary"] .svcx-stories__intro .svcx-h2 span {
  color:var(--section-accent,var(--accent-teal,#008d98))!important;
  -webkit-text-fill-color:currentColor!important;
  background-image:none!important;
}
html[data-theme] .svcx-stories[data-design-surface="primary"] .svcx-stories__intro .svcx-eyebrow {
  color:var(--section-accent,var(--accent-teal,#008d98))!important;
}
html[data-theme] .svcx-stories[data-design-surface="contrast"] .svcx-stories__intro .svcx-h2,
html[data-theme] .svcx-stories[data-design-surface="contrast"] .svcx-stories__intro .svcx-h2 span {
  color:var(--section-text,#fff)!important;
  -webkit-text-fill-color:currentColor!important;
  background-image:none!important;
}
html[data-theme] .svcx-stories[data-design-surface="contrast"] .svcx-stories__intro .svcx-eyebrow {
  color:var(--section-accent,var(--accent-on-dark,#67e8ed))!important;
}
html[data-theme="light"] .svcx-stories:not([data-design-surface]) .svcx-stories__intro .svcx-h2 {
  color:var(--text-primary,#0b1112)!important;
  -webkit-text-fill-color:currentColor!important;
}
html[data-theme="dark"] .svcx-stories:not([data-design-surface]) .svcx-stories__intro .svcx-h2 {
  color:#fff!important;
  -webkit-text-fill-color:#fff!important;
}

/* Related Services keeps its existing composition and motion, but at a more
   compact scale with sharp card and glass-panel edges. */
.svcx .svcx-related .service-related-grid {
  gap:clamp(14px,1.6vw,20px);
  margin-top:clamp(2rem,3vw,2.5rem);
}
.svcx .svcx-related .service-related-card {
  height:360px;
  border-radius:0;
}
.svcx .svcx-related .service-related-card-media { height:216px; }
.svcx .svcx-related .service-related-card-body {
  right:10px;
  bottom:10px;
  left:10px;
  min-height:136px;
  padding:16px;
  border-radius:0;
}
.svcx .svcx-related .service-related-card-index,
.svcx .svcx-related .service-related-card-arrow { border-radius:0; }
.svcx .svcx-related .service-related-card-summary {
  margin-top:7px;
  font-size:.69rem;
  -webkit-line-clamp:2;
}

/* Why Manova retains its icon/title/copy structure but becomes denser and
   activates as a complete teal surface, with keyboard parity and contrast. */
.svcx .svcx-why__grid {
  grid-template-columns:repeat(auto-fit,minmax(230px,1fr));
  gap:12px;
}
.svcx .svcx-why .svcx-why__item {
  min-height:0;
  padding:1.35rem 1.25rem;
  border-radius:0;
  transition:transform .5s var(--ease-expo),box-shadow .5s var(--ease-expo),background-color .38s ease,border-color .38s ease,color .38s ease;
}
.svcx .svcx-why .svcx-why__icon {
  width:42px;
  height:42px;
  margin-bottom:.9rem;
  border-radius:0;
  transition:background-color .38s ease,color .38s ease,box-shadow .38s ease,transform .5s var(--ease-expo);
}
.svcx .svcx-why .svcx-why__icon svg { width:22px;height:22px; }
.svcx .svcx-why .svcx-why__item p {
  font-size:.88rem;
  line-height:1.55;
  transition:color .38s ease;
}
.svcx .svcx-why .svcx-why__item:is(:hover,:focus-visible,:focus-within) {
  color:#041314!important;
  background:var(--accent-teal,#008d98)!important;
  border-color:var(--accent-teal,#008d98)!important;
  box-shadow:0 24px 48px -28px color-mix(in srgb,var(--accent-teal,#008d98) 75%,transparent)!important;
  transform:translateY(-4px);
}
.svcx .svcx-why .svcx-why__item:is(:hover,:focus-visible,:focus-within) :is(.svcx-h4,p) {
  color:#041314!important;
  -webkit-text-fill-color:#041314!important;
}
.svcx .svcx-why .svcx-why__item:is(:hover,:focus-visible,:focus-within) .svcx-why__icon {
  color:#041314!important;
  background:rgba(255,255,255,.34)!important;
  box-shadow:none;
  transform:translateY(-2px);
}
.svcx .svcx-why .svcx-why__item:focus-visible {
  outline:3px solid color-mix(in srgb,var(--accent-teal,#008d98) 70%,#fff);
  outline-offset:3px;
}

@media(max-width:1000px) {
  .svcx .svcx-ind__grid { grid-template-columns:repeat(2,minmax(0,1fr)); }
}

@media(max-width:900px) {
  .svcx .svcx-related .service-related-card { height:340px; }
  .svcx .svcx-related .service-related-card-media { height:202px; }
  .svcx .svcx-related .service-related-card-body { min-height:130px; }
}

@media(max-width:640px) {
  .svcx .svcx-ind__grid { grid-template-columns:minmax(0,1fr);gap:1.5rem; }
  .svcx .svcx-ind__card { aspect-ratio:1 / 1; }
  .svcx .svcx-related .service-related-card,
  .svcx .svcx-related .service-related-card:last-child:nth-child(odd) {
    width:100%;
    height:330px;
  }
  .svcx .svcx-related .service-related-card-media { height:196px; }
  .svcx .svcx-related .service-related-card-body { min-height:126px;padding:15px; }
}

@media(hover:none), (pointer:coarse) {
  .svcx .svcx-ind__card::after {
    opacity:.52;
    background:linear-gradient(180deg,transparent 34%,rgba(0,0,0,.78));
  }
  .svcx .svcx-ind__name { opacity:1;transform:none; }
}

@media(prefers-reduced-motion:reduce) {
  .svcx .svcx-ind__card,
  .svcx .svcx-ind__card::after,
  .svcx .svcx-ind__img,
  .svcx .svcx-ind__name,
  .svcx .svcx-related .service-related-card,
  .svcx .svcx-why .svcx-why__item,
  .svcx .svcx-why .svcx-why__item * {
    transition:none!important;
  }
}

/* What We Provide: content sits directly on the section surface. The cards
   retain their existing grid, dimensions and spacing, but no longer render as
   bordered or translucent panels. */
html[data-theme] .svcx .svcx-capabilities .svcx-cap {
  isolation:isolate;
  overflow:visible!important;
  border:0!important;
  border-radius:0!important;
  outline:0!important;
  background:transparent!important;
  box-shadow:none!important;
  -webkit-backdrop-filter:none!important;
  backdrop-filter:none!important;
  transform:translateY(0);
  transition:transform .4s ease-out!important;
}

html[data-theme] .svcx .svcx-capabilities .svcx-cap::before {
  content:"";
  position:absolute;
  z-index:-1;
  inset:12% 8%;
  pointer-events:none;
  background:radial-gradient(ellipse at 42% 50%,color-mix(in srgb,var(--svcx-a) 24%,transparent) 0%,color-mix(in srgb,var(--svcx-b) 10%,transparent) 40%,transparent 74%);
  filter:blur(22px);
  opacity:0;
  transform:scale(.82);
  transition:opacity .4s ease-out,transform .4s ease-out;
}

html[data-theme] .svcx .svcx-capabilities .svcx-cap__accent {
  display:none!important;
}

html[data-theme] .svcx .svcx-capabilities .svcx-cap__icon {
  border:0!important;
  border-radius:0!important;
  background:transparent!important;
  box-shadow:none!important;
  opacity:.72;
  transition:opacity .38s ease-out,color .38s ease-out,transform .4s ease-out;
}

html[data-theme] .svcx .svcx-capabilities .svcx-cap__idx {
  opacity:.58;
  transition:opacity .38s ease-out,color .38s ease-out;
}

html[data-theme] .svcx .svcx-capabilities .svcx-cap__title {
  color:var(--section-text,var(--text-primary))!important;
  opacity:.78;
  transition:opacity .38s ease-out,color .38s ease-out!important;
}

html[data-theme] .svcx .svcx-capabilities .svcx-cap p {
  opacity:.55;
  transition:opacity .38s ease-out;
}

html[data-theme] .svcx .svcx-capabilities .svcx-cap__arrow {
  opacity:.34;
  transition:opacity .38s ease-out,transform .4s ease-out,color .38s ease-out!important;
}

html[data-theme] .svcx .svcx-capabilities .svcx-cap:is(:hover,:focus-visible) {
  border:0!important;
  outline:0!important;
  background:transparent!important;
  box-shadow:none!important;
  transform:translateY(-3px);
}

html[data-theme] .svcx .svcx-capabilities .svcx-cap:is(:hover,:focus-visible)::before {
  opacity:1;
  transform:scale(1);
}

html[data-theme] .svcx .svcx-capabilities .svcx-cap:is(:hover,:focus-visible) .svcx-cap__title {
  opacity:1;
}

html[data-theme] .svcx .svcx-capabilities .svcx-cap:is(:hover,:focus-visible) :is(.svcx-cap__icon,.svcx-cap__idx) {
  opacity:.92;
}

html[data-theme] .svcx .svcx-capabilities .svcx-cap:is(:hover,:focus-visible) p {
  opacity:.78;
}

html[data-theme] .svcx .svcx-capabilities .svcx-cap:is(:hover,:focus-visible) .svcx-cap__arrow {
  color:var(--svcx-a)!important;
  opacity:.9;
  transform:translateX(2px);
}

/* Compact capability index shared by every service page. Repeated numbering
   and arrows were removed from the template; a single connected grid now
   keeps each icon and title aligned without oversized empty card space. */
html[data-theme] .svcx .svcx-capabilities.svcx-section {
  padding-block:clamp(3.25rem,6vw,5rem);
}

html[data-theme] .svcx .svcx-capabilities .svcx-head {
  margin-bottom:clamp(1.5rem,2.5vw,2.25rem);
}

html[data-theme] .svcx .svcx-capabilities .svcx-cap__grid {
  grid-template-columns:repeat(3,minmax(0,1fr));
  gap:1px;
  overflow:hidden;
  border:1px solid var(--section-border,var(--border));
  background:var(--section-border,var(--border));
}

html[data-theme] .svcx .svcx-capabilities .svcx-cap,
html[data-theme] .svcx .svcx-capabilities .svcx-cap:nth-last-child(2):nth-child(3n + 1),
html[data-theme] .svcx .svcx-capabilities .svcx-cap:last-child:nth-child(3n + 1) {
  display:grid;
  grid-column:auto!important;
  grid-template-columns:2rem minmax(0,1fr);
  align-items:center;
  gap:.8rem;
  min-height:5.75rem!important;
  padding:1.05rem 1.2rem!important;
  background:var(--section-background,var(--background-primary))!important;
}

html[data-theme] .svcx .svcx-capabilities .svcx-cap::before {
  display:none;
}

html[data-theme] .svcx .svcx-capabilities .svcx-cap__meta {
  display:block;
}

html[data-theme] .svcx .svcx-capabilities .svcx-cap__icon {
  display:grid;
  place-items:center;
  width:2rem;
  height:2rem;
}

html[data-theme] .svcx .svcx-capabilities .svcx-cap__title {
  margin:0!important;
  font-size:clamp(.86rem,1vw,.96rem);
  line-height:1.35;
}

html[data-theme] .svcx .svcx-capabilities .svcx-cap:is(:hover,:focus-visible) {
  background:var(--section-surface,var(--surface))!important;
  transform:none;
}

@media(max-width:900px) {
  html[data-theme] .svcx .svcx-capabilities .svcx-cap__grid {
    grid-template-columns:repeat(2,minmax(0,1fr));
  }
}

@media(max-width:620px) {
  html[data-theme] .svcx .svcx-capabilities.svcx-section {
    padding-block:3rem;
  }
  html[data-theme] .svcx .svcx-capabilities .svcx-cap__grid {
    grid-template-columns:minmax(0,1fr);
  }
  html[data-theme] .svcx .svcx-capabilities .svcx-cap,
  html[data-theme] .svcx .svcx-capabilities .svcx-cap:nth-last-child(2):nth-child(3n + 1),
  html[data-theme] .svcx .svcx-capabilities .svcx-cap:last-child:nth-child(3n + 1) {
    min-height:5.25rem!important;
    padding:.95rem 1rem!important;
  }
}

@media(prefers-reduced-motion:reduce) {
  html[data-theme] .svcx .svcx-capabilities .svcx-cap,
  html[data-theme] .svcx .svcx-capabilities .svcx-cap::before,
  html[data-theme] .svcx .svcx-capabilities .svcx-cap :is(.svcx-cap__icon,.svcx-cap__idx,.svcx-cap__title,.svcx-cap__arrow,p) {
    transition:none!important;
  }
  html[data-theme] .svcx .svcx-capabilities .svcx-cap:is(:hover,:focus-visible) {
    transform:none;
  }
}
