html.media-open{overflow:hidden;scrollbar-gutter:stable}.page-return-bar{position:sticky;z-index:50;top:0;display:flex;justify-content:space-between;align-items:center;max-width:1440px;box-sizing:border-box;margin:auto;padding:10px 28px;background:#0b0b0bf5;border-bottom:1px solid #303030;font:11px/1.2 Arial,sans-serif;letter-spacing:.16em;color:#9a9a9a}.page-return-bar button{border:1px solid #555;color:#fff;background:#181818;padding:10px 18px;font:14px Arial,sans-serif;cursor:pointer}.gromko-media-dialog{box-sizing:border-box;width:100vw;height:100dvh;max-width:none;max-height:none;margin:0;padding:0;border:0;background:#0b0b0bf7;color:white;font:16px/1.3 Manrope,Arial,sans-serif;overflow:hidden}.gromko-media-dialog[open]{display:grid;grid-template-rows:72px minmax(0,1fr) 84px}.gromko-media-dialog::backdrop{background:#050505}.gromko-media-dialog header,.gromko-media-dialog footer{display:flex;align-items:center;padding:12px 32px;gap:24px;border-bottom:1px solid #383838}.gromko-media-dialog footer{border-top:1px solid #383838;border-bottom:0;justify-content:space-between}.gromko-media-dialog button{font:inherit;color:white;background:#1d1d1d;border:1px solid #606060;cursor:pointer;min-height:44px;padding:10px 18px}.gromko-media-dialog button:hover{background:#333}.gromko-media-dialog button:focus-visible{outline:2px solid white;outline-offset:4px}.media-brand{font-size:12px;letter-spacing:.16em;margin-right:auto;color:#aaa}.media-close b{font-size:24px;font-weight:400;margin-left:18px;line-height:1}.media-stage{min-height:0;overflow:auto;display:flex;align-items:center;justify-content:center;padding:22px;box-sizing:border-box;touch-action:pan-y}.media-stage img{display:block;max-width:100%;max-height:100%;object-fit:contain}.is-zoomed .media-stage{display:block;touch-action:pan-x pan-y}.is-zoomed .media-stage img{width:180%;max-width:none;max-height:none;margin:auto}.media-caption{display:flex;flex-direction:column;gap:7px}.media-caption strong{font-size:16px;font-weight:500}.media-caption span{font-size:12px;color:#aaa;letter-spacing:.1em}.media-arrows{display:flex;gap:10px}.media-arrows button{width:54px;font-size:23px}.media-arrows[hidden]{display:none}@media(max-width:600px){.page-return-bar{padding:8px 16px}.gromko-media-dialog[open]{grid-template-rows:64px minmax(0,1fr) 96px}.gromko-media-dialog header,.gromko-media-dialog footer{padding:10px 16px;gap:10px}.media-brand{display:none}.gromko-media-dialog .media-close{margin-left:auto}.media-stage{padding:8px}.media-caption strong{font-size:13px}.media-arrows button{width:44px;padding:6px}.gromko-media-dialog button{font-size:13px}.media-close b{margin-left:6px}}

html.contact-dialog-open { overflow: hidden; }
.gromko-contact-dialog {
  box-sizing: border-box; width: min(960px,calc(100vw - 48px)); max-width: none;
  max-height: calc(100dvh - 48px); padding: 30px 38px 38px; margin: auto;
  color: #f6f6f6; background: radial-gradient(ellipse at 0 0,#262626,#101010 60%);
  border: 1px solid #555; border-radius: 4px; overflow: auto;
  font: 400 14px/1.5 Manrope,Arial,sans-serif; box-shadow: 0 30px 100px #000a;
}
.gromko-contact-dialog * { box-sizing: border-box; }
.gromko-contact-dialog::backdrop { background: #000b; backdrop-filter: blur(8px); }
.contact-dialog-heading { display: flex; align-items: center; justify-content: space-between; gap: 24px; padding-bottom: 24px; margin-bottom: 32px; border-bottom: 1px solid #ffffff25; }
.contact-dialog-heading > span { font-size: 10px; letter-spacing: .12em; color: #aaa; }
.contact-dialog-close { border: 0; background: none; color: #ccc; padding: 6px; font: inherit; cursor: pointer; }
.contact-dialog-grid { display: grid; grid-template-columns: 1fr 1.15fr; gap: 54px; }
.contact-dialog-info h2 { margin: 0 0 22px; font: 700 clamp(32px,4.2vw,50px)/1.05 Manrope,Arial,sans-serif; letter-spacing: -.045em; }
.contact-dialog-info p { color: #aaa; margin: 0 0 30px; line-height: 1.65; }
.contact-dialog-info a { display: block; color: #ddd; text-decoration: none; }
.contact-dialog-phone { font-size: 25px; letter-spacing: -.035em; white-space: nowrap; }
.contact-dialog-email { margin-top: 13px; color: #ddd; font-size: 25px; letter-spacing: -.035em; }
.contact-dialog-channels { display: flex; flex-wrap: wrap; gap: 12px; margin-top: 24px; }
.contact-dialog-channels a { border: 1px solid #ffffff35; padding: 10px 14px; font-size: 12px; }
.contact-dialog-form { display: grid; gap: 18px; align-content: start; }
.contact-dialog-form label { display: grid; gap: 8px; font-size: 12px; color: #bbb; }
.contact-dialog-form input,.contact-dialog-form textarea { display: block; width: 100%; color: #fff; border: 1px solid #4b4b4b; background: #0b0b0b; border-radius: 2px; padding: 13px 15px; font: 400 14px/1.5 Manrope,Arial,sans-serif; }
.contact-dialog-form input::placeholder,.contact-dialog-form textarea::placeholder { color: #777; }
.contact-dialog-form textarea { resize: vertical; min-height: 95px; max-height: 240px; }
.contact-dialog-submit { display: flex; align-items: center; justify-content: space-between; gap: 22px; padding: 15px 20px; min-height: 56px; background: #e8e8e8; color: #111; border: 1px solid #e8e8e8; border-radius: 2px; cursor: pointer; font: 600 14px/1.5 Manrope,Arial,sans-serif; }
.contact-dialog-submit span { font-size: 25px; font-weight: 400; }
.contact-dialog-note { margin: -5px 0 0; font-size: 11px; line-height: 1.5; color: #888; }
.gromko-contact-dialog :is(a,button):hover { color: #fff; border-color: #aaa; }
.gromko-contact-dialog .contact-dialog-submit:hover { color: #111; background: #fff; }
.gromko-contact-dialog :is(a,button,input,textarea):focus-visible { outline: 2px solid #aaa; outline-offset: 3px; }
.gromko-preview button.contacts-call { cursor: pointer; text-align: left; }
@media(max-width:650px) {
 .gromko-contact-dialog { width: calc(100vw - 24px); max-height: calc(100dvh - 24px); padding: 20px; }
 .contact-dialog-heading { margin-bottom: 24px; padding-bottom: 18px; }
 .contact-dialog-grid { grid-template-columns: 1fr; gap: 28px; }
 .contact-dialog-info h2 { font-size: 36px; }
 .contact-dialog-info h2 br { display: none; }
 .contact-dialog-info p { margin-bottom: 20px; }
 .contact-dialog-channels { margin-top: 18px; }
 .contact-dialog-phone,.contact-dialog-email { font-size: 26px; }
 .contact-dialog-form { gap: 15px; }
}

.gromko-preview .approach-slide.is-drawing,
.gromko-preview .service-visual.technical-visual > :is(a,button),
.gromko-preview .service-grid a[href$="/engineering/"] .service-card-media { background: #0c0c0c; }
.gromko-preview .approach-slide.is-drawing img,
.gromko-preview .technical-visual .media-trigger img,
.gromko-preview .service-grid a[href$="/engineering/"] img {
  filter: grayscale(1) invert(1) brightness(.8);
  mix-blend-mode: screen;
}
.gromko-media-dialog.is-technical .media-stage { background: #0c0c0c; }
.gromko-media-dialog.is-technical .media-stage img {
  filter: grayscale(1) invert(1) brightness(.8);
  mix-blend-mode: screen;
}

html.hero-film-open { overflow: hidden; }
.gromko-film-dialog { width: min(1080px,calc(100vw - 36px)); max-width: none; max-height: calc(100svh - 36px); padding: 0; margin: auto; background: #080808; color: #fff; border: 1px solid #454545; }
.gromko-film-dialog::backdrop { background: rgba(0,0,0,.86); }
.gromko-film-dialog header { display: flex; align-items: center; justify-content: space-between; gap: 16px; padding: 18px 22px; font: 500 13px/1.4 Manrope,Arial,sans-serif; color: #bbb; }
.gromko-film-dialog header button { font: 500 15px/1.4 Manrope,Arial,sans-serif; color: #fff; background: transparent; border: 1px solid #777; cursor: pointer; padding: 10px 14px; min-height: 44px; }
.gromko-film-dialog video { display: block; width: 100%; height: auto; aspect-ratio: 16 / 9; max-height: calc(100svh - 122px); object-fit: contain; background: #000; }
.gromko-film-dialog button:focus-visible { outline: 2px solid #fff; outline-offset: 3px; }
@media(max-width:760px) { .gromko-film-dialog { width: calc(100vw - 20px); } .gromko-film-dialog header { padding: 12px; font-size: 11px; } }

/* The same palette for parent-owned overlays; no change to media or behavior. */
.gromko-contact-dialog { background: radial-gradient(ellipse at 90% 0,#19365b,transparent 65%),#171a20; color: #f1f3f7; border-color: #74839980; }
.gromko-contact-dialog :is(.contact-dialog-info p,.contact-dialog-form label,.contact-dialog-heading>span) { color: #c7ccd5; }
.gromko-contact-dialog :is(input,textarea) { background: #141b26; border-color: #74839980; }
.gromko-contact-dialog :is(input,textarea)::placeholder { color: #9caabd; }
.gromko-contact-dialog :is(a,button,input,textarea):focus-visible { outline-color: #8ebaf0; }
.gromko-film-dialog { background: #171a20; border-color: #74839980; }
.gromko-film-dialog header { background: #1b2432; color: #d6dde8; }

/* Public document: original screen styles remain intact above this layer. */
:root{--font-sans:Manrope,Arial,sans-serif;color-scheme:dark}
html{min-height:100%;scroll-behavior:smooth;background:#171a20}
body{min-height:100%;height:auto;margin:0;background:#171a20;color:#f1f3f7;font-family:Manrope,Arial,sans-serif}
html.contact-dialog-open,html.media-open,html.hero-film-open{overflow:hidden}
.gromko-preview{max-width:none!important}
.page-return-bar{position:relative;z-index:5;display:flex;align-items:center;justify-content:space-between;padding:12px 4.5%;border-bottom:1px solid #74839940;background:#171a20;font-size:12px;color:#c7ccd5}
.page-return-bar button{padding:10px 16px;background:#202b3b;border:1px solid #74839966;color:#f1f3f7;font:inherit;cursor:pointer}
.contact-submit-status{font-size:14px;line-height:1.5;color:#c7ccd5}
.contact-dialog-form [name=website]{position:absolute;left:-10000px;opacity:0}
.contact-dialog-form .contact-consent{display:flex;align-items:flex-start;gap:10px;font-size:12px;line-height:1.5;color:#c7ccd5}
.contact-dialog-form .contact-consent input{width:16px;height:16px;margin:3px 0 0;flex:none;padding:0}
.contact-dialog-submit:disabled{opacity:.6;cursor:wait}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}}
