/* ECE 19.19.135: shared page canvas, type scale and header.
   High-specificity scope overrides accumulated legacy desktop styles. */
html[data-ece-site135] {
  --ece135-font: "Manrope", Arial, sans-serif;
  --ece135-h1: clamp(2rem, 4.1vw, 3.5rem);
  --ece135-h2: clamp(1.625rem, 3vw, 2.5rem);
  --ece135-h3: clamp(1.25rem, 1.7vw, 1.375rem);
}
html:root[data-ece-site135] body,
html:root[data-ece-site135] body #main,
html:root[data-ece-site135] body #main > section,
html:root[data-ece-site135] body #main .kei-engineering-flow,
html:root[data-ece-site135] body footer,
html:root[data-ece-site135] body:has(#main) header#top.site-header {
  background-color: var(--dr-bg, var(--ece-bg)) !important;
  background-image: none !important;
  color: var(--dr-text, var(--ece-ink)) !important;
}
html:root[data-ece-site135] body #main,
html:root[data-ece-site135] body #main :is(h1,h2,h3,h4,p,li,a,button,input,textarea,select,label,summary,strong,em,span),
html:root[data-ece-site135] body:has(#main) header#top.site-header,
html:root[data-ece-site135] body:has(#main) header#top.site-header * {
  font-family: var(--ece135-font) !important;
}
html:root[data-ece-site135] body #main h1 {
  font-size: var(--ece135-h1) !important;
  line-height: 1.12 !important;
  letter-spacing: -.025em !important;
  font-weight: 800 !important;
  overflow-wrap: anywhere;
}
html:root[data-ece-site135] body #main h2 {
  font-size: var(--ece135-h2) !important;
  line-height: 1.2 !important;
  letter-spacing: -.02em !important;
  font-weight: 800 !important;
}
html:root[data-ece-site135] body #main h3 {
  font-size: var(--ece135-h3) !important;
  line-height: 1.3 !important;
  font-weight: 700 !important;
}
html:root[data-ece-site135] body #main p,
html:root[data-ece-site135] body #main #process .process-step p {
  font-size: 1rem !important;
  line-height: 1.65 !important;
}
html:root[data-ece-site135] body #main #process :is(h2,h3,p,span,em) {
  font-family: var(--ece135-font) !important;
}
html:root[data-ece-site135] body #main #process h2 {
  font-size: var(--ece135-h2) !important;
  line-height: 1.2 !important;
  color: var(--dr-heading,var(--ece-ink)) !important;
}
html:root[data-ece-site135] body #main #process h3 {
  font-size: var(--ece135-h3) !important;
  line-height: 1.3 !important;
  color: var(--dr-heading,var(--ece-ink)) !important;
}
html:root[data-ece-site135] body #main #process .section-intro > p,
html:root[data-ece-site135] body #main #process .process-step p { color:var(--dr-text,var(--ece-ink)) !important; }
html:root[data-ece-site135] body #main #process :is(.eyebrow,h2 em,.step-no) { color:var(--dr-link,var(--ece-link)) !important; }
html:root[data-ece-site135] body #main #process::before,
html:root[data-ece-site135] body #main #process::after { background:none !important; }
html:root[data-ece-site135] body #main > section::before,
html:root[data-ece-site135] body #main > section::after,
html:root[data-ece-site135] body footer::before,
html:root[data-ece-site135] body footer::after { background:none !important; }
html:root[data-ece-site135] body #main #process .process-step {
  background:var(--dr-surface,var(--ece-surface)) !important;
  border-color:var(--dr-border,var(--ece-line)) !important;
  height:auto !important;min-height:210px !important;
}
html:root[data-ece-site135] body #main :is(.page-banner,.kei-engineering-flow,.ece78-directions-intro) :is(h1,h2,h3) {
  color: var(--dr-heading, var(--ece-ink)) !important;
}
html:root[data-ece-site135] body #main :is(.page-banner,.kei-engineering-flow,.ece78-directions-intro) p {
  color: var(--dr-text, var(--ece-ink)) !important;
}
/* Smaller headings inside cards retain the visual hierarchy. */
html:root[data-ece-site135] body #main :is(.ece134-contact-directory,.contact-side,.system-card,.catalog-card,.ece134-empty) h2 {
  font-size: 1.5rem !important;
  line-height: 1.3 !important;
}
html:root[data-ece-site135] body #main .section-number { display: none !important; }
html:root[data-ece-site135] body #main .section-intro.compact > div:empty { display: none !important; }
/* One header layout for every route; logo and brand text are unchanged. */
html:root[data-ece-site135] body:has(#main) header#top.site-header .ece-header-bar {
  display: grid !important;
  grid-template-columns: auto minmax(0,1fr) auto auto !important;
  grid-template-areas: "brand nav controls contact" !important;
  align-items: center !important;
  gap: 16px !important;
  width: calc(100% - 48px) !important;
  max-width: 1440px !important;
  margin: 0 auto !important;
  padding: 16px 0 !important;
  min-height: 88px !important;
  box-sizing: border-box !important;
}
html:root[data-ece-site135] body:has(#main) header#top .brand { grid-area:brand !important; min-width:0 !important; }
html:root[data-ece-site135] body:has(#main) header#top .brand-logo { width:56px !important;height:56px !important;flex:none !important; }
html:root[data-ece-site135] body:has(#main) header#top .brand-name { font-size:15px !important;line-height:1.35 !important; }
html:root[data-ece-site135] body:has(#main) header#top .ece-header-controls { grid-area:controls !important;display:flex !important;align-items:center !important;gap:12px !important;width:176px !important;padding:0 !important;margin:0 !important; }
html:root[data-ece-site135] body:has(#main) header#top .ece-header-theme,
html:root[data-ece-site135] body:has(#main) header#top .ece-header-language { display:flex !important;align-items:center !important;gap:4px !important;box-sizing:border-box !important;height:42px !important;padding:0 !important;margin:0 !important;border:1px solid var(--dr-border,var(--ece-line)) !important; }
html:root[data-ece-site135] body:has(#main) header#top .ece-header-theme { width:86px !important;min-width:86px !important; }
html:root[data-ece-site135] body:has(#main) header#top .ece-header-language { width:78px !important;min-width:78px !important; }
html:root[data-ece-site135] body:has(#main) header#top .ece-header-theme button { box-sizing:border-box !important;width:40px !important;min-width:40px !important;max-width:40px !important;height:40px !important;padding:6px !important; }
html:root[data-ece-site135] body:has(#main) header#top .ece-theme-word { display:none !important; }
html:root[data-ece-site135] body:has(#main) header#top .ece-header-language a { box-sizing:border-box !important;width:36px !important;min-width:36px !important;height:40px !important;padding:6px !important;display:grid !important;place-items:center !important; }
html:root[data-ece-site135] body:has(#main) header#top .ece-header-actions { grid-area:contact !important;display:flex !important;align-items:center !important; }
html:root[data-ece-site135] body:has(#main) header#top .ece-header-nav {
  grid-area:nav !important;display:flex !important;justify-content:center !important;gap:18px !important;
  position:static !important;visibility:visible !important;opacity:1 !important;transform:none !important;
  width:auto !important;padding:0 !important;max-height:none !important;
}
html:root[data-ece-site135] body:has(#main) header#top .ece-header-nav a { font-size:14px !important;font-weight:600 !important;letter-spacing:0 !important;line-height:1.4 !important;white-space:nowrap !important;color:var(--dr-text,var(--ece-ink)) !important; }
html:root[data-ece-site135] body:has(#main) header#top .ece-header-language a { font-size:12px !important;line-height:1.4 !important; }
html:root[data-ece-site135] body:has(#main) header#top .ece-header-contact { font-size:14px !important;line-height:1.4 !important;box-sizing:border-box !important;display:inline-flex !important;align-items:center !important;justify-content:center !important;width:112px !important;min-width:112px !important;height:40px !important;padding:10px 12px !important; }
html:root[data-ece-site135] body:has(#main) header#top .ece-header-menu { display:none !important;grid-area:menu !important; }
html:root[data-ece-site135] body:has(#main) header#top :is(.ece-header-theme button,.ece-header-language a,.ece-header-contact,.ece-header-menu) { min-height:40px !important; }
html:root[data-ece-site135] body:has(#main) header#top .ece-header-nav a:focus-visible { outline:2px solid var(--dr-link,var(--ece-link)) !important;outline-offset:5px; }
@media(max-width:1359px) {
  html:root[data-ece-site135] body:has(#main) header#top.site-header .ece-header-bar {
    grid-template-columns:minmax(0,1fr) auto auto auto !important;
    grid-template-areas:"brand controls contact menu" !important;
  }
  html:root[data-ece-site135] body:has(#main) header#top .ece-header-menu { display:grid !important;width:44px !important;min-height:44px !important; }
  html:root[data-ece-site135] body:has(#main) header#top .ece-header-nav { display:none !important; }
  html:root[data-ece-site135] body:has(#main) header#top[data-menu-open] .ece-header-nav {
    display:flex !important;position:absolute !important;top:100% !important;left:0 !important;right:0 !important;
    flex-direction:column !important;align-items:stretch !important;gap:0 !important;padding:12px 24px !important;
    background:var(--dr-bg,var(--ece-bg)) !important;border-bottom:1px solid var(--dr-border,var(--ece-line)) !important;
    max-height:70vh !important;overflow:auto !important;box-shadow:0 12px 24px #0002;
  }
  html:root[data-ece-site135] body:has(#main) header#top[data-menu-open] .ece-header-nav a { padding:12px 0 !important; }
}
@media(max-width:680px) {
  html:root[data-ece-site135] body:has(#main) header#top.site-header .ece-header-bar {
    width:calc(100% - 32px) !important;gap:10px !important;padding:12px 0 !important;
    grid-template-columns:minmax(0,1fr) auto !important;
    grid-template-areas:"brand menu" "controls contact" !important;
  }
  html:root[data-ece-site135] body:has(#main) header#top .brand-logo { width:44px !important;height:44px !important; }
  html:root[data-ece-site135] body:has(#main) header#top .brand-name { font-size:14px !important; }
  html:root[data-ece-site135] body:has(#main) header#top .ece-header-controls { gap:6px !important;width:154px !important; }
  html:root[data-ece-site135] body:has(#main) header#top .ece-header-theme { width:78px !important;min-width:78px !important; }
  html:root[data-ece-site135] body:has(#main) header#top .ece-header-language { width:70px !important;min-width:70px !important; }
  html:root[data-ece-site135] body:has(#main) header#top .ece-header-language a { width:32px !important;min-width:32px !important; }
  html:root[data-ece-site135] body:has(#main) header#top .ece-header-actions { justify-self:end !important; }
  html:root[data-ece-site135] body:has(#main) header#top .ece-header-theme button { width:36px !important;min-width:36px !important;max-width:36px !important;padding:6px !important; }
  html:root[data-ece-site135] body:has(#main) header#top .ece-theme-word { display:none !important; }
  html:root[data-ece-site135] body:has(#main) header#top .ece-header-contact { padding:10px 12px !important; }
}
@media(prefers-reduced-motion:reduce) {
  html[data-ece-site135] {scroll-behavior:auto !important;}
}
/* Text and its themed surface switch together; opacity/transform animations remain. */
html:root[data-ece-site135] body:has(#main),
html:root[data-ece-site135] body:has(#main) #main,
html:root[data-ece-site135] body:has(#main) #main *,
html:root[data-ece-site135] body:has(#main) header#top,
html:root[data-ece-site135] body:has(#main) header#top *,
html:root[data-ece-site135] body:has(#main) footer,
html:root[data-ece-site135] body:has(#main) footer * {
  transition-property: opacity, transform, filter, box-shadow, border-color, outline-color !important;
}
