:root {
  --ink:#171a20;
  --body:#52565b;
  --muted:#666b71;
  --blue:#345fd1;
  --line:#d5d8db;
  --paper:#fff;
  --soft:#eeefef;
  --header-height:80px;
  --font:-apple-system,BlinkMacSystemFont,"Segoe UI","PingFang SC","Microsoft YaHei",Arial,sans-serif
}

* {
  box-sizing:border-box
}

html {
  scroll-behavior:smooth;
  scroll-padding-top:var(--header-height)
}

body {
  margin:0;
  font-family:var(--font);
  font-size:16px;
  line-height:1.6;
  color:var(--ink);
  background:var(--paper);
  -webkit-font-smoothing:antialiased
}

body,button,select {
  font-family:var(--font)
}

a {
  color:inherit;
  text-decoration:none
}

button,select {
  font:inherit
}

button,a,select {
  -webkit-tap-highlight-color:transparent
}

button {
  cursor:pointer
}

img {
  display:block;
  max-width:100%;
  height:auto
}

h1,h2,h3,p,figure,dl,dd {
  margin:0
}

button,select {
  color:inherit
}

button[hidden],[hidden] {
  display:none!important
}

h1,h2,h3 {
  font-weight:500;
  line-height:1.25;
  letter-spacing:-.035em
}

h1 span,h2 span {
  display:block
}

h2 {
  font-size:clamp(32px,3.4vw,48px)
}

h3 {
  font-size:24px
}

a:focus-visible,button:focus-visible,select:focus-visible {
  outline:3px solid var(--blue);
  outline-offset:5px
}

section[id] {
  scroll-margin-top:18px
}

::selection {
  color:#fff;
  background:var(--blue)
}

.page-width {
  width:min(1320px,calc(100% - 112px));
  margin-inline:auto
}

.section-space {
  padding-block:112px
}

.eyebrow {
  display:flex;
  align-items:center;
  gap:12px;
  font-size:12px;
  font-weight:600;
  letter-spacing:.14em;
  line-height:1.5
}

.small-line {
  width:24px;
  height:1px;
  background:currentColor
}

.sr-only {
  position:absolute;
  width:1px;
  height:1px;
  padding:0;
  margin:-1px;
  overflow:hidden;
  clip:rect(0,0,0,0);
  white-space:nowrap;
  border:0
}

.skip-link {
  position:fixed;
  top:-100px;
  left:20px;
  padding:12px 20px;
  background:var(--ink);
  color:white;
  z-index:200
}

.skip-link:focus {
  top:12px
}

.button {
  min-height:48px;
  padding:12px 28px;
  border:1px solid transparent;
  border-radius:3px;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  gap:18px;
  font-size:14px;
  font-weight:550;
  line-height:1.5;
  transition:background .2s,color .2s
}

.button-primary {
  background:var(--blue);
  color:white
}

.button-primary:hover {
  background:#244bae
}

.button-outline {
  border-color:#8c9196;
  background:transparent
}

.button-outline:hover {
  background:rgba(255,255,255,.7);
  border-color:var(--ink)
}

.text-link {
  display:inline-flex;
  gap:28px;
  align-items:center;
  min-height:44px;
  font-size:14px;
  font-weight:550;
  border-bottom:1px solid currentColor;
  line-height:1.5
}

.text-link:hover {
  color:var(--blue)
}

.text-link span:last-child {
  font-size:20px
}

.image-note,.section-note {
  font-size:12px;
  color:var(--muted);
  line-height:1.6
}

/* Navigation remains in normal document flow without JavaScript. */
.site-header {
  position:absolute;
  top:0;
  left:0;
  width:100%;
  z-index:50;
  background:rgba(238,239,239,.88);
  transition:background .2s,box-shadow .2s
}

.js .site-header {
  position:fixed
}

.site-header.scrolled {
  background:rgba(255,255,255,.97);
  box-shadow:0 1px 0 rgba(23,26,32,.1)
}

.nav-shell {
  min-height:var(--header-height);
  padding-inline:40px;
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:24px
}

.brand {
  display:inline-flex;
  align-items:center;
  gap:10px;
  flex-shrink:0
}

.brand>span {
  font-size:19px;
  font-weight:650;
  letter-spacing:.16em;
  line-height:1.15
}

