/* Shared design system — extend this file for later page steps. */
:root {
  --green:#00a651; --green-dark:#007a3d; --green-on-dark:#59d184;
  --brand-blue:#07589f; --green-light:#e9f7f0; --green-ring:rgba(0,166,81,.18);
  --navy:#0b1b36; --navy-700:#132a52; --navy-900:#07122a;
  --ink:#0b1b36; --body:#4a5568; --muted:#596b82; --white:#fff;
  --surface:#fff; --bg-alt:#f4f8fb; --line:#e2e8f0; --line-soft:#edf2f7;
  --r-sm:6px; --r:10px; --r-lg:16px; --r-pill:999px;
  --sh-sm:0 1px 2px rgba(11,27,54,.06);
  --sh-md:0 4px 16px rgba(11,27,54,.08);
  --sh-lg:0 16px 40px rgba(11,27,54,.12);
  --sh-green:0 8px 20px rgba(0,166,81,.28);
  --s-1:4px; --s-2:8px; --s-3:12px; --s-4:16px; --s-5:20px; --s-6:24px;
  --s-8:32px; --s-10:40px; --s-12:48px; --s-16:64px; --s-20:80px; --s-24:96px;
  --container:1440px; --gutter:clamp(16px,5vw,72px); --header-h:68px; --overlap:24px;
  --section-y:clamp(24px,2.8vw,40px);
  --ease:cubic-bezier(.22,.61,.36,1); --dur:.25s; --dur-drawer:.3s; --dur-media:.5s;
  --font:Inter,system-ui,-apple-system,"Segoe UI",sans-serif;
  --text-xs:.75rem; --text-meta:.8125rem; --text-sm:.875rem; --text-button:.9375rem;
  --text-lead:1.0625rem; --text-cta:1.75rem;
  --touch:44px; --icon:24px; --chip:44px; --chip-large:64px; --chip-icon:22px;
  --emblem:40px; --play:56px; --social-tile:32px; --social-row:176px;
  --drawer-width:360px; --dialog-width:600px; --rule-width:48px; --rule-height:3px;
  --white-muted:rgba(255,255,255,.78); --white-line:rgba(255,255,255,.75);
  --white-hover:rgba(255,255,255,.12); --white-hairline:rgba(255,255,255,.08);
  --backdrop:rgba(7,18,42,.6);
  --cta-overlay:linear-gradient(90deg,rgba(7,18,42,.92),rgba(7,18,42,.62));
  --logo-gradient:linear-gradient(135deg,var(--green) 15%,var(--navy) 95%);
  --linkedin:#0a66c2; --facebook:#1877f2; --youtube:#f00; --whatsapp:#25d366;
  --esg-social:#e7f2ff; --esg-social-ink:#07589f;
  --esg-governance:#eee8ff; --esg-governance-ink:#59349c;
  --hero-min:clamp(300px,28vw,360px); --hero-home-min:clamp(360px,32vw,420px);
  --hero-overlay:linear-gradient(100deg,rgba(11,27,54,.95) 0%,rgba(11,27,54,.86) 32%,rgba(11,27,54,.72) 70%,rgba(11,27,54,.10) 100%);
  --hero-overlay-compact:linear-gradient(100deg,rgba(11,27,54,.96),rgba(11,27,54,.82));
  --stats-overlay:linear-gradient(90deg,rgba(11,27,54,.93),rgba(11,27,54,.80));
  --hero-text:rgba(255,255,255,.88); --hero-eyebrow:rgba(255,255,255,.80);
  --hero-caption-bg:rgba(11,27,54,.86);
  --hero-separator:rgba(255,255,255,.35); --stats-divider:rgba(255,255,255,.14);
  --project-min:160px; --project-max:200px; --carousel-tile:34px; --carousel-offset:17px; --reason-icon:28px;
  --partner-siemens:#009999; --partner-abb:#ed1c24; --partner-schneider:#009530;
  --partner-cat:#111; --partner-cat-accent:#ffcd11; --partner-hyundai:#002c5f;
  --partner-sungrow:#ff6500; --partner-growatt:#5eac25; --partner-byd:#e60012;
  --partner-huawei:#c7000b; --partner-trina:#007ac2;
  --mvv-icon:56px; --mvv-glyph:26px; --about-point-icon:36px;
  --timeline-thumb:72px; --timeline-card:240px; --timeline-dot:10px; --timeline-connector:18px;
  --certification-blue:#07589f; --certification-red:#b42318;
  --progress-overlay:linear-gradient(180deg,rgba(11,27,54,.55),rgba(11,27,54,.92));
  --detail-icon:26px; --approach-icon:34px; --approach-connector:28px;
  --capabilities-overlay:linear-gradient(90deg,rgba(11,27,54,.96) 0%,rgba(11,27,54,.86) 45%,rgba(11,27,54,.75) 100%);
  --capabilities-divider:rgba(255,255,255,.16); --capabilities-caption:rgba(255,255,255,.72);
  --hero-compact-min:clamp(220px,20vw,260px); --hero-badge:38px; --hero-badge-border:rgba(255,255,255,.45);
  --filter-width:clamp(220px,20vw,260px); --checkbox:18px; --product-surface:#f8fafc;
  --partner-longi:#e60012; --brand-row-item:120px;
  --project-pill:40px; --project-chevron:32px;
  --project-power:#07589f; --project-solar:#007a3d; --project-substations:#653c91;
  --project-generators:#a33b0c; --project-bess:#07589f; --project-automation:#006878;
  --project-consultancy:#a32323; --project-industrial:#364b6b;
  --service-circle:64px; --service-process-icon:28px; --service-benefit-icon:36px;
  --standard-iec:#004b86; --standard-ieee:#132a52; --standard-bida:#526580;
  --standards-overlay:linear-gradient(90deg,rgba(11,27,54,.96),rgba(11,27,54,.72));
  --standards-text:rgba(255,255,255,.80);
  --sustainability-social-bg:#e6f0fb; --sustainability-social-ink:#1877f2;
  --sustainability-governance-bg:#efe8fb; --sustainability-governance-ink:#7c3aed;
  --sustainability-esg-overlay:linear-gradient(90deg,rgba(7,18,42,.95),rgba(7,18,42,.80));
  --sustainability-esg-text:rgba(255,255,255,.80); --sustainability-story-text:rgba(255,255,255,.70);
  --esg-bullet:6px; --esg-row-gap:10px;
  --career-benefit-icon:30px; --career-process-circle:52px; --career-step-number:26px;
  --career-pin:14px; --career-badge-y:3px; --career-badge-x:10px; --text-tiny:.6875rem;
  --career-callout-line:rgba(0,166,81,.2);
  --error:#b42318; --contact-hero-min:340px; --contact-chip:48px;
  --contact-social-tile:36px; --contact-social-row:220px; --form-control:46px; --form-submit:48px;
  --instagram:linear-gradient(45deg,#f58529,#dd2a7b,#8134af);
  --office-overlay:linear-gradient(180deg,rgba(11,27,54,0) 20%,rgba(11,27,54,.82) 45%,rgba(11,27,54,.96) 100%);
  --office-caption:rgba(255,255,255,.82); --map-min:200px; --map-mobile-min:300px;
}

/* Foundations and layout */
*,*::before,*::after { box-sizing:border-box; }
html { -webkit-text-size-adjust:100%; scroll-behavior:smooth; scroll-padding-top:calc(var(--header-h) + var(--s-4)); }
body { margin:0; font:400 16px/1.7 var(--font); color:var(--body); background:var(--white); -webkit-font-smoothing:antialiased; }
body.has-modal { overflow:hidden; }
h1,h2,h3,p { margin:0; }
h1,.h1 { font-size:clamp(2rem,1.15rem + 2.1vw,3.25rem); font-weight:800; line-height:1.08; letter-spacing:-.02em; color:var(--ink); }
h2,.section-title { font-size:clamp(1.375rem,1rem + 1vw,2rem); font-weight:700; line-height:1.15; letter-spacing:-.01em; color:var(--ink); }
h3,.card__title { font-size:clamp(1.0625rem,1rem + .25vw,1.25rem); font-weight:700; line-height:1.3; color:var(--ink); }
h1[id],h2[id],h3[id],[tabindex="-1"] { scroll-margin-top:calc(var(--header-h) + var(--s-4)); }
a { color:inherit; text-decoration:none; }
button,input,select,textarea { font:inherit; }
button { cursor:pointer; }
button:disabled { cursor:not-allowed; opacity:.5; }
svg { display:block; flex-shrink:0; }
img { max-width:100%; }
[hidden] { display:none!important; }
:focus-visible { outline:3px solid var(--green-dark); outline-offset:3px; }
.container { width:100%; max-width:var(--container); margin-inline:auto; padding-inline:var(--gutter); }
.section { padding-block:var(--section-y); }
.section--alt { background:var(--bg-alt); }
.grid { display:grid; gap:var(--s-5); grid-template-columns:minmax(0,1fr); }
.grid > * { min-width:0; }
.stack { display:flex; flex-direction:column; gap:var(--s-5); }
.eyebrow { font-size:var(--text-xs); font-weight:600; letter-spacing:.14em; text-transform:uppercase; color:var(--green-dark); }
.lead { font-size:var(--text-lead); max-width:62ch; }
small,.meta { font-size:var(--text-meta); color:var(--muted); }
.accent { color:var(--green-dark); }
.hero .accent,.cta-band .accent { color:var(--green-on-dark); }
.sr-only { position:absolute; width:1px; height:1px; padding:0; margin:-1px; overflow:hidden; clip-path:inset(50%); white-space:nowrap; border:0; }
.skip-link { position:fixed; top:var(--s-2); left:var(--s-4); z-index:300; padding:var(--s-3) var(--s-5); border-radius:var(--r-sm); background:var(--white); color:var(--ink); transform:translateY(-150%); }
.skip-link:focus { transform:translateY(0); }

/* Section headings */
.section-head { display:flex; align-items:flex-end; justify-content:space-between; gap:var(--s-8); margin-bottom:var(--s-5); }
.section-title__rule { display:block; width:var(--rule-width); height:var(--rule-height); margin-top:var(--s-3); border-radius:2px; background:var(--green); }
.section-head__desc { max-width:46ch; margin-left:auto; font-size:var(--text-sm); color:var(--muted); }
.link-arrow { display:inline-flex; align-items:center; gap:var(--s-2); min-height:var(--touch); color:var(--green-dark); font-size:var(--text-sm); font-weight:600; }
.link-arrow svg { transition:transform var(--dur) var(--ease); }
.link-arrow:hover svg { transform:translateX(var(--s-1)); }

/* Exactly four shared button variants */
.btn { display:inline-flex; align-items:center; justify-content:center; gap:var(--s-2); min-height:46px; padding:var(--s-3) var(--s-6); max-width:100%; text-align:center; border-radius:var(--r-sm); font:600 var(--text-button)/1.2 var(--font); cursor:pointer; border:1px solid transparent; transition:background var(--dur) var(--ease),transform var(--dur) var(--ease),box-shadow var(--dur) var(--ease); }
.btn svg { transition:transform var(--dur) var(--ease); }
.btn:hover svg { transform:translateX(3px); }
.btn:focus-visible { outline:3px solid var(--green-dark); outline-offset:2px; }
.btn--primary { background:var(--green-dark); color:var(--white); }
.btn--primary:hover { background:var(--navy-700); box-shadow:var(--sh-green); transform:translateY(-1px); }
.btn--outline { background:transparent; border-color:var(--line); color:var(--ink); }
.btn--outline:hover { border-color:var(--green-dark); color:var(--green-dark); }
.btn--ghost-light { background:transparent; border-color:var(--white-line); color:var(--white); }
.btn--ghost-light:hover { background:var(--white-hover); }
.btn--play { position:relative; width:var(--play); height:var(--play); min-height:var(--play); padding:0; border-radius:50%; background:var(--white); color:var(--navy); box-shadow:var(--sh-lg); }
.btn--play svg { fill:currentColor; }
.btn--play:hover { transform:scale(1.06); }
.btn--play:hover svg { transform:none; }
.btn--play::after { content:""; position:absolute; inset:0; border:1px solid var(--white-line); border-radius:inherit; pointer-events:none; }
.btn--play:hover::after { animation:play-ring 1.5s infinite; }
@keyframes play-ring { to { transform:scale(1.55); opacity:0; } }
.icon-button { display:inline-flex; align-items:center; justify-content:center; flex-shrink:0; width:var(--touch); height:var(--touch); padding:0; border:0; border-radius:50%; color:var(--ink); background:transparent; }
.icon-button:hover { background:var(--bg-alt); color:var(--green-dark); }

/* Cards: apply card--interactive only to cards containing an action. */
.card { background:var(--surface); border:1px solid var(--line); border-radius:var(--r); overflow:hidden; transition:transform var(--dur) var(--ease),box-shadow var(--dur) var(--ease),border-color var(--dur) var(--ease); }
.card__media-wrap { overflow:hidden; }
.card__media { aspect-ratio:16/10; object-fit:cover; width:100%; height:auto; display:block; transition:transform var(--dur-media) var(--ease); }
.card__body { padding:var(--s-5); }
.card--interactive:focus-within { outline:3px solid var(--green-dark); outline-offset:3px; box-shadow:var(--sh-md); }
@media (hover:hover) {
  .card--interactive:hover { transform:translateY(-2px); box-shadow:var(--sh-md); }
  .card--interactive:hover .card__media { transform:scale(1.06); }
}
.icon-chip { display:inline-flex; align-items:center; justify-content:center; flex-shrink:0; width:var(--chip); height:var(--chip); border-radius:var(--r-sm); color:var(--green); background:var(--green-light); }
.icon-chip svg { width:var(--chip-icon); height:var(--chip-icon); }
.icon-chip--circle { border-radius:50%; border:1px solid var(--line); background:var(--white); }
.icon-chip--large { width:var(--chip-large); height:var(--chip-large); }
.icon-chip--large svg { width:var(--s-8); height:var(--s-8); }
.icon-chip--social { background:var(--esg-social); color:var(--esg-social-ink); }
.icon-chip--governance { background:var(--esg-governance); color:var(--esg-governance-ink); }

/* Shared image logo and header */
.header { position:sticky; top:0; z-index:100; background:var(--white); border-bottom:1px solid var(--line-soft); transition:box-shadow var(--dur) var(--ease); }
.header--scrolled { box-shadow:var(--sh-md); border-color:transparent; }
.header__inner { display:flex; align-items:center; justify-content:space-between; min-height:var(--header-h); gap:var(--s-4); }
.brand { display:inline-flex; align-items:center; flex-shrink:0; gap:var(--s-2); color:var(--brand-blue); }
.brand__logo { display:block; width:190px; height:68px; object-fit:cover; }
.brand__emblem { display:grid; place-items:center; width:var(--emblem); height:var(--emblem); border-radius:50%; background:var(--logo-gradient); color:var(--white); }
.brand__emblem svg { width:var(--s-8); height:var(--s-8); }
.brand__text { display:flex; flex-direction:column; line-height:1.15; }
.brand__name { font-size:1.5rem; font-weight:800; letter-spacing:-.02em; }
.brand__descriptor { color:var(--green-dark); font-size:.6875rem; font-weight:600; letter-spacing:.16em; }
.brand__tagline { color:var(--muted); font-size:.5625rem; margin-top:2px; }
.header__nav { display:flex; gap:clamp(10px,1.2vw,20px); align-items:center; }
.nav__link { position:relative; display:flex; align-items:center; min-height:var(--touch); width:fit-content; color:var(--ink); font-size:var(--text-sm); font-weight:500; white-space:nowrap; }
.nav__link::after { content:""; position:absolute; bottom:0; left:50%; width:0; height:2px; background:var(--green); transform:translateX(-50%); transition:width var(--dur) var(--ease); }
.nav__link:hover,.nav__link--active { color:var(--green-dark); }
.nav__link:hover::after,.nav__link--active::after { width:100%; }
.header__actions { display:flex; align-items:center; gap:var(--s-2); }
.header__quote { white-space:nowrap; }
.header__menu { display:none; }

/* Full-height modal navigation uses the native top layer and inert background. */
.drawer { position:fixed; inset:0 0 0 auto; width:min(var(--drawer-width),100%); max-width:100%; height:100%; height:100dvh; max-height:100dvh; margin:0; padding:var(--s-6); border:0; color:var(--body); background:var(--white); }
.drawer[open] { display:flex; flex-direction:column; gap:var(--s-5); animation:drawer-in var(--dur-drawer) var(--ease); }
.drawer__head,.dialog__head { display:flex; align-items:center; justify-content:space-between; gap:var(--s-4); }
.drawer__head h2,.dialog__head h2 { font-size:1.375rem; }
.drawer__nav { display:flex; flex-direction:column; gap:var(--s-1); overflow-y:auto; min-height:0; }
.drawer__nav .nav__link { min-height:var(--touch); flex-shrink:0; }
.drawer > .btn { flex-shrink:0; }
@keyframes drawer-in { from { transform:translateX(100%); } to { transform:translateX(0); } }
dialog::backdrop { background:var(--backdrop); }

/* Shared pre-footer CTA: photo + overlay + live text. */
.cta-band { position:relative; isolation:isolate; background:var(--navy-900); color:var(--white); padding-block:var(--s-6); }
.cta-band::before { content:""; position:absolute; inset:0; z-index:-1; background:var(--cta-overlay); }
.cta-band__image { position:absolute; inset:0; z-index:-2; width:100%; height:100%; object-fit:cover; object-position:center 58%; }
.cta-band__inner { display:flex; align-items:center; justify-content:space-between; gap:var(--s-8); }
.cta-band__copy { min-width:0; }
.cta-band__title { color:var(--white); font-size:var(--text-cta); font-weight:700; line-height:1.25; }
.cta-band__copy p { color:var(--white-muted); font-size:var(--text-sm); margin-top:var(--s-1); }
.cta-band__actions { display:flex; flex-shrink:0; flex-wrap:wrap; gap:var(--s-4); }
.cta-band :focus-visible { outline-color:var(--green-on-dark); }
.footer :focus-visible { outline-color:var(--green-dark); }

/* White professional footer with clear link groups and a separate legal bar. */
.footer { padding-top:var(--s-6); background:var(--white); color:var(--body); font-size:calc(1rem - 1px); }
.footer__grid { display:grid; grid-template-columns:1fr; align-items:start; gap:var(--s-5); padding-bottom:var(--s-6); }
.footer__col { min-width:0; }
.footer__heading { position:relative; color:var(--ink); font-size:calc(var(--text-button) - 1px); font-weight:700; line-height:1.4; margin-bottom:var(--s-3); padding-bottom:var(--s-2); }
.footer__heading::after { content:""; position:absolute; bottom:0; left:0; width:32px; height:2px; border-radius:2px; background:var(--green); }
.footer__brand .brand { max-width:100%; padding:2px 8px; border-radius:var(--r-sm); background:var(--white); }
.footer__brand .brand__logo { width:190px; height:68px; }
.footer__brand p { max-width:34ch; color:var(--body); font-size:calc(var(--text-meta) - 1px); margin-top:var(--s-2); }
.footer__connect { margin-top:var(--s-4); }
.footer__lists { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:var(--s-4); }
.footer__list { list-style:none; padding:0; margin:0; }
.footer__list a { display:flex; align-items:center; min-height:var(--touch); color:var(--body); font-size:calc(var(--text-sm) - 1px); line-height:1.45; padding-block:var(--s-1); transition:color var(--dur) var(--ease),transform var(--dur) var(--ease); }
.footer__list a:hover { color:var(--green-dark); transform:translateX(2px); }
.footer__contact { color:var(--body); font-style:normal; font-size:calc(var(--text-sm) - 1px); }
.footer__contact p { display:flex; align-items:flex-start; gap:var(--s-2); margin-bottom:var(--s-2); }
.footer__contact svg { width:var(--s-5); height:var(--s-5); color:var(--green-dark); margin-top:var(--s-1); }
.footer__contact a { display:inline-flex; align-items:center; min-height:var(--touch); overflow-wrap:anywhere; }
.footer__contact p:has(a) svg { margin-top:var(--s-3); }
.footer__contact a:hover { color:var(--green-dark); }
.social { display:flex; flex-wrap:wrap; gap:0; margin-left:-6px; }
.social__button { display:grid; place-items:center; width:var(--touch); height:var(--touch); border:0; padding:0; background:transparent; border-radius:var(--r-sm); }
.social__tile { display:grid; place-items:center; width:var(--social-tile); height:var(--social-tile); color:var(--white); border-radius:var(--r-sm); transition:transform var(--dur) var(--ease); }
.social__button:hover .social__tile { transform:translateY(-2px); }
.social__tile--linkedin { background:var(--linkedin); }
.social__tile--facebook { background:var(--facebook); }
.social__tile--youtube { background:var(--youtube); }
.social__tile--whatsapp { background:var(--whatsapp); }
.footer__bottom { background:var(--white); color:var(--body); border-top:1px solid var(--line); }
.footer__bottom-inner { display:flex; flex-wrap:wrap; align-items:center; justify-content:space-between; gap:var(--s-2) var(--s-6); padding-block:var(--s-3); }
.footer__bottom small { color:inherit; }
.footer__legal { display:flex; flex-wrap:wrap; align-items:center; gap:var(--s-2); font-size:calc(var(--text-meta) - 1px); }
.footer__legal > button:not(.back-to-top) { min-height:var(--touch); border:0; padding:0; background:transparent; color:inherit; }
.footer__legal > button:hover { color:var(--ink); }
.back-to-top { position:relative; isolation:isolate; display:grid; place-items:center; width:var(--touch); height:var(--touch); border:0; padding:0; color:var(--white); background:transparent; }
.back-to-top::before { content:""; position:absolute; inset:var(--s-1); z-index:-1; border-radius:var(--r-sm); background:var(--green-dark); }
.footer__notice { padding-bottom:var(--s-4); font-size:calc(var(--text-sm) - 1px); }

/* Search, sitemap and honest unavailable-resource dialogs */
.dialog { width:min(var(--dialog-width),calc(100% - var(--s-8))); max-height:calc(100dvh - var(--s-8)); padding:var(--s-6); border:1px solid var(--line); border-radius:var(--r); background:var(--white); color:var(--body); box-shadow:var(--sh-lg); }
.dialog__head { margin-bottom:var(--s-5); }
.dialog > p { margin-bottom:var(--s-5); }
.search__label { display:block; color:var(--ink); font-size:var(--text-sm); font-weight:600; margin-bottom:var(--s-2); }
.search__input { width:100%; min-height:var(--touch); border:1px solid var(--line); border-radius:var(--r-sm); padding:var(--s-3); color:var(--ink); background:var(--white); }
.search__input::placeholder { color:var(--muted); }
#search-status { margin-block:var(--s-3); }
.search__results { list-style:none; margin:0; padding:0; display:grid; gap:var(--s-2); }
.search__result { display:flex; width:100%; align-items:center; justify-content:space-between; gap:var(--s-3); min-height:var(--touch); padding:var(--s-3); border:1px solid var(--line); border-radius:var(--r-sm); background:var(--white); color:var(--ink); text-align:left; font-size:var(--text-sm); }
.search__result:hover { background:var(--green-light); border-color:var(--green-dark); }
.search__result small { text-align:right; }
.sitemap__links { display:grid; gap:var(--s-1); }

/* Reveal is opt-in only after the observer starts successfully. */
.reveal-ready [data-reveal] { opacity:0; transform:translateY(var(--s-4)); transition:opacity var(--dur-media) var(--ease),transform var(--dur-media) var(--ease); transition-delay:calc(var(--i,0) * 60ms); }
.reveal-ready [data-reveal].is-visible { opacity:1; transform:none; }

/* Grid counts never exceed the modifier's requested number. */
@media (min-width:576px) {
  .grid--2,.grid--3,.grid--4,.grid--5,.grid--6 { grid-template-columns:repeat(2,minmax(0,1fr)); }
  .footer__grid { grid-template-columns:repeat(2,minmax(0,1fr)); }
}
@media (min-width:768px) {
  .grid--3,.grid--4,.grid--5,.grid--6 { grid-template-columns:repeat(3,minmax(0,1fr)); }
}
@media (min-width:992px) {
  .grid--4,.grid--5,.grid--6 { grid-template-columns:repeat(4,minmax(0,1fr)); }
}
@media (min-width:1200px) {
  .grid--5 { grid-template-columns:repeat(5,minmax(0,1fr)); }
  .grid--6 { grid-template-columns:repeat(6,minmax(0,1fr)); }
}
@media (min-width:1400px) {
  .footer__grid { grid-template-columns:1.2fr 1.25fr 2.05fr var(--social-row); gap:var(--s-6); }
}
/* Collapse early enough for nine readable links and the full quote action. */
@media (max-width:1399px) {
  .header__inner { flex-wrap:wrap; padding-block:var(--s-3); }
  .header__nav { order:3; width:100%; flex-wrap:wrap; }
  .header--enhanced .header__inner { flex-wrap:nowrap; padding-block:0; }
  .header--enhanced .header__nav { display:none; }
  .header--enhanced .header__menu { display:inline-flex; }
  .cta-band__inner { flex-wrap:wrap; gap:var(--s-5); }
}
@media (max-width:767px) {
  .section-head { flex-direction:column; align-items:flex-start; gap:var(--s-4); }
  .section-head__desc { margin-left:0; }
  .cta-band__inner { flex-direction:column; align-items:flex-start; }
  .cta-band__actions { flex-shrink:1; }
  .footer__bottom-inner { flex-direction:column; align-items:flex-start; }
}
@media (max-width:575px) {
  .header__quote { display:none; }
  .header__inner { gap:var(--s-2); }
  .header__actions { gap:0; }
  .brand__emblem { width:var(--s-8); height:var(--s-8); }
  .brand__emblem svg { width:var(--icon); height:var(--icon); }
  .brand__descriptor { font-size:.5625rem; }
  .brand__tagline { font-size:.5rem; }
  .cta-band__title { font-size:1.5rem; }
}
@media (prefers-reduced-motion:reduce) {
  *,*::before,*::after { animation:none!important; transition:none!important; scroll-behavior:auto!important; }
  .reveal-ready [data-reveal] { opacity:1; transform:none; }
}

/* ===== Home ===== */
/* Canonical hero: reuse this block with a page modifier on future pages. */
.hero { position:relative; isolation:isolate; min-height:var(--hero-min); display:flex; align-items:center; background:var(--navy); color:var(--white); padding-block:var(--s-8) var(--s-12); }
.hero--home { min-height:var(--hero-home-min); }
.hero::before { content:""; position:absolute; inset:0; z-index:-1; background:var(--hero-overlay); }
.hero__image { position:absolute; inset:0; z-index:-2; width:100%; height:100%; object-fit:cover; object-position:center right; }
.hero__inner { position:relative; }
.hero__copy { width:58%; }
.hero__eyebrow { display:flex; flex-wrap:wrap; align-items:center; gap:var(--s-2) var(--s-6); font-size:var(--text-xs); line-height:1.5; letter-spacing:.16em; text-transform:uppercase; color:var(--hero-eyebrow); margin-bottom:var(--s-4); }
.hero__eyebrow span + span { position:relative; }
.hero__eyebrow span + span::before { content:""; position:absolute; left:calc(-1 * var(--s-3)); top:20%; height:60%; border-left:1px solid var(--hero-separator); }
.hero__title { color:var(--white); max-width:26ch; }
.hero__text { max-width:58ch; margin-top:var(--s-4); color:var(--hero-text); font-size:var(--text-lead); line-height:1.65; }
.hero__actions { display:flex; flex-wrap:wrap; gap:var(--s-4); margin-top:var(--s-5); }
.hero__video { isolation:isolate; position:absolute; right:var(--gutter); bottom:0; display:flex; align-items:center; gap:var(--s-3); }
.hero__video::before { content:""; position:absolute; inset:calc(-1 * var(--s-2)); z-index:-1; border-radius:var(--r); background:var(--hero-caption-bg); }
.hero__video strong,.hero__video span { display:block; }
.hero__video strong { font-size:var(--text-sm); font-weight:600; }
.hero__video span { font-size:var(--text-meta); color:var(--white-muted); }
.hero :focus-visible,.stats-band :focus-visible { outline-color:var(--green-on-dark); }
.hero .btn--play:disabled { opacity:.75; }

.feature-bar { position:relative; z-index:5; display:grid; grid-template-columns:repeat(5,minmax(0,1fr)); margin:calc(-1 * var(--overlap)) 0 0; padding:var(--s-6) var(--s-5); list-style:none; background:var(--white); border-radius:var(--r); box-shadow:var(--sh-lg); }
.feature-bar__item { display:flex; align-items:center; gap:var(--s-3); padding-inline:var(--s-5); min-width:0; color:var(--ink); font-size:var(--text-button); font-weight:600; line-height:1.4; }
.feature-bar__item + .feature-bar__item { border-left:1px solid var(--line-soft); }
.feature-bar__item .icon-chip { background:var(--green-light); }
.card--business .card__media { aspect-ratio:2.4/1; }
.card--business .card__body { display:flex; align-items:center; gap:var(--s-3); padding:var(--s-3); min-height:var(--s-16); }
.card--business .card__body > svg:first-child { width:var(--chip-icon); height:var(--chip-icon); color:var(--green); }
.card--business .card__title { font-size:var(--text-sm); line-height:1.35; min-width:0; }
.card--business .card__chevron { width:var(--s-4); height:var(--s-4); margin-left:auto; color:var(--navy); transition:transform var(--dur) var(--ease); }
.card--business:hover .card__chevron { transform:translateX(3px); }
.home-about { display:grid; grid-template-columns:minmax(0,1fr) minmax(0,1.4fr); gap:var(--s-8); align-items:start; }
.home-about > * { min-width:0; }
.home-about__copy p { margin-block:var(--s-4); font-size:var(--text-sm); line-height:1.6; }
.home-reasons { margin-top:var(--s-4); gap:var(--s-3); }
.card--reason { text-align:center; padding:var(--s-4) var(--s-2); border-color:var(--line-soft); }
.card--reason > svg { width:var(--reason-icon); height:var(--reason-icon); color:var(--green); margin:0 auto var(--s-3); }
.card--reason .card__title { font-size:var(--text-sm); line-height:1.4; }
.card--reason p { margin-top:var(--s-2); font-size:var(--text-meta); line-height:1.5; color:var(--muted); }
.stats-band { position:relative; isolation:isolate; padding-block:var(--s-10); color:var(--white); background:var(--navy); }
.stats-band::before { content:""; position:absolute; inset:0; z-index:-1; background:var(--stats-overlay); }
.stats-band__image { position:absolute; inset:0; z-index:-2; width:100%; height:100%; object-fit:cover; object-position:center; }
.stats-band__grid { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); }
.stats-band__item { display:flex; align-items:center; justify-content:center; gap:var(--s-5); padding-inline:var(--s-5); min-width:0; }
.stats-band__item + .stats-band__item { border-left:1px solid var(--stats-divider); }
.stats-band__item > svg { width:var(--s-10); height:var(--s-10); }
.stats-band__number { font-size:2rem; line-height:1.2; font-weight:800; white-space:nowrap; }
.stats-band__label { font-size:var(--text-sm); color:var(--white-muted); margin-top:var(--s-1); }
.home-showcase { display:grid; grid-template-columns:minmax(0,1.55fr) minmax(0,1fr); gap:var(--s-12); }
.home-showcase > * { min-width:0; }
.home-showcase .section-head { gap:var(--s-3); align-items:flex-start; }
.home-showcase .section-title { font-size:clamp(1.125rem,1rem + .55vw,1.5rem); }
.home-showcase .link-arrow { font-size:var(--text-xs); flex-shrink:0; }
.home-showcase .link-arrow svg { width:var(--s-4); height:var(--s-4); }
.carousel { position:relative; }
.carousel__track { display:flex; gap:var(--s-3); overflow-x:auto; scroll-snap-type:x mandatory; scrollbar-width:none; }
.carousel__track::-webkit-scrollbar { display:none; }
.carousel__track:focus-visible { outline-offset:var(--s-2); }
.card--project { flex:0 0 clamp(var(--project-min),18vw,var(--project-max)); min-width:0; scroll-snap-align:start; }
.card--project:focus-visible { outline-offset:-3px; }
.card--project .card__media { aspect-ratio:1.65/1; }
.card--project .card__body { padding:var(--s-2); }
.card--project .card__title { font-size:var(--text-meta); line-height:1.35; }
.card--project p { font-size:var(--text-xs); line-height:1.4; color:var(--muted); margin-top:var(--s-1); }
.carousel__button { position:absolute; top:50%; transform:translateY(-50%); display:grid; place-items:center; width:var(--touch); height:var(--touch); padding:0; border:0; border-radius:50%; background:transparent; color:var(--ink); isolation:isolate; }
.carousel__button::before { content:""; position:absolute; z-index:-1; width:var(--carousel-tile); height:var(--carousel-tile); border-radius:50%; background:var(--white); box-shadow:var(--sh-md); }
.carousel__button--prev { left:calc(-1 * min(var(--carousel-offset),var(--gutter))); }
.carousel__button--next { right:calc(-1 * min(var(--carousel-offset),var(--gutter))); }
.carousel__button:hover { color:var(--green-dark); }
.carousel__button:disabled { cursor:default; opacity:.4; }
.card--partners { padding:var(--s-5) var(--s-3); }
.partners { display:grid; grid-template-columns:repeat(5,minmax(0,1fr)); gap:var(--s-5) var(--s-3); margin:0; padding:0; list-style:none; }
.partners__wordmark { display:flex; flex-wrap:wrap; align-items:center; justify-content:center; align-content:center; min-width:0; min-height:var(--s-10); text-align:center; font-size:clamp(.75rem,1vw,1rem); font-weight:800; line-height:1.1; }
.partners__wordmark span { display:block; }
.partners__wordmark--siemens { color:var(--partner-siemens); }
.partners__wordmark--abb { color:var(--partner-abb); font-size:1.5rem; }
.partners__wordmark--schneider { color:var(--partner-schneider); flex-direction:column; font-size:var(--text-sm); }
.partners__wordmark--schneider span { font-size:var(--text-xs); font-style:italic; }
.partners__wordmark--cat { position:relative; color:var(--partner-cat); font-size:1.5rem; }
.partners__wordmark--cat::after { content:""; width:0; height:0; border-inline:var(--s-2) solid transparent; border-bottom:var(--s-2) solid var(--partner-cat-accent); position:absolute; bottom:0; }
.partners__wordmark--hyundai { color:var(--partner-hyundai); font-size:var(--text-xs); }
.partners__wordmark--sungrow { color:var(--partner-sungrow); font-size:var(--text-xs); font-weight:500; }
.partners__wordmark--growatt { color:var(--partner-growatt); }
.partners__wordmark--byd { color:var(--partner-byd); }
.partners__wordmark--huawei { color:var(--partner-huawei); font-size:var(--text-xs); }
.partners__wordmark--trina { color:var(--partner-trina); font-size:var(--text-sm); }

