/* ======================================================================
   PRIMIONICS HOMEPAGE DESIGN SYSTEM — SITE-WIDE CONSISTENCY
   Loaded last on every page. The homepage type scale and colour treatment
   are the source of truth. Existing image/media paths remain untouched.
   ====================================================================== */
:root{
  --home-navy:#0F2238;
  --home-navy-2:#1A3557;
  --home-blue:#24487A;
  --home-orange:#E5551A;
  --home-orange-2:#F06830;
  --home-ink:#0F2238;
  --home-muted:#5A7494;
  --home-line:rgba(26,53,87,.14);
  --home-soft:#F7F9FC;
  --home-head:'Plus Jakarta Sans',sans-serif;
  --home-body:'Inter',sans-serif;
  --home-mono:'JetBrains Mono',monospace;
  --home-container:min(1240px,calc(100% - 48px));
  --home-body-size:16px;
  --home-body-leading:1.55;
  --home-hero-title-max:76px;
  --home-hero-title-mobile:48px;
  --home-section-title-max:36px;
  --home-section-title-mobile:24px;
  --home-hero-copy-size:18px;
  --home-card-title-size:15.5px;
  --home-card-copy-size:13.5px;
  --home-button-size:13.5px;
  --home-label-size:11px;
}
html{font-size:100%;scroll-behavior:smooth}
html body{
  font-family:var(--home-body)!important;
  font-size:var(--home-body-size)!important;
  font-weight:400!important;
  line-height:var(--home-body-leading)!important;
  color:var(--home-ink);
  -webkit-font-smoothing:antialiased;
  text-rendering:optimizeLegibility;
}
html body :where(button,input,select,textarea,.nav-link,.dd-item-name,.dd-item-note){font-family:var(--home-body)!important}
html body :where(h1,h2,h3,h4,h5,h6,.h1,.h2,.h3,.h4,.h5){
  font-family:var(--home-head)!important;
  font-style:normal!important;
  text-wrap:balance;
}
html body main :where(p,li,td,th){font-family:var(--home-body)!important}
html body main :where(p,li){line-height:1.7}
html body main .body-xl{font-size:18px!important;line-height:1.72!important}
html body main .body-lg{font-size:16.5px!important;line-height:1.72!important}
html body main .body{font-size:15px!important;line-height:1.7!important}
html body main .body-sm{font-size:13.5px!important;line-height:1.65!important}

/* Exact homepage heading scale across the site. */
html body :is(.hero,.page-hero,.abt-hero,.ax-hero,.cr-hero,.svc-hero,.master-hero,.pw-hero,.privacy-hero,.resource-hero,.ss-overview-hero,.ss-inner-hero,.aw-hero,.eps-hero,.tm20-hero,.sv-hero,.pf-hero,.pe-hero,.arch-hero,.pp-hero,.di-hero,.dp-hero) h1[class],
html body :is(.hero,.page-hero,.abt-hero,.ax-hero,.cr-hero,.svc-hero,.master-hero,.pw-hero,.privacy-hero,.resource-hero,.ss-overview-hero,.ss-inner-hero,.aw-hero,.eps-hero,.tm20-hero,.sv-hero,.pf-hero,.pe-hero,.arch-hero,.pp-hero,.di-hero,.dp-hero) h1:not([class]),
html body :where(.h1,.dp-h1,.ss-title,.tm20-hero-h1,.abt-title,.svc-title,.ax-h1,.ph-title,.arch-title){
  font-family:var(--home-head)!important;
  font-size:clamp(var(--home-hero-title-mobile),5.2vw,var(--home-hero-title-max))!important;
  font-weight:700!important;
  line-height:1.06!important;
  letter-spacing:-.03em!important;
  font-style:normal!important;
}
html body main section h2[class],
html body main section h2:not([class]),
html body main :where(.h2){
  font-family:var(--home-head)!important;
  font-size:clamp(var(--home-section-title-mobile),3.611vw,var(--home-section-title-max))!important;
  font-weight:700!important;
  line-height:1.04!important;
  letter-spacing:-.045em!important;
  font-style:normal!important;
}
html body main :where(h3,.h3){font-size:clamp(21px,2.1vw,28px);line-height:1.18;letter-spacing:-.025em;font-weight:700}
html body main :where(h4,.h4){font-size:20px;line-height:1.25;letter-spacing:-.018em;font-weight:700}
html body main :where(h5,.h5){font-size:17px;line-height:1.3;letter-spacing:-.012em;font-weight:700}