.brand-sub {
  display:block;
  font-size:8px;
  letter-spacing:.28em;
  font-weight:500;
  margin-top:5px
}

.brand img {
  flex-shrink:0;
  max-height:38px;
  width:auto
}

.desktop-nav,.nav-actions {
  display:flex;
  align-items:center;
  gap:8px
}

.desktop-nav a {
  padding:10px 16px;
  font-size:13px;
  font-weight:550;
  border-radius:3px
}

.desktop-nav a:hover,.nav-contact:hover {
  background:rgba(23,26,32,.055)
}

.nav-actions {
  gap:20px
}

#language {
  appearance:none;
  background:transparent;
  border:0;
  border-bottom:1px solid transparent;
  border-radius:0;
  min-height:44px;
  font-size:13px;
  cursor:pointer;
  padding:8px 4px
}

.nav-contact {
  padding:10px 16px;
  border:1px solid #a5a9ad;
  border-radius:3px;
  font-size:13px;
  font-weight:550;
  min-height:44px;
  display:flex;
  align-items:center
}

.menu-toggle {
  border:0;
  background:transparent;
  align-items:center;
  gap:12px;
  padding:10px 0 10px 10px;
  min-height:44px;
  font-size:13px
}

.menu-icon {
  height:12px;
  width:20px;
  border-top:1px solid var(--ink);
  border-bottom:1px solid var(--ink);
  position:relative
}

.menu-icon:after {
  content:"";
  position:absolute;
  top:4px;
  left:0;
  width:20px;
  border-top:1px solid var(--ink)
}

.mobile-menu {
  display:none
}

/* Product studio hero, using the original E135 rendering. */
.hero {
  background:var(--soft);
  padding-top:var(--header-height);
  min-height:780px;
  min-height:max(780px,100svh);
  display:flex;
  flex-direction:column;
  position:relative;
  overflow:hidden
}

.hero-main {
  flex:1;
  display:grid;
  grid-template-columns:43% 57%;
  align-items:center;
  position:relative;
  padding-block:34px 0
}

.hero-copy {
  z-index:1;
  position:relative;
  padding-bottom:20px
}

.hero-copy .eyebrow {
  color:var(--body);
  margin-bottom:32px
}

.hero h1 {
  font-size:clamp(38px,3.8vw,60px);
  line-height:1.3;
  letter-spacing:-.055em;
  white-space:nowrap
}

.hero-description {
  font-size:17px;
  line-height:1.9;
  color:var(--body);
  margin-top:26px;
  max-width:420px
}

.hero-buttons {
  display:flex;
  gap:12px;
  margin-top:38px
}

.hero-buttons .button {
  min-width:152px
}

.hero-product {
  position:relative;
  margin-right:-60px;
  margin-left:-25px;
  align-self:center
}

.hero-product img {
  width:100%;
  object-fit:contain;
  max-height:680px
}

.hero-product figcaption {
  display:flex;
  justify-content:flex-end;
  gap:16px;
  padding-right:50px;
  font-size:10px;
  letter-spacing:.08em;
  color:var(--muted);
  margin-top:-20px;
  position:relative
}

.hero-product figcaption span:first-child {
  color:var(--ink);
  font-weight:600
}

.hero-bottom {
  display:flex;
  justify-content:space-between;
  align-items:flex-end;
  padding-block:22px 34px;
  position:relative
}

.hero-specs {
  display:flex;
  gap:52px
}

.hero-specs dt {
  font-size:25px;
  letter-spacing:-.025em;
  line-height:1.3
}

.hero-specs dt span {
  font-size:13px
}

.hero-specs dd {
  font-size:11px;
  color:var(--muted);
  margin-top:7px
}

.scroll-cue {
  display:flex;
  align-items:center;
  gap:26px;
  font-size:11px;
  min-height:44px
}

.scroll-cue span:last-child {
  font-size:25px
}

/* E and P series. */
.section-heading {
  display:flex;
  justify-content:space-between;
  align-items:flex-end;
  gap:64px;
  margin-bottom:52px
}

.section-heading .eyebrow {
  margin-bottom:22px;
  color:var(--muted)
}

.section-intro {
  font-size:15px;
  color:var(--body);
  max-width:380px;
  line-height:1.8
}

.series-grid {
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:24px
}