@media (min-width:1440px) {
  .card--project { flex-basis:calc((100% - 4 * var(--s-3))/5); }
}
@media (max-width:1199px) {
  .feature-bar__item { padding-inline:var(--s-3); font-size:var(--text-sm); }
}
@media (max-width:1099px) {
  .home-showcase { grid-template-columns:minmax(0,1fr); gap:var(--s-8); }
}
@media (max-width:991px) {
  .hero::before { background:var(--hero-overlay-compact); }
  .hero__copy { width:100%; max-width:var(--dialog-width); }
  .hero__video { position:relative; right:auto; bottom:auto; margin-top:var(--s-6); }
  .feature-bar { grid-template-columns:repeat(3,minmax(0,1fr)); gap:var(--s-4); }
  .feature-bar__item { padding:var(--s-3) 0; }
  .feature-bar__item + .feature-bar__item { border-left:0; border-top:1px solid var(--line-soft); }
  .home-about { grid-template-columns:minmax(0,1fr); }
  .home-reasons { grid-template-columns:repeat(2,minmax(0,1fr)); }
  .stats-band__grid { grid-template-columns:repeat(2,minmax(0,1fr)); gap:var(--s-6) 0; }
  .stats-band__item:nth-child(3) { border-left:0; }
}
@media (max-width:767px) {
  .feature-bar { grid-template-columns:repeat(2,minmax(0,1fr)); }
  .home-showcase .section-head { flex-direction:row; flex-wrap:wrap; align-items:center; }
  .stats-band__item { padding-inline:var(--s-3); gap:var(--s-3); }
  .stats-band__number { font-size:1.5rem; }
  .stats-band__item > svg { width:var(--s-8); height:var(--s-8); }
}
@media (max-width:575px) {
  .home-reasons { grid-template-columns:minmax(0,1fr); }
  .partners { grid-template-columns:repeat(3,minmax(0,1fr)); }
}
@media (max-width:479px) {
  .feature-bar { grid-template-columns:minmax(0,1fr); gap:var(--s-2); }
  .feature-bar__item { padding:var(--s-3); }
  .stats-band__grid { grid-template-columns:minmax(0,1fr); }
  .stats-band__item { justify-content:flex-start; }
  .stats-band__item + .stats-band__item { border-left:0; border-top:1px solid var(--stats-divider); padding-top:var(--s-6); }
}

