/* Phase 8.5 motion system, extended site-wide in Phase 8.6. */
:root {
  --sm-motion-ease:cubic-bezier(.22,.61,.36,1);
  --sm-motion-fast:200ms;
  --sm-motion-medium:600ms;
}

/* Header refinement */
.sm-motion .site-header,
.sm-motion .site-header__inner,
.sm-motion .header-search,
.sm-motion .site-brand,
.sm-motion .site-brand img,
.sm-motion .site-nav__list>li>a {
  transition:height var(--sm-motion-fast) var(--sm-motion-ease),
    width var(--sm-motion-fast) var(--sm-motion-ease),
    padding var(--sm-motion-fast) var(--sm-motion-ease),
    background-color var(--sm-motion-fast) ease,
    box-shadow var(--sm-motion-fast) ease;
}
.sm-motion .site-header { box-shadow:0 2px 10px rgba(20,24,47,.06); }
.sm-motion .site-header.is-scrolled { height:68px; background:rgba(255,255,255,.97); box-shadow:0 8px 26px rgba(20,24,47,.13); }
.sm-motion .site-header.is-scrolled .site-header__inner,
.sm-motion .site-header.is-scrolled .header-search { height:68px; }
.sm-motion .site-header.is-scrolled .site-brand,
.sm-motion .site-header.is-scrolled .site-brand img { width:180px; }
.sm-motion .site-header.is-scrolled .site-nav__list>li>a { padding-top:23px; padding-bottom:21px; }
.sm-motion .sub-menu,
.sm-motion .sm-mega-menu { transition:opacity 200ms ease,transform 200ms var(--sm-motion-ease),visibility 200ms; }

/* Shared controls */
.sm-motion .sm-button,
.sm-motion .configure-links a,
.sm-motion .inquiry-strip a {
  position:relative;
  overflow:hidden;
  border:1px solid transparent;
  transition:color var(--sm-motion-fast) ease,background-color var(--sm-motion-fast) ease,
    border-color var(--sm-motion-fast) ease,box-shadow var(--sm-motion-fast) ease,
    transform var(--sm-motion-fast) var(--sm-motion-ease);
}
.sm-motion .sm-button span,
.sm-motion .sm-text-link>span,
.sm-motion .configure-links a::after,
.sm-motion .inquiry-strip a span,
.sm-motion .application-card a span,
.sm-motion .article-card h3 {
  transition:transform var(--sm-motion-fast) var(--sm-motion-ease),color var(--sm-motion-fast) ease;
}
.sm-motion .configure-links a::after { margin-left:10px; content:"↗"; }
.sm-motion :where(a,button):focus-visible { outline:3px solid rgba(34,34,143,.35); outline-offset:3px; }
.sm-motion .home-hero :where(a,button):focus-visible,
.sm-motion .application-card :where(a,button):focus-visible { outline-color:rgba(255,255,255,.75); }

/* Hero crossfade and restrained content motion */
.sm-motion .home-hero { isolation:isolate; }
.sm-motion .home-hero__slides,
.sm-motion .home-hero__slide { position:absolute; inset:0; }
.sm-motion .home-hero__slide { visibility:hidden; opacity:0; transition:opacity 900ms ease,visibility 900ms; }
.sm-motion .home-hero__slide.is-active { visibility:visible; opacity:1; }
.sm-motion .home-hero__slide .home-hero__image { transform:scale(1.035); transition:transform 6.8s linear; }
.sm-motion .home-hero__slide.is-active .home-hero__image { transform:scale(1); }
.sm-motion .home-hero__slide:nth-child(2) .home-hero__image { object-position:center 48%; filter:saturate(.82) brightness(.92); }
.sm-motion .home-hero__slide:nth-child(3) .home-hero__image { object-position:center; filter:saturate(.8) brightness(.94); }
.sm-motion .home-hero::after { position:absolute; z-index:0; inset:0; content:""; pointer-events:none; background:linear-gradient(90deg,rgba(248,250,255,.9) 0%,rgba(248,250,255,.56) 36%,rgba(248,250,255,.04) 70%); }
.sm-motion .home-hero__inner { z-index:1; }
.sm-motion .home-hero__content { position:relative; z-index:2; }
.sm-motion .home-hero__dots { z-index:3; }
.sm-motion .home-hero__dots button { width:9px; height:9px; padding:0; border:0; border-radius:999px; background:rgba(255,255,255,.9); box-shadow:0 0 0 1px rgba(34,34,143,.08); cursor:pointer; transition:width var(--sm-motion-fast) var(--sm-motion-ease),background-color var(--sm-motion-fast) ease,transform var(--sm-motion-fast) ease; }
.sm-motion .home-hero__dots button.is-active { width:27px; background:var(--sm-blue); }