.series-card {
  background:#f0f1f2;
  position:relative;
  overflow:hidden;
  padding-top:42px;
  display:flex;
  flex-direction:column
}

.power-series {
  background:#e4e6e7
}

.series-copy {
  padding-inline:36px;
  position:relative;
  z-index:1
}

.series-copy .eyebrow {
  font-size:11px;
  color:var(--muted);
  margin-bottom:12px
}

.series-copy h3 {
  font-size:29px;
  letter-spacing:-.025em
}

.series-copy>p {
  font-size:14px;
  margin-top:12px;
  color:var(--body)
}

.series-card>img {
  width:100%;
  height:auto;
  aspect-ratio:1.24;
  object-fit:contain;
  margin-top:6px
}

.series-bottom {
  margin-top:auto;
  padding:0 36px 28px;
  display:flex;
  justify-content:space-between;
  align-items:center;
  gap:12px
}

.model-list {
  font-size:18px;
  letter-spacing:-.02em;
  margin-bottom:5px
}

.model-list span {
  font-size:13px;
  color:#90959a;
  margin-inline:4px
}

.image-note {
  font-size:10px
}

.round-link {
  border:1px solid #9da3a8;
  width:44px;
  height:44px;
  flex:0 0 44px;
  display:grid;
  place-items:center;
  border-radius:50%;
  font-size:23px;
  transition:background .2s
}

.round-link:hover {
  background:white
}

.product-footnote {
  display:flex;
  justify-content:space-between;
  align-items:center;
  gap:40px;
  margin-top:28px
}

.product-footnote>p {
  font-size:12px;
  color:var(--muted);
  max-width:650px
}

.product-footnote .text-link {
  flex-shrink:0
}

/* Real software interface. */
.ems-section {
  background:#14191e;
  color:white
}

.ems-section .section-heading .eyebrow {
  color:#a9b0b7
}

.ems-section h2 {
  line-height:1.35
}

.ems-intro {
  max-width:350px
}

.ems-intro>p {
  color:#bcc3c9;
  font-size:15px;
  line-height:1.9
}

.light-link {
  color:white;
  margin-top:22px
}

.light-link:hover {
  color:#a8c1ff
}

.ems-screen {
  margin-top:60px
}

.screen-bar {
  height:38px;
  padding-inline:20px;
  background:#282f36;
  border:1px solid #40484f;
  border-bottom:0;
  display:flex;
  align-items:center;
  justify-content:space-between;
  border-radius:8px 8px 0 0;
  font-size:10px;
  letter-spacing:.12em;
  color:#b7c0c9
}

.screen-bar>span:last-child {
  font-size:8px
}

.screen-dots {
  font-size:8px;
  letter-spacing:4px;
  color:#b3bdc5
}

.ems-screen img {
  width:100%;
  border:1px solid #40484f
}

.ems-screen>a {
  display:block;
  cursor:zoom-in
}

.ems-screen figcaption {
  display:flex;
  justify-content:space-between;
  gap:20px;
  color:#a9b0b7;
  font-size:10px;
  line-height:1.6;
  margin-top:16px
}

.ems-features {
  display:grid;
  grid-template-columns:repeat(3,1fr);
  gap:48px;
  margin-top:62px
}

.ems-features article {
  border-top:1px solid #424a52;
  padding-top:26px
}

.feature-number {
  font-size:11px;
  color:#abb5be;
  display:block;
  margin-bottom:22px
}

.ems-features h3 {
  font-size:21px;
  margin-bottom:16px
}

.ems-features p {
  font-size:14px;
  color:#b8c0c7;
  line-height:1.9;
  max-width:320px
}

/* Original integration photography. */
.deployment-photo {
  position:relative;
  background:#deded9
}

.deployment-photo img {
  width:100%;
  aspect-ratio:1.88;
  object-fit:cover;
  object-position:center 58%
}

.deployment-photo figcaption {
  position:absolute;
  left:0;
  bottom:0;
  width:100%;
  padding:42px 28px 24px;
  background:linear-gradient(transparent,rgba(0,0,0,.7));
  color:white;
  display:flex;
  justify-content:space-between;
  gap:20px;
  font-size:11px
}

.deployment-photo figcaption span:last-child {
  font-size:9px;
  letter-spacing:.12em
}

.integration-points {
  display:grid;
  grid-template-columns:repeat(3,1fr);
  gap:48px;
  padding-top:40px
}