/* ===== About ===== */
.hero--about { padding-block:var(--s-6) var(--s-10); }
.hero--about .hero__title .accent { display:block; }
.hero--about .hero__text { max-width:57ch; }
.mvv { position:relative; z-index:5; display:grid; grid-template-columns:minmax(0,1fr) minmax(0,1fr) minmax(0,1.5fr); margin-top:calc(-1 * var(--overlap)); padding-block:var(--s-6); box-shadow:var(--sh-lg); overflow:visible; }
.mvv__cell { display:grid; grid-template-columns:var(--mvv-icon) minmax(0,1fr); gap:var(--s-4); padding-inline:var(--s-6); min-width:0; align-content:start; }
.mvv__cell + .mvv__cell { border-left:1px solid var(--line); }
.icon-chip--mvv { width:var(--mvv-icon); height:var(--mvv-icon); background:var(--white); border:1px solid var(--line); box-shadow:var(--sh-sm); }
.icon-chip--mvv svg { width:var(--mvv-glyph); height:var(--mvv-glyph); }
.mvv__content h2 { font-size:1.125rem; line-height:1.35; margin-block:var(--s-1) var(--s-2); }
.mvv__content > p { font-size:var(--text-sm); line-height:1.6; color:var(--muted); }
.mvv__values { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:var(--s-3); list-style:none; margin:var(--s-4) 0 0; padding:0; }
.mvv__value { text-align:center; min-width:0; }
.mvv__value > svg { width:var(--reason-icon); height:var(--reason-icon); margin:0 auto var(--s-2); color:var(--green); }
.mvv__value h3 { font-size:var(--text-xs); line-height:1.4; }
.mvv__value p { margin-top:var(--s-1); font-size:var(--text-xs); line-height:1.4; color:var(--muted); }
.about-story { display:grid; grid-template-columns:minmax(0,1fr) minmax(0,1.25fr) minmax(0,.55fr); gap:var(--s-8); align-items:stretch; }
.about-story > * { min-width:0; }
.about-story__photo { width:100%; height:auto; aspect-ratio:4/3; object-fit:cover; border-radius:var(--r); align-self:center; }
.about-story__eyebrow { display:flex; align-items:center; gap:var(--s-3); color:var(--ink); margin-bottom:var(--s-2); }
.about-story__eyebrow::before { content:""; width:var(--reason-icon); height:2px; background:var(--green); flex-shrink:0; }
.about-story__copy > p:not(.eyebrow) { font-size:var(--text-sm); line-height:1.65; margin-top:var(--s-4); }
.card--progress { position:relative; isolation:isolate; padding:var(--s-6); background:var(--navy); color:var(--white); }
.card--progress::before { content:""; position:absolute; inset:0; z-index:-1; background:var(--progress-overlay); }
.card--progress .card__background { position:absolute; inset:0; z-index:-2; width:100%; height:100%; object-fit:cover; }
.card--progress .card__title { color:var(--white); font-size:1.5rem; line-height:1.25; }
.card--progress .card__rule { display:block; width:var(--about-point-icon); height:var(--rule-height); margin-block:var(--s-5); background:var(--green); }
.card--progress p { color:var(--hero-eyebrow); font-size:var(--text-sm); line-height:1.6; }
.about-strengths { display:grid; grid-template-columns:minmax(0,1fr) minmax(0,1.15fr) minmax(0,.85fr); gap:var(--s-10); }
.about-strengths > * { min-width:0; }
.about-strengths .section-title { font-size:clamp(1.125rem,1rem + .55vw,1.5rem); }
.about-strengths__reasons { border-left:1px solid var(--line); padding-left:var(--s-8); }
.about-points { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:var(--s-5) var(--s-4); margin:var(--s-5) 0 0; padding:0; list-style:none; }
.about-points__item { display:flex; align-items:flex-start; gap:var(--s-3); min-width:0; }
.about-points__item > svg { width:var(--about-point-icon); height:var(--about-point-icon); color:var(--green); }
.about-points__item h3 { font-size:var(--text-button); line-height:1.4; }
.about-points__item p { margin-top:var(--s-1); font-size:var(--text-meta); line-height:1.5; color:var(--muted); }
.about-strengths__photo { width:100%; height:100%; min-height:0; object-fit:cover; border-radius:var(--r); }
/* Keep the portrait from setting the desktop row height; it fills the text row. */
@media (min-width:1100px) {
  .about-strengths__photo { height:0; min-height:100%; }
}
.about-journey { border-top:1px solid var(--line-soft); }
.timeline { position:relative; display:grid; grid-template-columns:repeat(6,minmax(0,1fr)); gap:var(--s-4); margin:0; padding:0; list-style:none; }
.card--milestone { display:flex; position:relative; min-width:0; overflow:visible; border:0; border-radius:var(--r-sm); }
.timeline__media { position:relative; flex:0 0 clamp(var(--s-12),5vw,var(--timeline-thumb)); min-height:var(--s-24); border-radius:var(--r-sm) 0 0 var(--r-sm); overflow:hidden; aspect-ratio:3/4; }
.timeline__image { position:absolute; inset:0; width:100%; height:100%; object-fit:cover; }
.timeline__content { position:relative; flex:1; min-width:0; padding:var(--s-3); }
.timeline__marker { position:relative; display:block; width:100%; height:var(--timeline-dot); margin-bottom:var(--s-2); }
.timeline__marker::before { content:""; position:absolute; left:0; top:0; width:var(--timeline-dot); height:var(--timeline-dot); border-radius:50%; background:var(--green); }
.timeline__marker::after { content:""; position:absolute; top:50%; left:var(--s-4); right:calc(-1 * var(--s-3)); border-top:2px dashed var(--green); opacity:.45; }
.card--milestone:last-child .timeline__marker::after { display:none; }
.timeline__year { color:var(--ink); font-size:var(--text-lead); font-weight:800; line-height:1.3; margin-bottom:var(--s-1); }
.timeline__title { font-size:var(--text-xs); line-height:1.4; }
.timeline__description { font-size:var(--text-xs); line-height:1.5; margin-top:var(--s-2); color:var(--muted); }
.timeline__connector { position:absolute; z-index:1; right:calc(-1 * var(--s-2)); top:50%; display:grid; place-items:center; width:var(--timeline-connector); height:var(--timeline-connector); background:var(--white); border:1px solid var(--line); border-radius:50%; color:var(--brand-blue); transform:translate(50%,-50%); }
.timeline__connector svg { width:var(--s-3); height:var(--s-3); }
.about-certifications { display:grid; grid-template-columns:minmax(0,.9fr) minmax(0,2fr); gap:var(--s-12); align-items:center; }
.about-certifications > * { min-width:0; }
.about-certifications__copy > p { margin-block:var(--s-4); font-size:var(--text-sm); line-height:1.6; }
.about-certifications__grid { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:var(--s-4); }
.card--certification { --standard-color:var(--green-dark); padding:var(--s-6); text-align:center; }
.card--certification-quality { --standard-color:var(--certification-blue); }
.card--certification-health { --standard-color:var(--certification-red); }
.card__standard-icon { display:flex; justify-content:center; margin-bottom:var(--s-3); color:var(--standard-color); }
.card__standard-icon svg { width:var(--mvv-icon); height:var(--mvv-icon); }
.card--certification .card__title { color:var(--standard-color); font-size:var(--text-button); line-height:1.4; }
.card--certification > p { font-size:var(--text-sm); line-height:1.5; margin-top:var(--s-2); }
.card--certification .card__commitment { color:var(--green-dark); font-weight:600; }

