/* Shared feedback: dimensional cards, quiet rows, explicit keyboard focus. */
:root {
  --ui-tint: #edf1f5;
  --ui-edge: #747f94;
  --ui-ink: #282853;
  --ui-action: #b02430;
  --page-intro: #edf0f3;
  --page-feature: #e9edf1;
  --page-card: #eff2f5;
  --page-contact: #e3eaf1;
  --ui-motion: 170ms cubic-bezier(.2,.6,.35,1);
}
/* Section boundaries are expressed with tone and spacing. */
main > :is(.xps-intro,.v-family-intro,.product-top,.v-hero) {
  background: transparent;
}
main > .hero, .catalog-lead {
  background: var(--page-intro);
}
#expertise, .selection-band, .xps-proof,
main > :is(.v-section.tint,.features-section,.options-section) {
  background: var(--page-feature);
}
main > section[class], main > .v-section + .v-section, main > .psection + .psection,
main > :is(.trust-strip,.v-facts,.product-metrics,.v-toc,.product-toc,.v-back,.back-category),
#expertise, .support-call, .resources-grid {
  border-block: 0;
}
:is(.v-family-intro,.xps-intro) + .selection-band {
  margin-block-start: clamp(14px,1.5vw,22px);
}
.model-card, .v-card, .download-tile, .v-inline-doc {
  background: var(--page-card);
  border: 0;
}
#catalogue .equipment, #catalogue .equipment:is(:hover,:focus-visible) {
  background: transparent;
  border: 0;
}
.shortcut, .method-group, .layout-figure { border: 0; }
.model-photo, .v-card-photo, .catalog-lead .short-photo { background: transparent; border-bottom: 0; }
.v-section.tint .v-inline-doc, .downloads-panel .download-tile,
.catalog-lead .shortcut { background: white; }
.p-photo-section .real-system, .v-platform figure { background: transparent; }
.method-group { background: #f6f7f9; }
.method-group h3 { background: var(--page-feature); border-bottom: 0; }
.catalog-lead, main > .downloads-panel {
  background: var(--page-intro);
  box-shadow: 0 0 0 100vmax var(--page-intro);
  clip-path: inset(0 -100vmax);
}
.catalog-lead { padding-block: clamp(16px,2vw,30px); }
#contact, main > :is(.contact-section,.short-contact,.v-cta), .support-call, #project-brief,
main > #selection:has(.v-actions) { background: var(--page-contact); }
/* Keep two neighboring tinted sections distinct without outlining them. */
main > .downloads-panel + .product-contact,
main > .v-section.tint + .v-cta,
main > .v-section.tint + #selection:has(.v-actions) {
  margin-block-start: clamp(12px, 1.6vw, 24px);
}
:is(.short-contact,.v-cta) h2 { color: var(--navy); }
:is(.short-contact,.v-cta) p { color: var(--section-copy); }
:is(.short-contact,.v-cta) .btn.light {
  background: var(--navy); border-color: var(--navy); color: white;
}
:is(.short-contact,.v-cta) .btn.light:focus-visible {
  outline: 2px solid var(--navy); outline-offset: 3px; box-shadow: none;
}
.selection-band :is(.intent,.v-method):not([aria-pressed=true]) {
  border-color: transparent;
}
.selection-band :is(.intent,.v-method):focus-visible {
  outline-color: var(--navy);
}
#expertise .company-news, #expertise .capability, #expertise .company-news-list li {
  border-color: #b9c2cf;
}

