.ep-page { background:#fff; }
.epx-section { position:relative; padding-block:var(--section-space); }
.epx-section-heading { display:grid; gap:1rem; max-width:52rem; margin-bottom:clamp(2.25rem,5vw,4rem); }
.epx-section-heading p { color:var(--color-muted); font-size:var(--text-body-lg); }
.epx-kicker { margin:0 0 .7rem; color:var(--color-brand-teal); font-size:.76rem; font-weight:800; letter-spacing:.09em; text-transform:uppercase; }
.epx-link-row { display:flex; flex-wrap:wrap; gap:1rem 1.5rem; margin-top:1.6rem; }
.epx-link-row a { display:inline-flex; gap:.45rem; align-items:center; font-weight:700; text-decoration:none; }
.epx-link-row .icon { width:1rem; height:1rem; }


.epx-hero { position:relative; isolation:isolate; overflow:hidden; color:#fff; background:linear-gradient(118deg,#071f31 0 100%,#eef5f7 56% 100%); }
.epx-hero__gridlines { position:absolute; z-index:-1; inset:0 44% 0 0; opacity:.13; background-image:linear-gradient(rgba(255,255,255,.18) 1px,transparent 1px),linear-gradient(90deg,rgba(255,255,255,.18) 1px,transparent 1px); background-size:54px 54px; mask-image:linear-gradient(90deg,#000,transparent 90%); }
.epx-hero::before { position:absolute; z-index:-1; width:34rem; height:34rem; top:-18rem; left:-10rem; border:1px solid rgba(109,213,218,.26); border-radius:50%; box-shadow:0 0 0 5rem rgba(35,131,197,.05),0 0 0 10rem rgba(15,122,128,.035); content:""; }
.epx-hero__layout { display:grid; grid-template-columns:minmax(0,1.02fr) minmax(27rem,.98fr); min-height:clamp(42rem,76vh,52rem); align-items:stretch; }
.epx-hero__copy { display:flex; flex-direction:column; justify-content:center; padding:clamp(4rem,7vw,7rem) clamp(2rem,5vw,5.5rem) clamp(4rem,7vw,6rem) 0; }
.epx-hero .breadcrumbs { margin-bottom:2rem; }
.epx-hero .breadcrumbs,.epx-hero .breadcrumbs a { color:rgba(255,255,255,.7); }
.epx-hero .eyebrow { color:#83d9d7; }
.epx-hero h1 { color:#fff; font-size:clamp(2.65rem,5.5vw,5.7rem); font-weight:800; letter-spacing:-.052em; line-height:.95; text-wrap:balance; }
.epx-hero__lead { max-width:46rem; margin-top:1.45rem; color:rgba(255,255,255,.78); font-size:clamp(1rem,1.5vw,1.2rem); line-height:1.62; }
.epx-hero__actions { display:flex; flex-wrap:wrap; gap:.8rem; margin-top:2rem; }
.epx-btn-ghost { color:#fff; border:1px solid rgba(255,255,255,.35); background:rgba(255,255,255,.06); backdrop-filter:blur(10px); }
.epx-btn-ghost:hover { color:#fff; border-color:rgba(255,255,255,.7); background:rgba(255,255,255,.12); }
.epx-hero__delivery-link { display:inline-flex; width:max-content; gap:.45rem; align-items:center; margin-top:1rem; color:#a9e6e8; font-size:.9rem; font-weight:700; text-decoration:none; }
.epx-hero__delivery-link:hover { color:#fff; }
.epx-hero__delivery-link .icon { width:1rem; height:1rem; }
.epx-hero__visual { position:relative; min-height:100%; margin:0; overflow:hidden; background:#dce8ec; }
.epx-hero__visual::after { position:absolute; inset:0; content:""; background:linear-gradient(90deg,rgba(7,31,49,.25),transparent 30%),linear-gradient(0deg,rgba(7,31,49,.5),transparent 38%); pointer-events:none; }
.epx-hero__visual picture,.epx-hero__visual img { width:100%; height:100%; }
.epx-hero__visual img { object-fit:cover; object-position:58% center; }
.epx-hero__visual figcaption { position:absolute; z-index:4; right:1.25rem; bottom:1rem; max-width:20rem; color:rgba(255,255,255,.82); font-size:.7rem; text-align:right; }
.epx-hero__workflow { position:absolute; z-index:3; right:clamp(1rem,2vw,2rem); bottom:clamp(3rem,6vw,5rem); width:min(23rem,calc(100% - 2rem)); padding:1rem 1.1rem 1.05rem; border:1px solid rgba(255,255,255,.3); border-radius:1.2rem; background:rgba(7,31,49,.88); box-shadow:0 24px 55px rgba(7,31,49,.28); backdrop-filter:blur(14px); }
.epx-hero__workflow-label { display:block; margin-bottom:.75rem; color:#91e0e3; font-size:.67rem; font-weight:800; letter-spacing:.09em; text-transform:uppercase; }
.epx-hero__workflow ol { display:grid; gap:.1rem; padding:0; margin:0; list-style:none; }
.epx-hero__workflow li { position:relative; display:grid; grid-template-columns:2rem 5rem 1fr; gap:.55rem; align-items:center; min-height:2.85rem; }
.epx-hero__workflow li:not(:last-child)::after { position:absolute; left:.78rem; top:2.2rem; width:1px; height:1rem; content:""; background:rgba(141,224,229,.4); }
.epx-hero__workflow li > span { display:grid; width:1.6rem; height:1.6rem; place-content:center; border:1px solid rgba(141,224,229,.5); border-radius:50%; color:#b8eef0; font-size:.6rem; font-weight:800; }
.epx-hero__workflow strong { color:#fff; font-size:.78rem; }
.epx-hero__workflow small { color:rgba(255,255,255,.65); font-size:.68rem; }

/* Sticky page navigation */
.epx-subnav { position:sticky; z-index:35; top:var(--header-height); border-bottom:1px solid var(--color-border); background:rgba(255,255,255,.93); box-shadow:0 8px 24px rgba(13,42,62,.055); backdrop-filter:blur(14px); }
.epx-subnav__inner { display:flex; overflow-x:auto; gap:.3rem; padding-block:.55rem; scrollbar-width:none; }
.epx-subnav__inner::-webkit-scrollbar { display:none; }
.epx-subnav a { flex:0 0 auto; padding:.62rem .85rem; border-radius:var(--radius-pill); color:var(--color-muted); font-size:.78rem; font-weight:700; text-decoration:none; white-space:nowrap; }
.epx-subnav a:hover,.epx-subnav a.is-active { color:#fff; background:var(--color-navy-950); }

/* Retain / configure / integrate / build */
.epx-decision { overflow:hidden; border:1px solid var(--color-border); border-radius:var(--radius-2xl); background:#fff; box-shadow:var(--shadow-lg); }
.epx-decision__tabs { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); border-bottom:1px solid var(--color-border); background:var(--color-surface-soft); }
.epx-decision__tab { display:grid; grid-template-columns:auto 1fr; grid-template-rows:auto auto; gap:.1rem .75rem; min-height:6.2rem; padding:1rem 1.1rem; text-align:left; border:0; border-right:1px solid var(--color-border); color:var(--color-muted); background:transparent; transition:color var(--duration-standard),background var(--duration-standard),transform var(--duration-standard); }
.epx-decision__tab:last-child { border-right:0; }
.epx-decision__tab > span { grid-row:1/3; align-self:center; color:var(--color-brand-blue-700); font-size:.7rem; font-weight:800; }
.epx-decision__tab strong { align-self:end; color:var(--color-navy-950); font-size:1rem; }
.epx-decision__tab small { align-self:start; font-size:.72rem; }
.epx-decision__tab[aria-selected="true"] { color:#fff; background:linear-gradient(135deg,var(--color-navy-950),var(--color-brand-blue-800)); }
.epx-decision__tab[aria-selected="true"] > span,.epx-decision__tab[aria-selected="true"] strong { color:#fff; }
.epx-decision__tab:hover { transform:translateY(-2px); }
.epx-decision__panel { display:grid; grid-template-columns:minmax(0,.9fr) minmax(0,1.1fr); min-height:31rem; }
.epx-decision__copy { display:flex; flex-direction:column; justify-content:center; padding:clamp(2rem,5vw,4rem); }
.epx-decision__copy h3 { font-size:clamp(1.65rem,3.2vw,2.75rem); line-height:1.02; }
.epx-decision__copy p:not(.epx-kicker) { margin-top:1.15rem; color:var(--color-muted); }
.epx-decision__copy ul { display:grid; gap:.65rem; padding:0; margin:1.35rem 0 0; list-style:none; }
.epx-decision__copy li { position:relative; padding-left:1.4rem; color:var(--color-ink); }
.epx-decision__copy li::before { position:absolute; left:0; top:.65em; width:.48rem; height:.48rem; border-radius:50%; content:""; background:var(--color-brand-teal); }
.epx-decision__diagram,.epx-decision__photo,.epx-retain-map { min-height:31rem; margin:0; border-left:1px solid var(--color-border); background:linear-gradient(145deg,#eaf4f8,#f7fafb); }
.epx-decision__diagram { display:grid; place-content:center; padding:clamp(1.5rem,4vw,3.5rem); }
.epx-decision__diagram img { max-height:28rem; object-fit:contain; }
.epx-decision__photo { position:relative; overflow:hidden; }
.epx-decision__photo picture,.epx-decision__photo img { width:100%; height:100%; }
.epx-decision__photo img { object-fit:cover; }
.epx-decision__photo figcaption { position:absolute; right:1rem; bottom:1rem; padding:.35rem .55rem; border-radius:.4rem; color:#fff; background:rgba(7,31,49,.75); font-size:.68rem; }
.epx-retain-map { position:relative; overflow:hidden; }
.epx-retain-map::before { position:absolute; inset:0; content:""; background:radial-gradient(circle at 50% 50%,rgba(35,131,197,.2),transparent 35%),linear-gradient(rgba(13,42,62,.055) 1px,transparent 1px),linear-gradient(90deg,rgba(13,42,62,.055) 1px,transparent 1px); background-size:auto,38px 38px,38px 38px; }
.epx-retain-map > span { position:absolute; z-index:2; display:grid; min-width:8.5rem; min-height:4rem; place-content:center; padding:.7rem; border:1px solid var(--color-border); border-radius:1rem; color:var(--color-navy-950); background:#fff; box-shadow:var(--shadow-sm); font-size:.75rem; font-weight:700; text-align:center; }
.epx-retain-map__core { inset:35% 31%; color:#fff !important; border:0 !important; border-radius:50% !important; background:linear-gradient(145deg,var(--color-brand-blue-800),var(--color-brand-teal)) !important; box-shadow:0 20px 45px rgba(13,42,62,.22) !important; }
.epx-retain-map > span:nth-child(2) { top:12%; left:10%; }
.epx-retain-map > span:nth-child(3) { top:12%; right:10%; }
.epx-retain-map > span:nth-child(4) { right:10%; bottom:12%; }
.epx-retain-map > span:nth-child(5) { bottom:12%; left:10%; }

/* Before / after workflow */
.epx-section--dark { overflow:hidden; color:#fff; background:radial-gradient(circle at 8% 20%,rgba(35,131,197,.22),transparent 30%),radial-gradient(circle at 92% 80%,rgba(15,122,128,.16),transparent 34%),#071f31; }
.epx-section--dark::before { position:absolute; inset:0; opacity:.12; content:""; background-image:linear-gradient(rgba(255,255,255,.08) 1px,transparent 1px),linear-gradient(90deg,rgba(255,255,255,.08) 1px,transparent 1px); background-size:46px 46px; }
.epx-workflow { position:relative; display:grid; grid-template-columns:minmax(0,.86fr) minmax(0,1.14fr); gap:clamp(2.5rem,6vw,6rem); align-items:center; }
.epx-workflow__copy h2 { color:#fff; font-size:clamp(2.2rem,4.6vw,4.6rem); line-height:.98; }
.epx-workflow__copy > p:not(.eyebrow) { margin-top:1.2rem; color:rgba(255,255,255,.72); font-size:var(--text-body-lg); }
.epx-workflow__toggle { display:inline-flex; margin-top:1.75rem; padding:.3rem; border:1px solid rgba(255,255,255,.2); border-radius:var(--radius-pill); background:rgba(255,255,255,.06); }
.epx-workflow__toggle button { padding:.65rem .95rem; border:0; border-radius:var(--radius-pill); color:rgba(255,255,255,.68); background:transparent; font-size:.78rem; font-weight:800; }
.epx-workflow__toggle button[aria-pressed="true"] { color:var(--color-navy-950); background:#fff; }
.epx-workflow__stage { min-height:34rem; padding:clamp(1.25rem,3vw,2rem); border:1px solid rgba(255,255,255,.2); border-radius:var(--radius-2xl); background:rgba(255,255,255,.075); box-shadow:0 30px 80px rgba(0,0,0,.22); backdrop-filter:blur(12px); }
.epx-workflow-state { display:flex; min-height:30rem; flex-direction:column; justify-content:center; }
.epx-workflow-state h3 { color:#fff; font-size:clamp(1.6rem,3.2vw,2.8rem); }
.epx-workflow-state ul { display:grid; gap:.65rem; padding:0; margin:1.4rem 0 0; list-style:none; color:rgba(255,255,255,.75); }
.epx-workflow-state li { position:relative; padding-left:1.25rem; }
.epx-workflow-state ul li::before { position:absolute; left:0; top:.7em; width:.42rem; height:.42rem; border-radius:50%; content:""; background:#8de0e5; }
.epx-fragmented-map { position:relative; display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:.75rem; margin-top:1.5rem; padding:1.4rem; border:1px dashed rgba(255,255,255,.28); border-radius:1.3rem; }
.epx-fragmented-map span { display:grid; min-height:5rem; place-content:center; border:1px solid rgba(255,255,255,.17); border-radius:.85rem; color:#fff; background:rgba(255,255,255,.07); font-size:.8rem; font-weight:700; }
.epx-fragmented-map i { position:absolute; display:grid; width:3.2rem; height:3.2rem; inset:50% auto auto 50%; place-content:center; border-radius:50%; color:#071f31; background:#f6c977; font-style:normal; font-weight:900; transform:translate(-50%,-50%); box-shadow:0 10px 25px rgba(0,0,0,.25); }
.epx-connected-map { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:.55rem; padding:0; margin:1.5rem 0 0; list-style:none; }
.epx-connected-map li { position:relative; display:flex; min-height:8rem; flex-direction:column; justify-content:center; padding:1rem; border:1px solid rgba(141,224,229,.3); border-radius:1rem; background:rgba(15,122,128,.14); }
.epx-connected-map li:not(:last-child)::after { position:absolute; z-index:2; right:-.55rem; top:50%; width:.55rem; height:2px; content:""; background:#8de0e5; }
.epx-connected-map span { color:#8de0e5; font-size:.65rem; font-weight:800; }
.epx-connected-map strong { margin-top:.25rem; color:#fff; font-size:.85rem; }
.epx-connected-map small { margin-top:.35rem; color:rgba(255,255,255,.62); font-size:.65rem; line-height:1.3; }

/* Role explorer and operational visibility */
.epx-section--roles { background:linear-gradient(180deg,#fff,#f4f7f9 72%,#fff); }
.epx-role-explorer { display:grid; grid-template-columns:minmax(15rem,.34fr) minmax(0,.66fr); overflow:hidden; border:1px solid var(--color-border); border-radius:var(--radius-2xl); background:#fff; box-shadow:var(--shadow-lg); }
.epx-role-explorer__tabs { display:grid; align-content:stretch; border-right:1px solid var(--color-border); background:#f7fafb; }
.epx-role-explorer__tabs button { display:flex; gap:.8rem; align-items:center; padding:1.15rem 1.25rem; text-align:left; border:0; border-bottom:1px solid var(--color-border); color:var(--color-muted); background:transparent; font-weight:700; }
.epx-role-explorer__tabs button:last-child { border-bottom:0; }
.epx-role-explorer__tabs button[aria-selected="true"] { color:#fff; background:linear-gradient(120deg,var(--color-navy-950),var(--color-brand-blue-800)); }
.epx-role-explorer__tabs .icon { width:1.25rem; height:1.25rem; flex:0 0 auto; }
.epx-role-view { min-height:25rem; background:#fff; }
.epx-role-view__top { display:flex; gap:1rem; align-items:center; justify-content:space-between; padding:1rem 1.35rem; border-bottom:1px solid var(--color-border); color:var(--color-muted); background:#fbfcfd; font-size:.72rem; font-weight:700; }
.epx-role-view__top i { font-style:normal; }
.epx-role-view__body { display:grid; grid-template-columns:minmax(0,1.1fr) minmax(14rem,.9fr); gap:2rem; align-items:center; min-height:20rem; padding:clamp(1.8rem,4vw,3.5rem); }
.epx-role-view__body h3 { font-size:clamp(1.65rem,3.3vw,3rem); line-height:1; }
.epx-role-view__body p:not(.epx-kicker) { margin-top:1rem; color:var(--color-muted); }
.epx-role-view__body ul { display:grid; gap:.6rem; padding:1rem; margin:0; border:1px solid var(--color-border); border-radius:1.2rem; background:var(--color-surface-blue); list-style:none; }
.epx-role-view__body li { padding:.8rem .9rem; border-radius:.75rem; color:var(--color-navy-950); background:#fff; box-shadow:var(--shadow-sm); font-size:.8rem; font-weight:700; }
.epx-visibility { display:grid; grid-template-columns:minmax(0,.78fr) minmax(0,1.22fr); gap:clamp(2rem,5vw,5rem); align-items:center; margin-top:clamp(3.5rem,7vw,6rem); padding-top:clamp(3rem,6vw,5rem); border-top:1px solid var(--color-border); }
.epx-visibility h2 { font-size:clamp(2rem,4vw,3.8rem); line-height:1; }
.epx-visibility p:not(.eyebrow) { margin-top:1rem; color:var(--color-muted); }
.epx-visibility__signals { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:.8rem; }
.epx-visibility__signals span { min-height:8rem; padding:1.2rem; border:1px solid var(--color-border); border-radius:1.2rem; background:#fff; box-shadow:var(--shadow-sm); }
.epx-visibility__signals strong,.epx-visibility__signals small { display:block; }
.epx-visibility__signals strong { color:var(--color-navy-950); }
.epx-visibility__signals small { margin-top:.4rem; color:var(--color-muted); line-height:1.4; }

/* Staged modernisation */
.epx-section--modernise { overflow:hidden; background:linear-gradient(135deg,#f7f2ec,#fff 60%); }
.epx-section--modernise::after { position:absolute; width:28rem; height:28rem; right:-12rem; bottom:-14rem; border:1px solid rgba(96,59,23,.18); border-radius:50%; content:""; box-shadow:0 0 0 5rem rgba(96,59,23,.035),0 0 0 10rem rgba(96,59,23,.02); }
.epx-modernise { position:relative; z-index:1; display:grid; grid-template-columns:minmax(0,.82fr) minmax(0,1.18fr); gap:clamp(2.5rem,6vw,6rem); align-items:start; }
.epx-modernise__intro h2 { font-size:clamp(2.1rem,4.4vw,4.5rem); line-height:.98; }
.epx-modernise__intro > p:not(.eyebrow) { margin-top:1.15rem; color:var(--color-muted); font-size:var(--text-body-lg); }
.epx-modernise__steps { position:relative; display:grid; gap:.9rem; padding:0; margin:0; list-style:none; }
.epx-modernise__steps::before { position:absolute; left:1.6rem; top:2rem; bottom:2rem; width:2px; content:""; background:linear-gradient(var(--color-brand-blue),var(--color-brand-teal),var(--color-brand-brown)); }
.epx-modernise__steps li { position:relative; display:grid; grid-template-columns:3.2rem 1fr; gap:1rem; align-items:center; min-height:7rem; padding:1rem 1.2rem; border:1px solid rgba(96,59,23,.15); border-radius:1.2rem; background:rgba(255,255,255,.86); box-shadow:var(--shadow-sm); }
.epx-modernise__steps li > span { z-index:2; display:grid; width:3.2rem; height:3.2rem; place-content:center; border:4px solid #f7f2ec; border-radius:50%; color:#fff; background:var(--color-navy-950); font-size:.67rem; font-weight:800; }
.epx-modernise__steps strong { color:var(--color-navy-950); font-size:1rem; }
.epx-modernise__steps p { margin-top:.25rem; color:var(--color-muted); font-size:.85rem; line-height:1.45; }

/* Data and systems */
.epx-section--connections { background:#fff; }
.epx-connections { display:grid; grid-template-columns:minmax(0,.85fr) minmax(0,1.15fr); gap:clamp(2.5rem,6vw,6rem); align-items:center; }
.epx-connections h2 { font-size:clamp(2.1rem,4.4vw,4.25rem); line-height:.98; }
.epx-connections > div:first-child > p:not(.eyebrow) { margin-top:1.15rem; color:var(--color-muted); font-size:var(--text-body-lg); }
.epx-source-map { position:relative; display:grid; grid-template-columns:1fr auto 1.15fr auto 1fr; gap:.65rem; align-items:center; min-height:27rem; padding:clamp(1.4rem,3vw,2.5rem); overflow:hidden; border:1px solid var(--color-border); border-radius:var(--radius-2xl); background:radial-gradient(circle at 50% 48%,rgba(15,122,128,.16),transparent 35%),linear-gradient(rgba(13,42,62,.045) 1px,transparent 1px),linear-gradient(90deg,rgba(13,42,62,.045) 1px,transparent 1px),#f7fafb; background-size:auto,36px 36px,36px 36px,auto; box-shadow:var(--shadow-md); }
.epx-source-map span { display:grid; min-height:7.5rem; align-content:center; padding:1rem; border:1px solid var(--color-border); border-radius:1rem; text-align:center; background:#fff; box-shadow:var(--shadow-sm); }
.epx-source-map__core { min-height:10rem !important; color:#fff; border:0 !important; background:linear-gradient(145deg,var(--color-brand-blue-800),var(--color-brand-teal)) !important; box-shadow:0 22px 45px rgba(13,42,62,.2) !important; }
.epx-source-map small,.epx-source-map strong { display:block; }
.epx-source-map small { color:var(--color-muted); font-size:.65rem; letter-spacing:.06em; text-transform:uppercase; }
.epx-source-map strong { margin-top:.4rem; color:var(--color-navy-950); font-size:.8rem; }
.epx-source-map__core small { color:rgba(255,255,255,.72); }
.epx-source-map__core strong { color:#fff; }
.epx-source-map > i { color:var(--color-brand-blue-700); font-style:normal; font-weight:900; }
.epx-source-map > em { position:absolute; right:10%; bottom:2rem; left:10%; padding:.7rem 1rem; border:1px solid rgba(15,122,128,.22); border-radius:var(--radius-pill); color:var(--color-brand-teal); background:rgba(233,246,245,.9); font-size:.7rem; font-style:normal; font-weight:700; text-align:center; }

/* Evidence */
.epx-section--evidence { color:#fff; background:linear-gradient(145deg,var(--color-navy-950),#102f45); }
.epx-section--evidence .epx-section-heading h2 { color:#fff; }
.epx-section--evidence .epx-section-heading p { color:rgba(255,255,255,.72); }
.epx-evidence-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:1.25rem; }
.epx-evidence-card { overflow:hidden; border:1px solid rgba(255,255,255,.15); border-radius:var(--radius-2xl); background:rgba(255,255,255,.06); box-shadow:0 25px 60px rgba(0,0,0,.18); }
.epx-evidence-card > div:last-child { padding:clamp(1.5rem,3vw,2.4rem); }
.epx-evidence-card h3 { color:#fff; font-size:clamp(1.5rem,2.8vw,2.3rem); }
.epx-evidence-card p:not(.epx-kicker) { margin-top:1rem; color:rgba(255,255,255,.72); }
.epx-evidence-card a { display:inline-flex; gap:.4rem; align-items:center; margin-top:1.25rem; color:#a6e7e9; font-weight:700; text-decoration:none; }
.epx-evidence-card a:hover { color:#fff; }
.epx-evidence-card a .icon { width:1rem; height:1rem; }
.epx-evidence-card__visual { display:flex; min-height:13rem; gap:.75rem; align-items:center; justify-content:center; padding:1.5rem; border-bottom:1px solid rgba(255,255,255,.12); background:radial-gradient(circle at 50% 50%,rgba(35,131,197,.3),transparent 45%),rgba(0,0,0,.12); }
.epx-evidence-card__visual span { display:grid; min-height:5.5rem; place-content:center; padding:1rem; border:1px solid rgba(255,255,255,.25); border-radius:1rem; color:#fff; background:rgba(255,255,255,.08); font-size:.72rem; font-weight:800; text-align:center; }
.epx-evidence-card__visual i { width:2.7rem; height:2px; background:linear-gradient(90deg,#8de0e5,#5baee0); }
.epx-evidence-card__visual--operations span { flex:1; }

/* CTA */
.epx-section--cta { overflow:hidden; background:#e9f4fb; }
.epx-cta { position:relative; display:grid; grid-template-columns:minmax(0,1fr) 20rem; gap:3rem; align-items:center; padding:clamp(2rem,5vw,4.5rem); border-radius:var(--radius-2xl); color:#fff; background:linear-gradient(130deg,var(--color-brand-blue-800),var(--color-navy-950) 68%); box-shadow:var(--shadow-xl); }
.epx-cta::before { position:absolute; width:24rem; height:24rem; right:-8rem; top:-10rem; border:1px solid rgba(255,255,255,.12); border-radius:50%; content:""; box-shadow:0 0 0 4rem rgba(255,255,255,.03),0 0 0 8rem rgba(255,255,255,.02); }
.epx-cta h2 { color:#fff; font-size:clamp(2.1rem,4.5vw,4.4rem); line-height:.98; }
.epx-cta p:not(.eyebrow,.caption) { max-width:52rem; margin-top:1rem; color:rgba(255,255,255,.75); font-size:var(--text-body-lg); }
.epx-cta .cluster { margin-top:1.5rem; }
.epx-cta .caption { margin-top:.85rem; color:rgba(255,255,255,.6); }
.epx-cta__link { color:#a6e7e9; font-weight:700; }
.epx-cta__link:hover { color:#fff; }
.epx-cta__graphic { position:relative; z-index:2; display:grid; gap:.55rem; justify-items:center; }
.epx-cta__graphic span { display:grid; width:9rem; min-height:3.1rem; place-content:center; border:1px solid rgba(255,255,255,.25); border-radius:var(--radius-pill); color:#fff; background:rgba(255,255,255,.08); font-size:.75rem; font-weight:800; letter-spacing:.04em; text-transform:uppercase; }
.epx-cta__graphic i { width:2px; height:1.2rem; background:#8de0e5; }

@media (max-width:72rem) {
  .epx-hero { background:linear-gradient(118deg,#071f31 0 100%,#eef5f7 52% 100%); }
  .epx-hero__layout { grid-template-columns:minmax(0,1fr) minmax(23rem,.85fr); }
  .epx-hero h1 { font-size:clamp(2.6rem,5vw,4.7rem); }
  .epx-decision__tab { padding:.9rem; }
  .epx-decision__tab small { display:none; }
}
@media (max-width:63.99rem) {
  .epx-hero { background:#071f31; }
  .epx-hero__gridlines { inset:0; }
  .epx-hero__layout { grid-template-columns:1fr; min-height:auto; }
  .epx-hero__copy { padding:4rem 0 3rem; }
  .epx-hero h1 { max-width:15ch; }
  .epx-hero__visual { min-height:36rem; border-radius:var(--radius-2xl) var(--radius-2xl) 0 0; }
  .epx-hero__workflow { bottom:3.5rem; }
  .epx-decision__panel { grid-template-columns:1fr; }
  .epx-decision__diagram,.epx-decision__photo,.epx-retain-map { min-height:27rem; border-top:1px solid var(--color-border); border-left:0; }
  .epx-workflow,.epx-modernise,.epx-connections { grid-template-columns:1fr; }
  .epx-role-explorer { grid-template-columns:1fr; }
  .epx-role-explorer__tabs { grid-template-columns:repeat(4,minmax(0,1fr)); border-right:0; border-bottom:1px solid var(--color-border); }
  .epx-role-explorer__tabs button { justify-content:center; padding:1rem .6rem; border-right:1px solid var(--color-border); border-bottom:0; }
  .epx-role-explorer__tabs button:last-child { border-right:0; }
  .epx-role-explorer__tabs span { display:none; }
  .epx-visibility { grid-template-columns:1fr; }
  .epx-source-map { min-height:24rem; }
  .epx-cta { grid-template-columns:1fr; }
  .epx-cta__graphic { display:none; }
}
@media (max-width:47.99rem) {
  .epx-hero__copy { padding-top:3rem; }
  .epx-hero h1 { font-size:clamp(2.5rem,13vw,4rem); }
  .epx-hero__visual { min-height:30rem; }
  .epx-hero__workflow { right:.75rem; bottom:3rem; width:calc(100% - 1.5rem); }
  .epx-hero__visual figcaption { right:.8rem; bottom:.6rem; max-width:16rem; }
  .epx-decision__tabs { display:flex; overflow-x:auto; scrollbar-width:none; }
  .epx-decision__tabs::-webkit-scrollbar { display:none; }
  .epx-decision__tab { flex:0 0 10.5rem; min-height:5.2rem; border-right:1px solid var(--color-border); }
  .epx-decision__copy { padding:1.6rem; }
  .epx-decision__copy h3 { font-size:1.8rem; }
  .epx-decision__diagram,.epx-decision__photo,.epx-retain-map { min-height:22rem; }
  .epx-retain-map > span { min-width:6.8rem; min-height:3.6rem; font-size:.67rem; }
  .epx-retain-map__core { inset:38% 28%; }
  .epx-workflow__toggle { display:grid; grid-template-columns:1fr 1fr; width:100%; }
  .epx-workflow__toggle button { padding:.7rem .45rem; }
  .epx-workflow__stage { min-height:34rem; padding:1rem; }
  .epx-connected-map { grid-template-columns:repeat(2,minmax(0,1fr)); }
  .epx-connected-map li:not(:last-child)::after { display:none; }
  .epx-role-view__body { grid-template-columns:1fr; padding:1.5rem; }
  .epx-role-view__top { align-items:flex-start; flex-direction:column; gap:.2rem; }
  .epx-visibility__signals,.epx-evidence-grid { grid-template-columns:1fr; }
  .epx-source-map { grid-template-columns:1fr; gap:.8rem; min-height:auto; padding-bottom:5rem; }
  .epx-source-map > i { transform:rotate(90deg); justify-self:center; }
  .epx-source-map > em { right:1rem; bottom:1rem; left:1rem; border-radius:1rem; }
  .epx-evidence-card__visual--operations { flex-direction:column; }
  .epx-evidence-card__visual--operations i { width:2px; height:1.4rem; }
  .epx-cta { padding:1.6rem; }
}
@media (max-width:29.99rem) {
  .epx-hero__actions { display:grid; }
  .epx-hero__actions .btn { width:100%; }
  .epx-hero__workflow li { grid-template-columns:2rem 4.5rem 1fr; }
  .epx-fragmented-map { grid-template-columns:1fr; }
  .epx-fragmented-map i { display:none; }
  .epx-retain-map > span:nth-child(2),.epx-retain-map > span:nth-child(5) { left:4%; }
  .epx-retain-map > span:nth-child(3),.epx-retain-map > span:nth-child(4) { right:4%; }
}
@media (prefers-reduced-motion:reduce) {
  .epx-decision__tab,.epx-subnav a { transition:none !important; transform:none !important; }
}
.no-js .epx-decision__tabs,.no-js .epx-workflow__toggle,.no-js .epx-role-explorer__tabs { display:none; }
.no-js .epx-decision__panel[hidden],.no-js .epx-workflow-state[hidden] { display:grid !important; }
.no-js .epx-decision__panel + .epx-decision__panel,.no-js .epx-workflow-state + .epx-workflow-state { border-top:1px solid var(--color-border); }
.epx-decision__copy>.link-arrow{margin-top:1.1rem;align-self:flex-start}

.epx-source-map--coexistence { min-height: 30rem; }
.epx-source-map--coexistence .epx-source-map__core { background: linear-gradient(145deg,#146b73,#0d2a3e) !important; }
.epx-evolution { display: grid; margin-top: clamp(2.5rem,6vw,5rem); padding: clamp(1.5rem,4vw,3rem); gap: clamp(1.5rem,4vw,3rem); border: 1px solid rgba(15,122,128,.2); border-radius: var(--radius-2xl); background: linear-gradient(135deg,#fff,var(--color-surface-teal)); box-shadow: var(--shadow-md); grid-template-columns: minmax(0,.8fr) minmax(0,1.2fr); }
.epx-evolution__intro h2 { margin-top: .4rem; font-size: clamp(1.9rem,3.6vw,3.35rem); line-height: 1; }
.epx-evolution__intro p:last-child { margin-top: 1rem; color: var(--color-muted); }
.epx-evolution__grid { display: grid; gap: .75rem; grid-template-columns: repeat(2,minmax(0,1fr)); }
.epx-evolution__grid article { padding: 1rem; border: 1px solid var(--color-border); border-radius: 1rem; background: rgba(255,255,255,.88); box-shadow: var(--shadow-sm); }
.epx-evolution__grid strong { display: block; color: var(--color-navy-950); }
.epx-evolution__grid span { display: block; margin-top: .35rem; color: var(--color-muted); font-size: .82rem; line-height: 1.45; }
@media (max-width: 63.99rem) { .epx-evolution { grid-template-columns: 1fr; } }
@media (max-width: 47.99rem) { .epx-evolution__grid { grid-template-columns: 1fr; } }

@media (max-width:63.99rem) {
  .epx-role-explorer__tabs { grid-template-columns:repeat(2,minmax(0,1fr)); }
  .epx-role-explorer__tabs button { justify-content:flex-start; border-right:1px solid var(--color-border); border-bottom:1px solid var(--color-border); }
  .epx-role-explorer__tabs button:nth-child(even) { border-right:0; }
  .epx-role-explorer__tabs button:nth-last-child(-n+2) { border-bottom:0; }
  .epx-role-explorer__tabs span { display:inline; }
}
@media (max-width:29.99rem) {
  .epx-role-explorer__tabs { grid-template-columns:1fr; }
  .epx-role-explorer__tabs button,
  .epx-role-explorer__tabs button:nth-child(even),
  .epx-role-explorer__tabs button:nth-last-child(-n+2) { border-right:0; border-bottom:1px solid var(--color-border); }
  .epx-role-explorer__tabs button:last-child { border-bottom:0; }
}