.integration-points article>span {
  font-size:11px;
  letter-spacing:.16em;
  color:var(--muted)
}

.integration-points h3 {
  font-size:22px;
  margin-top:16px
}

.integration-points p {
  font-size:14px;
  color:var(--body);
  margin-top:12px
}

.section-note {
  margin-top:32px;
  font-size:11px
}

/* Partner and contact editorial layout. */
.partners-section {
  background:#f4f4f3
}

.partners-layout {
  display:grid;
  grid-template-columns:1fr 1.1fr;
  gap:100px
}

.partners-heading .eyebrow {
  color:var(--muted);
  margin-bottom:26px
}

.partners-heading h2 {
  font-size:clamp(30px,3vw,43px);
  line-height:1.4
}

.partners-heading>p:not(.eyebrow) {
  margin-top:26px;
  color:var(--body);
  font-size:15px;
  line-height:1.9
}

.partners-heading .text-link {
  margin-top:30px
}

.partner-list article {
  display:grid;
  grid-template-columns:24px 1fr 20px;
  align-items:start;
  gap:24px;
  padding-block:30px;
  border-top:1px solid #c7cbce
}

.partner-list article:last-child {
  border-bottom:1px solid #c7cbce
}

.partner-index {
  font-size:10px;
  color:var(--muted);
  margin-top:6px
}

.partner-list h3 {
  font-size:22px
}

.partner-list p {
  font-size:14px;
  color:var(--body);
  margin-top:12px;
  line-height:1.8
}

.partner-symbol {
  font-size:21px;
  color:#727980
}

.contact-section {
  padding-block:120px
}

.contact-layout {
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:110px
}

.contact-layout .eyebrow {
  color:var(--muted);
  margin-bottom:28px
}

.contact-layout h2 {
  font-size:clamp(40px,4.2vw,60px);
  line-height:1.3
}

.contact-details {
  padding-top:18px;
  max-width:440px
}

.contact-description {
  font-size:16px;
  line-height:1.9;
  color:var(--body)
}

.contact-cta {
  margin-top:30px;
  min-width:240px;
  justify-content:space-between
}

.contact-topic {
  color:var(--blue);
  font-size:13px;
  margin-top:16px
}

.email-row {
  display:flex;
  align-items:center;
  gap:14px;
  margin-top:20px;
  flex-wrap:wrap
}

.email-row>a {
  font-size:14px;
  overflow-wrap:anywhere
}

.copy-button {
  font-size:11px;
  color:var(--body);
  background:transparent;
  border:0;
  border-bottom:1px solid #b0b5ba;
  padding:8px 4px;
  min-height:44px
}

.copy-button:hover {
  color:var(--blue)
}

.copy-feedback {
  font-size:12px;
  color:var(--body);
  min-height:24px;
  margin-top:5px
}

.site-footer {
  background:#f4f4f3;
  padding:44px 0 24px
}

.footer-top {
  display:flex;
  justify-content:space-between;
  align-items:center;
  gap:30px;
  padding-bottom:36px
}

.footer-top>p {
  font-size:12px;
  color:var(--body)
}

.back-top {
  font-size:11px;
  display:flex;
  gap:28px;
  align-items:center;
  min-height:44px
}

.back-top span:last-child {
  font-size:20px
}

.footer-bottom {
  display:flex;
  gap:30px;
  font-size:10px;
  color:var(--muted);
  padding-top:24px;
  border-top:1px solid #d5d8da
}

.footer-bottom>a {
  margin-left:auto
}

.footer-bottom a:hover {
  text-decoration:underline
}

/* Intermediate widths and mobile composition. */
@media(min-width:1600px) {
  .hero-main {
    padding-top:45px
  }
  .hero h1 {
    font-size:62px
  }
  .hero-product {
    margin-right:-75px;
    max-width:850px
  }
  .hero-product img {
    max-height:780px
  }
  .hero-bottom {
    padding-bottom:42px
  }
}

