/* Essence Group customer-experience refresh
   Compact vertical pages, rotating banner presentation, clickable surfaces,
   symmetric controls and smoother visual edges. */
:root{
  --eg-radius-xs:10px;
  --eg-radius-sm:14px;
  --eg-radius-md:18px;
  --eg-radius-lg:24px;
  --eg-control-h:40px;
  --eg-fast:.18s;
  --eg-ease:cubic-bezier(.2,.75,.25,1);
}
html{-webkit-text-size-adjust:100%;text-rendering:optimizeLegibility}
body{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}
img,svg{image-rendering:auto;shape-rendering:geometricPrecision}
a,button,input,select,textarea{outline-offset:3px}
a:focus-visible,button:focus-visible,summary:focus-visible,[role="link"]:focus-visible{outline:3px solid rgba(243,107,22,.34);outline-offset:3px}

/* --- Header: keep navigation open, compact and button-like on desktop --- */
.site-header .nav{height:70px;gap:12px}
.site-header .brand{min-width:188px}
.site-header .brand img{width:170px;max-height:54px;object-fit:contain}
.site-header .nav-links{
  gap:3px;padding:4px;border:1px solid #dce6f1;border-radius:15px;
  background:rgba(247,250,254,.92);box-shadow:0 5px 18px rgba(7,31,70,.045);
}
.site-header .nav-links a{
  padding:8px 8px;border-radius:10px;font-size:.72rem;line-height:1;white-space:nowrap;
  transition:background var(--eg-fast) var(--eg-ease),color var(--eg-fast) var(--eg-ease),box-shadow var(--eg-fast) var(--eg-ease),transform var(--eg-fast) var(--eg-ease)
}
.site-header .nav-links a:after{display:none}
.site-header .nav-links a:hover,.site-header .nav-links a.active{
  background:#fff;color:#e95a0a;box-shadow:0 4px 14px rgba(7,31,70,.08);transform:translateY(-1px)
}
.site-header .nav-actions{gap:7px}
.site-header .nav-actions .btn{min-height:38px;padding:9px 13px;border-radius:11px;font-size:.78rem;white-space:nowrap}

.eu-v8-header .eu-v8-nav{height:70px;gap:14px}
.eu-v8-header .eu-v8-brand{min-width:186px}
.eu-v8-header .eu-v8-brand img{width:168px;max-height:53px}
.eu-v8-header .eu-v8-links{
  gap:3px;padding:4px;border:1px solid #dce6ef;border-radius:15px;background:#f7faff;
  box-shadow:0 5px 18px rgba(7,31,70,.04)
}
.eu-v8-header .eu-v8-links>a,.eu-v8-header .eu-v8-links summary{
  display:flex;align-items:center;min-height:32px;padding:7px 9px;border-radius:10px;white-space:nowrap;
  transition:background var(--eg-fast) var(--eg-ease),color var(--eg-fast) var(--eg-ease),box-shadow var(--eg-fast) var(--eg-ease)
}
.eu-v8-header .eu-v8-links>a:hover,.eu-v8-header .eu-v8-links details[open]>summary{
  background:#fff;color:#e95a0a;box-shadow:0 4px 14px rgba(7,31,70,.08)
}
.eu-v8-header .eu-v8-actions{gap:6px}.eu-v8-header .eu-v8-btn{min-height:38px;border-radius:11px;padding:9px 13px}
.eu-v8-mega{top:40px}