/* Light dividers still separate rows; the line beneath a hovered label is gone. */
.shortcut:is(:hover,:focus-visible) .short-title,
.method-group a:is(:hover,:focus-visible), .hit-link:is(:hover,:focus-visible) .hit-name,
.trust-item:is(:hover,:focus-visible) strong, .legal a, button.query-reset {
  text-decoration: none;
}
.legal a { color: var(--ui-ink); font-weight: 600; }
.legal a::after { content: " \2197"; white-space: nowrap; font-size: .9em; }
.tags a, .v-text-button, .card-proposal {
  border-bottom: 0;
  color: var(--ui-ink);
}
.tags a {
  padding: 6px 10px;
  background: #f2f4f7;
  border-radius: 3px;
}
#catalogue .tags a { background: transparent; }
.v-text-button, button.query-reset, button.card-proposal {
  font-weight: 600;
}
button.query-reset, .v-text-button {
  border: 1px solid #a6adbb; border-radius: 3px;
  padding: 7px 12px; background-color: #fff;
}
.card-proposal::after { content:" \2197"; display:inline-block; padding-left: .25em; }
.product-toc a, .v-toc a {
  border-bottom-color: transparent;
}
.product-toc a:is(:hover,.active), .v-toc a:is(:hover,[aria-current]) {
  border-bottom-color: transparent;
}
.product-toc a.active, .v-toc a[aria-current]:not([aria-current="false"]) {
  color: var(--ui-ink);
  background-color: #e9edf4;
  border-radius: 3px;
}

.method-group a:focus-visible, .method-group a:focus-visible .go-arrow,
.hit-link:focus-visible :is(.hit-name,.go-arrow), .search-results a:focus-visible .hit-name {
  color: var(--ui-action);
}
/* State cues remain in place without a mouse or animation. */
:is(a[href],button:not(:disabled),summary):focus-visible {
  outline: 2px solid #424c77; outline-offset: 2px;
}
:is(.demo,.footer,.v-cta,.short-contact) :is(a[href],button):focus-visible {
  outline-color: #fff; box-shadow: 0 0 0 2px #323263;
}
:is(.product-toc,.v-toc,.search-results) a:focus-visible {
  outline-offset: -2px;
}