/* One-shot section reveal. Hidden states only exist after JS has initialized. */
.sm-motion [data-reveal] { opacity:0; transform:translate3d(0,26px,0); transition:opacity var(--sm-motion-medium) ease,transform var(--sm-motion-medium) var(--sm-motion-ease); }
.sm-motion [data-reveal].is-revealed { opacity:1; transform:none; }
.sm-motion [data-reveal-list]>* { opacity:0; transform:translate3d(0,24px,0); transition:opacity var(--sm-motion-medium) ease,transform var(--sm-motion-medium) var(--sm-motion-ease); transition-delay:var(--sm-reveal-delay,0ms); }
.sm-motion [data-reveal].is-revealed [data-reveal-list]>* ,
.sm-motion [data-reveal][data-reveal-list].is-revealed>* { opacity:1; transform:none; }

/* Image load treatment; intrinsic dimensions and existing aspect-ratios prevent CLS. */
.sm-motion img[data-image-fade],
.sm-motion img[loading="lazy"] { opacity:0; transition:opacity 420ms ease,transform 350ms var(--sm-motion-ease); }
.sm-motion img[data-image-fade].is-loaded,
.sm-motion img[loading="lazy"].is-loaded { opacity:1; }

/* Homepage cards */
.sm-motion .category-card,
.sm-motion .article-card,
.sm-motion .application-card { transition:transform 260ms var(--sm-motion-ease),box-shadow 260ms ease; }
.sm-motion .category-card { overflow:hidden; }
.sm-motion .category-card img { transition:opacity 420ms ease,transform 320ms var(--sm-motion-ease); }
.sm-motion .category-card span { position:relative; }
.sm-motion .category-card span::after { margin-left:9px; content:"↗"; opacity:0; transform:translate(-5px,3px); transition:opacity var(--sm-motion-fast) ease,transform var(--sm-motion-fast) var(--sm-motion-ease); }

.sm-motion .application-card { position:relative; isolation:isolate; overflow:hidden; }
.sm-motion .application-card::before,
.sm-motion .application-card::after { position:absolute; inset:0; content:""; }
.sm-motion .application-card::before { z-index:-2; background-position:center; background-size:cover; opacity:.38; transform:scale(1.01); transition:transform 650ms var(--sm-motion-ease),opacity 350ms ease; }
.sm-motion .application-card::after { z-index:-1; background:linear-gradient(180deg,rgba(24,29,66,.14),rgba(23,24,43,.82)); transition:background-color 300ms ease; }
.sm-motion .application-card--1::before { background-image:url("../images/application-machine.svg"); }
.sm-motion .application-card--2::before { background-image:url("../images/application-medical.svg"); }
.sm-motion .application-card--3::before { background-image:url("../images/application-robot.svg"); }
.sm-motion .application-card--4::before { background-image:url("../images/application-rail.svg"); }
.sm-motion .application-card h3,
.sm-motion .application-card p,
.sm-motion .application-card a { transition:transform 260ms var(--sm-motion-ease),opacity 260ms ease; }

.sm-motion .article-card { overflow:hidden; }
.sm-motion .article-card a { overflow:hidden; }
.sm-motion .article-card img { transition:opacity 420ms ease,transform 420ms var(--sm-motion-ease); }
.sm-motion .article-card div { position:relative; }

.sm-motion .inquiry-strip .sm-container { overflow:hidden; }
.sm-motion .inquiry-strip .sm-container::before,
.sm-motion .inquiry-strip .sm-container::after { transition:transform 650ms var(--sm-motion-ease); }