@media(max-width:1100px) {
  .page-width {
    width:calc(100% - 64px)
  }
  .nav-shell {
    padding-inline:28px;
    gap:14px
  }
  .desktop-nav a {
    padding-inline:10px;
    font-size:12px
  }
  .nav-actions {
    gap:10px
  }
  .brand>span {
    font-size:16px
  }
  .hero h1 {
    font-size:40px
  }
  .hero-buttons {
    flex-direction:column;
    align-items:flex-start;
    gap:10px
  }
  .hero-buttons .button {
    min-width:190px
  }
  .hero-product {
    margin-right:-30px
  }
  .hero-specs {
    gap:35px
  }
  .section-heading {
    gap:40px
  }
  .series-copy {
    padding-inline:26px
  }
  .series-copy h3 {
    font-size:25px
  }
  .series-bottom {
    padding-inline:26px
  }
  .partners-layout,.contact-layout {
    gap:55px
  }
  .section-space {
    padding-block:88px
  }
  .contact-layout h2 {
    font-size:42px
  }
}

@media(max-width:900px) {
  .desktop-nav {
    display:none
  }
  .menu-toggle:not([hidden]) {
    display:flex
  }
  .js .mobile-menu:not([hidden]) {
    display:flex;
    flex-direction:column
  }
  .mobile-menu {
    padding:16px 28px 28px;
    background:#fff;
    border-bottom:1px solid var(--line);
    max-height:calc(100svh - 76px);
    overflow:auto
  }
  .mobile-menu>a {
    font-size:18px;
    padding:14px 4px;
    border-bottom:1px solid #e4e6e8
  }
  .mobile-menu>a:last-child {
    border:0
  }
  .hero {
    min-height:740px
  }
  .hero h1 {
    font-size:36px
  }
  .hero-description {
    font-size:15px
  }
  .hero-product {
    margin-left:-10px;
    margin-right:-32px
  }
  .hero-specs dt {
    font-size:22px
  }
  .section-heading {
    align-items:flex-start
  }
  .section-intro {
    max-width:300px;
    font-size:14px
  }
  .ems-intro {
    max-width:290px
  }
  .series-copy h3 {
    font-size:23px
  }
  .series-copy>p {
    font-size:13px
  }
  .series-bottom {
    padding-inline:22px
  }
  .model-list {
    font-size:15px
  }
  .ems-features,.integration-points {
    gap:25px
  }
  .partners-layout {
    gap:40px
  }
  .partner-list article {
    gap:15px
  }
  .contact-layout {
    gap:40px
  }
  .contact-layout h2 {
    font-size:36px
  }
  html[lang=en] .hero h1 {
    font-size:34px;
    white-space:normal
  }
}

