/* Generational Engineering — Brand CSS for native Elementor Pro widgets */
:root{
  --ge-navy:#0a1828;
  --ge-navy-2:#0d1e34;
  --ge-ink:#0f172a;
  --ge-accent:#f97316;
  --ge-accent-2:#fb923c;
  --ge-cream:#f5f1ea;
  --ge-muted:#64748b;
  --ge-border:#e2e8f0;
  --ge-white:#ffffff;
}
*{box-sizing:border-box}
html,body{margin:0;padding:0;background:var(--ge-cream);color:var(--ge-ink);font-family:'Manrope',system-ui,-apple-system,Segoe UI,Roboto,sans-serif;font-size:16px;line-height:1.6;-webkit-font-smoothing:antialiased}
img{max-width:100%;height:auto;display:block}
a{color:inherit}

/* Typography */
h1,h2,h3,h4,.ge-display{font-family:'Archivo Black','Manrope',sans-serif;font-weight:900;letter-spacing:-0.01em;line-height:1.02;text-transform:uppercase;margin:0 0 .4em}
h1{font-size:clamp(2.4rem,6vw,6.4rem)}
h2{font-size:clamp(2rem,4.6vw,4.4rem)}
h3{font-size:clamp(1.2rem,1.8vw,1.6rem);text-transform:none;letter-spacing:-.01em}
h4{font-size:1rem;text-transform:uppercase;letter-spacing:.14em}
p{margin:0 0 1em}

