/* One layout, two complete palettes. Photos and official interface assets retain their colour. */
:root {
  --action: #00843D;
  --header-surface: rgba(8,16,34,.94);
  --control: rgba(15,23,42,.65);
  --hover-surface: rgba(15,23,42,.8);
}

.footer-contact > a[href^="mailto:"] { color: var(--muted); font-size: .875rem; overflow-wrap: anywhere; }
.address-band { grid-template-columns: 1fr; }
.news-group-title { font-size: 1.25rem; font-weight: 500; margin: 32px 0 16px; }
[data-managed-news]:not([hidden]) { margin-bottom: 48px; }
.managed-article-copy p { white-space: pre-wrap; overflow-wrap: anywhere; }
:root[data-theme="light"] {
  color-scheme: light;
  --bg: #FFFFFF;
  --surface: #F5F6FB;
  --surface2: #ECEFF8;
  --ink: #1C2440;
  --muted: #657088;
  --mint: #252A69;
  --cyan: #252A69;
  --line: #DFE3EF;
  --border: var(--line);
  --action: #252A69;
  --header-surface: #FFFFFF;
  --control: #F5F6FB;
  --hover-surface: #ECEFF8;
  --title-accent: #252A69;
}
html { background: var(--bg); scroll-padding-top: calc(var(--header-h) + 24px); }
.theme-changing body,
.theme-changing :is(.site-header,.site-footer,.button,.theme-toggle,.language-switch,.landing-panel,.landing-tabs,.landing-tabs button,.selected-card,.solution-panel,.ops-shell,.ops-map,.product-card,.gallery-card,.enquiry-form,.form-grid input,.form-grid select,.compare-bar,.compare-dialog,.contact-card,.platform-preview,.brand-panel,.brand-panel > strong,.brand-panel > span,.brand-panel small,.brand-panel-logo) {
  transition: background-color 300ms ease-out, color 300ms ease-out, border-color 300ms ease-out;
}
.site-header,
.site-header.is-scrolled,
body:not(.is-home) .site-header {
  top: 0; left: 0; transform: none; width: 100%; max-width: none;
  height: 88px; padding: 16px 32px; gap: 24px;
  display: flex; align-items: center;
  border: 0; border-bottom: 1px solid var(--line); border-radius: 0;
  background: var(--header-surface);
  transition: transform 400ms ease-out, visibility 0s;
}
.theme-changing .site-header { transition: transform 400ms ease-out, visibility 0s, background-color 300ms ease-out, color 300ms ease-out, border-color 300ms ease-out; }
.site-header.is-hidden, body:not(.is-home) .site-header.is-hidden {
  transform: translateY(-100%); pointer-events: none; visibility: hidden;
  transition: transform 400ms ease-out, visibility 0s 400ms;
}
:root { --header-h: 88px; }
.brand { gap: 16px; }
.brand-logo-shape { width: 136px; }
.brand-company { display: inline-block; border-left: 1px solid var(--line); padding-left: 16px; color: var(--muted); font-size: .8125rem; white-space: nowrap; }
[data-theme="light"] .brand-logo-shape { background: transparent; mask: none; -webkit-mask: none; }
[data-theme="light"] .brand-logo { opacity: 1; }
#primary-nav, #primary-nav.is-open {
  display: flex; position: static; gap: 20px;
  left: auto; right: auto; top: auto; width: auto; max-height: none;
  padding: 0; border: 0; border-radius: 0; background: transparent;
  backdrop-filter: none; overflow: visible; flex: 1; justify-content: flex-end;
}
#primary-nav a { color: var(--muted); font-size: .8125rem; border-bottom: 0; }
#primary-nav a:hover, #primary-nav a[aria-current] { color: var(--cyan); }
#primary-nav a[aria-current]:after { display: block; background: var(--cyan); }
.header-controls { gap: 8px; flex-shrink: 0; }
.menu-toggle { display: none; align-items: center; justify-content: center; width: 44px; height: 44px; padding: 10px; background: var(--control); border: 1px solid var(--line); border-radius: 12px; color: var(--muted); cursor: pointer; }
.menu-toggle:hover { color: var(--cyan); background: var(--hover-surface); }
.menu-toggle svg { width: 20px; height: 20px; stroke-width: 2; }
.menu-toggle .menu-close, .menu-toggle[aria-expanded=true] .menu-lines { display: none; }
.menu-toggle[aria-expanded=true] .menu-close { display: block; }
body:not(.is-home) main { padding-top: calc(var(--header-h) + 24px); }
.language-switch, .theme-toggle { background: var(--control); border: 1px solid var(--line); border-radius: 12px; color: var(--muted); }
.language-switch { min-height: 44px; padding: 8px 12px; }
.language-switch .is-current { color: var(--cyan); }
.theme-toggle { display: inline-flex; align-items: center; justify-content: center; width: 44px; height: 44px; padding: 10px; cursor: pointer; }
.theme-toggle:hover { color: var(--cyan); background: var(--hover-surface); }
.theme-toggle svg { width: 20px; height: 20px; stroke-width: 2; }
.theme-toggle .theme-sun { display: none; }
[data-theme="dark"] .theme-toggle .theme-moon { display: none; }
[data-theme="dark"] .theme-toggle .theme-sun { display: block; }
:lang(en) #primary-nav { gap: 14px; }
:lang(en) #primary-nav a { font-size: .75rem; }
.button.primary, .skip-link { background: var(--action); border-color: var(--action); color: #F5F7FA; }
.button.primary:hover { background: var(--action); border-color: var(--action); }
.button.secondary { background: transparent; color: var(--ink); border-color: var(--line); }
.button.secondary:hover { background: var(--surface2); border-color: var(--cyan); }
.selected-card:hover { background: var(--hover-surface); border-color: var(--line); }
.selected-image, .product-image, .product-detail-visual, .official-app-phone,
.technology-band img, .oem-band img { background: #FFFFFF; }
.technology-band img, .oem-band img { width: 100%; height: auto; object-fit: contain; }
.product-code, .product-image > span { color: #182433; }
.product-image > span { background: #FFFFFF; border-color: #E1E9F0; }
/* Extracted product photos share the card surface in both themes. */
.selected-image.is-cutout, .product-image.is-cutout { background: transparent; }
.selected-image.is-cutout img { padding: 0; }
#selected-products .industrial-heading h2 { text-wrap: balance; }
.product-image.is-cutout > span { background: var(--control); border-color: var(--line); color: var(--muted); }
.product-detail-visual.is-cutout { background: var(--surface); border: 1px solid var(--line); }
.product-detail-visual.is-cutout .product-code { color: var(--muted); }
.compare-product img.product-cutout { background: transparent; }
.solution-visual.is-product.is-cutout { background: var(--surface); }
.solution-visual.is-product.is-cutout img { object-fit: contain; padding: 24px; }
.gallery-image > span { color: #F5F7FA; }
.brand-panel { background: var(--surface); border-color: var(--line); color: var(--ink); }
.brand-panel > strong { color: var(--ink); }
.brand-panel > span, .brand-panel small { color: var(--muted); opacity: 1; }
[data-theme="dark"] .brand-panel .brand-panel-logo {
  background: var(--ink);
  mask:none;
  -webkit-mask:none;
}
[data-theme="dark"] .brand-panel .brand-logo { opacity: 0; }
.ops-map { background: var(--bg); }
.form-grid input, .form-grid select, .form-grid textarea { background: var(--bg); }
.compare-bar { background: var(--header-surface); }
.compare-product img { background: #FFFFFF; border-radius: 12px; }
.filters button[aria-pressed=true], .compare-toggle[aria-pressed=true],
.ops-stations button[aria-pressed=true] { background: var(--surface2); border-color: var(--cyan); color: var(--cyan); }
[data-theme="light"] .scene-tabs button[aria-selected=true] { color: var(--cyan); border-color: var(--cyan); background: var(--surface2); }
/* Night headlines stay neutral; the selected day palette uses brand navy. */
.page-intro h1 .mint { color: inherit; }
[data-theme="light"] .page-intro h1 .mint { color: var(--title-accent); }
[data-theme="light"] .brand-panel { background: var(--bg); }
[data-theme="light"] .chart-key span:nth-child(2)::before { background: var(--muted); }
[data-theme="light"] .site-footer { background: var(--surface); }
[data-theme="light"] .compare-dialog::backdrop,
[data-theme="light"] #gallery-dialog::backdrop { background: rgba(8,16,34,.5); }

/* The approved white hero also forms the night-mode layout. */
.brand-hero { display: grid; grid-template-columns: 1fr 1.08fr; gap: 64px; align-items: center; padding-block: calc(var(--header-h) + 56px) 64px; min-height: 760px; }
.brand-hero-copy, .landing-stage { min-width: 0; }
.brand-hero .eyebrow { color: var(--muted); font-size: .875rem; }
.brand-hero h1 { font-size: clamp(2.75rem,4.3vw,4rem); line-height: 1.4; letter-spacing: -.035em; margin-top: 24px; font-weight: 500; }
.brand-hero h1 > span { display: block; }
.brand-hero h1 > span:nth-child(2) { color: var(--cyan); }
.brand-hero-description { color: var(--muted); font-size: 1rem; line-height: 1.95; margin-top: 24px; max-width: 512px; }
.brand-hero .actions { margin-top: 32px; gap: 12px; }
.landing-chooser { margin-top: 32px; }
.landing-chooser-label { color: var(--muted); font-size: .875rem; margin-bottom: 12px; }
.landing-tabs { display: flex; gap: 4px; padding: 4px; border: 1px solid var(--line); border-radius: 16px; background: var(--control); max-width: 448px; }
.landing-tabs button { flex: 1; min-width: 0; padding: 10px 8px; min-height: 44px; border: 0; border-radius: 12px; color: var(--muted); background: transparent; font-size: .875rem; line-height: 1.5; transition: color 300ms ease-out, background-color 300ms ease-out; }
.landing-tabs button:hover { color: var(--cyan); }
.landing-tabs button[aria-selected=true] { color: var(--cyan); background: var(--bg); font-weight: 500; }
.landing-helper { font-size: .8125rem; color: var(--muted); margin-top: 12px; }
.hero-partner-link { display: inline-block; font-size: .875rem; color: var(--muted); border-bottom: 1px solid var(--line); margin-top: 24px; }
.hero-partner-link:hover { color: var(--cyan); }
.landing-stage { position: relative; isolation: isolate; }
.landing-stage-accent { position: absolute; inset: -48px -24px; z-index: -1; border-radius: 50%; background: rgba(37,42,105,.035); pointer-events: none; }
[data-theme="dark"] .landing-stage-accent { display: none; }
.landing-panel { overflow: hidden; border: 1px solid var(--line); border-radius: 24px; background: var(--bg); }
[data-theme="dark"] .landing-panel { background: var(--surface); }
.landing-photo { height: 292px; position: relative; overflow: hidden; background: var(--surface2); }
.landing-photo img { width: 100%; height: 100%; object-fit: cover; filter: none; opacity: 1; transition: transform 500ms ease-out; }
.landing-panel:hover .landing-photo img { transform: scale(1.025); }
.landing-photo-tag { position: absolute; bottom: 20px; left: 24px; color: #F5F7FA; font-size: .8125rem; background: rgba(8,16,34,.65); padding: 4px 8px; border-radius: 8px; }
.landing-summary { display: grid; grid-template-columns: minmax(0,1fr) auto; gap: 24px; align-items: start; padding: 24px 24px 16px; min-height: 168px; }
.landing-category { display: block; font-size: .8125rem; color: var(--cyan); margin-bottom: 8px; }
.landing-summary h2 { font-size: 1.375rem; font-weight: 500; line-height: 1.5; }
.landing-summary p { font-size: .875rem; color: var(--muted); line-height: 1.8; margin-top: 12px; max-width: 304px; }
.landing-power { padding-top: 8px; text-align: right; }
.landing-power strong { display: block; font-family: Outfit,'Noto Sans SC',sans-serif; font-size: 2.375rem; font-weight: 400; line-height: 1.2; color: var(--cyan); letter-spacing: -.04em; white-space: nowrap; }
.landing-power > span { display: block; font-size: .6875rem; color: var(--muted); margin-top: 12px; }
.landing-links { display: flex; justify-content: space-between; gap: 16px; padding: 0 24px 24px; }
.landing-links .text-link { font-size: .875rem; margin-top: 0; color: var(--cyan); }
.landing-counter { display: block; margin: 12px 24px 0 0; text-align: right; font-size: .75rem; letter-spacing: .1em; color: var(--muted); }
.landing-counter b { color: var(--cyan); font-weight: 500; }
.landing-stats { border-bottom: 0; padding-block: 32px 48px; }
.landing-stats strong { font-size: 2rem; color: var(--ink); font-weight: 400; }
.landing-stats strong span, .landing-stats p { color: var(--muted); font-size: .8125rem; }
:lang(en) .brand-hero h1 { font-size: clamp(3rem,4.7vw,4.25rem); line-height: 1.18; }
:lang(en) .landing-stats strong { font-size: 1.75rem; }

@media (max-width:1240px) {
  :root { --header-h: 144px; }
  .site-header, .site-header.is-scrolled, body:not(.is-home) .site-header {
    display: grid; grid-template-columns: minmax(0,1fr) auto; grid-template-rows: 56px 44px;
    height: var(--header-h); padding: 16px 24px; gap: 8px 16px;
  }
  .site-header > .brand { grid-column: 1; grid-row: 1; justify-self: start; }
  .header-controls { grid-column: 2; grid-row: 1; justify-self: end; margin: 0; }
  #primary-nav, #primary-nav.is-open {
    grid-column: 1 / -1; grid-row: 2; width: 100%; gap: 12px;
    justify-content: space-between; border-top: 1px solid var(--line); padding-top: 8px;
  }
  #primary-nav a { font-size: .8125rem; }
  :lang(en) #primary-nav { gap: 8px; }
  :lang(en) #primary-nav a { font-size: .75rem; }
  .brand-hero { gap: 40px; }
}
@media (max-width:960px) {
  :root { --header-h: 80px; }
  .site-header, .site-header.is-scrolled, body:not(.is-home) .site-header {
    display: flex; height: var(--header-h); padding: 12px 24px; gap: 16px;
  }
  .menu-toggle { display: inline-flex; }
  #primary-nav, #primary-nav.is-open {
    display: none; position: absolute; top: calc(100% + 8px); left: 16px; right: 16px;
    width: auto; flex: none; grid-template-columns: repeat(3,minmax(0,1fr));
    gap: 4px 16px; padding: 16px 24px; border: 1px solid var(--line); border-radius: 16px;
    background: var(--header-surface); backdrop-filter: blur(16px);
    max-height: calc(100svh - var(--header-h) - 32px); overflow: auto;
    align-items: stretch; justify-content: stretch;
  }
  #primary-nav.is-open { display: grid; animation: nav-menu-in 400ms ease-out both; }
  #primary-nav a { display: flex; align-items: center; min-height: 44px; padding: 8px 0; }
  :lang(en) #primary-nav { gap: 4px 12px; }
  #primary-nav a[aria-current]:after { bottom: 4px; }
}
@media (max-width:1000px) and (min-width:761px) {
  .brand-hero { grid-template-columns: 1fr 1fr; gap: 32px; padding-block: calc(var(--header-h) + 48px) 56px; }
  .brand-hero h1 { font-size: 2.5rem; }
  .landing-photo { height: 256px; }
  .landing-summary { display: block; }
  .landing-power { display: flex; align-items: baseline; gap: 12px; text-align: left; margin-top: 16px; }
  .landing-power strong { font-size: 2rem; }
  .landing-power > span { margin-top: 0; }
  :lang(en) .brand-hero h1 { font-size: 2.75rem; }
}
@media (max-width:760px) {
  :root { --header-h: 72px; }
  .site-header, .site-header.is-scrolled, body:not(.is-home) .site-header { height: var(--header-h); padding: 12px 16px; gap: 8px; }
  .brand-logo-shape, .site-footer .brand-logo-shape { width: 112px; }
  .brand-company { display: none; }
  .header-controls { margin-left: auto; gap: 6px; }
  .language-switch { padding: 8px; }
  .theme-toggle { width: 44px; height: 44px; }
  .site-header #primary-nav {
    display: none; grid-template-columns: repeat(3,minmax(0,1fr));
    padding: 16px; gap: 4px 12px;
  }
  .site-header #primary-nav.is-open { display: grid; }
  #primary-nav a { font-size: .8125rem; white-space: normal; line-height: 1.5; }
  :lang(en) #primary-nav a { font-size: .75rem; }
  .brand-hero { display: flex; flex-direction: column; align-items: stretch; padding-block: calc(var(--header-h) + 40px) 48px; gap: 40px; min-height: 0; }
  .brand-hero h1 { font-size: clamp(1.6rem,7.5vw,2.75rem); line-height: 1.5; margin-top: 16px; }
  .brand-hero-description { margin-top: 24px; font-size: .9375rem; }
  .brand-hero .actions { margin-top: 24px; gap: 12px; }
  .brand-hero .button { padding-inline: 16px; font-size: .875rem; }
  .landing-chooser { margin-top: 32px; }
  .landing-tabs { max-width: none; }
  .landing-tabs button { font-size: .8125rem; padding: 10px 4px; }
  .hero-partner-link { margin-top: 24px; }
  .landing-stage-accent { display: none; }
  .landing-photo { height: 232px; }
  .landing-photo-tag { left: 16px; bottom: 16px; }
  .landing-summary { display: block; padding: 24px; }
  .landing-summary h2 { font-size: 1.25rem; }
  .landing-summary p { max-width: none; }
  .landing-power { display: flex; align-items: baseline; gap: 12px; text-align: left; margin-top: 16px; }
  .landing-power strong { font-size: 2rem; }
  .landing-power > span { margin-top: 0; }
  .landing-links { padding: 0 24px 24px; gap: 16px; }
  .landing-links .text-link { font-size: .8125rem; }
  .landing-stats { grid-template-columns: repeat(2,minmax(0,1fr)); gap: 24px 16px; padding-block: 24px 32px; }
  .landing-stats > div { padding: 0; border: 0; }
  .landing-stats strong { font-size: 1.75rem; }
  :lang(en) .brand-hero h1 { font-size: clamp(2.25rem,9.5vw,3rem); line-height: 1.18; }
  :lang(en) .landing-tabs button { font-size: .75rem; white-space: normal; }
  :lang(en) .landing-links { flex-wrap: wrap; }
  :lang(en) .landing-stats strong { font-size: 1.35rem; }
  body:not(.is-home) main { padding-top: calc(var(--header-h) + 16px); }
}
@media (max-width:360px) {
  .site-header, .site-header.is-scrolled, body:not(.is-home) .site-header { padding-inline: 12px; }
  .site-header .brand-logo-shape { width: 104px; }
}
@keyframes nav-menu-in { from { opacity: 0; transform: translateY(-8px); } to { opacity: 1; transform: translateY(0); } }
@media (prefers-reduced-motion:reduce) {
  .theme-changing body, .theme-changing * { transition: none; }
  .site-header, .site-header.is-scrolled, body:not(.is-home) .site-header,
  .site-header.is-hidden, body:not(.is-home) .site-header.is-hidden, .theme-changing .site-header { transition: none; }
  #primary-nav.is-open { animation: none; }
  .landing-photo img { transition: none; }
  .landing-panel:hover .landing-photo img { transform: none; }
}

/* Public project portfolio: quiet surfaces, genuine colour photography, bounded image sizes. */
.projects-page .page-intro { padding-block: 48px 48px; }
.projects-page .page-intro .lead { max-width: 720px; }
.project-explorer { padding-bottom: 32px; }
.project-explorer [hidden] { display: none !important; }
.project-toolbar { display: flex; align-items: flex-start; justify-content: space-between; gap: 24px; flex-wrap: wrap; }
.project-filters { display: flex; gap: 8px; margin: 0; flex-wrap: wrap; }
.project-filters button { display: inline-flex; align-items: center; gap: 12px; padding: 12px 16px; }
.project-filter-count { font-family: Outfit, sans-serif; font-size: .75rem; opacity: .75; }
.project-search { display: flex; align-items: center; gap: 12px; flex: 1 1 240px; max-width: 288px; min-height: 48px; padding: 0 16px; border: 1px solid var(--line); border-radius: 12px; background: var(--bg); color: var(--muted); }
.project-search > .sr-only { position: absolute; width: 1px; height: 1px; padding: 0; margin: -1px; overflow: hidden; clip-path: inset(50%); white-space: nowrap; }
.project-search svg { width: 20px; height: 20px; flex-shrink: 0; fill: none; stroke: currentColor; stroke-width: 2; }
.project-search input { appearance: none; width: 100%; min-width: 0; height: 46px; padding: 0; border: 0; background: transparent; color: var(--ink); font: inherit; font-size: .875rem; outline: 0; }
.project-search input::placeholder { color: var(--muted); opacity: 1; }
.project-search:focus-within { border-color: var(--cyan); outline: 2px solid var(--cyan); outline-offset: 3px; }
.project-results-heading { display: flex; align-items: center; justify-content: space-between; gap: 16px; padding-block: 24px; color: var(--muted); font-size: .875rem; }
.project-results-heading strong { color: var(--ink); font-family: Outfit, sans-serif; font-weight: 500; }
.project-grid { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); gap: 32px; }
.project-card { min-width: 0; overflow: hidden; border: 1px solid var(--line); border-radius: 24px; background: var(--bg); transition: transform 450ms ease-out, border-color 450ms ease-out; }
.project-card:hover { transform: translateY(-3px); border-color: var(--cyan); }
.project-open { display: block; width: 100%; height: 100%; padding: 0; border: 0; border-radius: inherit; background: transparent; color: var(--ink); text-align: left; }
.project-open:focus-visible { outline: 2px solid var(--cyan); outline-offset: -3px; }
.project-cover { display: flex; align-items: center; justify-content: center; width: 100%; aspect-ratio: 4 / 3; overflow: hidden; background: var(--surface2); }
.project-cover img { width: 100%; height: 100%; object-fit: cover; filter: none; transition: transform 450ms ease-out; }
.project-card:hover .project-cover:not(.is-portrait):not(.is-archive) img { transform: scale(1.025); }
.project-cover.is-portrait img { width: auto; height: 100%; object-fit: contain; }
.project-cover.is-archive img { width: auto; height: auto; max-width: min(100%,var(--photo-width)); max-height: min(100%,var(--photo-height)); object-fit: contain; }
.project-card-copy { display: block; padding: 24px; }
.project-location { display: block; color: var(--muted); font-size: .8125rem; line-height: 1.6; }
.project-title { display: block; margin-top: 12px; min-height: 3em; color: var(--ink); font-size: 1.25rem; font-weight: 600; line-height: 1.5; overflow-wrap: anywhere; }
.project-card-action { display: flex; align-items: center; justify-content: space-between; gap: 16px; margin-top: 24px; padding-top: 16px; border-top: 1px solid var(--line); color: var(--cyan); font-size: .875rem; }
.project-card-action svg,.project-more svg,.project-photo-arrow svg { width: 20px; height: 20px; fill: none; stroke: currentColor; stroke-width: 2; }
.project-more { display: flex; flex-direction: column; align-items: flex-start; gap: 16px; padding-top: 40px; color: var(--muted); font-size: .875rem; }
.project-more strong { font-weight: 500; color: var(--ink); }
.project-more .button { gap: 16px; }
.project-empty { padding: 64px 32px; border: 1px solid var(--line); border-radius: 24px; background: var(--surface); }
.project-empty h2 { font-size: 1.5rem; }
.project-empty p { margin-block: 16px 24px; color: var(--muted); }
.project-dialog { width: min(1040px,calc(100vw - 48px)); max-height: calc(100svh - 48px); margin: auto; padding: 32px; overflow: auto; overscroll-behavior: contain; border: 1px solid var(--line); border-radius: 24px; background: var(--bg); color: var(--ink); }
.project-dialog::backdrop { background: rgba(8,16,34,.72); backdrop-filter: blur(4px); }
.project-dialog .dialog-close { top: 0; z-index: 2; margin-bottom: 8px; padding: 8px 16px; min-height: 44px; border: 1px solid var(--line); border-radius: 12px; background: var(--bg); color: var(--ink); }
.project-detail-heading { margin-bottom: 24px; padding-right: 48px; }
.project-detail-heading .eyebrow { color: var(--cyan); letter-spacing: .06em; }
.project-detail-heading h2 { font-size: 1.75rem; line-height: 1.4; margin-top: 12px; }
.project-detail-heading > p:last-child { font-size: 1rem; line-height: 1.8; margin-top: 16px; color: var(--muted); }
.project-viewer { display: flex; align-items: center; justify-content: center; height: clamp(240px,48svh,520px); overflow: hidden; border-radius: 16px; background: var(--surface2); }
.project-viewer img { width: auto; height: auto; max-width: min(100%,var(--photo-width)); max-height: min(100%,var(--photo-height)); object-fit: contain; filter: none; }
.project-photo-controls { display: flex; align-items: center; justify-content: space-between; gap: 16px; margin-top: 16px; color: var(--muted); font-size: .875rem; }
.project-photo-controls > div { display: flex; align-items: center; gap: 16px; }
.project-photo-controls [data-photo-counter] { font-family: Outfit,sans-serif; min-width: 48px; text-align: left; }
.project-photo-arrow { display: flex; align-items: center; justify-content: center; width: 44px; height: 44px; border: 1px solid var(--line); border-radius: 12px; background: transparent; color: var(--ink); }
.project-photo-arrow:hover { background: var(--surface2); color: var(--cyan); }
.project-detail-footer { display: flex; align-items: center; gap: 24px; flex-wrap: wrap; margin-top: 24px; padding-top: 24px; border-top: 1px solid var(--line); }
.project-detail-footer .text-link { margin: 0; }
.theme-changing :is(.project-card,.project-search,.project-dialog,.project-viewer,.project-photo-arrow) { transition: background-color 300ms ease-out, color 300ms ease-out, border-color 300ms ease-out; }
@media (max-width:1100px) {
  .project-toolbar { gap: 16px; }
  .project-search { max-width: none; }
  .project-grid { grid-template-columns: repeat(2,minmax(0,1fr)); gap: 24px; }
  .project-title { min-height: 0; }
}
@media (max-width:760px) {
  .projects-page .page-intro { padding-block: 32px 32px; }
  .project-toolbar { display: block; }
  .project-filters { gap: 8px; }
  .project-filters button { padding: 8px 12px; min-height: 44px; gap: 8px; font-size: .8125rem; }
  .project-search { margin-top: 16px; }
  .project-results-heading { flex-direction: column; align-items: flex-start; gap: 8px; padding-block: 24px; }
  .project-grid { grid-template-columns: minmax(0,1fr); gap: 24px; }
  .project-card-copy { padding: 24px; }
  .project-title { font-size: 1.25rem; }
  .project-card-action { margin-top: 16px; }
  .project-more { padding-top: 32px; }
  .project-empty { padding: 32px 24px; }
  .project-dialog { width: calc(100vw - 24px); max-height: calc(100svh - 24px); padding: 24px; border-radius: 24px; }
  .project-detail-heading { padding-right: 0; }
  .project-detail-heading h2 { font-size: 1.5rem; }
  .project-viewer { height: clamp(200px,35svh,400px); }
  .project-photo-controls > div { gap: 8px; }
  .project-detail-footer { gap: 16px; }
  .project-detail-footer .button { width: 100%; }
}
@media (prefers-reduced-motion:reduce) {
  .project-card,.project-cover img,.theme-changing :is(.project-card,.project-search,.project-dialog,.project-viewer,.project-photo-arrow) { transition: none; }
  .project-card:hover,.project-card:hover .project-cover:not(.is-portrait):not(.is-archive) img { transform: none; }
}

.news-more-actions{display:flex;align-items:center;flex-wrap:wrap;gap:24px;margin:32px 0 48px}.news-more-actions .muted{color:var(--muted)}
.mini-program-section{padding-bottom:80px;scroll-margin-top:112px}.mini-program-heading{max-width:720px;margin-bottom:32px}.mini-program-heading h2{font-size:clamp(1.75rem,3vw,2.5rem);line-height:1.4;margin:0 0 16px}.mini-program-heading>p:last-child{color:var(--muted);line-height:1.8}.mini-program-grid{display:grid;grid-template-columns:minmax(0,1fr);gap:32px} .mini-program-card{display:grid;grid-template-columns:minmax(0,.9fr) minmax(0,1.1fr);align-items:center;gap:64px;border:1px solid var(--line);border-radius:24px;background:var(--surface);padding:32px;min-width:0;transition:transform .5s ease-out,border-color .5s ease-out}.mini-program-card:hover{transform:translateY(-3px)}.mini-program-entry{min-width:0}.mini-program-card-heading{display:flex;align-items:center;justify-content:space-between;gap:24px;margin-bottom:24px}.mini-program-icon{display:grid;place-items:center;width:56px;height:56px;border:1px solid var(--line);border-radius:16px;color:var(--mint);background:var(--bg)}.mini-program-icon svg{display:block;width:32px;height:32px}.mini-program-card h3{font-size:1.5rem;line-height:1.5;margin:0 0 12px;font-weight:600}.mini-program-description{color:var(--muted);line-height:1.8;min-height:0;margin:0}.mini-program-name{display:grid;gap:8px;margin-bottom:24px}.mini-program-name>span{font-size:.8125rem;color:var(--muted)}.mini-program-name input{width:100%;min-width:0;border:1px solid var(--line);border-radius:12px;padding:14px 16px;background:var(--bg);color:var(--ink);font:inherit;line-height:1.5}.mini-program-name input:focus-visible{outline:2px solid var(--mint);outline-offset:3px}.mini-program-actions{display:flex;align-items:center;flex-wrap:wrap;gap:16px 24px}.mini-program-help{display:inline-flex;gap:8px;align-items:center;color:var(--mint);padding:10px 0;border:0;background:none;font:inherit;font-size:.875rem;cursor:pointer}.mini-program-help:hover{opacity:.8}.mini-program-feedback{color:var(--mint);font-size:.875rem;line-height:1.8;margin:16px 0 0;overflow-wrap:anywhere}.mini-program-dialog{width:512px;max-width:calc(100vw - 32px);max-height:calc(100svh - 32px);padding:32px;border:1px solid var(--line);border-radius:24px;background:var(--bg);color:var(--ink);overflow:auto}.mini-program-dialog::backdrop{background:rgba(8,16,34,.65)}.mini-guide-heading{display:flex;align-items:center;justify-content:space-between;gap:24px;margin-bottom:24px}.mini-guide-heading h2{font-size:1.5rem;line-height:1.4;margin:0}.mini-guide-heading button{padding:8px 16px;min-height:40px;border:1px solid var(--line);border-radius:12px;background:var(--surface);color:var(--ink);font:inherit;font-size:.875rem;cursor:pointer}.mini-guide-intro{color:var(--muted);line-height:1.8;margin:0 0 24px}.mini-guide-steps{padding-left:24px;color:var(--muted);line-height:1.8;margin:0 0 32px}.mini-guide-steps li+li{margin-top:12px}.mini-program-dialog .button{min-height:48px}.mini-program-card .button:disabled,.mini-program-dialog .button:disabled{opacity:.65;cursor:wait}html:has(.mini-program-dialog[open]){overflow:hidden}
@media(max-width:760px){.mini-program-section{padding-bottom:48px;scroll-margin-top:96px}.mini-program-grid{grid-template-columns:1fr;gap:24px}.mini-program-card{padding:24px;grid-template-columns:1fr;gap:24px}.mini-program-heading{margin-bottom:24px}.mini-program-description{min-height:0}.mini-program-card-heading{margin-bottom:16px}.mini-program-actions{gap:12px 16px}.mini-program-dialog{padding:24px}.mini-guide-heading{gap:16px}.mini-guide-heading h2{font-size:1.25rem}.mini-program-help{min-height:40px}}
@media(prefers-reduced-motion:reduce){.mini-program-card{transition:none}.mini-program-card:hover{transform:none}}
/* Noto Sans SC supplement; same official source and SIL OFL as the main subset. */
@font-face{font-family:'Noto Sans SC';src:url('/assets/NotoSansSC-mini-programs-supplement.ttf?v=wechat-share-20261008') format('truetype');font-weight:400 800;font-display:swap;unicode-range:U+52A9,U+53E3,U+641C,U+6D88,U+6FB3,U+7C98,U+8D34}

/* Inner pages: one subject, one visual. Shared spacing, selected brand palette. */
.page-intro.page-intro-rich,
.projects-page .page-intro.page-intro-rich {
  display: grid; grid-template-columns: minmax(0,.95fr) minmax(0,1.05fr);
  align-items: center; gap: 64px; padding-block: 48px; margin-bottom: 48px;
}
.page-intro-copy { min-width: 0; }
.page-intro-copy > .eyebrow { font-size: .8125rem; letter-spacing: .12em; line-height: 1.8; }
.page-intro-rich h1 { font-size: clamp(2rem,3.2vw,3.125rem); line-height: 1.5; margin-top: 24px; }
.page-intro-rich .lead { max-width: 480px; margin-top: 24px; font-size: 1rem; line-height: 1.9; }
.page-intro-rich .actions { margin-top: 24px; }
.intro-milestones { display: flex; gap: 48px; padding-top: 24px; margin: 32px 0 0; border-top: 1px solid var(--line); max-width: 352px; }
.intro-milestones > div { flex: 1; }
.intro-milestones dt { font: 500 1.75rem/1.2 Outfit,sans-serif; color: var(--ink); }
.intro-milestones dd { margin: 8px 0 0; font-size: .8125rem; color: var(--muted); }
.intro-visual { min-width: 0; width: 100%; margin: 0; overflow: hidden; border: 1px solid var(--line); border-radius: 24px; background: var(--surface); }
.intro-photo-window { aspect-ratio: 16 / 11; overflow: hidden; }
.intro-photo-window img { width: 100%; height: 100%; object-fit: cover; filter: none; opacity: 1; transition: transform 600ms ease-out; }
.intro-photo:hover .intro-photo-window img { transform: scale(1.025); }
.intro-visual-caption { display: flex; align-items: center; justify-content: space-between; gap: 24px; padding: 24px; border-top: 1px solid var(--line); }
.intro-visual-caption > div { min-width: 0; }
.intro-visual-caption span { display: block; font-size: .75rem; line-height: 1.7; color: var(--muted); }
.intro-visual-caption strong { display: block; margin-top: 4px; font-size: .9375rem; line-height: 1.5; font-weight: 500; color: var(--ink); }
.intro-visual-link { display: inline-flex; gap: 8px; align-items: center; padding: 8px 0; border: 0; background: none; font: inherit; font-size: .8125rem; line-height: 1.5; color: var(--cyan); flex-shrink: 0; cursor: pointer; }
.intro-visual-link svg { width: 20px; height: 20px; flex-shrink: 0; transition: translate 400ms ease-out; }
.intro-visual-link:hover svg { translate: 3px 0; }
.intro-visual-top { display: flex; align-items: center; justify-content: space-between; gap: 16px; padding: 24px 24px 0; font-size: .75rem; line-height: 1.7; color: var(--muted); }
.intro-products .intro-visual-top { background: var(--surface); color: var(--muted); }
.intro-app .intro-app-stage { background: var(--bg); }
.intro-product-pair { display: grid; grid-template-columns: .7fr 1fr; gap: 24px; align-items: end; padding: 24px 32px; background: var(--surface); }
.intro-product-pair > a { display: flex; flex-direction: column; align-items: center; min-width: 0; color: var(--ink); }
.intro-product-pair img { height: 256px; width: 100%; object-fit: contain; filter: none; transition: transform 500ms ease-out; }
.intro-product-pair > a:hover img { transform: translateY(-3px); }
.intro-product-pair a > span { font-family: Outfit,sans-serif; font-size: 1.5rem; line-height: 1.3; padding-top: 16px; }
.intro-product-pair small { font-size: .8125rem; color: var(--muted); }
.intro-app-stage { display: flex; align-items: center; justify-content: center; gap: 48px; min-height: 352px; padding: 24px 32px; }
.intro-app-phone { width: 148px; aspect-ratio: 190 / 388; overflow: hidden; position: relative; flex-shrink: 0; border-radius: 16px; background: #FFFFFF; }
.intro-app-phone img { position: absolute; width: 617%; max-width: none; height: auto; left: -21%; top: -1%; filter: none; }
.intro-app-journey { list-style: none; margin: 0; padding: 0; display: flex; flex-direction: column; gap: 40px; font-size: .875rem; color: var(--ink); }
.intro-app-journey li { display: flex; align-items: center; gap: 16px; position: relative; }
.intro-app-journey svg { width: 24px; height: 24px; color: var(--cyan); flex-shrink: 0; }
.intro-app-journey li:not(:last-child)::after { content: ''; position: absolute; top: 32px; left: 12px; height: 24px; border-left: 1px solid var(--line); }
.intro-platform-tabs { display: flex; gap: 8px; margin: 24px 24px 0; }
.intro-platform-tabs button { flex: 1; padding: 8px; min-height: 44px; border: 1px solid transparent; border-radius: 12px; background: none; color: var(--muted); font: inherit; font-size: .8125rem; cursor: pointer; }
.intro-platform-tabs button[aria-selected=true] { color: var(--cyan); border-color: var(--line); background: var(--bg); }
.intro-platform-tabs button:hover { color: var(--cyan); }
.intro-platform-panel { padding: 24px; }
.intro-platform-panel:not([hidden]) { animation: intro-screen-enter 450ms ease-out; }
.intro-platform-screen { position: relative; width: 100%; aspect-ratio: 408 / 196; overflow: hidden; border: 1px solid var(--line); border-radius: 12px; background: #FFFFFF; }
.intro-platform-screen img { position: absolute; left: -5.4%; top: 0; width: 111.52%; height: auto; max-width: none; filter: none; transform: translateY(-67.2868%); }
.intro-platform-screen.is-devices img { transform: translateY(-2.1705%); }
.intro-platform-screen.is-orders img { transform: translateY(-34.4186%); }
.intro-platform .intro-visual-caption { padding-top: 24px; }
:lang(en) .page-intro-rich h1 { font-size: clamp(2.25rem,3.3vw,3.125rem); line-height: 1.22; }
:lang(en) .intro-visual-caption { align-items: flex-start; }
:lang(en) .intro-visual-link { max-width: 144px; }
@keyframes intro-screen-enter { from { opacity: .55; } to { opacity: 1; } }
@media (max-width:1100px) {
  .page-intro.page-intro-rich,.projects-page .page-intro.page-intro-rich { gap: 32px; }
  .intro-visual-caption { gap: 16px; padding: 24px; flex-wrap: wrap; }
  .intro-visual-link { padding: 0; }
  .intro-visual-caption > div { flex: 1 1 200px; }
  .intro-app-stage { gap: 32px; padding-inline: 24px; }
  .intro-app-phone { width: 136px; }
  .intro-product-pair { padding-inline: 24px; gap: 16px; }
  .intro-product-pair img { height: 224px; }
}
@media (max-width:760px) {
  .page-intro.page-intro-rich,.projects-page .page-intro.page-intro-rich { grid-template-columns: minmax(0,1fr); gap: 32px; padding-block: 24px 32px; margin-bottom: 32px; }
  .page-intro-rich h1 { font-size: clamp(1.75rem,7.5vw,2.5rem); margin-top: 16px; }
  .page-intro-rich .lead { margin-top: 16px; font-size: .9375rem; }
  .page-intro-copy > .eyebrow { font-size: .75rem; }
  .intro-milestones { margin-top: 24px; padding-top: 16px; gap: 32px; max-width: none; }
  .intro-milestones dt { font-size: 1.5rem; }
  .intro-visual-caption { padding: 24px; gap: 16px; }
  .intro-photo-window { aspect-ratio: 16 / 10; }
  .intro-visual-caption strong { font-size: .875rem; }
  .intro-app-stage { min-height: 296px; padding: 24px; gap: 32px; }
  .intro-app-phone { width: 120px; }
  .intro-app-journey { font-size: .8125rem; gap: 32px; }
  .intro-app-journey li { gap: 12px; }
  .intro-app-journey li:not(:last-child)::after { height: 16px; }
  .intro-product-pair img { height: 200px; }
  .intro-product-pair a > span { font-size: 1.375rem; }
  .intro-platform-tabs { margin-top: 16px; gap: 4px; }
  .intro-platform-tabs button { padding: 8px 4px; font-size: .75rem; }
  .intro-platform-panel { padding: 16px 24px 24px; }
  :lang(en) .page-intro-rich h1 { font-size: clamp(2rem,8vw,2.5rem); }
  :lang(en) .intro-app-journey { max-width: 136px; }
  :lang(en) .intro-platform-tabs button { font-size: .6875rem; line-height: 1.4; }
}
@media (max-width:360px) {
  .intro-app-stage { gap: 24px; padding-inline: 16px; }
  .intro-app-phone { width: 104px; }
  .intro-product-pair { padding-inline: 16px; gap: 8px; }
  .intro-product-pair a > span { font-size: 1.125rem; }
}
@media (prefers-reduced-motion:reduce) {
  .intro-photo-window img,.intro-product-pair img,.intro-visual-link svg { transition: none; }
  .intro-platform-panel:not([hidden]) { animation: none; }
  .intro-photo:hover .intro-photo-window img,.intro-product-pair > a:hover img { transform: none; }
  .intro-visual-link:hover svg { translate: none; }
}

/* Inner-page copy, same Noto Sans SC source and SIL OFL. */
@font-face{font-family:'Noto Sans SC';src:url('/assets/NotoSansSC-inner-pages-supplement.ttf') format('truetype');font-weight:400 800;font-display:swap;unicode-range:U+6EA7}

/* Region-specific marketing and catalogue detail pages share the approved palettes. */
.landing-photo.is-product { background: var(--surface); padding: 24px 32px 48px; }
.landing-photo.is-product img { object-fit: contain; max-width: 360px; margin-inline: auto; }
.landing-photo.is-product .landing-photo-tag { color: var(--muted); background: transparent; padding: 0; }
.home-case-location { display: block; margin-top: 16px; color: var(--muted); font-size: .8125rem; }
.home-cases .home-case-location + h3 { margin-top: 8px; }
.oem-product-pair { display: grid; grid-template-columns: 1fr 1fr; gap: 24px; align-items: end; min-width: 0; }
.oem-product-pair a { display: grid; gap: 16px; text-align: center; color: var(--muted); font-size: .875rem; }
.oem-product-pair img { width: 100%; height: 280px; min-height: 0; object-fit: contain; background: transparent; }
.product-more-details { display: inline-flex; align-items: center; gap: 8px; }
.product-more-details svg, .catalogue-spec-group summary svg { width: 20px; height: 20px; flex-shrink: 0; fill: none; stroke: currentColor; stroke-width: 2; stroke-linecap: round; stroke-linejoin: round; }
.product-summary { margin-top: 24px; color: var(--muted); font-size: 1rem; line-height: 1.8; }
.product-detail > div { min-width: 0; }
.product-detail .power-display { overflow-wrap: anywhere; }
.product-detail-jumps { display: flex; flex-wrap: wrap; gap: 24px; margin-top: 32px; font-size: .875rem; color: var(--muted); }
.product-detail-jumps a { border-bottom: 1px solid var(--line); padding-block: 4px; }
.product-detail-jumps a:hover { color: var(--cyan); }
.catalogue-feature-grid { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); gap: 32px; }
.catalogue-feature-grid article { padding: 32px; border: 1px solid var(--line); border-radius: 24px; background: var(--surface); }
.catalogue-feature-grid h3 { font-size: 1.25rem; line-height: 1.5; margin-top: 16px; }
.catalogue-feature-grid p { color: var(--muted); font-size: .875rem; line-height: 1.9; margin-top: 16px; }
.catalogue-spec-groups { display: grid; gap: 16px; }
.catalogue-spec-group { border: 1px solid var(--line); border-radius: 24px; overflow: hidden; background: var(--surface); }
.catalogue-spec-group summary { display: flex; align-items: center; gap: 16px; padding: 24px 32px; cursor: pointer; font-size: 1.125rem; list-style: none; color: var(--ink); }
.catalogue-spec-group summary::-webkit-details-marker { display: none; }
.catalogue-spec-group summary > span:first-child { margin-right: auto; }
.catalogue-spec-count { color: var(--muted); font-size: .8125rem; white-space: nowrap; }
.catalogue-spec-group summary svg { transition: transform 400ms ease-out; }
.catalogue-spec-group[open] summary svg { transform: rotate(180deg); }
.catalogue-spec-group summary:focus-visible { outline: 2px solid var(--cyan); outline-offset: -4px; border-radius: 24px; }
.catalogue-spec-group .spec-table { border: 0; border-top: 1px solid var(--line); border-radius: 0; margin: 0; background: var(--bg); }
.catalogue-spec-group table { width: 100%; table-layout: fixed; border-collapse: collapse; }
.catalogue-spec-group th { width: 36%; }
.catalogue-spec-group th, .catalogue-spec-group td { padding: 16px 32px; text-align: left; overflow-wrap: anywhere; vertical-align: top; font-size: .9375rem; line-height: 1.8; }
.catalogue-spec-group tr:last-child > * { border-bottom: 0; }
.catalogue-market-note { margin-top: 16px; padding-left: 16px; border-left: 1px solid var(--line); color: var(--muted); font-size: .875rem; line-height: 1.9; }
.project-region-controls { margin: 0 0 24px; }
.form-grid .form-full, .form-grid label:has(input[name="contact"]) { grid-column: 1 / -1; }
.form-grid textarea { display: block; width: 100%; min-height: 112px; margin-top: 16px; padding: 12px 16px; border: 1px solid var(--line); border-radius: 12px; color: var(--ink); font: inherit; font-size: 1rem; line-height: 1.7; resize: vertical; }
.form-grid textarea::placeholder { color: var(--muted); }
.form-grid textarea:focus { border-color: var(--cyan); }
.enquiry-product { margin-bottom: 24px; padding: 16px; border: 1px solid var(--line); border-radius: 12px; background: var(--bg); font-size: .875rem; line-height: 1.8; color: var(--ink); overflow-wrap: anywhere; }
@media (max-width: 760px) {
  .catalogue-feature-grid { grid-template-columns: 1fr; gap: 16px; }
  .catalogue-feature-grid article { padding: 24px; }
  .catalogue-detail-section { padding-block: 48px; }
  .catalogue-spec-group summary { padding: 24px; gap: 12px; font-size: 1rem; }
  .catalogue-spec-group th, .catalogue-spec-group td { padding: 16px; font-size: .8125rem; }
  .catalogue-spec-group th { width: 40%; }
  .product-detail-jumps { margin-top: 24px; }
  .oem-product-pair img { height: 224px; }
  .landing-photo.is-product { padding: 16px 24px 48px; }
}
@media (prefers-reduced-motion: reduce) {
  .catalogue-spec-group summary svg { transition: none; }
}

.product-page-intro { padding-block: 48px 32px; border-bottom: 0; }
.product-page-intro .lead { margin-top: 16px; }
.product-page-intro + .product-detail { padding-top: 0; }
.product-page-intro + .product-detail .product-detail-visual { min-height: 0; }
.product-page-intro + .product-detail .product-detail-visual img { height: 320px; }
@media (max-width: 760px) {
  .product-page-intro { padding-block: 32px; }
  .product-page-intro + .product-detail .product-detail-visual img { height: 256px; }
}

/* Homepage compliance message and map-free operations presentation. */
.landing-stats .stats-compliance strong{font-size:clamp(1.125rem,2.1vw,1.625rem);line-height:1.5;letter-spacing:-.025em}
.operations-summary>div{display:block}.operations-summary .eyebrow{display:block;margin-bottom:16px}.operations-summary h3{margin-top:0}.operations-summary p{margin-top:16px;color:var(--muted);line-height:1.8}
.platform-preview-no-map{display:grid;width:100%;max-width:none;min-width:0;justify-self:stretch;transform:none;gap:24px;align-content:center}.platform-preview-no-map>.intro-platform-screen img{position:absolute;left:-5.4%;top:0;width:111.52%;height:auto;max-width:none;object-fit:initial}

.product-information-note{margin-top:24px;max-width:1040px;font-size:.875rem;line-height:1.9;color:var(--muted)}
.site-disclaimer{margin-top:32px;padding-top:24px;border-top:1px solid var(--line);color:var(--muted);font-size:.8125rem;line-height:1.9}
.site-disclaimer summary{width:fit-content;cursor:pointer;color:var(--ink);padding:8px 0}.site-disclaimer summary:focus-visible{outline:2px solid var(--cyan);outline-offset:4px}.site-disclaimer>div{max-width:1040px}.site-disclaimer p{margin-top:16px}
.selected-power>span{white-space:nowrap}

.selected-power .power-range-end{font:inherit;color:inherit;letter-spacing:inherit;margin-left:10px}

/* Temporary company text identity; the retired graphic logo is not rendered. */
.site-header .brand,.site-footer .brand{display:flex;align-items:center;gap:0}.company-wordmark{display:flex;flex-direction:column;align-items:flex-start;gap:4px;white-space:nowrap;color:var(--ink)}
.brand .company-wordmark strong,.company-wordmark>strong{display:block;margin:0;font-family:'Noto Sans SC','Microsoft YaHei',sans-serif;font-size:1.5rem;font-weight:700;line-height:1.25;letter-spacing:.08em;color:var(--ink)}
.brand .company-wordmark small,.company-wordmark>small{display:block;margin:0;font-family:Outfit,'Noto Sans SC',sans-serif;font-size:.625rem;line-height:1.5;letter-spacing:.1em;color:var(--muted)}
.brand-panel>.company-wordmark{opacity:1;margin:0 0 24px;width:100%}.brand-panel .company-wordmark>strong{font-size:2rem;line-height:1.4}.brand-panel .company-wordmark>small{font-size:.75rem}
@media(max-width:520px){.site-header .company-wordmark strong{font-size:1.25rem}.site-header .company-wordmark small{font-size:.5625rem;letter-spacing:.07em}}

/* Compact three-field enquiry panel. */
.enquiry-section{display:block;padding-block:64px 80px}.enquiry-panel{display:grid;grid-template-columns:minmax(0,.9fr) minmax(0,1.1fr);gap:48px;padding:40px;border:1px solid var(--line);border-radius:16px;background:var(--surface)}
.enquiry-copy{display:flex;flex-direction:column;min-width:0;padding-right:40px;border-right:1px solid var(--line)}
.enquiry-copy .industrial-heading{display:block!important;margin:0}.enquiry-copy .industrial-heading .eyebrow{font-size:.75rem;letter-spacing:.14em;margin-bottom:24px}.enquiry-copy .industrial-heading h2{font-size:clamp(1.875rem,3vw,2.5rem);line-height:1.45;letter-spacing:-.025em}.enquiry-copy .industrial-heading p{font-size:.9375rem;line-height:1.9;margin-top:20px;max-width:310px}
.enquiry-direct{display:flex;align-items:center;gap:16px;margin-top:auto;padding-top:40px;min-width:0;color:var(--ink);text-decoration:none}.enquiry-contact-icon{display:grid;place-items:center;width:40px;height:40px;flex:none;border:1px solid var(--line);border-radius:10px}.enquiry-direct svg{width:20px;height:20px;fill:none;stroke:currentColor;stroke-width:1.75;stroke-linecap:round;stroke-linejoin:round}.enquiry-direct>span:nth-child(2){min-width:0}.enquiry-direct small{display:block;font-size:.75rem;line-height:1.5;color:var(--muted);margin-bottom:4px}.enquiry-direct strong{font-family:Outfit,'Noto Sans SC',sans-serif;font-size:1.0625rem;font-weight:500;overflow-wrap:anywhere}.enquiry-direct .enquiry-contact-arrow{margin-left:auto;flex:none;color:var(--cyan);transition:transform 400ms ease-out}.enquiry-direct:hover .enquiry-contact-arrow{transform:translateX(3px)}
.enquiry-panel .enquiry-form{min-width:0;margin:0;padding:0;border:0;border-radius:0;background:transparent;box-shadow:none}.enquiry-panel .form-grid{grid-template-columns:1fr;gap:24px}.enquiry-panel .form-grid label{grid-column:1;min-width:0}.enquiry-field-label{display:flex;align-items:center;gap:12px;color:var(--ink);font-size:.875rem}.enquiry-field-label>span{font-family:Outfit,sans-serif;font-size:.6875rem;letter-spacing:.04em;color:var(--muted)}
.enquiry-panel .form-grid input,.enquiry-panel .form-grid select{margin-top:8px;min-height:48px;padding:8px 0 12px;border:0;border-bottom:1px solid var(--line);border-radius:0;background:transparent;font-size:1rem;line-height:1.5;color:var(--ink);transition:border-color 300ms ease-out}.enquiry-panel .form-grid input::placeholder{color:var(--muted);opacity:1}.enquiry-panel .form-grid input:focus,.enquiry-panel .form-grid select:focus{outline:none;border-bottom-color:var(--cyan);box-shadow:0 1px 0 var(--cyan)}.enquiry-panel .form-grid input:user-invalid{border-bottom-color:#F2425B}.enquiry-panel .form-grid select option{background:var(--bg);color:var(--ink)}
.enquiry-panel .form-bottom{display:flex;flex-direction:column;align-items:stretch;gap:12px;margin-top:32px}.enquiry-panel .form-bottom .button{display:flex;align-items:center;justify-content:space-between;width:100%;margin:0;min-height:52px;border-radius:8px;padding:12px 20px}.enquiry-panel .form-bottom .button svg{width:20px;height:20px;fill:none;stroke:currentColor;stroke-width:1.75;stroke-linecap:round;stroke-linejoin:round}.enquiry-panel .form-bottom p{margin:0;text-align:center;color:var(--muted);font-size:.75rem;line-height:1.7}
[data-theme="dark"] .enquiry-panel .form-grid input,[data-theme="dark"] .enquiry-panel .form-grid select{border-bottom-color:rgba(245,247,250,.24)}[data-theme="dark"] .enquiry-panel .form-grid input:focus,[data-theme="dark"] .enquiry-panel .form-grid select:focus{border-bottom-color:var(--cyan)}
@media(max-width:980px){.enquiry-panel{gap:32px;padding:32px}.enquiry-copy{padding-right:24px}}
@media(max-width:760px){.enquiry-section{padding-block:48px 64px}.enquiry-panel{grid-template-columns:1fr;gap:32px;padding:24px;border-radius:12px}.enquiry-copy{padding-right:0;padding-bottom:24px;border-right:0;border-bottom:1px solid var(--line)}.enquiry-copy .industrial-heading{margin-bottom:0!important}.enquiry-copy .industrial-heading .eyebrow{margin-bottom:16px}.enquiry-copy .industrial-heading h2{font-size:1.75rem;line-height:1.45}.enquiry-copy .industrial-heading h2 br{display:none}.enquiry-copy .industrial-heading p{margin-top:12px;font-size:.875rem;max-width:none}.enquiry-direct{padding-top:24px}.enquiry-panel .form-grid{gap:20px}.enquiry-panel .form-bottom{margin-top:24px}}
@media(prefers-reduced-motion:reduce){.enquiry-direct .enquiry-contact-arrow,.enquiry-panel .form-grid input,.enquiry-panel .form-grid select{transition:none}}

/* Enquiry privacy notice: remains a disclosure, not another input field. */
.enquiry-privacy{margin-top:20px;color:var(--muted);font-size:.8125rem;line-height:1.85}
.enquiry-privacy summary{width:fit-content;cursor:pointer;color:var(--ink);padding:4px 0;text-decoration:underline;text-underline-offset:4px}
.enquiry-privacy summary:focus-visible{outline:2px solid var(--cyan);outline-offset:4px}
.enquiry-privacy p{margin-top:12px;text-align:left}
.site-disclaimer p strong{color:var(--ink);font-weight:600}

/* Equipment, operations and driver access: equal-weight, linked service cards. */
.ecosystem-cards{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:24px}
.ecosystem-card{min-width:0;display:flex;flex-direction:column;padding:28px;border:1px solid var(--line);border-radius:12px;background:var(--surface);color:var(--ink);text-decoration:none;transition:border-color 180ms ease,background-color 180ms ease,transform 180ms ease}
.ecosystem-card-top{display:flex;align-items:center;justify-content:space-between;gap:16px;margin-bottom:28px}
.ecosystem-card-top>span{font-size:.6875rem;letter-spacing:.08em;color:var(--muted)}
.ecosystem-icon{width:40px;height:40px;flex-shrink:0;fill:none;stroke:var(--cyan);stroke-width:1.4;stroke-linecap:round;stroke-linejoin:round}
.ecosystem-card h3{font-size:1.5rem;line-height:1.4;color:var(--ink);font-weight:600;margin:0 0 12px}
.ecosystem-card>p{font-size:.9375rem;line-height:1.8;color:var(--muted);margin:0 0 28px;flex:1}
.ecosystem-card-link{display:flex;align-items:center;justify-content:space-between;gap:16px;padding-top:18px;border-top:1px solid var(--line);color:var(--cyan);font-size:.8125rem;font-weight:600}
.ecosystem-card-link svg{width:20px;height:20px;fill:none;stroke:currentColor;stroke-width:1.6;transition:transform 180ms ease}
.ecosystem-card:hover{border-color:var(--cyan);transform:translateY(-3px)}
.ecosystem-card:hover .ecosystem-card-link svg{transform:translateX(3px)}
.ecosystem-card:focus-visible{outline:2px solid var(--cyan);outline-offset:4px}
@media(max-width:760px){.ecosystem-cards{grid-template-columns:1fr;gap:16px}.ecosystem-card{padding:24px}.ecosystem-card-top{margin-bottom:20px}.ecosystem-card h3{font-size:1.375rem}.ecosystem-card>p{margin-bottom:24px}}
@media(prefers-reduced-motion:reduce){.ecosystem-card,.ecosystem-card-link svg{transition:none}.ecosystem-card:hover,.ecosystem-card:hover .ecosystem-card-link svg{transform:none}}

/* Theme choice: system is the default; explicit light/dark remain available. */
.theme-picker{position:relative;flex-shrink:0}
.theme-picker>summary{list-style:none}
.theme-picker>summary::-webkit-details-marker{display:none}
.theme-toggle .theme-auto{display:none}
[data-theme-preference="system"] .theme-toggle :is(.theme-moon,.theme-sun){display:none}
[data-theme-preference="system"] .theme-toggle .theme-auto{display:block}
.theme-options{position:absolute;top:calc(100% + 10px);right:0;z-index:50;min-width:156px;padding:6px;border:1px solid var(--line);border-radius:12px;background:var(--bg);box-shadow:0 12px 28px rgba(8,16,34,.15)}
.theme-options button{display:flex;align-items:center;justify-content:space-between;gap:24px;width:100%;min-height:44px;padding:10px 12px;border:0;border-radius:6px;background:transparent;color:var(--ink);font:inherit;font-size:.875rem;white-space:nowrap;text-align:left;cursor:pointer}
.theme-options button span{visibility:hidden;color:var(--cyan)}
.theme-options button[aria-pressed="true"]{background:var(--control);color:var(--cyan)}
.theme-options button[aria-pressed="true"] span{visibility:visible}
.theme-options button:hover{background:var(--hover-surface)}
.theme-options button:focus-visible,.theme-picker summary:focus-visible{outline:2px solid var(--cyan);outline-offset:2px}

.footer-bottom .icp-filing{color:var(--muted);font-size:inherit;line-height:1.8;text-decoration:none;overflow-wrap:anywhere}.footer-bottom .icp-filing:hover{color:var(--cyan);text-decoration:underline;text-underline-offset:4px}.footer-bottom .icp-filing:focus-visible{outline:2px solid var(--cyan);outline-offset:4px}
