{"id":188,"date":"2024-10-18T18:13:59","date_gmt":"2024-10-18T18:13:59","guid":{"rendered":"https:\/\/www.esah.com\/staging\/8288\/?page_id=188"},"modified":"2026-07-13T16:48:10","modified_gmt":"2026-07-13T16:48:10","slug":"updates","status":"publish","type":"page","link":"https:\/\/www.esah.com\/staging\/8288\/updates\/","title":{"rendered":"Updates"},"content":{"rendered":"\n<style>\n@import url('https:\/\/fonts.googleapis.com\/css2?family=Fraunces:ital,opsz,wght@0,9..144,600;1,9..144,600');\n@import url('https:\/\/fonts.googleapis.com\/css2?family=IBM+Plex+Sans:wght@400;600;700');\n@import url('https:\/\/fonts.googleapis.com\/css2?family=IBM+Plex+Mono:wght@400;600');\n\n\/* Footer: clone's dark band (content swapped in by JS below) *\/\n#sub-footer{display:block!important;background:#0b1322!important;border-top:2px solid #2d8aca;padding:48px 24px 36px;font-size:14px;color:rgba(250,247,240,.72)}\n#sub-footer-core{max-width:1180px!important;margin:0 auto;padding:0!important;text-align:left}\n#sub-footer .copyright{display:none}\n\/* Page-hero headline sizing to match clone hero-title *\/\n#main-core h1:not([style*=\"font-size\"]){font-size:clamp(36px,5vw,60px);line-height:1.1}\n\n\/* Display typography *\/\nh1,h2,h3,h4,.wp-block-heading{font-family:'Fraunces',Georgia,serif!important;letter-spacing:-0.01em;font-weight:600!important;line-height:1.12;font-optical-sizing:none}\nbody,button,input,select,textarea{font-family:'IBM Plex Sans',-apple-system,BlinkMacSystemFont,sans-serif}\nbody{color:#42526b;font-size:16px;line-height:1.7;-webkit-font-smoothing:antialiased}\nbody{-webkit-font-smoothing:antialiased}\n.esah-hero-title{font-size:clamp(36px,5vw,60px)!important;line-height:1.08!important;font-weight:600!important}\n.esah-hero-sub{font-size:clamp(17px,2vw,21px)!important;line-height:1.6}\n\n\/* Buttons *\/\n.wp-block-button__link{transition:transform .25s ease,box-shadow .25s ease}\n.wp-block-button__link:hover{transform:translateY(-2px);box-shadow:0 10px 24px rgba(15,25,45,.28)}\n\n\/* Card hover *\/\n.esah-card{transition:transform .3s ease,box-shadow .3s ease}\n.esah-card:hover{transform:translateY(-4px);box-shadow:0 16px 36px rgba(20,32,54,.14)}\n\n\/* Scroll reveal (progressive: only in browsers with scroll-driven animations) *\/\n@media (prefers-reduced-motion:no-preference){\n  @supports (animation-timeline: view()){\n    .esah-reveal{animation:esahUp .8s ease both;animation-timeline:view();animation-range:entry 0% entry 40%}\n  }\n}\n@keyframes esahUp{from{opacity:0;transform:translateY(26px)}to{opacity:1;transform:none}}\n\n\/* Team slider *\/\n.esah-slider{position:relative}\n.esah-viewport{overflow:hidden;border-radius:12px}\n.esah-track{display:flex;transition:transform .55s cubic-bezier(.4,0,.2,1)}\n.esah-slide{flex:0 0 100%;display:grid;grid-template-columns:300px 1fr;gap:44px;align-items:center;background:linear-gradient(160deg,#1b2740 0%,#14203a 100%);padding:48px;border-radius:12px;box-sizing:border-box}\n.esah-slide img{width:100%;aspect-ratio:3\/4;object-fit:cover;border-radius:8px;display:block;box-shadow:0 14px 34px rgba(0,0,0,.35)}\n.esah-slide h3{color:#fff!important;font-size:28px;margin:0 0 4px}\n.esah-slide .esah-role{color:#8fc3e8;font-weight:600;font-size:13px;letter-spacing:1.5px;text-transform:uppercase;margin:0 0 16px}\n.esah-slide p{color:rgba(255,255,255,.88);font-size:16px;line-height:1.75;margin:0}\n.esah-slider-btn{position:absolute;top:50%;transform:translateY(-50%);z-index:2;width:44px;height:44px;border-radius:50%;border:none;background:#fff;color:#2c405e;font-size:24px;line-height:1;cursor:pointer;box-shadow:0 4px 14px rgba(0,0,0,.3);transition:transform .2s ease}\n.esah-slider-btn:hover{transform:translateY(-50%) scale(1.1)}\n.esah-slider-btn.prev{left:-14px}\n.esah-slider-btn.next{right:-14px}\n.esah-dots{display:flex;justify-content:center;gap:8px;margin-top:20px}\n.esah-dots button{width:9px;height:9px;border-radius:50%;border:none;background:#c6d3e2;cursor:pointer;padding:0;transition:all .25s ease}\n.esah-dots button.active{background:#2d8aca;width:26px;border-radius:999px}\n\n\/* Slider extras: counter, chips, photo motion *\/\n.esah-slide-count{position:absolute;top:20px;right:24px;color:rgba(255,255,255,.55);font-family:'IBM Plex Sans',sans-serif;font-weight:700;font-size:13px;letter-spacing:2px;z-index:2;pointer-events:none}\n.esah-slider:focus{outline:2px solid #2d8aca;outline-offset:4px;border-radius:12px}\n.esah-chips{display:flex;flex-wrap:wrap;gap:8px;margin-top:18px}\n.esah-chip{background:rgba(125,184,224,.14);border:1px solid rgba(125,184,224,.45);color:#a8cfe8;font-size:12px;font-weight:600;font-family:'IBM Plex Sans',sans-serif;padding:5px 13px;border-radius:999px;letter-spacing:.4px}\n.esah-chips-light .esah-chip{background:rgba(45,138,202,.08);border-color:rgba(45,138,202,.35);color:#2d8aca}\n\n\/* Click-to-copy buttons *\/\n.esah-copy{display:inline-flex;align-items:center;gap:7px;background:rgba(255,255,255,.12);border:1px solid rgba(255,255,255,.32);color:#fff;font-size:13px;font-family:inherit;padding:7px 13px;border-radius:6px;cursor:pointer;transition:background .2s ease}\n.esah-copy:hover{background:rgba(255,255,255,.24)}\n.esah-copy.copied{background:#2d8aca;border-color:#2d8aca}\n\n\/* Map + embed frames *\/\n.esah-map iframe{width:100%;height:220px;border:0;border-radius:8px;display:block;filter:saturate(.85)}\n.esah-embed-card{background:#fff;border-radius:10px;box-shadow:0 8px 28px rgba(20,32,54,.1);overflow:hidden}\n\n\/* ============ FULL-BLEED LAYOUT ============\n   The theme boxes content at 1140px (#content-core), which reads like a PDF page.\n   Break the box, then re-constrain inner text via the standard layout vars. *\/\n:root{--wp--style--global--content-size:840px;--wp--style--global--wide-size:1200px}\nbody,body.custom-background,body.layout-boxed{background:#f5f9fd!important;padding:0!important}\n#body-core{max-width:none!important;border:none!important;background:transparent!important}\n#content-core,#main-core{max-width:none!important}\n#content{padding:0!important}\nbody{overflow-x:clip}\n#main-core{margin:0}\n#main-core .alignfull{width:100%;max-width:none}\n\/* Interactive components get generous width inside constrained groups *\/\n#main-core .esah-tabs,#main-core .esah-filter-wrap,#main-core .esah-slider,#main-core .esah-timeline,#main-core .esah-stats{max-width:1140px;margin-left:auto;margin-right:auto}\n#main-core .esah-quote{max-width:760px}\n\n\/* ============ GLOSS PASS ============\n   Every flat color becomes a subtle blue-shifted gradient. *\/\n.wp-block-group[style*=\"background-color:#f4f7fa\"]{background:linear-gradient(165deg,#f9fcff 0%,#eef4fb 55%,#e6eef8 100%)!important}\n.wp-block-group[style*=\"background-color:#2c405e\"]{background:linear-gradient(160deg,#354c73 0%,#2c405e 55%,#243450 100%)!important}\n.wp-block-group[style*=\"background-color:#1a2942\"]{background:linear-gradient(160deg,#223454 0%,#1a2942 55%,#131e31 100%)!important}\n.wp-block-column[style*=\"background-color:#ffffff\"]{background:linear-gradient(170deg,#ffffff 0%,#f3f8fd 100%)!important}\n.wp-block-column[style*=\"background-color:#f4f7fa\"]{background:linear-gradient(170deg,#f9fcff 0%,#ebf2fa 100%)!important}\n.wp-block-column[style*=\"background-color:#2c405e\"]{background:linear-gradient(160deg,#354c73 0%,#243450 100%)!important}\n.wp-block-button__link[style*=\"background-color:#2d8aca\"]{background:linear-gradient(165deg,#46a2de 0%,#2d8aca 55%,#2377b0 100%)!important}\n.wp-block-button__link[style*=\"background-color:#2c405e\"]{background:linear-gradient(165deg,#3b547e 0%,#2c405e 100%)!important}\n.wp-block-button__link[style*=\"background-color:#ffffff\"]{background:linear-gradient(165deg,#ffffff 0%,#e8f1fa 100%)!important}\n.esah-vid-card{background:linear-gradient(170deg,#ffffff 0%,#f4f9fd 100%)}\n.esah-acc{background:linear-gradient(170deg,#ffffff 0%,#f7fbfe 100%)}\n.esah-embed-card{background:linear-gradient(170deg,#ffffff 0%,#f4f9fd 100%)}\n.esah-tab-btn,.esah-filter-btn{background:linear-gradient(170deg,#ffffff 0%,#f0f6fc 100%)}\n.esah-tab-btn.active,.esah-filter-btn.active{background:linear-gradient(165deg,#3b547e 0%,#2c405e 100%)}\n.esah-tl-dot{background:linear-gradient(170deg,#ffffff 0%,#eef5fb 100%)}\n\n\/* ============ THEME PAGE-TITLE BAR ============\n   Every page has its own hero H1 \u2014 the theme's grey \"COMPANY\" strip is redundant. *\/\n#intro{display:none!important}\n\n\/* ============ NAVIGATION BAR ============ *\/\n#header,#pre-header,#header-sticky,body.custom-background #header,body.layout-boxed #header{max-width:none!important;width:100%}\n#header{background:#fff!important;border-bottom:1px solid #c9d6e4;box-shadow:0 2px 20px rgba(20,32,54,.09)}\n#body-core>header{position:sticky;top:0;z-index:60}\n#header-sticky,#header-sticky-wrapper{display:none!important}\n#header-core{transition:padding .3s}\nbody.esah-scrolled #header-core{padding:8px 28px}\nbody.esah-scrolled #header{box-shadow:0 6px 28px rgba(20,32,54,.16)}\n#logo{margin:0!important}\n#pre-header{display:none!important}\n#logo a.custom-logo-link{display:block;margin:0;padding:0}\n#header-core{max-width:1360px;margin:0 auto;padding:14px 28px;display:flex;align-items:center;justify-content:space-between;flex-wrap:nowrap;gap:32px}\n#logo{flex-shrink:0}\n#logo img.custom-logo{width:138px;height:auto}\n#header-links{flex:1;min-width:0}\n#header-links .menu{display:flex!important;flex-wrap:nowrap;justify-content:flex-end;align-items:center;float:none!important;gap:6px}\n#header-links .menu li{white-space:nowrap;float:none!important}\n#header-links .menu li a{font-family:'IBM Plex Sans',sans-serif!important;font-weight:600!important;font-size:12.5px!important;letter-spacing:1.4px;text-transform:uppercase;color:#2c405e!important;transition:color .2s ease;padding:14px 13px!important}\n#header-links .menu li a:hover{color:#1f6fa8!important;background:transparent!important}\n#header-links .menu li a span{position:relative;padding-bottom:6px}\n#header-links .menu li a span::after{content:'';position:absolute;left:0;bottom:0;width:0;height:2px;background:#2d8aca;transition:width .28s ease;border-radius:2px}\n#header-links .menu li a:hover span::after{width:100%}\n#header-links .menu li.current-menu-item a,#header-links .menu li.current_page_item a,#header-links .menu li.current-menu-ancestor>a,#header-links .menu li.current_page_ancestor>a,#header-links .menu li.current-menu-parent>a{color:#1f6fa8!important}\n#header-links .menu li.current-menu-item a span::after,#header-links .menu li.current_page_item a span::after,#header-links .menu li.current-menu-ancestor>a span::after,#header-links .menu li.current_page_ancestor>a span::after{width:100%}\n\n\/* ============ TEXT PROPORTIONS ============\n   The classic theme has no block layout constraints \u2014 after going full-bleed,\n   text needs explicit measure. Prose ~880px, grids\/media ~1180px, all centered. *\/\n#main-core .wp-block-group>p,#main-core .wp-block-group>.wp-block-group__inner-container>p,#main-core .wp-block-cover__inner-container>p.esah-hero-sub,\n#main-core .wp-block-group>h1,#main-core .wp-block-group>h2,\n#main-core .wp-block-group>h3,#main-core .wp-block-group>h4,\n#main-core .wp-block-group>ul,#main-core .wp-block-group>ol,\n#main-core .wp-block-group>details,\n#main-core .wp-block-cover__inner-container>p,\n#main-core .wp-block-cover__inner-container>h1,\n#main-core .wp-block-cover__inner-container>h2{max-width:880px;margin-left:auto!important;margin-right:auto!important}\n#main-core .wp-block-group>.wp-block-columns,#main-core .wp-block-group>.wp-block-group__inner-container>.wp-block-columns,\n#main-core .wp-block-group>.wp-block-image,\n#main-core .wp-block-group>figure.wp-block-embed,\n#main-core .wp-block-group>.wp-block-query{max-width:1180px;margin-left:auto;margin-right:auto}\n#main-core p,#main-core li{line-height:1.7}\n\n\/* ============ EMPLOYEE PORTAL ============ *\/\n.post-password-form{max-width:440px;margin:90px auto 110px;background:linear-gradient(170deg,#ffffff 0%,#f2f8fd 100%);padding:44px 40px;border-radius:12px;box-shadow:0 18px 48px rgba(20,32,54,.14);text-align:center}\n.post-password-form p{margin:0 0 14px;color:#42526b;font-size:15px;line-height:1.6}\n.post-password-form label{display:block;font-family:'IBM Plex Sans',sans-serif;font-weight:700;color:#2c405e;font-size:14px}\n.post-password-form input[type=password]{width:100%;padding:13px 15px;border:1px solid #c9d6e4;border-radius:6px;margin:12px 0 6px;font-size:15px;box-sizing:border-box}\n.post-password-form input[type=submit]{background:linear-gradient(165deg,#46a2de 0%,#2d8aca 100%);color:#fff;border:none;padding:13px 30px;border-radius:6px;font-weight:700;font-family:'IBM Plex Sans',sans-serif;letter-spacing:.5px;cursor:pointer;margin-top:8px;transition:transform .2s,box-shadow .2s}\n.post-password-form input[type=submit]:hover{transform:translateY(-2px);box-shadow:0 10px 24px rgba(45,138,202,.35)}\n.esah-announcement{border-left:4px solid #2d8aca;border-radius:8px;box-shadow:0 4px 16px rgba(20,32,54,.08)}\n.esah-doc-row{display:flex;align-items:center;justify-content:space-between;gap:18px;background:linear-gradient(170deg,#ffffff 0%,#f4f9fd 100%);border:1px solid #e1e8f0;border-radius:8px;padding:18px 22px;margin:0 auto 14px;max-width:880px}\n.esah-doc-row h3{margin:0 0 4px;font-size:16px;color:#2c405e}\n.esah-doc-row p{margin:0;font-size:13px;color:#5a6b80}\n.esah-doc-row a.esah-doc-btn{flex-shrink:0;background:linear-gradient(165deg,#3b547e 0%,#2c405e 100%);color:#fff;text-decoration:none;font-family:'IBM Plex Sans',sans-serif;font-weight:600;font-size:13px;padding:10px 20px;border-radius:5px;transition:transform .2s,box-shadow .2s}\n.esah-doc-row a.esah-doc-btn:hover{transform:translateY(-2px);box-shadow:0 8px 20px rgba(20,32,54,.25)}\n@media(max-width:760px){\n  .esah-slide{grid-template-columns:1fr;padding:28px;gap:24px}\n  .esah-slide img{max-width:240px;margin:0 auto}\n  .esah-slider-btn.prev{left:6px}\n  .esah-slider-btn.next{right:6px}\n}\n\n\/* Animated stat counters *\/\n.esah-stats{display:flex;flex-wrap:wrap;justify-content:center;gap:56px;text-align:center}\n.esah-stat .esah-count{font-size:48px;font-weight:600;color:#8fc3e8;font-family:'Fraunces',Georgia,serif;font-optical-sizing:none;display:block;line-height:1.1;letter-spacing:0}\n.esah-stat p{font-family:'IBM Plex Mono',monospace}\n.esah-stat .esah-stat-label{display:block;margin-top:6px;font-size:13px;letter-spacing:1.5px;text-transform:uppercase;color:rgba(255,255,255,.85);font-weight:600}\n.esah-stats-light .esah-count{color:#2d8aca}\n.esah-stats-light .esah-stat-label{color:#5a6b80}\n\n\/* Tabs + filter pills *\/\n.esah-tab-btns{display:flex;flex-wrap:wrap;gap:10px;justify-content:center;margin-bottom:32px}\n.esah-tab-btn,.esah-filter-btn{padding:10px 24px;border-radius:999px;border:1px solid #c9d6e4;background:#fff;color:#2c405e;font-weight:600;font-size:14px;font-family:'IBM Plex Sans',sans-serif;cursor:pointer;transition:all .25s ease}\n.esah-tab-btn:hover,.esah-filter-btn:hover{border-color:#2d8aca;color:#2d8aca}\n.esah-tab-btn.active,.esah-filter-btn.active{background:#2c405e;border-color:#2c405e;color:#fff}\n.esah-tab-panel{display:none}\n.esah-tab-panel.active{display:block;animation:esahUp .45s ease both}\n.esah-tab-cols{display:grid;grid-template-columns:1fr 1fr;gap:44px;align-items:center}\n.esah-tab-cols img{width:100%;border-radius:10px;box-shadow:0 14px 34px rgba(20,32,54,.18);display:block}\n.esah-tab-cols h3{color:#2c405e;font-size:24px;margin:0 0 14px}\n.esah-tab-cols p,.esah-tab-cols li{color:#42526b;font-size:15px;line-height:1.7}\n.esah-tab-cols ul{padding-left:20px;margin:14px 0 0}\n.esah-tab-cols li{margin-bottom:8px}\n@media(max-width:820px){.esah-tab-cols{grid-template-columns:1fr;gap:28px}}\n\n\/* ML Top-Down capability carousel *\/\n.esah-cap-carousel{position:relative;max-width:1100px;margin:0 auto;padding:0 58px 42px;outline:none}\n.esah-cap-carousel:focus-visible{outline:3px solid rgba(45,138,202,.42);outline-offset:8px;border-radius:12px}\n.esah-cap-viewport{overflow:hidden;border-radius:12px;background:#fff;box-shadow:0 12px 36px rgba(20,32,54,.1)}\n.esah-cap-track{display:flex;align-items:stretch;transition:transform .65s cubic-bezier(.22,.61,.36,1);will-change:transform}\n.esah-cap-slide{flex:0 0 100%;box-sizing:border-box;padding:42px 44px;margin:0}\n.esah-cap-slide .esah-tab-cols{height:100%}\n.esah-cap-kicker{display:block;margin-bottom:10px;color:#2d8aca;font-family:'IBM Plex Mono',monospace;font-size:12px;font-weight:700;letter-spacing:1.3px;text-transform:uppercase}\n.esah-cap-arrow{position:absolute;top:50%;z-index:2;width:44px;height:44px;margin-top:-42px;border:1px solid #c9d6e4;border-radius:50%;background:#fff;color:#2c405e;font-size:20px;line-height:1;cursor:pointer;box-shadow:0 6px 18px rgba(20,32,54,.12);transition:transform .2s ease,background .2s ease,color .2s ease}\n.esah-cap-arrow:hover,.esah-cap-arrow:focus-visible{background:#2c405e;color:#fff;transform:scale(1.06);outline:none}\n.esah-cap-arrow.prev{left:0}\n.esah-cap-arrow.next{right:0}\n.esah-cap-nav{position:absolute;left:58px;right:58px;bottom:0;display:flex;align-items:center;justify-content:center;gap:18px}\n.esah-cap-count{color:#5a6b80;font-family:'IBM Plex Mono',monospace;font-size:12px;font-weight:600;letter-spacing:1px}\n.esah-cap-dots{display:flex;align-items:center;gap:8px}\n.esah-cap-dots button{width:28px;height:4px;padding:0;border:0;border-radius:99px;background:#c9d6e4;cursor:pointer;transition:width .25s ease,background .25s ease}\n.esah-cap-dots button.active{width:44px;background:#2d8aca}\n.esah-cap-dots button:focus-visible{outline:2px solid #2c405e;outline-offset:4px}\n@media(max-width:820px){\n  .esah-cap-carousel{padding:0 0 52px}\n  .esah-cap-slide{padding:30px 26px}\n  .esah-cap-arrow{top:auto;bottom:0;margin:0;width:40px;height:40px}\n  .esah-cap-arrow.prev{left:0}\n  .esah-cap-arrow.next{right:0}\n  .esah-cap-nav{left:48px;right:48px;bottom:12px;gap:10px}\n  .esah-cap-dots button{width:18px}\n  .esah-cap-dots button.active{width:30px}\n}\n@media(prefers-reduced-motion:reduce){.esah-cap-track{transition:none}}\n\n\/* Video gallery *\/\n.esah-vid-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(320px,1fr));gap:28px}\n.esah-vid-card{background:#fff;border-radius:10px;overflow:hidden;box-shadow:0 4px 16px rgba(20,32,54,.08);transition:transform .3s ease,box-shadow .3s ease}\n.esah-vid-card:hover{transform:translateY(-5px);box-shadow:0 16px 36px rgba(20,32,54,.16)}\n.esah-vid-card video{width:100%;aspect-ratio:16\/9;object-fit:cover;display:block;background:#0d1626}\n.esah-vid-body{padding:18px 20px 22px}\n.esah-vid-tag{display:inline-block;margin-bottom:8px;font-size:11px;font-weight:700;letter-spacing:1.2px;text-transform:uppercase;color:#2d8aca}\n.esah-vid-body h3{margin:0 0 6px;font-size:17px;color:#2c405e}\n.esah-vid-body p{margin:0;font-size:14px;color:#5a6b80;line-height:1.55}\n.esah-hidden{display:none!important}\n\n\/* Accordions *\/\n.esah-acc{background:#fff;border:1px solid #e1e8f0;border-radius:8px;margin-top:14px;overflow:hidden}\n.esah-acc summary{list-style:none;cursor:pointer;padding:14px 18px;font-weight:600;color:#2c405e;font-family:'IBM Plex Sans',sans-serif;font-size:14px;display:flex;justify-content:space-between;align-items:center;gap:12px;transition:background .2s}\n.esah-acc summary::-webkit-details-marker{display:none}\n.esah-acc summary::after{content:'+';font-size:20px;color:#2d8aca;transition:transform .25s;line-height:1;flex-shrink:0}\n.esah-acc[open] summary::after{transform:rotate(45deg)}\n.esah-acc summary:hover{background:#f4f7fa}\n.esah-acc-body{padding:2px 18px 16px;color:#42526b;font-size:14px;line-height:1.7}\n.esah-acc-body ul{margin:0;padding-left:18px}\n.esah-acc-body li{margin-bottom:6px}\n\n\/* Timeline *\/\n.esah-timeline{display:grid;grid-template-columns:repeat(4,1fr);position:relative;margin-top:52px}\n.esah-timeline::before{content:'';position:absolute;top:22px;left:12%;right:12%;height:2px;background:#c9d6e4}\n.esah-tl-step{text-align:center;padding:0 18px;position:relative}\n.esah-tl-dot{width:46px;height:46px;border-radius:50%;background:#fff;border:2px solid #2d8aca;color:#2d8aca;font-weight:700;font-family:'IBM Plex Sans',sans-serif;display:flex;align-items:center;justify-content:center;margin:0 auto 18px;position:relative;z-index:1;transition:all .3s ease}\n.esah-tl-step:hover .esah-tl-dot{background:#2d8aca;color:#fff;transform:scale(1.14);box-shadow:0 8px 20px rgba(45,138,202,.4)}\n.esah-tl-step h3{font-size:17px;color:#2c405e;margin:0 0 8px}\n.esah-tl-step p{font-size:14px;color:#5a6b80;margin:0;line-height:1.6}\n@media(max-width:820px){.esah-timeline{grid-template-columns:1fr;gap:32px}.esah-timeline::before{display:none}}\n\n\/* Testimonial slider v2 \u2014 dark glass cards *\/\n.esah-tslider{max-width:900px;margin:0 auto;position:relative}\n.esah-tviewport{overflow:hidden}\n.esah-ttrack{display:flex;transition:transform .6s cubic-bezier(.22,.8,.3,1)}\n.esah-tslide{flex:0 0 100%;box-sizing:border-box;padding:30px 8px 8px;margin:0}\n.esah-tcard{background:linear-gradient(160deg,#1b2740 0%,#14203a 100%)!important;border:1px solid rgba(143,195,232,.22)!important;border-radius:12px!important;position:relative;background:linear-gradient(165deg,rgba(255,255,255,.08) 0%,rgba(125,184,224,.05) 100%);border:1px solid rgba(125,184,224,.28);border-radius:16px;padding:44px 52px 36px;text-align:left}\n.esah-tcard::before{content:\"\\201C\";position:absolute;top:-34px;left:24px;font-family:Georgia,serif;font-size:110px;line-height:1;color:#2d8aca;text-shadow:0 4px 18px rgba(45,138,202,.4)}\n.esah-stars{color:#2d8aca;font-size:18px;letter-spacing:4px;margin-bottom:16px;text-shadow:0 1px 6px rgba(245,179,1,.4)}\n.esah-tslide blockquote{border:none;margin:0;padding:0;font-size:19px;line-height:1.65;color:#eaf2fa;font-style:italic;font-weight:500}\n.esah-tauthor{display:flex;align-items:center;gap:14px;margin-top:26px}\n.esah-tavatar{width:46px;height:46px;min-width:46px;border-radius:50%;background:linear-gradient(165deg,#46a2de,#2c5c86);color:#fff;font-family:'IBM Plex Sans',sans-serif;font-weight:800;display:inline-flex;align-items:center;justify-content:center;font-size:15px;line-height:46px;text-align:center;letter-spacing:.5px;flex-shrink:0;box-shadow:0 6px 16px rgba(45,138,202,.4)}\n.esah-tauthor strong{display:block;color:#fff;font-family:'IBM Plex Sans',sans-serif;font-size:15px}\n.esah-tauthor span{display:block;color:#9fb3cc;font-size:13px;margin-top:2px}\n.esah-agg-stars{color:#2d8aca;font-size:24px;letter-spacing:6px;text-shadow:0 1px 8px rgba(245,179,1,.4)}\n@keyframes esahTfill{from{transform:scaleX(0)}to{transform:scaleX(1)}}\n.esah-tstage{position:relative}\n.esah-tarrow{position:absolute;top:calc(50% + 11px);transform:translateY(-50%);z-index:2;width:46px;height:46px;padding:0;border-radius:50%;border:1px solid rgba(125,184,224,.35);background:rgba(26,41,66,.72);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);color:#eaf2fa;display:flex;align-items:center;justify-content:center;cursor:pointer;box-shadow:0 6px 18px rgba(10,18,32,.45);transition:background .2s ease,color .2s ease,border-color .2s ease,transform .2s ease}\n.esah-tarrow.prev{left:-15px}\n.esah-tarrow.next{right:-15px}\n.esah-tarrow:hover{background:#2d8aca;border-color:#2d8aca;color:#1a2942;transform:translateY(-50%) scale(1.06)}\n.esah-tarrow:focus-visible{outline:2px solid #2d8aca;outline-offset:3px}\n.esah-tslider .esah-dots{margin-top:26px;gap:10px}\n.esah-tslider .esah-dots button{box-sizing:content-box;width:9px;height:9px;border:6px solid transparent;background:rgba(255,255,255,.3);background-clip:padding-box}\n.esah-tslider .esah-dots button:hover{background:rgba(255,255,255,.55);background-clip:padding-box}\n.esah-tslider .esah-dots button.active{width:30px;background:rgba(255,255,255,.18);background-clip:padding-box;position:relative;overflow:hidden}\n.esah-tslider .esah-dots button.active::before{content:'';position:absolute;inset:0;border-radius:999px;background:#2d8aca;transform:scaleX(0);transform-origin:left}\n.esah-tslider .esah-dots button.active:not(.run)::before{transform:scaleX(1)}\n.esah-tslider .esah-dots button.active.run::before{animation:esahTfill 5s linear forwards}\n@media(max-width:700px){.esah-tarrow{display:none}}\n@media(max-width:640px){.esah-tcard{padding:34px 26px 28px}}\n\n\/* Pull quote *\/\n.esah-quote{max-width:760px;margin:0 auto;text-align:center}\n.esah-quote blockquote{font-family:'Fraunces',Georgia,serif;font-optical-sizing:none;font-size:clamp(19px,2.4vw,25px);font-weight:500;line-height:1.55;color:#2c405e;font-style:italic;margin:0;border:none;padding:0}\n.esah-quote .esah-quote-mark{font-size:64px;color:#2d8aca;font-family:Georgia,serif;line-height:0.5;display:block;margin-bottom:18px}\n.esah-quote cite{display:block;margin-top:20px;font-style:normal;font-size:14px;color:#5a6b80}\n.esah-quote cite strong{color:#2c405e}\n<\/style>\n<script>\n(function(){\n  \/* Tabs + filter pills (event delegation, works on any page) *\/\n  document.addEventListener('click', function(e){\n    var btn = e.target.closest('.esah-tab-btn');\n    if (btn) {\n      var tabs = btn.closest('.esah-tabs');\n      if (tabs) {\n        tabs.querySelectorAll('.esah-tab-btn').forEach(function(b){ b.classList.remove('active'); });\n        btn.classList.add('active');\n        var t = btn.getAttribute('data-tab');\n        tabs.querySelectorAll('.esah-tab-panel').forEach(function(p){\n          p.classList.toggle('active', p.getAttribute('data-tab') === t);\n        });\n      }\n      return;\n    }\n    var f = e.target.closest('.esah-filter-btn');\n    if (f) {\n      var wrap = f.closest('.esah-filter-wrap');\n      if (wrap) {\n        wrap.querySelectorAll('.esah-filter-btn').forEach(function(b){ b.classList.remove('active'); });\n        f.classList.add('active');\n        var cat = f.getAttribute('data-filter');\n        wrap.querySelectorAll('[data-cat]').forEach(function(card){\n          var hide = false;\n          if (cat !== 'all') hide = card.getAttribute('data-cat') !== cat;\n          card.classList.toggle('esah-hidden', hide);\n        });\n      }\n    }\n  });\n\n  \/* Click-to-copy *\/\n  document.addEventListener('click', function(e){\n    var c = e.target.closest('.esah-copy');\n    if (!c) return;\n    if (navigator.clipboard) {\n      navigator.clipboard.writeText(c.getAttribute('data-copy') || '').then(function(){\n        var old = c.textContent;\n        c.classList.add('copied'); c.textContent = 'Copied!';\n        setTimeout(function(){ c.classList.remove('copied'); c.textContent = old; }, 1600);\n      });\n    }\n  });\n\n  \/* Only one video playing at a time *\/\n  document.addEventListener('play', function(e){\n    if (e.target.tagName === 'VIDEO') {\n      document.querySelectorAll('video').forEach(function(v){ if (v !== e.target) v.pause(); });\n    }\n  }, true);\n\n  \/* Count-up stats when scrolled into view *\/\n  function animateCount(el){\n    var target = parseFloat(el.getAttribute('data-target')) || 0;\n    var suffix = el.getAttribute('data-suffix') || '';\n    var dur = 1600, start = null;\n    function step(ts){\n      if (!start) start = ts;\n      var p = Math.min((ts - start) \/ dur, 1);\n      p = 1 - Math.pow(1 - p, 3);\n      el.textContent = Math.round(target * p) + suffix;\n      if (p < 1) requestAnimationFrame(step);\n    }\n    requestAnimationFrame(step);\n  }\n  function initCounters(){\n    var els = document.querySelectorAll('.esah-count');\n    if (!els.length) return;\n    if ('IntersectionObserver' in window) {\n      var io = new IntersectionObserver(function(entries){\n        entries.forEach(function(en){\n          if (en.isIntersecting) { animateCount(en.target); io.unobserve(en.target); }\n        });\n      }, {threshold: 0.4});\n      els.forEach(function(el){ io.observe(el); });\n    } else {\n      els.forEach(function(el){ el.textContent = (el.getAttribute('data-target') || '0') + (el.getAttribute('data-suffix') || ''); });\n    }\n  }\n  \/* Team slider \u2014 lives here because inline scripts in page content get\n     entity-mangled by content filters. Written without double-ampersands defensively. *\/\n  function initSlider(){\n    var slider = document.querySelector('.esah-slider');\n    if (!slider) return;\n    var track = document.getElementById('esahTrack');\n    if (!track) return;\n    var slides = track.children.length, idx = 0, timer = null;\n    var dots = document.getElementById('esahDots');\n    var counter = document.getElementById('esahCounter');\n    function pad(n){ return ('0' + n).slice(-2); }\n    function render(){\n      track.style.transform = 'translateX(-' + (idx * 100) + '%)';\n      for (var j = 0; j < dots.children.length; j++) dots.children[j].className = (j === idx) ? 'active' : '';\n      if (counter) counter.textContent = pad(idx + 1) + ' \/ ' + pad(slides);\n    }\n    function go(i){ idx = ((i % slides) + slides) % slides; render(); }\n    var reduced = false;\n    if (window.matchMedia) reduced = matchMedia('(prefers-reduced-motion: reduce)').matches;\n    function start(){\n      if (timer) return;\n      if (reduced) return;\n      timer = setInterval(function(){ go(idx + 1); }, 6000);\n    }\n    function stop(){ clearInterval(timer); timer = null; }\n    function restart(){ stop(); start(); }\n    for (var i = 0; i < slides; i++) {\n      (function(i){\n        var b = document.createElement('button');\n        b.type = 'button';\n        b.setAttribute('aria-label', 'Go to consultant ' + (i + 1));\n        b.addEventListener('click', function(){ go(i); restart(); });\n        dots.appendChild(b);\n      })(i);\n    }\n    slider.querySelector('.esah-slider-btn.prev').addEventListener('click', function(){ go(idx - 1); restart(); });\n    slider.querySelector('.esah-slider-btn.next').addEventListener('click', function(){ go(idx + 1); restart(); });\n    slider.addEventListener('mouseenter', stop);\n    slider.addEventListener('mouseleave', start);\n    var x0 = null;\n    track.addEventListener('touchstart', function(e){ x0 = e.touches[0].clientX; stop(); }, {passive: true});\n    track.addEventListener('touchend', function(e){\n      if (x0 === null) return;\n      var dx = e.changedTouches[0].clientX - x0;\n      if (Math.abs(dx) > 40) go(idx + (dx < 0 ? 1 : -1));\n      x0 = null; start();\n    }, {passive: true});\n    slider.setAttribute('tabindex', '0');\n    slider.addEventListener('keydown', function(e){\n      if (e.key === 'ArrowLeft') { go(idx - 1); restart(); e.preventDefault(); }\n      else if (e.key === 'ArrowRight') { go(idx + 1); restart(); e.preventDefault(); }\n    });\n    render(); start();\n  }\n\n  \/* Testimonial slider v2: 5s autoplay, side arrows, progress fill in active dot, pause on hover and focus *\/\n  function initTslider(){\n    var root = document.getElementById('esahTslider');\n    if (!root) return;\n    var track = document.getElementById('esahTtrack');\n    var dots = document.getElementById('esahTdots');\n    var slides = track.children.length, idx = 0, timer = null, hovering = false, focused = false;\n    var reduced = false;\n    if (window.matchMedia) reduced = matchMedia('(prefers-reduced-motion: reduce)').matches;\n    function bar(on){\n      for (var j = 0; j < dots.children.length; j++) dots.children[j].classList.remove('run');\n      var d = dots.children[idx];\n      if (!d) return;\n      void d.offsetWidth;\n      if (on) d.classList.add('run');\n    }\n    function render(){\n      track.style.transform = 'translateX(-' + (idx * 100) + '%)';\n      for (var j = 0; j < dots.children.length; j++) dots.children[j].className = (j === idx) ? 'active' : '';\n    }\n    function go(i){ idx = ((i % slides) + slides) % slides; render(); }\n    function tick(){ go(idx + 1); bar(true); }\n    function start(){\n      if (timer) return;\n      if (hovering) return;\n      if (focused) return;\n      if (reduced) return;\n      timer = setInterval(tick, 5000);\n      bar(true);\n    }\n    function stop(){ clearInterval(timer); timer = null; bar(false); }\n    function restart(){ stop(); start(); }\n    for (var i = 0; i < slides; i++) {\n      (function(i){\n        var b = document.createElement('button');\n        b.type = 'button';\n        b.setAttribute('aria-label', 'Go to testimonial ' + (i + 1));\n        b.addEventListener('click', function(){ go(i); restart(); });\n        dots.appendChild(b);\n      })(i);\n    }\n    document.getElementById('esahTprev').addEventListener('click', function(){ go(idx - 1); restart(); });\n    document.getElementById('esahTnext').addEventListener('click', function(){ go(idx + 1); restart(); });\n    root.addEventListener('mouseenter', function(){ hovering = true; stop(); });\n    root.addEventListener('mouseleave', function(){ hovering = false; start(); });\n    root.addEventListener('focusin', function(){ focused = true; stop(); });\n    root.addEventListener('focusout', function(){ focused = false; start(); });\n    var x0 = null;\n    track.addEventListener('touchstart', function(e){ x0 = e.touches[0].clientX; stop(); }, {passive: true});\n    track.addEventListener('touchend', function(e){\n      if (x0 === null) return;\n      var dx = e.changedTouches[0].clientX - x0;\n      if (Math.abs(dx) > 40) go(idx + (dx < 0 ? 1 : -1));\n      x0 = null; start();\n    }, {passive: true});\n    render(); start();\n  }\n\n  \/* ML Top-Down capability carousel: autoplay, arrows, dots, keyboard and swipe *\/\n  function initCapabilityCarousels(){\n    document.querySelectorAll('.esah-cap-carousel').forEach(function(root){\n      var track = root.querySelector('.esah-cap-track');\n      var dots = root.querySelector('.esah-cap-dots');\n      var counter = root.querySelector('.esah-cap-count');\n      if (!track) return;\n      if (!dots) return;\n      var slides = track.children.length;\n      if (!slides) return;\n      var idx = 0, timer = null, hovering = false, focused = false;\n      var reduced = false;\n      if (window.matchMedia) reduced = matchMedia('(prefers-reduced-motion: reduce)').matches;\n      function pad(n){ return ('0' + n).slice(-2); }\n      function render(){\n        track.style.transform = 'translateX(-' + (idx * 100) + '%)';\n        for (var j = 0; j < dots.children.length; j++) {\n          var active = j === idx;\n          dots.children[j].classList.toggle('active', active);\n          dots.children[j].setAttribute('aria-current', active ? 'true' : 'false');\n        }\n        if (counter) counter.textContent = pad(idx + 1) + ' \/ ' + pad(slides);\n      }\n      function go(i){ idx = ((i % slides) + slides) % slides; render(); }\n      function start(){\n        if (timer) return;\n        if (hovering) return;\n        if (focused) return;\n        if (reduced) return;\n        timer = setInterval(function(){ go(idx + 1); }, 5500);\n      }\n      function stop(){ clearInterval(timer); timer = null; }\n      function restart(){ stop(); start(); }\n      for (var i = 0; i < slides; i++) {\n        (function(n){\n          var b = document.createElement('button');\n          b.type = 'button';\n          b.setAttribute('aria-label', 'Go to capability ' + (n + 1));\n          b.addEventListener('click', function(){ go(n); restart(); });\n          dots.appendChild(b);\n        })(i);\n      }\n      root.querySelector('.esah-cap-arrow.prev').addEventListener('click', function(){ go(idx - 1); restart(); });\n      root.querySelector('.esah-cap-arrow.next').addEventListener('click', function(){ go(idx + 1); restart(); });\n      root.addEventListener('mouseenter', function(){ hovering = true; stop(); });\n      root.addEventListener('mouseleave', function(){ hovering = false; start(); });\n      root.addEventListener('focusin', function(){ focused = true; stop(); });\n      root.addEventListener('focusout', function(){ focused = false; start(); });\n      root.addEventListener('keydown', function(e){\n        if (e.key === 'ArrowLeft') { go(idx - 1); restart(); e.preventDefault(); }\n        else if (e.key === 'ArrowRight') { go(idx + 1); restart(); e.preventDefault(); }\n      });\n      var x0 = null;\n      track.addEventListener('touchstart', function(e){ x0 = e.touches[0].clientX; stop(); }, {passive:true});\n      track.addEventListener('touchend', function(e){\n        if (x0 === null) return;\n        var dx = e.changedTouches[0].clientX - x0;\n        if (Math.abs(dx) > 40) go(idx + (dx < 0 ? 1 : -1));\n        x0 = null; start();\n      }, {passive:true});\n      render(); start();\n    });\n  }\n\n  function initAll(){ initCounters(); initSlider(); initTslider(); initCapabilityCarousels(); }\n  if (document.readyState === 'loading') document.addEventListener('DOMContentLoaded', initAll);\n  else initAll();\n})();\n<\/script>\n\n\n\n<style>\n.esah-annlist { max-width: 830px; margin: 0 auto; }\n.esah-annlist .wp-block-post { background: #ffffff; border-left: 4px solid #2d8aca; border-radius: 8px; box-shadow: 0 4px 16px rgba(20,32,54,.08); padding: 22px 26px; margin: 0 0 18px; list-style: none; }\n.esah-annlist .wp-block-post-date { color: #2d8aca; font-size: 12px; font-weight: 700; letter-spacing: 1px; text-transform: uppercase; margin-bottom: 6px; }\n.esah-annlist .wp-block-post-title { color: #2c405e; font-size: 19px; margin: 0 0 8px; }\n.esah-annlist .wp-block-post-content p { font-size: 15px; margin: 0 0 8px; }\n.esah-pmedia-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(300px, 1fr)); gap: 24px; max-width: 1080px; margin: 28px auto 0; }\n.esah-pmedia-card { background: #ffffff; border: 1px solid #dbe5ef; border-radius: 10px; overflow: hidden; box-shadow: 0 6px 18px rgba(20,32,54,.08); text-align: left; }\n.esah-pmedia-card video { width: 100%; display: block; background: #121c2e; aspect-ratio: 16 \/ 9; }\n.esah-pmedia-meta { padding: 14px 18px; }\n.esah-pmedia-meta strong { display: block; font-size: 15px; color: #2c405e; overflow-wrap: anywhere; }\n.esah-pmedia-meta span { font-size: 12px; color: #5a6b80; letter-spacing: .5px; }\n.esah-pdoc-list { max-width: 830px; margin: 28px auto 0; }\n.esah-pdoc-card { background: #ffffff; border: 1px solid #dbe5ef; border-left: 4px solid #2d8aca; border-radius: 8px; box-shadow: 0 4px 16px rgba(20,32,54,.08); padding: 16px 22px; margin-bottom: 14px; display: flex; align-items: center; justify-content: space-between; gap: 16px; flex-wrap: wrap; text-align: left; }\n.esah-pdoc-card a.esah-pdoc-open { background: #2d8aca; color: #fff; border-radius: 4px; padding: 9px 20px; font-size: 13px; font-weight: 600; text-decoration: none; }\n<\/style>\n<script>\n(function(){\n  function ready(fn){\n    if (document.readyState === 'loading') { document.addEventListener('DOMContentLoaded', fn); }\n    else { fn(); }\n  }\n  ready(function(){\n    var vidsEl = document.getElementById('esahPortalVideos');\n    var docsEl = document.getElementById('esahPortalDocs');\n    if (!vidsEl) { if (!docsEl) { return; } }\n    var base = '\/staging\/8288\/wp-json\/wp\/v2\/media';\n    function fetchList(params){\n      var q = new URLSearchParams(params);\n      q.set('per_page', '100');\n      q.set('orderby', 'date');\n      q.set('order', 'desc');\n      q.set('_fields', 'id,source_url,mime_type,title,date,media_type');\n      var opts = {};\n      if (window.esahUser) {\n        if (window.esahUser.restNonce) { opts.headers = {'X-WP-Nonce': window.esahUser.restNonce}; }\n      }\n      return fetch(base + '?' + q.toString(), opts)\n        .then(function(r){ return r.ok ? r.json() : []; })\n        .catch(function(){ return []; });\n    }\n    function fmtDate(s){\n      var d = new Date(s);\n      var months = ['January','February','March','April','May','June','July','August','September','October','November','December'];\n      return months[d.getMonth()] + ' ' + d.getDate() + ', ' + d.getFullYear();\n    }\n    function cleanTitle(t){\n      return t.replace(\/^portal[-_ ]*\/i, '').replace(\/[-_]+\/g, ' ').trim() || 'Untitled';\n    }\n    function merged(kind){\n      return Promise.all([\n        fetchList({media_type: kind, parent: '329'}),\n        fetchList({media_type: kind, search: 'portal'})\n      ]).then(function(res){\n        var seen = {}; var out = [];\n        res[0].concat(res[1]).forEach(function(m){\n          if (seen[m.id]) { return; }\n          seen[m.id] = true;\n          var isPortal = false;\n          if (m.title) { if (\/^portal\/i.test(m.title.rendered)) { isPortal = true; } }\n          if (res[0].some(function(p){ return p.id === m.id; })) { isPortal = true; }\n          if (isPortal) { out.push(m); }\n        });\n        out.sort(function(a, b){ return a.date < b.date ? 1 : -1; });\n        return out;\n      });\n    }\n    if (vidsEl) {\n      merged('video').then(function(items){\n        if (!items.length) { return; }\n        var grid = document.createElement('div');\n        grid.className = 'esah-pmedia-grid';\n        items.forEach(function(m){\n          var card = document.createElement('div');\n          card.className = 'esah-pmedia-card';\n          var v = document.createElement('video');\n          v.controls = true; v.preload = 'metadata'; v.src = m.source_url;\n          var meta = document.createElement('div');\n          meta.className = 'esah-pmedia-meta';\n          meta.innerHTML = '<strong><\/strong><span><\/span>';\n          meta.querySelector('strong').textContent = cleanTitle(m.title.rendered);\n          meta.querySelector('span').textContent = fmtDate(m.date);\n          card.appendChild(v); card.appendChild(meta);\n          grid.appendChild(card);\n        });\n        vidsEl.innerHTML = '';\n        vidsEl.appendChild(grid);\n      });\n    }\n    if (docsEl) {\n      merged('application').then(function(items){\n        if (!items.length) { return; }\n        var list = document.createElement('div');\n        list.className = 'esah-pdoc-list';\n        items.forEach(function(m){\n          var card = document.createElement('div');\n          card.className = 'esah-pdoc-card';\n          var meta = document.createElement('div');\n          meta.className = 'esah-pmedia-meta';\n          meta.style.padding = '0';\n          meta.innerHTML = '<strong><\/strong><span><\/span>';\n          meta.querySelector('strong').textContent = cleanTitle(m.title.rendered);\n          meta.querySelector('span').textContent = fmtDate(m.date);\n          var a = document.createElement('a');\n          a.className = 'esah-pdoc-open';\n          a.href = m.source_url; a.target = '_blank'; a.rel = 'noopener';\n          a.textContent = 'Open';\n          card.appendChild(meta); card.appendChild(a);\n          list.appendChild(card);\n        });\n        docsEl.innerHTML = '';\n        docsEl.appendChild(list);\n      });\n    }\n  });\n})();\n<\/script>\n\n\n\n<style>\n\/* ============ CLONE RESKIN: dropdowns, buttons, kickers, footer ============ *\/\n\/* Dropdown panels styled like the clone's floating card (desktop only) *\/\n\/* caret: override the theme's FontAwesome \\f0d7 indicator entirely *\/\n#header .header-links>ul>li.menu-parent>a::after,\n#header-links .menu>li.menu-item-has-children>a::after{content:\"\"!important;font-family:inherit!important;padding-left:0!important;display:inline-block;width:6px;height:6px;border-right:1.6px solid currentColor;border-bottom:1.6px solid currentColor;transform:rotate(45deg);margin-left:7px;vertical-align:middle;position:relative;top:-2px;transition:transform .25s}\n#header .header-links>ul>li.menu-parent:hover>a::after,\n#header-links .menu>li.menu-item-has-children:hover>a::after{transform:rotate(225deg)}\n@media (min-width:1101px){\n#header-links .menu li{position:relative}\n#header-links .menu li ul.sub-menu{position:absolute;top:100%;left:50%;transform:translate(-50%,16px);background:#fff;border:1px solid #c9d6e4;border-radius:10px;box-shadow:0 18px 44px rgba(20,32,54,.18);padding:8px;min-width:210px;opacity:0;visibility:hidden;transition:opacity .18s ease,transform .22s cubic-bezier(.16,1,.3,1),visibility .18s;z-index:70;margin:0}\n#header-links .menu li ul.sub-menu::before{content:'';position:absolute;top:-6px;left:50%;margin-left:-5px;width:10px;height:10px;background:#fff;border-left:1px solid #c9d6e4;border-top:1px solid #c9d6e4;transform:rotate(45deg)}\n#header-links .menu li:hover>ul.sub-menu,#header-links .menu li:focus-within>ul.sub-menu{opacity:1;visibility:visible;transform:translate(-50%,8px)}\n#header-links .menu li ul.sub-menu li{white-space:nowrap;width:100%}\n#header-links .menu li ul.sub-menu li a{display:block;width:100%;padding:11px 16px!important;border-radius:7px;font-size:12.5px!important}\n#header-links .menu li ul.sub-menu li a:hover{background:#eaf2fa!important;color:#1f6fa8!important}\n#header-links .menu li ul.sub-menu li a span::after{display:none}\n\/* dropdown open\/close animates (theme toggles display; keep block so opacity\/transform run) *\/\n#header .header-links ul.sub-menu{display:block!important}\n\/* dropdown item typography matching clone *\/\n#header .header-links .sub-menu li{padding:0;transition:none;float:none}\n#header .header-links .sub-menu a{text-transform:uppercase;font-weight:600;line-height:1.5;letter-spacing:1.4px;color:#2c405e}\n\/* hide theme's mobile toggle container on desktop (36px phantom flex child) *\/\n#header-nav{display:none!important}}\n@media (max-width:1100px) and (min-width:769px){\n#header-core{flex-wrap:wrap;justify-content:center;gap:8px;padding:12px 20px}\n#header-links{flex:1 1 100%}\n#header-links .menu{flex-wrap:wrap;justify-content:center}\n}\n\n\/* Buttons: clone geometry and shine *\/\n#main-core .wp-block-button__link{font-family:'IBM Plex Sans',sans-serif!important;font-weight:600!important;font-size:14px!important;letter-spacing:.3px;padding:13px 30px!important;border-radius:4px!important}\n#main-core .wp-block-button__link[style*=\"background-color:#2d8aca\"]{background:linear-gradient(165deg,#46a2de 0%,#2d8aca 100%)!important;border:none!important}\n#main-core .wp-block-button__link[style*=\"background-color:#2d8aca\"]:hover{background:linear-gradient(165deg,#5bb0e6 0%,#3a97d6 100%)!important;box-shadow:0 10px 24px rgba(45,138,202,.35)}\n\n\/* Kickers: IBM Plex Mono like the clone *\/\n#main-core p[style*=\"text-transform:uppercase\"]{font-family:'IBM Plex Mono',monospace!important;letter-spacing:2.5px!important;font-weight:600!important}\n\n\/* Cards: gold-to-blue top line on hover, clone-style *\/\n.esah-card{position:relative;border:1px solid #c9d6e4}\n.esah-card::before{content:'';position:absolute;top:0;left:0;right:0;height:3px;background:#2d8aca;border-radius:8px 8px 0 0;transform:scaleX(0);transform-origin:left;transition:transform .35s cubic-bezier(.16,1,.3,1)}\n.esah-card:hover::before{transform:scaleX(1)}\n.esah-card:hover{transform:translateY(-6px);box-shadow:0 20px 44px rgba(20,32,54,.12),0 0 0 1px #c9d6e4}\n\n\/* Footer: clone's dark band (content injected via footer widget) *\/\nfooter #footer{background:#0b1322!important;border-top:2px solid #2d8aca;color:rgba(250,247,240,.72);padding:48px 24px 36px;font-size:14px}\nfooter #footer-core{max-width:1180px;margin:0 auto;padding:0}\nfooter #footer .widget{margin:0;padding:0;float:none;width:100%}\nfooter #footer .widget-title{display:none}\n.esah-footer-inner{display:flex;flex-wrap:wrap;gap:24px;align-items:center;justify-content:space-between;color:rgba(250,247,240,.72)}\n.esah-footer-inner strong{color:#fff}\n.esah-footer-inner .footer-links{display:flex;gap:20px;flex-wrap:wrap}\n.esah-footer-inner .footer-links a{color:#8fc3e8;text-decoration:none;transition:color .2s}\n.esah-footer-inner .footer-links a:hover{color:#2d8aca}\n\n\/* Star ratings: clone blue *\/\n.esah-agg-stars,.esah-stars{color:#2d8aca!important;letter-spacing:4px;text-shadow:0 1px 6px rgba(45,138,202,.4)}\n<\/style>\n\n\n\n<script>\n(function(){\n  function ready(fn){\n    if (document.readyState === 'loading') { document.addEventListener('DOMContentLoaded', fn); }\n    else { fn(); }\n  }\n  ready(function(){\n    var core = document.getElementById('sub-footer-core');\n    if (!core) { return; }\n    var dash = String.fromCharCode(8212);\n    core.innerHTML = '<div class=\"esah-footer-inner\">' +\n      '<div><strong>ESAH, Inc.<\/strong> ' + dash + ' Expert SAP Help. Founded in Orlando in 2000.<\/div>' +\n      '<div class=\"footer-links\">' +\n      '<a href=\"\/staging\/8288\/contact\/\">Contact<\/a>' +\n      '<a href=\"mailto:jhurtado@esah.com\">jhurtado@esah.com<\/a>' +\n      '<a href=\"tel:+14075389186\">(407) 538-9186<\/a>' +\n      '<\/div><\/div>';\n  });\n})();\n<\/script>\n\n\n\n<style>\n\/* ============ AUDIT ROUND 2: sizes, bands, hero, portal ============ *\/\n\/* Section heading scale to match clone (overrides stale inline sizes) *\/\n#main-core h2.wp-block-heading:not([style*=\"font-size\"]){font-size:clamp(30px,3.8vw,44px)}\n#main-core h1:not([style*=\"font-size\"]){font-size:clamp(36px,5vw,60px);line-height:1.1}\n\/* Home hero mega + gradient SAP + tagline *\/\n#main-core h1.esah-hero-mega{font-size:clamp(52px,8vw,104px)!important;line-height:1.04!important;letter-spacing:-0.015em!important}\n.esah-grad{background:linear-gradient(115deg,#8fc3e8 0%,#46a2de 55%,#2d8aca 100%);-webkit-background-clip:text;background-clip:text;-webkit-text-fill-color:transparent;color:#46a2de}\n.esah-tagline{font-family:'Fraunces',Georgia,serif!important;font-optical-sizing:none;font-style:italic;font-weight:500;font-size:clamp(19px,2.4vw,27px);color:#8fc3e8!important}\n\/* Hero ambience: dot grid *\/\n.wp-block-cover .esah-hero-fx{position:absolute;inset:0;background-image:radial-gradient(rgba(143,195,232,.10) 1px,transparent 1.5px);background-size:28px 28px;pointer-events:none}\n\/* Measure: hero subs and wide rows match clone containers *\/\n.esah-hero-sub{max-width:880px;margin-left:auto!important;margin-right:auto!important}\n#main-core .alignwide{max-width:1180px;margin-left:auto;margin-right:auto}\n\/* Dark bands: flat navy -> clone ink gradients (covers all instances) *\/\n#main-core .wp-block-group[style*=\"background-color:#1a2942\"]{background:linear-gradient(160deg,#16233c 0%,#10192b 60%,#0b1322 100%)!important}\n#main-core .wp-block-group[style*=\"background-color:#2c405e\"]{background:linear-gradient(160deg,#16233c 0%,#10192b 70%,#0b1322 100%)!important}\n#main-core .wp-block-column[style*=\"background-color:#22334f\"]{background:#1b2740!important}\n#main-core .wp-block-column[style*=\"background-color:#2c405e\"]{background:linear-gradient(160deg,#1b2740 0%,#14203a 100%)!important}\n#main-core .wp-block-column.esah-card[style*=\"background-color:#f4f7fa\"]{background:#fff!important}\n\/* Partner app badge *\/\n.esah-app-badge{width:44px;height:44px;border-radius:10px;background:linear-gradient(165deg,#46a2de,#1f6fa8);color:#fff;font-weight:700;font-size:15px;letter-spacing:.5px;display:flex;align-items:center;justify-content:center;margin:2px 0 14px;box-shadow:0 8px 22px rgba(45,138,202,.4)}\n.esah-chips{display:flex;gap:8px;flex-wrap:wrap}\n\/* Buttons\/tabs: no theme uppercase *\/\n.esah-copy,.esah-tab-btn,.esah-filter-btn{text-transform:none;letter-spacing:.4px}\n\/* Portal: align static welcome card with query cards; author in date line *\/\n.esah-announcement{max-width:830px;margin-left:auto!important;margin-right:auto!important}\n.esah-annlist .wp-block-post-date,.esah-annlist .wp-block-post-author-name{display:inline-block;color:#2d8aca;font-size:12px;font-weight:700;letter-spacing:1px;text-transform:uppercase;margin-bottom:6px}\n.esah-annlist .wp-block-post-author-name::before{content:\"\\2014\\00a0\";margin-left:4px}\n.esah-annlist ul.wp-block-post-template,.esah-annlist .wp-block-post-template{list-style:none;margin:0;padding:0}\n\/* Sign out *\/\n.esah-admin-card{display:none}\n.esah-signout{display:inline-block;text-decoration:none;background:transparent;border:1px solid rgba(255,255,255,.55);color:#fff;border-radius:4px;padding:9px 22px;font-family:'IBM Plex Sans',sans-serif;font-size:13px;font-weight:600;letter-spacing:.4px;cursor:pointer;transition:background .2s,transform .2s}\n.esah-signout:hover{background:rgba(255,255,255,.12);transform:translateY(-1px)}\n<\/style>\n<script>\n(function(){\n  function ready(fn){\n    if (document.readyState === 'loading') { document.addEventListener('DOMContentLoaded', fn); }\n    else { fn(); }\n  }\n  ready(function(){\n    window.addEventListener('scroll', function(){\n      document.body.classList.toggle('esah-scrolled', window.scrollY > 8);\n    }, {passive: true});\n    if (window.esahUser) {\n      var h1 = document.querySelector('.wp-block-cover h1');\n      if (h1) { h1.textContent = 'Welcome back, ' + window.esahUser.name.split(' ')[0]; }\n      if (window.esahUser.admin) {\n        var card = document.querySelector('.esah-admin-card');\n        if (card) { card.style.display = 'block'; }\n      }\n    }\n  });\n})();\n<\/script>\n\n\n\n<style>\n\/* ============ AUDIT ROUND 3 ============ *\/\n#header-links .menu>li.menu-item-has-children>a::after{position:relative;top:-2px;vertical-align:middle}\n.wp-block-cover .esah-hero-fx::before,.wp-block-cover .esah-hero-fx::after{content:'';position:absolute;width:58vw;height:58vw;min-width:480px;min-height:480px;border-radius:50%;filter:blur(90px);pointer-events:none}\n.wp-block-cover .esah-hero-fx::before{background:radial-gradient(circle,rgba(45,138,202,.16),transparent 65%);top:-22vw;right:-16vw}\n.wp-block-cover .esah-hero-fx::after{background:radial-gradient(circle,rgba(31,111,168,.14),transparent 65%);bottom:-24vw;left:-14vw}\n.esah-feature-word{font-family:'Fraunces',Georgia,serif!important;font-optical-sizing:none;font-weight:600!important}\n.esah-link-anim{position:relative;text-decoration:none;font-weight:600}\n.esah-link-anim::after{content:'';position:absolute;left:0;bottom:-3px;width:100%;height:2px;background:#2d8aca;border-radius:2px;transform:scaleX(0);transform-origin:left;transition:transform .28s cubic-bezier(.16,1,.3,1)}\n.esah-link-anim:hover::after{transform:scaleX(1)}\n#main-core figure.wp-block-embed.esah-demo-video{max-width:960px;margin:48px auto;border-radius:10px;overflow:hidden;box-shadow:0 8px 28px rgba(20,32,54,.1);border:1px solid #c9d6e4}\n.esah-pdoc-card{padding:10px 22px}\n.esah-pmedia-grid{grid-template-columns:repeat(auto-fill,minmax(320px,1fr))}\n.esah-pmedia-meta span{font-family:'IBM Plex Mono',monospace}\n<\/style>\n\n\n\n\n<div class=\"wp-block-group alignfull has-background\" style=\"background-color:#2c405e;padding-top:88px;padding-right:24px;padding-bottom:88px;padding-left:24px\"><div class=\"wp-block-group__inner-container is-layout-constrained wp-container-core-group-is-layout-b70c5f43 wp-block-group-is-layout-constrained\">\n<p class=\"has-text-align-center has-text-color wp-block-paragraph\" style=\"color:#8fc3e8;font-size:13px;font-style:normal;font-weight:600;letter-spacing:1.5px;text-transform:uppercase\">Updates<\/p>\n\n\n\n<h1 class=\"wp-block-heading has-text-align-center has-white-color has-text-color\" style=\"margin-top:12px;margin-bottom:16px\">Latest News<\/h1>\n\n\n\n<p class=\"has-text-align-center has-white-color has-text-color wp-block-paragraph\">Insights and updates from the SAP costing space.<\/p>\n<\/div><\/div>\n\n\n\n<div class=\"wp-block-group alignfull\" style=\"padding-top:64px;padding-right:24px;padding-bottom:24px;padding-left:24px\"><div class=\"wp-block-group__inner-container is-layout-constrained wp-container-core-group-is-layout-c9b976b9 wp-block-group-is-layout-constrained\">\n<div class=\"wp-block-query alignwide is-layout-flow wp-block-query-is-layout-flow\">\n\n<div class=\"wp-block-query-no-results\">\n\n<p class=\"has-text-align-center wp-block-paragraph\">Articles are on the way \u2014 check back soon. In the meantime, follow <a href=\"https:\/\/www.linkedin.com\/in\/jersonhurtado\/\" target=\"_blank\" rel=\"noreferrer noopener\">Jerson on LinkedIn<\/a> for the latest posts.<\/p>\n\n<\/div>\n\n<\/div>\n<\/div><\/div>\n\n\n\n<div class=\"wp-block-group alignfull\" style=\"padding-top:24px;padding-right:24px;padding-bottom:80px;padding-left:24px\"><div class=\"wp-block-group__inner-container is-layout-constrained wp-container-core-group-is-layout-e2f18a63 wp-block-group-is-layout-constrained\">\n<div class=\"wp-block-columns alignwide esah-reveal is-layout-flex wp-container-core-columns-is-layout-36dc6899 wp-block-columns-is-layout-flex\">\n<div class=\"wp-block-column esah-card has-background is-layout-flow wp-block-column-is-layout-flow\" style=\"border-radius:8px;background-color:#f4f7fa;padding-top:36px;padding-right:32px;padding-bottom:36px;padding-left:32px\">\n<h3 class=\"wp-block-heading has-text-color\" style=\"color:#2c405e;font-size:22px\">Podcasts<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\" style=\"font-size:15px\">Conversations on SAP costing \u2014 from the people who live it.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><a class=\"esah-link-anim\" href=\"\/staging\/8288\/updates\/podcasts\/\">Go to Podcasts \u2192<\/a><\/p>\n<\/div>\n\n\n\n<div class=\"wp-block-column esah-card has-background is-layout-flow wp-block-column-is-layout-flow\" style=\"border-radius:8px;background-color:#f4f7fa;padding-top:36px;padding-right:32px;padding-bottom:36px;padding-left:32px\">\n<h3 class=\"wp-block-heading has-text-color\" style=\"color:#2c405e;font-size:22px\">Events<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\" style=\"font-size:15px\">Where to find ESAH \u2014 conferences, webinars and workshops.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><a class=\"esah-link-anim\" href=\"\/staging\/8288\/updates\/events\/\">Go to Events \u2192<\/a><\/p>\n<\/div>\n<\/div>\n<\/div><\/div>\n\n","protected":false},"excerpt":{"rendered":"<p>Updates Latest News Insights and updates from the SAP costing space. Podcasts Conversations on SAP costing \u2014 from the people who live it. Go to Podcasts \u2192 Events Where to find ESAH \u2014 conferences, webinars and workshops. Go to Events \u2192<\/p>\n","protected":false},"author":1,"featured_media":0,"parent":0,"menu_order":0,"comment_status":"closed","ping_status":"closed","template":"","meta":{"nf_dc_page":"","footnotes":""},"class_list":["post-188","page","type-page","status-publish","hentry"],"_links":{"self":[{"href":"https:\/\/www.esah.com\/staging\/8288\/wp-json\/wp\/v2\/pages\/188","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.esah.com\/staging\/8288\/wp-json\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/www.esah.com\/staging\/8288\/wp-json\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/www.esah.com\/staging\/8288\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.esah.com\/staging\/8288\/wp-json\/wp\/v2\/comments?post=188"}],"version-history":[{"count":10,"href":"https:\/\/www.esah.com\/staging\/8288\/wp-json\/wp\/v2\/pages\/188\/revisions"}],"predecessor-version":[{"id":412,"href":"https:\/\/www.esah.com\/staging\/8288\/wp-json\/wp\/v2\/pages\/188\/revisions\/412"}],"wp:attachment":[{"href":"https:\/\/www.esah.com\/staging\/8288\/wp-json\/wp\/v2\/media?parent=188"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}