/* Condr Grup experience — September 2026. Clear choices, quiet surfaces, real work. */
:root {
  --ex-ink: #171a20; --ex-secondary: #393c41; --ex-blue: #3e6ae1; --ex-blue-hover: #3457b7;
  --ex-surface: #f4f4f4; --ex-white: #fff; --ex-line: #e2e3e5;
  --ex-font: -apple-system,BlinkMacSystemFont,"Segoe UI",Arial,sans-serif;
  --ex-gutter: clamp(24px,4vw,64px); --ex-header-height: 64px;
  --ink: #171a20; --ink-soft: #393c41; --paper: #fff; --paper-light: #fff; --concrete: #f4f4f4;
  --orange: #3e6ae1; --orange-dark: #3457b7; --muted: #5c5e62; --line: #e2e3e5;
  --display: var(--ex-font); --heading: var(--ex-font); --serif: var(--ex-font); --mono: var(--ex-font);
}
html { scroll-padding-top: 90px; }
body { color: var(--ex-ink); background: #fff; font-family: var(--ex-font); font-size: 16px; line-height: 1.55; }
body:has(dialog[open]) { overflow: hidden; }
button,input,select,textarea { font-family: inherit; }
button,a,input,select,textarea,summary { -webkit-tap-highlight-color: transparent; }
h1,h2,h3,h4,.display { font-family: var(--ex-font); font-weight: 550; letter-spacing: -.035em; text-transform: none; }
::selection { background: #3e6ae133; color: #171a20; }
:focus-visible { outline: 3px solid #3e6ae1; outline-offset: 4px; }
[hidden] { display: none!important; }
.site-grain { display: none; }
.ex-home { overflow: clip; }
.ex-section { width: min(1440px,100%); margin-inline: auto; padding: clamp(64px,7vw,104px) var(--ex-gutter); }
.ex-section-heading { display: flex; align-items: flex-end; justify-content: space-between; gap: 32px; margin-bottom: 32px; }
.ex-section-heading h2 { margin: 0; font-size: clamp(30px,3.4vw,48px); line-height: 1.15; }
.ex-section-heading p { max-width: 560px; margin: 14px 0 0; color: #5c5e62; font-size: 16px; }
.ex-section-heading a { flex-shrink: 0; font-size: 14px; font-weight: 550; text-decoration: underline; text-underline-offset: 5px; }
.ex-button { display: inline-flex; align-items: center; justify-content: center; gap: 12px; min-width: 200px; min-height: 44px; padding: 11px 25px; border: 2px solid transparent; border-radius: 4px; background: #3e6ae1; color: #fff; font-size: 14px; line-height: 1.3; font-weight: 600; text-align: center; cursor: pointer; text-decoration: none; transition: background-color .2s,color .2s,box-shadow .2s; }
.ex-button:hover { background: #3457b7; }
.ex-button.secondary { background: #f4f4f4; color: #393c41; }
.ex-button.secondary:hover { background: #e5e5e5; }
.ex-button.outline { background: transparent; border-color: currentColor; color: inherit; }
.ex-button.outline:hover { background: #171a20; color: #fff; border-color: #171a20; }
.ex-button:disabled { opacity: .5; cursor: not-allowed; }

/* A light fixed navigation shell; service discovery remains one step away. */
.ex-header { position: fixed; z-index: 1000; top: 0; left: 0; right: 0; height: var(--ex-header-height); display: flex; align-items: center; justify-content: space-between; gap: 28px; padding: 0 clamp(24px,3.3vw,48px); color: #171a20; background: transparent; transition: background .25s,color .25s,box-shadow .25s; }
.ex-header.on-dark { color: #fff; }
.ex-header.is-scrolled,.ex-header:has(.ex-mega-panel:not([hidden])),.ex-header.menu-open { color: #171a20; background: #fffffff5; backdrop-filter: blur(15px); box-shadow: 0 1px 0 #0000000d; }
.ex-logo { display: block; width: 160px; flex: 0 0 160px; }
.ex-logo img { display: block; width: 100%; height: auto; }
.ex-header.on-dark:not(.is-scrolled):not(.menu-open):not(.menu-active) .ex-logo img { filter: brightness(0) invert(1); }
.ex-header.on-dark:has(.ex-mega-panel:not([hidden])) .ex-logo img { filter: none; }
.ex-nav { display: flex; align-items: center; gap: 4px; }
.ex-nav > a,.ex-nav > button { min-height: 36px; padding: 8px 13px; border: 0; border-radius: 4px; background: transparent; color: inherit; font-size: 14px; font-weight: 550; cursor: pointer; white-space: nowrap; }
.ex-nav > a:hover,.ex-nav > button:hover,.ex-nav > button[aria-expanded="true"] { background: #0000000d; }
.ex-utilities { display: flex; align-items: center; gap: 8px; }
.ex-utilities > a,.ex-utilities > button,.ex-utilities select { display: inline-flex; align-items: center; justify-content: center; min-width: 38px; min-height: 36px; padding: 7px 10px; border: 0; border-radius: 4px; background: transparent; color: inherit; font-size: 14px; font-weight: 550; cursor: pointer; }
.ex-utilities > a:hover,.ex-utilities > button:hover { background: #0000000d; }
.ex-utilities svg { width: 22px; height: 22px; }
.ex-mega-panel { position: absolute; z-index: 1001; top: 64px; left: 0; right: 0; display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); gap: 32px; padding: 38px max(var(--ex-gutter),calc((100vw - 1280px)/2)) 48px; background: #fff; color: #171a20; box-shadow: 0 20px 30px #0000000d; }
.ex-mega-panel a { display: block; font-size: 16px; font-weight: 550; }
.ex-mega-panel p,.ex-mega-panel small { color: #5c5e62; font-size: 14px; font-weight: 400; }
.ex-mega-panel img { width: 100%; max-height: 160px; border-radius: 8px; object-fit: cover; }
.ex-mega-panel h3 { margin: 15px 0 7px; font-size: 20px; }
.ex-menu { width: min(460px,100%); height: 100dvh; max-height: none; max-width: none; margin: 0 0 0 auto; padding: 24px 32px 40px; border: 0; background: #fff; color: #171a20; }
.ex-menu::backdrop,.ex-dialog::backdrop { background: #171a2066; backdrop-filter: blur(5px); }
.ex-menu a { display: block; padding: 16px 0; color: #171a20; font-size: 20px; font-weight: 550; }
.ex-menu button { border: 0; background: #f4f4f4; border-radius: 4px; min-width: 40px; min-height: 40px; cursor: pointer; }
.ex-menu header,.ex-menu-head { display: flex; justify-content: flex-end; margin-bottom: 26px; }
.ex-menu .ex-menu-services a { padding: 11px 0; font-size: 16px; font-weight: 400; }

/* The hero is one calm full-viewport composition. Slide motion belongs to the image. */
.ex-hero { position: relative; min-height: 650px; height: min(920px,100svh); isolation: isolate; background: #e9edf0; }
.ex-slide { position: absolute; inset: 0; overflow: hidden; opacity: 0; visibility: hidden; transition: opacity .8s ease,visibility .8s; pointer-events: none; }
.ex-slide.is-active { opacity: 1; visibility: visible; pointer-events: auto; z-index: 2; }
.ex-media,.ex-media picture,.ex-media > img,.ex-media picture > img { position: absolute; inset: 0; display: block; width: 100%; height: 100%; }
.ex-media img { object-fit: cover; object-position: center; }
.ex-media::after { content: ""; position: absolute; inset: 0; pointer-events: none; background: linear-gradient(180deg,#ffffff38,transparent 48%,#171a2026); }
.ex-placeholder { position: absolute; inset: 0; display: grid; place-items: center; padding: 230px 12% 90px; background: linear-gradient(155deg,#eef1f2,#dce2e5); overflow: hidden; }
.ex-placeholder::before { content: ""; position: absolute; left: -12%; right: -12%; height: 1px; top: 72%; transform: rotate(-9deg); background: #ffffffa6; box-shadow: 0 70px 0 #ffffff73; }
.ex-placeholder img { position: relative; width: min(650px,68vw); max-height: 180px; object-fit: contain; opacity: .2; }
.ex-placeholder[data-scene="warm"],.ex-slide:nth-child(2) .ex-placeholder { background: linear-gradient(150deg,#eeeae5,#e0dcd6); }
.ex-placeholder[data-scene="cool"],.ex-slide:nth-child(3) .ex-placeholder { background: linear-gradient(150deg,#e8edf0,#d2dce2); }
.ex-slide-copy { position: relative; z-index: 3; width: min(1000px,calc(100% - 48px)); margin-inline: auto; padding-top: clamp(114px,15vh,155px); text-align: center; color: #171a20; }
.ex-slide-copy h1,.ex-slide-copy h2 { margin: 0; font-size: clamp(38px,4.5vw,64px); line-height: 1.12; font-weight: 550; letter-spacing: -.045em; text-wrap: balance; }
.ex-slide-copy p { max-width: 750px; margin: 14px auto 0; color: inherit; font-size: clamp(16px,1.4vw,20px); line-height: 1.5; text-wrap: balance; }
.ex-slide.on-dark .ex-slide-copy,.ex-service-hero.on-dark .ex-slide-copy { color: #fff; text-shadow: 0 1px 16px #0005; }
.ex-slide-actions { display: flex; justify-content: center; flex-wrap: wrap; gap: 16px; margin-top: 25px; }
.ex-slide-actions .ex-button { min-width: 230px; }
.ex-hero-controls { position: absolute; z-index: 5; bottom: 28px; left: 50%; transform: translateX(-50%); display: flex; align-items: center; justify-content: center; gap: 12px; padding: 8px 12px; border-radius: 30px; background: #ffffffc9; backdrop-filter: blur(10px); }
.ex-hero-controls button { display: grid; place-items: center; width: 36px; height: 36px; padding: 0; border: 0; border-radius: 50%; background: transparent; color: #171a20; font-size: 20px; cursor: pointer; }
.ex-hero-controls button:hover { background: #171a2012; }
.ex-hero-controls .ex-dots { display: flex; gap: 8px; align-items: center; }
.ex-hero-controls .ex-dot,.ex-hero-controls [data-slide-dot] { width: 24px; height: 32px; position: relative; }
.ex-hero-controls .ex-dot::before,.ex-hero-controls [data-slide-dot]::before { content: ""; width: 7px; height: 7px; border-radius: 50%; background: #9b9da1; }
.ex-hero-controls .ex-dot.is-active::before,.ex-hero-controls [aria-current="true"]::before,.ex-hero-controls [aria-selected="true"]::before { background: #171a20; }

/* Service browsing has its own horizontal lane; vertical scrolling stays native. */
.ex-catalog { display: flex; align-items: stretch; gap: 24px; overflow-x: auto; scroll-snap-type: x proximity; scrollbar-width: thin; scrollbar-color: #c5c6c8 transparent; padding: 0 0 22px; scroll-padding-inline: 0; }
.ex-service-card { position: relative; flex: 0 0 min(520px,43vw); min-width: 0; background: #f4f4f4; border-radius: 12px; overflow: hidden; scroll-snap-align: start; display: flex; flex-direction: column; }
.ex-card-media { position: relative; height: clamp(230px,26vw,365px); overflow: hidden; background: #e9ecef; }
.ex-card-media img,.ex-card-media picture { display: block; width: 100%; height: 100%; object-fit: cover; }
.ex-card-media .ex-placeholder { padding: 40px; }
.ex-card-media .ex-placeholder img { width: 75%; opacity: .28; }
.ex-card-copy { display: flex; flex-direction: column; flex: 1; padding: 27px 32px 32px; }
.ex-card-copy h3 { margin: 0 0 9px; font-size: clamp(25px,2.4vw,34px); line-height: 1.2; }
.ex-card-copy p { color: #5c5e62; margin: 0 0 24px; font-size: 16px; }
.ex-card-actions { display: flex; align-items: center; flex-wrap: wrap; gap: 12px; margin-top: auto; }
.ex-card-actions .ex-button { flex: 1; min-width: 140px; padding-inline: 15px; }
.ex-card-actions .ex-button.secondary { background: #fff; }
.ex-card-actions .ex-button.secondary:hover { background: #e5e5e5; }
.ex-wide-feature { position: relative; min-height: 560px; height: 65svh; overflow: hidden; background: #e7ebee; isolation: isolate; }
.ex-wide-feature .ex-placeholder { padding: 120px 10% 160px; }
.ex-wide-feature .ex-placeholder img { width: min(600px,55vw); opacity: .14; }
.ex-feature-copy { position: absolute; z-index: 3; left: max(var(--ex-gutter),calc((100vw - 1312px)/2)); right: var(--ex-gutter); bottom: 48px; max-width: 750px; }
.ex-feature-copy h2 { margin: 0 0 12px; font-size: clamp(35px,4vw,56px); line-height: 1.15; text-wrap: balance; }
.ex-feature-copy p { max-width: 580px; font-size: 17px; margin-bottom: 24px; }
.ex-feature-copy .ex-slide-actions { justify-content: flex-start; }
.ex-wide-feature.on-dark .ex-feature-copy { color: #fff; text-shadow: 0 1px 10px #0004; }
.ex-wide-feature.on-dark .ex-media::after { background: linear-gradient(180deg,transparent 30%,#0009); }
.ex-audience { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 24px; }
.ex-audience-card { padding: clamp(30px,4vw,58px); border-radius: 12px; background: #f4f4f4; display: flex; flex-direction: column; align-items: flex-start; }
.ex-audience-card h2 { margin-bottom: 16px; font-size: clamp(30px,3.2vw,44px); line-height: 1.18; }
.ex-audience-card p { max-width: 540px; color: #5c5e62; margin-bottom: 26px; }
.ex-audience-card .ex-button { margin-top: auto; }
.ex-audience-card:nth-child(2) { background: #edf1f7; }
.ex-projects { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); gap: 24px; }
.ex-project-card { min-width: 0; }
.ex-project-card > img,.ex-project-card > a > img { width: 100%; height: 265px; object-fit: cover; border-radius: 12px; }
.ex-project-card > .ex-card-media,.ex-project-card > a > .ex-card-media { height: 265px; border-radius: 12px; }
.ex-project-info { padding: 23px 0 0; }
.ex-project-info h3 { margin: 0 0 10px; font-size: 24px; line-height: 1.25; }
.ex-project-info p { font-size: 15px; color: #5c5e62; margin-bottom: 12px; }
.ex-project-info a { font-size: 14px; text-decoration: underline; text-underline-offset: 4px; }

/* Service pages repeat the same interaction grammar as the homepage. */
.ex-service-hero { position: relative; height: min(850px,94svh); min-height: 610px; overflow: hidden; background: #e9edf0; }
.ex-service-hero .ex-slide-copy { padding-top: clamp(125px,17vh,180px); }
.ex-service-bar { position: sticky; z-index: 900; top: var(--ex-header-height); display: flex; justify-content: space-between; align-items: center; flex-wrap: wrap; gap: 15px; min-height: 66px; padding: 12px var(--ex-gutter); background: #fffffff2; backdrop-filter: blur(15px); border-bottom: 1px solid #e2e3e5; }
.ex-service-bar strong { font-weight: 550; font-size: 16px; }
.ex-service-bar nav { display: flex; align-items: center; gap: 26px; }
.ex-service-bar a:not(.ex-button) { font-size: 14px; font-weight: 550; }
.ex-service-bar .ex-button { min-width: 150px; min-height: 38px; padding: 8px 18px; }
.ex-benefits { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); gap: 40px; }
.ex-benefits > * { min-width: 0; padding: 10px 0; }
.ex-benefits h3 { font-size: 23px; line-height: 1.3; margin-bottom: 15px; }
.ex-benefits p { font-size: 16px; color: #5c5e62; line-height: 1.7; }
.ex-benefits svg { width: 32px; height: 32px; margin-bottom: 20px; stroke: #393c41; }
.ex-steps { display: flex; gap: 34px; counter-reset: steps; }
.ex-steps > * { flex: 1; min-width: 0; position: relative; padding-top: 26px; border-top: 2px solid #e2e3e5; }
.ex-steps .number,.ex-steps > * > span:first-child { display: block; color: #5c5e62; font-size: 14px; margin-bottom: 26px; }
.ex-steps h3 { font-size: 23px; margin-bottom: 12px; }
.ex-steps p { color: #5c5e62; font-size: 16px; }
.ex-faq { max-width: 900px; margin-inline: auto; }
.ex-faq details { border-bottom: 1px solid #e2e3e5; }
.ex-faq details:first-child { border-top: 1px solid #e2e3e5; }
.ex-faq summary { position: relative; display: flex; align-items: center; justify-content: space-between; gap: 25px; list-style: none; font-size: 19px; font-weight: 550; padding: 25px 0; cursor: pointer; }
.ex-faq summary::-webkit-details-marker { display: none; }
.ex-faq summary::after { content: "+"; font-size: 25px; font-weight: 400; line-height: 1; }
.ex-faq details[open] summary::after { content: "−"; }
.ex-faq summary > span[aria-hidden] { display: none; }
.ex-faq p { max-width: 780px; padding-right: 36px; margin-bottom: 25px; color: #5c5e62; font-size: 16px; line-height: 1.8; }
.ex-contact-layout { display: grid; grid-template-columns: .9fr 1.1fr; gap: clamp(45px,8vw,120px); align-items: start; }
.ex-contact-layout h2 { margin-bottom: 22px; font-size: clamp(32px,3.4vw,48px); line-height: 1.2; }
.ex-contact-layout p { max-width: 530px; color: #5c5e62; }
.ex-contact-layout a[href^="tel:"],.ex-contact-layout a[href^="mailto:"] { display: block; margin: 15px 0; font-size: 20px; font-weight: 550; }

/* A single compact lead form, with native dialog semantics. */
.ex-dialog { position: fixed; width: min(520px,calc(100% - 32px)); max-width: 520px; max-height: calc(100dvh - 48px); padding: 30px; border: 0; border-radius: 12px; background: #fff; color: #171a20; box-shadow: 0 20px 90px #0003; }
.ex-dialog-head { display: flex; justify-content: space-between; align-items: flex-start; gap: 25px; margin-bottom: 24px; }
.ex-dialog-head h2 { font-size: 28px; line-height: 1.2; margin: 0; font-weight: 550; }
.ex-dialog-head p { margin: 10px 0 0; color: #5c5e62; font-size: 14px; }
.ex-dialog-head button { display: grid; place-items: center; flex: 0 0 36px; width: 36px; height: 36px; padding: 0; border: 0; border-radius: 4px; background: #f4f4f4; color: #171a20; font-size: 24px; cursor: pointer; }
.ex-form { display: grid; gap: 18px; }
.ex-form label { display: block; color: #5c5e62; font-size: 14px; font-weight: 550; line-height: 1.5; }
.ex-form input:not([type="checkbox"]):not([type="radio"]),.ex-form select,.ex-form textarea { width: 100%; display: block; margin-top: 8px; min-height: 45px; padding: 11px 14px; border: 1px solid transparent; border-radius: 4px; outline-offset: 2px; background: #f4f4f4; color: #171a20; font-size: 16px; font-weight: 400; line-height: 1.5; }
.ex-form input:hover,.ex-form select:hover,.ex-form textarea:hover { background: #eee; }
.ex-form input:focus,.ex-form select:focus,.ex-form textarea:focus { border-color: #aaa; outline: 2px solid #3e6ae1; }
.ex-form textarea { min-height: 96px; resize: vertical; }
.ex-form input[type="checkbox"],.ex-form input[type="radio"] { width: 18px; height: 18px; accent-color: #3e6ae1; vertical-align: middle; margin: 0 9px 0 0; }
.ex-form label:has(input[type="checkbox"]) { display: flex; align-items: flex-start; gap: 10px; font-size: 13px; font-weight: 400; line-height: 1.65; }
.ex-form label:has(input[type="checkbox"]) input { flex-shrink: 0; margin: 2px 0 0; }
.ex-form label:has(input[type="radio"]) { padding: 13px 15px; border: 1px solid #e2e3e5; border-radius: 4px; cursor: pointer; }
.ex-form label:has(input[type="radio"]:checked) { border-color: #3e6ae1; background: #f0f4ff; color: #171a20; }
.ex-form-step { display: grid; gap: 18px; border: 0; padding: 0; margin: 0; min-width: 0; }
.ex-form-step legend { font-size: 17px; font-weight: 550; margin-bottom: 18px; }
.ex-form-actions { display: flex; gap: 12px; justify-content: space-between; align-items: center; margin-top: 6px; }
.ex-form-actions .ex-button { flex: 1; min-width: 0; }
.ex-form .form-status { margin: 0; font-size: 14px; color: #5c5e62; line-height: 1.6; min-height: 0; }
.ex-form .form-status:empty { display: none; }
.ex-form .form-status.success { color: #216635; }
.ex-form .form-status.error { color: #a21b21; }
.ex-form a { text-decoration: underline; text-underline-offset: 3px; }
.ex-form-note { color: #5c5e62; font-size: 13px; margin: 0; }
.ex-footer { background: #fff; color: #5c5e62; padding: 36px 24px 26px; text-align: center; }
.ex-footer nav,.ex-footer-links { display: flex; justify-content: center; flex-wrap: wrap; gap: 12px 25px; }
.ex-footer a,.ex-footer p,.ex-footer small { font-size: 12px; line-height: 1.65; font-weight: 550; }
.ex-footer p { margin: 20px auto 0; max-width: 800px; font-weight: 400; }
.ex-footer a:hover { color: #171a20; text-decoration: underline; }

/* Keep the working map, while giving it the same quiet product-page treatment. */
.cg-map-section { background: #f4f4f4; }
.cg-map-section .display { font-size: clamp(30px,3.4vw,48px); text-transform: none; line-height: 1.15; font-weight: 550; letter-spacing: -.035em; }
.cg-map-section .eyebrow { font-size: 14px; text-transform: none; letter-spacing: 0; font-weight: 400; color: #5c5e62; margin-bottom: 12px; }
.cg-map-section .eyebrow::before { display: none; }
.cg-map-layout { border: 0; border-radius: 12px; overflow: hidden; background: #fff; grid-template-columns: 1.65fr 1fr; }
.cg-map-frame > .cg-map { min-height: 430px; }
.cg-map-section.is-full .cg-map { min-height: 520px; }
.cg-map-list { padding: 8px 28px; }
.cg-map-item strong { font-family: var(--ex-font); font-size: 20px; font-weight: 550; letter-spacing: -.02em; }
.cg-map-item { padding-block: 26px; }
.cg-map-item.active,.cg-map-item.active > span:first-child { color: #3457b7; }
.cg-map-item.active::before { background: #3e6ae1; border-radius: 3px; }
.cg-map-reset { background: #fff; color: #393c41; border-color: #e2e3e5; font-weight: 550; }
.cg-map-reset:hover { background: #f4f4f4; color: #171a20; }
.cg-map-pin > span,.cg-map-pin::before { background: #3e6ae1; }
.cg-map-pin.selected > span { background: #171a20; box-shadow: 0 0 0 4px #3e6ae133,0 3px 10px #0003; }
.cg-map-note { font-size: 13px; }
.cg-map .leaflet-popup-content strong { font-family: var(--ex-font); font-size: 18px; font-weight: 550; }
.cg-popup a { color: #3457b7!important; }
.cg-map .leaflet-popup-content-wrapper { border-radius: 8px; }

/* Legacy inner pages retain their content and forms, without the former visual identity. */
.display { text-transform: none; font-size: clamp(36px,4.7vw,66px); line-height: 1.12; font-weight: 550; letter-spacing: -.035em; }
.display em,.serif { font-style: normal; font-family: var(--ex-font); font-weight: inherit; letter-spacing: inherit; }
.eyebrow { text-transform: none; letter-spacing: 0; font-weight: 400; font-size: 14px; }
.eyebrow::before { display: none; }
.button { border-radius: 4px; min-height: 44px; font-size: 14px; padding: 12px 22px; font-weight: 550; }
.button:hover { transform: none; box-shadow: none; }
.button-dark { background: #171a20; }
.text-link { font-weight: 500; font-size: 14px; }
.page-hero { min-height: 440px; padding-top: 170px; padding-bottom: 65px; background: #f4f4f4; color: #171a20; }
.page-hero::after { background: #f4f4f4; }
.page-hero h1,.case-hero h1 { font-family: var(--ex-font); font-weight: 550; font-size: clamp(40px,5.4vw,72px); text-transform: none; letter-spacing: -.04em; }
.page-hero h1 em,.case-hero h1 em { font-family: var(--ex-font); color: inherit; font-style: normal; letter-spacing: inherit; }
.page-hero p:not(.eyebrow),.page-hero .eyebrow { color: #5c5e62; }
.page-hero .breadcrumb { color: #5c5e62; font-size: 13px; }
.dark { background: #f4f4f4; color: #171a20; }
.dark .lede,.dark .cg-section-head p:not(.eyebrow),.dark .cg-section-head .eyebrow,.dark .cg-process p { color: #5c5e62; }
.dark .cg-process .number,.dark .cg-project-meta .eyebrow { color: #3457b7; }
.dark .cg-process,.dark .cg-process > * { border-color: #e2e3e5; }
.dark .cg-project-meta p { color: #5c5e62; }
.cg-flip-front { background: #e9edf0; background-image: none; border: 0; border-radius: 12px; }
.cg-flip-front img { filter: none; opacity: .6; }
.cg-flip-front > .cg-project-number,.cg-flip-front .cg-flip-hint { color: #5c5e62; }
.cg-flip-front::after { color: #5c5e62; }
.cg-flip-back { background: #3e6ae1; border-radius: 12px; }
.cg-flip-back .eyebrow { color: #fff; }
.cg-project-meta h3 { font-size: 25px; letter-spacing: -.025em; }
.cg-detail-logo { background: #e9edf0; background-image: none; border-radius: 12px; }
.cg-detail-logo img { filter: none; opacity: .65; }
.cg-case-fact { font-size: 15px!important; }
.cg-faq summary { font-family: var(--ex-font); font-size: 20px; }
.service-grid,.qualification-grid { gap: 24px; background: transparent; border: 0; }
.service-card,.qualification-card { background: #f4f4f4; border-radius: 12px; padding: 30px; }
.service-card:hover { transform: none; background: #edf1f7; color: #171a20; }
.service-card:hover p,.service-card:hover .number { color: #5c5e62; }
.service-card h3,.qualification-card h3 { font-size: 26px; letter-spacing: -.025em; }
.cta-band,.b2b-band,.reference-summary,.orange { background: #f4f4f4; color: #171a20; }
.cta-band .eyebrow { color: #5c5e62; }
.cta-band .button-ghost:hover { background: #e2e3e5; color: #171a20; }
.form-field input,.form-field select,.form-field textarea { background: #f4f4f4; padding: 12px 14px; border: 1px solid transparent; border-radius: 4px; font-family: var(--ex-font); }
.form-field { font-family: var(--ex-font); font-size: 14px; letter-spacing: 0; }
.form-consent,.form-status,.company-card { font-family: var(--ex-font); }
.quick-contact { display: none; }
.cg-scroll-progress { display: none; }

.ex-reveal { opacity: 1; transform: none; }
html.motion-ready .ex-reveal { transition: opacity .7s ease,transform .8s cubic-bezier(.2,.7,.2,1); }
html.motion-ready .ex-reveal:not(.is-visible) { opacity: 0; transform: translateY(22px); }
html.motion-ready .ex-reveal.is-visible { opacity: 1; transform: none; }
@keyframes ex-image { from { transform: scale(1.075) translateY(8px); } to { transform: scale(1) translateY(0); } }
@keyframes ex-caption { from { opacity: 0; transform: translateY(22px); clip-path: inset(100% 0 0); } to { opacity: 1; transform: none; clip-path: inset(0); } }
@media (prefers-reduced-motion: no-preference) {
  .ex-slide.is-active .ex-media,.ex-slide.is-active .ex-placeholder { animation: ex-image 1.55s cubic-bezier(.2,.7,.2,1) both; }
  .ex-slide.is-active .ex-slide-copy h1,.ex-slide.is-active .ex-slide-copy h2 { animation: ex-caption .8s .15s cubic-bezier(.2,.7,.2,1) both; }
  .ex-slide.is-active .ex-slide-copy p { animation: ex-caption .8s .25s cubic-bezier(.2,.7,.2,1) both; }
  .ex-slide.is-active .ex-slide-actions { animation: ex-caption .8s .35s cubic-bezier(.2,.7,.2,1) both; }
}
@media (min-width: 1600px) { .ex-section { width: min(1640px,100%); } .ex-service-card { flex-basis: 570px; } }
@media (max-width: 1180px) {
  .ex-header { gap: 16px; padding-inline: 28px; }
  .ex-logo { width: 145px; flex-basis: 145px; }
  .ex-nav > a,.ex-nav > button { padding-inline: 8px; font-size: 13px; }
  .ex-utilities { gap: 0; }
  .ex-project-card > img,.ex-project-card > a > img,.ex-project-card > .ex-card-media,.ex-project-card > a > .ex-card-media { height: 220px; }
}
@media (max-width: 960px) {
  .ex-nav { display: none; }
  .ex-header { padding-inline: 28px; }
  .ex-utilities { margin-left: auto; gap: 8px; }
  .ex-slide-copy { padding-top: 125px; }
  .ex-service-card { flex-basis: 62vw; }
  .ex-card-media { height: 300px; }
  .ex-projects { grid-template-columns: repeat(2,minmax(0,1fr)); }
  .ex-project-card:last-child { grid-column: 1 / -1; display: grid; grid-template-columns: 1fr 1fr; gap: 24px; align-items: center; }
  .ex-project-card:last-child .ex-project-info { padding-top: 0; }
  .ex-benefits { gap: 25px; }
  .ex-benefits h3 { font-size: 21px; }
  .ex-steps { flex-wrap: wrap; }
  .ex-steps > * { flex: 1 1 calc(50% - 34px); }
  .ex-contact-layout { gap: 45px; }
  .cg-map-layout { grid-template-columns: 1fr; }
  .cg-map-frame > .cg-map { min-height: 400px; }
  .cg-map-list { padding-block: 8px; }
  .ex-service-bar nav { gap: 18px; }
}
@media (max-width: 700px) {
  :root { --ex-gutter: 24px; }
  .ex-hero { min-height: 650px; height: 94svh; max-height: 880px; }
  .ex-slide-copy { width: calc(100% - 40px); padding-top: 110px; }
  .ex-slide-copy h1,.ex-slide-copy h2 { font-size: clamp(34px,7.4vw,48px); }
  .ex-slide-copy p { max-width: 480px; font-size: 16px; }
  .ex-slide-actions { gap: 12px; margin-top: 23px; }
  .ex-slide-actions .ex-button { min-width: 180px; padding-inline: 18px; }
  .ex-placeholder { padding: 290px 7% 95px; }
  .ex-placeholder img { width: 82vw; }
  .ex-section-heading { align-items: flex-start; flex-direction: column; gap: 20px; }
  .ex-section-heading h2 { font-size: 34px; }
  .ex-catalog { gap: 16px; margin-right: -24px; padding-right: 24px; }
  .ex-service-card { flex-basis: 82vw; }
  .ex-card-media { height: 280px; }
  .ex-card-copy { padding: 25px; }
  .ex-audience { grid-template-columns: 1fr; gap: 18px; }
  .ex-audience-card { padding: 34px 28px; }
  .ex-wide-feature { height: 72svh; min-height: 560px; }
  .ex-feature-copy { left: 24px; right: 24px; bottom: 36px; }
  .ex-feature-copy h2 { font-size: 37px; }
  .ex-wide-feature .ex-placeholder { padding: 100px 10% 250px; }
  .ex-wide-feature .ex-placeholder img { width: 80vw; }
  .ex-projects { gap: 30px 18px; }
  .ex-project-card > img,.ex-project-card > a > img,.ex-project-card > .ex-card-media,.ex-project-card > a > .ex-card-media { height: 200px; }
  .ex-project-info h3 { font-size: 22px; }
  .ex-benefits { grid-template-columns: 1fr; gap: 12px; }
  .ex-benefits > * { padding-block: 16px; }
  .ex-benefits h3 { font-size: 25px; }
  .ex-contact-layout { grid-template-columns: 1fr; gap: 32px; }
  .ex-service-hero { min-height: 650px; height: 92svh; }
  .ex-service-hero .ex-slide-copy { padding-top: 115px; }
  .ex-service-bar { align-items: center; gap: 10px; padding: 12px 24px; }
  .ex-service-bar nav { gap: 16px; }
  .ex-service-bar nav a:not(.ex-button) { display: none; }
  .ex-service-bar .ex-button { min-width: 130px; }
  .ex-faq summary { font-size: 18px; }
  .ex-footer nav,.ex-footer-links { gap: 10px 18px; }
  .cg-map-layout { border-radius: 10px; }
}
@media (max-width: 480px) {
  .ex-header { padding-inline: 24px; gap: 10px; }
  .ex-logo { width: 140px; flex-basis: 140px; }
  .ex-utilities { gap: 0; }
  .ex-utilities > button,.ex-utilities > a { font-size: 13px; padding-inline: 8px; }
  .ex-slide-copy h1,.ex-slide-copy h2 { font-size: 36px; line-height: 1.14; }
  .ex-slide-copy p { font-size: 15px; }
  .ex-slide-actions { gap: 10px; flex-wrap: nowrap; }
  .ex-slide-actions .ex-button { flex: 1; min-width: 0; max-width: 240px; padding: 11px 9px; font-size: 13px; }
  .ex-hero-controls { bottom: 24px; gap: 8px; }
  .ex-hero-controls button { width: 32px; height: 32px; }
  .ex-hero-controls .ex-dot,.ex-hero-controls [data-slide-dot] { width: 20px; }
  .ex-card-media { height: 250px; }
  .ex-card-copy { padding: 23px; }
  .ex-card-copy h3 { font-size: 27px; }
  .ex-card-actions { gap: 10px; }
  .ex-card-actions .ex-button { min-width: 0; padding-inline: 12px; font-size: 13px; }
  .ex-projects { grid-template-columns: 1fr; gap: 35px; }
  .ex-project-card:last-child { display: block; grid-column: auto; }
  .ex-project-card:last-child .ex-project-info { padding-top: 23px; }
  .ex-project-card > img,.ex-project-card > a > img,.ex-project-card > .ex-card-media,.ex-project-card > a > .ex-card-media { height: 250px; }
  .ex-project-info h3 { font-size: 25px; }
  .ex-steps { gap: 25px; }
  .ex-steps > * { flex-basis: 100%; }
  .ex-steps .number,.ex-steps > * > span:first-child { margin-bottom: 17px; }
  .ex-dialog { padding: 24px; width: calc(100% - 24px); max-height: calc(100dvh - 24px); }
  .ex-dialog-head h2 { font-size: 25px; }
  .ex-form-actions { gap: 10px; }
  .ex-form-actions .ex-button { padding-inline: 14px; }
  .ex-service-bar strong { font-size: 14px; max-width: 46%; }
  .ex-service-bar .ex-button { min-width: 120px; font-size: 13px; }
  .cg-map-frame > .cg-map { min-height: 340px; }
  .cg-map-list { padding-inline: 22px; }
  .cg-map-item strong { font-size: 19px; }
  .cg-map-item.active::before { left: -23px; }
  .ex-footer nav,.ex-footer-links { gap: 9px 16px; }
}
@media (max-width: 359px) {
  .ex-logo { width: 120px; flex-basis: 120px; }
  .ex-header { padding-inline: 18px; }
  .ex-slide-copy h1,.ex-slide-copy h2 { font-size: 31px; }
  .ex-slide-copy { width: calc(100% - 36px); }
  .ex-slide-actions .ex-button { font-size: 12px; }
  .ex-card-copy { padding-inline: 20px; }
  .ex-card-actions { flex-direction: column; align-items: stretch; }
  .ex-card-actions .ex-button { width: 100%; }
}
@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior: auto; }
  *,*::before,*::after { animation: none!important; transition: none!important; }
  html.motion-ready .ex-reveal,html.motion-ready .ex-reveal:not(.is-visible) { opacity: 1; transform: none; }
  .ex-media,.ex-placeholder,.ex-slide-copy > * { transform: none; clip-path: none; }
  .ex-catalog { scroll-snap-type: none; }
}

/* Shared shell and content templates. */
.ex-site h1,.ex-site h2,.ex-site h3,.ex-site h4 { font-family: var(--ex-font); font-weight: 500; text-transform: none; }
.ex-logo { width: 152px; flex-basis: 152px; }
.ex-nav > button,.ex-nav > a { min-height: 32px; padding-block: 6px; }
.ex-header.menu-active { background: #fff; color: #171a20; }
.ex-header.menu-active .ex-logo img { filter: none; }
.ex-header:has(+ .ex-menu-backdrop:not([hidden])) { background: #fff; color: #171a20; }
.ex-menu-backdrop { position: fixed; z-index: 990; inset: 64px 0 0; background: #171a2059; backdrop-filter: blur(5px); }
.ex-mega-panel { position: fixed; z-index: 999; display: grid; grid-template-columns: minmax(0,1fr) 190px; gap: 38px; max-height: calc(100dvh - 64px); overflow-y: auto; padding: 35px var(--ex-gutter) 42px; }
.ex-menu-catalog { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); gap: 30px 22px; }
.ex-menu-catalog article { padding: 12px; border-radius: 8px; text-align: center; transition: background .2s; }
.ex-menu-catalog article.is-selected { background: #f4f4f4; }
.ex-menu-catalog article > a { display: block; }
.ex-menu-catalog img { width: 100%; height: 95px; object-fit: cover; border-radius: 4px; }
.ex-menu-catalog img[src$="logo.svg"] { object-fit: contain; padding: 24px; background: #eef0f2; opacity: .7; }
.ex-menu-catalog h3 { margin: 14px 0 10px; font-size: 18px; line-height: 1.25; }
.ex-menu-catalog article > div { display: flex; justify-content: center; flex-wrap: wrap; gap: 8px 18px; }
.ex-menu-catalog article > div > a,.ex-menu-catalog article > div > button { padding: 0 0 3px; background: none; border: 0; color: #5c5e62; font-size: 13px; font-weight: 400; text-decoration: underline; text-underline-offset: 4px; cursor: pointer; }
.ex-menu-links { display: flex; flex-direction: column; align-items: flex-start; gap: 19px; border-left: 1px solid #e2e3e5; padding: 14px 0 14px 32px; }
.ex-menu-links a { font-size: 14px; line-height: 1.4; }
.ex-menu-links a:last-child { margin-top: 14px; font-size: 14px; white-space: nowrap; }
.ex-language { position: relative; font-size: 14px; }
.ex-language summary { list-style: none; display: grid; place-items: center; min-width: 38px; min-height: 36px; padding: 6px 8px; cursor: pointer; border-radius: 4px; font-weight: 550; }
.ex-language summary::-webkit-details-marker { display: none; }
.ex-language summary:hover { background: #0000000d; }
.ex-language > div { position: absolute; top: 42px; right: 0; width: 155px; padding: 10px; border-radius: 6px; background: #fff; color: #171a20; box-shadow: 0 8px 28px #0002; }
.ex-language a { display: block; padding: 9px 12px; font-size: 14px; border-radius: 4px; }
.ex-language a:hover,.ex-language a[aria-current="page"] { background: #f4f4f4; }
.ex-menu > .ex-dialog-head { justify-content: space-between; margin-bottom: 20px; }
.ex-menu > .ex-dialog-head > .ex-close { margin-left: auto; }
.ex-menu [data-menu-back] { flex-basis: auto; width: auto; padding: 8px 12px; font-size: 14px; }
.ex-mobile-main nav > button,.ex-mobile-main nav > a { display: flex; justify-content: space-between; width: 100%; padding: 17px 12px; margin: 0; border-radius: 4px; border: 0; background: transparent; color: #171a20; text-align: left; font-size: 18px; font-weight: 500; cursor: pointer; }
.ex-mobile-main nav > button:hover,.ex-mobile-main nav > a:hover { background: #f4f4f4; }
.ex-mobile-main nav > button > span { font-size: 23px; line-height: 1.2; font-weight: 400; }
.ex-mobile-languages { display: flex; flex-wrap: wrap; gap: 5px 18px; border-top: 1px solid #e2e3e5; margin-top: 22px; padding-top: 20px; }
.ex-mobile-languages a { font-size: 14px; font-weight: 400; padding: 10px 0; }
.ex-mobile-languages a[aria-current="page"] { font-weight: 600; text-decoration: underline; text-underline-offset: 4px; }
.ex-mobile-detail h2 { font-size: 31px; margin-top: 32px; line-height: 1.15; }
.ex-mobile-detail p { color: #5c5e62; line-height: 1.75; margin-bottom: 30px; }
.ex-mobile-detail .ex-button { display: flex; width: 100%; min-height: 44px; margin-top: 14px; font-size: 14px; padding: 12px 18px; font-weight: 550; }
.ex-mobile-detail button.ex-button { background: #3e6ae1; color: #fff; }
.ex-mobile-detail a.ex-button.secondary { background: #f4f4f4; color: #393c41; }
.ex-slide-copy h1,.ex-slide-copy h2 { font-size: clamp(36px,4vw,48px); font-weight: 500; letter-spacing: -.035em; }
.ex-feature-copy h2 { font-size: clamp(32px,3.5vw,40px); font-weight: 500; }
.ex-placeholder { padding-top: 300px; padding-bottom: 90px; }
.ex-hero .ex-placeholder img,.ex-service-hero .ex-placeholder img { width: min(600px,68vw); max-height: 150px; }
.ex-hero-dots { display: flex; align-items: center; gap: 3px; }
.ex-hero-controls [data-hero-dot] { width: 24px; height: 32px; position: relative; }
.ex-hero-controls [data-hero-dot]::before { content: ""; width: 7px; height: 7px; border-radius: 50%; background: #9b9da1; }
.ex-hero-controls [data-hero-dot][aria-pressed="true"]::before { background: #171a20; }
.ex-hero-brandline { position: absolute; left: var(--ex-gutter); bottom: 38px; z-index: 5; color: #5c5e62; font-size: 13px; }
.ex-catalog-controls { display: flex; justify-content: flex-end; gap: 10px; margin-top: 7px; }
.ex-catalog-controls button { display: grid; place-items: center; width: 40px; height: 40px; border: 0; border-radius: 4px; background: #f4f4f4; color: #171a20; font-size: 22px; cursor: pointer; }
.ex-catalog-controls button:hover { background: #e5e5e5; }
.ex-catalog-controls button:disabled { opacity: .3; cursor: default; }
.ex-project-media { display: grid; place-items: center; height: 265px; border-radius: 12px; padding: 50px 30px; background: #e9edf0; overflow: hidden; }
.ex-project-card > .ex-project-media > img { width: 82%; height: auto; max-height: 110px; border-radius: 0; object-fit: contain; opacity: .55; }
.ex-project-card:nth-child(2) .ex-project-media { background: #ebe8e3; }
.ex-project-card:nth-child(3) .ex-project-media { background: #e5e9e8; }
.ex-page-heading { width: min(1000px,100%); margin: 0 auto; padding: 146px var(--ex-gutter) 55px; text-align: center; }
.ex-page-heading h1 { margin: 0 0 22px; font-size: clamp(36px,4vw,48px); line-height: 1.15; }
.ex-page-heading > p { max-width: 760px; margin: 16px auto; color: #5c5e62; font-size: 17px; }
.ex-page-heading > a:not(.ex-button) { display: inline-block; margin-top: 12px; font-size: 14px; text-decoration: underline; text-underline-offset: 5px; }
.ex-page-heading > .ex-button { margin-top: 17px; }
.ex-page-heading + .ex-section { padding-top: 40px; }
.ex-final-cta { display: flex; flex-direction: column; align-items: center; gap: 22px; padding: 84px 24px; text-align: center; }
.ex-final-cta .ex-section-heading { display: block; margin: 0; }
.ex-final-cta h2 { font-size: clamp(31px,3.4vw,44px); }
.ex-final-cta .ex-section-heading p { margin: 16px auto 0; }
.ex-final-cta > a { font-size: 14px; text-decoration: underline; text-underline-offset: 4px; }
.ex-case-layout { display: grid; grid-template-columns: 1.2fr 1fr; gap: 60px; align-items: center; }
.ex-case-logo { display: grid; place-items: center; min-height: 340px; aspect-ratio: 1.5; padding: 45px; background: #e9edf0; border-radius: 12px; }
.ex-case-logo img { width: 85%; height: auto; opacity: .6; }
.ex-case-layout h2 { font-size: 30px; margin-bottom: 18px; }
.ex-case-layout p { color: #5c5e62; line-height: 1.8; }
.ex-case-facts { display: flex; flex-wrap: wrap; gap: 10px; margin: 26px 0; }
.ex-case-facts span { display: block; padding: 8px 12px; border-radius: 4px; background: #f4f4f4; color: #393c41; font-size: 14px; }
.ex-contact-layout:first-child { padding-top: 145px; }
.ex-contact-layout h1 { font-size: clamp(36px,4vw,48px); margin-bottom: 23px; line-height: 1.18; }
.ex-form-extra { margin-top: 2px; }
.ex-form-extra summary { padding: 9px 0; color: #393c41; font-size: 14px; cursor: pointer; }
.ex-form-extra label { margin-top: 15px; }
.ex-dialog > p { color: #5c5e62; font-size: 15px; margin: -6px 0 22px; }
.ex-form .ex-consent { font-size: 13px; }
.ex-footer { display: flex; justify-content: center; align-items: center; flex-wrap: wrap; gap: 10px 24px; padding: 32px 24px; }
.ex-footer > span { flex-basis: 100%; color: #5c5e62; font-size: 12px; margin-top: 5px; }
.ex-service-bar { margin-top: 64px; }
.ex-service-bar > a { color: #171a20; font-size: 17px; font-weight: 550; }
.ex-service-bar nav > button { min-height: 38px; padding: 8px 22px; border: 0; border-radius: 4px; background: #3e6ae1; color: #fff; font-size: 14px; font-weight: 550; cursor: pointer; }
.ex-service-bar nav > button:hover { background: #3457b7; }
.ex-service-hero { height: min(800px,calc(100svh - 130px)); min-height: 560px; }
.ex-service-hero .ex-slide-copy { padding-top: 66px; }
.ex-service-hero .ex-placeholder { padding-top: 245px; }
.ex-benefits > h3 { font-size: 21px; line-height: 1.45; padding: 24px; border-radius: 8px; background: #f4f4f4; margin: 0; }
.ex-faq-section > .ex-section-heading { max-width: 900px; margin-inline: auto; }
.ex-wide-feature.has-photos .ex-feature-copy,.ex-hero.has-photos .ex-slide-copy,.ex-service-hero.has-photos .ex-slide-copy { color: #fff; text-shadow: 0 1px 15px #0007; }
.ex-wide-feature.has-photos .ex-media::after { background: linear-gradient(180deg,transparent 25%,#0009); }
.ex-hero.has-photos .ex-media::after,.ex-service-hero.has-photos .ex-media::after { background: linear-gradient(180deg,#0006,transparent 70%); }
@media (max-width: 1099px) {
  .ex-nav { display: none; }
  .ex-utilities { margin-left: auto; }
  .ex-header { padding-inline: 28px; }
}
@media (max-width: 960px) {
  .ex-project-media { height: 240px; }
  .ex-case-layout { gap: 35px; }
  .ex-case-logo { min-height: 300px; }
  .ex-projects:has(> :nth-child(2):last-child) > :last-child { grid-column: auto; display: block; }
  .ex-projects:has(> :nth-child(2):last-child) > :last-child .ex-project-info { padding-top: 23px; }
}
@media (max-width: 700px) {
  .ex-hero .ex-placeholder img,.ex-service-hero .ex-placeholder img { width: 80vw; }
  .ex-hero-brandline { bottom: 92px; left: 0; right: 0; text-align: center; font-size: 12px; }
  .ex-slide-copy h1,.ex-slide-copy h2 { font-size: clamp(34px,6.8vw,44px); }
  .ex-feature-copy h2 { font-size: 35px; }
  .ex-project-media { height: 215px; padding: 32px 20px; }
  .ex-page-heading { padding-top: 120px; padding-bottom: 36px; }
  .ex-case-layout { grid-template-columns: 1fr; }
  .ex-case-logo { min-height: 260px; }
  .ex-contact-layout:first-child { padding-top: 120px; }
  .ex-service-bar > a { max-width: 48%; font-size: 15px; }
  .ex-service-bar nav > button { padding-inline: 15px; font-size: 13px; }
  .ex-service-hero { min-height: 590px; height: calc(96svh - 130px); }
  .ex-service-hero .ex-slide-copy { padding-top: 55px; }
  .ex-service-hero .ex-placeholder { padding-top: 255px; padding-bottom: 50px; }
  .ex-benefits > h3 { padding: 22px; font-size: 20px; }
  .ex-footer { gap: 10px 18px; }
}
@media (max-width: 480px) {
  .ex-header { padding-inline: 20px; }
  .ex-logo { width: 138px; flex-basis: 138px; }
  .ex-header-contact { display: none!important; }
  .ex-menu { padding-inline: 24px; }
  .ex-slide-copy h1,.ex-slide-copy h2 { font-size: 36px; }
  .ex-placeholder { padding-top: 310px; padding-bottom: 120px; }
  .ex-project-media { height: 245px; }
  .ex-hero-controls [data-hero-dot] { width: 20px; }
  .ex-service-bar { padding-inline: 20px; }
  .ex-service-hero .ex-slide-copy { width: calc(100% - 40px); }
  .ex-service-hero .ex-slide-copy h1 { font-size: 33px; }
}
@media (max-width: 359px) {
  .ex-logo { width: 125px; flex-basis: 125px; }
  .ex-slide-copy h1,.ex-slide-copy h2,.ex-service-hero .ex-slide-copy h1 { font-size: 30px; }
}

/* Real-work photo release: legible copy while keeping the site visible. */
.ex-hero.has-photos .ex-media::after,
.ex-service-hero.has-photos .ex-media::after {
  background: linear-gradient(180deg,rgba(12,18,26,.76) 0%,rgba(12,18,26,.67) 32%,rgba(12,18,26,.27) 61%,rgba(12,18,26,.12) 76%,rgba(12,18,26,.5) 100%);
}
.ex-hero.has-photos .ex-slide-copy,
.ex-service-hero.has-photos .ex-slide-copy { color: #fff; text-shadow: 0 2px 18px #0006; }
.ex-hero.has-photos .ex-slide-copy p,
.ex-service-hero.has-photos .ex-slide-copy p { color: #fff; }
.has-photos .ex-button { text-shadow: none; }
.has-photos .ex-button.secondary { color: #171a20; background: #fff; }
.has-photos .ex-button.secondary:hover { background: #eceff3; }
.ex-hero.has-photos .ex-hero-brandline { color: #fff; text-shadow: 0 1px 8px #0009; }
.ex-header.on-dark:not(.is-scrolled):not(.menu-active) { text-shadow: 0 1px 8px #0005; }
.ex-header.on-dark:not(.is-scrolled):not(.menu-active) .ex-nav > button:hover,
.ex-header.on-dark:not(.is-scrolled):not(.menu-active) .ex-utilities > a:hover,
.ex-header.on-dark:not(.is-scrolled):not(.menu-active) .ex-utilities > button:hover,
.ex-header.on-dark:not(.is-scrolled):not(.menu-active) .ex-language summary:hover { background: #ffffff26; }
.ex-header .ex-language > div { text-shadow: none; }
.ex-header.menu-active .ex-logo img { filter: none; }
.ex-wide-feature.has-photos .ex-media::after {
  background: linear-gradient(180deg,rgba(12,18,26,.06) 0%,rgba(12,18,26,.2) 34%,rgba(12,18,26,.68) 67%,rgba(12,18,26,.84) 100%);
}
.ex-wide-feature.has-photos .ex-feature-copy p { color: #fff; }
.ex-card-media .ex-media::after { background: none; }
.ex-card-media .ex-media img { transition: transform .65s cubic-bezier(.2,.7,.2,1); }
@media (hover: hover) and (prefers-reduced-motion: no-preference) {
  .ex-card-media:hover .ex-media img { transform: scale(1.035); }
}
/* Photographs are presented as company work, without inventing project identities. */
.ex-work-gallery { overflow: hidden; }
.ex-gallery-track { display: flex; gap: 24px; overflow-x: auto; padding: 0 0 20px; scroll-snap-type: x proximity; scrollbar-width: thin; scrollbar-color: #bfc3c9 transparent; }
.ex-gallery-track figure { flex: 0 0 calc((100% - 36px)/2.5); min-width: 0; margin: 0; scroll-snap-align: start; }
.ex-gallery-track figure > a { display: block; border-radius: 12px; }
.ex-gallery-track img { display: block; width: 100%; height: auto; aspect-ratio: 4/3; object-fit: cover; border-radius: 12px; background: #f4f4f4; }
.ex-gallery-track figcaption { padding: 14px 2px 2px; color: #5c5e62; font-size: 14px; line-height: 1.55; }
.ex-gallery-track figure > a:focus-visible { outline-offset: -4px; }
@media (max-width: 700px) {
  .ex-hero.has-photos .ex-media::after,
  .ex-service-hero.has-photos .ex-media::after { background: linear-gradient(180deg,rgba(12,18,26,.79) 0%,rgba(12,18,26,.67) 39%,rgba(12,18,26,.2) 68%,rgba(12,18,26,.52) 100%); }
  .ex-wide-feature.has-photos .ex-media::after { background: linear-gradient(180deg,rgba(12,18,26,.1),rgba(12,18,26,.3) 30%,rgba(12,18,26,.78) 65%,rgba(12,18,26,.86)); }
  .ex-gallery-track { gap: 16px; }
  .ex-gallery-track figure { flex-basis: calc((100% - 12px)/1.15); }
}

/* The first slide is a light vector scene; later slides use photography. */
.ex-hero.has-photos.is-construction-active .ex-slide.is-active .ex-slide-copy,
.ex-hero.has-photos.is-construction-active .ex-slide.is-active .ex-slide-copy p { color: #171a20; text-shadow: none; }
.ex-hero.has-photos.is-construction-active .ex-hero-brandline { color: #5c5e62; text-shadow: none; }

/* Direct, predictable navigation; only the explicit Menu button opens a panel. */
html.ex-dialog-open { overflow: hidden; scrollbar-gutter: stable; }
.ex-nav > a[aria-current="page"] { background: #171a2010; text-decoration: underline; text-underline-offset: 6px; }
.ex-menu-title { font-size: 20px; font-weight: 600; }
.ex-mobile-main nav > .ex-mobile-service { display: flex; align-items: center; justify-content: space-between; gap: 18px; padding: 15px 0; font-size: 18px; line-height: 1.35; }
.ex-mobile-service[aria-current="page"] { color: #3e6ae1; }
.ex-mobile-service span { flex-shrink: 0; }
.ex-menu > .ex-dialog-head { position: sticky; top: -24px; z-index: 2; padding-block: 12px; background: #fff; }
.ex-menu { overflow-y: auto; overscroll-behavior: contain; }
.ex-nav { min-width: 0; }
.ex-header.on-dark .ex-nav > a:hover,.ex-header.on-dark .ex-nav > a[aria-current="page"] { background: #ffffff26; }
.ex-language summary::after { content: ''; width: 5px; height: 5px; border-right: 1px solid currentColor; border-bottom: 1px solid currentColor; transform: rotate(45deg); margin-left: 6px; margin-top: -3px; }
.ex-language summary { display: flex; align-items: center; justify-content: center; }
.ex-language[open] summary::after { transform: rotate(225deg); margin-top: 3px; }
@media (max-width:1199px) { .ex-nav { display: none; } }

/* Crossfade photographs without stacking two sets of text and buttons. */
.ex-hero .ex-slide:not(.is-active) .ex-slide-copy { visibility: hidden; pointer-events: none; }
.ex-hero .ex-slide.is-active .ex-slide-copy { visibility: visible; }

@media (max-width:700px) {
 .ex-service-bar { display: grid; grid-template-columns: minmax(0,1fr) minmax(0,1fr); gap: 12px; }
 .ex-service-bar > a { max-width: none; }
 .ex-service-bar nav { min-width: 0; justify-content: flex-end; }
 .ex-service-bar nav > button { width: 100%; max-width: 190px; white-space: normal; line-height: 1.35; }
}

/* Accepted-request confirmation stays inside the quote dialog. */
.ex-dialog.is-success > .ex-dialog-head { justify-content: flex-end; margin-bottom: 0; }
.ex-dialog.is-success > .ex-dialog-head .ex-close { margin-left: auto; }
.ex-quote-success { padding: 8px 8px 12px; text-align: center; }
.ex-success-mark { display: grid; place-items: center; width: 68px; height: 68px; margin: 0 auto 26px; border-radius: 50%; background: #edf2ff; color: #3e6ae1; }
.ex-success-mark svg { width: 44px; height: 44px; fill: none; stroke: currentColor; stroke-width: 3; stroke-linecap: round; stroke-linejoin: round; }
.ex-quote-success h2 { margin: 0 0 16px; font-family: var(--ex-font); font-weight: 500; font-size: clamp(25px,4vw,30px); line-height: 1.25; letter-spacing: -.025em; }
.ex-quote-success h2:focus { outline: none; }
.ex-quote-success p { max-width: 380px; margin: 0 auto 30px; color: #5c5e62; font-size: 16px; line-height: 1.7; }
.ex-quote-success .ex-button { width: 100%; }
@media (max-width:480px) { .ex-quote-success { padding-inline: 0; } }