/* Product-detail sample */
.sm-motion .product-summary { overflow:hidden; }
.sm-motion .product-summary__image { overflow:hidden; }
.sm-motion .product-summary__image img { transform:scale(.985); transition:opacity 420ms ease,transform 650ms var(--sm-motion-ease); }
.sm-motion .product-summary__image img.is-loaded { transform:none; }
.sm-motion .product-summary__content>* { opacity:0; transform:translate3d(0,16px,0); transition:opacity 520ms ease,transform 520ms var(--sm-motion-ease); }
.sm-motion .product-summary.is-revealed .product-summary__content>* { opacity:1; transform:none; }
.sm-motion .product-summary.is-revealed .product-summary__content>*:nth-child(2) { transition-delay:70ms; }
.sm-motion .product-summary.is-revealed .product-summary__content>*:nth-child(3) { transition-delay:120ms; }
.sm-motion .product-summary.is-revealed .product-summary__content>*:nth-child(4) { transition-delay:170ms; }
.sm-motion .product-summary.is-revealed .product-summary__content>*:nth-child(5) { transition-delay:220ms; }
.sm-motion .product-summary.is-revealed .product-summary__content>*:nth-child(6) { transition-delay:270ms; }
.sm-motion .product-detail-nav a { position:relative; transition:color var(--sm-motion-fast) ease,background-color var(--sm-motion-fast) ease; }
.sm-motion .product-detail-nav a::after { position:absolute; right:18px; bottom:0; left:18px; height:2px; content:""; background:var(--sm-blue); transform:scaleX(0); transform-origin:left; transition:transform var(--sm-motion-fast) var(--sm-motion-ease); }
.sm-motion .product-detail-nav a.is-active { color:var(--sm-blue); background:#f7f7fc; }
.sm-motion .product-detail-nav a.is-active::after { transform:scaleX(1); }

/* Shared archive and inner-page motion */
.sm-motion .product-page-head>img,
.sm-motion .inner-page-head>img { transform:scale(1.025); transition:opacity 520ms ease,transform 900ms var(--sm-motion-ease); }
.sm-motion .product-page-head.is-revealed>img,
.sm-motion .inner-page-head.is-revealed>img { transform:none; }
.sm-motion .product-page-head .sm-container>* ,
.sm-motion .inner-page-head .sm-container>* ,
.sm-motion .technique-detail__head .sm-container>* { opacity:0; transform:translate3d(0,14px,0); transition:opacity 500ms ease,transform 500ms var(--sm-motion-ease); }
.sm-motion .product-page-head.is-revealed .sm-container>* ,
.sm-motion .inner-page-head.is-revealed .sm-container>* ,
.sm-motion .technique-detail__head.is-revealed .sm-container>* { opacity:1; transform:none; }
.sm-motion :where(.product-page-head,.inner-page-head,.technique-detail__head).is-revealed .sm-container>*:nth-child(2) { transition-delay:70ms; }
.sm-motion :where(.product-page-head,.inner-page-head,.technique-detail__head).is-revealed .sm-container>*:nth-child(3) { transition-delay:130ms; }

.sm-motion .product-family-grid article,
.sm-motion .product-list-card,
.sm-motion .application-list-card,
.sm-motion .technique-list-card,
.sm-motion .company-profile__values article,
.sm-motion .patent-grid article,
.sm-motion .contact-card-grid article { transition:transform 280ms var(--sm-motion-ease),box-shadow 280ms ease,border-color 220ms ease; }
.sm-motion .product-family-grid img,
.sm-motion .product-list-card__media img,
.sm-motion .application-list-card img,
.sm-motion .technique-list-card img { transition:opacity 420ms ease,transform 420ms var(--sm-motion-ease),filter 320ms ease; }
.sm-motion .product-family-grid span,
.sm-motion .product-list-card strong,
.sm-motion .application-list-card strong,
.sm-motion .technique-list-card strong { display:inline-block; transition:color var(--sm-motion-fast) ease,transform var(--sm-motion-fast) var(--sm-motion-ease); }
.sm-motion .product-family-grid a,
.sm-motion .application-list-card a,
.sm-motion .technique-list-card a { outline-offset:-3px; }

/* Application details: one-shot content entrance and restrained image response. */
.sm-motion .application-detail__hero { overflow:hidden; }
.sm-motion .application-detail__hero>img { transition:opacity 420ms ease,transform 650ms var(--sm-motion-ease),filter 350ms ease; }
.sm-motion .application-detail__facts section { transition:transform 260ms var(--sm-motion-ease),box-shadow 260ms ease; }
.sm-motion .application-detail__cta { overflow:hidden; }
.sm-motion .application-detail__cta::before { transition:transform 650ms var(--sm-motion-ease); }

/* Technique bodies stay static; only the hero, direct headings and related content reveal. */
.sm-motion .technique-detail__image { transition:opacity 420ms ease,transform 520ms var(--sm-motion-ease); }
.sm-motion .technique-detail__layout aside>div { transition:border-color 220ms ease,box-shadow 220ms ease; }
.sm-motion .technique-detail__content>h2[data-reveal],
.sm-motion .technique-detail__content>h3[data-reveal] { transform:translate3d(0,18px,0); }

/* About, history, patent and contact remain deliberately corporate and quiet. */
.sm-motion .company-profile__intro img { transition:opacity 420ms ease,transform 620ms var(--sm-motion-ease); }
.sm-motion .history-timeline article::before { transition:background-color 220ms ease,transform 220ms var(--sm-motion-ease); }
.sm-motion .patent-grid article>div { transition:filter 280ms ease,transform 320ms var(--sm-motion-ease); }
.sm-motion .contact-card-grid a { transition:color var(--sm-motion-fast) ease; }
.sm-motion .inquiry-form input,
.sm-motion .inquiry-form textarea { transition:border-color var(--sm-motion-fast) ease,box-shadow var(--sm-motion-fast) ease,background-color var(--sm-motion-fast) ease; }
.sm-motion .inquiry-form input:focus,
.sm-motion .inquiry-form textarea:focus { background:#fff; }

@media (hover:hover) and (pointer:fine) {
  .sm-motion .sm-button:hover { color:#fff; background:#171771; box-shadow:0 9px 24px rgba(34,34,143,.2); transform:translateY(-2px); }
  .sm-motion .sm-button:hover span,
  .sm-motion .sm-text-link:hover>span,
  .sm-motion .configure-links a:hover::after,
  .sm-motion .inquiry-strip a:hover span { transform:translate(4px,-2px); }
  .sm-motion .sm-button:active,
  .sm-motion .configure-links a:active { box-shadow:none; transform:translateY(1px); }
  .sm-motion .configure-links a:hover { border-color:#fff; box-shadow:0 8px 24px rgba(5,8,38,.2); transform:translateY(-2px); }
  .sm-motion .category-card:hover,
  .sm-motion .category-card:focus-within { box-shadow:0 13px 28px rgba(19,23,51,.13); transform:translateY(-6px); }
  .sm-motion .category-card:hover img,
  .sm-motion .category-card:focus-within img { transform:scale(1.045); }
  .sm-motion .category-card:hover span::after,
  .sm-motion .category-card:focus-within span::after { opacity:1; transform:none; }
  .sm-motion .application-card:hover,
  .sm-motion .application-card:focus-within { box-shadow:0 16px 32px rgba(20,24,47,.2); transform:translateY(-6px); }
  .sm-motion .application-card:hover::before,
  .sm-motion .application-card:focus-within::before { opacity:.52; transform:scale(1.05); }
  .sm-motion .application-card:hover h3,
  .sm-motion .application-card:hover p,
  .sm-motion .application-card:hover a,
  .sm-motion .application-card:focus-within h3,
  .sm-motion .application-card:focus-within p,
  .sm-motion .application-card:focus-within a { transform:translateY(-5px); }
  .sm-motion .application-card:hover a span { transform:translate(4px,-3px); }
  .sm-motion .article-card:hover,
  .sm-motion .article-card:focus-within { box-shadow:0 14px 30px rgba(19,23,51,.12); transform:translateY(-5px); }
  .sm-motion .article-card:hover img,
  .sm-motion .article-card:focus-within img { transform:scale(1.045); }
  .sm-motion .article-card:hover h3 { color:var(--sm-blue); transform:translateX(3px); }
  .sm-motion .inquiry-strip .sm-container:hover::before { transform:translateX(-8px); }
  .sm-motion .inquiry-strip .sm-container:hover::after { transform:translateX(8px); }
  .sm-motion .product-summary__image:hover img { transform:scale(1.035); }
  .sm-motion .product-family-grid article:hover,
  .sm-motion .product-family-grid article:focus-within,
  .sm-motion .product-list-card:hover,
  .sm-motion .product-list-card:focus-within,
  .sm-motion .application-list-card:hover,
  .sm-motion .application-list-card:focus-within,
  .sm-motion .technique-list-card:hover,
  .sm-motion .technique-list-card:focus-within { border-color:rgba(34,34,143,.2); box-shadow:0 14px 30px rgba(19,23,51,.12); transform:translateY(-6px); }
  .sm-motion .product-family-grid article:hover img,
  .sm-motion .product-family-grid article:focus-within img,
  .sm-motion .product-list-card:hover img,
  .sm-motion .product-list-card:focus-within img,
  .sm-motion .application-list-card:hover img,
  .sm-motion .application-list-card:focus-within img,
  .sm-motion .technique-list-card:hover img,
  .sm-motion .technique-list-card:focus-within img { transform:scale(1.04); }
  .sm-motion .application-list-card:hover img,
  .sm-motion .application-list-card:focus-within img { filter:brightness(.82); }
  .sm-motion .product-family-grid article:hover span,
  .sm-motion .product-list-card:hover strong,
  .sm-motion .application-list-card:hover strong,
  .sm-motion .technique-list-card:hover strong { transform:translateX(4px); }
  .sm-motion .application-detail__hero:hover>img { filter:brightness(.94); transform:scale(1.025); }
  .sm-motion .application-detail__facts section:hover { box-shadow:0 10px 24px rgba(19,23,51,.08); transform:translateY(-3px); }
  .sm-motion .application-detail__cta:hover::before { transform:translateX(10px); }
  .sm-motion .technique-detail__layout aside>div:hover { border-color:rgba(34,34,143,.24); box-shadow:0 8px 22px rgba(19,23,51,.07); }
  .sm-motion .company-profile__values article:hover { box-shadow:inset 0 3px 0 var(--sm-blue); transform:translateY(-3px); }
  .sm-motion .company-profile__intro img:hover { transform:scale(1.02); }
  .sm-motion .history-timeline article:hover::before { background-color:var(--sm-blue); transform:scale(1.15); }
  .sm-motion .patent-grid article:hover { box-shadow:0 10px 26px rgba(19,23,51,.08); transform:translateY(-3px); }
  .sm-motion .patent-grid article:hover>div { filter:saturate(1.08); transform:scale(1.012); }
  .sm-motion .contact-card-grid article:hover { box-shadow:inset 0 3px 0 var(--sm-blue); }
  .sm-motion .contact-card-grid a:hover { color:var(--sm-blue); }
}

@media (max-width:860px) {
  .sm-motion .site-header.is-scrolled,
  .sm-motion .site-header.is-scrolled .site-header__inner,
  .sm-motion .site-header.is-scrolled .header-search { height:62px; }
  .sm-motion .site-header.is-scrolled .site-brand,
  .sm-motion .site-header.is-scrolled .site-brand img { width:140px; }
  .sm-motion .site-nav { transition:opacity 280ms ease,transform 320ms var(--sm-motion-ease),visibility 320ms; }
  .sm-motion body::after { position:fixed; z-index:99; inset:0; visibility:hidden; content:""; background:rgba(12,15,28,.32); opacity:0; pointer-events:none; transition:opacity 280ms ease,visibility 280ms; }
  .sm-motion body.nav-open::after { visibility:visible; opacity:1; }
  .sm-motion .site-header.is-scrolled .site-nav__list>li>a { padding-top:15px; padding-bottom:15px; }
}

@media (max-width:560px) {
  .sm-motion .home-hero::after { background:linear-gradient(90deg,rgba(248,250,255,.9),rgba(248,250,255,.48) 66%,rgba(248,250,255,.05)); }
  .sm-motion .home-hero__slide .home-hero__image { transition-duration:6.4s; }
  .sm-motion .home-hero__slide:nth-child(2) .home-hero__image { object-position:38% center; }
  .sm-motion .home-hero__dots button { width:7px; height:7px; }
  .sm-motion .home-hero__dots button.is-active { width:22px; }
  .sm-motion [data-reveal] { transform:translate3d(0,20px,0); }
  .sm-motion [data-reveal-list]>* { transform:translate3d(0,18px,0); }
  .sm-motion .application-card::before { opacity:.28; }
  .sm-motion .product-summary__content>* { transform:translate3d(0,12px,0); }
  .sm-motion .application-detail__hero:hover>img,
  .sm-motion .company-profile__intro img:hover { transform:none; }
}

@media (prefers-reduced-motion:reduce) {
  .sm-motion .home-hero__slide { display:none; visibility:hidden; opacity:0; transition:none!important; }
  .sm-motion .home-hero__slide:first-child { display:block; visibility:visible; opacity:1; }
  .sm-motion .home-hero__slide .home-hero__image,
  .sm-motion [data-reveal],
  .sm-motion [data-reveal-list]>* ,
  .sm-motion .product-summary__content>* { opacity:1!important; transform:none!important; transition:none!important; }
  .sm-motion img[data-image-fade],
  .sm-motion img[loading="lazy"] { opacity:1!important; transition:none!important; }
  .sm-motion .home-hero__dots { display:none; }
}