@media(max-width:760px) {
  :root {
    --header-height:68px
  }
  .page-width {
    width:calc(100% - 40px)
  }
  .nav-shell {
    padding-inline:20px;
    gap:12px
  }
  .brand>span {
    font-size:16px;
    letter-spacing:.12em
  }
  .brand img {
    height:30px
  }
  .brand-sub {
    font-size:7px
  }
  .nav-contact {
    display:none
  }
  .nav-actions {
    gap:16px
  }
  .menu-toggle {
    font-size:12px
  }
  .mobile-menu {
    padding-inline:20px
  }
  .hero {
    min-height:0;
    overflow:hidden
  }
  .hero-main {
    display:flex;
    flex-direction:column;
    padding-top:46px;
    gap:0;
    width:100%
  }
  .hero-copy {
    display:contents
  }
  .hero-copy .eyebrow {
    order:0;
    font-size:10px;
    margin-bottom:20px;
    text-align:center;
    justify-content:center
  }
  .hero h1 {
    order:1;
    text-align:center;
    font-size:clamp(30px,7.8vw,42px);
    line-height:1.32;
    white-space:normal;
    padding-inline:16px
  }
  .hero-description {
    order:2;
    text-align:center;
    font-size:14px;
    line-height:1.8;
    margin-top:20px;
    padding-inline:30px;
    max-width:450px
  }
  .hero-product {
    order:3;
    width:min(100%,560px);
    margin:4px 0 0
  }
  .hero-product img {
    max-height:450px;
    width:100%;
    object-fit:contain
  }
  .hero-product figcaption {
    padding-right:24px;
    font-size:9px;
    margin-top:-18px;
    gap:12px
  }
  .hero-buttons {
    order:4;
    flex-direction:row;
    align-items:stretch;
    width:calc(100% - 40px);
    margin-top:28px;
    gap:10px
  }
  .hero-buttons .button {
    min-width:0;
    flex:1;
    padding-inline:10px;
    font-size:13px;
    min-height:46px
  }
  .hero-bottom {
    padding-top:28px;
    padding-bottom:30px;
    display:block
  }
  .hero-specs {
    justify-content:space-between;
    gap:12px
  }
  .hero-specs dt {
    font-size:21px
  }
  .hero-specs dt span {
    font-size:10px
  }
  .hero-specs dd {
    font-size:9px;
    margin-top:6px
  }
  .hero-specs div:last-child dt {
    font-size:16px;
    line-height:27px
  }
  .scroll-cue {
    display:none
  }
  .section-space {
    padding-block:68px
  }
  .section-heading {
    display:block;
    margin-bottom:32px
  }
  .section-heading .eyebrow {
    font-size:10px;
    margin-bottom:18px
  }
  h2 {
    font-size:32px;
    line-height:1.35;
    letter-spacing:-.045em
  }
  .section-intro {
    margin-top:22px;
    max-width:100%;
    font-size:14px
  }
  .series-grid {
    grid-template-columns:1fr;
    gap:20px
  }
  .series-card {
    padding-top:30px
  }
  .series-copy {
    padding-inline:26px
  }
  .series-copy h3 {
    font-size:27px
  }
  .series-copy>p {
    font-size:13px
  }
  .series-bottom {
    padding:0 26px 26px
  }
  .model-list {
    font-size:18px
  }
  .image-note {
    font-size:10px
  }
  .product-footnote {
    display:block;
    margin-top:22px
  }
  .product-footnote>p {
    font-size:12px
  }
  .product-footnote .text-link {
    margin-top:18px
  }
  .ems-intro {
    max-width:100%;
    margin-top:24px
  }
  .ems-intro>p {
    font-size:14px
  }
  .ems-screen {
    margin-top:34px
  }
  .screen-bar {
    height:28px;
    padding-inline:10px;
    font-size:8px
  }
  .screen-bar>span:last-child {
    display:none
  }
  .ems-screen figcaption {
    font-size:9px;
    display:block
  }
  .ems-screen figcaption span:last-child {
    display:block;
    margin-top:5px
  }
  .ems-features {
    grid-template-columns:1fr;
    gap:25px;
    margin-top:36px
  }
  .ems-features article {
    padding-top:22px;
    display:grid;
    grid-template-columns:32px 1fr;
    column-gap:12px
  }
  .feature-number {
    grid-row:span 2;
    margin:3px 0 0
  }
  .ems-features h3 {
    font-size:22px;
    margin-bottom:10px
  }
  .ems-features p {
    max-width:none;
    font-size:14px
  }
  .deployment-photo {
    margin-inline:-20px
  }
  .deployment-photo img {
    aspect-ratio:1.3;
    object-fit:cover;
    object-position:center 60%
  }
  .deployment-photo figcaption {
    padding:35px 20px 16px;
    font-size:10px
  }
  .deployment-photo figcaption span:last-child {
    display:none
  }
  .integration-points {
    grid-template-columns:1fr;
    gap:24px;
    padding-top:30px
  }
  .integration-points article {
    border-bottom:1px solid var(--line);
    padding-bottom:24px
  }
  .integration-points article:last-child {
    border:0;
    padding-bottom:0
  }
  .integration-points h3 {
    font-size:22px;
    margin-top:8px
  }
  .integration-points p {
    margin-top:8px;
    font-size:14px
  }
  .section-note {
    font-size:10px;
    margin-top:24px
  }
  .partners-layout {
    grid-template-columns:1fr;
    gap:38px
  }
  .partners-heading h2 {
    font-size:32px
  }
  .partners-heading .eyebrow {
    font-size:10px;
    margin-bottom:20px
  }
  .partners-heading>p:not(.eyebrow) {
    margin-top:20px;
    font-size:14px
  }
  .partners-heading .text-link {
    margin-top:18px
  }
  .partner-list article {
    padding-block:24px;
    grid-template-columns:20px 1fr 16px;
    gap:13px
  }
  .partner-list h3 {
    font-size:21px
  }
  .partner-list p {
    font-size:13px;
    margin-top:9px
  }
  .contact-layout {
    grid-template-columns:1fr;
    gap:24px
  }
  .contact-layout .eyebrow {
    font-size:10px;
    margin-bottom:20px
  }
  .contact-layout h2 {
    font-size:40px;
    line-height:1.3
  }
  .contact-details {
    padding-top:0;
    max-width:100%
  }
  .contact-description {
    font-size:14px
  }
  .contact-cta {
    width:100%;
    margin-top:25px
  }
  .email-row {
    justify-content:space-between;
    gap:4px
  }
  .email-row>a {
    font-size:13px
  }
  .site-footer {
    padding-top:34px
  }
  .footer-top {
    flex-wrap:wrap;
    gap:20px;
    padding-bottom:25px
  }
  .footer-top .brand {
    order:0
  }
  .footer-top .back-top {
    order:1;
    margin-left:auto
  }
  .footer-top>p {
    order:2;
    width:100%;
    font-size:11px
  }
  .footer-bottom {
    flex-wrap:wrap;
    gap:14px;
    font-size:9px
  }
  .footer-bottom>span:first-child {
    width:100%
  }
  .footer-bottom>a {
    margin-left:0
  }
  .footer-location {
    margin-left:auto
  }
  html[lang=en] .hero h1 {
    font-size:clamp(30px,8vw,42px)
  }
  html[lang=en] .hero-description {
    font-size:14px
  }
  html[lang=en] .hero-specs dd {
    font-size:8px
  }
  html[lang=en] .series-copy h3 {
    font-size:26px
  }
}