@media (hover:hover) and (pointer:fine) {
  :is(.method-group a,.hit-link,.trust-item,.search-results a,.company-links a,
      .company-news-link,.tags a,.v-details summary,.product-toc a,.v-toc a):hover {
    color: var(--ui-action); background-color: rgba(75, 90, 126, .075);
  }
  .trust-item:hover strong, .company-news-link:hover .company-news-title,
  .method-group a:hover, .method-group a:hover .go-arrow,
  .hit-link:hover :is(.hit-name,.go-arrow), .search-results a:hover .hit-name,
  .intent:hover strong, .v-method:hover h3, :is(.download-tile,.v-inline-doc):hover :is(h3,.v-arrow),
  :is(.scope-bar,.v-task-buttons,.v-filter-bar) button:not([aria-pressed=true]):hover {
    color: var(--ui-action);
  }
  .method-group a:hover .go-arrow, .catalogue-more .link:hover::after,
  .company-news-link:hover .company-news-arrow, .trust-item:hover svg { color: var(--ui-action); }
  .download-tile:hover, .v-inline-doc:hover,
  .selection-band :is(.intent,.v-method):not([aria-pressed=true]):hover {
    border-color: var(--ui-edge); background-color: #f8f9fb;
  }
  :is(.scope-bar,.v-task-buttons,.v-filter-bar) button:not([aria-pressed=true]):hover,
  :is(.filter-reset:not([aria-pressed=true]),.v-text-button,.query-reset):hover {
    border-color: var(--ui-edge); background-color: var(--ui-tint); color: var(--ui-action);
  }
  :is(.scope-bar,.v-task-buttons,.v-filter-bar) button[aria-pressed=true]:hover,
  .filter-reset[aria-pressed=true]:hover { background-color: #282851; color: white; }
  :is(.card-proposal,.toc-request,.breadcrumbs a,.v-breadcrumbs a,.legal a,
      .link,.company-news-all,.header-contact a,.contact-direct a,.contact-phone,
      .v-back a,.back-category a):hover { color: var(--ui-action); }
  .footer a:hover { color: #fff; }
}
@media (hover:hover) and (pointer:fine) and (prefers-reduced-motion:no-preference) {
  :where(a[href],button:not(:disabled),summary) {
    transition: color var(--ui-motion),background-color var(--ui-motion),border-color var(--ui-motion);
  }
  #catalogue .equipment, .shortcut, .selection-band :is(.intent,.v-method),
  .download-tile, .v-inline-doc, .scope-bar button, .v-task-buttons button, .v-filter-bar button,
  .btn, .hero-actions a.btn, .product-caption a, .filter-reset, .query-reset,
  .v-text-button, .toc-request, .card-proposal, .carousel-arrow, .carousel-pause {
    transition: transform var(--ui-motion), color var(--ui-motion), background-color var(--ui-motion),
                border-color var(--ui-motion);
  }
  :is(.model-photo,.v-card-photo) img, .v-related article > img {
    transition: scale var(--ui-motion);
  }
  .model-card:hover .model-photo img, .v-card:hover .v-card-photo img,
  .v-related article:hover > img { scale: 1.025; }
  #catalogue .equipment:hover, .shortcut:hover, .selection-band :is(.intent,.v-method):hover {
    transform: scale(1.015); position: relative; z-index: 1;
  }
  :is(.download-tile,.v-inline-doc):hover { transform: translateY(-2px); }
  :is(.scope-bar,.v-task-buttons,.v-filter-bar) button:not(:disabled):hover,
  .btn:not(:disabled):hover, .hero-actions a.btn:hover, .product-caption a:hover,
  :is(.filter-reset,.query-reset,.v-text-button,.card-proposal,.toc-request,
      .carousel-arrow,.carousel-pause):not(:disabled):hover { transform: scale(1.025); }
  :is(.go-arrow,.company-news-arrow,.v-arrow), .company-news-all span, .link::after, .trust-item svg {
    transition: transform var(--ui-motion), color var(--ui-motion);
  }
  :is(.method-group a,.hit-link,.shortcut):hover .go-arrow,
  .company-news-link:hover .company-news-arrow, .v-inline-doc:hover .v-arrow,
  .company-news-all:hover span { transform: translateX(2px); }
  .link:hover::after { transform: translate(2px,-1px); }
  .trust-item:hover svg { transform: translateY(-1px); }
}
@media (prefers-reduced-motion:reduce), (hover:none), (pointer:coarse) {
  #catalogue .equipment:hover, .shortcut:hover, .btn:hover, .hero-actions a.btn:hover,
  .product-caption a:hover, .link:hover::after,
  .selection-band :is(.intent,.v-method):hover { transform: none; transition: none; }
}
@media (prefers-reduced-motion:reduce) {
  :is(a[href],button,summary), :is(a[href],button,summary) :is(span,strong,svg),
  .link::after { transition-duration: 0s !important; }
}

/* Feather the outer edge of documentary photographs, including paired frames. */
.project-photo img,
.demo-photo-frame:not(.lab-pair) > img,
.demo-photo-frame.lab-pair,
.real-system img,
.v-platform figure img {
  --photo-edge: clamp(2px, .35vw, 5px);
  --edge-in: transparent, rgb(0 0 0 / 48%) calc(var(--photo-edge) * .35), #000 var(--photo-edge);
  --edge-out: #000 calc(100% - var(--photo-edge)), rgb(0 0 0 / 48%) calc(100% - var(--photo-edge) * .35), transparent;
  mask-image: linear-gradient(to right, var(--edge-in), var(--edge-out)),
              linear-gradient(to bottom, var(--edge-in), var(--edge-out));
  mask-composite: intersect;
}
.demo-photo-frame:not(.lab-pair) > .demo-photo {
  width: auto;
  height: auto;
  max-width: 100%;
  max-height: 100%;
  aspect-ratio: auto;
}
.v-platform figure img, .real-system img {
  display: block;
  width: auto;
  max-width: 100%;
  margin-inline: auto;
}

/* Home: readable trust strip and visible navigation even without hover. */
.trust-strip .trust-item strong {font-size:clamp(1rem,1.25vw,1.125rem);line-height:1.35;}
.trust-strip .trust-item span {font-size:clamp(.9375rem,1.06vw,1rem);line-height:1.45;color:#51556b;}
.trust-strip .trust-item svg {flex-shrink:0;}
#catalogue .equipment,#catalogue .equipment:is(:hover,:focus-visible) {border:1px solid #a7b1bf;background:transparent;}
#catalogue .equipment:is(:hover,:focus-visible) {border-color:#616d87;}
#catalogue .tags a,#catalogue .tags a:is(:hover,:focus-visible) {text-decoration-line:underline;text-decoration-thickness:1px;text-underline-offset:.23em;}

@media (min-width:951px){.trust-strip .trust-item{align-items:flex-start}.trust-strip .trust-item svg{align-self:flex-start;margin-top:4px}}
@media (min-width:1101px){.trust-strip .trust-item{justify-content:flex-start;padding-inline:18px;gap:14px}}

/* Home enquiry trigger uses the existing text-link appearance. */
#expertise .capability button.link { background: none; border: 0; padding-inline: 0; text-align: left; }

/* Preserve the approved surfaces on the front, company and service pages only. */
body.home, .cp-page.cp-company, .co-page, .sp-page {--mteon-panel-surface:#edf1f5;--ui-tint:var(--mteon-panel-surface);--page-intro:var(--mteon-panel-surface);--page-feature:var(--mteon-panel-surface);--page-card:var(--mteon-panel-surface);--page-contact:var(--mteon-panel-surface);}
body.home main > .hero,
body.home #catalogue .equipment,
body.home #catalogue .equipment:is(:hover,:focus-visible) { background-color: #fff; }
body.home main > .trust-strip {
  background-color: var(--mteon-panel-surface);
  box-shadow: 0 0 0 100vmax var(--mteon-panel-surface);
  clip-path: inset(0 -100vmax);
}
body.home .trust-strip .trust-item:is(:hover, :focus-visible) { background-color: transparent; }
body.home #catalogue .catalogue-more a { font-size: inherit; }
body.home .method-group{background:var(--mteon-panel-surface);}

/* The catalogue cards share photo, heading and description tracks in each row. */
body.home #catalogue .equipment { min-width: 0; overflow-wrap: anywhere; }
body.home #catalogue .equipment:hover,
body.home #catalogue .equipment > img { transform: none; }
@media (min-width: 561px) {
  body.home #catalogue .equipment {
    display: grid;
    grid-template-columns: minmax(0, 1fr);
    grid-template-rows: subgrid;
    grid-row: span 3;
    row-gap: 0;
    align-items: start;
  }
  body.home #catalogue .equipment > img,
  body.home #catalogue .equipment:not(:has(> img))::before {
    grid-row: 1;
    height: var(--catalogue-photo-height, 184px);
    margin: 15px 0 24px;
    object-position: center bottom;
  }
  body.home #catalogue .equipment:not(:has(> img))::before { content: ""; }
  body.home #catalogue .equipment > h3 { grid-row: 2; min-height: 0; }
  body.home #catalogue .equipment > p { grid-row: 3; }
}
@media (min-width: 801px) and (max-width: 1100px) {
  body.home #catalogue { --catalogue-photo-height: 155px; }
}
@media (min-width: 561px) and (max-width: 800px) {
  body.home #catalogue { --catalogue-photo-height: 190px; }
}
@media (max-width: 560px) {
  body.home #catalogue .equipment { grid-template-rows: auto 1fr; }
  body.home #catalogue .equipment > img { grid-row: 1 / span 2; align-self: start; object-position: center top; }
  body.home #catalogue .equipment > h3 { grid-row: 1; min-height: 2lh; overflow-wrap: anywhere; }
  body.home #catalogue .equipment > p { grid-row: 2; align-self: start; }
}

@media (min-width: 601px) {
  body.admin-bar :is(.product-toc, .pg-mobile-nav, .v-toc) {
    top: var(--wp-admin--admin-bar--height, 32px);
  }
}

@media (hover: hover) and (pointer: fine) and (prefers-reduced-motion: no-preference) {
  body.home #catalogue .equipment > img {
    transition: scale 220ms ease-out;
  }
  body.home #catalogue .equipment:hover > img {
    scale: 1.025;
  }
}