@media (min-width:768px) and (max-width:1199px) {
  .timeline { display:flex; overflow-x:auto; scroll-snap-type:x mandatory; padding-bottom:var(--s-3); }
  .card--milestone { flex:0 0 var(--timeline-card); scroll-snap-align:start; }
  .timeline__media { flex-basis:var(--timeline-thumb); }
  .timeline__connector { display:none; }
}
@media (max-width:1099px) {
  .about-story,.about-strengths,.about-certifications { grid-template-columns:minmax(0,1fr); gap:var(--s-6); }
  .about-story__photo { max-height:none; }
  .card--progress { min-height:var(--timeline-card); }
  .about-strengths__reasons { border-left:0; border-top:1px solid var(--line); padding-left:0; padding-top:var(--s-6); }
  .about-strengths__photo { height:auto; aspect-ratio:4/3; }
  .about-certifications__grid { grid-template-columns:repeat(2,minmax(0,1fr)); }
}
@media (max-width:992px) {
  .mvv { grid-template-columns:minmax(0,1fr); padding:0; }
  .mvv__cell { padding:var(--s-6); }
  .mvv__cell + .mvv__cell { border-left:0; border-top:1px solid var(--line); }
}
@media (max-width:768px) {
  .mvv__values { grid-template-columns:repeat(2,minmax(0,1fr)); gap:var(--s-5) var(--s-3); }
}
@media (max-width:767px) {
  .timeline { grid-template-columns:minmax(0,1fr); gap:var(--s-5); padding-left:var(--s-6); }
  .timeline::before { content:""; position:absolute; left:var(--s-1); top:var(--s-6); bottom:var(--s-6); border-left:2px dashed var(--green); opacity:.45; }
  .timeline__media { flex-basis:var(--timeline-thumb); }
  .timeline__content { padding:var(--s-4); }
  .timeline__marker { position:absolute; left:calc(-1 * (var(--timeline-thumb) + var(--s-6) - var(--s-1))); top:var(--s-6); width:var(--timeline-dot); height:var(--timeline-dot); margin:0; }
  .timeline__marker::after,.timeline__connector { display:none; }
  .timeline__title { font-size:var(--text-sm); }
  .timeline__description { font-size:var(--text-meta); }
}
@media (max-width:576px) {
  .about-points { grid-template-columns:minmax(0,1fr); }
  .about-certifications__grid { grid-template-columns:minmax(0,1fr); }
  .mvv__cell { grid-template-columns:var(--chip) minmax(0,1fr); gap:var(--s-3); padding:var(--s-4); }
  .mvv__cell .icon-chip--mvv { width:var(--chip); height:var(--chip); }
}

/* ===== Business ===== */
.hero--business { padding-block:var(--s-6) var(--s-8); }
.hero--business .hero__text { max-width:57ch; }
.breadcrumb { margin-bottom:var(--s-2); font-size:var(--text-meta); color:var(--hero-eyebrow); }
.breadcrumb ol { display:flex; flex-wrap:wrap; align-items:center; gap:var(--s-3); margin:0; padding:0; list-style:none; }
.breadcrumb li { display:flex; align-items:center; gap:var(--s-3); }
.breadcrumb a { display:inline-flex; align-items:center; min-height:var(--touch); }
.breadcrumb a:hover { color:var(--white); text-decoration:underline; text-underline-offset:var(--s-1); }
.breadcrumb svg { width:var(--s-4); height:var(--s-4); }
.breadcrumb [aria-current] { color:var(--white); }
.business-areas__grid { grid-auto-rows:1fr; }
.card--detail { display:flex; flex-direction:column; }
.card--detail .card__media { aspect-ratio:2.1/1; }
.card--detail .card__body { flex:1; display:flex; flex-direction:column; padding:var(--s-3); }
.card--detail .card__heading { display:flex; align-items:flex-start; gap:var(--s-2); }
.card--detail .card__heading > svg { width:var(--detail-icon); height:var(--detail-icon); color:var(--green); }
.card--detail .card__title { min-width:0; min-height:2.7em; font-size:var(--text-sm); line-height:1.35; }
.card--detail .card__description { margin-block:var(--s-2); padding-left:calc(var(--detail-icon) + var(--s-2)); color:var(--muted); font-size:var(--text-meta); line-height:1.5; }
.card--detail .link-arrow { margin-top:auto; margin-left:calc(var(--detail-icon) + var(--s-2)); font-size:var(--text-meta); }
.card--detail .link-arrow svg { width:var(--s-4); height:var(--s-4); }
.capabilities { position:relative; isolation:isolate; padding-block:var(--s-8); background:var(--navy); color:var(--white); }
.capabilities::before { content:""; position:absolute; inset:0; z-index:-1; background:var(--capabilities-overlay); }
.capabilities__image { position:absolute; inset:0; z-index:-2; width:100%; height:100%; object-fit:cover; object-position:center 30%; }
.capabilities__inner { display:grid; grid-template-columns:minmax(0,1.1fr) minmax(0,1.4fr); gap:var(--s-12); align-items:center; }
.capabilities__inner > * { min-width:0; }
.capabilities__rule { display:block; width:var(--s-10); height:var(--rule-height); background:var(--green); margin-bottom:var(--s-3); }
.capabilities__eyebrow { color:var(--white); font-size:var(--text-button); font-weight:600; margin-bottom:var(--s-1); }
.capabilities h2 { color:var(--white); }
.capabilities .accent { color:var(--green-on-dark); }
.capabilities__text { margin-top:var(--s-3); color:var(--hero-eyebrow); font-size:var(--text-sm); line-height:1.6; }
.capabilities__items { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); margin:0; padding:0; list-style:none; }
.capabilities__item { text-align:center; padding-inline:var(--s-4); min-width:0; }
.capabilities__item + .capabilities__item { border-left:1px solid var(--capabilities-divider); }
.capabilities__item > svg { width:var(--s-10); height:var(--s-10); margin:0 auto var(--s-3); }
.capabilities__item h3 { max-width:12ch; margin-inline:auto; color:var(--white); font-size:var(--text-sm); line-height:1.4; }
.capabilities__item p { margin-top:var(--s-2); font-size:var(--text-meta); line-height:1.5; color:var(--capabilities-caption); }
.capabilities :focus-visible { outline-color:var(--green-on-dark); }
.business-approach .section-head__desc { max-width:65ch; }
.business-approach__steps { display:grid; grid-template-columns:repeat(5,minmax(0,1fr)); gap:var(--s-5); margin:0; padding:0; list-style:none; }
.card--step { position:relative; display:flex; align-items:flex-start; gap:var(--s-3); padding:var(--s-5); min-width:0; overflow:visible; }
.card--step > svg { width:var(--approach-icon); height:var(--approach-icon); color:var(--green); }
.card--step > div { min-width:0; }
.card--step .card__title { font-size:var(--text-sm); line-height:1.4; }
.card--step p { margin-top:var(--s-1); color:var(--muted); font-size:var(--text-meta); line-height:1.5; }
.business-approach__connector { position:absolute; z-index:1; right:calc(-1 * var(--s-5) / 2 - 1px); top:50%; display:grid; place-items:center; width:var(--approach-connector); height:var(--approach-connector); transform:translate(50%,-50%); border:1px solid var(--line); border-radius:50%; background:var(--white); color:var(--navy); }
.business-approach__connector svg { width:var(--s-5); height:var(--s-5); }
.cta-band--business .cta-band__inner { flex-wrap:wrap; gap:var(--s-5) var(--s-8); }

@media (max-width:1099px) {
  .capabilities__inner { grid-template-columns:minmax(0,1fr); gap:var(--s-6); }
  .capabilities__copy { max-width:70ch; }
}
@media (max-width:992px) {
  .business-approach__steps { grid-template-columns:repeat(2,minmax(0,1fr)); }
  .business-approach__connector { display:none; }
  .capabilities__items { grid-template-columns:repeat(2,minmax(0,1fr)); gap:var(--s-6); }
  .capabilities__item + .capabilities__item { border-left:0; }
  .capabilities__item:nth-child(n+3) { border-top:1px solid var(--capabilities-divider); padding-top:var(--s-6); }
}
@media (max-width:576px) {
  .business-approach__steps,.capabilities__items { grid-template-columns:minmax(0,1fr); }
  .capabilities__item + .capabilities__item { border-top:1px solid var(--capabilities-divider); padding-top:var(--s-6); }
}

