:root {
  --egc-navy: #1b2a5e;
  --egc-deep: #151f45;
  --egc-red: #d62b2b;
  --egc-paper: #fff;
  --egc-mist: #f2f3f5;
  --egc-line: #dcdee3;
  --egc-muted: #5f677f;
  --egc-ease: cubic-bezier(.16,1,.3,1);
  --egc-max: 1440px;
}

.elementor-widget-egc-nav > .elementor-widget-container,
.elementor-widget-egc-hero > .elementor-widget-container,
.elementor-widget-egc-expertises > .elementor-widget-container,
.elementor-widget-egc-interlude > .elementor-widget-container,
.elementor-widget-egc-projects > .elementor-widget-container,
.elementor-widget-egc-pinned-gallery > .elementor-widget-container,
.elementor-widget-egc-panorama > .elementor-widget-container,
.elementor-widget-egc-approach > .elementor-widget-container,
.elementor-widget-egc-credibility > .elementor-widget-container,
.elementor-widget-egc-cta > .elementor-widget-container,
.elementor-widget-egc-footer > .elementor-widget-container,
.elementor-widget-egc-page-hero > .elementor-widget-container,
.elementor-widget-egc-editorial > .elementor-widget-container,
.elementor-widget-egc-service-showcase > .elementor-widget-container,
.elementor-widget-egc-feature-list > .elementor-widget-container,
.elementor-widget-egc-project-grid > .elementor-widget-container,
.elementor-widget-egc-commitments > .elementor-widget-container,
.elementor-widget-egc-careers > .elementor-widget-container,
.elementor-widget-egc-contact > .elementor-widget-container { margin: 0 !important; }