@media(max-width:370px) {
  .nav-shell {
    padding-inline:16px
  }
  .nav-actions {
    gap:9px
  }
  .brand>span {
    font-size:14px
  }
  .brand img {
    height:27px
  }
  .hero-specs {
    gap:8px
  }
  .hero-specs dt {
    font-size:19px
  }
  .hero-specs div:last-child dt {
    font-size:14px
  }
  .hero-specs dd {
    font-size:8px
  }
  .hero-buttons .button {
    font-size:12px
  }
  .hero h1 {
    font-size:29px
  }
  .series-copy,.series-bottom {
    padding-inline:20px
  }
}

.menu-toggle {
  display:none
}

@media(max-width:900px) {
  .menu-toggle:not([hidden]) {
    display:flex
  }
  html:not(.js) .mobile-menu {
    display:flex;
    flex-direction:column
  }
}

html:not(.js) .site-header {
  position:relative
}

html:not(.js) .hero {
  padding-top:0
}

@media(prefers-reduced-motion:reduce) {
  html {
    scroll-behavior:auto
  }
  *,*::before,*::after {
    transition:none!important;
    animation:none!important
  }
}

/* Each product uses its canonical render and its own datasheet. */
.energy-grid { grid-template-columns: repeat(3, minmax(0, 1fr)); }
.family-heading { margin: 56px 0 26px; }
.family-heading h3 { font-size: 26px; }
.series-details { padding: 0 28px 24px; }
.product-rating { font-size: 25px; letter-spacing: -.03em; }
.product-rating span { font-size: 12px; }
.product-rating i { font-style: normal; color: #70767c; margin: 0 12px; font-size: 17px; }
.rating-label { font-size: 11px; color: var(--muted); }
.render-note { margin-top: 14px; font-size: 12px; color: var(--body); line-height: 1.65; }
.series-card .series-bottom { padding-inline: 28px; }
.series-card .text-link { font-size: 12px; gap: 12px; }
@media (min-width: 761px) and (max-width: 1100px) {
  .energy-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media (max-width: 760px) {
  .energy-grid { grid-template-columns: 1fr; }
  .family-heading { margin-top: 40px; }
  .series-details { padding-inline: 26px; }
}

/* Field photographs: progressive enhancement keeps every case readable without JS. */
.cases-section { background:#f5f5f5; }
.cases-section h2 { max-width:760px; }
.case-gallery { min-width:0; }
.case-track { display:grid; gap:36px; }
.js .case-track {
  display:flex;
  gap:0;
  overflow-x:auto;
  overscroll-behavior-x:contain;
  scroll-snap-type:x mandatory;
  scrollbar-width:none;
}
.js .case-track::-webkit-scrollbar { display:none; }
.case-slide { min-width:0; flex:0 0 100%; scroll-snap-align:start; scroll-snap-stop:always; }
.case-image-link { display:block; width:100%; position:relative; background:#e8e9e9; aspect-ratio:16/9; max-height:680px; }
.case-image-link img { width:100%; height:100%; position:absolute; inset:0; object-fit:contain; }
.case-enlarge { position:absolute; right:18px; bottom:18px; display:grid; place-items:center; width:40px; height:40px; background:#fff; border-radius:50%; font-size:22px; }
.case-caption { display:grid; grid-template-columns:1fr 1fr; gap:40px; padding:28px 0 6px; }
.case-caption .eyebrow { margin:0 0 10px; color:#5c6670; }
.case-caption h3 { font-size:clamp(23px,2.3vw,32px); line-height:1.2; font-weight:550; }
.case-description { max-width:540px; font-size:16px; line-height:1.7; color:#5c6670; }
.case-controls { display:flex; justify-content:space-between; align-items:center; gap:20px; margin:0 0 20px; }
.case-pagination,.case-actions { display:flex; align-items:center; gap:12px; }
.case-controls button { background:transparent; color:#171a20; border:0; min-height:44px; min-width:44px; cursor:pointer; font:inherit; font-size:13px; }
.case-dot { border-bottom:2px solid transparent !important; color:#686e74 !important; }
.case-dot[aria-pressed=true] { border-color:#171a20 !important; color:#171a20 !important; font-weight:650; }
.case-controls [data-gallery-prev],.case-controls [data-gallery-next] { border:1px solid #c5c8ca; border-radius:50%; font-size:22px; }
[data-gallery-count] { font-size:12px; font-variant-numeric:tabular-nums; white-space:nowrap; }
[data-gallery-play] { padding:0 12px; }
@media(max-width:760px) {
  .case-controls { flex-wrap:wrap; gap:8px; }
  .case-pagination { gap:4px; }
  .case-actions { margin-left:auto; gap:8px; }
  .case-caption { grid-template-columns:1fr; gap:14px; padding-top:22px; }
  .case-description { font-size:14px; }
  .case-image-link { aspect-ratio:4/3; }
  .case-enlarge { right:12px; bottom:12px; width:34px; height:34px; }
}

/* Videos load only on request; the static poster remains the initial case visual. */
.case-video-frame { position:relative; width:100%; aspect-ratio:16/9; max-height:680px; background:#171a20; }
.case-video-frame video { position:absolute; inset:0; width:100%; height:100%; object-fit:contain; }
.case-video-start { position:absolute; left:50%; top:50%; transform:translate(-50%,-50%); display:flex; align-items:center; gap:14px; border:1px solid #ffffff80; border-radius:4px; padding:16px 22px; background:#171a20e6; color:white; cursor:pointer; font:inherit; font-size:15px; white-space:nowrap; }
.case-video-start:hover { background:#171a20; }
.video-play-icon { font-size:22px; }
.case-video-meta { display:flex; justify-content:space-between; gap:18px; padding-top:12px; color:#5c6670; font-size:12px; line-height:1.5; }
.case-video-meta a { flex-shrink:0; text-decoration:underline; text-underline-offset:4px; }
.case-video-error { margin-top:10px; font-size:13px; }
@media(max-width:760px) {
  .case-video-start { font-size:12px; padding:12px 14px; gap:10px; }
  .case-video-meta { font-size:11px; gap:12px; }
}


/* EMS uses the same isolated gallery behavior with a dark presentation. */
.ems-gallery { margin-top:52px; }
.ems-gallery .case-controls button { color:#f4f5f6; }
.ems-gallery .case-dot { color:#aeb8c1 !important; }
.ems-gallery .case-dot[aria-pressed=true] { color:#fff !important; border-color:#fff !important; }
.ems-gallery [data-gallery-prev],.ems-gallery [data-gallery-next] { border-color:#57616b; }
.ems-gallery .case-image-link,.ems-gallery .case-video-frame { background:#20262c; aspect-ratio:1888/850; max-height:none; }
.ems-gallery .case-enlarge { color:#171a20; }
.ems-gallery .case-caption .eyebrow,.ems-gallery .case-description,.ems-gallery .case-video-meta { color:#b8c0c7; }
.ems-gallery-note { color:#a9b0b7; font-size:12px; line-height:1.7; margin-top:24px; }
@media(max-width:760px) {
  .ems-gallery { margin-top:32px; }
  .ems-gallery .case-video-start { white-space:normal; width:max-content; max-width:90%; font-size:11px; padding:10px; }
}