/* ===== Products ===== */
.hero--compact { min-height:var(--hero-compact-min); padding-block:var(--s-4); }
.hero--compact .hero__copy { width:100%; }
.hero--compact .hero__title { font-size:clamp(2rem,1.4rem + 1.4vw,3rem); }
.hero--compact .hero__text { max-width:66ch; }
.hero-badges { display:flex; flex-wrap:wrap; gap:var(--s-8); list-style:none; margin:var(--s-4) 0 0; padding:0; }
.hero-badges__item { display:flex; align-items:center; gap:var(--s-3); }
.hero-badges__item > span { display:grid; place-items:center; flex-shrink:0; width:var(--hero-badge); height:var(--hero-badge); border:1.5px solid var(--hero-badge-border); border-radius:50%; color:var(--green-on-dark); }
.hero-badges__item strong { max-width:12ch; font-size:var(--text-sm); font-weight:600; line-height:1.35; }
.catalogue__layout { display:grid; grid-template-columns:var(--filter-width) minmax(0,1fr); gap:var(--s-6); align-items:start; }
.catalogue__layout > * { min-width:0; }
.filter-sidebar { position:sticky; top:calc(var(--header-h) + var(--s-4)); max-height:calc(100vh - var(--header-h) - var(--s-8)); overflow-y:auto; scrollbar-width:thin; scrollbar-color:var(--muted) var(--bg-alt); }
.filter-sidebar::-webkit-scrollbar { width:var(--s-2); }
.filter-sidebar::-webkit-scrollbar-thumb { background:var(--muted); border:2px solid var(--bg-alt); border-radius:var(--r-pill); }
.filter-form { min-width:0; }
.filter-form__head { display:flex; align-items:center; gap:var(--s-2); padding:var(--s-5); border-bottom:1px solid var(--line); }
.filter-form__head > svg { width:var(--s-5); height:var(--s-5); color:var(--ink); }
.filter-form__head h2 { font-size:var(--text-lead); line-height:1.3; }
.accordion + .accordion { border-top:1px solid var(--line); }
.accordion__trigger { display:flex; align-items:center; justify-content:space-between; gap:var(--s-2); width:100%; min-height:var(--touch); padding:var(--s-3) var(--s-5); border:0; background:var(--white); color:var(--ink); text-align:left; font-size:var(--text-sm); font-weight:700; line-height:1.4; }
.accordion__trigger:disabled { opacity:1; }
.accordion__trigger svg { width:var(--s-4); height:var(--s-4); transition:transform var(--dur) var(--ease); }
.accordion__trigger[aria-expanded=true] svg { transform:rotate(180deg); }
.accordion__trigger:focus-visible { outline-offset:-3px; }
.accordion__panel { display:grid; grid-template-rows:0fr; transition:grid-template-rows var(--dur) var(--ease); }
.accordion--open .accordion__panel { grid-template-rows:1fr; }
.accordion__inner { min-height:0; overflow:hidden; }
.accordion__content { padding:0 var(--s-3) var(--s-3); }
.filter-option { position:relative; display:flex; align-items:center; gap:var(--s-2); min-height:var(--touch); padding-inline:var(--s-2); border-radius:var(--r-sm); }
.filter-option:hover { background:var(--green-light); }
.filter-option input { appearance:none; flex-shrink:0; width:var(--checkbox); height:var(--checkbox); margin:0; border:1.5px solid var(--line); border-radius:var(--s-1); background:var(--white); cursor:pointer; }
.filter-option input:checked { background-color:var(--green-dark); border-color:var(--green-dark); background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 18 18' fill='none'%3E%3Cpath d='m4 9 3 3 7-7' stroke='white' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E"); }
.filter-option input:focus-visible { outline:3px solid var(--green-dark); outline-offset:3px; box-shadow:0 0 0 var(--s-1) var(--green-ring); }
.filter-option input:disabled { cursor:default; }
.filter-option label { flex:1; display:flex; align-items:center; align-self:stretch; min-width:0; padding-block:var(--s-2); font-size:var(--text-sm); line-height:1.4; color:var(--body); cursor:pointer; }
.filter-option label::after { content:""; position:absolute; inset:0; }
.filter-option__count { white-space:nowrap; }
.brand-search { position:relative; margin:var(--s-1) var(--s-2) var(--s-2); }
.brand-search svg { position:absolute; top:50%; left:var(--s-2); transform:translateY(-50%); width:var(--s-4); height:var(--s-4); color:var(--muted); pointer-events:none; }
.brand-search input { width:100%; min-height:var(--touch); padding:var(--s-2) var(--s-2) var(--s-2) var(--s-8); border:1px solid var(--line); border-radius:var(--r-sm); font-size:var(--text-sm); color:var(--ink); background:var(--white); }
.brand-search input::placeholder { color:var(--muted); }
.filter-show-more { min-height:var(--touch); border:0; background:transparent; color:var(--green-dark); font-size:var(--text-sm); font-weight:600; margin-left:var(--s-2); padding:var(--s-2); }
.filter-reference { list-style:none; padding:0; margin:0 0 var(--s-3); font-size:var(--text-sm); }
.filter-reference li { padding:var(--s-2); }
.accordion__content > .meta { padding-inline:var(--s-2); }
.filter-form__footer { border-top:1px solid var(--line); padding:var(--s-4); }
.filter-form__footer .btn { width:100%; padding-inline:var(--s-3); font-size:var(--text-sm); }
.catalogue__filter-open { display:none; margin-bottom:var(--s-5); }
.catalogue__filter-open [data-filter-selection-count] { padding:0 var(--s-2); border-radius:var(--r-pill); background:var(--green-light); }
.catalogue__content .section-head { gap:var(--s-4); align-items:center; }
.catalogue__content .section-title { font-size:clamp(1.25rem,1rem + .75vw,1.75rem); }
.catalogue__content .link-arrow { flex-shrink:0; font-size:var(--text-xs); }
.catalogue__content .link-arrow svg { width:var(--s-4); height:var(--s-4); }
.catalogue__note { margin:-4px 0 var(--s-4); color:var(--muted); font-size:var(--text-meta); line-height:1.5; }
.card--category { padding:0; text-align:left; color:var(--body); cursor:pointer; }
.card--category:disabled { opacity:1; cursor:default; }
.card--category .card__media { aspect-ratio:1/1; object-fit:contain; padding:var(--s-4); background:var(--product-surface); }
.card--category .card__body { display:flex; align-items:center; justify-content:space-between; gap:var(--s-2); padding:var(--s-3); }
.card--category .card__body > span { min-width:0; }
.card--category .card__title { display:block; font-size:var(--text-button); line-height:1.3; }
.card--category .card__total { display:block; color:var(--muted); font-size:var(--text-xs); line-height:1.4; margin-top:var(--s-1); }
.card--category .card__body > svg { width:var(--s-4); height:var(--s-4); color:var(--ink); }
.card--category[aria-pressed=true] { border-color:var(--green-dark); box-shadow:inset 0 0 0 1px var(--green-dark); background:var(--green-light); }
.catalogue__featured { margin-top:var(--s-6); }
.catalogue__results { color:var(--muted); font-size:var(--text-sm); margin-bottom:var(--s-3); }
.filter-chips { display:flex; flex-wrap:wrap; gap:var(--s-2); list-style:none; padding:0; margin:0 0 var(--s-4); }
.filter-chip { display:flex; align-items:center; gap:var(--s-2); min-height:var(--touch); border:1px solid var(--line); border-radius:var(--r-pill); padding:var(--s-2) var(--s-3); color:var(--green-dark); background:var(--green-light); font-size:var(--text-meta); text-align:left; }
.filter-chip svg { width:var(--s-4); height:var(--s-4); }
.catalogue__empty { padding:var(--s-6); background:var(--bg-alt); border:1px solid var(--line); border-radius:var(--r); }
.catalogue__empty .btn { margin-top:var(--s-4); }
.card--product { display:flex; flex-direction:column; }
.product__header { display:flex; align-items:center; justify-content:space-between; flex-wrap:wrap; gap:var(--s-2); padding:var(--s-3); min-height:var(--s-12); }
.product__brand { font-size:var(--text-sm); font-weight:800; line-height:1.15; }
.product__brand--longi { color:var(--partner-longi); }
.product__brand--sungrow { color:var(--partner-sungrow); font-weight:500; }
.product__brand--cat { color:var(--partner-cat); font-size:1.5rem; }
.product__brand--schneider { color:var(--partner-schneider); }
.product__featured { padding:var(--s-1) var(--s-2); border-radius:var(--r-sm); color:var(--white); background:var(--green-dark); font-size:var(--text-xs); font-weight:600; }
.card--product .card__media { aspect-ratio:4/3; object-fit:contain; padding:var(--s-3); background:var(--product-surface); }
.card--product .card__body { display:flex; flex:1; flex-direction:column; padding:var(--s-3); }
.card--product .card__title { font-size:1rem; line-height:1.35; }
.product__model { color:var(--muted); font-size:var(--text-meta); line-height:1.5; margin-top:var(--s-1); }
.product-specs { display:grid; gap:var(--s-2); padding:0; margin:var(--s-4) 0; list-style:none; }
.product-specs li { display:flex; align-items:flex-start; gap:var(--s-2); font-size:var(--text-meta); line-height:1.5; }
.product-specs svg { width:var(--s-4); height:var(--s-4); color:var(--green); margin-top:2px; }
.product-specs__label { color:var(--muted); }
.product-specs__value { color:var(--ink); }
.product__actions { display:flex; flex-wrap:wrap; gap:var(--s-2); margin-top:auto; }
.product__actions .btn { flex:1 1 130px; padding:var(--s-2); min-height:var(--touch); font-size:var(--text-meta); }
.product__actions svg { width:var(--s-4); height:var(--s-4); }
.card--highlight { display:flex; align-items:flex-start; gap:var(--s-4); padding:var(--s-5); }
.card--highlight > svg { width:var(--s-10); height:var(--s-10); color:var(--green); }
.card--highlight > div { min-width:0; }
.card--highlight .card__title { font-size:var(--text-button); line-height:1.35; }
.card--highlight p { margin-top:var(--s-2); font-size:var(--text-meta); line-height:1.5; }
.partners--catalogue { grid-template-columns:repeat(10,minmax(0,1fr)); }
.partners__wordmark--longi { color:var(--partner-longi); }
.filter-drawer { position:fixed; inset:auto 0 0; width:100%; max-width:100%; max-height:92dvh; margin:0; padding:var(--s-5); border:0; border-radius:var(--r-lg) var(--r-lg) 0 0; color:var(--body); background:var(--white); }
.filter-drawer[open] { display:flex; flex-direction:column; gap:var(--s-3); }
.filter-drawer__head { display:flex; align-items:center; justify-content:space-between; gap:var(--s-4); }
.filter-drawer__head h2 { font-size:1.375rem; }
.filter-drawer__body { min-height:0; overflow-y:auto; overscroll-behavior:contain; }
.filter-drawer .filter-form { box-shadow:none; }
@media (max-width:1399px) and (min-width:992px) {
  .catalogue__categories.grid--6 { grid-template-columns:repeat(4,minmax(0,1fr)); }
}
@media (max-width:1199px) and (min-width:992px) {
  .catalogue__products.grid--4 { grid-template-columns:repeat(2,minmax(0,1fr)); }
}
@media (max-width:991px) {
  .catalogue__layout { grid-template-columns:minmax(0,1fr); }
  .filter-sidebar { position:static; max-height:none; }
  .filters-ready .filter-sidebar { display:none; }
  .filters-ready .catalogue__filter-open { display:inline-flex; }
  .partners--catalogue { display:flex; overflow-x:auto; scroll-snap-type:x mandatory; padding-block:var(--s-2); scrollbar-width:thin; }
  .partners--catalogue .partners__wordmark { flex:0 0 var(--brand-row-item); scroll-snap-align:start; }
}
@media (max-width:575px) {
  .hero-badges { gap:var(--s-4); }
  .hero-badges__item { flex:1 1 calc(50% - var(--s-4)); gap:var(--s-2); min-width:0; }
  .hero-badges__item strong { font-size:var(--text-meta); }
  .catalogue__content .section-head { align-items:flex-start; }
  .filter-drawer { padding:var(--s-4); }
}

/* ===== Projects ===== */
.hero--projects { padding-block:var(--s-6) var(--s-10); }
.hero--projects .hero__copy { width:70%; }
.hero--projects .hero__title { max-width:none; }
.hero--projects .hero__text { max-width:58ch; }
.breadcrumb--projects { text-transform:uppercase; letter-spacing:.1em; font-size:var(--text-xs); }
.project-stats { position:relative; z-index:5; display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); list-style:none; padding:var(--s-5) var(--s-3); margin:calc(-1 * var(--overlap)) 0 0; box-shadow:var(--sh-lg); }
.project-stats__item { display:flex; align-items:center; justify-content:center; gap:var(--s-4); padding-inline:var(--s-4); min-width:0; }
.project-stats__item + .project-stats__item { border-left:1px solid var(--line); }
.project-stats__item > div { min-width:0; }
.project-stats__item strong { display:block; font-size:1.375rem; line-height:1.3; font-weight:800; color:var(--ink); }
.project-stats__item div > span { display:block; margin-top:var(--s-1); font-size:var(--text-meta); line-height:1.5; color:var(--muted); }
.project-filters { display:flex; flex-wrap:wrap; gap:var(--s-2); margin:0 0 var(--s-4); padding-block:var(--s-1); }
.project-filter { position:relative; isolation:isolate; display:inline-flex; align-items:center; justify-content:center; min-height:var(--touch); padding:0 var(--s-5); border:0; border-radius:var(--r-pill); background:transparent; color:var(--ink); font-size:var(--text-sm); font-weight:600; line-height:1.3; white-space:nowrap; }
.project-filter::before { content:""; position:absolute; inset:calc((var(--touch) - var(--project-pill)) / 2) 0; z-index:-1; border:1px solid var(--line); border-radius:inherit; background:var(--white); }
.project-filter:disabled { opacity:1; cursor:default; }
.project-filter[aria-pressed=true] { color:var(--white); }
.project-filter[aria-pressed=true]::before { background:var(--green-dark); border-color:var(--green-dark); }
.project-filter:not([aria-pressed=true]):hover { color:var(--green-dark); }
.project-filter:not([aria-pressed=true]):hover::before { border-color:var(--green-dark); }
.project-grid { grid-auto-rows:1fr; }
.card--portfolio { --project-tag-color:var(--project-industrial); display:flex; flex-direction:column; }
.card--portfolio[data-category=power] { --project-tag-color:var(--project-power); }
.card--portfolio[data-category=solar] { --project-tag-color:var(--project-solar); }
.card--portfolio[data-category=substations] { --project-tag-color:var(--project-substations); }
.card--portfolio[data-category=generators] { --project-tag-color:var(--project-generators); }
.card--portfolio[data-category=bess] { --project-tag-color:var(--project-bess); }
.card--portfolio[data-category=automation] { --project-tag-color:var(--project-automation); }
.card--portfolio[data-category=consultancy] { --project-tag-color:var(--project-consultancy); }
.card--portfolio .card__media-wrap { position:relative; }
.card--portfolio .card__media { aspect-ratio:16/10; }
.project-tag { display:inline-flex; align-items:center; max-width:calc(100% - var(--s-6)); padding:var(--s-1) var(--s-2); border:1px solid color-mix(in srgb,var(--project-tag-color,var(--green-dark)) 25%,var(--white)); border-radius:var(--r-pill); box-shadow:var(--sh-sm); background:var(--white); color:var(--project-tag-color,var(--green-dark)); font-size:.6875rem; font-weight:700; line-height:1.4; }
.card--portfolio .project-tag { position:absolute; left:var(--s-3); bottom:var(--s-3); }
.card--portfolio .card__body { position:relative; flex:1; padding:var(--s-4); }
.card--portfolio .card__title { font-size:var(--text-button); line-height:1.35; min-height:2.7em; }
.project__location,.project__service { display:flex; align-items:flex-start; gap:var(--s-2); padding-right:var(--touch); margin-top:var(--s-2); font-size:var(--text-meta); line-height:1.5; color:var(--muted); }
.project__location > svg,.project__service > svg { width:var(--s-4); height:var(--s-4); color:var(--green); margin-top:2px; }
.project__details { position:absolute; right:var(--s-3); bottom:var(--s-3); display:grid; place-items:center; width:var(--touch); height:var(--touch); isolation:isolate; border:0; padding:0; border-radius:50%; background:transparent; color:var(--ink); }
.project__details::before { content:""; position:absolute; z-index:-1; width:var(--project-chevron); height:var(--project-chevron); border-radius:50%; border:1px solid var(--line); background:var(--white); transition:background var(--dur) var(--ease),border-color var(--dur) var(--ease); }
.project__details > svg { width:var(--s-4); height:var(--s-4); }
.card--portfolio:hover .project__details,.card--portfolio:focus-within .project__details { color:var(--white); }
.card--portfolio:hover .project__details::before,.card--portfolio:focus-within .project__details::before { background:var(--green-dark); border-color:var(--green-dark); }
.featured-project { display:grid; grid-template-columns:minmax(0,1fr) minmax(0,1.15fr) minmax(0,.8fr); gap:var(--s-10); align-items:center; }
.featured-project > * { min-width:0; }
.featured-carousel { margin-inline:var(--s-2); }
.featured-carousel .carousel__track { gap:0; border-radius:var(--r); }
.featured-carousel__slide { flex:0 0 100%; aspect-ratio:4/3; min-width:0; margin:0; scroll-snap-align:start; }
.featured-carousel__image { display:block; width:100%; height:100%; object-fit:cover; }
.featured-carousel .carousel__button--prev { left:calc(-1 * var(--touch) / 2); }
.featured-carousel .carousel__button--next { right:calc(-1 * var(--touch) / 2); }
.project-tag--solar { background:var(--green-dark); color:var(--white); border-color:var(--green-dark); }
.featured-project__details > h3 { margin-top:var(--s-3); font-size:1.5rem; line-height:1.25; }
.featured-project__description { margin-top:var(--s-3); font-size:var(--text-sm); line-height:1.6; }
.featured-project__meta { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:var(--s-3); margin:var(--s-4) 0 var(--s-5); padding:0; list-style:none; }
.featured-project__meta li { display:flex; align-items:flex-start; gap:var(--s-2); min-width:0; }
.featured-project__meta svg { width:var(--chip-icon); height:var(--chip-icon); color:var(--green); }
.featured-project__meta li > div { min-width:0; }
.featured-project__meta strong,.featured-project__meta span { display:block; font-size:var(--text-meta); line-height:1.5; }
.featured-project__meta strong { color:var(--ink); font-weight:600; }
.featured-project__meta span { color:var(--muted); }
.project-highlights { border-left:1px solid var(--line); padding-left:var(--s-8); }
.project-highlights .section-title { font-size:1.125rem; }
.project-highlights__list { display:grid; gap:var(--s-4); list-style:none; padding:0; margin:0; }
.project-highlights__list li { display:flex; align-items:flex-start; gap:var(--s-3); font-size:var(--text-sm); line-height:1.5; }
.project-highlights__list svg { width:var(--chip-icon); height:var(--chip-icon); color:var(--green); }
.project-clients { display:grid; grid-template-columns:minmax(0,.9fr) minmax(0,3fr); gap:var(--s-8); align-items:center; }
.project-clients > * { min-width:0; }
.project-clients .section-title { font-size:clamp(1.125rem,1rem + .55vw,1.5rem); }
.project-clients__partners > .link-arrow { display:flex; width:fit-content; margin-left:auto; font-size:var(--text-xs); }
.project-clients__row { grid-template-columns:repeat(10,minmax(0,1fr)); gap:var(--s-2); }
.project-clients__row .partners__wordmark { border:1px solid var(--line); border-radius:var(--r-sm); padding:var(--s-3) var(--s-1); min-height:var(--s-16); font-size:var(--text-xs); }
.project-clients__row .partners__wordmark--abb,.project-clients__row .partners__wordmark--cat { font-size:1.5rem; }
.project-clients__row .partners__wordmark--cat::after { bottom:var(--s-2); }
.project-clients__row .partners__wordmark--schneider span { font-size:var(--text-xs); }
.project-dialog__facts { display:grid; gap:var(--s-4); margin:var(--s-4) 0; }
.project-dialog__facts dt { color:var(--ink); font-size:var(--text-sm); font-weight:700; }
.project-dialog__facts dd { margin:var(--s-1) 0 0; font-size:var(--text-sm); }
.project-dialog__extra { margin-bottom:var(--s-5); }
.project-dialog__extra > h3 { font-size:1.125rem; margin-block:var(--s-5) var(--s-3); }
.project-dialog__extra .featured-project__meta { grid-template-columns:repeat(2,minmax(0,1fr)); }
@media (max-width:1199px) {
  .project-clients { grid-template-columns:minmax(0,1fr); gap:var(--s-3); }
}
@media (max-width:1099px) {
  .featured-project { grid-template-columns:minmax(0,1fr); gap:var(--s-6); }
  .project-highlights { border-left:0; border-top:1px solid var(--line); padding-left:0; padding-top:var(--s-6); }
}
@media (max-width:991px) {
  .hero--projects .hero__copy { width:100%; }
  .project-stats { grid-template-columns:repeat(2,minmax(0,1fr)); gap:var(--s-4) 0; }
  .project-stats__item:nth-child(3) { border-left:0; }
  .project-stats__item:nth-child(n+3) { border-top:1px solid var(--line); padding-top:var(--s-4); }
  .project-clients__row { display:flex; overflow-x:auto; scroll-snap-type:x mandatory; padding-block:var(--s-1); scrollbar-width:thin; }
  .project-clients__row .partners__wordmark { flex:0 0 var(--brand-row-item); scroll-snap-align:start; }
}
@media (max-width:767px) {
  .project-filters { flex-wrap:nowrap; overflow-x:auto; scroll-snap-type:x mandatory; mask-image:linear-gradient(90deg,transparent,var(--white) var(--s-3),var(--white) calc(100% - var(--s-3)),transparent); }
  .project-filter { flex-shrink:0; scroll-snap-align:start; }
  .featured-project__meta { grid-template-columns:repeat(2,minmax(0,1fr)); }
}
@media (max-width:575px) {
  .project-stats { grid-template-columns:minmax(0,1fr); gap:0; }
  .project-stats__item { justify-content:flex-start; padding:var(--s-4); }
  .project-stats__item + .project-stats__item { border-left:0; border-top:1px solid var(--line); padding-top:var(--s-4); }
}