.egc-container { width: min(calc(100% - 48px), var(--egc-max)); margin-inline: auto; }
.egc-section { position: relative; padding-block: clamp(88px, 9vw, 150px); background: var(--egc-paper); color: var(--egc-navy); }
.egc-section-title { margin: 30px 0 0; font-family: Manrope, Inter, sans-serif; font-size: clamp(2.25rem, 4.2vw, 4rem); line-height: 1.02; font-weight: 800; letter-spacing: -.045em; color: var(--egc-navy); }
.egc-body-copy { color: var(--egc-muted); font-size: .95rem; line-height: 1.76; }
.egc-eyebrow { margin: 0; display: flex; align-items: center; gap: 16px; color: var(--egc-muted); font-size: .6875rem; font-weight: 600; letter-spacing: .25em; text-transform: uppercase; }
.egc-eyebrow i { width: 36px; height: 2px; background: var(--egc-red); flex: 0 0 auto; }
.egc-eyebrow--light { color: rgba(255,255,255,.62); }
.egc-line-mask { display: block; overflow: hidden; }
.egc-text-link { display: inline-flex; align-items: center; gap: 12px; margin-top: 32px; color: var(--egc-navy); font-size: .8125rem; font-weight: 600; text-decoration: none; }
.egc-text-link span { padding-bottom: 5px; border-bottom: 1px solid rgba(27,42,94,.28); transition: border-color .35s ease; }
.egc-text-link b { color: var(--egc-red); font-size: 1rem; transition: transform .45s var(--egc-ease); }
.egc-text-link:hover span { border-color: var(--egc-navy); }
.egc-text-link:hover b { transform: translateX(6px); }
.egc-text-link--light { color: rgba(255,255,255,.83); }
.egc-text-link--light span { border-color: rgba(255,255,255,.3); }
.egc-text-link--light:hover span { border-color: white; }
.egc-fill-button { position: relative; isolation: isolate; display: inline-flex; align-items: center; justify-content: center; min-height: 54px; padding: 0 34px; overflow: hidden; background: var(--egc-nav-navy, var(--egc-navy)); color: #fff; font-size: .78rem; font-weight: 700; letter-spacing: .035em; text-transform: uppercase; text-decoration: none; }
.egc-fill-button::before { content: ""; position: absolute; inset: 0; z-index: -1; background: var(--egc-nav-red, var(--egc-red)); transform: scaleY(0); transform-origin: bottom; transition: transform .52s var(--egc-ease); }
.egc-fill-button:hover::before { transform: scaleY(1); }
.egc-fill-button--red { background: var(--egc-red); }
.egc-fill-button--red::before { background: #fff; }
.egc-fill-button--red:hover { color: var(--egc-navy); }

/* Navigation */
.egc-nav { --egc-nav-navy: #1b2a5e; --egc-nav-red: #d62b2b; position: fixed; inset: 0 0 auto; z-index: 9995; background: rgba(255,255,255,.96); border-bottom: 1px solid var(--egc-line); color: var(--egc-nav-navy); transition: background-color .55s ease, box-shadow .55s ease, backdrop-filter .55s ease; }
.egc-nav.is-transparent:not(.is-scrolled):not(.is-open) { background: transparent; border-color: transparent; color: #fff; }
.egc-nav.is-scrolled { background: rgba(255,255,255,.92); backdrop-filter: blur(14px); box-shadow: 0 1px 0 rgba(20,31,69,.08); color: var(--egc-nav-navy); }
.egc-nav__progress { position: absolute; left: 0; bottom: -1px; width: 0; height: 2px; background: var(--egc-nav-red); }
.egc-nav__inner { min-height: 88px; display: flex; align-items: center; gap: 38px; transition: min-height .45s var(--egc-ease); }
.egc-nav.is-scrolled .egc-nav__inner { min-height: 68px; }
.egc-brand { display: inline-flex; align-items: center; gap: 10px; color: inherit; text-decoration: none; flex: 0 0 auto; }
.egc-brand__logo { display: block; width: auto; max-width: 230px; height: 54px; object-fit: contain; }
.egc-nav.is-scrolled .egc-brand__logo { height: 42px; }
.egc-brand__main { font-family: Manrope, Inter, sans-serif; font-size: 1.35rem; font-weight: 800; letter-spacing: -.035em; }
.egc-brand__rule { width: 1px; height: 16px; background: currentColor; opacity: .32; }
.egc-brand__country { font-size: .65rem; font-weight: 600; letter-spacing: .23em; }
.egc-nav__links { margin-left: auto; display: flex; align-items: center; gap: 34px; }
.egc-nav__link { position: relative; display: block; height: 20px; overflow: hidden; color: inherit; font-size: .8rem; font-weight: 600; text-decoration: none; opacity: .82; }
.egc-nav__link span { display: block; transition: transform .48s var(--egc-ease); }
.egc-nav__link span + span { position: absolute; inset: 0; transform: translateY(100%); }
.egc-nav__link::after { content: ""; position: absolute; left: 0; bottom: 0; width: 0; height: 1px; background: var(--egc-nav-red); transition: width .45s var(--egc-ease); }
.egc-nav__link:hover span:first-child { transform: translateY(-100%); }
.egc-nav__link:hover span + span { transform: translateY(0); }
.egc-nav__link:hover::after { width: 100%; }
.egc-nav__cta { min-height: 44px; padding-inline: 28px; }
.egc-nav.is-transparent:not(.is-scrolled) .egc-nav__cta { background: var(--egc-nav-red); }
.egc-nav.is-transparent:not(.is-scrolled) .egc-nav__cta::before { background: var(--egc-nav-navy); }
.egc-nav__toggle { display: none; width: 44px; height: 44px; margin-left: auto; border: 0; background: transparent; color: inherit; cursor: pointer; }
.egc-nav__toggle i { display: block; width: 24px; height: 1px; margin: 6px auto; background: currentColor; transition: transform .35s ease; }
.egc-nav.is-open .egc-nav__toggle i:first-child { transform: translateY(3.5px) rotate(45deg); }
.egc-nav.is-open .egc-nav__toggle i:last-child { transform: translateY(-3.5px) rotate(-45deg); }
.egc-nav__mobile { display: none; background: #fff; color: var(--egc-nav-navy); padding: 0 24px 30px; }
.egc-nav__mobile > a:not(.egc-fill-button) { display: block; padding: 17px 0; border-top: 1px solid var(--egc-line); color: inherit; font-family: Manrope, sans-serif; font-size: 1.15rem; font-weight: 700; text-decoration: none; }
.egc-nav.is-open .egc-nav__mobile { display: block; }

/* Hero */
.egc-hero { --egc-hero-overlay: 62%; position: relative; min-height: 100vh; display: flex; flex-direction: column; justify-content: flex-end; overflow: hidden; background: var(--egc-deep); color: #fff; }
.egc-hero__media { position: absolute; inset: 0; transform: scale(1.08); will-change: transform; }
.egc-hero__plate, .egc-hero__video { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; }
.egc-hero__plate { opacity: 0; transform: scale(1); transition: opacity 2.1s ease-in-out, transform 7s linear; }
.egc-hero__plate.is-active { opacity: 1; transform: scale(1.045); }
.egc-hero__video { opacity: 0; transition: opacity 1.2s ease; }
.egc-hero__video.is-ready { opacity: 1; }
.egc-hero__veil { position: absolute; inset: 0; background: rgb(21 31 69 / var(--egc-hero-overlay)); }
.egc-hero__veil::after { content: ""; position: absolute; inset: 50% 0 0; background: linear-gradient(to bottom, transparent, rgba(10,18,43,.58)); }
.egc-hero__content { position: relative; z-index: 2; padding-top: 170px; padding-bottom: 34px; }
.egc-hero__copy { max-width: 760px; }
.egc-hero__title { margin: 32px 0 0; font-family: Manrope, Inter, sans-serif; font-size: clamp(3rem, 6.2vw, 5.65rem); line-height: .94; font-weight: 800; letter-spacing: -.052em; color: #fff; }
.egc-hero__description { max-width: 550px; margin: 34px 0 0; color: rgba(255,255,255,.72); font-size: clamp(1rem, 1.2vw, 1.08rem); line-height: 1.75; }
.egc-hero__actions { display: flex; align-items: center; flex-wrap: wrap; gap: 22px 34px; margin-top: 38px; }
.egc-hero__foot { position: relative; z-index: 2; display: flex; align-items: center; justify-content: space-between; gap: 28px; padding-top: 26px; padding-bottom: 36px; border-top: 1px solid rgba(255,255,255,.17); }
.egc-scroll-cue { display: inline-flex; align-items: center; gap: 15px; color: rgba(255,255,255,.63); font-size: .68rem; font-weight: 600; letter-spacing: .2em; text-transform: uppercase; text-decoration: none; }
.egc-scroll-cue > i { position: relative; display: block; width: 1px; height: 34px; overflow: hidden; background: rgba(255,255,255,.28); }
.egc-scroll-cue > i b { position: absolute; top: -35%; width: 1px; height: 13px; background: var(--egc-red); animation: egc-scroll-cue 2.3s var(--egc-ease) infinite; }
@keyframes egc-scroll-cue { 0% { transform: translateY(0); } 65%,100% { transform: translateY(48px); } }
.egc-hero-index { display: flex; align-items: center; flex-wrap: wrap; gap: 18px 34px; margin: 0; padding: 0; list-style: none; }
.egc-hero-index button { display: flex; align-items: baseline; gap: 11px; padding: 0; border: 0; background: transparent; color: #fff; opacity: .42; text-align: left; cursor: pointer; transition: opacity .6s ease; }
.egc-hero-index button.is-active, .egc-hero-index button:hover { opacity: 1; }
.egc-hero-index em { color: var(--egc-red); font-size: .68rem; font-style: normal; font-weight: 600; letter-spacing: .15em; }
.egc-hero-index strong { display: block; font-family: Manrope, sans-serif; font-size: .88rem; line-height: 1.1; }
.egc-hero-index small { color: rgba(255,255,255,.52); font-size: .64rem; letter-spacing: .12em; text-transform: uppercase; }
.egc-hero-index span > i { display: block; width: 100%; height: 1px; margin-top: 6px; background: rgba(255,255,255,.25); }
.egc-hero-index span > i b { display: block; height: 1px; background: var(--egc-red); transform: scaleX(0); transform-origin: left; transition: transform .65s var(--egc-ease); }
.egc-hero-index button.is-active span > i b { transform: scaleX(1); }
.egc-hero__curtain { position: absolute; inset: 0; z-index: 8; background: var(--egc-deep); transform: translateY(-100%); pointer-events: none; }
.egc-motion-ready .egc-hero__curtain { animation: egc-curtain-open 1.35s var(--egc-ease) both; }
@keyframes egc-curtain-open { from { transform: translateY(0); } to { transform: translateY(-100%); } }

/* Expertise */
.egc-expertises { border-top: 1px solid var(--egc-line); }
.egc-expertises__grid { display: grid; grid-template-columns: .78fr 1.22fr; gap: clamp(70px, 8vw, 130px); }
.egc-expertises__intro { position: sticky; top: 120px; align-self: start; }
.egc-expertises__intro .egc-body-copy { max-width: 390px; margin: 30px 0 0; }
.egc-accordion { border-bottom: 1px solid var(--egc-line); }
.egc-accordion__item { border-top: 1px solid var(--egc-line); }
.egc-accordion__trigger { width: 100%; display: flex; align-items: baseline; gap: 30px; padding: 28px 0; border: 0; background: transparent; color: var(--egc-navy); text-align: left; cursor: pointer; }
.egc-accordion__number { width: 30px; flex: 0 0 30px; color: #9aa0b2; font-size: .72rem; letter-spacing: .14em; }
.egc-accordion__heading { flex: 1; }
.egc-accordion__heading strong { display: block; font-family: Manrope, sans-serif; font-size: clamp(1.35rem, 2vw, 1.85rem); line-height: 1.15; letter-spacing: -.035em; transition: transform .45s var(--egc-ease); }
.egc-accordion__trigger:hover .egc-accordion__heading strong { transform: translateX(6px); }
.egc-accordion__heading small { display: block; max-width: 520px; margin-top: 9px; color: var(--egc-muted); font-size: .88rem; line-height: 1.65; }
.egc-accordion__trigger > i { position: relative; width: 15px; height: 15px; flex: 0 0 15px; }
.egc-accordion__trigger > i::before, .egc-accordion__trigger > i::after { content: ""; position: absolute; top: 7px; left: 0; width: 15px; height: 1px; background: var(--egc-navy); transition: transform .4s ease; }
.egc-accordion__trigger > i::after { background: var(--egc-red); transform: rotate(90deg); }
.egc-accordion__item.is-open .egc-accordion__trigger > i::after { transform: rotate(0); }
.egc-accordion__panel { display: grid; grid-template-rows: 0fr; opacity: 0; transition: grid-template-rows .65s var(--egc-ease), opacity .55s ease; }
.egc-accordion__item.is-open .egc-accordion__panel { grid-template-rows: 1fr; opacity: 1; }
.egc-accordion__panel > div { overflow: hidden; }
.egc-accordion__content { display: flex; gap: 46px; padding: 0 0 34px 60px; }
.egc-accordion__content p { max-width: 540px; margin: 0; color: #4a5268; font-size: .94rem; line-height: 1.75; }
.egc-accordion__content small { color: #9299aa; font-size: .68rem; letter-spacing: .12em; text-transform: uppercase; }

/* Interlude */
.egc-interlude { position: relative; overflow: hidden; background: var(--egc-navy); color: #fff; }
.egc-interlude__inner { padding-block: clamp(90px, 10vw, 150px); }
.egc-interlude h2 { margin: 38px 0 0; font-family: Manrope, sans-serif; font-size: clamp(2.4rem, 5vw, 4.6rem); line-height: 1.02; font-weight: 800; letter-spacing: -.05em; }
.egc-interlude h2 span { display: block; }
.egc-interlude h2 .is-muted { color: rgba(255,255,255,.38); }
.egc-interlude__meta { display: flex; align-items: center; gap: 15px; margin: 36px 0 0; color: rgba(255,255,255,.48); font-size: .68rem; letter-spacing: .17em; text-transform: uppercase; }
.egc-interlude__meta i { width: 48px; height: 1px; background: var(--egc-red); }

/* Projects */
.egc-projects { background: var(--egc-mist); }
.egc-projects__head { display: flex; align-items: end; justify-content: space-between; gap: 60px; margin-bottom: clamp(80px, 9vw, 140px); }
.egc-projects__head .egc-section-title { max-width: 760px; }
.egc-projects__list { display: grid; gap: clamp(110px, 12vw, 190px); }
.egc-project { display: grid; grid-template-columns: minmax(0, 1.25fr) minmax(320px, .75fr); align-items: center; gap: clamp(55px, 7vw, 110px); }
.egc-project.is-reversed { grid-template-columns: minmax(320px, .75fr) minmax(0, 1.25fr); }
.egc-project.is-reversed .egc-project__media { grid-column: 2; }
.egc-project.is-reversed .egc-project__content { grid-column: 1; grid-row: 1; }
.egc-project__media { position: relative; display: block; overflow: hidden; background: #e7e9ed; text-decoration: none; }
.egc-ratio--wide { aspect-ratio: 16 / 10; }
.egc-ratio--tall { aspect-ratio: 4 / 5; max-width: 680px; }
.egc-ratio--square { aspect-ratio: 1; }
.egc-project__media img { position: absolute; inset: -8% 0; width: 100%; height: 116%; object-fit: cover; transform: scale(1.015); transition: transform 1.2s var(--egc-ease), opacity .7s ease; }
.egc-project__media:hover > img:first-child { transform: scale(1.055); }
.egc-project__hover { opacity: 0; }
.egc-project__media:hover .egc-project__hover { opacity: 1; }
.egc-project__view { position: absolute; right: 0; bottom: 0; z-index: 2; display: flex; align-items: center; gap: 18px; padding: 20px 24px; background: var(--egc-navy); color: #fff; font-size: .68rem; font-weight: 600; letter-spacing: .12em; text-transform: uppercase; transform: translateY(100%); transition: transform .55s var(--egc-ease); }
.egc-project__media:hover .egc-project__view { transform: translateY(0); }
.egc-project__meta { display: flex; justify-content: space-between; gap: 20px; padding-bottom: 17px; border-bottom: 1px solid rgba(27,42,94,.18); color: #8c93a6; font-size: .69rem; letter-spacing: .14em; text-transform: uppercase; }
.egc-project h3 { margin: 25px 0 0; font-family: Manrope, sans-serif; font-size: clamp(2rem, 3.3vw, 3.45rem); line-height: 1.02; font-weight: 800; letter-spacing: -.048em; }
.egc-project h3 a { color: inherit; text-decoration: none; }
.egc-project__scope { margin: 17px 0 0; color: var(--egc-muted); font-size: .8rem; }
.egc-project__note { margin: 27px 0 0; color: #4c546a; font-size: .94rem; line-height: 1.75; }
.egc-project__facts { display: grid; grid-template-columns: repeat(3, 1fr); gap: 0; margin: 32px 0 0; padding: 0; border-top: 1px solid rgba(27,42,94,.17); list-style: none; }
.egc-project__facts li { padding: 17px 10px 0 0; color: #8b92a5; font-size: .68rem; letter-spacing: .09em; text-transform: uppercase; }

/* Pinned gallery */
.egc-pinned { background: #fff; border-top: 1px solid var(--egc-line); }
.egc-pinned__track { height: calc(var(--egc-pinned-count) * 100vh); min-height: 1700px; }
.egc-pinned__sticky { position: sticky; top: 0; min-height: 100vh; display: flex; align-items: center; }
.egc-pinned__grid { display: grid; grid-template-columns: .92fr 1.08fr; gap: clamp(60px, 8vw, 120px); align-items: center; padding-block: 80px; }
.egc-pinned__list { margin: 38px 0 0; padding: 0; border-bottom: 1px solid var(--egc-line); list-style: none; }
.egc-pinned__list li { border-top: 1px solid var(--egc-line); opacity: .34; transition: opacity .6s ease; }
.egc-pinned__list li.is-active { opacity: 1; }
.egc-pinned__list li > div { display: flex; align-items: baseline; gap: 18px; padding: 20px 0; }
.egc-pinned__list em { width: 28px; color: var(--egc-red); font-size: .7rem; font-style: normal; letter-spacing: .13em; }
.egc-pinned__list span { flex: 1; }
.egc-pinned__list strong { display: block; font-family: Manrope, sans-serif; font-size: clamp(1.25rem, 2vw, 1.75rem); letter-spacing: -.03em; }
.egc-pinned__list small { display: block; margin-top: 7px; color: var(--egc-muted); font-size: .78rem; }
.egc-pinned__list li > div > i { width: 40px; height: 1px; background: rgba(27,42,94,.18); }
.egc-pinned__list li > div > i b { display: block; height: 1px; background: var(--egc-red); transform: scaleX(0); transform-origin: left; transition: transform .65s var(--egc-ease); }
.egc-pinned__list li.is-active > div > i b { transform: scaleX(1); }
.egc-pinned__list li > p { max-height: 0; margin: 0 0 0 46px; overflow: hidden; color: #4c546a; font-size: .9rem; line-height: 1.7; opacity: 0; transition: max-height .65s var(--egc-ease), opacity .5s ease, margin .65s var(--egc-ease); }
.egc-pinned__list li.is-active > p { max-height: 140px; margin-bottom: 22px; opacity: 1; }
.egc-pinned__media { position: relative; height: min(74vh, 780px); min-height: 560px; overflow: hidden; background: var(--egc-mist); }
.egc-pinned__media > img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; opacity: 0; transform: scale(1.05); transition: opacity .9s var(--egc-ease), transform 1.15s var(--egc-ease); }
.egc-pinned__media > img.is-active { opacity: 1; transform: scale(1); }
.egc-pinned__caption { position: absolute; inset: auto 0 0; display: flex; align-items: baseline; gap: 18px; padding: 19px 24px; background: var(--egc-navy); color: #fff; }
.egc-pinned__caption span { color: rgba(255,255,255,.55); font-size: .67rem; letter-spacing: .18em; }
.egc-pinned__caption strong { font-family: Manrope, sans-serif; font-size: .88rem; }

/* Horizontal panorama */
.egc-panorama { background: var(--egc-mist); border-top: 1px solid var(--egc-line); overflow: clip; }
.egc-panorama__track { height: 240vh; min-height: 1500px; }
.egc-panorama__sticky { position: sticky; top: 0; min-height: 100vh; display: flex; flex-direction: column; justify-content: center; overflow: hidden; }
.egc-panorama__head { display: flex; align-items: end; justify-content: space-between; gap: 30px; padding-bottom: 30px; border-bottom: 1px solid var(--egc-line); }
.egc-panorama__head h2 { margin: 0; font-family: Manrope, sans-serif; font-size: clamp(2rem, 3.4vw, 3rem); font-weight: 800; letter-spacing: -.04em; }
.egc-panorama__head p { margin: 0; color: #9198aa; font-size: .68rem; letter-spacing: .15em; text-transform: uppercase; }
.egc-panorama__rail { display: flex; gap: 24px; width: max-content; margin-top: 42px; padding-inline: max(24px, calc((100vw - var(--egc-max)) / 2)); will-change: transform; }
.egc-panorama figure { width: clamp(380px, 34vw, 600px); flex: 0 0 auto; margin: 0; }
.egc-panorama figure > div { position: relative; aspect-ratio: 4 / 3; overflow: hidden; background: #e7e9ed; }
.egc-panorama figure img { position: absolute; inset: -7% 0; width: 100%; height: 114%; object-fit: cover; transition: transform 1s var(--egc-ease); }
.egc-panorama figure:hover img { transform: scale(1.045); }
.egc-panorama figcaption { display: flex; justify-content: space-between; gap: 20px; margin-top: 15px; padding-top: 14px; border-top: 1px solid rgba(27,42,94,.16); color: var(--egc-muted); font-size: .69rem; letter-spacing: .12em; text-transform: uppercase; }
.egc-panorama figcaption em { color: #9299aa; font-style: normal; }

/* Approach */
.egc-approach { border-top: 1px solid var(--egc-line); }
.egc-approach__grid { display: grid; grid-template-columns: .86fr 1.14fr; gap: clamp(70px, 8vw, 130px); }
.egc-approach__left { position: relative; }
.egc-approach__left .egc-section-title { position: sticky; top: 100px; z-index: 2; margin-top: 0; padding-bottom: 40px; background: linear-gradient(#fff 75%, rgba(255,255,255,0)); }
.egc-approach__media { position: sticky; top: 290px; height: min(52vh, 540px); margin: 42px 0 0; overflow: hidden; }
.egc-approach__media img { position: absolute; inset: -8% 0; width: 100%; height: 116%; object-fit: cover; }
.egc-approach__media figcaption { position: absolute; left: 0; bottom: 0; padding: 15px 18px; background: rgba(255,255,255,.93); color: #959caf; font-size: .62rem; letter-spacing: .15em; }
.egc-approach__steps { padding-top: 120px; }
.egc-approach__steps article { display: grid; grid-template-columns: 36px 1fr; gap: 20px; padding: 38px 0; border-top: 1px solid var(--egc-line); }
.egc-approach__steps article:last-child { border-bottom: 1px solid var(--egc-line); }
.egc-approach__steps article > span { color: var(--egc-red); font-size: .68rem; letter-spacing: .13em; }
.egc-approach__steps h3 { margin: 0; font-family: Manrope, sans-serif; font-size: clamp(1.25rem, 1.8vw, 1.65rem); line-height: 1.2; letter-spacing: -.03em; }
.egc-approach__steps p { max-width: 560px; margin: 15px 0 0; color: var(--egc-muted); font-size: .9rem; line-height: 1.7; }

/* Credibility */
.egc-credibility { background: var(--egc-mist); }
.egc-credibility__head { display: grid; grid-template-columns: 1.25fr .75fr; gap: 80px; align-items: end; }
.egc-credibility__head .egc-body-copy { margin: 0; max-width: 430px; }
.egc-stats { display: grid; grid-template-columns: repeat(3, 1fr); margin-top: 80px; border-top: 1px solid rgba(27,42,94,.18); border-bottom: 1px solid rgba(27,42,94,.18); }
.egc-stats article { min-height: 270px; padding: 38px 34px 34px 0; border-right: 1px solid rgba(27,42,94,.18); }
.egc-stats article + article { padding-left: 34px; }
.egc-stats article:last-child { border-right: 0; }
.egc-stat__value { display: flex; align-items: baseline; font-family: Manrope, sans-serif; font-size: clamp(2.8rem, 5vw, 5rem); font-weight: 800; line-height: 1; letter-spacing: -.055em; }
.egc-stat__value span { font-size: .55em; color: var(--egc-red); }
.egc-stats h3 { margin: 32px 0 0; font-family: Manrope, sans-serif; font-size: 1rem; letter-spacing: -.02em; }
.egc-stats p { margin: 12px 0 0; color: var(--egc-muted); font-size: .82rem; line-height: 1.65; }

/* CTA */
.egc-cta { position: relative; min-height: 650px; display: flex; align-items: center; overflow: hidden; background-position: center; background-size: cover; color: #fff; }
.egc-cta__overlay { position: absolute; inset: 0; background: var(--egc-navy); opacity: 1; }
.egc-cta.has-image .egc-cta__overlay { opacity: .8; }
.egc-cta__inner { position: relative; z-index: 1; padding-block: 100px; }
.egc-cta h2 { max-width: 900px; margin: 36px 0 0; font-family: Manrope, sans-serif; font-size: clamp(3rem, 7vw, 6.8rem); line-height: .92; font-weight: 800; letter-spacing: -.06em; }
.egc-cta h2 .egc-line-mask { display: block; }
.egc-cta__inner > p:not(.egc-eyebrow) { max-width: 520px; margin: 36px 0; color: rgba(255,255,255,.66); font-size: 1rem; line-height: 1.72; }

/* Footer */
.egc-footer { background: #fff; color: var(--egc-navy); border-top: 1px solid var(--egc-line); }
.egc-footer__grid { display: grid; grid-template-columns: 1.4fr repeat(3, 1fr); gap: 70px; padding-block: 72px; }
.egc-footer__brand img { width: auto; max-width: 240px; height: 68px; object-fit: contain; object-position: left center; }
.egc-footer__brand > strong { font-family: Manrope, sans-serif; font-size: 1.15rem; letter-spacing: .12em; }
.egc-footer address { display: flex; flex-direction: column; gap: 7px; margin-top: 28px; color: var(--egc-muted); font-size: .78rem; font-style: normal; line-height: 1.55; }
.egc-footer address a { color: inherit; text-decoration: none; }
.egc-footer nav h3 { margin: 0 0 20px; font-size: .66rem; font-weight: 700; letter-spacing: .2em; text-transform: uppercase; }
.egc-footer nav a { display: block; margin: 13px 0 0; color: var(--egc-muted); font-size: .78rem; text-decoration: none; transition: color .3s ease, transform .35s var(--egc-ease); }
.egc-footer nav a:hover { color: var(--egc-navy); transform: translateX(4px); }
.egc-footer__bottom { display: flex; justify-content: space-between; gap: 20px; padding-block: 20px; border-top: 1px solid var(--egc-line); color: #9299aa; font-size: .68rem; }
.egc-footer__bottom a { color: inherit; text-decoration: none; }

/* Motion with visible fallbacks */
.egc-motion-ready [data-egc-line], .egc-motion-ready [data-egc-rise], .egc-motion-ready [data-egc-words] { opacity: 0; }
.egc-motion-ready [data-egc-line] { display: block; transform: translateY(108%); transition: transform 1s var(--egc-ease) var(--egc-delay,0ms), opacity .75s ease var(--egc-delay,0ms); }
.egc-motion-ready [data-egc-rise] { transform: translateY(24px); transition: transform .9s var(--egc-ease) var(--egc-delay,0ms), opacity .75s ease var(--egc-delay,0ms); }
.egc-motion-ready [data-egc-words] { transform: translateY(22px); transition: transform 1s var(--egc-ease), opacity .8s ease; }
.egc-motion-ready [data-egc-line].is-visible, .egc-motion-ready [data-egc-rise].is-visible, .egc-motion-ready [data-egc-words].is-visible { opacity: 1; transform: translateY(0); }
.egc-motion-ready [data-egc-image-reveal] { clip-path: inset(0 0 0 0); }
.egc-motion-ready [data-egc-image-reveal]:not(.is-visible) { transition: none; }
.egc-motion-ready [data-egc-image-reveal="left"]:not(.is-visible) { clip-path: inset(0 100% 0 0); }
.egc-motion-ready [data-egc-image-reveal="right"]:not(.is-visible) { clip-path: inset(0 0 0 100%); }
.egc-motion-ready [data-egc-image-reveal="bottom"]:not(.is-visible) { clip-path: inset(100% 0 0 0); }
.egc-motion-ready [data-egc-image-reveal="bottom-right"]:not(.is-visible) { clip-path: inset(58% 0 0 58%); }
.egc-motion-ready [data-egc-image-reveal="bottom-left"]:not(.is-visible) { clip-path: inset(58% 58% 0 0); }
.egc-motion-ready [data-egc-image-reveal].is-visible { clip-path: inset(0); transition: clip-path 1.2s var(--egc-ease); }
.egc-motion-ready [data-egc-curtain]::after { content: ""; position: absolute; inset: 0; z-index: 5; background: var(--egc-navy); transform: translateY(0); pointer-events: none; transition: transform 1.2s var(--egc-ease); }
.egc-motion-ready [data-egc-curtain].is-visible::after { transform: translateY(-100%); }

@media (max-width: 1100px) {
  .egc-nav__links { gap: 20px; }
  .egc-nav__cta { display: none; }
  .egc-expertises__grid, .egc-approach__grid { gap: 60px; }
  .egc-project { grid-template-columns: 1.1fr .9fr; gap: 55px; }
  .egc-project.is-reversed { grid-template-columns: .9fr 1.1fr; }
}

@media (max-width: 900px) {
  .egc-container { width: min(calc(100% - 40px), var(--egc-max)); }
  .egc-nav__inner { min-height: 72px; }
  .egc-nav__links { display: none; }
  .egc-nav__toggle { display: block; }
  .egc-brand__logo { height: 46px; max-width: 190px; }
  .egc-hero { min-height: 760px; }
  .egc-hero__content { padding-top: 135px; }
  .egc-hero__foot { align-items: flex-start; flex-direction: column; }
  .egc-hero-index { gap: 15px 24px; }
  .egc-expertises__grid, .egc-approach__grid, .egc-credibility__head { grid-template-columns: 1fr; }
  .egc-expertises__intro, .egc-approach__left .egc-section-title, .egc-approach__media { position: relative; top: auto; }
  .egc-project, .egc-project.is-reversed { grid-template-columns: 1fr; }
  .egc-project.is-reversed .egc-project__media, .egc-project.is-reversed .egc-project__content { grid-column: auto; grid-row: auto; }
  .egc-ratio--tall { max-width: none; aspect-ratio: 5 / 4; }
  .egc-pinned__track, .egc-panorama__track { height: auto; min-height: 0; }
  .egc-pinned__sticky, .egc-panorama__sticky { position: relative; min-height: 0; padding-block: 90px; }
  .egc-pinned__grid { grid-template-columns: 1fr; padding-block: 0; }
  .egc-pinned__media { min-height: 520px; height: 66vh; }
  .egc-pinned__list li { opacity: 1; }
  .egc-pinned__list li > p { max-height: 160px; margin-bottom: 20px; opacity: 1; }
  .egc-panorama__sticky { display: block; overflow: hidden; }
  .egc-panorama__rail { width: auto; overflow-x: auto; transform: none !important; padding-bottom: 20px; }
  .egc-panorama figure { width: min(75vw, 540px); }
  .egc-approach__steps { padding-top: 20px; }
  .egc-approach__media { height: 500px; }
  .egc-stats { grid-template-columns: 1fr; }
  .egc-stats article, .egc-stats article + article { min-height: 0; padding: 32px 0; border-right: 0; border-bottom: 1px solid rgba(27,42,94,.18); }
  .egc-stats article:last-child { border-bottom: 0; }
  .egc-footer__grid { grid-template-columns: 1.4fr 1fr 1fr; }
  .egc-footer__grid nav:last-child { grid-column: 2; }
}

@media (max-width: 640px) {
  .egc-container { width: min(calc(100% - 32px), var(--egc-max)); }
  .egc-section { padding-block: 82px; }
  .egc-section-title { font-size: 2.35rem; }
  .egc-nav__inner { min-height: 68px; }
  .egc-brand__logo { height: 42px; max-width: 165px; }
  .egc-hero { min-height: 720px; }
  .egc-hero__media { transform: scale(1.04); }
  .egc-hero__content { padding-top: 120px; padding-bottom: 28px; }
  .egc-hero__title { margin-top: 28px; font-size: clamp(2.8rem, 13vw, 4rem); }
  .egc-hero__description { margin-top: 26px; font-size: .95rem; line-height: 1.65; }
  .egc-hero__actions { margin-top: 30px; align-items: flex-start; flex-direction: column; }
  .egc-fill-button { width: 100%; padding-inline: 22px; }
  .egc-hero__foot { padding-bottom: 25px; }
  .egc-hero-index { display: grid; width: 100%; grid-template-columns: 1fr; }
  .egc-hero-index li:nth-child(n+3) { display: none; }
  .egc-accordion__trigger { gap: 15px; padding: 23px 0; }
  .egc-accordion__content { flex-direction: column; gap: 18px; padding-left: 45px; }
  .egc-projects__head { align-items: flex-start; flex-direction: column; margin-bottom: 70px; }
  .egc-projects__list { gap: 100px; }
  .egc-project__facts { grid-template-columns: 1fr; }
  .egc-project__facts li { padding-bottom: 8px; }
  .egc-pinned__media { min-height: 440px; }
  .egc-panorama__head { align-items: flex-start; flex-direction: column; }
  .egc-panorama figure { width: 82vw; }
  .egc-approach__media { height: 430px; }
  .egc-cta { min-height: 590px; }
  .egc-cta h2 { font-size: clamp(3rem, 15vw, 4.4rem); }
  .egc-footer__grid { grid-template-columns: 1fr 1fr; gap: 48px 30px; }
  .egc-footer__brand { grid-column: 1 / -1; }
  .egc-footer__grid nav:last-child { grid-column: auto; }
  .egc-footer__bottom { flex-direction: column; }
}

@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after { scroll-behavior: auto !important; animation-duration: .01ms !important; animation-iteration-count: 1 !important; transition-duration: .01ms !important; }
  .egc-motion-ready [data-egc-line], .egc-motion-ready [data-egc-rise], .egc-motion-ready [data-egc-words] { opacity: 1 !important; transform: none !important; }
  .egc-motion-ready [data-egc-image-reveal] { clip-path: inset(0) !important; }
}

/* =========================================================
   EGC France Elementor 2.0 — native responsive editor controls
   ========================================================= */
.egc-nav__inner {
  width: 100%;
  margin-inline: auto;
}
.egc-brand__logo-wrap,
.egc-footer__brand-logo-wrap {
  display: inline-flex;
  align-items: center;
  justify-content: flex-start;
  overflow: hidden;
  line-height: 0;
}
.egc-brand__logo,
.egc-footer__brand-logo {
  display: block;
  flex: 0 0 auto;
  transition: width .45s var(--egc-ease), height .45s var(--egc-ease), max-width .45s var(--egc-ease);
}
.egc-brand__logo { object-position: left center; }
.egc-footer__brand-logo { object-position: left center; }

/* Elementor editöründe sabit header, düzenleme panelinin önünü kapatmasın. */
.elementor-editor-active .egc-nav,
.elementor-editor-preview .egc-nav {
  position: absolute !important;
}

.egc-hero {
  --egc-hero-overlay-color: #151f45;
  --egc-hero-bottom-shade: .58;
  --egc-hero-media-scale: 1.08;
}
.egc-hero__media { transform: scale(var(--egc-hero-media-scale)); }
.egc-hero__veil { background: color-mix(in srgb, var(--egc-hero-overlay-color) var(--egc-hero-overlay), transparent); }
@supports not (background: color-mix(in srgb, black 50%, transparent)) {
  .egc-hero__veil { background: rgb(21 31 69 / var(--egc-hero-overlay)); }
}
.egc-hero__veil::after { background: linear-gradient(to bottom, transparent, rgb(10 18 43 / var(--egc-hero-bottom-shade))); }

/* V2 controls may change transform for copy; keep scroll transform on an inner layer only. */
.egc-hero__copy { will-change: transform; }

.egc-footer__brand img,
.egc-footer__brand-logo {
  max-width: none;
}

@media (max-width: 1024px) {
  .egc-nav__inner { width: 100%; }
  .egc-brand__logo-wrap { max-width: 100%; }
}

@media (max-width: 767px) {
  .egc-hero--mobile-poster .egc-hero__video { display: none !important; }
  .egc-hero--mobile-poster .egc-hero__plate.is-active { opacity: 1 !important; }
  .egc-brand__logo,
  .egc-footer__brand-logo { max-width: none; }
}


/* =========================================================
   EGC France Elementor 2.1 — sticky approach + header safety
   ========================================================= */
/* Elementor/tema kapsayıcıları sabit header'ı ve logoyu kırpmasın. */
.elementor-widget-egc-nav,
.elementor-widget-egc-nav > .elementor-widget-container,
.egc-nav,
.egc-nav__inner,
.egc-brand,
.egc-brand__logo-wrap {
  overflow: visible !important;
}
.egc-brand__logo-wrap { flex: 0 0 auto; }
.egc-brand__logo { max-height: none; }

/* WordPress yönetim çubuğu açıkken header ekranın altında kalmasın. */
body.admin-bar .egc-nav { top: 32px; }
@media (max-width: 782px) {
  body.admin-bar .egc-nav { top: 46px; }
}

/* Method/Approach: başlık ve görseli iki ayrı sticky yerine tek dengeli blok yapar. */
.egc-approach {
  overflow: clip;
  padding-bottom: clamp(72px, 6vw, 104px);
}
.egc-approach__grid {
  align-items: start;
}
.egc-approach--left-sticky .egc-approach__left {
  position: sticky;
  align-self: start;
}
.egc-approach__left .egc-section-title {
  position: relative;
  top: auto;
  padding-bottom: 0;
  background: none;
}
.egc-approach__media {
  position: relative;
  top: auto;
  height: 430px;
  margin-top: 38px;
}
.egc-approach__steps {
  padding-top: 70px;
}

@media (max-width: 1024px) {
  .egc-approach { padding-bottom: 82px; }
}
@media (max-width: 900px) {
  .egc-approach--left-sticky .egc-approach__left {
    position: relative;
    top: auto !important;
  }
  .egc-approach__media { height: 500px; }
  .egc-approach__steps { padding-top: 20px; }
}
@media (max-width: 767px) {
  .egc-approach { padding-bottom: 64px; }
  .egc-approach__media { height: 390px; }
}


/* =========================================================
   EGC France Elementor 2.2 — sticky header logo layer fix
   ========================================================= */
/* Elementor üst seviye stacking context'inin header'ı içerik altında bırakmasını engeller. */
.elementor-widget-egc-nav {
  position: relative !important;
  z-index: 2147483000 !important;
  isolation: isolate !important;
}
.elementor-widget-egc-nav > .elementor-widget-container {
  position: relative !important;
  z-index: 2147483000 !important;
  overflow: visible !important;
}

/* Header her bölümün ve sticky içeriklerin üzerinde kalır. */
.egc-nav {
  z-index: 2147483001 !important;
  isolation: isolate;
  overflow: visible !important;
  transform: translateZ(0);
  -webkit-transform: translateZ(0);
}

/* Beyaz/sticky zemin daima içerik katmanının arkasında tutulur. */
.egc-nav::before {
  content: "";
  position: absolute;
  inset: 0;
  z-index: 0;
  background: inherit;
  border-bottom: inherit;
  box-shadow: inherit;
  backdrop-filter: inherit;
  -webkit-backdrop-filter: inherit;
  pointer-events: none;
}
.egc-nav.is-transparent:not(.is-scrolled):not(.is-open)::before {
  background: transparent;
  border-color: transparent;
  box-shadow: none;
  backdrop-filter: none;
  -webkit-backdrop-filter: none;
}

/* Logo ve menü beyaz arka planın önünde, birbirleriyle aynı güvenli katmanda. */
.egc-nav__inner,
.egc-nav__mobile,
.egc-nav__progress {
  position: relative;
  z-index: 3;
}
.egc-brand,
.egc-brand__logo-wrap,
.egc-brand__logo {
  position: relative;
  z-index: 5;
}

/* Scroll sırasında header küçülse bile logo üstten/alttan kesilmesin. */
.egc-nav__inner {
  height: auto !important;
  padding-top: 6px;
  padding-bottom: 6px;
  overflow: visible !important;
}
.egc-nav.is-scrolled .egc-nav__inner {
  height: auto !important;
  padding-top: 7px;
  padding-bottom: 7px;
  overflow: visible !important;
}
.egc-brand,
.egc-brand__logo-wrap {
  min-height: 0;
  overflow: visible !important;
}
.egc-brand__logo {
  margin: 0 !important;
  transform: none !important;
  clip-path: none !important;
  overflow: visible !important;
}

/* Tema veya bölüm overlay'lerinin sabit header'ın üzerine çıkmasını engeller. */
body:not(.elementor-editor-active) .elementor-location-header,
body:not(.elementor-editor-active) #masthead,
body:not(.elementor-editor-active) .site-header {
  position: relative;
  z-index: 2147482999;
}

@media (max-width: 767px) {
  .egc-nav__inner,
  .egc-nav.is-scrolled .egc-nav__inner {
    padding-top: 5px;
    padding-bottom: 5px;
  }
}


/* =========================================================
   EGC France 3.0 — multi-page system
   ========================================================= */
.egc-breadcrumb{display:flex;align-items:center;gap:12px;margin-bottom:45px;font-size:.67rem;letter-spacing:.16em;text-transform:uppercase;opacity:.66}.egc-breadcrumb a{color:inherit;text-decoration:none}.egc-breadcrumb i{width:26px;height:1px;background:var(--egc-red)}
.egc-page-hero{--egc-page-overlay:40%;position:relative;min-height:760px;overflow:hidden;background:#fff;color:var(--egc-navy)}.egc-page-hero__inner{position:relative;z-index:2;min-height:inherit;display:flex;align-items:center;padding-top:110px;padding-bottom:70px}.egc-page-hero__copy{width:min(650px,48%)}.egc-page-hero__title{margin:28px 0 0;font:800 clamp(3.2rem,6vw,6rem)/.94 Manrope,Inter,sans-serif;letter-spacing:-.06em}.egc-page-hero__text{max-width:520px;margin:34px 0 0;color:var(--egc-muted);font-size:1.02rem;line-height:1.75}.egc-page-hero__media{position:absolute;right:0;top:0;width:49%;height:100%;overflow:hidden}.egc-page-hero__media img{width:100%;height:110%;object-fit:cover}.egc-page-hero--full{color:#fff;background:var(--egc-deep)}.egc-page-hero--full::after{content:"";position:absolute;inset:0;z-index:1;background:linear-gradient(90deg,rgb(15 26 62 / .84),rgb(15 26 62 / .25) 62%,rgb(15 26 62 / .1))}.egc-page-hero--full .egc-page-hero__media{inset:0;width:100%}.egc-page-hero--full .egc-page-hero__copy{width:min(760px,70%)}.egc-page-hero--full .egc-page-hero__text{color:rgba(255,255,255,.72)}.egc-page-hero--navy{background:var(--egc-deep);color:#fff}.egc-page-hero--navy .egc-page-hero__media{opacity:.22;mix-blend-mode:luminosity}.egc-page-hero--navy .egc-page-hero__text{color:rgba(255,255,255,.68)}
.egc-editorial__grid{display:grid;grid-template-columns:1.05fr .95fr;gap:clamp(70px,9vw,150px);align-items:center}.egc-editorial--left .egc-editorial__media{order:2}.egc-editorial__media{position:relative;margin:0;min-height:660px;overflow:hidden}.egc-editorial__media img{width:100%;height:108%;object-fit:cover}.egc-editorial__media figcaption{position:absolute;left:22px;bottom:18px;padding:10px 14px;background:rgba(255,255,255,.9);font-size:.62rem;letter-spacing:.2em}.egc-editorial__copy .egc-body-copy{max-width:570px;margin-top:34px}.egc-editorial__copy .egc-body-copy p+p{margin-top:22px}.egc-editorial--dark{background:var(--egc-deep);color:#fff}.egc-editorial--dark .egc-section-title{color:#fff}.egc-editorial--dark .egc-body-copy{color:rgba(255,255,255,.66)}
.egc-service-showcase__head{display:grid;grid-template-columns:.7fr 1.3fr;margin-bottom:90px}.egc-service-showcase__list{display:grid;gap:clamp(90px,12vw,190px)}.egc-service-row{display:grid;grid-template-columns:1.25fr .75fr;gap:clamp(55px,8vw,130px);align-items:center}.egc-service-row.is-reversed{grid-template-columns:.75fr 1.25fr}.egc-service-row.is-reversed .egc-service-row__media{order:2}.egc-service-row__media{display:block;aspect-ratio:1.35;overflow:hidden}.egc-service-row__media img{width:100%;height:108%;object-fit:cover}.egc-service-row__copy>span{color:var(--egc-red);font-size:.7rem;letter-spacing:.18em}.egc-service-row__copy h3{margin:18px 0 0;font:800 clamp(2.7rem,5vw,5.4rem)/.94 Manrope,sans-serif;letter-spacing:-.055em}.egc-service-row__copy p{max-width:440px;margin:26px 0 0;color:var(--egc-muted);line-height:1.75}
.egc-feature-list__grid{display:grid;grid-template-columns:.82fr 1.18fr;gap:clamp(70px,9vw,150px)}.egc-feature-list__sticky{position:sticky;top:120px;align-self:start}.egc-feature-list__sticky figure{height:380px;margin:55px 0 0;overflow:hidden}.egc-feature-list__sticky img{width:100%;height:110%;object-fit:cover}.egc-feature-list__items{margin:0;padding:0;list-style:none;border-bottom:1px solid var(--egc-line)}.egc-feature-list__items li{display:grid;grid-template-columns:55px 1fr;gap:28px;padding:42px 0;border-top:1px solid var(--egc-line)}.egc-feature-list__items li>span{color:var(--egc-red);font-size:.68rem;letter-spacing:.14em}.egc-feature-list__items h3{margin:0;font:700 clamp(1.4rem,2.2vw,2.2rem)/1.1 Manrope,sans-serif;letter-spacing:-.035em}.egc-feature-list__items p{max-width:620px;margin:17px 0 0;color:var(--egc-muted);line-height:1.7}
.egc-project-grid__head{display:flex;justify-content:space-between;align-items:flex-end;gap:40px;margin-bottom:75px}.egc-project-filters{display:flex;flex-wrap:wrap;gap:8px}.egc-project-filters button{padding:11px 17px;border:1px solid var(--egc-line);background:transparent;color:var(--egc-muted);font:600 .68rem Inter,sans-serif;letter-spacing:.12em;text-transform:uppercase;cursor:pointer}.egc-project-filters button.is-active,.egc-project-filters button:hover{border-color:var(--egc-navy);background:var(--egc-navy);color:#fff}.egc-project-grid__items{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:90px 38px}.egc-project-card:nth-child(3n+2){margin-top:110px}.egc-project-card__image{position:relative;display:block;aspect-ratio:1.25;overflow:hidden;background:#ddd}.egc-project-card__image img{width:100%;height:108%;object-fit:cover;transition:transform .8s var(--egc-ease)}.egc-project-card__image span{position:absolute;right:0;bottom:0;padding:18px 22px;background:var(--egc-navy);color:#fff;font-size:.68rem;font-weight:700;letter-spacing:.12em;text-transform:uppercase;transform:translateY(100%);transition:transform .55s var(--egc-ease)}.egc-project-card__image:hover span{transform:none}.egc-project-card__image:hover img{transform:scale(1.025)}.egc-project-card__meta{display:flex;justify-content:space-between;gap:25px;align-items:start;padding-top:22px;border-top:1px solid var(--egc-line)}.egc-project-card__meta h3,.egc-project-card__meta h2{margin:0;font:700 1.35rem Manrope,sans-serif}.egc-project-card__meta a{color:inherit;text-decoration:none}.egc-project-card__meta p{margin:3px 0 0;color:var(--egc-muted);font-size:.72rem;letter-spacing:.1em;text-transform:uppercase}.egc-project-card.is-hidden{display:none}
.egc-commitments{background:var(--egc-deep);color:#fff}.egc-commitments .egc-section-title{color:#fff;max-width:800px}.egc-commitments__grid{display:grid;grid-template-columns:repeat(2,1fr);gap:1px;margin-top:80px;background:rgba(255,255,255,.14)}.egc-commitments__grid article{position:relative;min-height:390px;padding:44px;background:var(--egc-deep);overflow:hidden}.egc-commitments__media{position:absolute;inset:0;opacity:0;transition:opacity .55s ease}.egc-commitments__media::after{content:"";position:absolute;inset:0;background:rgba(21,31,69,.6)}.egc-commitments__media img{width:100%;height:100%;object-fit:cover}.egc-commitments article:hover .egc-commitments__media{opacity:1}.egc-commitments article>span,.egc-commitments article>h3,.egc-commitments article>p{position:relative;z-index:1}.egc-commitments article>span{color:var(--egc-red);font-size:.68rem}.egc-commitments article>h3{margin:90px 0 0;font:700 2.2rem Manrope,sans-serif}.egc-commitments article>p{max-width:430px;color:rgba(255,255,255,.65);line-height:1.7}
.egc-careers__grid,.egc-contact__grid{display:grid;grid-template-columns:.78fr 1.22fr;gap:clamp(70px,9vw,150px)}.egc-careers__intro{position:sticky;top:120px;align-self:start}.egc-careers__intro .egc-body-copy{margin:30px 0}.egc-careers__jobs{border-bottom:1px solid var(--egc-line)}.egc-careers__jobs article{display:flex;justify-content:space-between;gap:30px;padding:38px 0;border-top:1px solid var(--egc-line)}.egc-careers__jobs small{color:var(--egc-red);font-size:.65rem;letter-spacing:.14em;text-transform:uppercase}.egc-careers__jobs h3{margin:13px 0;font:700 1.75rem Manrope,sans-serif}.egc-careers__jobs p{max-width:560px;margin:0;color:var(--egc-muted);line-height:1.65}.egc-careers__jobs article>a{display:grid;place-items:center;min-width:52px;height:52px;background:#fff;color:var(--egc-navy);text-decoration:none;transition:background .3s,color .3s}.egc-careers__jobs article>a:hover{background:var(--egc-red);color:#fff}
.egc-contact aside{position:sticky;top:120px;align-self:start}.egc-contact aside>.egc-body-copy{margin:30px 0}.egc-contact__details{display:grid;gap:12px;padding-top:32px;border-top:1px solid var(--egc-line)}.egc-contact__details a{color:var(--egc-navy);font-weight:600;text-decoration:none}.egc-contact__details p{color:var(--egc-muted);line-height:1.7}.egc-contact__form{padding:50px;background:var(--egc-mist)}.egc-field-row{display:grid;grid-template-columns:1fr 1fr;gap:22px}.egc-contact__form label{display:grid;gap:9px;margin-bottom:22px;color:var(--egc-muted);font-size:.7rem;font-weight:600;letter-spacing:.1em;text-transform:uppercase}.egc-contact__form input,.egc-contact__form select,.egc-contact__form textarea{width:100%;border:0;border-bottom:1px solid #b7bbc6;border-radius:0;background:transparent;padding:14px 0;color:var(--egc-navy);font:500 1rem Inter,sans-serif;outline:none}.egc-contact__form input:focus,.egc-contact__form select:focus,.egc-contact__form textarea:focus{border-color:var(--egc-red)}.egc-consent{display:flex!important;grid-template-columns:auto 1fr!important;align-items:start;text-transform:none!important;letter-spacing:0!important;line-height:1.5}.egc-consent input{width:auto;margin-top:3px}.egc-hp{position:absolute!important;left:-9999px!important}.egc-form-message{margin-bottom:25px;padding:15px 18px;border-left:3px solid}.egc-form-message.is-success{background:#edf7ef;border-color:#20813a}.egc-form-message.is-error{background:#fff0f0;border-color:var(--egc-red)}
.egc-project-single__hero{position:relative;min-height:88vh;display:flex;align-items:end;overflow:hidden;background:var(--egc-deep);color:#fff}.egc-project-single__hero>img{position:absolute;inset:0;width:100%;height:110%;object-fit:cover}.egc-project-single__veil{position:absolute;inset:0;background:linear-gradient(180deg,rgba(15,24,55,.15),rgba(15,24,55,.78))}.egc-project-single__hero .egc-container{position:relative;z-index:1;padding-top:160px;padding-bottom:70px}.egc-project-single__hero h1{max-width:1100px;margin:32px 0 15px;font:800 clamp(3.6rem,8vw,8rem)/.9 Manrope,sans-serif;letter-spacing:-.07em}.egc-project-single__intro>.egc-container{display:grid;grid-template-columns:.7fr 1.3fr;gap:100px}.egc-project-single__facts{display:grid;align-content:start}.egc-project-single__facts>div{display:flex;justify-content:space-between;gap:20px;padding:18px 0;border-top:1px solid var(--egc-line)}.egc-project-single__facts span{color:var(--egc-muted);font-size:.7rem;text-transform:uppercase;letter-spacing:.12em}.egc-project-single__copy h2{margin:0 0 35px;font:800 3.4rem Manrope,sans-serif}.egc-project-gallery>.egc-container{display:grid;grid-template-columns:repeat(2,1fr);gap:28px}.egc-project-gallery figure{margin:0;min-height:520px;overflow:hidden}.egc-project-gallery figure.is-wide{grid-column:1/-1;min-height:760px}.egc-project-gallery img{width:100%;height:100%;object-fit:cover}.egc-project-next{padding-block:100px;background:var(--egc-deep);color:#fff}.egc-project-next p{color:rgba(255,255,255,.5);font-size:.68rem;letter-spacing:.2em;text-transform:uppercase}.egc-project-next a{display:flex;justify-content:space-between;align-items:center;color:#fff;text-decoration:none;font:700 clamp(2.7rem,6vw,6rem)/1 Manrope,sans-serif;letter-spacing:-.055em}.egc-archive-hero{padding:190px 0 100px;background:#fff}.egc-archive-hero h1{margin:35px 0 20px;font:800 clamp(4rem,9vw,9rem)/.88 Manrope,sans-serif;letter-spacing:-.075em}.egc-archive-hero>p{color:var(--egc-muted)}
@media(max-width:900px){.egc-page-hero__copy{width:58%}.egc-editorial__grid,.egc-feature-list__grid,.egc-careers__grid,.egc-contact__grid{grid-template-columns:1fr}.egc-editorial__media{min-height:520px}.egc-editorial--left .egc-editorial__media{order:0}.egc-feature-list__sticky,.egc-careers__intro,.egc-contact aside{position:relative;top:auto}.egc-service-row,.egc-service-row.is-reversed{grid-template-columns:1fr}.egc-service-row.is-reversed .egc-service-row__media{order:0}.egc-project-grid__items{gap:70px 28px}.egc-commitments__grid{grid-template-columns:1fr}.egc-project-single__intro>.egc-container{grid-template-columns:1fr;gap:60px}}
@media(max-width:640px){.egc-page-hero{min-height:620px}.egc-page-hero__inner{align-items:end;padding-top:130px}.egc-page-hero__copy,.egc-page-hero--full .egc-page-hero__copy{width:100%}.egc-page-hero__media{inset:0;width:100%;opacity:.3}.egc-page-hero::after{content:"";position:absolute;inset:0;z-index:1;background:linear-gradient(180deg,rgba(255,255,255,.2),#fff 78%)}.egc-page-hero--full::after,.egc-page-hero--navy::after{background:linear-gradient(180deg,rgba(15,31,69,.25),rgba(15,31,69,.92))}.egc-page-hero--split .egc-page-hero__media{opacity:.28}.egc-service-showcase__head{grid-template-columns:1fr}.egc-service-row__media{aspect-ratio:1}.egc-project-grid__head{align-items:start;flex-direction:column}.egc-project-grid__items{grid-template-columns:1fr}.egc-project-card:nth-child(3n+2){margin-top:0}.egc-commitments__grid article{min-height:340px;padding:32px}.egc-field-row{grid-template-columns:1fr}.egc-contact__form{padding:30px 22px}.egc-project-gallery>.egc-container{grid-template-columns:1fr}.egc-project-gallery figure,.egc-project-gallery figure.is-wide{grid-column:auto;min-height:420px}.egc-project-single__hero h1{font-size:3.3rem}}

/* =========================================================
   EGC France Elementor 3.1 — structural refinement
   ========================================================= */

/* Header: transparent mode is only used over genuinely dark media. */
.egc-nav.is-transparent.is-top-light:not(.is-scrolled):not(.is-open) {
  background: rgba(255,255,255,.97);
  border-color: var(--egc-line);
  color: var(--egc-nav-navy);
  box-shadow: 0 1px 0 rgba(20,31,69,.06);
}
.egc-nav.is-transparent.is-top-light:not(.is-scrolled):not(.is-open)::before {
  background: rgba(255,255,255,.97);
  border-color: var(--egc-line);
  box-shadow: 0 1px 0 rgba(20,31,69,.06);
  backdrop-filter: blur(12px);
  -webkit-backdrop-filter: blur(12px);
}
.egc-nav.is-transparent.is-top-light:not(.is-scrolled) .egc-nav__cta {
  background: var(--egc-nav-navy);
}
.egc-nav.is-transparent.is-top-light:not(.is-scrolled) .egc-nav__cta::before {
  background: var(--egc-nav-red);
}

/* Hero video mode: poster remains as a safe fallback until playback is ready. */
.egc-hero--video-mode .egc-hero__video-poster {
  opacity: 1;
  transform: scale(1.02);
}
.egc-hero--video-mode .egc-hero__video {
  z-index: 2;
}
.egc-hero--video-mode .egc-hero__video.is-ready + * { visibility: visible; }
.egc-hero--video-mode .egc-hero__video.is-ready ~ .egc-hero__video-poster { opacity: 0; }

/* Method sections: tighter, content-led spacing without removing the visual rhythm. */
.egc-approach {
  padding-top: clamp(72px, 7vw, 108px);
  padding-bottom: clamp(64px, 6vw, 96px);
}
.egc-approach__grid { gap: clamp(48px, 6vw, 88px); }
.egc-approach__media { height: clamp(330px, 34vw, 410px); margin-top: 26px; }
.egc-approach__steps { padding-top: 18px; }
.egc-approach__steps article { padding: 30px 0; }

.egc-feature-list { padding-top: clamp(72px, 7vw, 110px); padding-bottom: clamp(72px, 7vw, 110px); }
.egc-feature-list__grid { gap: clamp(48px, 6vw, 92px); }
.egc-feature-list__sticky figure { height: 330px; margin-top: 38px; }
.egc-feature-list__items li { padding: 34px 0; }

/* Expertises receives a deliberate neutral ground instead of an endless white canvas. */
.egc-service-showcase { background: var(--egc-mist); }
.egc-service-showcase__head { margin-bottom: 70px; }
.egc-service-showcase__list { gap: clamp(72px, 9vw, 135px); }

/* Project section wording now has explanatory context. */
.egc-project-grid__heading { max-width: 780px; }
.egc-project-grid__intro {
  max-width: 590px;
  margin: 24px 0 0;
  color: var(--egc-muted);
  line-height: 1.72;
}

/* CTA: safe visible state and a new editorial split treatment for inner pages. */
.egc-cta { min-height: 0; }
.egc-cta__background { position: absolute; inset: 0; background-position: center; background-size: cover; }
.egc-cta__copy { position: relative; z-index: 2; }
.egc-cta__copy > p:not(.egc-eyebrow) {
  max-width: 540px;
  margin: 32px 0;
  color: rgba(255,255,255,.72);
  font-size: 1rem;
  line-height: 1.72;
}
.egc-cta--navy,
.egc-cta--image { min-height: 580px; color: #fff; }
.egc-cta--image .egc-cta__overlay { opacity: .76; }
.egc-cta--navy .egc-cta__overlay { opacity: 1; }

.egc-cta--split {
  background: var(--egc-mist);
  color: var(--egc-navy);
}
.egc-cta--split .egc-cta__overlay { display: none; }
.egc-cta__inner--split {
  display: grid;
  grid-template-columns: minmax(0, .9fr) minmax(420px, 1.1fr);
  gap: clamp(48px, 7vw, 110px);
  align-items: center;
  padding-block: clamp(78px, 8vw, 125px);
}
.egc-cta--split h2 {
  max-width: 700px;
  margin-top: 30px;
  color: var(--egc-navy);
  font-size: clamp(3rem, 5.7vw, 5.5rem);
}
.egc-cta--split .egc-cta__copy > p:not(.egc-eyebrow) { color: var(--egc-muted); }
.egc-cta__visual {
  position: relative;
  min-height: 500px;
  margin: 0;
  overflow: hidden;
  background: #d9dce2;
}
.egc-cta__visual img { width: 100%; height: 100%; object-fit: cover; transition: transform 1s var(--egc-ease); }
.egc-cta__visual:hover img { transform: scale(1.025); }
.egc-cta__visual-card {
  position: absolute;
  right: 0;
  bottom: 0;
  min-width: 270px;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 30px;
  padding: 24px 26px;
  background: var(--egc-navy);
  color: #fff;
  font-size: .72rem;
  font-weight: 700;
  letter-spacing: .1em;
  text-transform: uppercase;
}
.egc-cta__visual-card b { color: var(--egc-red); font-size: 1.1rem; }

/* Careers is a real page now: vacancies + culture + benefits + application process. */
.egc-careers { overflow: hidden; }
.egc-careers__culture {
  display: grid;
  grid-template-columns: 1.08fr .92fr;
  gap: clamp(55px, 8vw, 125px);
  align-items: center;
  margin-top: clamp(90px, 10vw, 155px);
  padding-top: clamp(75px, 8vw, 120px);
  border-top: 1px solid var(--egc-line);
}
.egc-careers__culture > figure { min-height: 650px; margin: 0; overflow: hidden; }
.egc-careers__culture > figure img { width: 100%; height: 110%; object-fit: cover; }
.egc-careers__culture-copy > .egc-body-copy { max-width: 560px; margin: 30px 0 0; }
.egc-careers__benefits { margin-top: 45px; border-bottom: 1px solid var(--egc-line); }
.egc-careers__benefits article { display: grid; grid-template-columns: 38px 1fr; gap: 16px 22px; padding: 26px 0; border-top: 1px solid var(--egc-line); }
.egc-careers__benefits article > span { grid-row: 1 / span 2; color: var(--egc-red); font-size: .68rem; letter-spacing: .12em; }
.egc-careers__benefits h3 { margin: 0; font: 700 1.25rem/1.2 Manrope,sans-serif; }
.egc-careers__benefits p { margin: 0; color: var(--egc-muted); line-height: 1.65; }
.egc-careers__process {
  display: grid;
  grid-template-columns: .7fr 1.3fr;
  gap: clamp(60px, 8vw, 125px);
  margin-top: clamp(90px, 10vw, 150px);
  padding: clamp(72px, 8vw, 115px);
  background: var(--egc-deep);
  color: #fff;
}
.egc-careers__process .egc-section-title { color: #fff; }
.egc-careers__process > div { display: grid; grid-template-columns: repeat(3,1fr); gap: 1px; background: rgba(255,255,255,.18); }
.egc-careers__process article { padding: 34px; background: var(--egc-deep); }
.egc-careers__process article > span { color: var(--egc-red); font-size: .68rem; letter-spacing: .14em; }
.egc-careers__process h3 { margin: 45px 0 14px; font: 700 1.4rem Manrope,sans-serif; }
.egc-careers__process p { margin: 0; color: rgba(255,255,255,.64); line-height: 1.65; }

@media (max-width: 1024px) {
  .egc-cta__inner--split { grid-template-columns: 1fr 1fr; gap: 44px; }
  .egc-cta__visual { min-height: 440px; }
  .egc-careers__culture { grid-template-columns: 1fr 1fr; gap: 50px; }
  .egc-careers__culture > figure { min-height: 520px; }
  .egc-careers__process { grid-template-columns: 1fr; padding: 65px 50px; }
}
@media (max-width: 767px) {
  .egc-approach__steps { padding-top: 12px; }
  .egc-approach__media { height: 360px; }
  .egc-feature-list__sticky figure { height: 360px; }
  .egc-cta__inner--split { grid-template-columns: 1fr; padding-block: 68px; }
  .egc-cta__visual { min-height: 360px; }
  .egc-cta__visual-card { min-width: 0; width: 100%; }
  .egc-careers__culture { grid-template-columns: 1fr; }
  .egc-careers__culture > figure { min-height: 420px; }
  .egc-careers__process { padding: 55px 24px; }
  .egc-careers__process > div { grid-template-columns: 1fr; }
}


/* =========================================================
   EGC France Elementor 3.2 — visibility, color and layout safety
   ========================================================= */

/* Elementor edit mode must never hide content behind reveal states. */
.elementor-editor-active [data-egc-line],
.elementor-editor-active [data-egc-rise],
.elementor-editor-active [data-egc-words],
.elementor-edit-area-active [data-egc-line],
.elementor-edit-area-active [data-egc-rise],
.elementor-edit-area-active [data-egc-words] {
  opacity: 1 !important;
  transform: none !important;
}
.elementor-editor-active [data-egc-image-reveal],
.elementor-edit-area-active [data-egc-image-reveal] {
  clip-path: inset(0) !important;
}
.elementor-editor-active [data-egc-curtain]::after,
.elementor-edit-area-active [data-egc-curtain]::after { display: none !important; }

/* All inner pages use a readable white navigation bar from the first pixel. */
.egc-nav.is-inner-page,
.egc-nav.is-inner-page.is-transparent:not(.is-scrolled):not(.is-open) {
  background: rgba(255,255,255,.97);
  border-color: var(--egc-line);
  color: var(--egc-nav-navy);
  box-shadow: 0 1px 0 rgba(20,31,69,.06);
}
.egc-nav.is-inner-page::before,
.egc-nav.is-inner-page.is-transparent:not(.is-scrolled):not(.is-open)::before {
  background: rgba(255,255,255,.97);
  border-color: var(--egc-line);
  backdrop-filter: blur(12px);
  -webkit-backdrop-filter: blur(12px);
}
.egc-nav.is-inner-page.is-transparent:not(.is-scrolled) .egc-nav__cta { background: var(--egc-nav-navy); }
.egc-nav.is-inner-page.is-transparent:not(.is-scrolled) .egc-nav__cta::before { background: var(--egc-nav-red); }

/* Variant classes decide their own background. Elementor's generic background
   control remains optional instead of forcing white/navy over the variant. */
.egc-editorial--dark { background-color: var(--egc-deep); color: #fff; }
.egc-editorial--dark .egc-section-title { color: #fff; }
.egc-editorial--dark .egc-body-copy,
.egc-editorial--dark .egc-body-copy p { color: rgba(255,255,255,.72); }
.egc-cta--split { background-color: var(--egc-mist); color: var(--egc-navy); }
.egc-cta--split .egc-cta__copy h2 { color: var(--egc-navy); }
.egc-cta--split .egc-cta__copy > p:not(.egc-eyebrow) { color: var(--egc-muted); }

/* Empty-looking columns were mostly invisible reveal content. These minimums
   also prevent accidental collapsed columns when a media item is missing. */
.egc-editorial__copy,
.egc-contact aside,
.egc-contact__form,
.egc-careers__intro,
.egc-careers__jobs,
.egc-page-hero__copy { position: relative; z-index: 2; }
.egc-editorial__copy { min-width: 0; }
.egc-contact__form { min-height: 520px; }
.egc-contact__grid { align-items: start; }
.egc-page-hero__media img { display: block; }

/* Better content-led proportions on inner pages. */
.egc-editorial { padding-block: clamp(78px,7vw,118px); }
.egc-editorial__media { min-height: clamp(430px,50vw,650px); }
.egc-editorial__grid { gap: clamp(52px,7vw,105px); }
.egc-contact { padding-block: clamp(78px,7vw,118px); }
.egc-contact__grid { gap: clamp(52px,7vw,105px); }
.egc-careers__grid { gap: clamp(52px,7vw,105px); }

/* When animations are disabled or fail, the default state stays visible. */
html:not(.egc-motion-ready) [data-egc-line],
html:not(.egc-motion-ready) [data-egc-rise],
html:not(.egc-motion-ready) [data-egc-words] {
  opacity: 1;
  transform: none;
}
html:not(.egc-motion-ready) [data-egc-image-reveal] { clip-path: inset(0); }
html:not(.egc-motion-ready) [data-egc-curtain]::after { display: none; }

@media (max-width: 900px) {
  .egc-contact__form { min-height: 0; }
  .egc-editorial__media { min-height: 440px; }
}

/* 3.3 — Hero project tabs control their own image/video media. */
.egc-hero__media-item {
  position: absolute;
  inset: 0;
  z-index: 0;
  opacity: 0;
  visibility: hidden;
  pointer-events: none;
  transition: opacity 1.15s var(--egc-ease), visibility 0s linear 1.15s;
}
.egc-hero__media-item.is-active {
  z-index: 1;
  opacity: 1;
  visibility: visible;
  transition-delay: 0s;
}
.egc-hero__media-item .egc-hero__plate,
.egc-hero__media-item .egc-hero__video {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  object-fit: cover;
}
.egc-hero__media-item .egc-hero__indexed-poster {
  z-index: 1;
  opacity: 1;
  transform: scale(1.02);
  transition: opacity .9s ease, transform 7s linear;
}
.egc-hero__media-item.is-active .egc-hero__indexed-poster {
  transform: scale(1.045);
}
.egc-hero__media-item .egc-hero__indexed-video {
  z-index: 2;
  opacity: 0;
  transition: opacity .9s ease;
}
.egc-hero__media-item.is-video-ready .egc-hero__indexed-video,
.egc-hero__media-item .egc-hero__indexed-video.is-ready {
  opacity: 1;
}
.egc-hero__media-item.is-video-ready .egc-hero__indexed-poster {
  opacity: 0;
}
.egc-hero--indexed-mode .egc-hero-index button {
  position: relative;
}

@media (max-width: 767px) {
  .egc-hero--mobile-poster .egc-hero__media-item .egc-hero__indexed-video {
    display: none !important;
  }
  .egc-hero--mobile-poster .egc-hero__media-item .egc-hero__indexed-poster {
    opacity: 1 !important;
  }
}

/* =========================================================
   EGC France Elementor 3.4 — responsive hero media placement
   ========================================================= */
.egc-hero {
  --egc-media-offset-x: 0px;
  --egc-media-offset-y: 0px;
  --egc-parallax-y: 0px;
  --egc-scroll-scale: var(--egc-hero-media-scale, 1.08);
}

/* Full-background mode stays visually identical to the approved homepage. */
.egc-hero--media-full .egc-hero__media {
  inset: 0;
  width: auto;
  height: auto;
  margin: 0;
  overflow: hidden;
  transform: translate3d(
      var(--egc-media-offset-x),
      calc(var(--egc-media-offset-y) + var(--egc-parallax-y)),
      0
    ) scale(var(--egc-scroll-scale));
  transform-origin: center center;
}

/* Optional panel mode: video/image may sit at any edge or corner. */
.egc-hero--media-panel .egc-hero__media {
  inset: auto;
  width: 58%;
  height: 100%;
  margin: 0;
  overflow: hidden;
  background: #07122e;
  transform: translate3d(
      var(--egc-media-offset-x),
      calc(var(--egc-media-offset-y) + var(--egc-parallax-y)),
      0
    );
  transform-origin: center center;
  will-change: transform;
}

.egc-hero--media-panel .egc-hero__media-item,
.egc-hero--media-panel .egc-hero__plate,
.egc-hero--media-panel .egc-hero__video {
  border-radius: inherit;
}

/* Desktop / tablet anchor presets. */
.egc-hero--media-panel.egc-hero--media-left-top .egc-hero__media {
  left: 0; right: auto; top: 0; bottom: auto; margin: 0;
}
.egc-hero--media-panel.egc-hero--media-left-center .egc-hero__media {
  left: 0; right: auto; top: 0; bottom: 0; margin: auto 0;
}
.egc-hero--media-panel.egc-hero--media-left-bottom .egc-hero__media {
  left: 0; right: auto; top: auto; bottom: 0; margin: 0;
}
.egc-hero--media-panel.egc-hero--media-center-top .egc-hero__media {
  left: 0; right: 0; top: 0; bottom: auto; margin: 0 auto;
}
.egc-hero--media-panel.egc-hero--media-center-center .egc-hero__media {
  left: 0; right: 0; top: 0; bottom: 0; margin: auto;
}
.egc-hero--media-panel.egc-hero--media-center-bottom .egc-hero__media {
  left: 0; right: 0; top: auto; bottom: 0; margin: 0 auto;
}
.egc-hero--media-panel.egc-hero--media-right-top .egc-hero__media {
  left: auto; right: 0; top: 0; bottom: auto; margin: 0;
}
.egc-hero--media-panel.egc-hero--media-right-center .egc-hero__media {
  left: auto; right: 0; top: 0; bottom: 0; margin: auto 0;
}
.egc-hero--media-panel.egc-hero--media-right-bottom .egc-hero__media {
  left: auto; right: 0; top: auto; bottom: 0; margin: 0;
}

/* Avoid the full-screen curtain clipping a rounded media panel. */
.egc-hero--media-panel .egc-hero__media::after {
  border-radius: inherit;
}

@media (max-width: 767px) {
  /* Mobile anchor presets deliberately reset every side and margin. */
  .egc-hero--media-panel.egc-hero--media-mobile-left-top .egc-hero__media {
    left: 0; right: auto; top: 0; bottom: auto; margin: 0;
  }
  .egc-hero--media-panel.egc-hero--media-mobile-left-center .egc-hero__media {
    left: 0; right: auto; top: 0; bottom: 0; margin: auto 0;
  }
  .egc-hero--media-panel.egc-hero--media-mobile-left-bottom .egc-hero__media {
    left: 0; right: auto; top: auto; bottom: 0; margin: 0;
  }
  .egc-hero--media-panel.egc-hero--media-mobile-center-top .egc-hero__media {
    left: 0; right: 0; top: 0; bottom: auto; margin: 0 auto;
  }
  .egc-hero--media-panel.egc-hero--media-mobile-center-center .egc-hero__media {
    left: 0; right: 0; top: 0; bottom: 0; margin: auto;
  }
  .egc-hero--media-panel.egc-hero--media-mobile-center-bottom .egc-hero__media {
    left: 0; right: 0; top: auto; bottom: 0; margin: 0 auto;
  }
  .egc-hero--media-panel.egc-hero--media-mobile-right-top .egc-hero__media {
    left: auto; right: 0; top: 0; bottom: auto; margin: 0;
  }
  .egc-hero--media-panel.egc-hero--media-mobile-right-center .egc-hero__media {
    left: auto; right: 0; top: 0; bottom: 0; margin: auto 0;
  }
  .egc-hero--media-panel.egc-hero--media-mobile-right-bottom .egc-hero__media {
    left: auto; right: 0; top: auto; bottom: 0; margin: 0;
  }
}

/* =========================================================
   EGC France 3.5 — global header, single-row menu, safe update
   ========================================================= */
.egc-nav--global .egc-nav__links {
  display: flex !important;
  flex-direction: row !important;
  flex-wrap: nowrap !important;
  align-items: center !important;
  white-space: nowrap !important;
}
.egc-nav--global .egc-nav__link {
  display: inline-flex !important;
  align-items: center !important;
  height: auto !important;
  overflow: visible !important;
  white-space: nowrap !important;
}
.egc-nav--global .egc-nav__link > span {
  position: static !important;
  display: inline !important;
  inset: auto !important;
  transform: none !important;
}
.egc-nav--global .egc-nav__link > span + span { display: none !important; }
.egc-nav--global .egc-nav__link:hover > span:first-child { transform: none !important; }
.egc-nav--global.is-inner-page,
.egc-nav--global.is-inner-page.is-transparent:not(.is-scrolled):not(.is-open) {
  background: var(--egc-global-nav-bg, #fff) !important;
  color: var(--egc-global-nav-text, #1b2a5e) !important;
}
.egc-nav--global.is-inner-page::before,
.egc-nav--global.is-inner-page.is-transparent:not(.is-scrolled):not(.is-open)::before {
  background: var(--egc-global-nav-bg, #fff) !important;
  border-bottom: 1px solid rgba(27,42,94,.12) !important;
}


/* 3.7: global header position mode must apply on every page, including cached inner-page markup. */
.egc-nav[data-egc-position="top"],
.egc-nav.egc-nav--position-top {
  position: static !important;
  inset: auto !important;
  top: auto !important;
  right: auto !important;
  bottom: auto !important;
  left: auto !important;
  transform: none !important;
}
.elementor-widget-egc-nav.egc-nav-widget--top,
.elementor-widget-egc-nav.egc-nav-widget--top > .elementor-widget-container {
  position: relative !important;
  inset: auto !important;
  top: auto !important;
  right: auto !important;
  bottom: auto !important;
  left: auto !important;
  transform: none !important;
}

/* =========================================================
   EGC France 3.8.1 SAFE — mobile hero index
   ========================================================= */
@media (max-width: 900px) {
  .egc-hero__foot {
    width: min(100%, var(--egc-max));
    min-width: 0;
    overflow: visible;
  }
  .egc-hero-index {
    display: flex !important;
    flex-flow: row nowrap !important;
    width: 100% !important;
    max-width: 100% !important;
    gap: 10px !important;
    overflow-x: auto !important;
    overflow-y: hidden !important;
    padding: 5px 2px 12px !important;
    margin: 0 !important;
    scroll-snap-type: x proximity;
    scroll-padding-inline: 14px;
    overscroll-behavior-inline: contain;
    -webkit-overflow-scrolling: touch;
    scrollbar-width: none;
    touch-action: pan-x;
  }
  .egc-hero-index::-webkit-scrollbar { display: none; }
  .egc-hero-index li,
  .egc-hero-index li:nth-child(n+3) {
    display: block !important;
    flex: 0 0 auto !important;
    min-width: min(72vw, 255px);
    scroll-snap-align: center;
  }
  .egc-hero-index button {
    width: 100%;
    min-height: 48px;
    padding: 8px 10px !important;
  }
}
@media (max-width: 640px) {
  .egc-hero-index li,
  .egc-hero-index li:nth-child(n+3) {
    min-width: min(78vw, 270px);
  }
}

/* =========================================================
   EGC France 3.8.2 — mobile containment + vertical project index
   ========================================================= */
.egc-responsive-picture {
  display: block;
  width: 100%;
  height: 100%;
}
.egc-responsive-picture > img {
  display: block;
}
.egc-approach__media > .egc-responsive-picture {
  position: absolute;
  inset: 0;
}

/* Sticky behavior is now explicitly controlled by each widget. */
.egc-feature-list__sticky {
  position: relative;
  top: auto;
  align-self: start;
}
.egc-feature-list--desktop-sticky .egc-feature-list__sticky {
  position: sticky;
}

@media (min-width: 768px) and (max-width: 900px) {
  .egc-approach--tablet-sticky .egc-approach__left,
  .egc-feature-list--tablet-sticky .egc-feature-list__sticky {
    position: sticky !important;
    align-self: start;
  }
}
@media (max-width: 767px) {
  .egc-approach--mobile-sticky .egc-approach__left,
  .egc-feature-list--mobile-sticky .egc-feature-list__sticky {
    position: sticky !important;
    align-self: start;
  }
}

@media (max-width: 900px) {
  body.elementor-page,
  body.elementor-page .elementor,
  body.elementor-page .elementor-element,
  body.elementor-page .elementor-widget-container {
    max-width: 100%;
  }
  body.elementor-page {
    overflow-x: hidden !important;
  }
  .elementor-widget-egc-hero,
  .elementor-widget-egc-hero > .elementor-widget-container,
  .egc-hero {
    width: 100% !important;
    max-width: 100% !important;
    min-width: 0 !important;
    overflow-x: hidden !important;
  }
  .egc-hero__media,
  .egc-hero__veil {
    pointer-events: none;
  }
  .egc-hero__content,
  .egc-hero__foot,
  .egc-hero-index,
  .egc-hero-index button {
    pointer-events: auto;
  }
  .egc-hero__foot {
    z-index: 20;
    width: calc(100% - 32px) !important;
    max-width: calc(100% - 32px) !important;
    min-width: 0 !important;
    margin-inline: auto !important;
    padding-inline: 0 !important;
    box-sizing: border-box;
    overflow: visible !important;
  }
  .egc-hero-index {
    position: relative;
    z-index: 21;
    display: flex !important;
    flex-direction: column !important;
    flex-wrap: nowrap !important;
    align-items: stretch !important;
    width: 100% !important;
    max-width: 100% !important;
    min-width: 0 !important;
    gap: 0 !important;
    margin: 0 !important;
    padding: 0 !important;
    overflow: visible !important;
    touch-action: manipulation !important;
    scroll-snap-type: none !important;
  }
  .egc-hero-index li,
  .egc-hero-index li:nth-child(n+3) {
    display: block !important;
    flex: 0 0 auto !important;
    width: 100% !important;
    max-width: 100% !important;
    min-width: 0 !important;
    margin: 0 !important;
  }
  .egc-hero-index button {
    display: grid !important;
    grid-template-columns: 34px minmax(0, 1fr) auto !important;
    align-items: center !important;
    gap: 10px !important;
    width: 100% !important;
    min-width: 0 !important;
    min-height: 52px !important;
    padding: 12px 0 !important;
    border-top: 1px solid rgba(255,255,255,.18) !important;
    text-align: left !important;
    touch-action: manipulation !important;
  }
  .egc-hero-index li:last-child button {
    border-bottom: 1px solid rgba(255,255,255,.18) !important;
  }
  .egc-hero-index button span,
  .egc-hero-index button strong,
  .egc-hero-index button small {
    min-width: 0;
  }
  .egc-hero-index button strong {
    white-space: normal;
    overflow-wrap: anywhere;
  }
  .egc-hero-index button small {
    white-space: nowrap;
  }
}

@media (max-width: 640px) {
  .egc-hero__foot {
    width: calc(100% - 28px) !important;
    max-width: calc(100% - 28px) !important;
  }
}

/* =========================================================
   EGC France 3.8.3 — customizable mobile burger / off-canvas
   ========================================================= */
html.egc-menu-open,
html.egc-menu-open body {
  overflow: hidden !important;
  overscroll-behavior: none;
}

.egc-nav__overlay {
  position: fixed;
  inset: 0;
  z-index: 10000;
  display: block;
  width: 100%;
  height: 100%;
  margin: 0;
  padding: 0;
  border: 0;
  background: var(--egc-mobile-overlay-color, #0f1a3e);
  opacity: 0;
  visibility: hidden;
  pointer-events: none;
  cursor: pointer;
  transition: opacity var(--egc-mobile-animation, 420ms) ease,
              visibility 0s linear var(--egc-mobile-animation, 420ms);
}

.egc-nav__mobile {
  position: fixed;
  z-index: 10001;
  top: 0;
  bottom: 0;
  display: flex;
  flex-direction: column;
  width: min(var(--egc-mobile-panel-width, 380px), 100vw);
  max-width: 100vw;
  height: 100dvh;
  max-height: 100dvh;
  padding: var(--egc-mobile-panel-padding, 30px);
  overflow-x: hidden;
  overflow-y: auto;
  box-sizing: border-box;
  background: var(--egc-mobile-panel-bg, #fff);
  color: var(--egc-mobile-panel-text, #1b2a5e);
  visibility: hidden;
  pointer-events: none;
  opacity: 0;
  -webkit-overflow-scrolling: touch;
  overscroll-behavior: contain;
  transition: transform var(--egc-mobile-animation, 420ms) var(--egc-ease),
              opacity var(--egc-mobile-animation, 420ms) ease,
              visibility 0s linear var(--egc-mobile-animation, 420ms);
}

.egc-nav--mobile-drawer-right .egc-nav__mobile {
  right: 0;
  left: auto;
  transform: translate3d(105%, 0, 0);
}
.egc-nav--mobile-drawer-left .egc-nav__mobile {
  right: auto;
  left: 0;
  transform: translate3d(-105%, 0, 0);
}
.egc-nav--mobile-fullscreen .egc-nav__mobile {
  inset: 0;
  width: 100vw;
  transform: translate3d(0, -18px, 0) scale(.985);
}

.egc-nav.is-open .egc-nav__overlay {
  opacity: var(--egc-mobile-overlay-opacity, .58);
  visibility: visible;
  pointer-events: auto;
  transition-delay: 0s;
}
.egc-nav.is-open .egc-nav__mobile {
  transform: translate3d(0, 0, 0) scale(1);
  opacity: 1;
  visibility: visible;
  pointer-events: auto;
  transition-delay: 0s;
}

.egc-nav__toggle {
  position: relative;
  z-index: 3;
  flex: 0 0 auto;
  align-items: center;
  justify-content: center;
  flex-direction: column;
  width: var(--egc-mobile-button-size, 46px);
  height: var(--egc-mobile-button-size, 46px);
  margin-left: auto;
  padding: 0;
  border: 1px solid rgba(27,42,94,.12);
  border-radius: var(--egc-mobile-button-radius, 0px);
  background: var(--egc-mobile-icon-bg, #fff);
  color: var(--egc-mobile-icon-color, #1b2a5e);
  box-shadow: none;
  overflow: hidden;
}
.egc-nav__toggle i {
  display: block;
  width: var(--egc-mobile-icon-size, 24px);
  height: 1.5px;
  margin: 2.8px 0;
  background: currentColor;
  transform-origin: center;
  transition: transform .32s ease, opacity .25s ease;
}
.egc-nav.is-open .egc-nav__toggle i:first-child {
  transform: translateY(7.1px) rotate(45deg);
}
.egc-nav.is-open .egc-nav__toggle i:nth-child(2) {
  opacity: 0;
  transform: scaleX(.2);
}
.egc-nav.is-open .egc-nav__toggle i:last-child {
  transform: translateY(-7.1px) rotate(-45deg);
}

.egc-nav__mobile-head {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 20px;
  min-height: 54px;
  padding-bottom: 22px;
  border-bottom: 1px solid color-mix(in srgb, currentColor 14%, transparent);
}
.egc-nav__mobile-brand {
  display: inline-flex;
  align-items: center;
  min-width: 0;
  color: inherit;
  text-decoration: none;
}
.egc-nav__mobile-brand .egc-brand__logo-wrap {
  display: inline-flex;
  min-width: 0;
}
.egc-nav__mobile-brand .egc-brand__logo {
  display: block;
  width: auto !important;
  max-width: min(190px, 58vw) !important;
  height: 46px !important;
  object-fit: contain;
  object-position: left center;
}
.egc-nav__close {
  position: relative;
  flex: 0 0 auto;
  width: 44px;
  height: 44px;
  padding: 0;
  border: 1px solid color-mix(in srgb, currentColor 18%, transparent);
  border-radius: var(--egc-mobile-button-radius, 0px);
  background: transparent;
  color: inherit;
  cursor: pointer;
}
.egc-nav__close i {
  position: absolute;
  top: 50%;
  left: 50%;
  display: block;
  width: 22px;
  height: 1.5px;
  background: currentColor;
}
.egc-nav__close i:first-child { transform: translate(-50%, -50%) rotate(45deg); }
.egc-nav__close i:last-child { transform: translate(-50%, -50%) rotate(-45deg); }

.egc-nav__mobile-links {
  display: grid;
  width: 100%;
  margin-top: 28px;
  border-bottom: 1px solid color-mix(in srgb, currentColor 14%, transparent);
}
.egc-nav__mobile-links > a {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  align-items: center;
  gap: 20px;
  min-height: 52px;
  padding: var(--egc-mobile-link-padding, 18px) 0;
  border-top: 1px solid color-mix(in srgb, currentColor 14%, transparent);
  color: inherit;
  font-family: Manrope, Inter, sans-serif;
  font-size: var(--egc-mobile-link-size, 22px);
  font-weight: 700;
  line-height: 1.15;
  letter-spacing: -.025em;
  text-decoration: none;
  opacity: .92;
  transition: color .25s ease, padding-left .3s var(--egc-ease);
}
.egc-nav__mobile-links > a b {
  color: var(--egc-global-nav-accent, #d62b2b);
  font-size: .72em;
  font-weight: 500;
  transform: rotate(45deg);
  transition: transform .3s var(--egc-ease);
}
.egc-nav__mobile-links > a:hover,
.egc-nav__mobile-links > a:focus-visible {
  color: var(--egc-global-nav-accent, #d62b2b);
  padding-left: 8px;
  outline: none;
}
.egc-nav__mobile-links > a:hover b,
.egc-nav__mobile-links > a:focus-visible b {
  transform: rotate(45deg) translate(3px, -3px);
}
.egc-nav__mobile-cta {
  width: 100%;
  margin-top: auto;
  padding-top: 22px;
  flex: 0 0 auto;
}
.egc-nav__mobile-cta.egc-fill-button {
  min-height: 58px;
  margin-top: 30px;
}

body.admin-bar .egc-nav__mobile,
body.admin-bar .egc-nav__overlay {
  top: 32px;
  height: calc(100dvh - 32px);
}
@media (max-width: 782px) {
  body.admin-bar .egc-nav__mobile,
  body.admin-bar .egc-nav__overlay {
    top: 46px;
    height: calc(100dvh - 46px);
  }
}

@supports not (overflow: clip) {
  html, body { overflow-x: hidden; }
}

/* EGC Project Detail v3.9 */
.egc-project-single__hero-media{position:absolute;inset:0;width:100%;height:110%;object-fit:cover}
.egc-project-single__subtitle{max-width:760px;margin:16px 0 0;font:500 clamp(1.05rem,1.8vw,1.35rem)/1.6 Inter,sans-serif;color:rgba(255,255,255,.82)}
.egc-project-single__location{margin:18px 0 0;font:600 .72rem Inter,sans-serif;letter-spacing:.16em;text-transform:uppercase;color:rgba(255,255,255,.72)}
.egc-project-single__copy .egc-eyebrow{margin-bottom:26px}
.egc-project-single__copy h2{max-width:760px;margin:0 0 36px;font:800 clamp(2.7rem,5vw,5.4rem)/.98 Manrope,sans-serif;letter-spacing:-.055em}
.egc-project-single__copy .egc-body-copy{font-size:1.05rem;line-height:1.8}
.egc-project-story{background:#f2f3f5}
.egc-project-story>.egc-container{display:grid;grid-template-columns:.78fr 1.22fr;gap:100px;align-items:start}
.egc-project-story__head{position:sticky;top:110px}
.egc-project-story__head h2{margin-top:34px}
.egc-project-story__items{border-top:1px solid var(--egc-line)}
.egc-project-story__items article{display:grid;grid-template-columns:70px 1fr;gap:0 24px;padding:38px 0;border-bottom:1px solid var(--egc-line)}
.egc-project-story__items article>span{grid-row:1/3;color:var(--egc-red);font:600 .68rem Inter,sans-serif;letter-spacing:.12em}
.egc-project-story__items h3{margin:0 0 14px;font:700 clamp(1.5rem,2.5vw,2.25rem)/1.1 Manrope,sans-serif;letter-spacing:-.035em}
.egc-project-story__items p{margin:0;max-width:680px;color:var(--egc-muted);font-size:1rem;line-height:1.75}
.egc-project-contact{padding:90px 0;background:var(--egc-navy);color:#fff}
.egc-project-contact>.egc-container{display:flex;align-items:end;justify-content:space-between;gap:40px}
.egc-project-contact h2{margin:22px 0 0;font:800 clamp(3rem,6vw,6.5rem)/.92 Manrope,sans-serif;letter-spacing:-.06em}
.egc-project-contact .egc-fill-button{flex:0 0 auto}
@media(max-width:900px){
 .egc-project-story>.egc-container{grid-template-columns:1fr;gap:55px}
 .egc-project-story__head{position:relative;top:auto}
 .egc-project-contact>.egc-container{align-items:flex-start;flex-direction:column}
}
@media(max-width:640px){
 .egc-project-single__hero{min-height:760px}
 .egc-project-single__hero .egc-container{padding-top:130px;padding-bottom:55px}
 .egc-project-single__subtitle{font-size:1rem}
 .egc-project-single__copy h2{font-size:2.65rem}
 .egc-project-story__items article{grid-template-columns:42px 1fr;gap:0 14px;padding:28px 0}
 .egc-project-gallery figure,.egc-project-gallery figure.is-wide{min-height:360px}
 .egc-project-contact{padding:70px 0}
}