/* ========= HEADER ========= */
.ge-header{position:sticky;top:0;z-index:100;background:rgba(10,24,40,.94);backdrop-filter:blur(10px);color:#fff;border-bottom:1px solid rgba(255,255,255,.06)}
.ge-header__inner{max-width:1280px;margin:0 auto;padding:14px 24px;display:flex;align-items:center;gap:24px}
.ge-logo{display:flex;align-items:center;gap:10px;text-decoration:none;color:#fff}
.ge-logo__mark{display:inline-grid;place-items:center;width:38px;height:38px;background:var(--ge-accent);color:#0a1828;font-family:'Archivo Black',sans-serif;font-size:18px}
.ge-logo__name{font-family:'Archivo Black',sans-serif;font-size:13px;line-height:1.05;text-transform:uppercase;letter-spacing:.04em}
.ge-logo__name em{font-style:normal;color:var(--ge-accent-2);font-family:'Manrope',sans-serif;font-weight:500;letter-spacing:.04em;font-size:11px}
.ge-nav{margin-left:auto}
.ge-nav__list{list-style:none;margin:0;padding:0;display:flex;gap:28px}
.ge-nav__list a{color:#cbd5e1;text-decoration:none;font-size:14px;font-weight:500;letter-spacing:.02em;text-transform:uppercase}
.ge-nav__list a:hover{color:#fff}
.ge-header__cta{display:inline-flex;align-items:center;gap:8px;background:var(--ge-accent);color:#0a1828;padding:12px 20px;font-weight:700;font-size:13px;text-transform:uppercase;letter-spacing:.08em;text-decoration:none;transition:.2s}
.ge-header__cta:hover{background:#fff}
.ge-burger{display:none;background:transparent;border:0;cursor:pointer;width:36px;height:36px;flex-direction:column;gap:5px;justify-content:center;align-items:center}
.ge-burger span{display:block;width:22px;height:2px;background:#fff}
@media (max-width:900px){
  .ge-nav{position:absolute;top:100%;left:0;right:0;background:#0a1828;border-top:1px solid rgba(255,255,255,.06);display:none}
  .ge-nav.is-open{display:block}
  .ge-nav__list{flex-direction:column;gap:0;padding:8px 0}
  .ge-nav__list li{padding:14px 24px;border-top:1px solid rgba(255,255,255,.05)}
  .ge-header__cta{display:none}
  .ge-burger{display:flex}
}

/* ========= FOOTER ========= */
.ge-footer{background:#06111e;color:#cbd5e1;padding:64px 0 0;margin-top:64px}
.ge-footer__inner{max-width:1280px;margin:0 auto;padding:0 24px 48px;display:grid;grid-template-columns:1.5fr 1fr 1fr 1.2fr;gap:48px}
.ge-footer__brand p{color:#94a3b8;margin-top:14px;max-width:340px;font-size:14px}
.ge-footer h4{color:#fff;font-size:11px;letter-spacing:.2em;margin-bottom:14px}
.ge-footer ul{list-style:none;margin:0;padding:0;display:grid;gap:10px;font-size:14px;color:#94a3b8}
.ge-footer a{color:#94a3b8;text-decoration:none}
.ge-footer a:hover{color:var(--ge-accent-2)}
.ge-footer__bottom{border-top:1px solid rgba(255,255,255,.06);padding:24px;text-align:center;font-size:12px;color:#64748b}
@media (max-width:900px){.ge-footer__inner{grid-template-columns:1fr 1fr;gap:32px}}
@media (max-width:560px){.ge-footer__inner{grid-template-columns:1fr}}

/* ========= ELEMENTOR SECTION STYLING ========= */
/* Default canvas */
.ge-main{min-height:50vh}
body.elementor-page .elementor{background:transparent}

/* Section: dark navy hero */
.elementor-section.ge-dark{background:var(--ge-navy);color:#fff;position:relative;overflow:hidden}
.elementor-section.ge-dark::before{content:"";position:absolute;inset:0;background-image:repeating-linear-gradient(135deg,rgba(255,255,255,.03) 0 1px,transparent 1px 12px);pointer-events:none}
.elementor-section.ge-dark::after{content:"";position:absolute;top:-200px;right:-100px;width:600px;height:600px;border-radius:50%;background:radial-gradient(circle,rgba(249,115,22,.22),transparent 60%);pointer-events:none}
.elementor-section.ge-dark .elementor-heading-title,
.elementor-section.ge-dark p,
.elementor-section.ge-dark .elementor-widget-text-editor{color:#fff}
.elementor-section.ge-dark p{color:rgba(255,255,255,.72)}
.elementor-section.ge-dark .ge-eyebrow{color:var(--ge-accent-2)}

/* Section: cream */
.elementor-section.ge-cream{background:var(--ge-cream)}
.elementor-section.ge-white{background:#fff}

/* Section paddings */
.elementor-section.ge-pad{padding:96px 0}
.elementor-section.ge-pad-sm{padding:64px 0}
@media (max-width:768px){
  .elementor-section.ge-pad{padding:64px 0}
  .elementor-section.ge-pad-sm{padding:48px 0}
}

/* Eyebrow widget (text editor with class) */
.ge-eyebrow{font-family:'JetBrains Mono',monospace;font-size:11px;letter-spacing:.24em;text-transform:uppercase;color:var(--ge-accent);margin-bottom:18px!important;display:inline-flex;align-items:center;gap:10px}
.ge-eyebrow::before{content:"";display:inline-block;width:28px;height:1px;background:currentColor}

/* Section number (e.g. // 001 / who we are) */
.ge-section-num{font-family:'JetBrains Mono',monospace;font-size:12px;letter-spacing:.18em;color:var(--ge-muted);text-transform:uppercase;margin-bottom:18px!important}
.elementor-section.ge-dark .ge-section-num{color:rgba(255,255,255,.5)}

/* Big display heading style */
.ge-h1 .elementor-heading-title{font-family:'Archivo Black',sans-serif;font-size:clamp(2.6rem,7vw,7.5rem);line-height:.92;letter-spacing:-.02em;text-transform:uppercase}
.ge-h1 .elementor-heading-title em{font-style:normal;color:var(--ge-accent)}
.ge-h2 .elementor-heading-title{font-family:'Archivo Black',sans-serif;font-size:clamp(2rem,4.6vw,4.6rem);line-height:.96;letter-spacing:-.015em;text-transform:uppercase}
.ge-h2 .elementor-heading-title em{font-style:normal;color:var(--ge-accent)}
.ge-h3 .elementor-heading-title{font-size:clamp(1.05rem,1.5vw,1.4rem);font-family:'Archivo Black',sans-serif;text-transform:uppercase;letter-spacing:.01em}

/* Lead paragraph */
.ge-lead{font-size:clamp(1.05rem,1.4vw,1.25rem);line-height:1.55;color:rgba(15,23,42,.78);max-width:640px}
.elementor-section.ge-dark .ge-lead{color:rgba(255,255,255,.78)}

/* Buttons */
.ge-btn .elementor-button{background:var(--ge-accent)!important;color:#0a1828!important;border-radius:0!important;padding:18px 28px!important;font-family:'Manrope',sans-serif!important;font-weight:700!important;text-transform:uppercase;letter-spacing:.1em;font-size:13px!important;transition:.2s}
.ge-btn .elementor-button:hover{background:#fff!important;color:#0a1828!important}
.ge-btn-ghost .elementor-button{background:transparent!important;color:#fff!important;border:1px solid rgba(255,255,255,.3)!important;border-radius:0!important;padding:18px 28px!important;font-family:'Manrope',sans-serif!important;font-weight:700!important;text-transform:uppercase;letter-spacing:.1em;font-size:13px!important}
.ge-btn-ghost .elementor-button:hover{border-color:#fff!important;background:rgba(255,255,255,.05)!important}
.ge-btn-dark .elementor-button{background:var(--ge-navy)!important;color:#fff!important;border-radius:0!important;padding:18px 28px!important;font-family:'Manrope',sans-serif!important;font-weight:700!important;text-transform:uppercase;letter-spacing:.1em;font-size:13px!important}

/* Stat card (icon-box hack) */
.ge-stat .elementor-icon-box-title,
.ge-stat .elementor-image-box-title{font-family:'Archivo Black',sans-serif;font-size:clamp(2.4rem,5vw,4rem);line-height:1;color:var(--ge-accent);margin:0 0 8px}
.ge-stat .elementor-icon-box-description,
.ge-stat .elementor-image-box-description{font-size:12px;text-transform:uppercase;letter-spacing:.18em;color:rgba(255,255,255,.6)}
.elementor-section.ge-cream .ge-stat .elementor-icon-box-description{color:var(--ge-muted)}

/* Service / discipline card */
.ge-card{background:#fff;border:1px solid var(--ge-border);padding:36px;height:100%}
.elementor-section.ge-dark .ge-card{background:rgba(255,255,255,.04);border-color:rgba(255,255,255,.08);color:#fff}
.ge-card .ge-num{font-family:'JetBrains Mono',monospace;font-size:11px;letter-spacing:.18em;color:var(--ge-accent);margin-bottom:16px;display:block}
.ge-card h3{font-family:'Archivo Black',sans-serif;font-size:1.25rem;text-transform:uppercase;letter-spacing:.01em;margin:0 0 10px}
.ge-card p{font-size:14px;line-height:1.6;color:var(--ge-muted);margin:0}
.elementor-section.ge-dark .ge-card p{color:rgba(255,255,255,.7)}

/* Project card */
.ge-project{background:#fff;border:1px solid var(--ge-border);overflow:hidden}
.ge-project img{aspect-ratio:4/3;object-fit:cover;width:100%}
.ge-project .ge-project__body{padding:24px}
.ge-project .ge-tag{font-family:'JetBrains Mono',monospace;font-size:11px;letter-spacing:.16em;text-transform:uppercase;color:var(--ge-accent);margin-bottom:10px;display:block}
.ge-project h3{font-family:'Archivo Black',sans-serif;font-size:1.1rem;text-transform:uppercase;margin:0 0 6px}
.ge-project .ge-meta{font-size:12px;color:var(--ge-muted);letter-spacing:.04em}

/* Partner strip */
.ge-partners{background:#fff;border-top:1px solid var(--ge-border);border-bottom:1px solid var(--ge-border);padding:36px 0}
.ge-partners .elementor-image-gallery img{max-height:48px;width:auto;opacity:.65;filter:grayscale(1);transition:.2s}
.ge-partners .elementor-image-gallery img:hover{opacity:1;filter:grayscale(0)}

/* Process step */
.ge-step .ge-step__n{font-family:'Archivo Black',sans-serif;font-size:4rem;color:var(--ge-accent);line-height:1;margin-bottom:14px;display:block}
.ge-step h3{font-family:'Archivo Black',sans-serif;font-size:1.15rem;text-transform:uppercase;margin:0 0 8px}
.ge-step p{color:var(--ge-muted);font-size:14px;margin:0}
.elementor-section.ge-dark .ge-step p{color:rgba(255,255,255,.7)}

/* Sector row */
.ge-sector{display:flex;align-items:baseline;justify-content:space-between;padding:22px 0;border-top:1px solid rgba(255,255,255,.08)}
.ge-sector:last-child{border-bottom:1px solid rgba(255,255,255,.08)}
.ge-sector .ge-sector__name{font-family:'Archivo Black',sans-serif;font-size:clamp(1.6rem,3vw,2.8rem);text-transform:uppercase;line-height:1}
.ge-sector .ge-sector__num{font-family:'JetBrains Mono',monospace;font-size:12px;letter-spacing:.18em;color:var(--ge-accent)}

/* Quote / testimonial */
.ge-quote{background:rgba(255,255,255,.04);border-left:2px solid var(--ge-accent);padding:28px;color:#fff}
.ge-quote p{font-size:1.05rem;line-height:1.55;color:#fff;margin:0 0 18px}
.ge-quote cite{font-style:normal;font-family:'Archivo Black',sans-serif;font-size:.9rem;text-transform:uppercase;letter-spacing:.05em;display:block;color:var(--ge-accent-2)}
.ge-quote small{display:block;font-size:12px;color:rgba(255,255,255,.6);margin-top:4px;letter-spacing:.04em}

/* Leader card */
.ge-leader{text-align:left}
.ge-leader img{aspect-ratio:4/5;object-fit:cover;width:100%;margin-bottom:14px}
.ge-leader h3{font-family:'Archivo Black',sans-serif;font-size:1.2rem;text-transform:uppercase;margin:0 0 4px}
.ge-leader p{font-size:13px;color:var(--ge-muted);margin:0}

/* Form */
.ge-form input,.ge-form select,.ge-form textarea{width:100%;background:#fff;border:1px solid var(--ge-border);padding:14px 16px;font-family:inherit;font-size:14px;border-radius:0;margin-bottom:14px}
.ge-form label{display:block;font-size:12px;text-transform:uppercase;letter-spacing:.12em;color:var(--ge-muted);margin-bottom:6px;font-weight:600}
.ge-form button{background:var(--ge-accent);color:#0a1828;border:0;padding:16px 28px;font-weight:700;text-transform:uppercase;letter-spacing:.1em;font-size:13px;cursor:pointer;font-family:inherit}
.ge-form button:hover{background:#0a1828;color:#fff}

/* Responsive section spacing */
.elementor-section.elementor-section-boxed > .elementor-container{max-width:1280px}