/* ===== Services ===== */
.hero--services { padding-block:var(--s-6) var(--s-8); }
.hero--services .hero__copy { width:66%; }
.hero--services .hero__title { max-width:none; }
.hero--services .hero__text { max-width:64ch; font-size:var(--text-button); line-height:1.6; }
.services-overview .section-head__desc { max-width:60ch; }
.services-overview .section-head > .link-arrow,.services-process .section-head > .link-arrow { flex-shrink:0; }
.service-grid { grid-auto-rows:1fr; }
.card--service .card__body { flex:0 1 auto; }
.card--service .card__description { padding-left:0; margin-bottom:0; }
.card--service .card__footer { display:flex; align-items:center; justify-content:space-between; gap:var(--s-2); margin-top:auto; padding-inline:var(--s-3); border-top:1px solid var(--line-soft); }
.card--service .card__footer .link-arrow { margin:0; }
.card--service .card__footer > svg { width:var(--s-4); height:var(--s-4); color:var(--green-dark); }
.service-process { display:grid; grid-template-columns:repeat(7,minmax(0,1fr)); gap:var(--s-6); padding:0; margin:0; list-style:none; }
.service-process__step { position:relative; display:flex; flex-direction:column; align-items:center; text-align:center; min-width:0; }
.service-process__circle { display:grid; place-items:center; width:var(--service-circle); height:var(--service-circle); border:1.5px solid var(--line); border-radius:50%; background:var(--white); color:var(--green); transition:border-color var(--dur) var(--ease),transform var(--dur) var(--ease); }
.service-process__circle > svg { width:var(--service-process-icon); height:var(--service-process-icon); }
.service-process__number { margin-top:var(--s-2); color:var(--navy); font-size:var(--text-xs); font-weight:700; }
.service-process__step > h3 { margin-top:var(--s-1); font-size:var(--text-button); line-height:1.3; }
.service-process__step > p { max-width:26ch; margin-top:var(--s-2); font-size:var(--text-xs); line-height:1.5; color:var(--muted); }
.service-process__connector { position:absolute; top:calc(var(--service-circle) / 2); left:calc(50% + var(--service-circle) / 2 + var(--s-2)); width:calc(100% + var(--s-6) - var(--service-circle) - var(--s-4)); height:1px; background:var(--line); }
.service-process__connector > svg { position:absolute; left:50%; top:50%; width:var(--s-4); height:var(--s-4); transform:translate(-50%,-50%); background:var(--bg-alt); color:var(--navy); }
.service-benefits { list-style:none; padding:0; margin:0; }
.card--service-benefit { display:flex; align-items:flex-start; gap:var(--s-2); padding:var(--s-3); }
.card--service-benefit > svg { width:var(--service-benefit-icon); height:var(--service-benefit-icon); color:var(--green); }
.card--service-benefit > div { min-width:0; }
.card--service-benefit .card__title { font-size:var(--text-sm); line-height:1.35; }
.card--service-benefit p { margin-top:var(--s-2); font-size:var(--text-meta); line-height:1.5; color:var(--muted); }
.service-standards { position:relative; isolation:isolate; background:var(--navy); }
.service-standards::before { content:""; position:absolute; inset:0; z-index:-1; background:var(--standards-overlay); }
.service-standards__image { position:absolute; z-index:-2; inset:0; width:100%; height:100%; object-fit:cover; }
.service-standards__inner { display:grid; grid-template-columns:minmax(0,1fr) minmax(0,1.25fr); gap:var(--s-10); align-items:center; }
.service-standards__inner > * { min-width:0; }
.service-standards__copy > h2 { color:var(--white); font-size:clamp(1.375rem,1rem + .6vw,1.75rem); }
.service-standards__copy > p { margin-top:var(--s-3); font-size:var(--text-sm); line-height:1.6; color:var(--standards-text); }
.service-standards__panel { display:grid; grid-template-columns:repeat(6,minmax(0,1fr)); padding:var(--s-5); margin:0; list-style:none; border-radius:var(--r); background:var(--white); box-shadow:var(--sh-lg); }
.service-standards__mark { --standard-color:var(--certification-blue); display:flex; flex-direction:column; align-items:center; justify-content:center; gap:var(--s-2); padding:var(--s-2) var(--s-1); text-align:center; min-width:0; color:var(--standard-color); }
.service-standards__mark + .service-standards__mark { border-left:1px solid var(--line-soft); }
.service-standards__mark > svg { width:var(--s-8); height:var(--s-8); }
.service-standards__mark > span { font-size:var(--text-xs); line-height:1.4; font-weight:700; }
.service-standards__mark--iec { --standard-color:var(--standard-iec); }
.service-standards__mark--ieee { --standard-color:var(--standard-ieee); }
.service-standards__mark--bida { --standard-color:var(--standard-bida); }
@media (hover:hover) {
  .service-process__step:hover .service-process__circle { border-color:var(--green); transform:translateY(-2px); }
}
@media (max-width:1200px) {
  .service-process { grid-template-columns:repeat(4,minmax(0,1fr)); }
  .service-process__connector { display:none; }
}
@media (max-width:1099px) {
  .service-standards__inner { grid-template-columns:minmax(0,1fr); gap:var(--s-5); }
  .service-standards__panel { grid-template-columns:repeat(3,minmax(0,1fr)); }
  .service-standards__mark:nth-child(3n+1) { border-left:0; }
  .service-standards__mark:nth-child(n+4) { border-top:1px solid var(--line-soft); }
}
@media (max-width:992px) {
  .service-process { grid-template-columns:repeat(3,minmax(0,1fr)); }
}
@media (max-width:991px) {
  .hero--services .hero__copy { width:100%; max-width:none; }
  .hero--services .hero__title > br { display:none; }
}
@media (max-width:768px) {
  .service-process { grid-template-columns:repeat(2,minmax(0,1fr)); }
}
@media (max-width:575px) {
  .service-standards__panel { grid-template-columns:repeat(2,minmax(0,1fr)); }
  .service-standards__mark:nth-child(n) { border-left:0; border-top:0; }
  .service-standards__mark:nth-child(even) { border-left:1px solid var(--line-soft); }
  .service-standards__mark:nth-child(n+3) { border-top:1px solid var(--line-soft); }
}
@media (max-width:480px) {
  .service-process { grid-template-columns:minmax(0,1fr); }
}