/* Homepage label, button and card typography. */
html body :where(.eyebrow,.lbl,.kicker,[class*="-kicker"],[class*="__eyebrow"],[class*="-eyebrow"],.dp-series-label,.dp-pill){
  font-family:var(--home-mono)!important;
  font-size:var(--home-label-size)!important;
  font-weight:800!important;
  line-height:1!important;
  letter-spacing:.17em!important;
  text-transform:uppercase;
}
html body :where(.btn,.btn-orange,.btn-primary,.btn-outline,.btn-outline-w,.btn-outline-o,.btn-light,.btn-ghost,.btn-lo,.ss-btn,.aw-btn,.sv-btn,.dp-btn-primary,.dp-btn-sec,.pe-btn){
  font-family:var(--home-head)!important;
  font-size:var(--home-button-size)!important;
  font-weight:700!important;
  line-height:1.2!important;
  letter-spacing:-.01em!important;
}
html body :where(.nav-link,.dd-item-name){font-size:14px!important;line-height:1.3!important;font-weight:500!important}
html body :where(.dd-item-note,.mega-item span){font-size:12px!important;line-height:1.45!important}
html body .mega-item{font-size:13px!important;line-height:1.35!important}
html body :where(.pcard-name,.tm20-card-name,.dph-card h3,.prod-card-name,.uc-title,.hww-title,.partner-card-name,.industry-card-title,.result-card-title,.sol-card-title,.announcement-card h3){
  font-family:var(--home-head)!important;
  font-size:var(--home-card-title-size)!important;
  font-weight:700!important;
  line-height:1.25!important;
  letter-spacing:-.015em!important;
}
html body :where(.pcard-desc,.tm20-card-desc,.tm20-card-tagline,.dph-card p,.prod-card-desc,.uc-body,.hww-desc,.partner-card-desc,.industry-card-desc,.result-card-desc,.sol-card-desc){
  font-family:var(--home-body)!important;
  font-size:var(--home-card-copy-size)!important;
  font-weight:400!important;
  line-height:1.7!important;
  letter-spacing:normal!important;
  text-align:left!important;
  hyphens:none!important;
}
html body .announcement-card p{line-height:1.55!important}

/* Containers use the same homepage rail. */
html body :where(.rail,.container,.wrap,.ss-rail,.aw-container,.ax-rail,.cr-rail,.pw-rail,.pp-rail,.di-rail,.arch-container,.resource-shell){max-width:1240px}

