:root{
  --navy:#0D1B38;
  --blue:#1677FF;
  --cyan:#00B2E3;
  --gold:#F2B705;
  --cloud:#F7F9FC;
  --soft:#EEF2F6;
  --slate:#334155;
  --muted:#64748B;
  --line:#D9E2EF;
  --white:#FFFFFF;
  --ink:#071124;
  --shadow:0 18px 45px rgba(13,27,56,.10);
  --shadow-soft:0 12px 30px rgba(13,27,56,.08);
  --radius:18px;
  --max:1180px;
  --display: Georgia, 'Times New Roman', serif;
  --sans: Inter, ui-sans-serif, system-ui, -apple-system, Segoe UI, Roboto, Helvetica, Arial, sans-serif;
}
*{box-sizing:border-box}
html{scroll-behavior:smooth}
body{margin:0;background:var(--cloud);color:var(--navy);font-family:var(--sans);line-height:1.58;-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility}
a{color:inherit;text-decoration:none}
img{max-width:100%;display:block}
.container{width:min(var(--max),calc(100% - 48px));margin-inline:auto}
.site-header{position:sticky;top:0;z-index:99;background:rgba(247,249,252,.92);backdrop-filter:blur(18px);border-bottom:1px solid rgba(217,226,239,.84)}
.nav{height:76px;display:flex;align-items:center;justify-content:space-between;gap:24px}
.brand{display:flex;align-items:center;gap:10px}.brand img{width:168px;height:auto}.nav-links{display:flex;align-items:center;gap:28px;font-size:14px;font-weight:650}.nav-links a{position:relative;color:var(--navy)}.nav-links a:not(.nav-cta)::after{content:"";position:absolute;left:0;right:0;bottom:-27px;height:3px;background:transparent}.nav-links a.active::after,.nav-links a:hover::after{background:var(--blue)}.nav-cta{background:var(--blue);color:white!important;border-radius:7px;padding:12px 18px;box-shadow:0 8px 20px rgba(22,119,255,.20)}.menu-toggle{display:none;background:transparent;border:1px solid var(--line);border-radius:9px;padding:9px 12px;color:var(--navy);font-weight:800}
.kicker,.eyebrow{font-size:12px;letter-spacing:.18em;text-transform:uppercase;color:var(--blue);font-weight:800}.eyebrow.gold{color:var(--gold)}
h1,h2,h3{line-height:1.06;margin:0;color:var(--navy)}
h1,h2{font-family:var(--display);font-weight:500;letter-spacing:-.03em}.sans-display{font-family:var(--sans);font-weight:800;letter-spacing:-.055em}.hero-title{font-size:clamp(54px,7vw,104px);line-height:.98}.hero-title.one-line{font-size:clamp(42px,5.6vw,82px);white-space:nowrap}.blue{color:var(--blue)}.gold-text{color:var(--gold)}
h2{font-size:clamp(34px,4vw,62px)}h3{font-family:var(--display);font-size:28px;font-weight:500}p{margin:0}.lead{font-size:clamp(18px,1.4vw,22px);color:var(--slate);max-width:680px}.text-xl{font-size:clamp(20px,2vw,28px);line-height:1.35;color:var(--navy)}.small{font-size:14px;color:var(--muted)}
.actions{display:flex;align-items:center;gap:14px;flex-wrap:wrap;margin-top:30px}.btn{display:inline-flex;align-items:center;justify-content:center;border-radius:7px;padding:13px 20px;font-weight:800;font-size:14px;border:1px solid var(--line);transition:.22s ease}.btn.primary{background:var(--blue);color:white;border-color:var(--blue)}.btn.secondary{background:white;color:var(--navy)}.btn.gold{background:var(--gold);color:var(--navy);border-color:var(--gold)}.btn:hover{transform:translateY(-2px);box-shadow:var(--shadow-soft)}.text-link{font-weight:850;color:var(--blue)}.section{padding:86px 0}.section.white{background:white}.section.soft{background:var(--soft)}.section.compact{padding:58px 0}.section-head{display:flex;align-items:end;justify-content:space-between;gap:22px;margin-bottom:34px}.section-head p{max-width:620px;color:var(--slate);margin-top:14px}.rule{height:1px;background:var(--line);margin:34px 0}
/* Home */
.hero-editorial{position:relative;overflow:hidden;background:linear-gradient(105deg,#fff 0%,#F7F9FC 58%,#EEF6FF 100%);padding:74px 0 82px}.hero-editorial::before{content:"";position:absolute;inset:0;background:radial-gradient(circle at 76% 28%,rgba(22,119,255,.14),transparent 34%),radial-gradient(circle at 12% 78%,rgba(0,178,227,.09),transparent 32%);pointer-events:none}.hero-editorial .container{position:relative;display:grid;grid-template-columns:minmax(0,1.05fr) minmax(360px,.95fr);gap:48px;align-items:center}.home-hero-copy .kicker{margin-bottom:18px}.home-hero-copy .lead{margin-top:22px}.service-visual{background:rgba(255,255,255,.78);border:1px solid var(--line);border-radius:28px;box-shadow:var(--shadow);padding:26px;position:relative;overflow:hidden}.service-visual::before{content:"";position:absolute;inset:auto -70px -70px auto;width:250px;height:250px;border-radius:50%;background:radial-gradient(circle,rgba(22,119,255,.20),transparent 68%)}.visual-top{display:flex;align-items:center;justify-content:space-between;margin-bottom:22px;position:relative}.mini-logo{display:flex;align-items:center;gap:12px;font-weight:900;letter-spacing:.02em}.mini-logo svg{width:38px}.aidlc-mini{display:grid;grid-template-columns:repeat(7,1fr);gap:7px;margin:22px 0 24px}.aidlc-mini span{height:8px;border-radius:999px;background:#D8E7FF}.aidlc-mini span:nth-child(1),.aidlc-mini span:nth-child(2){background:var(--navy)}.aidlc-mini span:nth-child(3),.aidlc-mini span:nth-child(4){background:var(--blue)}.aidlc-mini span:nth-child(5){background:var(--cyan)}.aidlc-mini span:nth-child(6){background:var(--gold)}.aidlc-mini span:nth-child(7){background:var(--navy)}.service-mini-grid{display:grid;grid-template-columns:1fr 1fr;gap:12px;position:relative}.service-mini{background:white;border:1px solid #DCE6F2;border-radius:15px;padding:15px 16px;min-height:100px;box-shadow:0 10px 22px rgba(13,27,56,.06)}.service-mini b{display:block;font-size:15px;line-height:1.2}.service-mini small{display:block;margin-top:8px;color:var(--slate);line-height:1.35}.service-mini i{font-style:normal;color:var(--blue);font-weight:900;font-size:12px}.problem-statement{padding:50px 0;background:var(--navy);color:white}.problem-line{font-family:var(--display);font-size:clamp(30px,3.35vw,52px);line-height:1.12;letter-spacing:-.03em;white-space:nowrap}.problem-line span{color:var(--gold)}
.challenge-list{display:grid;grid-template-columns:repeat(5,1fr);gap:1px;background:var(--line);border:1px solid var(--line)}.challenge{background:white;padding:28px 22px}.challenge i{display:flex;align-items:center;justify-content:center;width:46px;height:46px;border-radius:50%;border:1px solid #BFD4EF;color:var(--blue);font-style:normal;font-weight:900;margin-bottom:18px}.challenge b{display:block;margin-bottom:8px}.challenge span{font-size:14px;color:var(--slate)}
.framework-panel{background:var(--navy);color:white;border-radius:28px;padding:42px;overflow:hidden;position:relative}.framework-panel::after{content:"";position:absolute;inset:auto -130px -170px auto;width:420px;height:420px;border-radius:50%;background:radial-gradient(circle,rgba(22,119,255,.25),transparent 62%)}.framework-panel h2,.framework-panel p{color:white}.framework-grid{display:grid;grid-template-columns:.8fr 1.2fr;gap:40px;align-items:center;position:relative;z-index:1}.lifecycle-flow{display:grid;grid-template-columns:repeat(6,1fr);gap:10px}.life-step{background:rgba(255,255,255,.08);border:1px solid rgba(255,255,255,.16);border-radius:16px;padding:18px;min-height:122px}.life-step strong{display:block;color:var(--gold);font-size:13px;margin-bottom:16px}.life-step b{display:block;color:white;font-size:15px}.life-step span{display:block;color:#C9D6E8;font-size:13px;line-height:1.35;margin-top:7px}.service-preview-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:18px}.service-card{background:white;border:1px solid var(--line);border-radius:16px;padding:25px;box-shadow:0 10px 24px rgba(13,27,56,.04);transition:.24s ease;min-height:205px}.service-card:hover{transform:translateY(-5px);box-shadow:var(--shadow-soft);border-color:#BFD4EF}.service-card .num{display:inline-flex;align-items:center;justify-content:center;width:35px;height:35px;border-radius:50%;background:var(--navy);color:white;font-weight:900;font-size:13px;margin-bottom:22px}.service-card:nth-child(2) .num,.service-card:nth-child(3) .num{background:var(--blue)}.service-card:nth-child(4) .num{background:var(--cyan)}.service-card:nth-child(5) .num{background:var(--gold);color:var(--navy)}.service-card h3{font-size:24px;margin-bottom:10px}.service-card p{color:var(--slate);font-size:15px}.service-card .card-link{display:block;margin-top:18px;color:var(--blue);font-weight:850;font-size:14px}.proof-band{background:var(--navy);color:white;padding:45px 0}.proof-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:1px}.proof-item{padding:12px 26px;border-left:1px solid rgba(255,255,255,.17)}.proof-item:first-child{border-left:0}.proof-item b{display:block;font-family:var(--display);font-size:42px;font-weight:500;color:white;letter-spacing:-.03em}.proof-item span{display:block;color:#C9D6E8;max-width:220px}.home-insights,.article-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:22px}.article-card{background:white;border:1px solid var(--line);border-radius:14px;overflow:hidden;transition:.22s ease;box-shadow:0 8px 22px rgba(13,27,56,.04)}.article-card:hover{transform:translateY(-4px);box-shadow:var(--shadow-soft)}.thumb{height:146px;background:linear-gradient(135deg,#E7EEF7,#F9FBFE);position:relative;overflow:hidden}.thumb::after{content:"";position:absolute;inset:20%;border:1px solid rgba(22,119,255,.35);transform:rotate(28deg);border-radius:18px}.thumb.strategy{background:linear-gradient(135deg,#F2F7FF,#CFE2FF)}.thumb.operating{background:linear-gradient(135deg,#F8FAFC,#E5E7EB)}.thumb.responsible{background:linear-gradient(135deg,#F0F8FF,#D7ECFF)}.thumb.architecture{background:linear-gradient(135deg,#081D3A,#1677FF)}.thumb.engineering{background:linear-gradient(135deg,#081D3A,#00B2E3)}.thumb.roi{background:linear-gradient(135deg,#F7F9FC,#F2B705)}.card-body{padding:22px}.category{color:var(--blue);font-size:12px;text-transform:uppercase;letter-spacing:.12em;font-weight:900}.article-card h3{font-family:var(--display);font-size:24px;line-height:1.12;margin:9px 0 10px}.article-card p{font-size:15px;color:var(--slate)}.meta{display:flex;gap:16px;margin-top:16px;color:var(--muted);font-size:13px}.cta-band{background:var(--navy);color:white;padding:54px 0;position:relative;overflow:hidden}.cta-band::after{content:"";position:absolute;right:-80px;bottom:-120px;width:380px;height:380px;border-radius:50%;background:radial-gradient(circle,rgba(22,119,255,.28),transparent 65%)}.cta-inner{display:flex;align-items:center;justify-content:space-between;gap:24px;position:relative;z-index:1}.cta-inner h2{color:white}.cta-inner p{color:#D8E2F1;margin-top:8px}
/* Page hero */
.page-hero{padding:74px 0 56px;background:white;border-bottom:1px solid var(--line)}.page-hero .container{display:grid;grid-template-columns:1fr .85fr;gap:64px;align-items:end}.page-title{font-size:clamp(44px,5.4vw,84px)}.page-hero p{color:var(--slate);font-size:19px;margin-top:20px}.intro-box{border-left:3px solid var(--gold);padding-left:20px;color:var(--slate)}
/* Services */
.services-menu{display:grid;grid-template-columns:repeat(3,1fr);gap:18px}.menu-card{background:white;border:1px solid var(--line);border-radius:16px;padding:26px;min-height:248px;display:flex;flex-direction:column;box-shadow:0 8px 20px rgba(13,27,56,.04);transition:.22s ease}.menu-card:hover{transform:translateY(-5px);box-shadow:var(--shadow-soft);border-color:#BFD4EF}.menu-card .num{font-size:14px;font-weight:900;color:var(--blue);margin-bottom:22px}.menu-card h3{font-size:27px;margin-bottom:12px}.menu-card p{color:var(--slate);font-size:15px}.menu-card .best{margin-top:18px;font-size:13px;color:var(--muted)}.menu-card .arrow{margin-top:auto;color:var(--blue);font-weight:900;font-size:14px;padding-top:18px}.aidlc-section{background:white;border-top:1px solid var(--line);border-bottom:1px solid var(--line)}.aidlc-flow{display:grid;grid-template-columns:repeat(7,1fr);gap:10px;margin-top:30px}.aidlc-step{border:1px solid var(--line);border-radius:13px;padding:14px;background:var(--cloud);min-height:104px;position:relative}.aidlc-step:not(:last-child)::after{content:"→";position:absolute;right:-16px;top:38%;font-weight:900;color:var(--blue);z-index:2}.aidlc-step b{display:block;color:var(--navy);font-size:14px;line-height:1.15}.aidlc-step span{display:block;color:var(--muted);font-size:12px;margin-top:7px}.aidlc-step i{display:inline-flex;align-items:center;justify-content:center;width:26px;height:26px;border-radius:50%;background:var(--navy);color:white;font-style:normal;font-size:12px;font-weight:900;margin-bottom:11px}.alignment-map{margin-top:28px;border:1px solid var(--line);border-radius:16px;overflow:hidden;background:white}.alignment-row{display:grid;grid-template-columns:230px 1fr;align-items:center;border-top:1px solid var(--line);min-height:50px}.alignment-row:first-child{border-top:0}.align-label{padding:14px 18px;font-weight:800;border-right:1px solid var(--line);height:100%;display:flex;align-items:center;gap:10px}.align-label i{width:22px;height:22px;border-radius:50%;display:inline-flex;align-items:center;justify-content:center;background:var(--blue);color:white;font-size:11px;font-style:normal}.align-track{height:50px;position:relative;background:repeating-linear-gradient(90deg,transparent 0,transparent calc(14.285% - 1px),rgba(217,226,239,.75) calc(14.285% - 1px),rgba(217,226,239,.75) 14.285%)}.bar{position:absolute;top:19px;height:10px;border-radius:999px;background:var(--blue)}.bar.navy{background:var(--navy)}.bar.cyan{background:var(--cyan)}.bar.gold{background:var(--gold)}.bar.strategy{left:0;width:28.57%}.bar.model{left:14.28%;width:42.85%}.bar.execution{left:28.57%;width:71.42%}.bar.arch{left:28.57%;width:57.14%}.bar.roi{left:14.28%;width:85.72%}.bar.custom{left:0;width:100%}.fde-flow{display:grid;grid-template-columns:1fr 230px 1fr 1fr;gap:16px;margin-top:34px;align-items:stretch}.fde-card{background:white;border:1px solid var(--line);border-radius:16px;padding:22px;box-shadow:0 8px 22px rgba(13,27,56,.04)}.fde-card h3{font-size:24px;margin-bottom:10px}.fde-card p{color:var(--slate);font-size:15px}.gate{border-color:rgba(242,183,5,.65);background:#FFF9E8}.quote-strip{margin-top:18px;background:var(--soft);border-left:4px solid var(--blue);padding:18px 22px;font-weight:900;color:var(--navy);font-size:20px}.service-detail{display:grid;grid-template-columns:330px 1fr;gap:58px;padding:72px 0;border-bottom:1px solid var(--line)}.service-detail:last-child{border-bottom:0}.detail-num{font-size:13px;color:var(--blue);font-weight:900;letter-spacing:.15em}.service-detail h2{font-size:48px;margin-top:12px}.service-detail h3{font-size:29px;margin-bottom:18px}.service-detail p{color:var(--slate);font-size:18px;margin-bottom:18px}.value-box{background:white;border:1px solid var(--line);border-radius:16px;padding:22px;margin-top:26px}.value-box h4{margin:0 0 12px;color:var(--navy)}.value-box ul{margin:0;padding-left:20px;color:var(--slate)}.value-box li{margin:7px 0}
/* Insights */
.insights-hero{background:white;padding:60px 0 42px;border-bottom:1px solid var(--line)}.insights-hero-grid{display:grid;grid-template-columns:.72fr 1.05fr;gap:64px;align-items:center}.featured-card{display:grid;grid-template-columns:1fr 1fr;background:var(--navy);color:white;border-radius:18px;overflow:hidden;box-shadow:var(--shadow)}.featured-card .feature-copy{padding:34px}.featured-card h2{color:white;font-size:40px}.featured-card p{color:#D8E2F1;margin-top:16px}.feature-art{background:linear-gradient(135deg,#071124,#1677FF);min-height:285px;position:relative}.feature-art::before{content:"";position:absolute;inset:28%;border:1px solid rgba(242,183,5,.70);transform:rotate(45deg);box-shadow:0 0 0 34px rgba(22,119,255,.10),0 0 0 72px rgba(255,255,255,.04)}.topic-bar{display:flex;gap:12px;flex-wrap:wrap;margin:32px 0}.topic-pill{border:1px solid var(--line);border-radius:999px;background:white;padding:10px 17px;font-size:14px;font-weight:750;color:var(--navy);cursor:pointer}.topic-pill.active,.topic-pill:hover{background:var(--blue);border-color:var(--blue);color:white}.series-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:18px}.series-card{background:white;border:1px solid var(--line);border-radius:16px;padding:28px}.series-card h3{font-size:28px}.series-card p{color:var(--slate);margin-top:12px}.subscribe-panel{background:var(--soft);border:1px solid var(--line);border-radius:18px;padding:34px;display:grid;grid-template-columns:1fr .95fr;gap:30px;align-items:center}.subscribe-form{display:flex;gap:10px}.subscribe-form input{flex:1;border:1px solid var(--line);border-radius:7px;padding:14px 16px;font:inherit}
/* About / contact */
.diff-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:18px}.diff-card{background:white;border:1px solid var(--line);border-radius:16px;padding:26px}.diff-card i{display:flex;width:44px;height:44px;border:1px solid #BFD4EF;border-radius:50%;align-items:center;justify-content:center;color:var(--blue);font-style:normal;margin-bottom:20px}.diff-card p{color:var(--slate);font-size:15px}.process-row{display:grid;grid-template-columns:repeat(4,1fr);gap:22px}.process-step{position:relative;background:white;border:1px solid var(--line);border-radius:16px;padding:26px}.process-step .num{color:var(--blue);font-weight:900;display:block;margin-bottom:26px}.process-step p{color:var(--slate);font-size:15px}.contact-grid{display:grid;grid-template-columns:.85fr 1.15fr;gap:44px;align-items:start}.contact-card{background:white;border:1px solid var(--line);border-radius:20px;padding:32px;box-shadow:var(--shadow-soft)}.form-grid{display:grid;grid-template-columns:1fr 1fr;gap:16px}.form-field.full{grid-column:1 / -1}.form-field label{display:block;font-size:13px;font-weight:850;color:var(--navy);margin-bottom:7px}.form-field input,.form-field select,.form-field textarea{width:100%;border:1px solid var(--line);border-radius:8px;padding:13px 14px;font:inherit;background:white;color:var(--navy)}.form-field textarea{min-height:130px;resize:vertical}.side-list{display:grid;gap:14px;margin-top:28px}.side-list div{background:white;border:1px solid var(--line);border-radius:14px;padding:18px;color:var(--slate)}
/* Article detail */
.article-hero{background:white;padding:64px 0;border-bottom:1px solid var(--line)}.article-wrap{width:min(780px,calc(100% - 48px));margin-inline:auto}.article-title{font-size:clamp(42px,5vw,72px)}.article-body{padding:56px 0;background:white}.article-body p{font-size:19px;color:var(--slate);margin:0 0 24px;line-height:1.75}.article-body h2{font-size:42px;margin:48px 0 20px}.article-body ul{font-size:18px;color:var(--slate);line-height:1.75}.pullquote{font-family:var(--display);font-size:30px;line-height:1.2;color:var(--navy);border-left:4px solid var(--gold);padding-left:22px;margin:38px 0}
/* Footer */
.footer{background:white;border-top:1px solid var(--line);padding:48px 0 22px}.footer-grid{display:grid;grid-template-columns:1.4fr repeat(3,1fr);gap:44px}.footer img{width:150px;margin-bottom:14px}.footer p{color:var(--slate);margin:8px 0}.footer h4{font-size:12px;letter-spacing:.14em;text-transform:uppercase;margin:0 0 14px;color:var(--navy)}.footer a{display:block;color:var(--slate);font-size:14px;margin:8px 0}.footer a:hover{color:var(--blue)}.copyright{border-top:1px solid var(--line);margin-top:34px;padding-top:20px;color:var(--muted);font-size:13px}
@media (max-width:1050px){.hero-editorial .container,.page-hero .container,.insights-hero-grid,.framework-grid,.contact-grid{grid-template-columns:1fr}.hero-title.one-line,.problem-line{white-space:normal}.challenge-list,.service-preview-grid,.services-menu,.home-insights,.article-grid,.series-grid{grid-template-columns:repeat(2,1fr)}.lifecycle-flow,.aidlc-flow{grid-template-columns:1fr 1fr}.aidlc-step::after{display:none}.proof-grid,.diff-grid,.process-row{grid-template-columns:repeat(2,1fr)}.featured-card,.subscribe-panel,.service-detail{grid-template-columns:1fr}.fde-flow{grid-template-columns:1fr 1fr}.alignment-row{grid-template-columns:1fr}.align-label{border-right:0;border-bottom:1px solid var(--line)}}
@media (max-width:760px){.container{width:min(100% - 30px,var(--max))}.nav{height:68px}.brand img{width:142px}.menu-toggle{display:block}.nav-links{position:absolute;top:68px;left:0;right:0;background:white;border-bottom:1px solid var(--line);display:none;flex-direction:column;align-items:flex-start;padding:20px 24px;gap:16px}.nav-links.open{display:flex}.nav-links a::after{display:none}.nav-cta{width:100%;text-align:center;justify-content:center}.hero-editorial{padding:54px 0}.hero-editorial .container{gap:30px}.hero-title{font-size:48px}.hero-title.one-line{font-size:44px}.page-title{font-size:44px}.section{padding:58px 0}.section-head{display:block}.challenge-list,.service-preview-grid,.services-menu,.home-insights,.article-grid,.series-grid,.diff-grid,.process-row,.proof-grid,.lifecycle-flow,.aidlc-flow,.service-mini-grid,.form-grid,.fde-flow{grid-template-columns:1fr}.proof-item{border-left:0;border-top:1px solid rgba(255,255,255,.17)}.proof-item:first-child{border-top:0}.cta-inner{display:block}.cta-inner .btn{margin-top:22px}.service-detail{padding:52px 0}.service-detail h2{font-size:38px}.footer-grid{grid-template-columns:1fr 1fr}.featured-card{display:block}.feature-art{min-height:200px}.subscribe-form{display:block}.subscribe-form .btn{width:100%;margin-top:10px}.align-track{min-height:52px}.bar{height:9px}.problem-line{font-size:32px}.footer-grid{grid-template-columns:1fr}}

/* v8 homepage cleanup: removed duplicated hero service visual and dark framework panel */
.home-hero .container{grid-template-columns:minmax(0,960px);justify-content:start}
.home-hero-copy{max-width:960px}
.home-hero .hero-title{max-width:1100px}
@media (max-width:1050px){.home-hero .container{grid-template-columns:1fr}}

/* v9 homepage framework visual */
.home-hero .hero-split{grid-template-columns:minmax(0,1fr) minmax(420px,.9fr);align-items:center;gap:44px}
.home-hero-copy{max-width:820px}
.hero-framework-figure{margin:0;position:relative;background:rgba(255,255,255,.74);border:1px solid var(--line);border-radius:24px;padding:18px;box-shadow:var(--shadow-soft);overflow:hidden}
.hero-framework-figure::before{content:"";position:absolute;inset:auto -90px -120px auto;width:260px;height:260px;border-radius:50%;background:radial-gradient(circle,rgba(22,119,255,.18),transparent 68%);pointer-events:none}
.hero-framework-figure img{display:block;width:100%;height:auto;border-radius:16px;position:relative;z-index:1}
.hero-framework-figure figcaption{position:relative;z-index:1;margin-top:12px;color:var(--muted);font-size:12px;font-weight:850;letter-spacing:.14em;text-transform:uppercase;text-align:center}
@media (max-width:1050px){.home-hero .hero-split{grid-template-columns:1fr}.hero-framework-figure{max-width:680px}}
@media (max-width:760px){.hero-framework-figure{padding:12px;border-radius:18px}.hero-framework-figure figcaption{font-size:11px}}

/* v10 homepage refinement: compact hero, framework under hero, proof after insights */
.home-hero-v10{padding:58px 0 46px}
.home-hero-v10 .hero-centered{display:flex !important;flex-direction:column;align-items:center;text-align:center;gap:30px;max-width:1040px}
.home-hero-v10 .home-hero-copy{max-width:980px;margin-inline:auto}
.home-hero-v10 .lead{margin-left:auto;margin-right:auto}
.home-hero-v10 .actions{justify-content:center}
.home-hero-v10 .hero-title.one-line{font-size:clamp(38px,5.2vw,76px);white-space:normal}
.framework-under-hero{width:min(720px,100%);margin-top:2px}
.framework-under-hero figcaption{font-size:11px}
.services-above-fold{padding-top:64px}
.proof-after-insights{margin-top:0}
@media (max-width:760px){.home-hero-v10{padding:44px 0 36px}.framework-under-hero{width:100%}.services-above-fold{padding-top:52px}}


/* v11 homepage refinements */
.home-hero-v10 .hero-title.one-line{font-size:clamp(40px,5vw,72px);line-height:1.02;max-width:1000px;margin-left:auto;margin-right:auto}
.home-hero-v10 .small-under-headline{font-size:clamp(14px,1.05vw,17px);max-width:700px;line-height:1.45;color:var(--slate)}
.home-hero-v10 .hero-actions-small{margin-top:18px;gap:10px}
.home-hero-v10 .hero-actions-small .btn{padding:10px 14px;font-size:13px;border-radius:8px}
.services-above-fold .section-head p{display:none}
.featured-insights-editorial .insights-head{align-items:start;margin-bottom:26px}
.featured-insights-editorial .insights-head h2{font-family:var(--sans);font-weight:900;letter-spacing:-.05em;font-size:clamp(44px,5.2vw,72px);line-height:.95;max-width:760px}
.featured-insights-editorial .insights-link{align-self:center;font-size:18px;white-space:nowrap}
.insights-editorial-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:20px}
.insight-tile{display:block;background:#fff;border:1px solid var(--line);border-radius:26px;padding:26px;min-height:275px;box-shadow:0 8px 18px rgba(13,27,56,.04);transition:.22s ease}
.insight-tile:hover{transform:translateY(-4px);box-shadow:var(--shadow-soft);border-color:#BFD4EF}
.insight-pill{display:inline-flex;align-items:center;background:#E9F0FF;color:var(--blue);border-radius:999px;padding:8px 12px;font-size:13px;font-weight:800;margin-bottom:26px}
.insight-tile h3{font-family:var(--sans);font-weight:900;letter-spacing:-.04em;font-size:24px;line-height:1.05;margin:0 0 14px;color:var(--navy)}
.insight-tile p{font-size:16px;line-height:1.58;color:var(--slate)}
.insight-meta{margin-top:22px;font-size:13px;font-weight:900;letter-spacing:.02em;color:#66768F;text-transform:uppercase}
.proof-after-insights{padding:24px 0 18px}
.proof-after-insights .proof-item{padding:6px 26px 10px}
.proof-after-insights .proof-item b{font-size:34px}
.proof-after-insights .proof-item span{font-size:14px;line-height:1.45}
.home-cta-compact{padding:26px 0 34px}
.home-cta-compact .cta-inner h2{font-size:clamp(42px,4.5vw,64px);line-height:1.02}
.home-cta-compact .cta-inner p{font-size:16px}
.home-cta-compact .btn.gold{padding:12px 20px;font-size:14px}
@media (max-width:1050px){.insights-editorial-grid{grid-template-columns:repeat(2,1fr)}.featured-insights-editorial .insights-head h2{max-width:none}}
@media (max-width:760px){.featured-insights-editorial .insights-head h2{font-size:42px}.insights-editorial-grid{grid-template-columns:1fr}.insight-tile{min-height:auto}.home-cta-compact{padding:18px 0 28px}}


/* v12 align homepage featured insights style to services section */
.featured-insights-editorial .insights-head{align-items:end;margin-bottom:34px}
.featured-insights-editorial .insights-head h2{font-family:var(--display);font-weight:500;letter-spacing:-.03em;font-size:clamp(34px,4vw,62px);line-height:1.02;max-width:760px;color:var(--navy)}
.featured-insights-editorial .insights-link{align-self:flex-end;font-size:16px;font-weight:850}
.insights-editorial-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:18px}
.insight-tile{display:block;background:#fff;border:1px solid var(--line);border-radius:16px;padding:25px;min-height:330px;box-shadow:0 10px 24px rgba(13,27,56,.04);transition:.24s ease}
.insight-tile:hover{transform:translateY(-5px);box-shadow:var(--shadow-soft);border-color:#BFD4EF}
.insight-pill{display:inline-flex;align-items:center;background:#E9F0FF;color:var(--blue);border-radius:999px;padding:7px 12px;font-size:12px;font-weight:800;margin-bottom:22px}
.insight-tile h3{font-family:var(--display);font-weight:500;letter-spacing:-.03em;font-size:28px;line-height:1.08;margin:0 0 12px;color:var(--navy)}
.insight-tile p{font-size:15px;line-height:1.55;color:var(--slate)}
.insight-meta{margin-top:18px;font-size:13px;font-weight:800;letter-spacing:.01em;color:#66768F;text-transform:uppercase}
@media (max-width:760px){.featured-insights-editorial .insights-head h2{font-size:42px}.insight-tile h3{font-size:24px}}


/* v13 compact proof and CTA refinements */
.proof-after-insights {
  padding: 18px 0 14px;
}

.proof-after-insights .proof-grid {
  grid-template-columns: repeat(4, minmax(0, 1fr));
}

.proof-after-insights .proof-item {
  padding: 4px 20px 6px;
}

.proof-after-insights .proof-item b {
  font-size: 26px;
  line-height: 1.05;
  margin-bottom: 4px;
}

.proof-after-insights .proof-item span {
  font-size: 12.5px;
  line-height: 1.35;
  max-width: 210px;
}

.home-cta-compact {
  padding: 18px 0 22px;
}

.home-cta-compact .cta-inner {
  display: grid;
  grid-template-columns: 1fr auto;
  align-items: center;
  gap: 28px;
}

.home-cta-compact .cta-inner h2 {
  font-family: var(--sans);
  font-weight: 900;
  letter-spacing: -0.05em;
  font-size: clamp(30px, 3.2vw, 42px);
  line-height: 1.05;
}

.home-cta-compact .cta-inner p {
  font-size: 14px;
  margin-top: 4px;
}

.home-cta-compact .btn.gold {
  padding: 10px 18px;
  font-size: 13px;
  min-width: 210px;
}

@media (max-width:1050px) {
  .proof-after-insights .proof-grid {
    grid-template-columns: repeat(2, 1fr);
  }
  .home-cta-compact .cta-inner {
    grid-template-columns: 1fr;
  }
}

@media (max-width:760px) {
  .proof-after-insights {
    padding: 14px 0 10px;
  }
  .proof-after-insights .proof-grid {
    grid-template-columns: 1fr;
  }
  .proof-after-insights .proof-item {
    padding: 10px 0;
  }
  .home-cta-compact {
    padding: 18px 0 24px;
  }
  .home-cta-compact .cta-inner h2 {
    font-size: 30px;
  }
}


/* v14 compact hero service panel replacing oversized framework image */
.home-hero-v10 {
  padding: 42px 0 32px;
}

.home-hero-v10 .hero-centered {
  gap: 22px;
}

.hero-service-panel {
  width: min(1040px, 100%);
  margin: 2px auto 0;
  background: rgba(255,255,255,.86);
  border: 1px solid var(--line);
  border-radius: 20px;
  box-shadow: 0 14px 38px rgba(13,27,56,.08);
  padding: 16px;
  text-align: left;
}

.hero-service-panel-top {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 16px;
  margin-bottom: 12px;
}

.panel-brand {
  display: inline-flex;
  align-items: center;
  gap: 10px;
  color: var(--navy);
  font-weight: 900;
  letter-spacing: .01em;
}

.panel-mark {
  width: 34px;
  height: 34px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  border-radius: 9px;
  background: linear-gradient(135deg, var(--navy), var(--blue));
  color: white;
  font-weight: 900;
  font-size: 18px;
  position: relative;
}

.panel-mark::after {
  content: "";
  width: 7px;
  height: 7px;
  background: var(--gold);
  border-radius: 50%;
  position: absolute;
  right: 7px;
  top: 7px;
}

.panel-note {
  color: var(--muted);
  font-size: 13px;
  font-weight: 750;
}

.panel-color-rule {
  display: grid;
  grid-template-columns: repeat(6, 1fr);
  gap: 8px;
  margin-bottom: 12px;
}

.panel-color-rule span {
  height: 5px;
  border-radius: 999px;
  background: var(--blue);
}

.panel-color-rule span:nth-child(1), .panel-color-rule span:nth-child(6) { background: var(--navy); }
.panel-color-rule span:nth-child(3), .panel-color-rule span:nth-child(4) { background: var(--cyan); }
.panel-color-rule span:nth-child(5) { background: var(--gold); }

.hero-service-grid-compact {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 10px;
}

.hero-service-item {
  min-height: 94px;
  display: grid;
  grid-template-columns: 42px 1fr;
  gap: 12px;
  align-items: center;
  background: white;
  border: 1px solid #DCE6F2;
  border-radius: 14px;
  padding: 12px 14px;
  transition: .22s ease;
}

.hero-service-item:hover {
  transform: translateY(-2px);
  border-color: #BFD4EF;
  box-shadow: 0 10px 24px rgba(13,27,56,.07);
}

.service-copy b {
  display: block;
  color: var(--navy);
  font-size: 14.5px;
  line-height: 1.2;
  letter-spacing: -.01em;
}

.service-copy small {
  display: block;
  color: var(--slate);
  font-size: 13px;
  line-height: 1.32;
  margin-top: 4px;
}

.service-icon {
  width: 42px;
  height: 42px;
  border-radius: 50%;
  display: inline-block;
  position: relative;
  background: #EEF6FF;
  border: 1px solid #CFE0F7;
}

.service-icon::before,
.service-icon::after {
  content: "";
  position: absolute;
  inset: 0;
  margin: auto;
  box-sizing: border-box;
}

.service-icon.target { background: var(--navy); border-color: var(--navy); }
.service-icon.target::before {
  width: 18px; height: 18px; border: 2px solid white; border-radius: 50%;
}
.service-icon.target::after {
  width: 6px; height: 6px; background: var(--gold); border-radius: 50%;
}

.service-icon.operating { background: var(--blue); border-color: var(--blue); }
.service-icon.operating::before {
  width: 20px; height: 15px; border: 2px solid white; border-top: 0;
  top: 8px;
}
.service-icon.operating::after {
  width: 5px; height: 5px; background: white; border-radius: 50%;
  box-shadow: -9px 10px 0 white, 9px 10px 0 white, 0 -2px 0 white;
}

.service-icon.execution { background: var(--cyan); border-color: var(--cyan); }
.service-icon.execution::before {
  width: 9px; height: 9px; background: white; border-radius: 50%;
  box-shadow: -9px 8px 0 white, 9px 8px 0 white;
  top: -7px;
}
.service-icon.execution::after {
  width: 28px; height: 12px; border: 2px solid white; border-radius: 14px 14px 4px 4px;
  top: 15px;
}

.service-icon.architecture { background: var(--cyan); border-color: var(--cyan); }
.service-icon.architecture::before {
  width: 19px; height: 19px; border: 2px solid white; transform: rotate(45deg);
}
.service-icon.architecture::after {
  width: 2px; height: 24px; background: white; transform: rotate(45deg);
  opacity: .8;
}

.service-icon.outcomes { background: var(--gold); border-color: var(--gold); }
.service-icon.outcomes::before {
  width: 22px; height: 16px; border-left: 2px solid var(--navy); border-bottom: 2px solid var(--navy);
}
.service-icon.outcomes::after {
  width: 18px; height: 10px; border-top: 2px solid var(--navy); border-right: 2px solid var(--navy);
  transform: rotate(-28deg); top: -2px;
}

.service-icon.custom { background: var(--navy); border-color: var(--navy); }
.service-icon.custom::before {
  width: 24px; height: 2px; background: white;
  box-shadow: 0 -8px 0 white, 0 8px 0 white;
}
.service-icon.custom::after {
  width: 6px; height: 6px; background: var(--gold); border-radius: 50%;
  box-shadow: -8px -8px 0 white, 8px 8px 0 white;
}

@media (max-width: 1050px) {
  .hero-service-grid-compact { grid-template-columns: repeat(2, 1fr); }
}

@media (max-width: 760px) {
  .home-hero-v10 { padding: 34px 0 26px; }
  .hero-service-panel { padding: 13px; border-radius: 16px; }
  .hero-service-panel-top { display: block; }
  .panel-note { display: block; margin-top: 6px; }
  .hero-service-grid-compact { grid-template-columns: 1fr; }
  .hero-service-item { min-height: 82px; }
}


/* v15-redo service labels and homepage refinement */
.services-above-fold .section-head {
  align-items: end;
  gap: 16px;
}

.services-above-fold .section-head h2 {
  max-width: none;
  white-space: nowrap;
  font-size: clamp(36px, 4.2vw, 62px);
  line-height: 1.02;
}

.featured-insights-editorial .insights-head h2 {
  max-width: none;
  white-space: nowrap;
  font-size: clamp(34px, 3.7vw, 58px);
  line-height: 1.02;
}

.home-cta-compact .cta-inner h2,
.home-cta-compact .cta-inner .regular-cta-title {
  font-family: var(--display);
  font-weight: 400;
  letter-spacing: -0.02em;
  font-size: clamp(30px, 3.2vw, 44px);
}

@media (max-width: 1100px) {
  .services-above-fold .section-head h2,
  .featured-insights-editorial .insights-head h2 {
    white-space: normal;
  }
}


/* v16 homepage compact cleanup */
.home-hero-v10{padding:56px 0 26px}
.home-hero-v10 .hero-centered{gap:16px;max-width:980px}
.home-hero-v10 .home-hero-copy{max-width:920px}
.home-hero-v10 .hero-actions-small{margin-top:14px}
.hero-service-panel{display:none !important}
.services-above-fold{padding-top:24px !important;padding-bottom:28px !important}
.featured-insights-editorial{padding-top:18px !important;padding-bottom:26px !important}
.services-above-fold .section-head,.featured-insights-editorial .section-head{margin-bottom:18px !important}
.compact-head{display:block}
.compact-head .subtitle-link{display:inline-block;margin-top:10px;font-size:15px;font-weight:800}
.services-above-fold .section-head h2,.featured-insights-editorial .insights-head h2{max-width:none;white-space:nowrap;line-height:1.03}
.services-above-fold .section-head h2{font-size:clamp(32px,3.8vw,58px)}
.featured-insights-editorial .insights-head h2{font-size:clamp(31px,3.7vw,56px)}
.service-preview-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:14px}
.service-card{padding:18px 18px 16px;min-height:156px;border-radius:16px;box-shadow:0 8px 18px rgba(13,27,56,.04)}
.service-card .card-topline{display:flex;align-items:center;gap:10px;margin-bottom:12px}
.service-card .num{width:34px;height:34px;margin-bottom:0;background:var(--navy) !important;color:white !important;font-size:13px}
.service-card .preview-icon{width:34px;height:34px;transform:scale(.83);transform-origin:center;flex:0 0 34px}
.service-card h3{font-family:var(--sans);font-weight:850;font-size:21px;line-height:1.12;margin-bottom:8px}
.service-card p{font-size:14px;line-height:1.45;margin-bottom:0}
.service-card .card-link{margin-top:10px;font-size:13px}
.insights-editorial-grid{gap:14px}
.insight-tile{padding:20px 20px 18px;min-height:224px;border-radius:18px}
.insight-pill{margin-bottom:16px;font-size:12px;padding:7px 12px}
.insight-tile h3{font-size:20px;line-height:1.08;margin-bottom:10px}
.insight-tile p{font-size:14px;line-height:1.5}
.insight-meta{margin-top:14px;font-size:12px}
.proof-after-insights{padding:16px 0 12px}
.home-cta-compact{padding:16px 0 20px}
.home-cta-compact .cta-inner h2,.home-cta-compact .cta-inner .regular-cta-title{font-weight:400}
@media (max-width:1100px){.services-above-fold .section-head h2,.featured-insights-editorial .insights-head h2{white-space:normal}.service-preview-grid,.insights-editorial-grid{grid-template-columns:repeat(2,1fr)}}
@media (max-width:760px){.home-hero-v10{padding:44px 0 22px}.services-above-fold,.featured-insights-editorial{padding-top:18px !important}.service-preview-grid,.insights-editorial-grid{grid-template-columns:1fr}.service-card{min-height:unset}.insight-tile{min-height:unset}}


/* v17 homepage feedback refinements */

/* Hero: remove empty-looking kicker area and move content up */
.home-hero-v10 {
  padding-top: 24px !important;
  padding-bottom: 20px !important;
}

.home-hero-v10 .hero-centered {
  gap: 8px !important;
}

.home-hero-v10 .home-hero-copy {
  padding-top: 0 !important;
}

.home-hero-v10 .hero-title.one-line {
  margin-top: 0 !important;
}

/* Services: reduce vertical space between hero, services, and insights */
.services-above-fold {
  padding-top: 12px !important;
  padding-bottom: 18px !important;
}

.services-above-fold .section-head {
  margin-bottom: 12px !important;
}

.featured-insights-editorial {
  padding-top: 8px !important;
  padding-bottom: 16px !important;
}

.featured-insights-editorial .section-head {
  margin-bottom: 10px !important;
}

/* Service cards: compact, darker, clearer */
.service-preview-grid {
  gap: 12px !important;
}

.service-card {
  min-height: 122px !important;
  padding: 16px 20px 14px !important;
  border-radius: 16px !important;
  box-shadow: 0 8px 18px rgba(13,27,56,.035) !important;
}

.service-card .card-topline {
  display: flex !important;
  align-items: center !important;
  gap: 10px !important;
  margin-bottom: 9px !important;
}

/* Remove number backgrounds */
.service-card .num,
.service-card:nth-child(2) .num,
.service-card:nth-child(3) .num,
.service-card:nth-child(4) .num,
.service-card:nth-child(5) .num,
.service-card:nth-child(6) .num {
  width: auto !important;
  height: auto !important;
  min-width: 24px !important;
  border-radius: 0 !important;
  background: transparent !important;
  color: #071426 !important;
  font-size: 15px !important;
  line-height: 1 !important;
  font-weight: 950 !important;
  letter-spacing: .02em !important;
  margin: 0 !important;
}

/* Larger, darker titles */
.service-card h3 {
  font-family: var(--sans) !important;
  font-size: clamp(24px, 2vw, 30px) !important;
  line-height: 1.05 !important;
  font-weight: 950 !important;
  color: #071426 !important;
  letter-spacing: -0.045em !important;
  margin: 0 !important;
}

.service-card p {
  color: #14213D !important;
  font-size: 15px !important;
  line-height: 1.38 !important;
  margin: 0 !important;
}

.service-card .card-link {
  margin-top: 9px !important;
  font-size: 14px !important;
  font-weight: 900 !important;
}

/* Remove icon backgrounds and use clean line icons */
.service-card .preview-icon,
.service-card .service-icon {
  background: transparent !important;
  border: 0 !important;
  width: 30px !important;
  height: 30px !important;
  transform: none !important;
  flex: 0 0 30px !important;
}

.service-card .preview-icon::before,
.service-card .preview-icon::after,
.service-card .service-icon::before,
.service-card .service-icon::after {
  box-sizing: border-box !important;
}

/* Strategy: target */
.service-card .service-icon.target::before {
  width: 21px !important; height: 21px !important;
  border: 2px solid var(--blue) !important;
  border-radius: 50% !important;
  background: transparent !important;
}
.service-card .service-icon.target::after {
  width: 7px !important; height: 7px !important;
  border: 2px solid var(--gold) !important;
  border-radius: 50% !important;
  background: transparent !important;
}

/* Operating Model: connected nodes */
.service-card .service-icon.operating::before {
  width: 23px !important; height: 15px !important;
  border-left: 2px solid var(--blue) !important;
  border-right: 2px solid var(--blue) !important;
  border-bottom: 2px solid var(--blue) !important;
  border-top: 0 !important;
  top: 5px !important;
  background: transparent !important;
}
.service-card .service-icon.operating::after {
  width: 6px !important; height: 6px !important;
  background: var(--blue) !important;
  border-radius: 50% !important;
  box-shadow: -10px 10px 0 var(--blue), 10px 10px 0 var(--blue) !important;
  top: -5px !important;
}

/* Architecture Blueprint: blueprint diamond */
.service-card .service-icon.architecture::before {
  width: 19px !important; height: 19px !important;
  border: 2px solid var(--cyan) !important;
  transform: rotate(45deg) !important;
  background: transparent !important;
}
.service-card .service-icon.architecture::after {
  width: 13px !important; height: 13px !important;
  border: 2px solid var(--cyan) !important;
  transform: rotate(45deg) !important;
  opacity: .55 !important;
  background: transparent !important;
}

/* Execution/FDE: launch arrow */
.service-card .service-icon.execution::before {
  width: 24px !important; height: 2px !important;
  background: var(--cyan) !important;
  transform: rotate(-35deg) !important;
}
.service-card .service-icon.execution::after {
  width: 10px !important; height: 10px !important;
  border-top: 2px solid var(--cyan) !important;
  border-right: 2px solid var(--cyan) !important;
  transform: rotate(-35deg) !important;
  left: 11px !important;
  top: -8px !important;
  background: transparent !important;
}

/* Value Realization & ROI: growth line */
.service-card .service-icon.outcomes::before {
  width: 23px !important; height: 16px !important;
  border-left: 2px solid var(--gold) !important;
  border-bottom: 2px solid var(--gold) !important;
  background: transparent !important;
}
.service-card .service-icon.outcomes::after {
  width: 20px !important; height: 10px !important;
  border-top: 2px solid var(--gold) !important;
  border-right: 2px solid var(--gold) !important;
  transform: rotate(-28deg) !important;
  top: -3px !important;
  background: transparent !important;
}

/* Custom Engagement: sliders */
.service-card .service-icon.custom::before {
  width: 24px !important; height: 2px !important;
  background: var(--navy) !important;
  box-shadow: 0 -8px 0 var(--navy), 0 8px 0 var(--navy) !important;
}
.service-card .service-icon.custom::after {
  width: 6px !important; height: 6px !important;
  background: var(--gold) !important;
  border-radius: 50% !important;
  box-shadow: -9px -8px 0 var(--blue), 9px 8px 0 var(--gold) !important;
}

/* Insights: less white space and shorter boxes */
.insights-editorial-grid {
  gap: 12px !important;
}

.insight-tile {
  min-height: 184px !important;
  padding: 16px 20px 15px !important;
  border-radius: 16px !important;
}

.insight-pill {
  margin-bottom: 11px !important;
  padding: 6px 11px !important;
  font-size: 11.5px !important;
}

.insight-tile h3 {
  font-size: 21px !important;
  line-height: 1.08 !important;
  margin-bottom: 8px !important;
}

.insight-tile p {
  font-size: 13.5px !important;
  line-height: 1.45 !important;
}

.insight-meta {
  margin-top: 10px !important;
  font-size: 11.5px !important;
}

.proof-after-insights {
  padding-top: 10px !important;
  padding-bottom: 8px !important;
}

.home-cta-compact {
  padding-top: 12px !important;
  padding-bottom: 16px !important;
}

@media (max-width: 1100px) {
  .service-card h3 {
    font-size: 24px !important;
  }
}

@media (max-width: 760px) {
  .home-hero-v10 {
    padding-top: 22px !important;
  }

  .service-card {
    min-height: unset !important;
  }

  .service-card .card-topline {
    flex-wrap: wrap !important;
  }

  .insight-tile {
    min-height: unset !important;
  }
}


/* v18 feedback updates */
.home-hero-v10{padding-top:24px !important;padding-bottom:18px !important}
.home-hero-v10 .hero-centered{gap:8px !important}
.home-hero-v10 .small-under-headline{font-size:18px !important;max-width:680px !important;color:#14213D !important}
.home-hero-v10 .hero-actions-small,.home-hero-v10 .actions{display:none !important}
.section-head-services h2{font-family:var(--display) !important;font-weight:500 !important;font-size:clamp(42px,4.3vw,64px) !important;line-height:1.02 !important;white-space:normal !important;margin-bottom:6px !important}
.section-head-services .section-subtitle{margin:0;font-size:18px;line-height:1.4;color:var(--navy)}
.section-head-services .section-subtitle strong{font-weight:900}
.services-above-fold{padding-top:10px !important}
.services-above-fold .section-head{margin-bottom:14px !important}


/* v19 homepage service card refinement */
.services-above-fold{padding-top:8px !important;padding-bottom:16px !important}
.services-above-fold .section-head{margin-bottom:12px !important}
.service-preview-grid{gap:12px !important}
.service-card{min-height:96px !important;padding:16px 20px 15px !important;border-radius:16px !important;box-shadow:0 8px 18px rgba(13,27,56,.035) !important}
.service-card .card-topline{display:flex !important;align-items:flex-start !important;gap:12px !important;margin-bottom:8px !important}
.service-card .num{width:auto !important;height:auto !important;min-width:32px !important;background:transparent !important;color:#071426 !important;border-radius:0 !important;font-size:16px !important;font-weight:950 !important;line-height:1.1 !important;margin:2px 0 0 !important}
.service-card h3{font-family:var(--sans) !important;font-weight:900 !important;font-size:clamp(23px,1.9vw,30px) !important;line-height:1.02 !important;letter-spacing:-.045em !important;margin:0 !important;color:#071426 !important}
.service-card p{font-size:15px !important;line-height:1.4 !important;color:#14213D !important;margin:0 0 0 44px !important}
.service-card .card-link{display:none !important}
.service-svg-icon{width:30px;height:30px;flex:0 0 30px;stroke:var(--blue);stroke-width:1.9;fill:none;stroke-linecap:round;stroke-linejoin:round;margin-top:1px}
.service-svg-icon.icon-target{stroke:var(--navy)}
.service-svg-icon.icon-target circle:last-of-type{stroke:var(--gold)}
.service-svg-icon.icon-architecture{stroke:var(--cyan)}
.service-svg-icon.icon-execution{stroke:var(--cyan)}
.service-svg-icon.icon-roi{stroke:var(--gold)}
.service-svg-icon.icon-custom{stroke:var(--navy)}
.service-card:hover .service-svg-icon{transform:translateY(-1px)}
@media (max-width:760px){.service-card{min-height:unset !important}.service-card p{margin-left:0 !important}.service-card .card-topline{align-items:center !important;flex-wrap:wrap !important}}


/* v20 hero split and service updates */
.home-hero-v20 {
  padding: 54px 0 38px !important;
  background: linear-gradient(90deg, #F7F9FC 0%, #FBFCFE 45%, #EEF4FF 100%);
}

.home-hero-v20 .hero-split {
  display: grid;
  grid-template-columns: minmax(300px, 0.95fr) minmax(460px, 1.2fr);
  gap: 34px;
  align-items: center;
}

.home-hero-v20 .hero-left {
  max-width: 520px;
  margin: 0;
  text-align: left;
}

.home-hero-v20 .hero-title {
  font-size: clamp(40px, 4.9vw, 72px);
  line-height: 0.98;
  letter-spacing: -0.055em;
  margin: 0 0 16px;
  max-width: 14ch;
}

.home-hero-v20 .hero-subcopy {
  margin: 0;
  max-width: 460px;
  font-size: 18px;
  line-height: 1.45;
  color: var(--slate);
}

.hero-framework-graphic {
  position: relative;
  min-height: 430px;
  background: radial-gradient(circle at center, rgba(22,119,255,.08) 0%, rgba(22,119,255,0) 55%);
  border-radius: 28px;
  overflow: hidden;
}

.hero-framework-graphic .framework-ring {
  position: absolute;
  left: 50%;
  top: 50%;
  transform: translate(-50%, -50%);
  border: 1px solid rgba(22,119,255,.16);
  border-radius: 50%;
  pointer-events: none;
}

.hero-framework-graphic .ring-one { width: 190px; height: 190px; }
.hero-framework-graphic .ring-two { width: 310px; height: 310px; }
.hero-framework-graphic .ring-three { width: 420px; height: 420px; }

.framework-core {
  position: absolute;
  left: 50%;
  top: 50%;
  width: 210px;
  height: 140px;
  transform: translate(-50%, -50%);
  display: grid;
  place-items: center;
}

.framework-core::before,
.framework-core::after {
  content: "";
  position: absolute;
  border-radius: 50%;
  background: linear-gradient(180deg, rgba(22,119,255,.14), rgba(22,119,255,.04));
  box-shadow: inset 0 1px 0 rgba(255,255,255,.7);
}

.framework-core::before {
  width: 190px;
  height: 42px;
  bottom: 6px;
}

.framework-core::after {
  width: 145px;
  height: 28px;
  bottom: 28px;
}

.framework-core-mark {
  position: relative;
  width: 88px;
  height: 88px;
  z-index: 2;
}

.framework-node {
  position: absolute;
  display: flex;
  align-items: flex-start;
  gap: 12px;
  width: 215px;
}

.framework-node .node-icon {
  width: 48px;
  height: 48px;
  border-radius: 50%;
  background: #fff;
  border: 1px solid #D5E0F0;
  box-shadow: 0 8px 18px rgba(13,27,56,.08);
  display: grid;
  place-items: center;
  flex: 0 0 48px;
}

.framework-node .node-icon .service-svg-icon {
  width: 24px;
  height: 24px;
}

.framework-node .node-copy strong {
  display: block;
  color: var(--navy);
  font-size: 16px;
  line-height: 1.2;
  margin-bottom: 4px;
  font-weight: 800;
}

.framework-node .node-copy span {
  display: block;
  color: #43526C;
  font-size: 13px;
  line-height: 1.4;
}

.node-strategy   { left: 10px;  top: 36px; }
.node-operating  { left: 0;     top: 148px; }
.node-architecture { left: 22px; bottom: 40px; }

.node-execution  { right: 0;   top: 36px; }
.node-governance { right: 28px; top: 154px; }
.node-roi        { right: -4px; bottom: 34px; }

.node-execution, .node-governance, .node-roi {
  width: 232px;
}

.service-svg-icon.icon-governance {
  stroke: var(--blue);
}

.services-above-fold .service-preview-grid .service-card:nth-child(5) .service-svg-icon {
  stroke: var(--blue);
}

@media (max-width: 1180px) {
  .home-hero-v20 .hero-split {
    grid-template-columns: 1fr;
    gap: 26px;
  }
  .home-hero-v20 .hero-left {
    max-width: 780px;
  }
  .hero-framework-graphic {
    min-height: 520px;
  }
}

@media (max-width: 760px) {
  .home-hero-v20 {
    padding: 40px 0 24px !important;
  }
  .home-hero-v20 .hero-title {
    max-width: none;
  }
  .hero-framework-graphic {
    min-height: 720px;
  }
  .hero-framework-graphic .ring-three {
    width: 320px;
    height: 320px;
  }
  .hero-framework-graphic .ring-two {
    width: 235px;
    height: 235px;
  }
  .hero-framework-graphic .ring-one {
    width: 150px;
    height: 150px;
  }
  .framework-core {
    top: 46%;
  }
  .framework-node {
    position: static;
    width: 100%;
    margin-bottom: 12px;
  }
  .hero-framework-graphic {
    display: grid;
    grid-template-columns: 1fr;
    align-content: start;
    padding: 18px;
    gap: 0;
  }
  .node-strategy, .node-operating, .node-architecture,
  .node-execution, .node-governance, .node-roi {
    left: auto;
    right: auto;
    top: auto;
    bottom: auto;
    width: 100%;
  }
}



/* v21 hero update */
.home-hero-v20{
  padding: 48px 0 34px !important;
}
.home-hero-v20 .hero-split{
  grid-template-columns:minmax(340px,.9fr) minmax(620px,1.35fr) !important;
  gap:40px !important;
  align-items:center !important;
}
.home-hero-v20 .hero-left{
  max-width:560px !important;
}
.home-hero-v20 .hero-title{
  font-size:clamp(50px,6vw,90px) !important;
  line-height:.95 !important;
  letter-spacing:-.06em !important;
  max-width:11ch !important;
  margin-bottom:18px !important;
}
.home-hero-v20 .hero-subcopy{
  font-size:20px !important;
  line-height:1.45 !important;
  max-width:460px !important;
}
.hero-framework-image{
  min-height:auto !important;
  background:none !important;
  border-radius:0 !important;
  overflow:visible !important;
  display:flex;
  align-items:center;
  justify-content:center;
}
.hero-framework-image img{
  width:100%;
  max-width:840px;
  height:auto;
  display:block;
  object-fit:contain;
}
.hero-framework-image .framework-ring,
.hero-framework-image .framework-core,
.hero-framework-image .framework-node{display:none !important;}

/* better match execution and ROI icons from infographic */
.service-svg-icon.icon-execution{stroke:#19B5E7 !important; fill:none; stroke-width:1.9; stroke-linecap:round; stroke-linejoin:round;}
.service-svg-icon.icon-roi{stroke:#F2B705 !important; fill:none; stroke-width:1.9; stroke-linecap:round; stroke-linejoin:round;}

@media (max-width:1180px){
  .home-hero-v20 .hero-split{grid-template-columns:1fr !important; gap:26px !important;}
  .home-hero-v20 .hero-left{max-width:760px !important;}
  .home-hero-v20 .hero-title{max-width:12ch !important;}
  .hero-framework-image img{max-width:100%;}
}
@media (max-width:760px){
  .home-hero-v20{padding:36px 0 22px !important;}
  .home-hero-v20 .hero-title{font-size:clamp(42px,11vw,68px) !important;max-width:none !important;}
  .home-hero-v20 .hero-subcopy{font-size:18px !important;}
}


/* v22 updates */
.brand img{width:108px;height:auto}
.footer-brand-block{text-align:center;display:flex;flex-direction:column;align-items:center}
.footer .footer-brand-block img{width:86px;margin-bottom:14px}
.footer-tagline{font-weight:800 !important;letter-spacing:.08em;text-transform:uppercase;color:var(--navy) !important;text-align:center;margin:0 auto !important}
.home-hero-v20{padding:52px 0 34px !important}
.home-hero-v20 .hero-split{grid-template-columns:minmax(360px,.95fr) minmax(620px,1.3fr) !important;gap:44px !important;align-items:center !important}
.home-hero-v20 .hero-left{display:flex;flex-direction:column;justify-content:center;min-height:495px}
.home-hero-v20 .hero-title{font-size:clamp(76px,8vw,114px) !important;line-height:.92 !important;letter-spacing:-.075em !important;max-width:6.5ch !important;margin:0 0 24px !important}
.home-hero-v20 .hero-subcopy{font-size:20px !important;line-height:1.5 !important;max-width:460px !important}
.hero-framework-image{display:flex;align-items:center;justify-content:center;min-height:495px}
.hero-framework-image img{width:100%;max-width:820px;height:auto;display:block;object-fit:contain}
.subscribe-form .form-message,.contact-card .form-message{color:var(--slate)}
.future-grid .series-card{min-height:0}
@media (max-width:1180px){
 .home-hero-v20 .hero-split{grid-template-columns:1fr !important;gap:24px !important}
 .home-hero-v20 .hero-left,.hero-framework-image{min-height:auto}
 .home-hero-v20 .hero-title{max-width:none !important}
}


/* v23 production polish */
:root{--aspyre-navy:#0D1B38;--aspyre-gold:#E3B762;--aspyre-offwhite:#F0F1EE;--aspyre-stone:#6F6C65;}
.site-header{overflow:hidden;}
.nav{height:68px;}
.brand{display:flex;align-items:center;gap:7px;min-width:0;line-height:1;}
.brand img{width:58px !important;height:auto !important;max-height:58px !important;object-fit:contain;display:block;}
.brand-label{font-size:12px;font-weight:900;letter-spacing:.11em;text-transform:uppercase;color:var(--navy);white-space:nowrap;line-height:1;}
.footer-brand-block{text-align:center;display:flex;flex-direction:column;align-items:center;justify-content:flex-start;}
.footer .footer-brand-block img{width:66px !important;max-height:66px;object-fit:contain;margin-bottom:8px;}
.footer-tagline{font-weight:900 !important;letter-spacing:.12em;text-transform:uppercase;color:var(--navy) !important;text-align:center;margin:0 auto !important;font-size:12px;}

/* Home hero: 40% smaller than v22 and balanced with right image */
.home-hero-v20{padding:36px 0 28px !important;}
.home-hero-v20 .hero-split{grid-template-columns:minmax(330px,.88fr) minmax(520px,1.22fr) !important;gap:36px !important;align-items:center !important;}
.home-hero-v20 .hero-left{display:flex;flex-direction:column;justify-content:center;min-height:360px !important;max-width:500px !important;}
.home-hero-v20 .hero-title{font-size:clamp(42px,4.6vw,68px) !important;line-height:1.02 !important;letter-spacing:-.055em !important;max-width:12ch !important;margin:0 0 16px !important;}
.home-hero-v20 .hero-subcopy{font-size:17px !important;line-height:1.5 !important;max-width:420px !important;color:var(--slate) !important;}
.hero-framework-image{min-height:360px !important;display:flex;align-items:center;justify-content:center;}
.hero-framework-image img{max-width:720px !important;width:100%;height:auto;display:block;object-fit:contain;}

/* About page tighter editorial spacing */
.about-page .page-hero{padding:44px 0 34px;}
.about-page .proof-band{padding:28px 0 26px !important;}
.about-page .section.white{padding-top:40px !important;padding-bottom:40px !important;}
.about-page .section-head{margin-bottom:22px !important;}
.about-page .diff-grid,.about-page .process-row{gap:14px !important;}
.about-page .diff-card,.about-page .process-step{min-height:150px;padding:20px 22px;}
.about-page .cta-band{padding:34px 0 !important;}
.about-page .proof-grid .proof-item{padding-top:6px;padding-bottom:6px;}

/* Article card readability */
.article-grid{gap:18px !important;}
.article-card{border-radius:16px;}
.article-card .card-body{padding:20px 20px 18px !important;}
.article-card h3{font-family:var(--display, Georgia, serif);font-size:clamp(21px,1.7vw,27px) !important;line-height:1.22 !important;letter-spacing:-.018em !important;margin:12px 0 10px !important;color:var(--navy) !important;}
.article-card p{font-size:15px !important;line-height:1.55 !important;margin:0 0 14px !important;color:var(--slate) !important;}
.article-card .meta{gap:10px !important;font-size:12px !important;line-height:1.35 !important;letter-spacing:.02em;}
.insight-tile h3{line-height:1.22 !important;letter-spacing:-.015em !important;}
.insight-tile p{line-height:1.55 !important;}

/* Insights: remove series visual concept; keep complete article list + subscribe */
.insights-page .series-grid{display:none !important;}
.insights-page .article-grid{grid-template-columns:repeat(3,1fr);}
.topic-bar{row-gap:10px;}
.form-message[data-state="success"]{color:#166534 !important;}
.form-message[data-state="error"]{color:#B42318 !important;}
button[disabled]{opacity:.68;cursor:not-allowed;}

@media (max-width:1180px){
  .home-hero-v20 .hero-split{grid-template-columns:1fr !important;}
  .home-hero-v20 .hero-left{min-height:auto !important;max-width:720px !important;}
  .home-hero-v20 .hero-title{max-width:none !important;}
  .hero-framework-image{min-height:auto !important;}
}
@media (max-width:1050px){
  .insights-page .article-grid{grid-template-columns:repeat(2,1fr);}
}
@media (max-width:760px){
  .nav{height:64px;}
  .brand img{width:50px !important;max-height:50px !important;}
  .brand-label{font-size:10.5px;letter-spacing:.09em;}
  .home-hero-v20{padding:30px 0 20px !important;}
  .home-hero-v20 .hero-title{font-size:clamp(36px,10vw,52px) !important;}
  .about-page .page-hero{padding:34px 0 24px;}
  .about-page .section.white{padding-top:30px !important;padding-bottom:30px !important;}
  .insights-page .article-grid{grid-template-columns:1fr;}
}

/* v24 production fixes */
/* Services framework: continuous governance, early MVP proof ROI, and FDE from Phase I */
.alignment-map .bar.governance{left:0 !important;width:100% !important;}
.alignment-map .bar.execution{left:14.28% !important;width:85.72% !important;}
.alignment-map .bar.roi{left:14.28% !important;width:85.72% !important;}

/* Tighten About page vertical rhythm without changing layout */
.about-page .page-hero{padding-top:38px !important;padding-bottom:28px !important;}
.about-page .proof-band{padding-top:26px !important;padding-bottom:24px !important;}
.about-page .section.white{padding-top:34px !important;padding-bottom:34px !important;}
.about-page .cta-band{padding-top:32px !important;padding-bottom:32px !important;}

/* Keep the Aspyre logo lockup contained and tighter */
.site-header{overflow:hidden !important;}
.nav{height:68px !important;min-height:68px !important;}
.brand{gap:5px !important;align-items:center !important;}
.brand img{width:56px !important;max-width:56px !important;max-height:56px !important;object-fit:contain !important;display:block !important;}
.brand-label{line-height:1 !important;margin-left:0 !important;}

/* Improve article title holding/readability */
.article-card h3,.insight-tile h3{overflow-wrap:normal;word-break:normal;hyphens:none;}
.article-card .meta,.insight-meta{line-height:1.35 !important;}

/* Contact replacement CTA must never expose raw email visually */
.cta-band .btn.gold[href="contact.html"]{min-width:120px;}

@media (max-width:760px){
  .nav{height:64px !important;min-height:64px !important;}
  .brand img{width:48px !important;max-width:48px !important;max-height:48px !important;}
  .brand{gap:4px !important;}
}


/* === new Aspyre stacked logo lockup (header + footer) — added by edit === */
.brand img{width:auto;height:50px}
.brand .brand-label{display:none}
.footer-brand-block img{width:auto;height:84px}
.footer-brand-block .footer-tagline{display:none}
/* === end logo override === */

/* ============================================================
   Insights article cards — text-forward editorial redesign
   (removes decorative .thumb image area; consulting-style)
   ============================================================ */
/* remove the large decorative image block + its overlay */
.article-card .thumb{display:none !important}
.article-card .thumb::after{display:none !important}

/* card: text-led, equal-height, premium */
.article-card{
  display:flex !important;
  flex-direction:column;
  background:#fff;
  border:1px solid var(--line);
  border-radius:16px;
  overflow:hidden;
  box-shadow:0 1px 2px rgba(13,27,56,.05);
  transition:transform .2s ease, border-color .2s ease, box-shadow .2s ease;
}
.article-card:hover{
  transform:translateY(-3px);
  border-color:#C3D5EE;
  box-shadow:0 16px 34px rgba(13,27,56,.09);
}

/* body fills card height so meta + read-link sink to the bottom */
.card-body{
  display:flex;
  flex-direction:column;
  flex:1 1 auto;
  padding:28px 26px 24px !important;
}

/* category label = primary cue, with a subtle gold accent rule */
.article-card .category{
  align-self:flex-start;
  color:var(--blue);
  font-size:11.5px;
  letter-spacing:.15em;
  text-transform:uppercase;
  font-weight:900;
  padding-bottom:12px;
  margin-bottom:16px;
  border-bottom:2px solid rgba(242,183,5,.6);
}

/* title: editorial, larger, bolder, readable line-height */
.article-card h3{
  font-family:var(--display, Georgia, serif) !important;
  font-size:clamp(20px,1.5vw,25px) !important;
  line-height:1.3 !important;
  letter-spacing:-.012em !important;
  font-weight:600 !important;
  color:var(--navy) !important;
  margin:0 0 14px !important;
  transition:color .2s ease;
}
.article-card:hover h3{color:var(--blue) !important}

/* summary: readable, grows to push meta to the bottom */
.article-card p{
  font-size:15px !important;
  line-height:1.62 !important;
  color:var(--slate) !important;
  margin:0 0 22px !important;
  flex:1 1 auto;
}

/* metadata row: structured, smaller, divided from summary */
.article-card .meta{
  display:flex;
  flex-wrap:wrap;
  align-items:center;
  gap:14px !important;
  margin:0 !important;
  padding-top:16px;
  border-top:1px solid var(--line);
  color:var(--muted);
  font-size:11.5px !important;
  letter-spacing:.06em;
  text-transform:uppercase;
}

/* subtle "Read article →" cue at the very bottom */
.article-card .card-body::after{
  content:"Read article \2192";
  margin-top:16px;
  font-size:13px;
  font-weight:800;
  letter-spacing:.01em;
  color:var(--blue);
  transition:color .2s ease;
}
.article-card:hover .card-body::after{color:var(--navy)}
/* ============================ end insights cards ============= */

/* ============================================================
   Landing "Frameworks from enterprise AI practice" tiles
   -> match the editorial Insights card design (consistency)
   (grid columns left untouched so 3/2/1 responsive stays)
   ============================================================ */
.insight-tile{
  display:flex !important;
  flex-direction:column;
  background:#fff;
  border:1px solid var(--line);
  border-radius:16px;
  padding:28px 26px 24px !important;
  min-height:0 !important;
  box-shadow:0 1px 2px rgba(13,27,56,.05);
  transition:transform .2s ease, border-color .2s ease, box-shadow .2s ease;
}
.insight-tile:hover{
  transform:translateY(-3px);
  border-color:#C3D5EE;
  box-shadow:0 16px 34px rgba(13,27,56,.09);
}
/* category: underlined label instead of a pill badge */
.insight-tile .insight-pill{
  align-self:flex-start;
  background:none !important;
  border-radius:0 !important;
  padding:0 0 12px !important;
  margin-bottom:16px !important;
  color:var(--blue);
  font-size:11.5px;
  letter-spacing:.15em;
  text-transform:uppercase;
  font-weight:900;
  border-bottom:2px solid rgba(242,183,5,.6);
}
/* title: editorial serif */
.insight-tile h3{
  font-family:var(--display, Georgia, serif) !important;
  font-weight:600 !important;
  font-size:clamp(20px,1.5vw,25px) !important;
  line-height:1.3 !important;
  letter-spacing:-.012em !important;
  color:var(--navy) !important;
  margin:0 0 14px !important;
  transition:color .2s ease;
}
.insight-tile:hover h3{color:var(--blue) !important}
/* summary: readable, grows to push meta down */
.insight-tile p{
  font-size:15px !important;
  line-height:1.62 !important;
  color:var(--slate) !important;
  margin:0 0 22px !important;
  flex:1 1 auto;
}
/* metadata: divided from summary, structured */
.insight-tile .insight-meta{
  margin:0 !important;
  padding-top:16px;
  border-top:1px solid var(--line);
  font-size:11.5px !important;
  font-weight:700 !important;
  letter-spacing:.06em;
  color:var(--muted);
  text-transform:uppercase;
}
/* subtle Read article cue */
.insight-tile::after{
  content:"Read article \2192";
  margin-top:16px;
  font-size:13px;
  font-weight:800;
  color:var(--blue);
  transition:color .2s ease;
}
.insight-tile:hover::after{color:var(--navy)}
/* ===================== end landing tiles ==================== */

/* hero headline: controlled 2-line break, McKinsey-refined scale/tracking */
.home-hero-v20 .hero-title{
  font-size:clamp(38px,4vw,56px) !important;
  line-height:1.07 !important;
  letter-spacing:-.03em !important;
  max-width:none !important;
  margin:0 0 20px !important;
}
.home-hero-v20 .hero-title br{display:block}

/* hero: give the headline column more room + size to a clean 2-line break */
.home-hero-v20 .hero-split{grid-template-columns:minmax(400px,1.08fr) minmax(500px,1fr) !important;gap:40px !important}
.home-hero-v20 .hero-title{font-size:clamp(34px,3.4vw,47px) !important;line-height:1.08 !important;letter-spacing:-.028em !important}

/* ============================================================
   Premium Services cards — bigger, gold accents, cursor glow
   (the landing "Services" section: the hero of the page)
   ============================================================ */
.service-preview-grid{gap:22px !important}
.service-card{
  position:relative !important;
  overflow:hidden !important;
  display:flex !important;
  flex-direction:column !important;
  min-height:228px !important;
  padding:32px 30px !important;
  border:1px solid var(--line) !important;
  border-radius:20px !important;
  background:#fff !important;
  box-shadow:0 10px 30px rgba(13,27,56,.05) !important;
  transition:transform .25s ease, box-shadow .25s ease, border-color .25s ease !important;
}
/* cursor-following gold spotlight */
.service-card::before{
  content:"";
  position:absolute; inset:0; z-index:0;
  background:radial-gradient(360px circle at var(--mx,50%) var(--my,50%), rgba(242,183,5,.18), transparent 55%);
  opacity:0; transition:opacity .3s ease; pointer-events:none;
}
.service-card:hover::before{opacity:1}
.service-card:hover{
  transform:translateY(-6px);
  border-color:rgba(242,183,5,.55) !important;
  box-shadow:0 26px 50px rgba(13,27,56,.13), 0 0 0 1px rgba(242,183,5,.3) !important;
}
.service-card > *{position:relative; z-index:1}
/* big gold serif number, top-right */
.service-card .num{
  position:absolute !important; top:22px; right:26px; z-index:2;
  width:auto !important; height:auto !important; margin:0 !important;
  background:transparent !important; border-radius:0 !important;
  color:rgba(242,183,5,.9) !important;
  font-family:var(--display, Georgia, serif) !important;
  font-size:30px !important; font-weight:600 !important; letter-spacing:0 !important;
}
/* icon badge (navy -> gold on hover) */
.card-topline{display:block !important; margin:0 !important}
.service-card .service-svg-icon{
  width:24px !important; height:24px !important; flex:none !important;
  padding:13px !important; box-sizing:content-box !important;
  background:linear-gradient(135deg,#0B1F3A,#1677FF) !important;
  border-radius:14px !important;
  stroke:#fff !important; stroke-width:1.8 !important;
  margin:0 0 22px !important; transform:none !important;
  transition:background .25s ease;
}
.service-card:hover .service-svg-icon{background:linear-gradient(135deg,#0B1F3A,#F2B705) !important}
/* title + copy */
.service-card h3{
  font-family:var(--sans) !important; font-weight:800 !important;
  font-size:clamp(22px,1.6vw,26px) !important; line-height:1.12 !important;
  letter-spacing:-.02em !important; color:var(--navy) !important; margin:0 0 10px !important;
}
.service-card:hover h3{color:#0B1F3A !important}
.service-card p{
  font-size:15px !important; line-height:1.55 !important;
  color:var(--slate) !important; margin:0 0 0 0 !important;
}
/* gold "Explore ->" appears on hover, pinned to bottom */
.service-card::after{
  content:"Explore \2192"; position:relative; z-index:1;
  margin-top:auto; padding-top:20px;
  font-size:13px; font-weight:800; letter-spacing:.03em;
  color:rgba(200,146,10,0); transform:translateX(-5px);
  transition:color .25s ease, transform .25s ease;
}
.service-card:hover::after{color:#C8920A; transform:translateX(0)}
/* ==================== end premium services ================= */

/* fix: services card top row = [icon badge]  ...  [gold number], title below */
.service-card .card-topline{
  display:flex !important; flex-wrap:wrap !important;
  align-items:center !important; justify-content:space-between !important;
  margin:0 !important;
}
.service-card .service-svg-icon{order:1 !important; margin:0 !important}
.service-card .num{
  position:static !important; order:2 !important; top:auto !important; right:auto !important;
  font-size:27px !important; line-height:1 !important;
}
.service-card h3{order:3 !important; flex:0 0 100% !important; width:100% !important; margin:22px 0 10px !important}

/* force consistent premium gold number on ALL service cards */
.service-preview-grid .service-card span.num{color:#C28A12 !important}

/* ============================================================
   Services cards v2 — modern, blue (match Insights), no gold
   ============================================================ */
.service-card::before{display:none !important}          /* kill gold cursor glow */
.service-card:hover{
  transform:translateY(-4px) !important;
  border-color:#C3D5EE !important;                       /* blue border like Insights */
  box-shadow:0 16px 34px rgba(13,27,56,.09) !important;
}
/* modern soft-blue icon chip; fills blue on hover */
.service-card .service-svg-icon{
  background:#EAF1FF !important;
  stroke:#1677FF !important; stroke-width:2 !important;
  border-radius:14px !important; padding:13px !important;
  transition:background .22s ease, stroke .22s ease !important;
}
.service-card:hover .service-svg-icon{background:#1677FF !important; stroke:#fff !important}
/* quiet slate index number (no gold) */
.service-preview-grid .service-card span.num{color:#9AA8BD !important; font-weight:600 !important}
/* title turns blue on hover (Insights behavior) */
.service-card:hover h3{color:var(--blue) !important}
/* more detail: always-visible "Explore service ->" with a divider above */
.service-card::after{
  content:"Explore service \2192" !important;
  position:relative; z-index:1;
  margin-top:auto !important; padding-top:18px !important;
  border-top:1px solid var(--line) !important;
  color:var(--blue) !important; opacity:1 !important; transform:none !important;
  font-size:13px !important; font-weight:800 !important; letter-spacing:.02em !important;
}
.service-card:hover::after{color:#0B2A6B !important}
/* ==================== end services v2 ====================== */

/* normalize service-card numbers: identical across all six */
.service-preview-grid .service-card span.num{
  font-family:var(--display, Georgia, serif) !important;
  font-size:21px !important;
  font-weight:600 !important;
  line-height:1 !important;
  letter-spacing:.01em !important;
  color:#9AA8BD !important;
}

/* ============================================================
   Services card header v3 — icon + NAME on one line, number top-right
   bigger, more readable title
   ============================================================ */
.service-card{padding-top:30px !important}
/* number pinned top-right, out of flow (stays consistent) */
.service-preview-grid .service-card span.num{
  position:absolute !important; top:28px !important; right:28px !important;
  order:0 !important; margin:0 !important;
}
/* icon + title share one row */
.service-card .card-topline{
  display:flex !important; flex-wrap:nowrap !important; align-items:center !important;
  gap:15px !important; padding-right:42px !important; margin:0 0 15px !important;
}
.service-card .service-svg-icon{order:1 !important; flex:0 0 auto !important; margin:0 !important}
.service-card h3{
  order:2 !important; flex:1 1 auto !important; width:auto !important; margin:0 !important;
  font-family:var(--sans) !important; font-weight:800 !important;
  font-size:clamp(23px,1.6vw,28px) !important; line-height:1.16 !important;
  letter-spacing:-.012em !important; color:var(--navy) !important;
}
.service-card:hover h3{color:var(--blue) !important}

/* remove service-card numbers */
.service-preview-grid .service-card span.num{display:none !important}
.service-card .card-topline{padding-right:0 !important}

/* ============================================================
   Services PAGE — one service at a time (tabbed) + enhanced
   ============================================================ */
.service-tabs{
  display:flex; flex-wrap:wrap; gap:0 30px;
  margin:0 0 52px; border-bottom:1px solid var(--line);
  scroll-margin-top:96px;
}
.service-tab{
  appearance:none; background:none; border:0; cursor:pointer;
  padding:0 0 16px; margin-bottom:-1px;
  font-family:var(--sans); font-weight:750; font-size:15px; letter-spacing:-.01em;
  color:var(--muted); border-bottom:2px solid transparent;
  transition:color .2s ease, border-color .2s ease;
}
.service-tab:hover{color:var(--navy)}
.service-tab.is-active{color:var(--blue); border-bottom-color:var(--blue)}
/* show only the active service */
.services-page .service-detail{display:none !important; border-bottom:0 !important; padding:6px 0 16px !important}
.services-page .service-detail.is-active{display:grid !important}
/* enhance the active panel: bigger, clearer */
.services-page .service-detail{grid-template-columns:300px 1fr !important; gap:66px !important; align-items:start !important}
.services-page .service-detail .detail-num{color:var(--blue) !important; letter-spacing:.16em !important}
.services-page .service-detail h2{font-size:clamp(40px,4vw,56px) !important; line-height:1.02 !important; margin-top:14px !important}
.services-page .service-detail h3{font-size:clamp(26px,2.1vw,32px) !important; line-height:1.18 !important; margin-bottom:22px !important; color:var(--navy) !important}
.services-page .service-detail p{font-size:18px !important; line-height:1.66 !important; color:var(--slate) !important}
.services-page .value-box{background:#F7F9FC !important; border:1px solid var(--line) !important; border-radius:16px !important; padding:26px 30px !important; margin-top:30px !important}
.services-page .value-box h4{color:var(--navy) !important; margin-bottom:12px !important}
/* ==================== end services tabs ==================== */

/* picture-frame each service (the active tab panel) */
.services-page .service-detail.is-active{
  border:1px solid #E3EAF3 !important;
  border-radius:22px !important;
  background:#fff !important;
  box-shadow:0 18px 46px rgba(13,27,56,.07) !important;
  padding:48px 52px !important;
  margin:0 0 8px !important;
  position:relative; overflow:hidden;
}
/* slim blue accent on the frame's top edge */
.services-page .service-detail.is-active::before{
  content:""; position:absolute; left:0; top:0; height:4px; width:100%;
  background:linear-gradient(90deg,var(--blue),var(--cyan));
}

/* ============================================================
   Unify ALL CTA bands ("takeaway") to the Insights-page style
   (overrides the homepage compact variant)
   ============================================================ */
.cta-band, .cta-band.home-cta-compact{ padding:58px 0 !important; }
.cta-band .cta-inner h2,
.home-cta-compact .cta-inner h2{
  font-family:var(--display, Georgia, serif) !important;
  font-weight:500 !important;
  font-size:clamp(38px,3.9vw,58px) !important;
  line-height:1.05 !important;
  letter-spacing:-.025em !important;
  color:#fff !important;
  margin:0 !important;
}
.cta-band .cta-inner p,
.home-cta-compact .cta-inner p{
  font-size:17px !important;
  line-height:1.5 !important;
  color:#D8E2F1 !important;
  margin-top:12px !important;
}
.cta-band .btn.gold,
.home-cta-compact .btn.gold{
  padding:15px 26px !important;
  font-size:15px !important;
  font-weight:800 !important;
}
/* ==================== end CTA unify ======================== */

/* ============================================================
   Home hero: headline size ~ Services page-title + align
   text block and infographic heights
   ============================================================ */
.home-hero-v20 .hero-split{
  grid-template-columns:minmax(440px,1.18fr) minmax(420px,.92fr) !important;
  align-items:stretch !important; gap:50px !important;
}
.home-hero-v20 .hero-title{
  font-size:clamp(42px,5vw,70px) !important;
  line-height:1.06 !important; letter-spacing:-.03em !important;
}
.home-hero-v20 .hero-left{
  justify-content:center !important; max-width:none !important; min-height:auto !important;
}
.home-hero-v20 .hero-framework-image{
  height:100% !important; min-height:auto !important;
  display:flex !important; align-items:center !important; justify-content:center !important;
}

/* Insights: relocated featured card spacing */
.featured-insight{padding-top:6px !important; padding-bottom:8px !important}

/* home hero retune: bigger headline but keep clean 2-line break */
.home-hero-v20 .hero-split{grid-template-columns:minmax(440px,1.26fr) minmax(400px,.84fr) !important; gap:46px !important}
.home-hero-v20 .hero-title{font-size:clamp(40px,4.6vw,63px) !important; line-height:1.07 !important}

/* ===== v26: new horizontal Aspyre logo (Advise. Build. Scale.) ===== */
/* Grow the header so the full logo + tagline are clearly visible (was clipped at 68px) */
.site-header{overflow:visible !important;}
.nav,.nav-wrap{height:104px !important;min-height:104px !important;}
.brand{gap:0 !important;align-items:center !important;}
.brand img.brand-logo{
  width:auto !important;
  height:74px !important;
  max-height:74px !important;
  max-width:440px !important;
  object-fit:contain !important;
  display:block !important;
}
.brand-label{display:none !important;}
@media (max-width:900px){
  .nav,.nav-wrap{height:84px !important;min-height:84px !important;}
  .brand img.brand-logo{height:58px !important;max-width:320px !important;}
}
@media (max-width:560px){
  .nav,.nav-wrap{height:74px !important;min-height:74px !important;}
  .brand img.brand-logo{height:50px !important;max-width:260px !important;}
}
/* Footer: navy logo on a white rounded card over the dark footer */
.footer img.footer-logo,
.footer .footer-grid img.brand-logo{
  width:auto !important;
  height:auto !important;
  max-width:320px !important;
  max-height:96px !important;
  object-fit:contain !important;
  display:block !important;
  background:#fff;
  border-radius:16px;
  padding:16px 22px;
  box-shadow:0 14px 30px rgba(0,0,0,.18);
}
.footer-tagline{display:none !important;}


/* ============================================================
   v26: Services hero — "full treatment" (atmosphere + gradient
   type + entrance motion + transform card). Scoped so it does
   NOT touch about/insights .page-hero.
   ============================================================ */
.services-hero-pro{position:relative;overflow:hidden;border-bottom:1px solid var(--line);
  background:linear-gradient(105deg,#fff 0%,#F7F9FC 56%,#EEF6FF 100%);padding:80px 0 72px}
.services-hero-pro::before{content:"";position:absolute;inset:0;pointer-events:none;
  background:radial-gradient(circle at 80% 20%,rgba(22,119,255,.16),transparent 36%),
             radial-gradient(circle at 6% 88%,rgba(0,178,227,.10),transparent 34%)}
.services-hero-pro .container{position:relative;display:grid;
  grid-template-columns:minmax(0,1.08fr) minmax(330px,.92fr);gap:54px;align-items:start}
.hero-pro-copy{min-width:0}
.services-hero-pro .page-title{letter-spacing:-.03em;line-height:1.04;margin-top:4px}
.services-hero-pro .intro-box{margin-top:24px;border-left:3px solid var(--gold)}
.services-hero-pro .actions{margin-top:28px}

/* igniting focal phrase */
.grad-word{background:linear-gradient(92deg,var(--blue) 0%,var(--cyan) 44%,var(--gold) 100%);
  -webkit-background-clip:text;background-clip:text;color:transparent;
  background-size:220% 100%;animation:gradShift 7s ease-in-out infinite}
@keyframes gradShift{0%,100%{background-position:0% 50%}50%{background-position:100% 50%}}

/* transform card visual */
.hero-pro-visual{min-width:0}
.transform-card{position:relative;overflow:hidden;padding:30px 30px 32px;border:1px solid var(--line);
  border-radius:24px;box-shadow:var(--shadow);background:rgba(255,255,255,.72);backdrop-filter:blur(8px)}
.transform-card::before{content:"";position:absolute;inset:auto -60px -70px auto;width:230px;height:230px;
  border-radius:50%;pointer-events:none;background:radial-gradient(circle,rgba(22,119,255,.18),transparent 68%)}
.tc-label{display:inline-block;font-size:11px;letter-spacing:.18em;text-transform:uppercase;
  font-weight:800;color:var(--blue);margin-bottom:24px}
.tc-steps{list-style:none;margin:0;padding:0;position:relative}
.tc-step{position:relative;display:flex;gap:18px;padding:0 0 26px}
.tc-step:last-child{padding-bottom:0}
.tc-dot{position:relative;flex:0 0 auto;width:16px;height:16px;margin-top:4px;border-radius:50%;
  background:var(--blue);box-shadow:0 0 0 5px rgba(22,119,255,.14)}
.tc-step::after{content:"";position:absolute;left:7px;top:22px;bottom:8px;width:2px;opacity:.45;
  background:linear-gradient(var(--blue),var(--cyan))}
.tc-step:last-child::after{display:none}
.tc-step--end .tc-dot{background:var(--gold);box-shadow:0 0 0 5px rgba(242,183,5,.20)}
.tc-step b{display:block;font-size:16px;color:var(--navy)}
.tc-step small{display:block;margin-top:3px;color:var(--muted);font-size:13px;line-height:1.4}

/* entrance motion */
.services-hero-pro .kicker,.services-hero-pro .page-title,.services-hero-pro .intro-box,
.services-hero-pro .actions,.hero-pro-visual{
  animation:heroRise .7s cubic-bezier(.2,.7,.2,1) both}
.services-hero-pro .page-title{animation-delay:.06s}
.services-hero-pro .intro-box{animation-delay:.14s}
.services-hero-pro .actions{animation-delay:.2s}
.hero-pro-visual{animation-delay:.18s}
@keyframes heroRise{from{opacity:0;transform:translateY(18px)}to{opacity:1;transform:none}}
@media (prefers-reduced-motion:reduce){.services-hero-pro *,.insights-hero-pro *,.grad-word{animation:none!important}}

/* responsive */
@media (max-width:1050px){.services-hero-pro .container{grid-template-columns:1fr;gap:38px}
  .hero-pro-visual{max-width:520px}}
@media (max-width:760px){.services-hero-pro{padding:48px 0 44px}
  .transform-card{padding:26px 24px 28px}}

/* ============================================================
   v26: Insights hero — unify with the Services premium look
   (atmosphere + gradient accent + entrance motion). Keeps its
   own layout: headline left, intro+CTA right, top-aligned.
   ============================================================ */
.insights-hero-pro{position:relative;overflow:hidden;
  background:linear-gradient(105deg,#fff 0%,#F7F9FC 56%,#EEF6FF 100%)}
.insights-hero-pro::before{content:"";position:absolute;inset:0;pointer-events:none;
  background:radial-gradient(circle at 80% 20%,rgba(22,119,255,.16),transparent 36%),
             radial-gradient(circle at 6% 88%,rgba(0,178,227,.10),transparent 34%)}
.insights-hero-pro .container{position:relative}
.insights-hero-pro .page-title{letter-spacing:-.03em;line-height:1.04}
.insights-hero-pro .kicker,.insights-hero-pro .page-title,.insights-hero-pro .intro-box{
  animation:heroRise .7s cubic-bezier(.2,.7,.2,1) both}
.insights-hero-pro .page-title{animation-delay:.06s}
.insights-hero-pro .intro-box{animation-delay:.16s}

/* ============================================================
   v26: Homepage hero — gradient accent + frosted glass-card
   frame around the framework visual + entrance/float motion.
   Keeps the bold sans headline identity.
   ============================================================ */
.home-hero-v20 .hero-actions{margin-top:30px}
/* frosted glass card around the framework diagram (matches Aspyre Path card) */
.home-hero-v20 .hero-framework-image{
  position:relative;overflow:hidden;padding:12px !important;
  background:rgba(255,255,255,.72);
  -webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);
  border:1px solid var(--line);border-radius:26px;box-shadow:var(--shadow)}
.home-hero-v20 .hero-framework-image::before{content:"";position:absolute;
  inset:auto -70px -90px auto;width:270px;height:270px;border-radius:50%;pointer-events:none;z-index:0;
  background:radial-gradient(circle,rgba(22,119,255,.18),transparent 68%)}
.home-hero-v20 .hero-framework-image img{position:relative;z-index:1;width:100%;
  max-width:none !important;border-radius:16px;animation:heroFloat 6s ease-in-out infinite}
@keyframes heroFloat{0%,100%{transform:translateY(0)}50%{transform:translateY(-10px)}}
/* entrance motion to match the other heroes */
.home-hero-v20 .hero-title,.home-hero-v20 .hero-subcopy,.home-hero-v20 .hero-actions,.home-hero-v20 .hero-framework-image{
  animation:heroRise .7s cubic-bezier(.2,.7,.2,1) both}
.home-hero-v20 .hero-subcopy{animation-delay:.1s}
.home-hero-v20 .hero-actions{animation-delay:.18s}
.home-hero-v20 .hero-framework-image{animation-delay:.12s}
@media (prefers-reduced-motion:reduce){.home-hero-v20 *{animation:none!important}}

/* v26: enlarge the framework diagram — give its column more width and
   let the glass card hug the image (no tall empty box around it) */
.home-hero-v20 .hero-split{grid-template-columns:minmax(420px,1.08fr) minmax(460px,1.02fr) !important;gap:44px !important;align-items:center !important}
.home-hero-v20 .hero-framework-image{align-self:center !important;height:auto !important;min-height:0 !important}
.home-hero-v20 .hero-title{font-size:clamp(36px,3.9vw,54px) !important;line-height:1.05 !important;text-wrap:balance}

/* ============================================================
   v26: Unified inner-page hero — About / Contact / Services /
   Insights. Headline left, intro (+optional CTAs) on the right,
   atmospheric background, gradient accent word. One class, four
   identical heroes.
   ============================================================ */
.page-hero.hero-atmo{position:relative;overflow:hidden;
  background:linear-gradient(105deg,#fff 0%,#F7F9FC 56%,#EEF6FF 100%)}
.page-hero.hero-atmo::before{content:"";position:absolute;inset:0;pointer-events:none;
  background:radial-gradient(circle at 80% 20%,rgba(22,119,255,.16),transparent 36%),
             radial-gradient(circle at 6% 88%,rgba(0,178,227,.10),transparent 34%)}
.page-hero.hero-atmo .container{position:relative}
.page-hero.hero-atmo .page-title{letter-spacing:-.03em;line-height:1.04}
.page-hero.hero-atmo .intro-box .actions{margin-top:26px}
.page-hero.hero-atmo .kicker,.page-hero.hero-atmo .page-title,.page-hero.hero-atmo .intro-box{
  animation:heroRise .7s cubic-bezier(.2,.7,.2,1) both}
.page-hero.hero-atmo .page-title{animation-delay:.06s}
.page-hero.hero-atmo .intro-box{animation-delay:.16s}
@media (prefers-reduced-motion:reduce){.page-hero.hero-atmo *{animation:none!important}}

/* v26: homepage headline — 4 stacked lines, serif display font to match
   the Services/Insights page titles (same family, weight, tracking) */
.home-hero-v20 .hero-title{font-family:var(--display) !important;font-weight:500 !important;
  letter-spacing:-.03em !important;font-size:clamp(42px,5vw,72px) !important;line-height:1.04 !important;text-wrap:initial !important}
.home-hero-v20 .hero-title .lead-word{display:block;font-size:1em;line-height:1.04;margin:0}
.home-hero-v20 .hero-title .grad-word{display:block}

/* v26: enlarge the framework infographic so it fills the space between
   the hero copy and the card. Give its column more width and tighten the
   gap; the glass card hugs the (now larger) image edge-to-edge — no empty
   bands — and its height lands at roughly the hero-text height. */
.home-hero-v20 .hero-split{
  grid-template-columns:minmax(340px,.86fr) minmax(580px,1.24fr) !important;
  gap:30px !important;align-items:center !important}
.home-hero-v20 .hero-framework-image{
  align-self:center !important;height:auto !important;min-height:0 !important}
.home-hero-v20 .hero-framework-image img{
  position:static !important;inset:auto !important;
  width:100% !important;height:auto !important;
  max-width:none !important;object-fit:contain}

/* v27: migrated-article extras (back link, figure, related, byline) */
.article-page .back{display:inline-block;color:var(--blue);font-weight:850;font-size:14px;margin-bottom:18px}
.article-page .article-hero .category{display:inline-block;margin-bottom:14px}
.article-body strong{color:var(--navy)}
.article-figure{margin:34px 0;text-align:center}
.article-figure img{width:100%;height:auto;border:1px solid var(--line);border-radius:14px;display:block}
.article-figure figcaption{margin-top:10px;color:var(--muted);font-size:13px}
.article-related{margin-top:6px}
.article-related h3{font-size:22px;margin-bottom:14px;font-family:var(--display)}
.article-related a{display:block;color:var(--blue);font-weight:700;margin:8px 0}
.footer-tag{margin:8px 0 6px}

/* v28: framework image — static, no ring */
.home-hero-v20 .hero-framework-image{position:relative}
.home-hero-v20 .hero-framework-image img{animation:none !important}