/* ===== Sustainability ===== */
.hero--sustainability { padding-block:var(--s-6) var(--s-12); }
.hero--sustainability .hero__copy { width:62%; }
.hero--sustainability .hero__text { max-width:58ch; font-size:var(--text-button); line-height:1.6; }
.hero--sustainability .hero__eyebrow { gap:var(--s-2) var(--s-6); font-size:var(--text-xs); }
.hero--sustainability .hero__video { max-width:calc(32% - var(--gutter)); }
.hero--sustainability .hero__video strong { max-width:25ch; line-height:1.4; }
.hero--sustainability .hero__video span { margin-top:var(--s-1); font-size:var(--text-xs); color:var(--sustainability-story-text); }
.sustainability-video > svg { width:var(--s-4); height:var(--s-4); }
.sustainability-features { grid-template-columns:repeat(6,minmax(0,1fr)); padding:var(--s-4) var(--s-3); }
.sustainability-features .feature-bar__item { padding-inline:var(--s-3); gap:var(--s-3); font-size:var(--text-sm); }
.sustainability-features .icon-chip { background:var(--green-light); }
.sustainability-commitment { display:grid; grid-template-columns:minmax(0,1fr) minmax(0,1.35fr); gap:var(--s-12); align-items:center; }
.sustainability-commitment > * { min-width:0; }
.sustainability-commitment__rule { display:block; width:var(--s-10); height:var(--rule-height); background:var(--green); margin-bottom:var(--s-3); }
.sustainability-commitment__copy > p { margin-block:var(--s-4); font-size:var(--text-sm); line-height:1.6; color:var(--body); }
.sustainability-stats { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); padding:var(--s-10) var(--s-8); margin:0; list-style:none; background:var(--bg-alt); border-radius:var(--r-lg); }
.sustainability-stats__item { display:flex; flex-direction:column; align-items:center; padding-inline:var(--s-2); text-align:center; min-width:0; }
.sustainability-stats__item + .sustainability-stats__item { border-left:1px solid var(--line); }
.sustainability-stats__item > svg { width:var(--s-10); height:var(--s-10); color:var(--green); margin-bottom:var(--s-3); }
.sustainability-stats__number { max-width:100%; min-height:2.6em; font-size:var(--text-cta); line-height:1.3; font-weight:800; color:var(--navy); }
.sustainability-stats__label { display:block; margin-top:var(--s-2); font-size:var(--text-meta); line-height:1.5; color:var(--muted); }
.sustainability-pillars { grid-auto-rows:1fr; }
.card--pillar .card__body { padding:var(--s-3); }
.card--pillar .card__body > svg { width:var(--detail-icon); height:var(--detail-icon); color:var(--green); margin-bottom:var(--s-2); }
.card--pillar .card__title { min-height:2.7em; font-size:var(--text-sm); line-height:1.35; }
.card--pillar p { margin-top:var(--s-2); font-size:var(--text-meta); line-height:1.5; color:var(--muted); }
.sustainability-esg { position:relative; isolation:isolate; padding-block:var(--s-6); background:var(--navy-900); }
.sustainability-esg::before { content:""; position:absolute; inset:0; z-index:-1; background:var(--sustainability-esg-overlay); }
.sustainability-esg__image { position:absolute; z-index:-2; inset:0; width:100%; height:100%; object-fit:cover; object-position:center 25%; }
.sustainability-esg__inner { display:grid; grid-template-columns:minmax(0,.9fr) minmax(0,2fr); gap:var(--s-8); align-items:center; }
.sustainability-esg__inner > * { min-width:0; }
.sustainability-esg__copy > h2 { color:var(--white); }
.sustainability-esg__copy > p { margin-block:var(--s-3) var(--s-4); font-size:var(--text-sm); line-height:1.6; color:var(--sustainability-esg-text); }
.sustainability-esg :focus-visible { outline-color:var(--green-on-dark); }
.card--esg { padding:var(--s-4); }
.card--esg .card__heading { display:flex; align-items:center; gap:var(--s-3); }
.card--esg .icon-chip { width:var(--emblem); height:var(--emblem); }
.card--esg .icon-chip--social { background:var(--sustainability-social-bg); color:var(--sustainability-social-ink); }
.card--esg .icon-chip--governance { background:var(--sustainability-governance-bg); color:var(--sustainability-governance-ink); }
.card--esg .card__title { font-size:var(--text-sm); line-height:1.4; }
.card--esg ul { display:grid; gap:var(--esg-row-gap); list-style:none; padding:0; margin:var(--s-4) 0 0; }
.card--esg li { position:relative; padding-left:calc(var(--esg-bullet) + var(--s-2)); color:var(--body); font-size:var(--text-meta); line-height:1.5; }
.card--esg li::before { content:""; position:absolute; top:calc(.75em - var(--esg-bullet) / 2); left:0; width:var(--esg-bullet); height:var(--esg-bullet); border-radius:50%; background:var(--green); }
.sustainability-blocks { align-items:start; }
.sustainability-block { min-width:0; }
.sustainability-block .section-title { min-height:2.6em; font-size:1.125rem; line-height:1.3; }
.sustainability-block__row { display:grid; grid-template-columns:minmax(0,.4fr) minmax(0,.6fr); gap:var(--s-5); margin-top:var(--s-3); align-items:start; }
.sustainability-block__row > * { min-width:0; }
.sustainability-block__image { display:block; width:100%; height:auto; aspect-ratio:4/3; object-fit:cover; border-radius:var(--r); }
.sustainability-block__copy > p { font-size:var(--text-meta); line-height:1.6; }
.sustainability-block__copy ul { display:grid; gap:var(--s-2); list-style:none; padding:0; margin:var(--s-3) 0 0; }
.sustainability-block__copy li { display:flex; align-items:flex-start; gap:var(--s-2); font-size:var(--text-meta); line-height:1.5; }
.sustainability-block__copy li > svg { width:var(--s-4); height:var(--s-4); margin-top:2px; color:var(--green); }
.sustainability-transition { display:grid; grid-template-columns:minmax(0,.85fr) minmax(0,2.2fr); gap:var(--s-10); align-items:center; }
.sustainability-transition > * { min-width:0; }
.sustainability-transition__copy .section-title { font-size:1.25rem; line-height:1.25; }
.sustainability-transition__copy > p { margin-block:var(--s-3) var(--s-4); font-size:var(--text-meta); line-height:1.6; }
.card--transition .card__media { aspect-ratio:16/9; }
.card--transition .card__body { display:flex; align-items:flex-start; gap:var(--s-3); padding:var(--s-3); }
.card--transition .card__body > svg { width:var(--reason-icon); height:var(--reason-icon); color:var(--green); }
.card--transition .card__body > div { min-width:0; }
.card--transition .card__title { font-size:var(--text-sm); line-height:1.35; }
.card--transition p { margin-top:var(--s-2); font-size:var(--text-meta); line-height:1.5; color:var(--muted); }
@media (min-width:1400px) {
  .sustainability-stats__number { min-height:0; }
}
@media (max-width:1199px) {
  .sustainability-features { grid-template-columns:repeat(3,minmax(0,1fr)); gap:var(--s-3) 0; }
  .sustainability-features .feature-bar__item:nth-child(3n+1) { border-left:0; }
  .sustainability-features .feature-bar__item:nth-child(n+4) { border-top:1px solid var(--line-soft); padding-top:var(--s-3); }
  .sustainability-commitment { gap:var(--s-6); }
  .sustainability-stats { padding:var(--s-8) var(--s-4); }
  .sustainability-esg__inner,.sustainability-transition { grid-template-columns:minmax(0,1fr); gap:var(--s-6); }
  .sustainability-esg__copy,.sustainability-transition__copy { max-width:70ch; }
}
@media (max-width:992px) {
  .sustainability-blocks { grid-template-columns:minmax(0,1fr); }
  .sustainability-block .section-title { min-height:0; }
}
@media (max-width:991px) {
  .hero--sustainability .hero__copy { width:100%; max-width:none; }
  .hero--sustainability .hero__video { max-width:none; }
  .sustainability-features .feature-bar__item:nth-child(n) { border-left:0; border-top:0; }
  .sustainability-features .feature-bar__item:not(:nth-child(3n+1)) { border-left:1px solid var(--line-soft); }
  .sustainability-features .feature-bar__item:nth-child(n+4) { border-top:1px solid var(--line-soft); }
  .sustainability-commitment { grid-template-columns:minmax(0,1fr); gap:var(--s-6); }
  .sustainability-stats { padding:var(--s-10) var(--s-8); }
}
@media (max-width:767px) {
  .hero--sustainability .hero__eyebrow { flex-direction:column; align-items:flex-start; gap:var(--s-1); }
  .hero--sustainability .hero__eyebrow span + span::before { display:none; }
  .sustainability-features { grid-template-columns:repeat(2,minmax(0,1fr)); }
  .sustainability-features .feature-bar__item:nth-child(n) { border-left:0; border-top:0; }
  .sustainability-features .feature-bar__item:nth-child(even) { border-left:1px solid var(--line-soft); }
  .sustainability-features .feature-bar__item:nth-child(n+3) { border-top:1px solid var(--line-soft); }
  .sustainability-stats { grid-template-columns:repeat(2,minmax(0,1fr)); gap:var(--s-6) 0; padding:var(--s-6) var(--s-4); }
  .sustainability-stats__item:nth-child(3) { border-left:0; }
  .sustainability-stats__item:nth-child(n+3) { border-top:1px solid var(--line); padding-top:var(--s-6); }
}
@media (max-width:576px) {
  .sustainability-block__row { grid-template-columns:minmax(0,1fr); }
}
@media (max-width:479px) {
  .sustainability-features { grid-template-columns:minmax(0,1fr); }
  .sustainability-features .feature-bar__item:nth-child(n) { border-left:0; }
  .sustainability-features .feature-bar__item + .feature-bar__item { border-top:1px solid var(--line-soft); }
}

/* ===== Careers ===== */
.hero--careers { padding-block:var(--s-6) var(--s-12); }
.hero--careers .hero__copy { width:64%; }
.hero--careers .hero__title { max-width:none; font-size:clamp(2rem,1.15rem + 1.85vw,3rem); }
.hero--careers .hero__text { max-width:58ch; font-size:var(--text-button); line-height:1.6; }
.hero--careers .hero__video { max-width:calc(30% - var(--gutter)); }
.careers-features { padding:var(--s-4) var(--s-3); }
.careers-features .feature-bar__item { font-size:var(--text-sm); }
.split-feature { display:grid; grid-template-columns:minmax(0,.8fr) minmax(0,2.4fr); gap:var(--s-10); align-items:center; }
.split-feature > *,.careers-internship > *,.careers-recruitment > * { min-width:0; }
.split-feature__copy .section-title { font-size:1.375rem; line-height:1.2; }
.split-feature__copy > p { margin-block:var(--s-3) var(--s-4); font-size:var(--text-meta); line-height:1.6; }
.card--career .card__body { padding:var(--s-3); }
.card--career .card__title { font-size:var(--text-sm); line-height:1.35; }
.card--career p { margin-top:var(--s-2); font-size:var(--text-meta); line-height:1.5; color:var(--muted); }
.careers-culture,.careers-opportunities,.careers-programs { grid-auto-rows:1fr; }
.card--career-benefit { display:flex; flex-direction:column; align-items:center; gap:var(--s-3); padding:var(--s-5); text-align:center; }
.card--career-benefit > svg { width:var(--career-benefit-icon); height:var(--career-benefit-icon); color:var(--green); }
.card--career-benefit .card__title { font-size:var(--text-meta); line-height:1.35; }
.careers-jobs { gap:var(--s-3); grid-auto-rows:1fr; }
.card--job { display:grid; grid-template-columns:var(--emblem) minmax(0,1fr) var(--s-3); align-items:center; gap:var(--s-2); padding:var(--s-3); text-align:left; }
.card--job .icon-chip { width:var(--emblem); height:var(--emblem); }
.job__content { min-width:0; }
.card--job .card__title { font-size:var(--text-sm); line-height:1.35; }
.job__meta { display:flex; flex-wrap:wrap; align-items:center; gap:var(--s-1) var(--s-2); margin-top:var(--s-2); font-size:var(--text-xs); line-height:1.4; color:var(--muted); }
.job__location { display:inline-flex; align-items:center; gap:var(--s-1); }
.job__location > svg { width:var(--career-pin); height:var(--career-pin); color:var(--green); }
.job__badge { display:inline-flex; flex-shrink:0; white-space:nowrap; border-radius:var(--r-pill); padding:var(--career-badge-y) var(--career-badge-x); background:var(--green-light); color:var(--green-dark); font-size:var(--text-tiny); font-weight:600; }
.job__chevron { width:var(--s-3); height:var(--s-3); color:var(--navy); transition:transform var(--dur) var(--ease); }
.card--job:focus-visible { outline:3px solid var(--green-dark); outline-offset:3px; box-shadow:inset 3px 0 0 var(--green); }
.card--job:focus-visible .job__chevron { transform:translateX(3px); }
@media (hover:hover) {
  .card--job:hover { box-shadow:inset 3px 0 0 var(--green); }
  .card--job:hover .job__chevron { transform:translateX(3px); }
}
.careers-internship { display:grid; grid-template-columns:minmax(0,.85fr) minmax(0,2.2fr); gap:var(--s-10); align-items:center; }
.card--career-program .card__media { aspect-ratio:16/9; }
.careers-recruitment { display:grid; grid-template-columns:minmax(0,2.3fr) minmax(0,.9fr); gap:var(--s-8); align-items:center; }
.careers-recruitment .section-title { font-size:1.375rem; }
.recruitment { display:grid; grid-template-columns:repeat(5,minmax(0,1fr)); gap:var(--s-4); list-style:none; margin:var(--s-4) 0 0; padding:var(--s-5) var(--s-4); background:var(--white); border:1px solid var(--line); border-radius:var(--r); }
.recruitment__step { position:relative; min-width:0; text-align:center; }
.recruitment__circle { position:relative; display:grid; place-items:center; width:var(--career-process-circle); height:var(--career-process-circle); margin:0 auto var(--s-3); border:1px solid var(--line); border-radius:50%; background:var(--white); color:var(--green); }
.recruitment__number { position:absolute; top:calc(-1 * var(--s-2)); left:calc(-1 * var(--s-2)); display:grid; place-items:center; width:var(--career-step-number); height:var(--career-step-number); border-radius:50%; background:var(--green-dark); color:var(--white); font-size:var(--text-xs); font-weight:700; }
.recruitment__step > h3 { font-size:var(--text-meta); line-height:1.4; }
.recruitment__step > p { margin-top:var(--s-1); font-size:var(--text-tiny); line-height:1.5; color:var(--muted); }
.recruitment__connector { position:absolute; right:calc(-1 * var(--s-4)); top:var(--s-4); color:var(--line); }
.recruitment__connector > svg { width:var(--s-5); height:var(--s-5); }
.careers-callout { padding:var(--s-6); border:1px solid var(--career-callout-line); border-radius:var(--r); background:var(--green-light); }
.careers-callout > h3 { font-size:1.0625rem; }
.careers-callout > p { margin-block:var(--s-3) var(--s-4); font-size:var(--text-meta); line-height:1.6; }
.careers-callout > .careers-callout__notice { margin-bottom:0; font-size:var(--text-xs); }
.job-details__meta { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:var(--s-4); margin:0 0 var(--s-5); padding:var(--s-4); border-radius:var(--r-sm); background:var(--bg-alt); }
.job-details__meta dt { color:var(--muted); font-size:var(--text-xs); }
.job-details__meta dd { margin:var(--s-1) 0 0; color:var(--navy); font-size:var(--text-sm); font-weight:600; }
@media (max-width:1399px) {
  .careers-benefits { grid-template-columns:repeat(3,minmax(0,1fr)); }
}
@media (max-width:1199px) {
  .split-feature,.careers-internship { grid-template-columns:minmax(0,1fr); gap:var(--s-5); }
  .split-feature__copy { max-width:70ch; }
}
@media (max-width:1100px) {
  .careers-recruitment { grid-template-columns:minmax(0,1fr); }
  .recruitment { grid-template-columns:repeat(3,minmax(0,1fr)); gap:var(--s-6); }
  .recruitment__connector { display:none; }
}
@media (max-width:991px) {
  .hero--careers .hero__copy { width:100%; max-width:none; }
  .hero--careers .hero__video { max-width:none; }
  .careers-features .feature-bar__item { border:0; padding:var(--s-3); }
  .careers-features .feature-bar__item:not(:nth-child(3n+1)) { border-left:1px solid var(--line-soft); }
  .careers-features .feature-bar__item:nth-child(n+4) { border-top:1px solid var(--line-soft); }
}
@media (max-width:768px) {
  .recruitment { grid-template-columns:repeat(2,minmax(0,1fr)); }
}
@media (max-width:767px) {
  .hero--careers .hero__eyebrow { flex-direction:column; align-items:flex-start; gap:var(--s-1); }
  .hero--careers .hero__eyebrow span + span::before { display:none; }
  .careers-features .feature-bar__item:nth-child(n) { border-left:0; border-top:0; }
  .careers-features .feature-bar__item:nth-child(even) { border-left:1px solid var(--line-soft); }
  .careers-features .feature-bar__item:nth-child(n+3) { border-top:1px solid var(--line-soft); }
  .careers-benefits { grid-template-columns:repeat(2,minmax(0,1fr)); }
}
@media (max-width:575px) {
  .hero--careers .hero__title > br { display:none; }
  .careers-benefits { grid-template-columns:minmax(0,1fr); }
  .careers-features { grid-template-columns:minmax(0,1fr); gap:0; }
  .careers-features .feature-bar__item:nth-child(n) { border-left:0; }
  .careers-features .feature-bar__item + .feature-bar__item { border-top:1px solid var(--line-soft); }
  .job-details__meta { grid-template-columns:minmax(0,1fr); }
}
@media (max-width:480px) {
  .recruitment { grid-template-columns:minmax(0,1fr); }
}