/* One homepage-derived hero colour treatment for all inner templates. */
html body :where(.page-hero,.abt-hero,.ax-hero,.cr-hero,.svc-hero,.master-hero,.pw-hero,.privacy-hero,.resource-hero,.ss-overview-hero,.ss-inner-hero,.aw-hero,.eps-hero,.tm20-hero,.sv-hero,.pf-hero,.pe-hero,.arch-hero,.pp-hero,.di-hero,.dp-hero){
  background:linear-gradient(120deg,var(--home-navy) 0%,var(--home-navy-2) 55%,var(--home-blue) 100%)!important;
  color:#fff!important;
  border-color:rgba(255,255,255,.12)!important;
  position:relative!important;
  isolation:isolate!important;
  overflow:hidden!important;
}
html body :where(.page-hero,.abt-hero,.ax-hero,.cr-hero,.svc-hero,.master-hero,.pw-hero,.privacy-hero,.resource-hero,.ss-overview-hero,.ss-inner-hero,.aw-hero,.eps-hero,.tm20-hero,.sv-hero,.pf-hero,.pe-hero,.arch-hero,.pp-hero,.di-hero,.dp-hero)::before{
  content:""!important;
  position:absolute!important;
  inset:0!important;
  z-index:0!important;
  pointer-events:none!important;
  background:linear-gradient(90deg,rgba(15,34,56,.30),rgba(15,34,56,0)),linear-gradient(rgba(255,255,255,.025) 1px,transparent 1px),linear-gradient(90deg,rgba(255,255,255,.025) 1px,transparent 1px)!important;
  background-size:auto,54px 54px,54px 54px!important;
  opacity:1!important;
}
html body :where(.page-hero,.abt-hero,.ax-hero,.cr-hero,.svc-hero,.master-hero,.pw-hero,.privacy-hero,.resource-hero,.ss-overview-hero,.ss-inner-hero,.aw-hero,.eps-hero,.tm20-hero,.sv-hero,.pf-hero,.pe-hero,.arch-hero,.pp-hero,.di-hero,.dp-hero)::after{
  content:""!important;
  position:absolute!important;
  inset:0!important;
  z-index:0!important;
  pointer-events:none!important;
  width:auto!important;
  height:auto!important;
  border:0!important;
  border-radius:0!important;
  box-shadow:none!important;
  background:linear-gradient(180deg,rgba(15,34,56,.03),rgba(15,34,56,.24))!important;
}
html body :where(.page-hero,.abt-hero,.ax-hero,.cr-hero,.svc-hero,.master-hero,.pw-hero,.privacy-hero,.resource-hero,.ss-overview-hero,.ss-inner-hero,.aw-hero,.eps-hero,.tm20-hero,.sv-hero,.pf-hero,.pe-hero,.arch-hero,.pp-hero,.di-hero,.dp-hero)>*{position:relative!important;z-index:1!important}
html body :where(.page-hero,.abt-hero,.ax-hero,.cr-hero,.svc-hero,.master-hero,.pw-hero,.privacy-hero,.resource-hero,.ss-overview-hero,.ss-inner-hero,.aw-hero,.eps-hero,.tm20-hero,.sv-hero,.pf-hero,.pe-hero,.arch-hero,.pp-hero,.di-hero){padding-block:72px!important;min-height:0!important}
html body :where(.page-hero>.rail,.abt-hero-inner,.ax-rail,.cr-rail,.svc-hero-inner,.master-hero>.wrap,.pw-rail,.privacy-hero__inner,.resource-shell,.ss-overview-hero>.ss-rail,.ss-inner-hero>.ss-rail,.aw-hero>.aw-container,.eps-hero>.container,.tm20-hero-inner,.sv-hero>.sv-container,.pf-hero>.rail,.pe-hero>.rail,.arch-hero>.arch-container,.pp-hero>.pp-rail,.di-hero>.di-rail){width:var(--home-container)!important;margin-inline:auto!important}
html body :where(.page-hero,.abt-hero,.ax-hero,.cr-hero,.svc-hero,.master-hero,.pw-hero,.privacy-hero,.resource-hero,.ss-overview-hero,.ss-inner-hero,.aw-hero,.eps-hero,.tm20-hero,.sv-hero,.pf-hero,.pe-hero,.arch-hero,.pp-hero,.di-hero,.dp-hero) h1{color:#fff!important;margin-top:0!important;margin-bottom:20px!important;text-align:left!important}
html body :where(.page-hero,.abt-hero,.ax-hero,.cr-hero,.svc-hero,.master-hero,.pw-hero,.privacy-hero,.resource-hero,.ss-overview-hero,.ss-inner-hero,.aw-hero,.eps-hero,.tm20-hero,.sv-hero,.pf-hero,.pe-hero,.arch-hero,.pp-hero,.di-hero) h1 :where(em,span){color:var(--home-orange-2)!important;font-style:normal!important}
html body :where(.page-hero,.abt-hero,.ax-hero,.cr-hero,.svc-hero,.master-hero,.pw-hero,.privacy-hero,.resource-hero,.ss-overview-hero,.ss-inner-hero,.aw-hero,.eps-hero,.tm20-hero,.sv-hero,.pf-hero,.pe-hero,.arch-hero,.pp-hero,.di-hero,.dp-hero) :where(p,.hero-lead,.hero-copy,.ph-sub,.dp-tagline){
  font-family:var(--home-body)!important;
  font-size:var(--home-hero-copy-size)!important;
  font-weight:400!important;
  line-height:1.72!important;
  letter-spacing:normal!important;
  color:rgba(255,255,255,.74)!important;
  text-align:left!important;
}
html body :where(.page-hero,.abt-hero,.ax-hero,.cr-hero,.svc-hero,.master-hero,.pw-hero,.privacy-hero,.resource-hero,.ss-overview-hero,.ss-inner-hero,.aw-hero,.eps-hero,.tm20-hero,.sv-hero,.pf-hero,.pe-hero,.arch-hero,.pp-hero,.di-hero,.dp-hero) :where(.lbl,.eyebrow,.kicker,[class*="kicker"],[class*="eyebrow"],.dp-series-label){color:#F5B894!important;text-align:left!important}
html body :where(.page-hero,.abt-hero,.ax-hero,.cr-hero,.svc-hero,.master-hero,.pw-hero,.privacy-hero,.resource-hero,.ss-overview-hero,.ss-inner-hero,.aw-hero,.eps-hero,.tm20-hero,.sv-hero,.pf-hero,.pe-hero,.arch-hero,.pp-hero,.di-hero,.dp-hero) :where(.btn-orange,.btn-primary,.ss-btn--primary,.aw-btn--primary,.sv-btn--primary,.dp-btn-primary,.pe-btn.primary){background:var(--home-orange)!important;color:#fff!important;border-color:var(--home-orange)!important;border-radius:8px!important}
html body :where(.page-hero,.abt-hero,.ax-hero,.cr-hero,.svc-hero,.master-hero,.pw-hero,.privacy-hero,.resource-hero,.ss-overview-hero,.ss-inner-hero,.aw-hero,.eps-hero,.tm20-hero,.sv-hero,.pf-hero,.pe-hero,.arch-hero,.pp-hero,.di-hero,.dp-hero) :where(.btn-outline-w,.btn-light,.btn-ghost,.ss-btn--ghost,.aw-btn--secondary,.sv-btn--secondary,.dp-btn-sec,.pe-btn.secondary){background:rgba(255,255,255,.08)!important;color:#fff!important;border:1px solid rgba(255,255,255,.28)!important;border-radius:8px!important}
html body :where(.hero-grid,.ax-hero-grid,.cr-hero-grid,.pw-hero-grid,.aw-hero__grid,.arch-hero__grid,.pp-hero-grid,.di-hero-grid,.ss-inner-grid,.sv-hero__layout,.privacy-hero__inner){align-items:center!important;column-gap:64px!important;row-gap:36px!important}
html body :where(.hero-photo,.ss-hero-image,.aw-hero__visual,.eps-hero .hero-visual,.arch-hero__visual,.pp-hero-visual,.di-hero-visual,.sv-hero__visual,.sv-hero__diagram,.privacy-summary,.rtt-visual){border:1px solid rgba(255,255,255,.18)!important;border-radius:18px!important;box-shadow:0 24px 60px rgba(0,0,0,.22)!important;background-color:rgba(255,255,255,.07)!important;overflow:hidden}
html body :where(.page-hero-dots,.sv-hero__grid){opacity:.18!important;pointer-events:none}

/* Product-detail hero retains the original image/carousel paths and markup. */
html body .dp-shell{max-width:1380px}
html body .dp-hero{min-height:520px!important}
html body .dp-hero .dp-tagline{margin-bottom:24px!important}
html body .dp-hero .dp-ks-item,html body .dp-hero .dp-chip{background:rgba(255,255,255,.08)!important;border-color:rgba(255,255,255,.16)!important;color:#fff!important}
html body .dp-hero .dp-ks-lbl{color:rgba(255,255,255,.56)!important}
html body .dp-hero .dp-ks-val{color:#fff!important}
html body .dp-hero .dp-pill{background:var(--home-orange)!important;color:#fff!important;border-color:var(--home-orange)!important}
@media(min-width:901px){
  html body .dp-hero{grid-template-columns:minmax(420px,.92fr) minmax(0,1.08fr)!important;gap:36px!important;padding:34px!important;align-items:stretch!important}
  html body .dp-hero .dp-img-col{min-height:480px!important;border:1px solid rgba(255,255,255,.18)!important;border-radius:18px!important;background:linear-gradient(145deg,#fff,#eef3f8)!important;box-shadow:0 24px 60px rgba(0,0,0,.20)!important;overflow:hidden!important}
  html body .dp-hero .dp-info-col{padding:22px 10px 22px 0!important;background:transparent!important;justify-content:center!important;align-self:center!important}
}

/* Forms and footer follow the same family hierarchy. */
html body :where(form label,.form-label,.contact-field label,.qm-field label){font-family:var(--home-head)!important}
html body :where(input,select,textarea){font-size:15px!important}
html body .form-consent{display:flex!important;align-items:flex-start!important;gap:10px!important;margin:18px 0!important;font-size:13px!important;line-height:1.55!important;color:var(--home-muted)!important}
html body .form-consent input{width:18px!important;height:18px!important;margin-top:2px!important;flex:0 0 auto!important}
html body .form-consent a{color:var(--home-orange)!important;text-decoration:underline!important;text-underline-offset:2px}
html body .footer,html body .footer *{font-family:var(--home-body)}
html body .footer :where(.footer-brand-name,.footer-col-head,.footer-addr-city){font-family:var(--home-head)!important}
html body .footer-grid,html body #p-foot .footer-grid{min-width:0!important}
html body .footer-grid>*{min-width:0!important;max-width:100%!important}

/* Legacy reveal classes must not hide essential content without JavaScript. */
html body :where(.page-hero,.abt-hero,.ax-hero,.cr-hero,.svc-hero,.master-hero,.pw-hero,.privacy-hero,.resource-hero,.ss-overview-hero,.ss-inner-hero,.aw-hero,.eps-hero,.tm20-hero,.sv-hero,.pf-hero,.pe-hero,.arch-hero,.pp-hero,.di-hero,.dp-hero) :where(.sr,.reveal,[data-reveal]){opacity:1!important;visibility:visible!important;transform:none!important}

/* Automation pages had the largest legacy grid variance. */
html body.automation-page .aw-container{max-width:1240px!important}
html body.automation-page .aw-hero h1,html body.automation-page .aw-hero h2,html body.automation-page .aw-hero h3{color:#fff!important}
html body.automation-page .aw-hero p{color:rgba(255,255,255,.74)!important}

@media(max-width:980px){
  :root{--home-container:min(1240px,calc(100% - 36px))}
  html body .footer-grid,html body #p-foot .footer-grid{grid-template-columns:repeat(2,minmax(0,1fr))!important;gap:32px 28px!important;padding:44px 0 36px!important}
  html body .footer-grid .footer-col--brand{grid-column:1/-1!important;width:auto!important}
  html body .footer-addresses{grid-template-columns:repeat(2,minmax(0,1fr))!important}
}
@media(max-width:900px){
  html body :where(.page-hero,.abt-hero,.ax-hero,.cr-hero,.svc-hero,.master-hero,.pw-hero,.privacy-hero,.resource-hero,.ss-overview-hero,.ss-inner-hero,.aw-hero,.eps-hero,.tm20-hero,.sv-hero,.pf-hero,.pe-hero,.arch-hero,.pp-hero,.di-hero){padding-block:56px!important}
  html body :where(.hero-grid,.ax-hero-grid,.cr-hero-grid,.pw-hero-grid,.aw-hero__grid,.arch-hero__grid,.pp-hero-grid,.di-hero-grid,.ss-inner-grid,.sv-hero__layout,.privacy-hero__inner){grid-template-columns:minmax(0,1fr)!important}
  html body .dp-hero{padding:20px!important;gap:22px!important;grid-template-columns:minmax(0,1fr)!important}
  html body .dp-hero .dp-img-col{min-height:320px!important;border:1px solid rgba(255,255,255,.18)!important;border-radius:14px!important;background:linear-gradient(145deg,#fff,#eef3f8)!important;overflow:hidden!important}
  html body .dp-hero .dp-info-col{padding:14px 0 8px!important;background:transparent!important}
}
@media(max-width:760px){
  html body.automation-page .aw-wing-nav{width:100%!important;max-width:100vw!important;overflow-x:auto!important;overflow-y:hidden!important;overscroll-behavior-inline:contain;-webkit-overflow-scrolling:touch}
  html body.automation-page .aw-wing-nav__inner{display:flex!important;width:max-content!important;min-width:100%!important;max-width:none!important;grid-template-columns:none!important;overflow:visible!important}
  html body.automation-page .aw-wing-nav__inner>a{flex:0 0 170px!important;min-width:170px!important;max-width:170px!important}
  html body.automation-page .aw-product-switcher{flex:0 0 154px!important;min-width:154px!important;max-width:154px!important}
  html body.automation-page .aw-container{width:calc(100% - 28px)!important;max-width:100%!important;margin-inline:auto!important}
  html body.automation-page :where(.aw-grid,.aw-grid--2,.aw-brand-split,.aw-hero__grid,.aw-brand-media,.aw-hero__visual-shell,.aw-hero__image){grid-template-columns:minmax(0,1fr)!important}
  html body.automation-page :where(.aw-brand-media,.aw-card,.aw-panel,.aw-hero__visual,.aw-hero__content){min-width:0!important;width:100%!important;max-width:100%!important}
  html body.automation-page :where(img,video,iframe,svg){max-width:100%!important}
  html body.automation-page :where(.aw-brand-media img,.aw-hero__visual-shell img,.aw-hero__image img){display:block!important;width:100%!important;height:auto!important;min-width:0!important;max-width:100%!important;object-fit:contain!important}
}
@media(max-width:640px){
  html body .footer-grid,html body #p-foot .footer-grid{grid-template-columns:minmax(0,1fr)!important;gap:28px!important;padding:38px 0 32px!important}
  html body .footer-grid .footer-col--brand{grid-column:auto!important}
  html body .footer-addresses{grid-template-columns:minmax(0,1fr)!important;gap:18px!important}
  html body .footer-btm{align-items:flex-start!important;flex-direction:column!important}
  html body .footer-legal{flex-wrap:wrap!important;gap:12px 18px!important}
  html body :where(.footer-col,.footer-col--brand,.footer-linkedin-follow,.footer-linkedin-btn){width:100%!important;max-width:100%!important;min-width:0!important}
}
@media(max-width:600px){
  :root{--home-container:min(1240px,calc(100% - 28px))}
  html body{font-size:16px!important;line-height:1.55!important}
  html body :is(.hero,.page-hero,.abt-hero,.ax-hero,.cr-hero,.svc-hero,.master-hero,.pw-hero,.privacy-hero,.resource-hero,.ss-overview-hero,.ss-inner-hero,.aw-hero,.eps-hero,.tm20-hero,.sv-hero,.pf-hero,.pe-hero,.arch-hero,.pp-hero,.di-hero,.dp-hero) h1[class],
  html body :is(.hero,.page-hero,.abt-hero,.ax-hero,.cr-hero,.svc-hero,.master-hero,.pw-hero,.privacy-hero,.resource-hero,.ss-overview-hero,.ss-inner-hero,.aw-hero,.eps-hero,.tm20-hero,.sv-hero,.pf-hero,.pe-hero,.arch-hero,.pp-hero,.di-hero,.dp-hero) h1:not([class]),
  html body :where(.h1,.dp-h1,.ss-title,.tm20-hero-h1,.abt-title,.svc-title,.ax-h1,.ph-title,.arch-title){font-size:var(--home-hero-title-mobile)!important;line-height:1.06!important;letter-spacing:-.03em!important}
  html body main section h2[class],html body main section h2:not([class]),html body main .h2{font-size:var(--home-section-title-mobile)!important}
  html body main :where(h3,.h3){font-size:22px;line-height:1.2}
  html body :where(.page-hero,.abt-hero,.ax-hero,.cr-hero,.svc-hero,.master-hero,.pw-hero,.privacy-hero,.resource-hero,.ss-overview-hero,.ss-inner-hero,.aw-hero,.eps-hero,.tm20-hero,.sv-hero,.pf-hero,.pe-hero,.arch-hero,.pp-hero,.di-hero,.dp-hero) :where(p,.hero-lead,.hero-copy,.ph-sub,.dp-tagline){font-size:18px!important;line-height:1.72!important}
}
@media(prefers-reduced-motion:reduce){*,*::before,*::after{scroll-behavior:auto!important;animation-duration:.01ms!important;transition-duration:.01ms!important}}

/* Final responsive footer specificity: overrides the legacy five-column !important rule. */
@media(max-width:980px){
  html body footer.footer .footer-grid{
    grid-template-columns:repeat(2,minmax(0,1fr))!important;
    gap:32px 28px!important;
  }
}
@media(max-width:640px){
  html body footer.footer .footer-grid{
    grid-template-columns:minmax(0,1fr)!important;
    gap:28px!important;
  }
}

/* Inner pages use the homepage display system with a lower ceiling so long
   technical product and solution names remain balanced. */
html body:not([data-page-type="home"]) :is(.hero,.page-hero,.abt-hero,.ax-hero,.cr-hero,.svc-hero,.master-hero,.pw-hero,.privacy-hero,.resource-hero,.ss-overview-hero,.ss-inner-hero,.aw-hero,.eps-hero,.tm20-hero,.sv-hero,.pf-hero,.pe-hero,.arch-hero,.pp-hero,.di-hero,.dp-hero) h1[class],
html body:not([data-page-type="home"]) :is(.hero,.page-hero,.abt-hero,.ax-hero,.cr-hero,.svc-hero,.master-hero,.pw-hero,.privacy-hero,.resource-hero,.ss-overview-hero,.ss-inner-hero,.aw-hero,.eps-hero,.tm20-hero,.sv-hero,.pf-hero,.pe-hero,.arch-hero,.pp-hero,.di-hero,.dp-hero) h1:not([class]){
  font-size:clamp(42px,4.45vw,64px)!important;
  line-height:1.04!important;
  letter-spacing:-.04em!important;
}
@media(max-width:600px){
  html body:not([data-page-type="home"]) :is(.hero,.page-hero,.abt-hero,.ax-hero,.cr-hero,.svc-hero,.master-hero,.pw-hero,.privacy-hero,.resource-hero,.ss-overview-hero,.ss-inner-hero,.aw-hero,.eps-hero,.tm20-hero,.sv-hero,.pf-hero,.pe-hero,.arch-hero,.pp-hero,.di-hero,.dp-hero) h1[class],
  html body:not([data-page-type="home"]) :is(.hero,.page-hero,.abt-hero,.ax-hero,.cr-hero,.svc-hero,.master-hero,.pw-hero,.privacy-hero,.resource-hero,.ss-overview-hero,.ss-inner-hero,.aw-hero,.eps-hero,.tm20-hero,.sv-hero,.pf-hero,.pe-hero,.arch-hero,.pp-hero,.di-hero,.dp-hero) h1:not([class]){font-size:clamp(36px,10vw,44px)!important;line-height:1.06!important;letter-spacing:-.03em!important}
}

/* Final type-specificity corrections for legacy wing styles loaded with
   stronger selectors. These preserve the homepage typography hierarchy. */
html body.sv-page :where(.sv-btn,.sv-btn--primary,.sv-btn--ghost,.sv-btn--light){
  font-family:var(--home-head)!important;
  font-size:var(--home-button-size)!important;
  font-weight:700!important;
  line-height:1.2!important;
  letter-spacing:-.01em!important;
}
html body.automation-page .aw-eyebrow,
html body .ss-kicker{
  font-family:var(--home-mono)!important;
  font-size:var(--home-label-size)!important;
  font-weight:800!important;
  line-height:1!important;
  letter-spacing:.17em!important;
  text-transform:uppercase!important;
}
html body.automation-page .aw-section__head h2{
  font-family:var(--home-head)!important;
  font-size:clamp(var(--home-section-title-mobile),3.611vw,var(--home-section-title-max))!important;
  font-weight:700!important;
  line-height:1.04!important;
  letter-spacing:-.045em!important;
}

/* ======================================================================
   HOMEPAGE CARDS — WHITE VISUAL AND CONTENT SURFACES
   Applies to:
   - Product cards
   - Industries Primionics Serves
   - Announcements
   - Core capabilities
   - Specialist platforms
   Existing image paths and HTML remain unchanged.
   ====================================================================== */

/* Keep every requested homepage card on one clean white surface. */
html body[data-page-type="home"] :is(
  .tm20-card,
  .pcard,
  .announcement-card,
  .focus-card,
  .platform-card
){
  background:#ffffff!important;
  background-image:none!important;
}

/* White media/visual panels instead of navy or coloured gradients. */
html body[data-page-type="home"] :is(
  .tm20-card-img,
  .pcard-img,
  .announcement-card > div:first-child,
  .focus-card > div:first-child,
  .platform-card > div:first-child
){
  background-color:#ffffff!important;
  background-image:none!important;
  border-bottom:1px solid #e3e8ef!important;
  box-shadow:none!important;
}

/* Remove legacy gradient overlays and decorative colour layers. */
html body[data-page-type="home"] :is(
  .tm20-card-img,
  .pcard-img,
  .announcement-card > div:first-child,
  .focus-card > div:first-child,
  .platform-card > div:first-child
)::before,
html body[data-page-type="home"] :is(
  .tm20-card-img,
  .pcard-img,
  .announcement-card > div:first-child,
  .focus-card > div:first-child,
  .platform-card > div:first-child
)::after{
  background:none!important;
  background-image:none!important;
  box-shadow:none!important;
  opacity:0!important;
}

/* Product-card images remain centred and fully visible. */
html body[data-page-type="home"] .tm20-card-img img{
  display:block!important;
  width:100%!important;
  height:100%!important;
  max-width:100%!important;
  max-height:100%!important;
  object-fit:contain!important;
  object-position:center!important;
  box-sizing:border-box!important;
  padding:24px!important;
  background:#ffffff!important;
}

/* Industry photography keeps its existing crop while the container remains white. */
html body[data-page-type="home"] .pcard-img img{
  display:block!important;
  width:100%!important;
  height:100%!important;
  max-width:100%!important;
  max-height:100%!important;
  object-fit:cover!important;
  object-position:center!important;
  background:#ffffff!important;
}

/* Announcement identifiers must remain readable after removing the navy fill. */
html body[data-page-type="home"] .announcement-card > div:first-child span{
  color:var(--home-orange)!important;
  border-color:rgba(229,85,26,.28)!important;
  background:rgba(229,85,26,.06)!important;
}

/* Ensure all card content areas are also white. */
html body[data-page-type="home"] :is(
  .tm20-card-body,
  .pcard-body,
  .announcement-copy,
  .focus-copy,
  .platform-copy
){
  background:#ffffff!important;
  background-image:none!important;
}

/* Maintain a clear boundary and consistent hover behaviour. */
html body[data-page-type="home"] :is(
  .tm20-card,
  .pcard,
  .announcement-card,
  .focus-card,
  .platform-card
){
  border-color:#dfe6ee!important;
}

html body[data-page-type="home"] :is(
  .tm20-card,
  .pcard,
  .announcement-card,
  .focus-card,
  .platform-card
):is(:hover,:focus-within){
  border-color:var(--home-orange)!important;
  box-shadow:0 0 0 2px rgba(229,85,26,.22),0 14px 34px rgba(15,34,56,.10)!important;
  transform:translateY(-2px);
}

html body[data-page-type="home"] :is(
  .tm20-card,
  .pcard,
  .announcement-card,
  .focus-card,
  .platform-card
){
  transition:border-color .2s ease,box-shadow .2s ease,transform .2s ease!important;
}

html body[data-page-type="home"] :is(
  .tm20-card,
  .pcard,
  .announcement-card,
  .focus-card,
  .platform-card
) a:focus-visible{
  outline:2px solid var(--home-orange)!important;
  outline-offset:3px!important;
}

/* Tighter image padding on mobile. */
@media(max-width:600px){
  html body[data-page-type="home"] .tm20-card-img img{
    padding:18px!important;
  }
}

/* ======================================================================
   INDUSTRY CARD HEADING SCALE
   Prevents the global section-H2 scale from making card titles oversized.
   ====================================================================== */
html body main section .industry-card h2,
html body main section .industry-card-title,
html body main section .industry-card .pcard-name,
html body main section .industries-grid .pcard-name {
  font-family:var(--home-head)!important;
  font-size:21px!important;
  font-weight:700!important;
  line-height:1.18!important;
  letter-spacing:-.022em!important;
  margin-top:10px!important;
  margin-bottom:10px!important;
  overflow-wrap:normal!important;
  word-break:normal!important;
  hyphens:none!important;
}

@media(max-width:680px){
  html body main section .industry-card h2,
  html body main section .industry-card-title,
  html body main section .industry-card .pcard-name,
  html body main section .industries-grid .pcard-name {
    font-size:19px!important;
    line-height:1.22!important;
  }
}

/* ======================================================================
   EMBEDDED COMPUTING SECTION HEADING SCALE
   Prevents long technical section headings from inheriting the oversized
   global H2 scale.
   ====================================================================== */
html body main .di-section .di-section-head .di-h2,
html body main .di-section h2.di-h2 {
  font-family:var(--home-head)!important;
  font-size:clamp(30px,3vw,40px)!important;
  font-weight:700!important;
  line-height:1.12!important;
  letter-spacing:-.032em!important;
  max-width:720px!important;
  margin-top:10px!important;
  margin-bottom:14px!important;
}

@media(max-width:680px){
  html body main .di-section .di-section-head .di-h2,
  html body main .di-section h2.di-h2 {
    font-size:30px!important;
    line-height:1.14!important;
    letter-spacing:-.025em!important;
    max-width:none!important;
  }
}

/* ======================================================================
   INDUSTRY CARD IMAGE — FULL WIDTH
   Removes the white inset around industry images while preserving the
   card body padding and rounded outer corners.
   ====================================================================== */
html body .pcard,
html body .industry-card {
  overflow:hidden!important;
}

/* Image wrapper fills the complete card width. */
html body .pcard .pcard-img,
html body .industry-card .industry-photo {
  display:block!important;
  width:100%!important;
  max-width:none!important;
  height:auto!important;
  min-height:0!important;
  aspect-ratio:16 / 9!important;
  margin:0!important;
  padding:0!important;
  border:0!important;
  border-radius:0!important;
  background-position:center!important;
  background-repeat:no-repeat!important;
  background-size:cover!important;
  overflow:hidden!important;
}

/* Images fill the wrapper with no internal padding or surrounding gap. */
html body .pcard .pcard-img img,
html body .industry-card .industry-photo img {
  display:block!important;
  width:100%!important;
  height:100%!important;
  max-width:none!important;
  max-height:none!important;
  margin:0!important;
  padding:0!important;
  border:0!important;
  border-radius:0!important;
  object-fit:cover!important;
  object-position:center!important;
}

/* Keep the content area padded independently from the image. */
html body .pcard .pcard-body,
html body .industry-card .industry-body {
  margin:0!important;
}

@media(max-width:600px){
  html body .pcard .pcard-img,
  html body .industry-card .industry-photo {
    aspect-ratio:16 / 9!important;
  }
}

/* ======================================================================
   FEATURED PRODUCTS IMAGE — FULL WIDTH
   Removes the inset around homepage Featured Products images while keeping
   the complete product visible on a white background.
   ====================================================================== */
html body[data-page-type="home"] .tm20-card {
  overflow:hidden!important;
}

/* Image panel fills the complete card width. */
html body[data-page-type="home"] .tm20-card .tm20-card-img {
  display:block!important;
  width:100%!important;
  max-width:none!important;
  height:auto!important;
  min-height:0!important;
  aspect-ratio:16 / 9!important;
  margin:0!important;
  padding:0!important;
  border:0!important;
  border-bottom:1px solid #e3e8ef!important;
  border-radius:0!important;
  background:#ffffff!important;
  background-image:none!important;
  overflow:hidden!important;
}

/* Remove any decorative overlay from the image panel. */
html body[data-page-type="home"] .tm20-card .tm20-card-img::before,
html body[data-page-type="home"] .tm20-card .tm20-card-img::after {
  content:none!important;
  display:none!important;
}

/* Product image uses the full panel with no artificial outer padding. */
html body[data-page-type="home"] .tm20-card .tm20-card-img img {
  display:block!important;
  width:100%!important;
  height:100%!important;
  max-width:none!important;
  max-height:none!important;
  margin:0!important;
  padding:0!important;
  border:0!important;
  border-radius:0!important;
  object-fit:contain!important;
  object-position:center!important;
  background:#ffffff!important;
}

/* Keep card content padding independent from the image panel. */
html body[data-page-type="home"] .tm20-card .tm20-card-body {
  margin:0!important;
}

@media(max-width:600px){
  html body[data-page-type="home"] .tm20-card .tm20-card-img {
    aspect-ratio:16 / 9!important;
  }
}