/* --- Full-width rotating image presentation --- */
.eg-banner-carousel{
  --eg-slide-ms:5800ms;
  position:relative;background:#061b3d;border-bottom:1px solid rgba(7,31,70,.12);overflow:hidden;
  isolation:isolate
}
.eg-banner-viewport{position:relative;width:min(100%,1440px);margin-inline:auto;aspect-ratio:4/1;min-height:0;max-height:none;overflow:hidden;background:#fff}
.eg-banner-slide{
  position:absolute;inset:0;display:block;opacity:0;visibility:hidden;transform:scale(1.018) translateX(8px);
  transition:opacity .72s var(--eg-ease),transform 1.15s var(--eg-ease),visibility 0s linear .72s;
  pointer-events:none;background:#fff
}
.eg-banner-slide.is-active{opacity:1;visibility:visible;transform:scale(1) translateX(0);transition-delay:0s;pointer-events:auto;z-index:2}
.eg-banner-slide img{width:100%;height:100%;object-fit:contain;object-position:center center;display:block;backface-visibility:hidden;transform:translateZ(0)}
.eg-banner-slide:focus-visible{outline:4px solid #ff7a22;outline-offset:-4px}
#solutionTop{scroll-margin-top:78px}
.eg-banner-hit-note{
  position:absolute;left:50%;bottom:11px;z-index:8;transform:translateX(-50%);display:flex;align-items:center;gap:8px;
  padding:7px 11px;border:1px solid rgba(255,255,255,.58);border-radius:999px;background:rgba(3,22,52,.72);backdrop-filter:blur(9px);
  color:#fff;font-size:.64rem;font-weight:800;letter-spacing:.035em;pointer-events:none;box-shadow:0 8px 22px rgba(0,0,0,.14)
}
.eg-banner-hit-note i{width:6px;height:6px;border-radius:50%;background:#ff7b22;box-shadow:0 0 0 5px rgba(255,123,34,.14)}
/* R5.9.29: glass-ghost arrows: a 44px transparent tap target around a small,
   translucent visual disc. Controls hug the edge rather than covering banner text. */
.eg-banner-control{
  --eg-arrow-disc:36px;
  position:absolute;z-index:10;top:50%;transform:translateY(-50%);
  width:44px;height:44px;min-width:44px;min-height:44px;padding:0;margin:0;
  border:0;border-radius:50%;display:grid;place-items:center;
  background:transparent;color:#fff;font-size:1.35rem;font-weight:750;line-height:1;
  font-family:Arial,sans-serif;text-shadow:0 1px 3px rgba(3,17,37,.76);
  box-shadow:none;backdrop-filter:none;isolation:isolate;cursor:pointer;touch-action:manipulation;
  transition:transform var(--eg-fast) var(--eg-ease)
}
.eg-banner-control::before{
  content:"";position:absolute;z-index:-1;pointer-events:none;
  top:50%;left:50%;transform:translate(-50%,-50%);
  width:var(--eg-arrow-disc);height:var(--eg-arrow-disc);box-sizing:border-box;
  border:1px solid rgba(255,255,255,.60);border-radius:50%;
  background:rgba(5,30,67,.34);-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px);
  box-shadow:0 2px 9px rgba(3,19,44,.11);
  transition:background var(--eg-fast),border-color var(--eg-fast)
}
.eg-banner-control:hover,.eg-banner-control:focus-visible{transform:translateY(-50%) scale(1.03)}
.eg-banner-control:hover::before,.eg-banner-control:focus-visible::before{background:rgba(5,30,67,.65);border-color:rgba(255,255,255,.85)}
.eg-banner-control:active::before{background:rgba(5,30,67,.77)}
.eg-banner-control:focus-visible{outline:2px solid #ff8a30;outline-offset:0}
.eg-banner-prev{left:0}.eg-banner-next{right:0}
.eg-banner-tabs{
  min-height:45px;display:flex;align-items:center;justify-content:center;gap:5px;padding:6px 14px;background:linear-gradient(90deg,#04172f,#092e63 55%,#061d43);
  overflow:auto;scrollbar-width:none
}
.eg-banner-tabs::-webkit-scrollbar{display:none}
.eg-banner-tab{
  flex:0 0 auto;min-height:31px;border:1px solid rgba(255,255,255,.13);border-radius:999px;background:rgba(255,255,255,.06);color:#dbe7f5;
  padding:7px 10px;font-size:.64rem;font-weight:850;white-space:nowrap;transition:.2s var(--eg-ease)
}
.eg-banner-tab:hover,.eg-banner-tab.is-active{background:#fff;color:#08234d;border-color:#fff;box-shadow:0 5px 16px rgba(0,0,0,.14)}
/* R5.9.28: the timer belongs in the WHITE strip below the artwork, never over a slide. */
.eg-banner-progress{position:relative;left:auto;right:auto;bottom:auto;box-sizing:border-box;height:10px;z-index:1;background:#fff;overflow:hidden}
.eg-banner-progress::before{content:"";position:absolute;left:0;right:0;top:4px;height:2px;background:#dbe5ef}
.eg-banner-progress>i{position:absolute;left:0;top:4px;display:block;width:100%;height:2px;background:linear-gradient(90deg,#ff6b11,#ff9d55);transform-origin:left center;animation:egBannerProgress var(--eg-slide-ms) linear forwards}
.eg-banner-carousel.is-paused .eg-banner-progress>i{animation-play-state:paused}
@keyframes egBannerProgress{from{transform:scaleX(0)}to{transform:scaleX(1)}}

/* --- Compact public vertical pages: less empty space, denser information --- */
.section{padding:58px 0}.section-sm{padding:42px 0}.section-head{gap:24px;margin-bottom:25px}.grid{gap:16px}
.page-hero{padding:64px 0 50px}.page-hero .crumbs{margin-bottom:14px}.page-hero .lead{margin-top:15px}.page-hero h1{font-size:clamp(2.45rem,4.5vw,4.35rem)}
.card{border-radius:20px;box-shadow:0 8px 24px rgba(4,31,70,.065)}
.card[style*="padding:26px"]{padding:20px!important}.card[style*="padding:30px"]{padding:22px!important}
.company-card{min-height:360px;border-radius:20px}.company-img{height:180px}.company-body{padding:19px;gap:9px}
.service-card{min-height:154px;padding:18px;gap:12px}.service-tabs{margin-bottom:17px}
.icon-badge{border-radius:14px}.cta{gap:25px}.cta-actions{gap:8px}
.hero{min-height:620px}.hero-grid{padding:62px 0 52px;gap:34px}.hero-copy .lead{margin:18px 0 21px}.hero-trust{margin-top:24px}.hero-visual{min-height:465px}
.stats-panel{padding:20px 24px}.stats-strip{margin-top:-28px}

/* Government / intelligence page density */
.gov-hero{padding:58px 0 48px}.gov-hero-grid{gap:30px}.gov-breadcrumb{margin-bottom:15px}.gov-hero .lead{margin-top:15px}.gov-mode-note{margin-top:16px}
.gov-hero-console{padding:17px;border-radius:23px}.mesh-core{height:285px;margin:10px 0}.gov-home-grid{gap:25px}.gov-home-points{gap:7px;margin-top:17px}
.gov-home-points>div{padding:9px 0}.signal-console{padding:19px;border-radius:22px}.signal-kpis{margin:15px 0}
.pathfinder-grid,.benefit-grid{gap:15px}.path-card,.benefit-card{padding:20px;border-radius:20px}.path-results{margin-top:15px}.policy-row{margin-top:13px}
.source-mesh{gap:10px}.source-node{padding:14px;border-radius:16px}.production-flow{gap:8px}.production-flow div{padding:14px}

/* Home page density, retaining breathing room for primary actions */
.eu-v8-hero{padding:42px 0 33px}.eu-v8-hero-grid{gap:30px}.eu-v8-hero h1{margin:14px 0 15px}.eu-v8-hero-actions{margin-top:18px}.eu-v8-trust{margin-top:18px}
.eu-v8-section{padding:52px 0}.eu-v8-section-head{margin-bottom:20px;gap:22px}.eu-v8-bento{gap:10px}.eu-v8-journey{gap:7px}.eu-v8-tools{gap:12px}.eu-v8-intel-grid{gap:13px}
.eu-v8-final{padding:50px 0}.eu-v8-final-card{padding:28px;border-radius:22px}.eu-v7-footer{padding-top:38px}

/* --- Clickable surfaces & visual polish --- */
.eg-clickable-card{cursor:pointer;transition:transform var(--eg-fast) var(--eg-ease),box-shadow var(--eg-fast) var(--eg-ease),border-color var(--eg-fast) var(--eg-ease)}
.eg-clickable-card:hover{transform:translateY(-2px);box-shadow:0 14px 34px rgba(6,31,69,.11)!important;border-color:#cad9e8!important}
.eg-clickable-card:focus-visible{outline:3px solid rgba(243,107,22,.33);outline-offset:3px}
.eg-clickable-card[data-eg-link]::after{content:"↗";position:absolute;right:12px;top:11px;width:24px;height:24px;border-radius:50%;display:grid;place-items:center;background:rgba(7,31,70,.07);color:#0b3976;font-size:.68rem;font-weight:900;opacity:0;transform:translateY(2px);transition:.18s}
.eg-clickable-card[data-eg-link]:hover::after,.eg-clickable-card[data-eg-link]:focus-visible::after{opacity:1;transform:none}
.eu-v8-rail article{position:relative;transition:.18s var(--eg-ease)}
.eu-v8-rail article.eg-clickable-card:hover{background:#f8fbff;transform:none;box-shadow:inset 0 -3px 0 #f36b16!important}
.eu-v8-radar-row.eg-clickable-card{position:relative}

.btn,.eu-v8-btn,.service-tab,.workspace-btn,[class$="-btn"],button{
  -webkit-tap-highlight-color:transparent;backface-visibility:hidden;text-rendering:geometricPrecision
}
.btn,.eu-v8-btn{transition:transform .18s var(--eg-ease),box-shadow .18s var(--eg-ease),background .18s var(--eg-ease),border-color .18s var(--eg-ease)}
.card,.company-card,.service-card,.source-node,.signal-console,.gov-hero-console,.eu-v8-tile,.eu-v8-console,.eu-v8-tool-output,.eu-v8-copilot,.eu-v8-final-card{backface-visibility:hidden;transform:translateZ(0)}
.brand img,.eu-v8-brand img,.command-logo img,.eu-footer-brandbox img,.eu-v7-footer-brandmark img{image-rendering:auto;filter:saturate(1.015);transform:translateZ(0)}

/* Avoid awkward one-line gaps in public copy */
.section p,.eu-v8-section p{widows:2;orphans:2}

@media(max-width:1180px) and (min-width:1051px){
  .site-header .brand{min-width:158px}.site-header .brand img{width:150px}.site-header .nav-links a{padding-inline:6px;font-size:.67rem}.site-header .nav{gap:8px}
  .site-header .nav-actions .btn{padding-inline:10px;font-size:.72rem}
}
@media(max-width:1050px){
  .site-header .nav,.eu-v8-header .eu-v8-nav{height:66px}
  .site-header .nav-links,.eu-v8-header .eu-v8-links{border:0;padding:0;background:transparent;box-shadow:none}
  .eg-banner-viewport{min-height:190px;aspect-ratio:16/5}.eg-banner-slide img{object-fit:contain;background:#fff}
  .eg-banner-hit-note{display:none}.eg-banner-control{--eg-arrow-disc:32px;font-size:1.25rem}.eg-banner-prev{left:-6px}.eg-banner-next{right:-6px}
  .section{padding:50px 0}.section-sm{padding:38px 0}.hero{min-height:auto}.hero-grid{padding:50px 0 44px}.hero-visual{min-height:430px}
}
@media(max-width:720px){
  .site-header .nav,.eu-v8-header .eu-v8-nav{height:62px}.site-header .brand img{width:148px}.eu-v8-header .eu-v8-brand img{width:148px}
  .eg-banner-viewport{aspect-ratio:16/8.4;min-height:176px}.eg-banner-tabs{justify-content:flex-start;min-height:43px;padding-inline:9px}
  .eg-banner-tab{font-size:.6rem;padding:6px 9px}
  .eg-banner-control{--eg-arrow-disc:28px;font-size:1.18rem}
  .eg-banner-control::before{background:rgba(5,30,67,.25);border-color:rgba(255,255,255,.72);box-shadow:0 2px 7px rgba(3,19,44,.10)}
  .eg-banner-prev{left:-8px}.eg-banner-next{right:-8px}
  .section{padding:42px 0}.section-sm{padding:34px 0}.section-head{margin-bottom:20px}.page-hero{padding:48px 0 38px}.page-hero h1{font-size:clamp(2.25rem,11vw,3.2rem)}
  .hero-grid{padding:42px 0 38px}.hero-copy .lead{margin:15px 0 18px}.hero-visual{min-height:350px}
  .gov-hero{padding:44px 0 36px}.gov-hero-grid{gap:22px}.gov-hero-console{padding:13px}.mesh-core{height:250px}
  .eu-v8-hero{padding:34px 0 26px}.eu-v8-section{padding:42px 0}.eu-v8-final{padding:40px 0}
  .eg-clickable-card[data-eg-link]::after{display:none}
}
@media(prefers-reduced-motion:reduce){
  *,*::before,*::after{scroll-behavior:auto!important;animation-duration:.001ms!important;animation-iteration-count:1!important;transition-duration:.001ms!important}
  .eg-banner-progress{display:none}
}

/* Compact overrides for later-loaded legacy layout rules that used !important */
.page-hero,.v6-page-hero{padding-top:52px!important;padding-bottom:44px!important}
.page-hero h1,.v6-page-hero h1{font-size:clamp(2.35rem,4.3vw,4rem)!important;line-height:1.02!important}
.page-hero .lead,.v6-page-hero p{font-size:15px!important;line-height:1.55!important}
.ii-section{padding:52px 0!important}.ii-head{gap:28px;margin-bottom:22px}.ii-toolbar{margin-bottom:18px}.ii-grid{gap:10px}.ii-card{padding:16px;min-height:145px;border-radius:16px}.ii-icon{margin-bottom:10px}.ii-detail{margin-top:20px;gap:16px}.ii-panel{padding:20px;border-radius:18px}.ii-block{margin-top:18px}.ii-cta{margin-top:18px;padding:19px}
.v83-section{padding:48px 0!important}.v83-head{gap:20px;margin-bottom:18px}.v83-map-shell,.v83-opportunity-grid{gap:12px}
.offer-grid{gap:11px}.offer{padding:16px;border-radius:15px}.offer h3{margin:8px 0 6px}.offer li{margin:3px 0}.feature-list{gap:9px;margin-top:17px}.process{gap:8px}.process-item{padding:17px}.process-item .pnum{margin-bottom:8px}
.photo-panel,.photo-panel img{border-radius:20px;overflow:hidden}
@media(max-width:720px){
  .page-hero,.v6-page-hero{padding-top:40px!important;padding-bottom:34px!important}
  .ii-section{padding:40px 0!important}.v83-section{padding:38px 0!important}.ii-head{gap:16px;margin-bottom:18px}
}

/* R5.3 — Homepage banner aligned to the same 1220px content shell as the page.
   The artwork stays fully visible, the outer area stays white, and the banner no longer
   expands independently of the rest of the homepage on ultra-wide / zoomed-out screens. */
body.eu-v8 .eg-banner-carousel{
  width:100%;
  max-width:none;
  background:#fff;
}
body.eu-v8 .eg-banner-viewport,
body.eu-v8 .eg-banner-tabs,
body.eu-v8 .eg-banner-progress{
  width:min(1220px,calc(100% - 36px));
  margin-inline:auto;
}
body.eu-v8 .eg-banner-viewport{
  aspect-ratio:4/1;
  min-height:0;
  max-height:none;
  background:#fff;
}
body.eu-v8 .eg-banner-slide,
body.eu-v8 .eg-banner-slide img{
  width:100%;
  height:100%;
  background:#fff;
}
body.eu-v8 .eg-banner-slide img{
  object-fit:contain;
  object-position:center center;
}
body.eu-v8 .eg-banner-tabs{
  border-radius:0 0 12px 12px;
}

/* Keep the fixed solution launcher/panel visually attached to the same 1220px homepage shell. */
body.eu-v8 .growth-nav-launch,
body.eu-v8 .growth-nav-panel{
  right:max(18px,calc((100vw - 1220px)/2 + 18px));
}
@media(max-width:1256px){
  body.eu-v8 .growth-nav-launch,
  body.eu-v8 .growth-nav-panel{
    right:18px;
  }
}
@media(max-width:720px){
  body.eu-v8 .eg-banner-viewport,
  body.eu-v8 .eg-banner-tabs,
  body.eu-v8 .eg-banner-progress{
    width:calc(100% - 24px);
  }
}

/* R5.9.4 public Government Intelligence cleanup + clickable opportunity mesh */
.gov-hero-console .mesh-action{color:inherit;text-decoration:none;cursor:pointer;transition:transform .18s ease,box-shadow .18s ease,background .18s ease,border-color .18s ease}
.gov-hero-console .mesh-center.mesh-action:hover,.gov-hero-console .mesh-center.mesh-action:focus-visible{transform:scale(1.035);box-shadow:0 18px 42px rgba(7,31,70,.34);outline:3px solid rgba(255,138,47,.35);outline-offset:3px}
.gov-hero-console .mesh-node.mesh-action{display:inline-flex;align-items:center;justify-content:center;min-height:38px;text-decoration:none}
.gov-hero-console .mesh-node.mesh-action:hover,.gov-hero-console .mesh-node.mesh-action:focus-visible{background:#071f46;color:#fff;border-color:#071f46;box-shadow:0 12px 28px rgba(7,31,70,.18);transform:translateY(-2px);outline:none}
.gov-hero-console .console-kpi-link{display:block;text-decoration:none;border:1px solid #e9edf2;transition:transform .18s ease,box-shadow .18s ease,border-color .18s ease}
.gov-hero-console .console-kpi-link:hover,.gov-hero-console .console-kpi-link:focus-visible{transform:translateY(-2px);border-color:#c7d9ec;box-shadow:0 10px 24px rgba(7,31,70,.09);outline:3px solid rgba(10,96,190,.16);outline-offset:2px}
@media(max-width:720px){.gov-hero-console .mesh-node.mesh-action{min-height:40px}.gov-hero-console .console-kpi-link{min-height:64px}}

/* R5.9.8: Homepage opportunity rows are true accessible links. */
a.eu-v8-radar-row.eg-r598-radar-link{display:flex;color:inherit;text-decoration:none;cursor:pointer;transition:background .18s ease,transform .18s ease}
a.eu-v8-radar-row.eg-r598-radar-link:hover{background:rgba(13,62,120,.075);transform:translateX(2px)}
a.eu-v8-radar-row.eg-r598-radar-link:focus-visible{outline:3px solid #f36b16;outline-offset:2px}

/* R5.9.25: preserve 1440 x 360 banner sizing with modern image source fallback. */
.eg-banner-slide .eg-banner-picture{display:block;width:100%;height:100%}
.eg-banner-slide .eg-banner-picture img{width:100%;height:100%;object-fit:contain;object-position:center center}