/* ===== Contact ===== */
.hero--contact { min-height:var(--contact-hero-min); padding-block:var(--s-6) var(--s-8); }
.hero--contact .hero__copy { width:64%; }
.hero--contact .hero__title { max-width:none; }
.hero--contact .hero__text { max-width:62ch; font-size:var(--text-button); line-height:1.6; }
.contact-main { display:grid; grid-template-columns:minmax(0,1fr) minmax(0,1.55fr); gap:var(--s-12); align-items:start; }
.contact-main > *,.contact-location > * { min-width:0; }
.contact-details__intro { margin-block:var(--s-4) var(--s-6); max-width:50ch; font-size:var(--text-button); line-height:1.6; color:var(--muted); }
.contact-details__blocks { display:grid; gap:var(--s-5); }
.contact-details__block { display:flex; align-items:flex-start; gap:var(--s-4); }
.contact-details__block > div { min-width:0; }
.contact-details__chip { width:var(--contact-chip); height:var(--contact-chip); border:1px solid var(--line); background:var(--white); box-shadow:var(--sh-sm); }
.contact-details__block h3 { margin-bottom:var(--s-1); font-size:var(--text-button); line-height:1.4; }
.contact-details__block p { font-size:var(--text-sm); line-height:1.6; }
.contact-details__block a { display:inline-flex; align-items:center; min-height:var(--touch); overflow-wrap:anywhere; }
.contact-details__block a:hover { color:var(--green-dark); }
.contact-details .social { margin-left:calc(-1 * var(--s-1)); }
.contact-details .social__tile { width:var(--contact-social-tile); height:var(--contact-social-tile); }
.social__tile--instagram { background:var(--instagram); }
.contact-form { padding:var(--s-8); border:1px solid var(--line); border-radius:var(--r-lg); background:var(--white); box-shadow:var(--sh-md); }
.contact-form__head { display:flex; align-items:flex-start; justify-content:space-between; flex-wrap:wrap; gap:var(--s-3) var(--s-4); margin-bottom:var(--s-4); }
.contact-form__head h2 { font-size:1.375rem; }
.contact-form__head > p { max-width:28ch; text-align:right; font-size:var(--text-meta); line-height:1.5; color:var(--muted); }
.contact-form > .field__help { margin-bottom:var(--s-4); }
.contact-form__cv-notice { margin-bottom:var(--s-4); padding:var(--s-3); border-left:3px solid var(--green); background:var(--green-light); font-size:var(--text-meta); line-height:1.5; }
.contact-form__fields { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:var(--s-5); }
.field { min-width:0; }
.field--wide { grid-column:span 2; }
.field > label { display:block; margin-bottom:var(--s-2); color:var(--ink); font-size:var(--text-sm); font-weight:600; line-height:1.4; }
.field__required,.field__error { color:var(--error); }
.field__control { width:100%; min-width:0; height:var(--form-control); border:1px solid var(--line); border-radius:var(--r-sm); padding-inline:var(--s-4); font:400 var(--text-button)/1.5 var(--font); color:var(--body); background:var(--white); }
.field__control::placeholder { color:var(--muted); opacity:1; }
.field__control:focus-visible { border-color:var(--green-dark); outline:2px solid var(--green-dark); outline-offset:2px; }
.field__control[aria-invalid="true"] { border-color:var(--error); }
textarea.field__control { display:block; height:auto; padding:var(--s-3) var(--s-4); resize:vertical; }
.field__select { position:relative; }
.field__select select { appearance:none; padding-right:var(--s-10); cursor:pointer; }
.field__select > svg { position:absolute; width:var(--s-4); height:var(--s-4); right:var(--s-4); top:50%; transform:translateY(-50%); color:var(--muted); pointer-events:none; }
.field__help,.field__error { margin-top:var(--s-2); font-size:var(--text-xs); line-height:1.5; }
.field__help { color:var(--muted); }
.contact-form__actions { display:flex; flex-wrap:wrap; align-items:center; gap:var(--s-3); margin-top:var(--s-6); }
.contact-form__actions [type="submit"] { min-height:var(--form-submit); padding-inline:var(--s-8); }
.contact-form__status { margin-top:var(--s-4); color:var(--navy); font-size:var(--text-sm); line-height:1.5; }
.contact-form__status:empty { margin-top:0; }
.contact-location { display:grid; grid-template-columns:minmax(0,1.5fr) minmax(0,1fr); gap:var(--s-6); align-items:stretch; }
.contact-location .section-head { gap:var(--s-4); margin-bottom:var(--s-3); }
.contact-location .section-head .link-arrow { flex-shrink:0; }
.area-map { margin:0; }
.area-map__surface { position:relative; isolation:isolate; width:100%; aspect-ratio:3.5/1; min-height:var(--map-min); border:1px solid var(--line); border-radius:var(--r); overflow:hidden; background:var(--bg-alt); }
.area-map__layer { position:absolute; inset:0; z-index:-1; transform:scale(var(--map-zoom,1)); transform-origin:center; }
.area-map__layer > picture { display:block; width:100%; height:100%; }
.area-map__layer img { display:block; width:100%; height:100%; object-fit:cover; }
.area-map__pill { position:absolute; top:58%; left:50%; transform:translate(-50%,-50%); display:flex; align-items:flex-start; gap:var(--s-2); width:max-content; max-width:calc(100% - var(--s-8)); padding:var(--s-3); border-radius:var(--r-sm); background:var(--white); box-shadow:var(--sh-md); }
.area-map__pill::after { content:""; position:absolute; top:100%; left:50%; transform:translateX(-50%); border:var(--s-2) solid transparent; border-top-color:var(--white); }
.area-map__pill > svg { color:var(--error); }
.area-map__pill > div { min-width:0; }
.area-map__pill strong { display:block; color:var(--navy); font-size:var(--text-meta); font-weight:700; line-height:1.4; }
.area-map__pill span { display:block; max-width:32ch; margin-top:var(--s-1); color:var(--muted); font-size:var(--text-xs); line-height:1.5; }
.area-map__controls { position:absolute; top:var(--s-3); right:var(--s-3); display:flex; flex-direction:column; }
.area-map__zoom { position:relative; isolation:isolate; display:grid; place-items:center; width:var(--touch); height:var(--touch); border:0; background:transparent; padding:0; border-radius:var(--r-sm); color:var(--navy); }
.area-map__zoom::before { content:""; position:absolute; inset:var(--s-1); z-index:-1; border:1px solid var(--line); border-radius:var(--r-sm); background:var(--white); box-shadow:var(--sh-sm); }
.area-map__zoom:hover:not(:disabled) { color:var(--green-dark); }
.area-map figcaption { margin-top:var(--s-2); color:var(--muted); font-size:var(--text-xs); line-height:1.5; }
.contact-office { position:relative; isolation:isolate; display:flex; align-items:flex-end; min-height:var(--map-mobile-min); border-radius:var(--r); overflow:hidden; background:var(--navy); }
.contact-office::before { content:""; position:absolute; inset:0; z-index:-1; background:var(--office-overlay); }
.contact-office__image { position:absolute; z-index:-2; inset:0; width:100%; height:100%; object-fit:cover; object-position:70% center; }
.contact-office__copy { padding:var(--s-6); }
.contact-office h3 { color:var(--white); font-size:1.25rem; }
.contact-office p { max-width:48ch; margin-block:var(--s-2) var(--s-4); color:var(--office-caption); font-size:var(--text-meta); line-height:1.5; }
.contact-office :focus-visible { outline-color:var(--green-on-dark); }
.card--department { padding:var(--s-5); }
.department__heading { display:grid; grid-template-columns:var(--contact-social-tile) minmax(0,1fr) var(--s-4); align-items:center; gap:var(--s-3); min-height:var(--touch); }
.department__heading > svg:first-child { width:var(--contact-social-tile); height:var(--contact-social-tile); color:var(--green); }
.department__heading > svg:last-child { width:var(--s-4); height:var(--s-4); color:var(--navy); transition:transform var(--dur) var(--ease); }
.department__heading:hover > svg:last-child { transform:translateX(3px); }
.card--department .card__title { font-size:var(--text-button); line-height:1.35; }
.department__description { margin-block:var(--s-3); font-size:var(--text-meta); line-height:1.5; color:var(--muted); }
.department__contacts { padding-top:var(--s-3); border-top:1px solid var(--line-soft); }
.department__contacts > p { display:flex; align-items:center; gap:var(--s-2); font-size:var(--text-meta); line-height:1.5; }
.department__contacts svg { width:var(--s-4); height:var(--s-4); color:var(--green); }
.department__contacts a { display:inline-flex; align-items:center; min-height:var(--touch); min-width:0; overflow-wrap:anywhere; }
.department__contacts a:hover { color:var(--green-dark); }
@media (min-width:1400px) {
  .page--contact .footer__grid { grid-template-columns:1.35fr 1.25fr 2fr var(--contact-social-row); }
}
@media (max-width:991px) {
  .hero--contact .hero__copy { width:100%; max-width:none; }
  .contact-main,.contact-location { grid-template-columns:minmax(0,1fr); gap:var(--s-6); }
  .area-map__surface { min-height:var(--map-mobile-min); }
}
@media (max-width:767px) {
  .hero--contact .hero__eyebrow { flex-direction:column; align-items:flex-start; gap:var(--s-1); }
  .hero--contact .hero__eyebrow span + span::before { display:none; }
}
@media (max-width:575px) {
  .contact-form { padding:var(--s-4); }
  .contact-form__head > p { text-align:left; }
  .contact-form__fields { grid-template-columns:minmax(0,1fr); }
  .field--wide { grid-column:span 1; }
  .area-map__layer img { object-fit:contain; }
  .contact-location .section-head { gap:var(--s-2); }
}
