
:root{
  --cpm-red:#E30613;
  --cpm-black:#111315;
  --cpm-grey:#6B7178;
  --cpm-line:#E6E8EB;
  --cpm-soft:#F5F6F7;
  --cpm-ink:#16181B;
}
.cpm-shell{width:min(1360px,100%);margin:0 auto}
.cpm-section,.cpm-hero-header,.cpm-impact,.cpm-cta{box-sizing:border-box;font-family:inherit}
.cpm-section *,.cpm-hero-header *,.cpm-impact *,.cpm-cta *{box-sizing:border-box}
.cpm-section{position:relative}
.cpm-section + .cpm-section{border-top:1px solid rgba(17,19,21,.035)}
.cpm-eyebrow{display:inline-flex;align-items:center;gap:10px;font-size:11px;font-weight:800;letter-spacing:.08em;text-transform:uppercase;color:var(--cpm-accent,var(--cpm-red));margin-bottom:16px}
.cpm-eyebrow:after{content:"";width:30px;height:1px;background:currentColor}
.cpm-section h2,.cpm-impact h2,.cpm-cta h2{font-size:clamp(38px,4.6vw,70px);line-height:.98;letter-spacing:-.045em;margin:0;color:var(--cpm-ink)}
.cpm-section h3{font-size:19px;line-height:1.12;margin:0 0 10px;color:var(--cpm-ink)}
.cpm-section p,.cpm-richtext p,.cpm-impact p,.cpm-cta p{line-height:1.7;color:var(--cpm-grey)}
.cpm-richtext p:last-child{margin-bottom:0}
.cpm-actions{display:flex;gap:12px;flex-wrap:wrap;margin-top:30px}
.cpm-btn{display:inline-flex;align-items:center;justify-content:center;gap:18px;min-height:52px;padding:0 22px;text-decoration:none;text-transform:uppercase;font-size:12px;font-weight:800;letter-spacing:.04em;border:1px solid transparent;transition:.2s ease}
.cpm-btn--primary{background:var(--cpm-red);color:#fff;border-color:var(--cpm-red)}
.cpm-btn--primary:hover{color:#fff;transform:translateY(-2px);box-shadow:0 10px 28px rgba(227,6,19,.18)}
.cpm-btn--secondary{background:#fff;color:#111;border-color:#B8BCC1}
.cpm-btn--secondary:hover{border-color:var(--cpm-red);color:var(--cpm-red)}


/* HERO HEADER v1.3 */
.cpm-hero-header{
  --cpm-hero-copy-width:42%;
  --eyebrow_gap:24px;
  --heading_gap:10px;
  --lead_gap:28px;
  --body_gap:12px;
  --buttons_gap:30px;
  background:#fff;
  overflow:hidden;
}
.cpm-hero-header__inner{
  width:100%;
  margin:0 auto;
  min-height:inherit;
  display:grid;
  grid-template-columns:minmax(0,var(--cpm-hero-copy-width)) minmax(0,calc(100% - var(--cpm-hero-copy-width)));
}
.cpm-hero-header__copy{
  display:flex;
  flex-direction:column;
  position:relative;
  z-index:3;
}
.cpm-hero-header__image{
  min-height:inherit;
  position:relative;
  overflow:hidden;
}
.cpm-hero-header__image:before{
  content:"";
  position:absolute;
  inset:0;
  z-index:2;
  pointer-events:none;
}
.cpm-hero-header__image img{
  position:absolute;
  inset:0;
  width:100%;
  height:100%;
  display:block;
}
.cpm-hero-header--image-shadow .cpm-hero-header__image{
  box-shadow:0 20px 60px rgba(0,0,0,.16);
}
.cpm-hero-header .cpm-eyebrow{margin-bottom:var(--eyebrow_gap)}
.cpm-hero-header__title{margin:0;text-transform:uppercase}
.cpm-hero-header__title-red{margin-top:var(--heading_gap)}
.cpm-hero-header__lead{margin-top:var(--lead_gap);margin-bottom:var(--body_gap)}
.cpm-hero-header .cpm-richtext{margin-top:0}
.cpm-hero-header .cpm-actions{margin-top:var(--buttons_gap)}
.cpm-hero-header__caption{
  position:absolute;
  right:24px;
  bottom:24px;
  z-index:3;
  background:var(--cpm-red);
  color:#fff;
  padding:10px 12px;
  font-size:11px;
  font-weight:800;
  letter-spacing:.04em;
  text-transform:uppercase;
}
.cpm-hero-header--split.cpm-hero-header--image-left .cpm-hero-header__image{order:1}
.cpm-hero-header--split.cpm-hero-header--image-left .cpm-hero-header__copy{order:2}

.cpm-hero-header--overlay{position:relative}
.cpm-hero-header--overlay .cpm-hero-header__inner{display:block;min-height:inherit;position:relative}
.cpm-hero-header--overlay .cpm-hero-header__image{position:absolute;inset:0}
.cpm-hero-header--overlay .cpm-hero-header__copy{
  min-height:inherit;
  width:min(var(--cpm-hero-copy-width),820px);
  background:transparent!important;
  position:relative;
  z-index:3;
}
.cpm-hero-header--overlay .cpm-hero-header__image:after{
  content:"";
  position:absolute;
  inset:0;
  background:linear-gradient(90deg,rgba(255,255,255,.95) 0%,rgba(255,255,255,.76) 35%,rgba(255,255,255,.08) 72%,transparent 100%);
  z-index:1;
}

.cpm-hero-header--boxed{position:relative}
.cpm-hero-header--boxed .cpm-hero-header__inner{display:block;min-height:inherit;position:relative}
.cpm-hero-header--boxed .cpm-hero-header__image{position:absolute;inset:0}
.cpm-hero-header--boxed .cpm-hero-header__copy{
  width:min(var(--cpm-hero-copy-width),760px);
  margin:64px;
  position:relative;
  z-index:3;
  box-shadow:0 20px 60px rgba(0,0,0,.12);
}

@media(max-width:900px){
  .cpm-hero-header__inner{grid-template-columns:1fr!important;display:grid!important}
  .cpm-hero-header__copy,.cpm-hero-header__image{width:100%!important}
  .cpm-hero-header--overlay .cpm-hero-header__image,
  .cpm-hero-header--boxed .cpm-hero-header__image{position:relative;inset:auto}
  .cpm-hero-header--overlay .cpm-hero-header__copy,
  .cpm-hero-header--boxed .cpm-hero-header__copy{
    width:100%!important;
    margin:0!important;
    box-shadow:none!important;
    background:#fff!important;
  }
  .cpm-hero-header--mobile-image-before .cpm-hero-header__image{order:1}
  .cpm-hero-header--mobile-image-before .cpm-hero-header__copy{order:2}
  .cpm-hero-header--mobile-image-after .cpm-hero-header__copy{order:1}
  .cpm-hero-header--mobile-image-after .cpm-hero-header__image{order:2}
  .cpm-hero-header--mobile-stack-buttons .cpm-actions{flex-direction:column}
  .cpm-hero-header--mobile-stack-buttons .cpm-btn{width:100%}
  .cpm-hero-header--mobile-hide-body .cpm-richtext{display:none}
  .cpm-hero-header--mobile-hide-secondary .cpm-btn--secondary{display:none}
}


/* CLIENT LOGOS */
.cpm-client-logos{background:#fff!important;padding-top:44px!important;padding-bottom:44px!important}
.cpm-client-logos__label{text-align:center;color:#969CA3;font-size:12px;margin-bottom:28px}
.cpm-client-logos__grid{display:grid;grid-template-columns:repeat(8,minmax(0,1fr));gap:28px;align-items:center}
.cpm-client-logo{display:flex;align-items:center;justify-content:center;min-height:48px;opacity:.52;filter:grayscale(1);transition:.2s;text-decoration:none;color:#5D636B;font-weight:700}
.cpm-client-logo:hover{opacity:.92;filter:grayscale(0)}
.cpm-client-logo img{max-height:34px;max-width:118px;width:auto;height:auto}

/* BEFORE/AFTER — intentionally oversized focal section */
.cpm-before-after,.elementor-widget-cpm-before-after .cpm-section{background:#fff}
.cpm-intro{max-width:830px;margin-bottom:58px}
.cpm-ba{height:min(72vh,800px);min-height:560px;position:relative;overflow:hidden;background:#ddd;box-shadow:0 24px 70px rgba(16,18,20,.10)}
.cpm-ba__image{position:absolute;inset:0}
.cpm-ba__image img{width:100%;height:100%;object-fit:cover}
.cpm-ba__after{clip-path:inset(0 0 0 50%);z-index:2}
.cpm-ba__label{position:absolute;bottom:26px;left:26px;background:rgba(15,17,20,.92);color:#fff;padding:12px 14px;font-size:11px;font-weight:800;letter-spacing:.04em;text-transform:uppercase}
.cpm-ba__after .cpm-ba__label{left:auto;right:26px;background:var(--cpm-red)}
.cpm-ba__range{position:absolute;inset:0;z-index:5;width:100%;height:100%;opacity:0;cursor:ew-resize}
.cpm-ba__handle{position:absolute;z-index:4;left:50%;top:0;bottom:0;width:2px;background:#fff;color:transparent}
.cpm-ba__handle:after{content:"↔";color:#111;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);width:60px;height:60px;border-radius:50%;background:#fff;display:grid;place-items:center;box-shadow:0 8px 30px rgba(0,0,0,.24);font-size:18px}

/* OUTCOMES — strong black-on-warm-white editorial grid */
.elementor-widget-cpm-outcomes .cpm-section{background:#FAFAF9!important}
.cpm-outcomes{display:grid;grid-template-columns:repeat(4,1fr);margin-top:64px;border-top:1px solid #DCDDE0}
.cpm-outcomes article{padding:38px 34px 20px 0;border-right:1px solid #DCDDE0;margin-right:34px;min-height:250px}
.cpm-outcomes article:last-child{border-right:0;margin-right:0}
.cpm-outcomes article>span,.cpm-process-grid article>span{display:block;font-size:48px;font-weight:800;color:#C5C8CC;letter-spacing:-.04em;margin-bottom:28px}
.cpm-outcomes p{font-size:14px}

/* PROCESS — darker, visual cards */
.elementor-widget-cpm-process .cpm-section{background:#111315!important;color:#fff}
.elementor-widget-cpm-process .cpm-section h2,.elementor-widget-cpm-process .cpm-section h3{color:#fff}
.elementor-widget-cpm-process .cpm-section p{color:#AEB3B9}
.elementor-widget-cpm-process .cpm-eyebrow{color:#FF3240}
.cpm-process-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:16px;margin-top:58px}
.cpm-process-grid article{background:#171A1E;border:1px solid #292D31;padding:18px 18px 24px;min-height:360px}
.cpm-process-grid article>span{color:#4B5057;margin:2px 0 18px}
.cpm-process-grid img{width:100%;aspect-ratio:4/3;object-fit:cover;margin-bottom:22px}
.cpm-process-grid h3{text-transform:uppercase;font-size:15px}

/* IMPACT — full bleed image break */
.cpm-impact{position:relative;background-size:cover;background-position:center;min-height:650px;padding:110px 36px;display:flex;align-items:center;color:#fff;overflow:hidden}
.cpm-impact-overlay{position:absolute;inset:0;background:linear-gradient(90deg,rgba(7,9,11,.86) 0%,rgba(7,9,11,.62) 40%,rgba(7,9,11,.13) 78%)}
.cpm-impact .cpm-shell{position:relative;z-index:2}
.cpm-impact h2{color:#fff;max-width:760px;font-size:clamp(46px,5.4vw,82px)}
.cpm-impact p{color:rgba(255,255,255,.86);max-width:650px;font-size:19px;margin-top:24px}

/* CAPABILITIES — white band with cards */
.elementor-widget-cpm-capabilities .cpm-section{background:#fff!important}
.cpm-capabilities{display:grid;grid-template-columns:repeat(4,1fr);margin-top:56px;gap:12px}
.cpm-capabilities>div{padding:30px 26px;background:#F4F5F6;border-top:3px solid transparent;font-weight:750;min-height:110px;display:flex;align-items:flex-end;transition:.2s}
.cpm-capabilities>div:hover{border-top-color:var(--cpm-red);transform:translateY(-3px)}

/* PROJECTS — large visual proof */
.elementor-widget-cpm-projects .cpm-section{background:#F7F8F9!important}
.cpm-projects{display:grid;grid-template-columns:1.25fr 1fr 1fr;gap:18px;margin-top:54px}
.cpm-projects article{background:#fff;border:0;overflow:hidden;box-shadow:0 8px 30px rgba(17,19,21,.06)}
.cpm-projects img{width:100%;aspect-ratio:16/10;object-fit:cover;display:block}
.cpm-projects article:first-child img{aspect-ratio:16/11}
.cpm-projects h3,.cpm-projects p{padding-left:22px;padding-right:22px}
.cpm-projects h3{margin-top:22px}.cpm-projects p{margin-bottom:22px}

/* CTA */
.cpm-cta{padding:110px 36px;background:#111315;color:#fff;position:relative;overflow:hidden}
.cpm-cta:after{content:"";position:absolute;right:-80px;top:-130px;width:520px;height:520px;border:1px solid rgba(227,6,19,.28);transform:rotate(22deg)}
.cpm-cta .cpm-shell{position:relative;z-index:2}
.cpm-cta h2{color:#fff;max-width:860px;font-size:clamp(46px,5.5vw,82px)}
.cpm-cta p{color:rgba(255,255,255,.78);max-width:760px;font-size:17px}
.cpm-cta .cpm-eyebrow{color:#ff3340}

@media(max-width:1100px){
  .cpm-client-logos__grid{grid-template-columns:repeat(4,1fr)}
  .cpm-outcomes{grid-template-columns:repeat(2,1fr)}
  .cpm-outcomes article:nth-child(2){border-right:0;margin-right:0}
  .cpm-process-grid{grid-template-columns:repeat(2,1fr)}
  .cpm-capabilities{grid-template-columns:repeat(2,1fr)}
  .cpm-projects{grid-template-columns:1fr 1fr}
  .cpm-projects article:first-child{grid-column:1/-1}
}
@media(max-width:900px){
  .cpm-hero-header{min-height:auto}
  .cpm-hero-header__inner{grid-template-columns:1fr}
  .cpm-hero-header__copy{padding:64px 32px 52px}
  .cpm-hero-header__copy:after{display:none}
  .cpm-hero-header__image{min-height:480px}
  .cpm-ba{min-height:480px}
}
@media(max-width:600px){
  .cpm-section{padding-left:20px!important;padding-right:20px!important}
  .cpm-hero-header__copy{padding:48px 20px 40px}
  .cpm-hero-header__image{min-height:330px}
  .cpm-hero-header__title{font-size:48px!important}
  .cpm-actions{flex-direction:column}
  .cpm-btn{width:100%}
  .cpm-client-logos__grid{grid-template-columns:repeat(2,1fr);gap:22px}
  .cpm-ba{min-height:340px;height:420px}
  .cpm-outcomes,.cpm-process-grid,.cpm-capabilities,.cpm-projects{grid-template-columns:1fr}
  .cpm-outcomes article{border-right:0;border-bottom:1px solid #DCDDE0;margin-right:0}
  .cpm-projects article:first-child{grid-column:auto}
  .cpm-impact,.cpm-cta{padding-left:20px;padding-right:20px}
}


/* CPM ADD ALL BLOCKS */
.cpm-add-all{--cpm-red:#E30613;--cpm-accent:#E30613}
.cpm-add-all > section{width:100%}
.cpm-add-all .cpm-process{background:#111315!important;color:#fff}
.cpm-add-all .cpm-process h2,.cpm-add-all .cpm-process h3{color:#fff}
.cpm-add-all .cpm-process p{color:#AEB3B9}
.cpm-add-all .cpm-process .cpm-eyebrow{color:#FF3240}


/* CPM ADD ALL v2.0 — corporate editorial */
.cpm-add-all{--aa-accent:#E30613;--aa-black:#101214;--aa-grey:#6e747a;--aa-soft:#f3f4f3;--aa-line:#dfe1e2;background:#fff;color:var(--aa-black);font-family:inherit;overflow:hidden}
.cpm-add-all *{box-sizing:border-box}
.cpm-add-all .aa-shell{width:min(1420px,calc(100% - 96px));margin:auto}
.cpm-add-all .aa-section{padding:130px 0}
.cpm-add-all .aa-eyebrow{font-size:10px;line-height:1.2;font-weight:800;letter-spacing:.16em;text-transform:uppercase;color:var(--aa-accent);margin-bottom:22px}
.cpm-add-all .aa-rule{border-top:1px solid #17191b;padding-top:13px;margin-bottom:80px;font-size:9px;letter-spacing:.16em;font-weight:800;color:#90959a}
.cpm-add-all .aa-rule-dark{border-color:#3b3f43;color:#73787e}
.cpm-add-all h1,.cpm-add-all h2,.cpm-add-all h3{font-family:inherit}
.cpm-add-all h2{font-size:clamp(48px,5.5vw,86px);line-height:.92;letter-spacing:-.055em;margin:0;color:var(--aa-black)}
.cpm-add-all p{color:var(--aa-grey);line-height:1.7}
.cpm-add-all .aa-body{font-size:15px;line-height:1.7;color:var(--aa-grey)}
.cpm-add-all .aa-body p{margin:0}

/* HERO */
.cpm-add-all .aa-hero{display:grid;grid-template-columns:43% 57%;min-height:min(850px,88vh);background:#f5f5f3;border-bottom:1px solid var(--aa-line)}
.cpm-add-all .aa-hero-copy{padding:88px 5.8vw 62px;display:flex;flex-direction:column;justify-content:center;position:relative}
.cpm-add-all .aa-hero-copy h1{font-size:clamp(56px,5.3vw,96px);line-height:.84;letter-spacing:-.065em;font-weight:900;text-transform:uppercase;margin:0;color:#111315}
.cpm-add-all .aa-hero-copy h1 em{display:block;color:var(--aa-accent);font-style:normal;margin-top:10px}
.cpm-add-all .aa-hero-lead{font-size:20px;font-weight:700;line-height:1.38;max-width:580px;margin:34px 0 15px}
.cpm-add-all .aa-hero-copy .aa-body{max-width:560px}
.cpm-add-all .aa-actions{display:flex;gap:10px;flex-wrap:wrap;margin-top:32px}
.cpm-add-all .aa-hero-copy small{position:absolute;bottom:24px;left:5.8vw;font-size:8px;letter-spacing:.18em;color:#969a9e}
.cpm-add-all .aa-hero-image{position:relative;overflow:hidden;background:#dfe1df}
.cpm-add-all .aa-hero-image img{width:100%;height:100%;object-fit:cover;display:block}
.cpm-add-all .cpm-btn{border-radius:0;letter-spacing:.08em}
.cpm-add-all .cpm-btn--primary{background:var(--aa-accent);border-color:var(--aa-accent)}
.cpm-add-all .cpm-btn--dark{background:#111315;border-color:#111315;color:#fff}

/* placeholders */
.cpm-add-all .aa-placeholder{width:100%;height:100%;min-height:260px;display:grid;place-items:center;background:linear-gradient(135deg,#e6e7e5,#d9dbd9);color:#8b9094}
.cpm-add-all .aa-placeholder span{font-size:9px;font-weight:800;letter-spacing:.16em}

/* LOGOS */
.cpm-add-all .aa-logos{padding:34px 0;border-bottom:1px solid var(--aa-line);background:#fff}
.cpm-add-all .aa-logos-label{font-size:9px;letter-spacing:.14em;text-transform:uppercase;color:#999da1;margin-bottom:26px}
.cpm-add-all .aa-logo-grid{display:grid;grid-template-columns:repeat(8,1fr);gap:26px;align-items:center}
.cpm-add-all .aa-logo{height:40px;display:flex;align-items:center;justify-content:center;filter:grayscale(1);opacity:.55}
.cpm-add-all .aa-logo img{max-height:30px;max-width:112px}
.cpm-add-all .aa-logo span{font-size:14px;font-weight:700;color:#666b70}

/* TRANSFORM */
.cpm-add-all .aa-intro{display:grid;grid-template-columns:1.15fr .65fr;gap:10vw;align-items:end;margin-bottom:72px}
.cpm-add-all .aa-intro .aa-body{max-width:480px;padding-bottom:8px}
.cpm-add-all .aa-ba{height:min(76vh,860px);min-height:620px;box-shadow:none}
.cpm-add-all .aa-ba .cpm-ba__label{border-radius:0;letter-spacing:.1em}

/* OUTCOMES */
.cpm-add-all .aa-outcomes{background:#111315;color:#fff}
.cpm-add-all .aa-outcomes h2,.cpm-add-all .aa-outcomes h3{color:#fff}
.cpm-add-all .aa-outcomes-head{max-width:1050px;margin-bottom:76px}
.cpm-add-all .aa-outcome-list{border-top:1px solid #363a3f}
.cpm-add-all .aa-outcome-list article{display:grid;grid-template-columns:80px 1.2fr 1fr 40px;gap:32px;align-items:center;padding:30px 0;border-bottom:1px solid #30343a;transition:.18s}
.cpm-add-all .aa-outcome-list article:hover{padding-left:12px}
.cpm-add-all .aa-outcome-list article>span{font-size:10px;color:#666b71}
.cpm-add-all .aa-outcome-list h3{font-size:clamp(23px,2.25vw,35px);letter-spacing:-.035em;margin:0}
.cpm-add-all .aa-outcome-list p{font-size:14px;margin:0;color:#a3a8ae;max-width:470px}
.cpm-add-all .aa-outcome-list b{font-size:24px;color:var(--aa-accent);font-weight:400}

/* PROCESS */
.cpm-add-all .aa-process{background:#f3f3f1}
.cpm-add-all .aa-process-head{margin-bottom:100px}
.cpm-add-all .aa-process-row{display:grid;grid-template-columns:1.35fr .65fr;gap:8vw;align-items:center;margin-bottom:130px}
.cpm-add-all .aa-process-row.reverse{grid-template-columns:.65fr 1.35fr}
.cpm-add-all .aa-process-row.reverse .aa-process-image{order:2}
.cpm-add-all .aa-process-image{aspect-ratio:16/10;overflow:hidden;background:#ddd}
.cpm-add-all .aa-process-image img{width:100%;height:100%;object-fit:cover}
.cpm-add-all .aa-process-copy>span{font-size:10px;color:var(--aa-accent);font-weight:800}
.cpm-add-all .aa-process-copy h3{font-size:clamp(34px,3.5vw,58px);line-height:.94;letter-spacing:-.05em;margin:20px 0;color:#111315}
.cpm-add-all .aa-process-copy p{font-size:17px;max-width:470px}

/* IMPACT */
.cpm-add-all .aa-impact{min-height:720px;padding:120px 0;background:#222 center/cover no-repeat;position:relative;display:flex;align-items:center;color:#fff}
.cpm-add-all .aa-impact-overlay{position:absolute;inset:0;background:linear-gradient(90deg,rgba(8,10,12,.9),rgba(8,10,12,.55) 50%,rgba(8,10,12,.1) 86%)}
.cpm-add-all .aa-impact .aa-shell{position:relative;z-index:2}
.cpm-add-all .aa-impact h2{font-size:clamp(58px,6.8vw,108px);max-width:1020px;color:#fff}
.cpm-add-all .aa-impact p{font-size:19px;color:rgba(255,255,255,.82);max-width:650px;margin-top:28px}

/* CAPABILITIES */
.cpm-add-all .aa-cap-grid{display:grid;grid-template-columns:.92fr 1.08fr;gap:9vw;align-items:start}
.cpm-add-all .aa-cap-intro h2{font-size:clamp(43px,4.5vw,70px)}
.cpm-add-all .aa-cap-image{margin-top:50px;aspect-ratio:16/9;overflow:hidden}
.cpm-add-all .aa-cap-image img{width:100%;height:100%;object-fit:cover}
.cpm-add-all .aa-cap-list{border-top:1px solid #16181a}
.cpm-add-all .aa-cap-list>div{display:grid;grid-template-columns:60px 1fr 30px;align-items:center;padding:26px 0;border-bottom:1px solid var(--aa-line)}
.cpm-add-all .aa-cap-list span{font-size:9px;color:#999da1}
.cpm-add-all .aa-cap-list strong{font-size:clamp(20px,2vw,30px);letter-spacing:-.025em}
.cpm-add-all .aa-cap-list b{font-size:18px;color:var(--aa-accent);font-weight:400}

/* PROJECTS */
.cpm-add-all .aa-projects{background:#111315;color:#fff}
.cpm-add-all .aa-projects h2,.cpm-add-all .aa-projects h3{color:#fff}
.cpm-add-all .aa-project-grid{display:grid;grid-template-columns:1.45fr .775fr .775fr;gap:18px;margin-top:72px}
.cpm-add-all .aa-project-grid article{background:#171a1e}
.cpm-add-all .aa-project-image{aspect-ratio:4/3;overflow:hidden}
.cpm-add-all .aa-project-grid .featured .aa-project-image{aspect-ratio:16/10}
.cpm-add-all .aa-project-image img{width:100%;height:100%;object-fit:cover}
.cpm-add-all .aa-project-meta{display:grid;grid-template-columns:42px 1fr;padding:20px}
.cpm-add-all .aa-project-meta>span{font-size:9px;color:#6f7479}
.cpm-add-all .aa-project-meta h3{font-size:18px;margin:0 0 5px}
.cpm-add-all .aa-project-meta p{font-size:12px;color:#92979c;margin:0}

/* CTA */
.cpm-add-all .aa-cta{padding:140px 0;background:var(--aa-accent);color:#fff}
.cpm-add-all .aa-cta .aa-eyebrow{color:#fff;opacity:.7}
.cpm-add-all .aa-cta h2{font-size:clamp(58px,7vw,110px);max-width:1100px;color:#fff}
.cpm-add-all .aa-cta p{font-size:19px;color:rgba(255,255,255,.84);max-width:680px;margin:28px 0 34px}

/* presets */
.cpm-add-all.cpm-aa--dark .aa-hero-copy{background:#111315;color:#fff}
.cpm-add-all.cpm-aa--dark .aa-hero-copy h1,.cpm-add-all.cpm-aa--dark .aa-hero-lead{color:#fff}
.cpm-add-all.cpm-aa--dark .aa-hero-copy .aa-body,.cpm-add-all.cpm-aa--dark .aa-hero-copy .aa-body p{color:#aeb3b8}
.cpm-add-all.cpm-aa--minimal .aa-outcomes{background:#f3f3f1;color:#111}
.cpm-add-all.cpm-aa--minimal .aa-outcomes h2,.cpm-add-all.cpm-aa--minimal .aa-outcomes h3{color:#111}
.cpm-add-all.cpm-aa--minimal .aa-outcome-list{border-color:#d7d9da}
.cpm-add-all.cpm-aa--minimal .aa-outcome-list article{border-color:#d7d9da}
.cpm-add-all.cpm-aa--minimal .aa-outcome-list p{color:#6e747a}

@media(max-width:1050px){
 .cpm-add-all .aa-shell{width:calc(100% - 56px)}
 .cpm-add-all .aa-logo-grid{grid-template-columns:repeat(4,1fr)}
 .cpm-add-all .aa-project-grid{grid-template-columns:1fr 1fr}
 .cpm-add-all .aa-project-grid .featured{grid-column:1/-1}
}
@media(max-width:850px){
 .cpm-add-all .aa-section{padding:90px 0}
 .cpm-add-all .aa-hero{grid-template-columns:1fr;min-height:auto}
 .cpm-add-all .aa-hero-copy{padding:64px 28px 52px}
 .cpm-add-all .aa-hero-copy small{display:none}
 .cpm-add-all .aa-hero-image{min-height:480px}
 .cpm-add-all .aa-intro,.cpm-add-all .aa-cap-grid{grid-template-columns:1fr;gap:42px}
 .cpm-add-all .aa-outcome-list article{grid-template-columns:50px 1fr 30px}
 .cpm-add-all .aa-outcome-list p{grid-column:2/3}
 .cpm-add-all .aa-process-row,.cpm-add-all .aa-process-row.reverse{grid-template-columns:1fr;gap:36px;margin-bottom:85px}
 .cpm-add-all .aa-process-row.reverse .aa-process-image{order:0}
}
@media(max-width:600px){
 .cpm-add-all .aa-shell{width:calc(100% - 36px)}
 .cpm-add-all .aa-section{padding:72px 0}
 .cpm-add-all .aa-hero-copy h1{font-size:48px}
 .cpm-add-all .aa-hero-image{min-height:340px}
 .cpm-add-all .aa-actions{flex-direction:column}
 .cpm-add-all .aa-actions .cpm-btn{width:100%}
 .cpm-add-all .aa-logo-grid{grid-template-columns:repeat(2,1fr)}
 .cpm-add-all .aa-ba{height:430px;min-height:430px}
 .cpm-add-all .aa-rule{margin-bottom:52px}
 .cpm-add-all .aa-outcome-list h3{font-size:24px}
 .cpm-add-all .aa-impact{min-height:580px;padding:90px 0}
 .cpm-add-all .aa-project-grid{grid-template-columns:1fr}
 .cpm-add-all .aa-project-grid .featured{grid-column:auto}
 .cpm-add-all .aa-cta{padding:90px 0}
}


/* ==========================================================
   CPM BLOCKS 3.0 — SIGNATURE PAGE
   Corporate / architectural / editorial.
   Scoped to .cpm-signature so standalone widgets stay intact.
   ========================================================== */
.cpm-signature{
 --sig-accent:#E30613;--sig-ink:#101214;--sig-muted:#6d7278;--sig-soft:#f3f3f1;
 --sig-line:#dcdedf;--sig-darkline:#35393e;--sig-ease:cubic-bezier(.2,.75,.25,1);
 background:#fff;color:var(--sig-ink);overflow:hidden
}
.cpm-signature *{box-sizing:border-box}
.cpm-signature .sig-shell{width:calc(100% - 96px);max-width:1440px;margin:0 auto}
.cpm-signature .sig-section{padding:138px 0}
.cpm-signature .sig-kicker{font-size:10px;line-height:1.2;font-weight:800;letter-spacing:.17em;text-transform:uppercase;color:var(--sig-accent);margin-bottom:24px}
.cpm-signature .sig-section-rule{display:grid;grid-template-columns:72px 1fr;border-top:1px solid #151719;padding-top:13px;margin-bottom:86px;font-size:9px;line-height:1;text-transform:uppercase;letter-spacing:.17em;color:#8c9196}
.cpm-signature .sig-section-rule.dark{border-color:var(--sig-darkline);color:#6f747a}
.cpm-signature .sig-section-rule b{font-weight:800}
.cpm-signature h1,.cpm-signature h2,.cpm-signature h3{font-family:inherit}
.cpm-signature h2{font-size:clamp(52px,5.5vw,88px);line-height:.91;letter-spacing:-.06em;font-weight:850;margin:0;color:var(--sig-ink)}
.cpm-signature .sig-copy,.cpm-signature .sig-copy p{font-size:15px;line-height:1.72;color:var(--sig-muted)}
.cpm-signature .sig-copy p{margin:0}
.cpm-signature .cpm-btn{min-height:52px;border-radius:0;padding:0 24px;font-size:10px;font-weight:800;letter-spacing:.11em;text-transform:uppercase;transition:transform .22s var(--sig-ease),background .22s,border-color .22s}
.cpm-signature .cpm-btn:hover{transform:translateY(-2px)}
.cpm-signature .cpm-btn--primary{background:var(--sig-accent);border-color:var(--sig-accent);color:#fff}
.cpm-signature .cpm-btn--secondary{background:transparent;border:1px solid #1a1c1e;color:#111315}
.cpm-signature .cpm-btn--dark{background:#111315;border-color:#111315;color:#fff}
.cpm-signature .sig-placeholder{width:100%;height:100%;min-height:260px;display:grid;place-items:center;background:
 linear-gradient(135deg,rgba(255,255,255,.45),transparent 48%),
 repeating-linear-gradient(90deg,#e2e3e1 0,#e2e3e1 1px,#ebebe9 1px,#ebebe9 80px)}
.cpm-signature .sig-placeholder span{font-size:9px;font-weight:800;letter-spacing:.16em;color:#92969a}

/* HERO */
.cpm-signature .sig-hero{display:grid;grid-template-columns:minmax(480px,42.5%) 1fr;min-height:min(880px,90vh);background:#f5f5f3;border-bottom:1px solid var(--sig-line)}
.cpm-signature .sig-hero-copy{position:relative;z-index:2;padding:88px clamp(42px,5.6vw,104px) 68px;display:flex;flex-direction:column;justify-content:center}
.cpm-signature .sig-hero h1{font-size:clamp(58px,5.25vw,98px);line-height:.835;letter-spacing:-.068em;font-weight:900;text-transform:uppercase;margin:0;color:#101214}
.cpm-signature .sig-hero h1 span,.cpm-signature .sig-hero h1 em{display:block}
.cpm-signature .sig-hero h1 em{font-style:normal;color:var(--sig-accent);margin-top:12px}
.cpm-signature .sig-hero-lead{font-size:clamp(18px,1.45vw,22px);font-weight:700;line-height:1.38;letter-spacing:-.018em;max-width:590px;margin:38px 0 16px}
.cpm-signature .sig-hero .sig-copy{max-width:555px}
.cpm-signature .sig-actions{display:flex;gap:10px;flex-wrap:wrap;margin-top:34px}
.cpm-signature .sig-hero-index{position:absolute;bottom:24px;left:clamp(42px,5.6vw,104px);right:clamp(42px,5.6vw,104px);display:flex;justify-content:space-between;border-top:1px solid #d5d7d6;padding-top:12px;font-size:8px;font-weight:800;letter-spacing:.17em;color:#979b9f}
.cpm-signature .sig-hero-media{position:relative;overflow:hidden;background:#d9dbd9}
.cpm-signature .sig-hero-media>img{width:100%;height:100%;display:block;object-fit:cover;transform:scale(1.001);transition:transform 1.2s var(--sig-ease)}
.cpm-signature .sig-hero:hover .sig-hero-media>img{transform:scale(1.025)}
.cpm-signature .sig-image-tag{position:absolute;right:28px;top:28px;background:#fff;color:#111315;padding:11px 14px;font-size:8px;font-weight:850;letter-spacing:.16em;display:flex;align-items:center;gap:9px}
.cpm-signature .sig-image-tag i{display:block;width:7px;height:7px;background:var(--sig-accent)}
.cpm-signature .sig-corner{position:absolute;width:42px;height:42px;border-color:#fff;border-style:solid;opacity:.75}
.cpm-signature .sig-corner-a{left:28px;bottom:28px;border-width:0 0 1px 1px}
.cpm-signature .sig-corner-b{right:28px;bottom:28px;border-width:0 1px 1px 0}

/* TRUST */
.cpm-signature .sig-trust{padding:34px 0 38px;border-bottom:1px solid var(--sig-line);background:#fff}
.cpm-signature .sig-trust-label{font-size:8px;font-weight:800;letter-spacing:.16em;text-transform:uppercase;color:#9b9fa3;margin-bottom:25px}
.cpm-signature .sig-trust-grid{display:grid;grid-template-columns:repeat(8,1fr);gap:26px;align-items:center}
.cpm-signature .sig-logo{height:36px;display:flex;align-items:center;justify-content:center;opacity:.48;filter:grayscale(1);transition:opacity .2s}
.cpm-signature .sig-logo:hover{opacity:.8}
.cpm-signature .sig-logo img{max-height:27px;max-width:112px}
.cpm-signature .sig-logo span{font-size:13px;font-weight:750;color:#666b70}

/* TRANSFORMATION */
.cpm-signature .sig-transform{background:#fff}
.cpm-signature .sig-intro-grid{display:grid;grid-template-columns:1.2fr .65fr;gap:10vw;align-items:end;margin-bottom:76px}
.cpm-signature .sig-intro-copy{max-width:490px;padding-bottom:7px}
.cpm-signature .sig-ba{height:min(78vh,880px);min-height:640px;box-shadow:none;border:0;background:#e1e2e0}
.cpm-signature .sig-ba .cpm-ba__image img{width:100%;height:100%;object-fit:cover}
.cpm-signature .sig-ba .cpm-ba__label{border-radius:0;background:#111315;color:#fff;letter-spacing:.14em;font-size:8px;padding:10px 12px}
.cpm-signature .sig-ba .cpm-ba__handle{width:54px;height:54px;margin-left:-27px;border-radius:0;background:#fff;color:#111315;box-shadow:0 8px 24px rgba(0,0,0,.15)}
.cpm-signature .sig-ba .cpm-ba__handle span{font-size:18px}
.cpm-signature .sig-caption{display:grid;grid-template-columns:auto 1fr auto;align-items:center;gap:15px;margin-top:17px;font-size:8px;font-weight:800;letter-spacing:.16em;color:#92969a}
.cpm-signature .sig-caption i{height:1px;background:#d7d9da}

/* OUTCOMES */
.cpm-signature .sig-outcomes{background:#111315;color:#fff}
.cpm-signature .sig-outcomes h2,.cpm-signature .sig-outcomes h3{color:#fff}
.cpm-signature .sig-outcomes-head{max-width:1050px;margin-bottom:82px}
.cpm-signature .sig-outcome-list{border-top:1px solid var(--sig-darkline)}
.cpm-signature .sig-outcome-list article{display:grid;grid-template-columns:65px 120px 1.1fr 1fr 36px;gap:28px;align-items:center;padding:30px 0;border-bottom:1px solid #30343a;transition:padding .25s var(--sig-ease),background .25s}
.cpm-signature .sig-outcome-list article:hover{padding-left:14px;background:#15181b}
.cpm-signature .sig-outcome-num{font-size:9px;color:#60656b}
.cpm-signature .sig-outcome-key{font-size:8px;font-weight:850;letter-spacing:.16em;color:var(--sig-accent)}
.cpm-signature .sig-outcome-list h3{font-size:clamp(23px,2.2vw,35px);line-height:1;letter-spacing:-.035em;margin:0}
.cpm-signature .sig-outcome-list p{font-size:14px;line-height:1.6;color:#a0a5ab;margin:0;max-width:470px}
.cpm-signature .sig-arrow{font-size:23px;font-weight:400;color:var(--sig-accent)}

/* STORY */
.cpm-signature .sig-story{background:var(--sig-soft)}
.cpm-signature .sig-story-head{display:grid;grid-template-columns:1.15fr .65fr;gap:10vw;align-items:end;margin-bottom:112px}
.cpm-signature .sig-story-head p{font-size:17px;line-height:1.65;color:#6d7278;max-width:500px;margin:0 0 5px}
.cpm-signature .sig-story-row{display:grid;grid-template-columns:1.35fr .65fr;gap:8vw;align-items:center;margin-bottom:145px}
.cpm-signature .sig-story-row.reverse{grid-template-columns:.65fr 1.35fr}
.cpm-signature .sig-story-row.reverse .sig-story-media{order:2}
.cpm-signature .sig-story-media{position:relative;aspect-ratio:16/10;overflow:hidden;background:#dedfdd}
.cpm-signature .sig-story-media>img{width:100%;height:100%;object-fit:cover;transition:transform .8s var(--sig-ease)}
.cpm-signature .sig-story-row:hover .sig-story-media>img{transform:scale(1.018)}
.cpm-signature .sig-story-index{position:absolute;left:18px;bottom:15px;font-size:58px;line-height:1;font-weight:900;letter-spacing:-.07em;color:#fff;text-shadow:0 2px 20px rgba(0,0,0,.2)}
.cpm-signature .sig-story-copy>span{font-size:9px;font-weight:850;letter-spacing:.15em;color:var(--sig-accent)}
.cpm-signature .sig-story-copy h3{font-size:clamp(35px,3.7vw,61px);line-height:.93;letter-spacing:-.055em;margin:22px 0;color:#111315}
.cpm-signature .sig-story-copy p{font-size:17px;line-height:1.65;color:#6d7278;max-width:470px}
.cpm-signature .sig-story-copy i{display:block;width:58px;height:3px;background:var(--sig-accent);margin-top:32px}

/* IMPACT */
.cpm-signature .sig-impact{position:relative;min-height:760px;padding:115px 0;background:#202326 center/cover no-repeat;color:#fff;display:flex;align-items:center}
.cpm-signature .sig-impact-shade{position:absolute;inset:0;background:linear-gradient(90deg,rgba(8,10,12,.91),rgba(8,10,12,.58) 50%,rgba(8,10,12,.08) 88%)}
.cpm-signature .sig-impact .sig-shell{position:relative;z-index:2}
.cpm-signature .sig-impact-top{display:grid;grid-template-columns:70px 1fr;max-width:1050px;border-top:1px solid rgba(255,255,255,.34);padding-top:13px;margin-bottom:74px;font-size:8px;font-weight:850;letter-spacing:.17em;color:rgba(255,255,255,.58)}
.cpm-signature .sig-impact h2{font-size:clamp(58px,6.9vw,112px);line-height:.84;letter-spacing:-.07em;max-width:1080px;color:#fff}
.cpm-signature .sig-impact p{font-size:19px;line-height:1.55;color:rgba(255,255,255,.8);max-width:650px;margin:34px 0 55px}
.cpm-signature .sig-impact-metrics{display:flex;gap:12px;flex-wrap:wrap}
.cpm-signature .sig-impact-metrics span{border:1px solid rgba(255,255,255,.35);padding:11px 14px;font-size:8px;font-weight:850;letter-spacing:.15em;color:#fff}

/* CAPABILITIES */
.cpm-signature .sig-capabilities{background:#fff}
.cpm-signature .sig-cap-grid{display:grid;grid-template-columns:.9fr 1.1fr;gap:9vw;align-items:start}
.cpm-signature .sig-cap-left h2{font-size:clamp(44px,4.6vw,72px)}
.cpm-signature .sig-cap-left>p{font-size:16px;line-height:1.65;color:#6d7278;max-width:550px;margin:28px 0 0}
.cpm-signature .sig-cap-media{aspect-ratio:16/9;overflow:hidden;margin-top:54px;background:#e1e2e0}
.cpm-signature .sig-cap-media img{width:100%;height:100%;object-fit:cover}
.cpm-signature .sig-cap-list{border-top:1px solid #17191b}
.cpm-signature .sig-cap-list>div{display:grid;grid-template-columns:58px 1fr 30px;align-items:center;padding:27px 0;border-bottom:1px solid var(--sig-line);transition:padding .22s var(--sig-ease)}
.cpm-signature .sig-cap-list>div:hover{padding-left:10px}
.cpm-signature .sig-cap-list span{font-size:9px;color:#9a9ea2}
.cpm-signature .sig-cap-list strong{font-size:clamp(20px,2vw,31px);font-weight:700;letter-spacing:-.028em}
.cpm-signature .sig-cap-list b{font-size:19px;font-weight:400;color:var(--sig-accent)}

/* PROJECTS */
.cpm-signature .sig-projects{background:#111315;color:#fff}
.cpm-signature .sig-projects h2,.cpm-signature .sig-projects h3{color:#fff}
.cpm-signature .sig-projects-head{max-width:980px;margin-bottom:80px}
.cpm-signature .sig-project-grid{display:grid;grid-template-columns:1.45fr .775fr .775fr;gap:18px}
.cpm-signature .sig-project-grid article{background:#171a1e;overflow:hidden}
.cpm-signature .sig-project-media{position:relative;aspect-ratio:4/3;overflow:hidden;background:#25282c}
.cpm-signature .sig-project-grid .featured .sig-project-media{aspect-ratio:16/10}
.cpm-signature .sig-project-media>img{width:100%;height:100%;object-fit:cover;transition:transform .7s var(--sig-ease)}
.cpm-signature .sig-project-grid article:hover .sig-project-media>img{transform:scale(1.025)}
.cpm-signature .sig-project-no{position:absolute;top:15px;left:15px;background:#fff;color:#111315;padding:8px 9px;font-size:8px;font-weight:850;letter-spacing:.12em}
.cpm-signature .sig-project-info{display:flex;justify-content:space-between;gap:20px;padding:21px 20px 23px}
.cpm-signature .sig-project-info span{font-size:8px;font-weight:800;letter-spacing:.14em;text-transform:uppercase;color:var(--sig-accent)}
.cpm-signature .sig-project-info h3{font-size:20px;line-height:1.1;letter-spacing:-.025em;margin:8px 0 4px}
.cpm-signature .sig-project-info p{font-size:12px;color:#8f9499;margin:0}
.cpm-signature .sig-project-info>b{font-size:20px;color:var(--sig-accent);font-weight:400}

/* CTA */
.cpm-signature .sig-cta{position:relative;padding:145px 0 42px;background:var(--sig-accent);color:#fff;overflow:hidden}
.cpm-signature .sig-cta-grid{position:absolute;inset:0;background-image:linear-gradient(rgba(255,255,255,.09) 1px,transparent 1px),linear-gradient(90deg,rgba(255,255,255,.09) 1px,transparent 1px);background-size:90px 90px;mask-image:linear-gradient(90deg,transparent,black 55%,black)}
.cpm-signature .sig-cta .sig-shell{position:relative;z-index:2}
.cpm-signature .sig-cta .sig-kicker{color:#fff;opacity:.72}
.cpm-signature .sig-cta h2{font-size:clamp(60px,7.2vw,116px);line-height:.84;letter-spacing:-.07em;max-width:1120px;color:#fff}
.cpm-signature .sig-cta-bottom{display:grid;grid-template-columns:1fr auto;gap:70px;align-items:end;margin-top:45px}
.cpm-signature .sig-cta-bottom p{font-size:18px;line-height:1.58;color:rgba(255,255,255,.84);max-width:670px;margin:0}
.cpm-signature .sig-cta-foot{display:flex;justify-content:space-between;border-top:1px solid rgba(255,255,255,.35);padding-top:14px;margin-top:90px;font-size:8px;font-weight:850;letter-spacing:.17em;color:rgba(255,255,255,.72)}

/* PRESETS */
.cpm-signature.sig--dark .sig-hero-copy{background:#111315;color:#fff}
.cpm-signature.sig--dark .sig-hero h1{color:#fff}
.cpm-signature.sig--dark .sig-hero-lead{color:#fff}
.cpm-signature.sig--dark .sig-hero .sig-copy,.cpm-signature.sig--dark .sig-hero .sig-copy p{color:#a8adb2}
.cpm-signature.sig--dark .sig-hero-index{border-color:#35393e;color:#6e7378}
.cpm-signature.sig--dark .sig-hero .cpm-btn--secondary{border-color:#555b60;color:#fff}
.cpm-signature.sig--light .sig-outcomes{background:#f3f3f1;color:#111315}
.cpm-signature.sig--light .sig-outcomes h2,.cpm-signature.sig--light .sig-outcomes h3{color:#111315}
.cpm-signature.sig--light .sig-outcome-list,.cpm-signature.sig--light .sig-outcome-list article{border-color:#d8dadd}
.cpm-signature.sig--light .sig-outcome-list p{color:#6d7278}

/* REVEAL MOTION — subtle and disabled for reduced motion */
.cpm-signature.sig-motion [data-sig-reveal]{opacity:0;transform:translateY(22px);transition:opacity .75s var(--sig-ease),transform .75s var(--sig-ease)}
.cpm-signature.sig-motion [data-sig-reveal].sig-in{opacity:1;transform:none}
@media(prefers-reduced-motion:reduce){
 .cpm-signature.sig-motion [data-sig-reveal]{opacity:1!important;transform:none!important;transition:none!important}
 .cpm-signature img{transition:none!important}
}

/* TABLET */
@media(max-width:1050px){
 .cpm-signature .sig-shell{width:calc(100% - 56px)}
 .cpm-signature .sig-section{padding:105px 0}
 .cpm-signature .sig-hero{grid-template-columns:48% 52%;min-height:760px}
 .cpm-signature .sig-hero-copy{padding-left:38px;padding-right:38px}
 .cpm-signature .sig-hero-index{left:38px;right:38px}
 .cpm-signature .sig-trust-grid{grid-template-columns:repeat(4,1fr)}
 .cpm-signature .sig-outcome-list article{grid-template-columns:50px 100px 1fr 1fr 28px;gap:18px}
 .cpm-signature .sig-project-grid{grid-template-columns:1fr 1fr}
 .cpm-signature .sig-project-grid .featured{grid-column:1/-1}
}
/* MOBILE */
@media(max-width:820px){
 .cpm-signature .sig-shell{width:calc(100% - 42px)}
 .cpm-signature .sig-section{padding:88px 0}
 .cpm-signature .sig-section-rule{margin-bottom:58px}
 .cpm-signature .sig-hero{grid-template-columns:1fr;min-height:auto}
 .cpm-signature .sig-hero-copy{padding:64px 24px 52px}
 .cpm-signature .sig-hero-index{display:none}
 .cpm-signature .sig-hero-media{min-height:470px}
 .cpm-signature .sig-intro-grid,.cpm-signature .sig-story-head,.cpm-signature .sig-cap-grid{grid-template-columns:1fr;gap:42px}
 .cpm-signature .sig-ba{min-height:470px;height:58vh}
 .cpm-signature .sig-outcome-list article{grid-template-columns:45px 1fr 28px;gap:14px 18px}
 .cpm-signature .sig-outcome-key{grid-column:2}
 .cpm-signature .sig-outcome-list h3{grid-column:2}
 .cpm-signature .sig-outcome-list p{grid-column:2}
 .cpm-signature .sig-arrow{grid-column:3;grid-row:1/5}
 .cpm-signature .sig-story-row,.cpm-signature .sig-story-row.reverse{grid-template-columns:1fr;gap:38px;margin-bottom:92px}
 .cpm-signature .sig-story-row.reverse .sig-story-media{order:0}
 .cpm-signature .sig-impact{min-height:650px}
 .cpm-signature .sig-cta-bottom{grid-template-columns:1fr;gap:30px}
}
/* SMALL MOBILE */
@media(max-width:560px){
 .cpm-signature .sig-shell{width:calc(100% - 34px)}
 .cpm-signature .sig-section{padding:72px 0}
 .cpm-signature .sig-hero h1{font-size:49px}
 .cpm-signature .sig-hero-lead{font-size:18px}
 .cpm-signature .sig-actions{flex-direction:column}
 .cpm-signature .sig-actions .cpm-btn{width:100%}
 .cpm-signature .sig-hero-media{min-height:350px}
 .cpm-signature .sig-image-tag{top:16px;right:16px}
 .cpm-signature .sig-trust-grid{grid-template-columns:repeat(2,1fr)}
 .cpm-signature .sig-ba{height:420px;min-height:420px}
 .cpm-signature .sig-outcome-key{display:none}
 .cpm-signature .sig-outcome-list article{padding:24px 0}
 .cpm-signature .sig-impact{min-height:580px;padding:80px 0}
 .cpm-signature .sig-impact-metrics{display:grid;grid-template-columns:1fr}
 .cpm-signature .sig-project-grid{grid-template-columns:1fr}
 .cpm-signature .sig-project-grid .featured{grid-column:auto}
 .cpm-signature .sig-cta{padding:90px 0 30px}
 .cpm-signature .sig-cta-foot{margin-top:65px}
}

/* ==========================================================
   CPM 5.6.4 — CURRENT HERO / LOGOS / PORTFOLIO FUNCTIONALITY
   Everything before this point is the original v3.0 Signature CSS.
   ========================================================== */
/* ==========================================================
   CPM BLOCKS 3.1 — HERO CONTROL FIX
   Fixes full-width mode, overlay background control and old
   hard-coded responsive rules overriding Elementor controls.
   ========================================================== */
.cpm-hero-header{
  --cpm-overlay-colour:#fff;
  --cpm-overlay-strength:92;
  width:100%;
  max-width:none;
}
.cpm-hero-header--width-full .cpm-hero-header__inner{
  width:100%;
  max-width:none!important;
}
.cpm-hero-header--width-contained .cpm-hero-header__inner{
  width:100%;
}

/* In overlay mode the copy background is now a REAL control.
   Previous versions forced transparent!important, which is why
   Elementor's Copy Background control appeared broken. */
.cpm-hero-header--overlay .cpm-hero-header__copy{
  background-color:var(--cpm-copy-bg,transparent);
}
.cpm-hero-header--overlay .cpm-hero-header__image:after{
  background:linear-gradient(
    90deg,
    color-mix(in srgb,var(--cpm-overlay-colour) calc(var(--cpm-overlay-strength) * 1%),transparent) 0%,
    color-mix(in srgb,var(--cpm-overlay-colour) calc(var(--cpm-overlay-strength) * .82%),transparent) 35%,
    color-mix(in srgb,var(--cpm-overlay-colour) calc(var(--cpm-overlay-strength) * .12%),transparent) 72%,
    transparent 100%
  );
}

/* Do not hard-code Elementor-controlled typography/padding/height. */
@media(max-width:900px){
  .cpm-hero-header__copy{padding:unset}
  .cpm-hero-header__image{min-height:unset}
  .cpm-hero-header__title{font-size:inherit}
}
@media(max-width:600px){
  .cpm-hero-header__copy{padding:unset}
  .cpm-hero-header__image{min-height:unset}
  .cpm-hero-header__title{font-size:inherit!important}
}

/* Make a full-width hero escape a boxed Elementor parent/container. */
.elementor-widget-cpm-hero-header:has(.cpm-hero-header--width-full){
  width:100vw!important;
  max-width:100vw!important;
  margin-left:calc(50% - 50vw)!important;
  margin-right:calc(50% - 50vw)!important;
}

/* CPM v4 — ADD ALL launcher */
.cpm-add-all-launcher{display:grid;grid-template-columns:64px 1fr auto;gap:22px;align-items:center;padding:24px;background:#111315;color:#fff;border-left:4px solid #E30613;font-family:inherit}
.cpm-add-all-launcher__mark{display:grid;place-items:center;width:64px;height:64px;background:#E30613;font-weight:900;letter-spacing:-.04em}
.cpm-add-all-launcher strong{display:block;font-size:18px;letter-spacing:-.02em}
.cpm-add-all-launcher span{display:block;margin-top:5px;color:#9ca2a8;font-size:12px}
.cpm-add-all-launcher__button{appearance:none;border:0;background:#fff;color:#111315;padding:16px 19px;font-size:10px;font-weight:900;letter-spacing:.12em;cursor:pointer}
.cpm-add-all-launcher__button b{color:#E30613;margin-left:8px}
body:not(.elementor-editor-active) .cpm-add-all-launcher{display:none!important}

/* CPM v4 — live portfolio / selected projects */
.cpm-portfolio{--cpm-accent:#E30613;background:#111315;color:#fff;padding:120px 36px}
.cpm-portfolio .cpm-shell{max-width:1420px}
.cpm-portfolio__rule{display:grid;grid-template-columns:1fr auto;border-top:1px solid #373b40;padding-top:13px;margin-bottom:72px;font-size:8px;font-weight:800;letter-spacing:.17em;color:#747a80}
.cpm-portfolio__head{display:grid;grid-template-columns:1fr auto;gap:40px;align-items:end;margin-bottom:52px}
.cpm-portfolio__head h2{max-width:950px;font-size:clamp(48px,5.5vw,86px);line-height:.92;letter-spacing:-.055em;color:#fff;margin:0}
.cpm-portfolio__arrows{display:flex;gap:8px}
.cpm-portfolio__arrows button{width:52px;height:52px;border:1px solid #3a3e43;background:transparent;color:#fff;font-size:20px;cursor:pointer;transition:.2s}
.cpm-portfolio__arrows button:hover:not(:disabled){background:var(--cpm-accent);border-color:var(--cpm-accent)}
.cpm-portfolio__arrows button:disabled{opacity:.25;cursor:default}
.cpm-portfolio__filters{display:flex;gap:8px;flex-wrap:wrap;margin:0 0 28px}
.cpm-portfolio__filters button{border:1px solid #373b40;background:transparent;color:#aeb3b8;padding:10px 13px;font-size:8px;font-weight:850;letter-spacing:.13em;text-transform:uppercase;cursor:pointer}
.cpm-portfolio__filters button:hover,.cpm-portfolio__filters button.is-active{background:#fff;border-color:#fff;color:#111315}
.cpm-portfolio__grid{display:grid;grid-template-columns:1.45fr .775fr .775fr;gap:18px}
.cpm-portfolio__card{background:#171a1e;min-width:0}
.cpm-portfolio__card[hidden]{display:none!important}
.cpm-portfolio__media{position:relative;display:block;aspect-ratio:4/3;overflow:hidden;background:#24282c}
.cpm-portfolio__card.featured .cpm-portfolio__media{aspect-ratio:16/10}
.cpm-portfolio__media img{width:100%;height:100%;object-fit:cover;display:block;transition:transform .7s cubic-bezier(.2,.75,.25,1)}
.cpm-portfolio__card:hover img{transform:scale(1.025)}
.cpm-portfolio__placeholder{width:100%;height:100%;display:grid;place-items:center;color:#777d83;font-size:9px;font-weight:850;letter-spacing:.14em;background:repeating-linear-gradient(90deg,#22262a 0,#22262a 1px,#1d2024 1px,#1d2024 70px)}
.cpm-portfolio__no{position:absolute;top:15px;left:15px;background:#fff;color:#111315;padding:8px 9px;font-size:8px;font-weight:850;letter-spacing:.12em}
.cpm-portfolio__info{display:flex;justify-content:space-between;gap:20px;padding:21px 20px 23px}
.cpm-portfolio__info span{font-size:8px;font-weight:850;letter-spacing:.14em;text-transform:uppercase;color:var(--cpm-accent)}
.cpm-portfolio__info h3{font-size:20px;line-height:1.08;letter-spacing:-.025em;margin:8px 0 4px;color:#fff}
.cpm-portfolio__info h3 a{color:inherit;text-decoration:none}
.cpm-portfolio__info p{font-size:12px;line-height:1.55;color:#8f9499;margin:8px 0 0}
.cpm-portfolio__go{font-size:20px;color:var(--cpm-accent);text-decoration:none}
.cpm-portfolio__empty{padding:40px 0;color:#8f9499}
@media(max-width:1000px){.cpm-portfolio__grid{grid-template-columns:1fr 1fr}.cpm-portfolio__card.featured{grid-column:1/-1}}
@media(max-width:700px){.cpm-portfolio{padding:78px 20px}.cpm-portfolio__head{grid-template-columns:1fr}.cpm-portfolio__arrows{justify-content:flex-start}.cpm-portfolio__grid{grid-template-columns:1fr}.cpm-portfolio__card.featured{grid-column:auto}.cpm-portfolio__filters{overflow:auto;flex-wrap:nowrap;padding-bottom:5px}.cpm-portfolio__filters button{white-space:nowrap}}




/* ==========================================================
   CPM BLOCKS 4.2 — TRUE ELEMENTOR WIDTH BEHAVIOUR
   No width/max-width/margin !important rules are applied to
   Elementor wrappers. Elementor remains completely in charge.
   ========================================================== */

/* The CPM component uses the space its Elementor widget wrapper receives. */
.cpm-hero-header{
    width:100%;
}

/* Inner composition fills the widget, but does NOT impose a max-width.
   If you want the hero boxed/narrow/full-width, do that on the Elementor
   parent container — exactly as with native Elementor widgets. */
.cpm-hero-header__inner{
    width:100%;
    max-width:none;
    margin:0;
}

/* Neutralise legacy classes without touching the Elementor wrapper. */
.cpm-hero-header--width-full .cpm-hero-header__inner,
.cpm-hero-header--width-contained .cpm-hero-header__inner{
    width:100%;
    max-width:none;
    margin:0;
}

/* IMPORTANT:
   There are intentionally NO rules here targeting:
   .elementor-widget-cpm-hero-header
   .elementor-element
   parent Elementor containers
   width/max-width/margins on Elementor wrappers

   Elementor therefore controls:
   - parent Content Width: Boxed / Full Width
   - parent Width in px / % / vw
   - parent Max Width
   - parent padding / margins
   - widget width / flex-basis
 */


/* ==========================================================
   CPM BLOCKS 4.3 — THEME ALIGNMENT ISOLATION
   CPM site applies alignment rules through its full-width
   container/template. Do not inherit those into CPM widgets.
   Elementor/CPM controls can still override these normally.
   ========================================================== */
.cpm-hero-header__copy{
    text-align:left;
}
.cpm-hero-header__eyebrow,
.cpm-hero-header__title,
.cpm-hero-header__lead,
.cpm-hero-header__body,
.cpm-hero-header__body p{
    text-align:inherit;
}
.cpm-hero-header__actions{
    justify-content:flex-start;
}

/* Alignment classes driven by the widget control.
   These also make button alignment follow the text setting. */
.cpm-hero-header__copy[style*="text-align: center"] .cpm-hero-header__actions,
.cpm-hero-header__copy[style*="text-align:center"] .cpm-hero-header__actions{
    justify-content:center;
}
.cpm-hero-header__copy[style*="text-align: right"] .cpm-hero-header__actions,
.cpm-hero-header__copy[style*="text-align:right"] .cpm-hero-header__actions{
    justify-content:flex-end;
}

/* Common theme rules sometimes center direct widget children.
   Keep the actual CPM inner layout independent of that inheritance. */
.elementor-widget-cpm-hero-header .elementor-widget-container{
    text-align:initial;
}


/* CPM Blocks 4.4 — responsive horizontal copy positioning */
.cpm-hero-header{--cpm-copy-offset-x:0%;}
.cpm-hero-header__copy{
    position:relative;
    transform:translateX(var(--cpm-copy-offset-x));
}

/* In Text Over Image mode, extend the fade to follow the moved copy block.
   This supplements the existing overlay gradient without changing Elementor width. */
.cpm-hero-header--overlay .cpm-hero-header__copy:after{
    content:"";
    position:absolute;
    z-index:-1;
    pointer-events:none;
    top:-100vh;
    bottom:-100vh;
    left:calc(-1 * var(--cpm-copy-offset-x) - 120px);
    width:calc(100% + var(--cpm-copy-offset-x) + 260px);
    background:linear-gradient(90deg,
        rgba(255,255,255,.94) 0%,
        rgba(255,255,255,.82) 55%,
        rgba(255,255,255,0) 100%);
}

/* CPM 4.5 Client Logo Carousel */
.cpm-logos{position:relative;overflow:hidden;background:#fff;padding:46px 30px}
.cpm-logos__label{text-align:center;margin-bottom:28px;font-size:11px;color:#8c9297}
.cpm-logos__row{display:flex;align-items:center;gap:14px;max-width:1420px;margin:auto}
.cpm-logos-viewport{overflow:hidden;flex:1;min-width:0}
.cpm-logos-track{--cpm-visible:6;--cpm-logo-gap:40px;display:flex;gap:var(--cpm-logo-gap);transition:transform .55s cubic-bezier(.2,.75,.25,1);will-change:transform}
.cpm-logo-item{--cpm-logo-tint:#111315;--cpm-logo-opacity:45%;--cpm-logo-hover-opacity:100%;position:relative;flex:0 0 calc((100% - (var(--cpm-visible) - 1)*var(--cpm-logo-gap))/var(--cpm-visible));height:70px;display:flex;align-items:center;justify-content:center;opacity:var(--cpm-logo-opacity);transition:opacity .25s}
.cpm-logo-item:hover,.cpm-logo-item:focus-within{opacity:var(--cpm-logo-hover-opacity)}
.cpm-logo-item a{display:flex;align-items:center;justify-content:center;width:100%;height:100%;text-decoration:none}
.cpm-logo-mask{display:block;width:130px;max-width:100%;height:34px;background:var(--cpm-logo-tint);-webkit-mask-image:var(--cpm-logo-image);mask-image:var(--cpm-logo-image);-webkit-mask-size:contain;mask-size:contain;-webkit-mask-position:center;mask-position:center;-webkit-mask-repeat:no-repeat;mask-repeat:no-repeat}
.cpm-logo-item img{height:34px;max-width:130px;object-fit:contain}
.cpm-logo-text{font-weight:800;color:var(--cpm-logo-tint)}
.cpm-logo-tooltip{position:absolute;left:50%;bottom:calc(100% + 8px);transform:translate(-50%,5px);background:#111315;color:#fff;padding:7px 9px;font-size:9px;font-weight:800;letter-spacing:.06em;white-space:nowrap;opacity:0;visibility:hidden;transition:.18s;pointer-events:none;z-index:20}
.cpm-logo-tooltip:after{content:"";position:absolute;left:50%;top:100%;transform:translateX(-50%);border:5px solid transparent;border-top-color:inherit}
.cpm-logo-item:hover .cpm-logo-tooltip,.cpm-logo-item:focus-within .cpm-logo-tooltip{opacity:1;visibility:visible;transform:translate(-50%,0)}
.cpm-logos-arrow{flex:0 0 44px;width:44px;height:44px;border:1px solid #d9dcdf;background:transparent;color:#111315;cursor:pointer;font-size:18px;transition:.2s}
.cpm-logos-arrow:hover{background:#111315;color:#fff}
@media(max-width:767px){.cpm-logos__row{gap:7px}.cpm-logos-arrow{flex-basis:38px;width:38px;height:38px}.cpm-logo-item{height:58px}}

/* CPM 4.6 Hero spacing fix
   The hero background/image must fill the complete hero box. No extra layout
   height is generated by overlay fade helpers or image layers. */
.cpm-hero-header{position:relative;overflow:hidden;margin-bottom:0!important;}
.cpm-hero-header__inner{height:100%;min-height:inherit;margin-bottom:0;}
.cpm-hero-header--overlay .cpm-hero-header__image,
.cpm-hero-header--boxed .cpm-hero-header__image{
    position:absolute;
    inset:0;
    width:100%;
    height:100%;
    min-height:0!important;
}
.cpm-hero-header--overlay .cpm-hero-header__image img,
.cpm-hero-header--boxed .cpm-hero-header__image img{
    width:100%;
    height:100%;
    object-fit:cover;
}
/* Decorative fade cannot contribute to document flow. */
.cpm-hero-header--overlay .cpm-hero-header__copy:after{
    position:absolute!important;
}
/* Elementor widget itself adds no bottom gap; parent container remains in control. */
.elementor-widget-cpm-hero-header{margin-bottom:0;}

/* CPM 4.7 — Logo sizing correction.
   Logos are CSS-mask spans, not IMG elements, so Elementor controls target
   the actual rendered logo. */
.cpm-logo-mask{
    width:130px;
    height:34px;
    flex:0 0 auto;
    display:block;
    background-color:var(--cpm-logo-tint,#111315);
    -webkit-mask-image:var(--cpm-logo-image);
    mask-image:var(--cpm-logo-image);
    -webkit-mask-size:contain;
    mask-size:contain;
    -webkit-mask-position:center;
    mask-position:center;
    -webkit-mask-repeat:no-repeat;
    mask-repeat:no-repeat;
}

/* CPM 4.8 — Logo tooltip + premium carousel arrows */

/* Tooltip must not be clipped by the individual logo/link. */
.cpm-logos{overflow:visible;}
.cpm-logos__row{overflow:visible;}
.cpm-logos-viewport{
    overflow:hidden;
    padding-top:44px;
    margin-top:-44px;
}
.cpm-logo-item,
.cpm-logo-item a{overflow:visible;}

/* Reliable tooltip: rendered above each logo and visible on hover/focus. */
.cpm-logo-tooltip{
    display:block;
    position:absolute;
    left:50%;
    top:-34px;
    bottom:auto;
    transform:translate(-50%,6px);
    z-index:999;
    padding:7px 10px;
    border-radius:2px;
    background:#111315;
    color:#fff;
    font-size:10px;
    line-height:1.2;
    font-weight:800;
    letter-spacing:.04em;
    white-space:nowrap;
    opacity:0;
    visibility:hidden;
    pointer-events:none;
    transition:opacity .18s ease, transform .18s ease, visibility .18s ease;
}
.cpm-logo-tooltip:after{
    content:"";
    position:absolute;
    left:50%;
    top:100%;
    transform:translateX(-50%);
    width:0;height:0;
    border-left:5px solid transparent;
    border-right:5px solid transparent;
    border-top:5px solid #111315;
}
.cpm-logo-item:hover .cpm-logo-tooltip,
.cpm-logo-item:focus-within .cpm-logo-tooltip{
    opacity:1;
    visibility:visible;
    transform:translate(-50%,0);
}

/* More deliberate CPM carousel controls. */
.cpm-logos-arrow{
    position:relative;
    z-index:5;
    display:inline-flex;
    align-items:center;
    justify-content:center;
    flex:0 0 44px;
    width:44px;
    height:44px;
    padding:0;
    border:1px solid #d9dcdf;
    border-radius:0;
    background:#fff;
    color:#111315;
    font-family:Arial,sans-serif;
    font-size:0;
    cursor:pointer;
    transition:background .2s ease,color .2s ease,border-color .2s ease,transform .2s ease;
}
.cpm-logos-arrow:before{
    content:"";
    width:9px;
    height:9px;
    border-top:1.5px solid currentColor;
    border-right:1.5px solid currentColor;
}
.cpm-logos-next:before{transform:rotate(45deg) translate(-1px,1px);}
.cpm-logos-prev:before{transform:rotate(-135deg) translate(-1px,1px);}
.cpm-logos-arrow:hover{
    background:#111315;
    color:#fff;
    transform:translateY(-1px);
}
.cpm-logos-arrow:focus-visible{
    outline:2px solid #e30613;
    outline-offset:3px;
}

/* ==========================================================
   CPM BLOCKS 4.9 — LIVE PAGE HERO GEOMETRY FIX
   Definitive overlay layout: one box, image/fade/content all use same box.
   ========================================================== */
.cpm-hero-header--overlay{
    position:relative!important;
    display:grid!important;
    grid-template-columns:1fr!important;
    grid-template-rows:1fr!important;
    overflow:hidden!important;
    margin:0!important;
    padding:0!important;
}
.cpm-hero-header--overlay > .cpm-hero-header__inner{
    position:relative!important;
    display:grid!important;
    grid-template-columns:1fr!important;
    grid-template-rows:1fr!important;
    width:100%!important;
    height:auto!important;
    min-height:inherit!important;
    margin:0!important;
    padding:0!important;
}
.cpm-hero-header--overlay .cpm-hero-header__image{
    position:absolute!important;
    inset:0!important;
    width:100%!important;
    height:100%!important;
    min-height:100%!important;
    margin:0!important;
    padding:0!important;
    z-index:0!important;
}
.cpm-hero-header--overlay .cpm-hero-header__image img{
    position:absolute!important;
    inset:0!important;
    display:block!important;
    width:100%!important;
    height:100%!important;
    min-height:100%!important;
    object-fit:cover!important;
}
.cpm-hero-header--overlay .cpm-hero-header__copy{
    position:relative!important;
    z-index:2!important;
    align-self:stretch!important;
    min-height:inherit!important;
    box-sizing:border-box!important;
}
/* Do not let Elementor/theme add a second vertical box beneath the hero. */
.elementor-widget-cpm-hero-header,
.elementor-widget-cpm-hero-header > .elementor-widget-container{
    margin-bottom:0!important;
    padding-bottom:0!important;
}

/* ==========================================================
   CPM BLOCKS 4.9 — TOOLTIP FIX
   Carousel can clip horizontally while tooltip is rendered INSIDE each
   logo cell, below the logo, so it cannot be cut off by the viewport.
   ========================================================== */
.cpm-logo-item{height:92px!important;padding-bottom:24px!important;box-sizing:border-box!important;}
.cpm-logo-tooltip{
    top:auto!important;
    bottom:2px!important;
    left:50%!important;
    transform:translate(-50%,4px)!important;
    z-index:50!important;
    opacity:0!important;
    visibility:hidden!important;
}
.cpm-logo-tooltip:after{
    top:auto!important;
    bottom:100%!important;
    border-top:0!important;
    border-bottom:5px solid #111315!important;
}
.cpm-logo-item:hover .cpm-logo-tooltip,
.cpm-logo-item:focus-within .cpm-logo-tooltip{
    opacity:1!important;
    visibility:visible!important;
    transform:translate(-50%,0)!important;
}

/* Premium arrows: compact square control, CPM red active state. */
.cpm-logos-arrow{
    border:1px solid #d7dadd!important;
    background:#fff;
    box-shadow:none!important;
}
.cpm-logos-arrow:hover{
    border-color:#e30613;
    background:#e30613;
    color:#fff;
}

/* ==========================================================
   CPM BLOCKS 5.0 — CAROUSEL ARROW RESET
   Theme-safe arrows. Removes inherited WP/Elementor button icons/text.
   ========================================================== */
.cpm-logos .cpm-logos-arrow{
    appearance:none!important;
    -webkit-appearance:none!important;
    position:relative!important;
    display:flex!important;
    align-items:center!important;
    justify-content:center!important;
    flex:0 0 42px!important;
    width:42px;
    height:42px;
    min-width:42px;
    min-height:42px;
    max-width:42px;
    max-height:42px;
    margin:0!important;
    padding:0!important;
    border:1px solid #d9dcdf;
    border-radius:50%;
    background:#fff;
    color:#111315!important;
    font-size:0!important;
    line-height:0!important;
    text-indent:-9999px!important;
    overflow:hidden!important;
    box-shadow:none!important;
    transform:none!important;
}
.cpm-logos .cpm-logos-arrow::before{
    content:""!important;
    position:absolute!important;
    top:50%!important;
    left:50%!important;
    width:8px!important;
    height:8px!important;
    margin:0!important;
    padding:0!important;
    border:0!important;
    border-top:1.5px solid currentColor!important;
    border-right:1.5px solid currentColor!important;
    background:none!important;
}
.cpm-logos .cpm-logos-prev::before{
    transform:translate(-35%,-50%) rotate(-135deg)!important;
}
.cpm-logos .cpm-logos-next::before{
    transform:translate(-65%,-50%) rotate(45deg)!important;
}
.cpm-logos .cpm-logos-arrow::after{
    content:none!important;
    display:none!important;
}
.cpm-logos .cpm-logos-arrow:hover{
    background:#e30613;
    border-color:#e30613;
    color:#fff;
}
.cpm-logos .cpm-logos-arrow:focus-visible{
    outline:2px solid #e30613!important;
    outline-offset:3px!important;
}

/* CPM 5.1 — configurable logo tooltips */
.cpm-logos{--cpm-tooltip-distance:10px;--cpm-tooltip-arrow:6px;}
.cpm-logo-tooltip{
    bottom:var(--cpm-tooltip-distance)!important;
}
.cpm-logo-tooltip:after{
    width:0!important;height:0!important;
    border-left:var(--cpm-tooltip-arrow) solid transparent!important;
    border-right:var(--cpm-tooltip-arrow) solid transparent!important;
    border-bottom:var(--cpm-tooltip-arrow) solid currentColor!important;
}
/* CPM 5.2 follow tooltip — fixed to viewport and above all carousel clipping */
.cpm-logo-tooltip.cpm-tip-following{
    z-index:2147483000!important;
    opacity:1!important;
    visibility:visible!important;
    pointer-events:none!important;
}
.cpm-logo-tooltip.cpm-tip-following:after{
    top:100%!important;
    bottom:auto!important;
    left:50%!important;
    transform:translateX(-50%)!important;
}

/* CPM 5.3 — Hero multi-background slideshow */
.cpm-hero-header{--cpm-bg-speed:1.2s;}
.cpm-hero-bg-slides{
    position:absolute;inset:0;z-index:0;overflow:hidden;pointer-events:none;
}
.cpm-hero-bg-slide{
    position:absolute;inset:0;
    background-size:cover;background-repeat:no-repeat;
    opacity:0;
    transform:scale(1);
    transition:opacity var(--cpm-bg-speed) ease,transform var(--cpm-bg-speed) ease;
}
.cpm-hero-bg-slide.is-active{opacity:1;}
.cpm-hero-bg-slides[data-transition="crossfade-zoom"] .cpm-hero-bg-slide{transform:scale(1.025);}
.cpm-hero-bg-slides[data-transition="crossfade-zoom"] .cpm-hero-bg-slide.is-active{transform:scale(1);}
.cpm-hero-bg-slides[data-transition="slide-left"] .cpm-hero-bg-slide{opacity:1;transform:translateX(100%);}
.cpm-hero-bg-slides[data-transition="slide-left"] .cpm-hero-bg-slide.is-active{transform:translateX(0);}
.cpm-hero-bg-slides[data-transition="slide-right"] .cpm-hero-bg-slide{opacity:1;transform:translateX(-100%);}
.cpm-hero-bg-slides[data-transition="slide-right"] .cpm-hero-bg-slide.is-active{transform:translateX(0);}
.cpm-hero-bg-slides[data-transition="none"] .cpm-hero-bg-slide{transition:none;}
/* When slideshow exists, hide original hero image but retain its layout geometry. */
.cpm-hero-header:has(.cpm-hero-bg-slides) .cpm-hero-header__image img{opacity:0!important;}
.cpm-hero-header__inner,.cpm-hero-header__copy{position:relative;z-index:2;}
@media (prefers-reduced-motion:reduce){
 .cpm-hero-bg-slide{transition:none!important;transform:none!important;}
}

/* CPM 5.4 — smooth one-logo carousel movement */
.cpm-logos-track{
    will-change:transform;
    backface-visibility:hidden;
    transform:translate3d(0,0,0);
}
.cpm-logo-item{flex-shrink:0!important;}

/* CPM 5.4.2 — floating tooltip lives under BODY, beyond carousel clipping */
.cpm-logo-tooltip--portal{
    position:fixed!important;
    display:block!important;
    left:0;top:0;
    bottom:auto!important;
    width:max-content!important;
    max-width:280px;
    margin:0!important;
    transform:translate(-50%,-100%)!important;
    z-index:2147483646!important;
    pointer-events:none!important;
    opacity:0!important;
    visibility:hidden!important;
    transition:opacity .12s ease!important;
    white-space:nowrap;
}
.cpm-logo-tooltip--portal.is-visible{
    opacity:1!important;
    visibility:visible!important;
}
.cpm-logo-tooltip--portal:after{
    content:""!important;
    position:absolute!important;
    top:100%!important;
    left:50%!important;
    transform:translateX(-50%)!important;
    width:0!important;height:0!important;
    border-left:6px solid transparent!important;
    border-right:6px solid transparent!important;
    border-top:6px solid currentColor!important;
}

/* CPM 5.4.3 mouse tooltip portal.
   Absolute + pageX/pageY keeps it correct even with the WP admin bar / scrolling. */
.cpm-logo-tooltip--mouse{
    position:absolute!important;
    display:block!important;
    width:max-content!important;
    max-width:280px!important;
    margin:0!important;
    transform:translate(-50%,-100%)!important;
    z-index:2147483647!important;
    pointer-events:none!important;
    opacity:0!important;
    visibility:hidden!important;
    white-space:nowrap!important;
    transition:opacity .12s ease!important;
}
.cpm-logo-tooltip--mouse.is-visible{
    opacity:1!important;
    visibility:visible!important;
}
.cpm-logo-tooltip--mouse:after{
    content:"";
    position:absolute;
    top:100%;
    left:50%;
    transform:translateX(-50%);
    border-left:6px solid transparent;
    border-right:6px solid transparent;
    border-top:6px solid currentColor;
}

/* CPM 5.4.4 — Hero autoplay is CSS-driven, independent of JS/cache/runtime hooks */
.cpm-hero-bg-slides--css-autoplay .cpm-hero-bg-slide{
    opacity:0;
    animation-timing-function:linear;
    animation-iteration-count:infinite;
    animation-fill-mode:none;
    will-change:opacity,transform;
}
.cpm-hero-bg-slides--css-autoplay .cpm-hero-bg-slide:first-child{opacity:1;}
.cpm-hero-bg-slides--css-autoplay[data-transition="crossfade-zoom"] .cpm-hero-bg-slide{
    animation-timing-function:ease-in-out;
}
@media (prefers-reduced-motion:reduce){
 .cpm-hero-bg-slides--css-autoplay .cpm-hero-bg-slide{
   animation-play-state:paused!important;
 }
}

/* CPM 5.4.5 — carousel arrow controls actually control the buttons.
   Previous hard-coded 42px/white/round rules were overriding Elementor. */
.cpm-logos__row{
    display:flex!important;
    align-items:center!important;
}
.cpm-logos-arrow{
    position:relative!important;
    align-self:center!important;
    top:var(--cpm-arrow-y,0)!important;
    transform:none!important;
    box-sizing:border-box!important;
    flex-shrink:0!important;
}
/* Do not allow theme line-height/padding to move the chevron off centre. */
.cpm-logos-arrow::before{
    top:50%!important;
    left:50%!important;
    margin:0!important;
}
/* Keep prev/next optical centring while respecting actual button size. */
.cpm-logos-prev::before{transform:translate(-35%,-50%) rotate(-135deg)!important;}
.cpm-logos-next::before{transform:translate(-65%,-50%) rotate(45deg)!important;}

/* CPM 5.4.6 — true overlapping hero crossfade.
   Solid fallback prevents any page white from flashing through during compositing. */
.cpm-hero-bg-slides{background:#111!important;}
.cpm-hero-bg-slides--css-autoplay .cpm-hero-bg-slide{
    animation-timing-function:ease-in-out!important;
    backface-visibility:hidden;
    transform:translateZ(0);
}
/* Keep the outgoing frame visually underneath while the incoming frame fades over it. */
.cpm-hero-bg-slides--css-autoplay .cpm-hero-bg-slide.is-active{
    opacity:1;
}

/* CPM 5.4.7 — slide 1 is ALWAYS the base image.
   Slides 2+ only fade over it, then fade away to reveal slide 1 again. */
.cpm-hero-bg-slides--base-overlay{background:transparent!important;}
.cpm-hero-bg-slides--base-overlay .cpm-hero-bg-slide--base{
  opacity:1!important; z-index:1!important; animation:none!important;
}
.cpm-hero-bg-slides--base-overlay .cpm-hero-bg-slide--overlay{
  opacity:0; z-index:2!important;
  animation-timing-function:ease-in-out!important;
  animation-iteration-count:infinite!important;
  animation-fill-mode:both!important;
  will-change:opacity;
}

/* CPM 5.4.8 — timing is generated from the Elementor controls.
   No extra CSS transition is applied to base-overlay slides. */
.cpm-hero-bg-slides--base-overlay .cpm-hero-bg-slide--overlay{
    transition:none!important;
}

/* CPM 5.4.9 — arrows vertically centred to the LOGO VIEWPORT itself,
   not the taller row/section/label area. */
.cpm-logos__row{
    position:relative!important;
    display:block!important;
}
.cpm-logos-viewport{
    position:relative!important;
}
.cpm-logos-arrow{
    position:absolute!important;
    top:50%!important;
    margin:0!important;
    transform:translateY(-50%)!important;
    z-index:20!important;
}
.cpm-logos-prev{left:0!important;}
.cpm-logos-next{right:0!important;}

/* Give the track room for the overlayed arrow buttons. */
.cpm-logos-viewport{
    margin-left:calc(var(--cpm-arrow-space, 70px))!important;
    margin-right:calc(var(--cpm-arrow-space, 70px))!important;
    width:auto!important;
}

/* The optional Elementor nudge is applied after true centring. */
.cpm-logos-arrow{
    top:calc(50% + var(--cpm-arrow-y, 0px))!important;
}

/* CPM 5.4.10 — FIX: both arrows share ONE vertical centre.
   v5.4.9 made .cpm-logos__row display:block, so the two buttons entered
   normal flow at different Y positions before top:50% was applied.
   They now overlay the same positioned row and cannot stack vertically. */
.cpm-logos__row{
    position:relative!important;
    display:grid!important;
    grid-template-columns:1fr!important;
    align-items:center!important;
}
.cpm-logos-viewport{
    grid-column:1!important;
    grid-row:1!important;
    position:relative!important;
    margin-left:var(--cpm-arrow-space,70px)!important;
    margin-right:var(--cpm-arrow-space,70px)!important;
    width:auto!important;
}
.cpm-logos-arrow{
    position:absolute!important;
    top:calc(50% + var(--cpm-arrow-y,0px))!important;
    bottom:auto!important;
    margin:0!important;
    transform:translateY(-50%)!important;
    z-index:30!important;
}
.cpm-logos-prev{
    left:0!important;
    right:auto!important;
}
.cpm-logos-next{
    right:0!important;
    left:auto!important;
}

/* CPM 5.4.11 — definitive logo-arrow layout.
   Arrows remain flex siblings of the viewport, so both buttons MUST share
   the logo viewport's centre line. This overrides the failed absolute/grid patches. */
.cpm-logos__row{
    display:flex!important;
    position:relative!important;
    align-items:center!important;
    justify-content:center!important;
    flex-wrap:nowrap!important;
    width:100%!important;
}
.cpm-logos-viewport{
    position:relative!important;
    flex:1 1 auto!important;
    min-width:0!important;
    width:auto!important;
    margin-left:0!important;
    margin-right:0!important;
    grid-column:auto!important;
    grid-row:auto!important;
}
.cpm-logos-arrow{
    position:relative!important;
    top:auto!important;
    bottom:auto!important;
    left:auto!important;
    right:auto!important;
    transform:none!important;
    margin-top:0!important;
    margin-bottom:0!important;
    align-self:center!important;
    flex:0 0 auto!important;
    z-index:20!important;
}
/* Use gap instead of viewport margins, keeping the geometry symmetrical. */
.cpm-logos__row{
    column-gap:var(--cpm-arrow-gap,24px)!important;
}

/* ============================================================
   CPM 5.5.0 — CLIENT LOGOS: CLEAN REBUILD
   Geometry:
   label
   [ arrow ][ logo viewport ][ arrow ]
   The carousel row itself defines the alignment. No absolute
   positioning, offsets or inherited grid patches.
   ============================================================ */
.cpm-logos .cpm-logos__row{
    display:grid!important;
    grid-template-columns:auto minmax(0,1fr) auto!important;
    grid-template-rows:auto!important;
    align-items:center!important;
    justify-items:stretch!important;
    column-gap:clamp(22px,3vw,54px)!important;
    position:relative!important;
    width:100%!important;
    flex-wrap:nowrap!important;
}
.cpm-logos .cpm-logos-viewport{
    grid-column:2!important;
    grid-row:1!important;
    align-self:center!important;
    position:relative!important;
    width:100%!important;
    min-width:0!important;
    margin:0!important;
    overflow:hidden!important;
    flex:none!important;
}
.cpm-logos .cpm-logos-track{
    display:flex!important;
    align-items:center!important;
}
.cpm-logos .cpm-logo-item{
    display:flex!important;
    align-items:center!important;
    justify-content:center!important;
}
.cpm-logos .cpm-logo-item > a{
    display:flex!important;
    align-items:center!important;
    justify-content:center!important;
}
.cpm-logos .cpm-logo-mask,
.cpm-logos .cpm-logo-text{
    display:block!important;
    flex:0 0 auto!important;
}
.cpm-logos .cpm-logos-arrow{
    position:relative!important;
    top:auto!important;
    bottom:auto!important;
    left:auto!important;
    right:auto!important;
    transform:none!important;
    margin:0!important;
    align-self:center!important;
    justify-self:center!important;
    flex:none!important;
    z-index:20!important;
}
.cpm-logos .cpm-logos-prev{
    grid-column:1!important;
    grid-row:1!important;
}
.cpm-logos .cpm-logos-next{
    grid-column:3!important;
    grid-row:1!important;
}
/* Keep the chevron itself optically centred inside the circle. */
.cpm-logos .cpm-logos-arrow::before{
    position:absolute!important;
    left:50%!important;
    top:50%!important;
    margin:0!important;
}
@media(max-width:767px){
    .cpm-logos .cpm-logos__row{
        column-gap:14px!important;
    }
}

/* CPM 5.5.1: responsive arrow Y control; default remains true centre. */

/* 5.5.2 editor-visible arrow position control */

/* CPM 5.5.3 — background belongs to the complete widget, not just inner content. */
.elementor-widget-cpm-client-logos,
.elementor-widget-cpm-client-logos > .elementor-widget-container{
    background:inherit;
}
.cpm-logos{
    width:100%;
    box-sizing:border-box;
}

/* CPM 5.5.5 — overlay hero uses ONLY the fade.
   No separate solid Copy Background layer. */
.cpm-hero-header--overlay .cpm-hero-header__copy{
    background:transparent!important;
}


/* ==========================================================
   CPM BLOCKS 5.6.0 — CLEAN HERO FADE ENGINE
   One fade. One colour. One strength.
   Legacy white/stacked pseudo-gradients are disabled completely.
   ========================================================== */
.cpm-hero-header{
    --cpm-overlay-colour:#fff;
    --cpm-overlay-strength:92;
}

/* Kill every legacy fade/tint layer accumulated by older builds. */
.cpm-hero-header__image:before,
.cpm-hero-header--overlay .cpm-hero-header__image:after,
.cpm-hero-header--overlay .cpm-hero-header__copy:after{
    content:none!important;
    display:none!important;
    background:none!important;
}

/* The dedicated fade is the ONLY overlay fade layer. */
.cpm-hero-header__fade{
    display:none;
}
.cpm-hero-header--overlay .cpm-hero-header__fade{
    display:block;
    position:absolute;
    inset:0;
    z-index:1;
    pointer-events:none;
    opacity:calc(var(--cpm-overlay-strength,92) / 100);
    background:linear-gradient(
        90deg,
        var(--cpm-overlay-colour,#fff) 0%,
        var(--cpm-overlay-colour,#fff) 28%,
        transparent 74%,
        transparent 100%
    );
}

/* Clean stacking: background/slideshow -> fade -> copy. */
.cpm-hero-header--overlay .cpm-hero-bg-slides,
.cpm-hero-header--overlay .cpm-hero-header__image{
    z-index:0!important;
}
.cpm-hero-header--overlay .cpm-hero-header__copy{
    z-index:2!important;
    background:transparent!important;
}
.cpm-hero-header--overlay .cpm-hero-header__caption{
    z-index:3!important;
}

/* On stacked tablet/mobile layouts there is no image-behind-copy fade. */
@media(max-width:900px){
    .cpm-hero-header--overlay .cpm-hero-header__fade{
        display:none!important;
    }
}


/* ==========================================================
   CPM BLOCKS 5.6.2 — HERO FADE GEOMETRY
   The fade always covers the whole hero.
   Fade Width moves only the transparent END of the fade.
   Fade Position moves the transition zone, while the colour
   behind the copy always begins at the left edge.
   ========================================================== */
.cpm-hero-header{
    --cpm-fade-width:74%;
    --cpm-fade-position:0%;
}
.cpm-hero-header--overlay .cpm-hero-header__fade{
    inset:0!important;
    width:100%!important;
    height:100%!important;
    left:0!important;
    top:0!important;
    bottom:auto!important;
    opacity:calc(var(--cpm-overlay-strength,92) / 100)!important;
    background:linear-gradient(
        90deg,
        var(--cpm-overlay-colour,#fff) 0%,
        var(--cpm-overlay-colour,#fff) calc(34% + var(--cpm-fade-position,0%)),
        color-mix(in srgb,var(--cpm-overlay-colour,#fff) 72%,transparent)
            calc(52% + var(--cpm-fade-position,0%)),
        color-mix(in srgb,var(--cpm-overlay-colour,#fff) 28%,transparent)
            calc(64% + var(--cpm-fade-position,0%)),
        transparent var(--cpm-fade-width,74%),
        transparent 100%
    )!important;
}

/* Before / After — editorial typography + large clean comparison */
.cpm-before-after{overflow:hidden}
.cpm-before-after .cpm-shell{max-width:1420px}
.cpm-before-after__intro{margin:0 0 46px}
.cpm-before-after__eyebrow{
    display:flex;align-items:center;gap:16px;
    margin:0 0 18px;
    color:var(--cpm-accent,#E30613);
    font-size:11px;font-weight:850;line-height:1.2;
    letter-spacing:.13em;text-transform:uppercase;
}
.cpm-before-after__eyebrow:after{content:"";width:34px;height:1px;background:currentColor;display:block}
.cpm-before-after__heading{
    margin:0;
    max-width:1100px;
    color:#111315;
    font-size:clamp(46px,5.4vw,86px);
    font-weight:900;
    line-height:.94;
    letter-spacing:-.055em;
}
.cpm-before-after__body{
    max-width:760px;
    margin:24px 0 0;
    color:#6f747a;
    font-size:16px;
    line-height:1.65;
}
.cpm-before-after__body p{margin:0 0 1em}
.cpm-before-after__body p:last-child{margin-bottom:0}

.cpm-ba{
    --cpm-ba-split:50;
    --cpm-ba-handle-size:62px;
    --cpm-ba-divider:2px;
    --cpm-ba-handle-color:#fff;
    --cpm-ba-icon-color:#111315;
    --cpm-ba-label-offset:24px;
    position:relative;
    height:680px;
    min-height:0;
    overflow:hidden;
    background:#d9dcdf;
    box-shadow:none;
    isolation:isolate;
    cursor:ew-resize;
}
.cpm-ba__image{position:absolute;inset:0;overflow:hidden}
.cpm-ba__image img{display:block;width:100%;height:100%;object-fit:cover;user-select:none;pointer-events:none}
.cpm-ba__before{z-index:1}
.cpm-ba__after{z-index:2;clip-path:inset(0 0 0 calc(var(--cpm-ba-split) * 1%))}
.cpm-ba__label{
    position:absolute;
    top:var(--cpm-ba-label-offset);
    bottom:auto;
    left:var(--cpm-ba-label-offset);
    z-index:3;
    display:inline-flex;align-items:center;
    padding:11px 14px 10px;
    border:0;
    border-radius:0;
    background:#111315;
    color:#fff;
    font-size:10px;
    font-weight:850;
    line-height:1;
    letter-spacing:.12em;
    text-transform:uppercase;
    box-shadow:0 8px 30px rgba(0,0,0,.08);
}
.cpm-ba__after .cpm-ba__label{left:auto;right:var(--cpm-ba-label-offset);background:var(--cpm-accent,#E30613)}
.cpm-ba__range{position:absolute;inset:0;z-index:6;width:100%;height:100%;opacity:0;cursor:ew-resize;margin:0}
.cpm-ba__handle{
    position:absolute;
    z-index:5;
    left:calc(var(--cpm-ba-split) * 1%);
    top:0;bottom:0;
    width:var(--cpm-ba-divider);
    transform:translateX(-50%);
    background:var(--cpm-ba-handle-color);
    pointer-events:none;
    box-shadow:0 0 0 1px rgba(0,0,0,.05);
}
.cpm-ba__handle span{
    position:absolute;
    top:50%;left:50%;
    width:var(--cpm-ba-handle-size);height:var(--cpm-ba-handle-size);
    transform:translate(-50%,-50%);
    display:grid;place-items:center;
    border-radius:999px;
    background:var(--cpm-ba-handle-color);
    color:var(--cpm-ba-icon-color);
    font-size:20px;
    font-weight:800;
    line-height:1;
    box-shadow:0 12px 38px rgba(0,0,0,.22);
    transition:transform .18s ease,box-shadow .18s ease;
}
.cpm-ba:hover .cpm-ba__handle span{transform:translate(-50%,-50%) scale(1.06);box-shadow:0 14px 44px rgba(0,0,0,.28)}

@media(max-width:900px){
    .cpm-before-after__heading{font-size:clamp(42px,8vw,68px)}
    .cpm-before-after__body{font-size:15px}
    .cpm-ba{height:520px}
}
@media(max-width:600px){
    .cpm-before-after__eyebrow{font-size:9px;gap:10px}
    .cpm-before-after__eyebrow:after{width:22px}
    .cpm-before-after__heading{font-size:clamp(38px,12vw,54px);line-height:.96}
    .cpm-before-after__body{font-size:14px;line-height:1.6;margin-top:18px}
    .cpm-ba{height:380px;--cpm-ba-label-offset:12px;--cpm-ba-handle-size:48px}
    .cpm-ba__label{font-size:8px;padding:9px 10px;letter-spacing:.09em}
}


/* 5.6.5 — individual widgets now use the exact v3 Signature module markup. */
.elementor-widget-cpm-before-after .cpm-signature .sig-ba{
  height:var(--cpm-ba-height,min(78vh,880px));
}
.elementor-widget-cpm-before-after .cpm-signature .sig-ba .cpm-ba__after{
  clip-path:inset(0 0 0 calc(var(--cpm-ba-split,50) * 1%));
}
.elementor-widget-cpm-before-after .cpm-signature .sig-ba .cpm-ba__handle{
  left:calc(var(--cpm-ba-split,50) * 1%);
}


/* ==========================================================
   CPM 5.6.6 — BEFORE/AFTER EXACT SIGNATURE RESET
   Scoped only to the individual Before / After widget.
   ========================================================== */
.elementor-widget-cpm-before-after .cpm-signature-before-after{
  --sig-ink:#111315;
  --sig-muted:#6d7278;
  --sig-accent:#E30613;
  --sig-line:#dedfdf;
  --sig-ba-handle-size:54px;
  --sig-ba-divider:2px;
  --sig-ba-handle:#fff;
  --sig-ba-icon:#111315;
  background:#fff;
  color:var(--sig-ink);
}
.elementor-widget-cpm-before-after .cpm-signature-before-after .sig-section{
  padding:138px 0 !important;
  background:#fff !important;
}
.elementor-widget-cpm-before-after .cpm-signature-before-after .sig-shell{
  width:calc(100% - 96px) !important;
  max-width:1440px !important;
  margin:0 auto !important;
}
.elementor-widget-cpm-before-after .cpm-signature-before-after .sig-section-rule{
  display:grid !important;
  grid-template-columns:72px 1fr !important;
  border-top:1px solid #151719 !important;
  padding-top:13px !important;
  margin:0 0 86px !important;
  font-size:9px !important;
  line-height:1 !important;
  text-transform:uppercase !important;
  letter-spacing:.17em !important;
  color:#8c9196 !important;
}
.elementor-widget-cpm-before-after .cpm-signature-before-after .sig-section-rule b{font-weight:800 !important}
.elementor-widget-cpm-before-after .cpm-signature-before-after .sig-intro-grid{
  display:grid !important;
  grid-template-columns:1.2fr .65fr !important;
  gap:10vw !important;
  align-items:end !important;
  margin:0 0 76px !important;
}
.elementor-widget-cpm-before-after .cpm-signature-before-after .sig-kicker{
  font-family:inherit !important;
  font-size:10px !important;
  line-height:1.2 !important;
  font-weight:800 !important;
  letter-spacing:.17em !important;
  text-transform:uppercase !important;
  color:var(--sig-accent) !important;
  margin:0 0 24px !important;
}
.elementor-widget-cpm-before-after .cpm-signature-before-after .sig-intro-grid h2{
  font-family:inherit !important;
  font-size:clamp(52px,5.5vw,88px) !important;
  line-height:.91 !important;
  letter-spacing:-.06em !important;
  font-weight:850 !important;
  margin:0 !important;
  color:var(--sig-ink) !important;
  text-align:left !important;
  max-width:none !important;
}
.elementor-widget-cpm-before-after .cpm-signature-before-after .sig-copy,
.elementor-widget-cpm-before-after .cpm-signature-before-after .sig-copy p{
  font-family:inherit !important;
  font-size:15px !important;
  line-height:1.72 !important;
  font-weight:400 !important;
  letter-spacing:normal !important;
  color:var(--sig-muted) !important;
  text-align:left !important;
}
.elementor-widget-cpm-before-after .cpm-signature-before-after .sig-intro-copy{
  max-width:490px !important;
  padding:0 0 7px !important;
  margin:0 !important;
}
.elementor-widget-cpm-before-after .cpm-signature-before-after .sig-copy p{margin:0 !important}

.elementor-widget-cpm-before-after .cpm-signature-before-after .sig-ba{
  position:relative !important;
  overflow:hidden !important;
  min-height:0;
  height:720px;
  width:100% !important;
  margin:0 !important;
  border:0 !important;
  border-radius:0 !important;
  box-shadow:none !important;
  background:#e1e2e0 !important;
  --cpm-ba-label-offset:24px;
}
.elementor-widget-cpm-before-after .cpm-signature-before-after .sig-ba .cpm-ba__image{
  position:absolute !important;
  inset:0 !important;
  overflow:hidden !important;
}
.elementor-widget-cpm-before-after .cpm-signature-before-after .sig-ba .cpm-ba__image img{
  display:block !important;
  width:100% !important;
  height:100% !important;
  object-fit:cover !important;
  object-position:center !important;
}
.elementor-widget-cpm-before-after .cpm-signature-before-after .sig-ba .cpm-ba__after{
  z-index:2 !important;
  clip-path:inset(0 0 0 calc(var(--cpm-ba-split,50) * 1%));
}
.elementor-widget-cpm-before-after .cpm-signature-before-after .sig-ba .cpm-ba__label{
  position:absolute !important;
  top:auto !important;
  bottom:24px !important;
  left:24px !important;
  right:auto !important;
  z-index:3 !important;
  border-radius:0 !important;
  background:#111315 !important;
  color:#fff !important;
  padding:10px 12px !important;
  font-family:inherit !important;
  font-size:8px !important;
  line-height:1 !important;
  font-weight:850 !important;
  letter-spacing:.14em !important;
  text-transform:uppercase !important;
}
.elementor-widget-cpm-before-after .cpm-signature-before-after .sig-ba .cpm-ba__after .cpm-ba__label{
  left:auto !important;
  right:24px !important;
  background:var(--sig-accent) !important;
}
.elementor-widget-cpm-before-after .cpm-signature-before-after .sig-ba .cpm-ba__range{
  position:absolute !important;
  inset:0 !important;
  z-index:6 !important;
  width:100% !important;
  height:100% !important;
  opacity:0 !important;
  cursor:ew-resize !important;
  margin:0 !important;
  padding:0 !important;
}
.elementor-widget-cpm-before-after .cpm-signature-before-after .sig-ba .cpm-ba__handle{
  position:absolute !important;
  z-index:5 !important;
  left:calc(var(--cpm-ba-split,50) * 1%) !important;
  top:0 !important;
  bottom:0 !important;
  width:var(--sig-ba-divider) !important;
  height:auto !important;
  margin:0 !important;
  transform:translateX(-50%) !important;
  border:0 !important;
  border-radius:0 !important;
  background:var(--sig-ba-handle) !important;
  color:transparent !important;
  box-shadow:none !important;
  pointer-events:none !important;
}
.elementor-widget-cpm-before-after .cpm-signature-before-after .sig-ba .cpm-ba__handle:after{
  content:none !important;
  display:none !important;
}
.elementor-widget-cpm-before-after .cpm-signature-before-after .sig-ba .cpm-ba__handle span{
  position:absolute !important;
  top:50% !important;
  left:50% !important;
  width:var(--sig-ba-handle-size) !important;
  height:var(--sig-ba-handle-size) !important;
  margin:0 !important;
  transform:translate(-50%,-50%) !important;
  display:grid !important;
  place-items:center !important;
  border:0 !important;
  border-radius:0 !important;
  background:var(--sig-ba-handle) !important;
  color:var(--sig-ba-icon) !important;
  box-shadow:0 8px 24px rgba(0,0,0,.15) !important;
  font-family:inherit !important;
  font-size:18px !important;
  line-height:1 !important;
  font-weight:500 !important;
}
.elementor-widget-cpm-before-after .cpm-signature-before-after .sig-ba:hover .cpm-ba__handle span{
  transform:translate(-50%,-50%) !important;
}
.elementor-widget-cpm-before-after .cpm-signature-before-after .sig-caption{
  display:grid !important;
  grid-template-columns:auto 1fr auto !important;
  align-items:center !important;
  gap:15px !important;
  margin:17px 0 0 !important;
  font-family:inherit !important;
  font-size:8px !important;
  line-height:1 !important;
  font-weight:800 !important;
  letter-spacing:.16em !important;
  color:#92969a !important;
}
.elementor-widget-cpm-before-after .cpm-signature-before-after .sig-caption i{
  display:block !important;
  height:1px !important;
  background:#d7d9da !important;
}

@media(max-width:1100px){
  .elementor-widget-cpm-before-after .cpm-signature-before-after .sig-shell{width:calc(100% - 56px) !important}
  .elementor-widget-cpm-before-after .cpm-signature-before-after .sig-section{padding:105px 0 !important}
}
@media(max-width:820px){
  .elementor-widget-cpm-before-after .cpm-signature-before-after .sig-shell{width:calc(100% - 42px) !important}
  .elementor-widget-cpm-before-after .cpm-signature-before-after .sig-section{padding:88px 0 !important}
  .elementor-widget-cpm-before-after .cpm-signature-before-after .sig-section-rule{margin-bottom:58px !important}
  .elementor-widget-cpm-before-after .cpm-signature-before-after .sig-intro-grid{grid-template-columns:1fr !important;gap:42px !important}
  .elementor-widget-cpm-before-after .cpm-signature-before-after .sig-intro-copy{max-width:600px !important}
}
@media(max-width:560px){
  .elementor-widget-cpm-before-after .cpm-signature-before-after .sig-shell{width:calc(100% - 34px) !important}
  .elementor-widget-cpm-before-after .cpm-signature-before-after .sig-section{padding:72px 0 !important}
  .elementor-widget-cpm-before-after .cpm-signature-before-after .sig-intro-grid h2{font-size:49px !important}
  .elementor-widget-cpm-before-after .cpm-signature-before-after .sig-ba .cpm-ba__label{bottom:16px !important;left:16px !important}
  .elementor-widget-cpm-before-after .cpm-signature-before-after .sig-ba .cpm-ba__after .cpm-ba__label{left:auto !important;right:16px !important}
}


/* ==========================================================
   CPM BLOCKS 5.7.0 — REFERENCE-LOCKED SIGNATURE MODULES
   Source of truth: the original v3.0 Signature page.
   Intentionally excludes Hero and Client Logos.
   ========================================================== */

.cpm-reference-module{
  --sig-accent:#E30613;
  --sig-ink:#101214;
  --sig-muted:#6d7278;
  --sig-soft:#f3f3f1;
  --sig-line:#dcdedf;
  --sig-darkline:#35393e;
  --sig-ease:cubic-bezier(.2,.75,.25,1);
  font-family:Poppins,Arial,Helvetica,sans-serif;
  background:#fff;
  color:var(--sig-ink);
  overflow:hidden;
}
.cpm-reference-module *{box-sizing:border-box}
.cpm-reference-module .sig-shell{width:calc(100% - 96px);max-width:1440px;margin:0 auto}
.cpm-reference-module .sig-section{padding:138px 0}
.cpm-reference-module .sig-kicker{
  font-family:Poppins,Arial,Helvetica,sans-serif;
  font-size:10px;line-height:1.2;font-weight:800;letter-spacing:.17em;
  text-transform:uppercase;color:var(--sig-accent);margin:0 0 24px;
}
.cpm-reference-module .sig-section-rule{
  display:grid;grid-template-columns:72px 1fr;border-top:1px solid #151719;
  padding-top:13px;margin:0 0 86px;font-family:Poppins,Arial,Helvetica,sans-serif;
  font-size:9px;line-height:1;text-transform:uppercase;letter-spacing:.17em;color:#8c9196;
}
.cpm-reference-module .sig-section-rule.dark{border-color:var(--sig-darkline);color:#6f747a}
.cpm-reference-module .sig-section-rule b{font-weight:800}
.cpm-reference-module h2,.cpm-reference-module h3{
  font-family:Poppins,Arial,Helvetica,sans-serif;
}
.cpm-reference-module h2{
  font-size:clamp(52px,5.5vw,88px);line-height:.91;letter-spacing:-.06em;
  font-weight:900;margin:0;color:var(--sig-ink);
}
.cpm-reference-module .sig-copy,.cpm-reference-module .sig-copy p{
  font-family:Poppins,Arial,Helvetica,sans-serif;font-size:15px;line-height:1.72;color:var(--sig-muted)
}
.cpm-reference-module .sig-copy p{margin:0}
.cpm-reference-module .sig-placeholder{
  width:100%;height:100%;min-height:260px;display:grid;place-items:center;
  background:linear-gradient(135deg,rgba(255,255,255,.45),transparent 48%),
  repeating-linear-gradient(90deg,#e2e3e1 0,#e2e3e1 1px,#ebebe9 1px,#ebebe9 80px);
}
.cpm-reference-module .sig-placeholder span{
  font-family:Poppins,Arial,Helvetica,sans-serif;font-size:9px;font-weight:800;letter-spacing:.16em;color:#92969a
}

/* 01 — TRANSFORMATION */
.elementor-widget-cpm-before-after .cpm-reference-module .sig-transform{background:#fff}
.elementor-widget-cpm-before-after .cpm-reference-module .sig-intro-grid{
  display:grid;grid-template-columns:1.2fr .65fr;gap:10vw;align-items:end;margin-bottom:76px
}
.elementor-widget-cpm-before-after .cpm-reference-module .sig-intro-copy{max-width:490px;padding-bottom:7px}
.elementor-widget-cpm-before-after .cpm-reference-module .sig-ba{
  position:relative;width:100%;height:720px;min-height:0;overflow:hidden;
  box-shadow:none!important;border:0!important;border-radius:0!important;background:#e1e2e0!important;
}
.elementor-widget-cpm-before-after .cpm-reference-module .sig-ba .cpm-ba__image{position:absolute;inset:0;overflow:hidden}
.elementor-widget-cpm-before-after .cpm-reference-module .sig-ba .cpm-ba__image img{width:100%;height:100%;object-fit:cover}
.elementor-widget-cpm-before-after .cpm-reference-module .sig-ba .cpm-ba__after{
  z-index:2;clip-path:inset(0 0 0 calc(var(--cpm-ba-split,50) * 1%))
}
.elementor-widget-cpm-before-after .cpm-reference-module .sig-ba .cpm-ba__label{
  position:absolute!important;top:auto!important;bottom:24px!important;left:24px!important;right:auto!important;
  z-index:3!important;border-radius:0!important;background:#111315!important;color:#fff!important;
  padding:10px 12px!important;font-family:Poppins,Arial,Helvetica,sans-serif!important;font-size:8px!important;
  line-height:1!important;font-weight:850!important;letter-spacing:.14em!important;text-transform:uppercase!important;
}
.elementor-widget-cpm-before-after .cpm-reference-module .sig-ba .cpm-ba__after .cpm-ba__label{
  left:auto!important;right:24px!important;background:var(--sig-accent)!important
}
.elementor-widget-cpm-before-after .cpm-reference-module .sig-ba .cpm-ba__range{
  position:absolute!important;inset:0!important;z-index:6!important;width:100%!important;height:100%!important;
  opacity:0!important;cursor:ew-resize!important;margin:0!important
}
.elementor-widget-cpm-before-after .cpm-reference-module .sig-ba .cpm-ba__handle{
  position:absolute!important;z-index:5!important;left:calc(var(--cpm-ba-split,50) * 1%)!important;
  top:0!important;bottom:0!important;width:2px!important;height:auto!important;margin:0!important;
  transform:translateX(-50%)!important;background:#fff!important;border:0!important;border-radius:0!important;
  box-shadow:none!important;pointer-events:none!important;color:transparent!important;
}
.elementor-widget-cpm-before-after .cpm-reference-module .sig-ba .cpm-ba__handle:after{content:none!important;display:none!important}
.elementor-widget-cpm-before-after .cpm-reference-module .sig-ba .cpm-ba__handle span{
  position:absolute!important;top:50%!important;left:50%!important;width:54px!important;height:54px!important;
  transform:translate(-50%,-50%)!important;display:grid!important;place-items:center!important;border-radius:0!important;
  background:#fff!important;color:#111315!important;box-shadow:0 8px 24px rgba(0,0,0,.15)!important;
  font-size:18px!important;font-weight:500!important;line-height:1!important;
}
.elementor-widget-cpm-before-after .cpm-reference-module .sig-ba:hover .cpm-ba__handle span{
  transform:translate(-50%,-50%)!important;
}
.elementor-widget-cpm-before-after .cpm-reference-module .sig-caption{
  display:grid;grid-template-columns:auto 1fr auto;align-items:center;gap:15px;margin-top:17px;
  font-family:Poppins,Arial,Helvetica,sans-serif;font-size:8px;font-weight:800;letter-spacing:.16em;color:#92969a
}
.elementor-widget-cpm-before-after .cpm-reference-module .sig-caption i{height:1px;background:#d7d9da}

/* 02 — PROJECT OUTCOMES */
.elementor-widget-cpm-outcomes .cpm-reference-module .sig-outcomes{background:#111315;color:#fff}
.elementor-widget-cpm-outcomes .cpm-reference-module .sig-outcomes h2,
.elementor-widget-cpm-outcomes .cpm-reference-module .sig-outcomes h3{color:#fff}
.elementor-widget-cpm-outcomes .cpm-reference-module .sig-outcomes-head{max-width:1050px;margin-bottom:82px}
.elementor-widget-cpm-outcomes .cpm-reference-module .sig-outcome-list{border-top:1px solid var(--sig-darkline)}
.elementor-widget-cpm-outcomes .cpm-reference-module .sig-outcome-list article{
  display:grid;grid-template-columns:65px 120px 1.1fr 1fr 36px;gap:28px;align-items:center;
  padding:30px 0;border-bottom:1px solid #30343a;transition:padding .25s var(--sig-ease),background .25s
}
.elementor-widget-cpm-outcomes .cpm-reference-module .sig-outcome-list article:hover{padding-left:14px;background:#15181b}
.elementor-widget-cpm-outcomes .cpm-reference-module .sig-outcome-num{font-size:9px;color:#60656b}
.elementor-widget-cpm-outcomes .cpm-reference-module .sig-outcome-key{font-size:8px;font-weight:850;letter-spacing:.16em;color:var(--sig-accent)}
.elementor-widget-cpm-outcomes .cpm-reference-module .sig-outcome-list h3{
  font-size:clamp(23px,2.2vw,35px);line-height:1;letter-spacing:-.035em;margin:0;font-weight:800
}
.elementor-widget-cpm-outcomes .cpm-reference-module .sig-outcome-list p{font-size:14px;line-height:1.6;color:#a0a5ab;margin:0;max-width:470px}
.elementor-widget-cpm-outcomes .cpm-reference-module .sig-arrow{font-size:23px;font-weight:400;color:var(--sig-accent)}

/* 03 — FROM SITE TO MARKET */
.elementor-widget-cpm-process .cpm-reference-module .sig-story{background:var(--sig-soft)}
.elementor-widget-cpm-process .cpm-reference-module .sig-story-head{
  display:grid;grid-template-columns:1.15fr .65fr;gap:10vw;align-items:end;margin-bottom:112px
}
.elementor-widget-cpm-process .cpm-reference-module .sig-story-head p{font-size:17px;line-height:1.65;color:#6d7278;max-width:500px;margin:0 0 5px}
.elementor-widget-cpm-process .cpm-reference-module .sig-story-row{
  display:grid;grid-template-columns:1.35fr .65fr;gap:8vw;align-items:center;margin-bottom:145px
}
.elementor-widget-cpm-process .cpm-reference-module .sig-story-row.reverse{grid-template-columns:.65fr 1.35fr}
.elementor-widget-cpm-process .cpm-reference-module .sig-story-row.reverse .sig-story-media{order:2}
.elementor-widget-cpm-process .cpm-reference-module .sig-story-media{position:relative;aspect-ratio:16/10;overflow:hidden;background:#dedfdd}
.elementor-widget-cpm-process .cpm-reference-module .sig-story-media>img{width:100%;height:100%;object-fit:cover;transition:transform .8s var(--sig-ease)}
.elementor-widget-cpm-process .cpm-reference-module .sig-story-row:hover .sig-story-media>img{transform:scale(1.018)}
.elementor-widget-cpm-process .cpm-reference-module .sig-story-index{
  position:absolute;left:18px;bottom:15px;font-size:58px;line-height:1;font-weight:900;letter-spacing:-.07em;color:#fff;text-shadow:0 2px 20px rgba(0,0,0,.2)
}
.elementor-widget-cpm-process .cpm-reference-module .sig-story-copy>span{font-size:9px;font-weight:850;letter-spacing:.15em;color:var(--sig-accent)}
.elementor-widget-cpm-process .cpm-reference-module .sig-story-copy h3{
  font-size:clamp(35px,3.7vw,61px);line-height:.93;letter-spacing:-.055em;margin:22px 0;color:#111315;font-weight:850
}
.elementor-widget-cpm-process .cpm-reference-module .sig-story-copy p{font-size:17px;line-height:1.65;color:#6d7278;max-width:470px}
.elementor-widget-cpm-process .cpm-reference-module .sig-story-copy i{display:block;width:58px;height:3px;background:var(--sig-accent);margin-top:32px}

/* 04 — MARKET PERCEPTION */
.elementor-widget-cpm-impact .cpm-reference-module .sig-impact{
  position:relative;min-height:760px;padding:115px 0;background:#202326 center/cover no-repeat;color:#fff;display:flex;align-items:center
}
.elementor-widget-cpm-impact .cpm-reference-module .sig-impact-shade{
  position:absolute;inset:0;background:linear-gradient(90deg,rgba(8,10,12,.91),rgba(8,10,12,.58) 50%,rgba(8,10,12,.08) 88%)
}
.elementor-widget-cpm-impact .cpm-reference-module .sig-impact .sig-shell{position:relative;z-index:2}
.elementor-widget-cpm-impact .cpm-reference-module .sig-impact-top{
  display:grid;grid-template-columns:70px 1fr;width:100%;max-width:none;border-top:1px solid rgba(255,255,255,.34);
  padding-top:13px;margin-bottom:74px;font-size:8px;font-weight:850;letter-spacing:.17em;color:rgba(255,255,255,.58)
}
.elementor-widget-cpm-impact .cpm-reference-module .sig-impact h2{
  font-size:clamp(58px,6.9vw,112px);line-height:.84;letter-spacing:-.07em;max-width:1080px;color:#fff;font-weight:900
}
.elementor-widget-cpm-impact .cpm-reference-module .sig-impact p{font-size:19px;line-height:1.55;color:rgba(255,255,255,.8);max-width:650px;margin:34px 0 55px}
.elementor-widget-cpm-impact .cpm-reference-module .sig-impact-metrics{display:flex;gap:12px;flex-wrap:wrap}
.elementor-widget-cpm-impact .cpm-reference-module .sig-impact-metrics span{
  border:1px solid rgba(255,255,255,.35);padding:11px 14px;font-size:8px;font-weight:850;letter-spacing:.15em;color:#fff
}

/* 05 — CONNECTED CAMPAIGN */
.elementor-widget-cpm-capabilities .cpm-reference-module .sig-capabilities{background:#fff}
.elementor-widget-cpm-capabilities .cpm-reference-module .sig-cap-grid{display:grid;grid-template-columns:.9fr 1.1fr;gap:9vw;align-items:start}
.elementor-widget-cpm-capabilities .cpm-reference-module .sig-cap-left h2{font-size:clamp(44px,4.6vw,72px)}
.elementor-widget-cpm-capabilities .cpm-reference-module .sig-cap-left>p{font-size:16px;line-height:1.65;color:#6d7278;max-width:550px;margin:28px 0 0}
.elementor-widget-cpm-capabilities .cpm-reference-module .sig-cap-media{aspect-ratio:16/9;overflow:hidden;margin-top:54px;background:#e1e2e0}
.elementor-widget-cpm-capabilities .cpm-reference-module .sig-cap-media img{width:100%;height:100%;object-fit:cover}
.elementor-widget-cpm-capabilities .cpm-reference-module .sig-cap-list{border-top:1px solid #17191b}
.elementor-widget-cpm-capabilities .cpm-reference-module .sig-cap-list>div{
  display:grid;grid-template-columns:58px 1fr 30px;align-items:center;padding:27px 0;border-bottom:1px solid var(--sig-line);
  transition:padding .22s var(--sig-ease)
}
.elementor-widget-cpm-capabilities .cpm-reference-module .sig-cap-list>div:hover{padding-left:10px}
.elementor-widget-cpm-capabilities .cpm-reference-module .sig-cap-list span{font-size:9px;color:#9a9ea2}
.elementor-widget-cpm-capabilities .cpm-reference-module .sig-cap-list strong{font-size:clamp(20px,2vw,31px);font-weight:700;letter-spacing:-.028em}
.elementor-widget-cpm-capabilities .cpm-reference-module .sig-cap-list b{font-size:19px;font-weight:400;color:var(--sig-accent)}

/* 06 — SELECTED WORK */
.elementor-widget-cpm-projects .cpm-reference-module .sig-projects{background:#111315;color:#fff}
.elementor-widget-cpm-projects .cpm-reference-module .sig-projects h2,
.elementor-widget-cpm-projects .cpm-reference-module .sig-projects h3{color:#fff}
.elementor-widget-cpm-projects .cpm-reference-module .sig-projects-head{position:relative;max-width:980px;margin-bottom:48px}
.elementor-widget-cpm-projects .cpm-reference-module .sig-project-grid{display:grid;grid-template-columns:1.45fr .775fr .775fr;gap:18px}
.elementor-widget-cpm-projects .cpm-reference-module .sig-project-grid article{background:#171a1e;overflow:hidden}
.elementor-widget-cpm-projects .cpm-reference-module .sig-project-media{position:relative;display:block;aspect-ratio:4/3;overflow:hidden;background:#25282c}
.elementor-widget-cpm-projects .cpm-reference-module .sig-project-grid .featured .sig-project-media{aspect-ratio:16/10}
.elementor-widget-cpm-projects .cpm-reference-module .sig-project-media>img{width:100%;height:100%;object-fit:cover;transition:transform .7s var(--sig-ease)}
.elementor-widget-cpm-projects .cpm-reference-module .sig-project-grid article:hover .sig-project-media>img{transform:scale(1.025)}
.elementor-widget-cpm-projects .cpm-reference-module .sig-project-no{
  position:absolute;top:15px;left:15px;background:#fff;color:#111315;padding:8px 9px;font-size:8px;font-weight:850;letter-spacing:.12em
}
.elementor-widget-cpm-projects .cpm-reference-module .sig-project-info{display:flex;justify-content:space-between;gap:20px;padding:21px 20px 23px}
.elementor-widget-cpm-projects .cpm-reference-module .sig-project-info span{font-size:8px;font-weight:800;letter-spacing:.14em;text-transform:uppercase;color:var(--sig-accent)}
.elementor-widget-cpm-projects .cpm-reference-module .sig-project-info h3{font-size:20px;line-height:1.1;letter-spacing:-.025em;margin:8px 0 4px}
.elementor-widget-cpm-projects .cpm-reference-module .sig-project-info h3 a{color:#fff;text-decoration:none}
.elementor-widget-cpm-projects .cpm-reference-module .sig-project-info p{font-size:12px;color:#8f9499;margin:0}
.elementor-widget-cpm-projects .cpm-reference-module .sig-project-go{font-size:20px;color:var(--sig-accent);font-weight:400;text-decoration:none}
.elementor-widget-cpm-projects .cpm-reference-module .sig-project-filters{display:flex;gap:8px;flex-wrap:wrap;margin:0 0 26px}
.elementor-widget-cpm-projects .cpm-reference-module .sig-project-filters button,
.elementor-widget-cpm-projects .cpm-reference-module .sig-project-arrows button{
  border:1px solid #34383d;background:transparent;color:#b9bec4;padding:9px 12px;font-size:9px;font-weight:800;letter-spacing:.08em;text-transform:uppercase;cursor:pointer
}
.elementor-widget-cpm-projects .cpm-reference-module .sig-project-filters button.is-active{border-color:var(--sig-accent);color:#fff;background:var(--sig-accent)}
.elementor-widget-cpm-projects .cpm-reference-module .sig-project-arrows{position:absolute;right:0;bottom:0;display:flex;gap:8px}

/* FINAL CTA */
.elementor-widget-cpm-cta .cpm-reference-module .sig-cta{
  position:relative;padding:145px 0 42px;background:var(--sig-accent);color:#fff;overflow:hidden
}
.elementor-widget-cpm-cta .cpm-reference-module .sig-cta-grid{
  position:absolute;inset:0;background-image:linear-gradient(rgba(255,255,255,.09) 1px,transparent 1px),linear-gradient(90deg,rgba(255,255,255,.09) 1px,transparent 1px);
  background-size:90px 90px;mask-image:linear-gradient(90deg,transparent,black 55%,black)
}
.elementor-widget-cpm-cta .cpm-reference-module .sig-cta .sig-shell{position:relative;z-index:2}
.elementor-widget-cpm-cta .cpm-reference-module .sig-cta .sig-kicker{color:#fff;opacity:.72}
.elementor-widget-cpm-cta .cpm-reference-module .sig-cta h2{
  font-size:clamp(60px,7.2vw,116px);line-height:.84;letter-spacing:-.07em;max-width:1120px;color:#fff;font-weight:900
}
.elementor-widget-cpm-cta .cpm-reference-module .sig-cta-bottom{
  display:grid;grid-template-columns:1fr auto;gap:70px;align-items:end;margin-top:45px
}
.elementor-widget-cpm-cta .cpm-reference-module .sig-cta-bottom p{
  font-size:18px;line-height:1.58;color:rgba(255,255,255,.84);max-width:670px;margin:0
}
.elementor-widget-cpm-cta .cpm-reference-module .sig-cta-foot{
  display:flex;justify-content:space-between;border-top:1px solid rgba(255,255,255,.35);
  padding-top:14px;margin-top:90px;font-size:8px;font-weight:850;letter-spacing:.17em;color:rgba(255,255,255,.72)
}
.elementor-widget-cpm-cta .cpm-reference-module .cpm-btn--dark{
  background:#111315;border-color:#111315;color:#fff;border-radius:0
}

/* RESPONSIVE — mirrors the reference page */
@media(max-width:1050px){
  .cpm-reference-module .sig-shell{width:calc(100% - 56px)}
  .cpm-reference-module .sig-section{padding:105px 0}
  .elementor-widget-cpm-outcomes .cpm-reference-module .sig-outcome-list article{grid-template-columns:50px 100px 1fr 1fr 28px;gap:18px}
  .elementor-widget-cpm-projects .cpm-reference-module .sig-project-grid{grid-template-columns:1fr 1fr}
  .elementor-widget-cpm-projects .cpm-reference-module .sig-project-grid .featured{grid-column:1/-1}
}
@media(max-width:820px){
  .cpm-reference-module .sig-shell{width:calc(100% - 42px)}
  .cpm-reference-module .sig-section{padding:88px 0}
  .cpm-reference-module .sig-section-rule{margin-bottom:58px}
  .elementor-widget-cpm-before-after .cpm-reference-module .sig-intro-grid,
  .elementor-widget-cpm-process .cpm-reference-module .sig-story-head,
  .elementor-widget-cpm-capabilities .cpm-reference-module .sig-cap-grid{grid-template-columns:1fr;gap:42px}
  .elementor-widget-cpm-outcomes .cpm-reference-module .sig-outcome-list article{grid-template-columns:45px 1fr 28px;gap:14px 18px}
  .elementor-widget-cpm-outcomes .cpm-reference-module .sig-outcome-key{grid-column:2}
  .elementor-widget-cpm-outcomes .cpm-reference-module .sig-outcome-list h3{grid-column:2}
  .elementor-widget-cpm-outcomes .cpm-reference-module .sig-outcome-list p{grid-column:2}
  .elementor-widget-cpm-outcomes .cpm-reference-module .sig-arrow{grid-column:3;grid-row:1/5}
  .elementor-widget-cpm-process .cpm-reference-module .sig-story-row,
  .elementor-widget-cpm-process .cpm-reference-module .sig-story-row.reverse{grid-template-columns:1fr;gap:38px;margin-bottom:92px}
  .elementor-widget-cpm-process .cpm-reference-module .sig-story-row.reverse .sig-story-media{order:0}
  .elementor-widget-cpm-impact .cpm-reference-module .sig-impact{min-height:650px}
  .elementor-widget-cpm-cta .cpm-reference-module .sig-cta-bottom{grid-template-columns:1fr;gap:30px}
}
@media(max-width:560px){
  .cpm-reference-module .sig-shell{width:calc(100% - 34px)}
  .cpm-reference-module .sig-section{padding:72px 0}
  .cpm-reference-module h2{font-size:49px}
  .elementor-widget-cpm-before-after .cpm-reference-module .sig-ba{height:420px}
  .elementor-widget-cpm-before-after .cpm-reference-module .sig-ba .cpm-ba__label{bottom:16px!important;left:16px!important}
  .elementor-widget-cpm-before-after .cpm-reference-module .sig-ba .cpm-ba__after .cpm-ba__label{left:auto!important;right:16px!important}
  .elementor-widget-cpm-outcomes .cpm-reference-module .sig-outcome-key{display:none}
  .elementor-widget-cpm-outcomes .cpm-reference-module .sig-outcome-list article{padding:24px 0}
  .elementor-widget-cpm-impact .cpm-reference-module .sig-impact{min-height:580px;padding:80px 0}
  .elementor-widget-cpm-impact .cpm-reference-module .sig-impact-metrics{display:grid;grid-template-columns:1fr}
  .elementor-widget-cpm-projects .cpm-reference-module .sig-project-grid{grid-template-columns:1fr}
  .elementor-widget-cpm-projects .cpm-reference-module .sig-project-grid .featured{grid-column:auto}
  .elementor-widget-cpm-cta .cpm-reference-module .sig-cta{padding:90px 0 30px}
  .elementor-widget-cpm-cta .cpm-reference-module .sig-cta-foot{margin-top:65px}
}


/* ==========================================================
   CPM 5.7.2 — BEFORE/AFTER CONTROLS FIX
   Visual defaults remain Signature-style, but Elementor
   typography/alignment controls are now allowed to override.
   ========================================================== */

.elementor-widget-cpm-before-after .cpm-reference-module .sig-intro-grid{
    display:grid;
    grid-template-columns:minmax(0,62%) minmax(0,1fr);
    column-gap:110px;
    align-items:end;
    margin-bottom:76px;
}

.elementor-widget-cpm-before-after .cpm-reference-module .sig-intro-main{
    width:100%;
    max-width:none;
    margin:0;
}

.elementor-widget-cpm-before-after .cpm-reference-module .sig-kicker{
    display:block;
    width:auto;
    max-width:none;
    margin:0 0 24px;
    padding:0;
    font-family:Poppins,Arial,Helvetica,sans-serif;
    font-size:10px;
    line-height:1.2;
    font-weight:800;
    letter-spacing:.17em;
    text-transform:uppercase;
    color:#E30613;
    text-align:left;
}

.elementor-widget-cpm-before-after .cpm-reference-module .sig-intro-grid h2{
    display:block;
    width:100%;
    max-width:830px;
    margin:0;
    padding:0;
    text-align:left;
    font-family:Poppins,Arial,Helvetica,sans-serif;
    font-size:clamp(56px,5.65vw,92px);
    line-height:.91;
    letter-spacing:-.062em;
    font-weight:900;
    color:#101214;
}

.elementor-widget-cpm-before-after .cpm-reference-module .sig-intro-copy{
    align-self:end;
    max-width:430px;
    margin:0;
    padding:0 0 9px;
    text-align:left;
    font-family:Poppins,Arial,Helvetica,sans-serif;
    font-size:15px;
    line-height:1.68;
    color:#6d7278;
}

.elementor-widget-cpm-before-after .cpm-reference-module .sig-intro-copy p{
    margin:0;
    color:inherit;
    text-align:inherit;
}

/* Keep layout responsive without overriding Elementor typography. */
@media(max-width:820px){
    .elementor-widget-cpm-before-after .cpm-reference-module .sig-intro-grid{
        grid-template-columns:1fr;
        column-gap:0;
        row-gap:34px;
    }
    .elementor-widget-cpm-before-after .cpm-reference-module .sig-intro-grid h2{
        max-width:760px;
    }
    .elementor-widget-cpm-before-after .cpm-reference-module .sig-intro-copy{
        max-width:620px;
    }
}

@media(max-width:560px){
    .elementor-widget-cpm-before-after .cpm-reference-module .sig-intro-grid h2{
        font-size:48px;
    }
}


/* ==========================================================
   CPM 5.7.3 — BEFORE/AFTER SECTION SPACING
   Removes the inherited 138px Signature padding from this
   module only. Elementor responsive controls can override it.
   ========================================================== */
.elementor-widget-cpm-before-after .cpm-reference-module .sig-transform{
    padding-top:72px;
    padding-bottom:72px;
}
@media(max-width:820px){
    .elementor-widget-cpm-before-after .cpm-reference-module .sig-transform{
        padding-top:56px;
        padding-bottom:56px;
    }
}
@media(max-width:560px){
    .elementor-widget-cpm-before-after .cpm-reference-module .sig-transform{
        padding-top:42px;
        padding-bottom:42px;
    }
}


/* CPM 5.7.4 — Before/After body-copy vertical alignment */
.elementor-widget-cpm-before-after .cpm-reference-module .sig-intro-copy{
    align-self:end;
    transform:translateY(46px);
}
@media(max-width:820px){
    .elementor-widget-cpm-before-after .cpm-reference-module .sig-intro-copy{
        transform:none;
    }
}


/* CPM 5.7.6 — Outcomes heading alignment + typography match */
.elementor-widget-cpm-outcomes .cpm-reference-module .sig-outcomes-head{
    max-width:1440px;
    margin-left:0;
    margin-right:0;
    text-align:left;
}
.elementor-widget-cpm-outcomes .cpm-reference-module .sig-outcomes-head .sig-kicker{
    text-align:left;
}
.elementor-widget-cpm-outcomes .cpm-reference-module .sig-outcomes-head h2{
    text-align:left;
    font-family:Poppins,Arial,Helvetica,sans-serif;
    font-size:68px;
    line-height:.91;
    letter-spacing:-4px;
    font-weight:900;
    max-width:980px;
}
@media(max-width:820px){
    .elementor-widget-cpm-outcomes .cpm-reference-module .sig-outcomes-head h2{
        font-size:58px;
    }
}
@media(max-width:560px){
    .elementor-widget-cpm-outcomes .cpm-reference-module .sig-outcomes-head h2{
        font-size:46px;
        letter-spacing:-2px;
    }
}


/* CPM 5.7.7 — Site to Opportunity control-safe defaults */
.elementor-widget-cpm-process .cpm-reference-module .sig-story-head{
    grid-template-columns:minmax(0,62%) minmax(0,1fr);
    column-gap:110px;
    align-items:end;
}
.elementor-widget-cpm-process .cpm-reference-module .sig-story-head h2{
    text-align:left;
    font-family:Poppins,Arial,Helvetica,sans-serif;
    font-size:68px;
    line-height:.91;
    letter-spacing:-4px;
    font-weight:900;
}
.elementor-widget-cpm-process .cpm-reference-module .sig-story-head .sig-kicker{
    text-align:left;
}
.elementor-widget-cpm-process .cpm-reference-module .sig-story-head > p{
    text-align:left;
}
@media(max-width:820px){
    .elementor-widget-cpm-process .cpm-reference-module .sig-story-head{
        grid-template-columns:1fr;
        column-gap:0;
        row-gap:34px;
    }
    .elementor-widget-cpm-process .cpm-reference-module .sig-story-head h2{
        font-size:58px;
    }
}
@media(max-width:560px){
    .elementor-widget-cpm-process .cpm-reference-module .sig-story-head h2{
        font-size:46px;
        letter-spacing:-2px;
    }
}


/* CPM 5.7.8 — Site to Opportunity alignment correction
   Match the reference composition:
   intro copy sits lower beside the headline,
   story copy aligns visually with the image centre. */
.elementor-widget-cpm-process .cpm-reference-module .sig-story-head{
    align-items:start;
}
.elementor-widget-cpm-process .cpm-reference-module .sig-story-head > p{
    align-self:start;
    transform:translateY(34px);
    margin-top:0;
}
.elementor-widget-cpm-process .cpm-reference-module .sig-story-row{
    align-items:center;
}
.elementor-widget-cpm-process .cpm-reference-module .sig-story-copy{
    align-self:center;
    transform:translateY(18px);
}
.elementor-widget-cpm-process .cpm-reference-module .sig-story-copy > span{
    display:block;
    margin-bottom:26px;
}
.elementor-widget-cpm-process .cpm-reference-module .sig-story-copy h3{
    margin-top:0;
}
@media(max-width:820px){
    .elementor-widget-cpm-process .cpm-reference-module .sig-story-head > p,
    .elementor-widget-cpm-process .cpm-reference-module .sig-story-copy{
        transform:none;
    }
}


/* CPM 5.7.9 — Site-to-Opportunity image mouse-follow hover */
.elementor-widget-cpm-process .cpm-reference-module .sig-story-media{
    cursor:none;
}
.elementor-widget-cpm-process .cpm-reference-module .sig-story-hover{
    position:absolute;
    left:0;
    top:0;
    z-index:6;
    display:inline-flex;
    align-items:center;
    justify-content:center;
    min-height:42px;
    padding:0 15px;
    background:#111315;
    color:#fff;
    font-family:Poppins,Arial,Helvetica,sans-serif;
    font-size:10px;
    line-height:1;
    font-weight:800;
    letter-spacing:.12em;
    text-transform:uppercase;
    white-space:nowrap;
    pointer-events:none;
    opacity:0;
    transform:translate(-50%,-50%);
    transition:opacity .15s ease;
    will-change:left,top;
}
.elementor-widget-cpm-process .cpm-reference-module .sig-story-media.is-hovering .sig-story-hover{
    opacity:1;
}
.elementor-widget-cpm-process .cpm-reference-module .sig-story-copy > span{
    display:block;
}
@media(hover:none), (pointer:coarse){
    .elementor-widget-cpm-process .cpm-reference-module .sig-story-media{
        cursor:auto;
    }
    .elementor-widget-cpm-process .cpm-reference-module .sig-story-hover{
        display:none;
    }
}

/* CPM 5.8.0 — Connected Campaign media popup follows mouse */
.elementor-widget-cpm-capabilities .sig-cap-item{position:relative;cursor:none}
.elementor-widget-cpm-capabilities .sig-cap-hover-media{position:fixed;left:0;top:0;z-index:99999;width:360px;height:240px;overflow:hidden;pointer-events:none;opacity:0;visibility:hidden;transform:translate3d(-9999px,-9999px,0) scale(.92);transform-origin:center;transition:opacity .16s ease,transform .18s cubic-bezier(.2,.75,.25,1),visibility .16s;background:#111315}
.elementor-widget-cpm-capabilities .sig-cap-hover-media.has-shadow{box-shadow:0 18px 50px rgba(0,0,0,.22)}
.elementor-widget-cpm-capabilities .sig-cap-hover-media.is-visible{opacity:1;visibility:visible}
.elementor-widget-cpm-capabilities .sig-cap-hover-media img,.elementor-widget-cpm-capabilities .sig-cap-hover-media video{width:100%;height:100%;display:block;object-fit:cover}
.elementor-widget-cpm-capabilities .sig-cap-hover-caption{position:absolute;left:12px;bottom:12px;max-width:calc(100% - 24px);padding:9px 11px;background:rgba(17,19,21,.88);color:#fff;font:800 9px/1.2 Arial,Helvetica,sans-serif;letter-spacing:.1em;text-transform:uppercase}
@media(hover:none),(pointer:coarse){.elementor-widget-cpm-capabilities .sig-cap-item{cursor:auto}.elementor-widget-cpm-capabilities .sig-cap-hover-media{display:none!important}}


/* ==========================================================
   CPM 5.8.1 — FULL MODULE POLISH
   Non-Hero / non-Logo modules only.
   ========================================================== */

/* Common heading defaults and alignment safety */
.elementor-widget-cpm-outcomes .sig-outcomes-head,
.elementor-widget-cpm-process .sig-story-head,
.elementor-widget-cpm-capabilities .sig-cap-grid,
.elementor-widget-cpm-projects .sig-projects-head{
    margin-left:0;
    margin-right:0;
}
.elementor-widget-cpm-impact .sig-impact-shade{
    background:linear-gradient(
        90deg,
        color-mix(in srgb,var(--impact-overlay,#080A0C) calc(var(--impact-overlay-strength, .91) * 100%), transparent) 0%,
        color-mix(in srgb,var(--impact-overlay,#080A0C) calc(var(--impact-overlay-strength, .91) * 72%), transparent) 50%,
        transparent 92%
    );
}

/* Capabilities image behaviour */
.elementor-widget-cpm-capabilities .sig-cap-media img{
    object-fit:cover;
    object-position:center center;
}
.elementor-widget-cpm-capabilities .sig-cap-list>div{
    transition:padding .22s cubic-bezier(.2,.75,.25,1), background-color .2s ease;
}

/* Project cards */
.elementor-widget-cpm-projects .sig-project-media img{
    object-fit:cover;
    object-position:center;
}
.elementor-widget-cpm-projects .sig-project-info h3,
.elementor-widget-cpm-projects .sig-project-info p{
    margin-left:0;
    margin-right:0;
}

/* CTA button keeps the editorial square treatment unless changed */
.elementor-widget-cpm-cta .cpm-btn{
    border-style:solid;
    border-width:1px;
}

/* Mobile: keep content readable and remove awkward two-column leftovers */
@media(max-width:820px){
    .elementor-widget-cpm-capabilities .sig-cap-grid{
        grid-template-columns:1fr!important;
        row-gap:52px;
    }
    .elementor-widget-cpm-projects .sig-projects-head{
        max-width:100%;
    }
}


/* ==========================================================
   CPM BLOCKS 6.0 — NEW REUSABLE MODULES
   ========================================================== */
.cpm-transform-story,.cpm-io,.cpm-journey,.cpm-strategy,.cpm-collab,.cpm-gallery{position:relative}
.cpm-transform-story__head,.cpm-strategy__head{max-width:1080px;margin-bottom:70px}
.cpm-transform-story__head p,.cpm-strategy__head p,.cpm-collab__intro{max-width:720px;color:#6d7278;font-size:17px;line-height:1.65}
.cpm-transform-story__grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:16px}
.cpm-transform-story__card{background:#fff;padding-bottom:24px;overflow:hidden}
.cpm-transform-story__media{position:relative;height:360px;background:#ddd;overflow:hidden}
.cpm-transform-story__media img,.cpm-transform-story__media video{width:100%;height:100%;object-fit:cover;display:block;transition:transform .5s ease}
.cpm-transform-story__card:hover .cpm-transform-story__media img,.cpm-transform-story__card:hover .cpm-transform-story__media video{transform:scale(1.025)}
.cpm-transform-story__num{position:absolute;top:14px;left:14px;background:#111315;color:#fff;padding:8px 9px;font-size:9px;font-weight:800}
.cpm-transform-story__card h3{padding:24px 22px 0;margin:0;font-size:20px}.cpm-transform-story__card p{padding:0 22px;margin:10px 0 0;color:#6d7278;line-height:1.6}

.cpm-io h2{max-width:1000px;margin:0}.cpm-io__grid{display:grid;grid-template-columns:1fr auto 1fr;gap:60px;align-items:start}.cpm-io__column{border-top:1px solid #111315}.cpm-io__column h3{font-size:12px;letter-spacing:.14em;text-transform:uppercase;margin:0;padding:20px 0;color:var(--cpm-accent)}.cpm-io__item{display:grid;grid-template-columns:52px 1fr;gap:20px;padding:25px 0;border-top:1px solid #ddd;font-size:24px;font-weight:700;letter-spacing:-.025em}.cpm-io__item span{font-size:9px;color:#92969a;letter-spacing:.12em}.cpm-io__arrow{font-size:52px;color:var(--cpm-accent);align-self:center}

.cpm-journey{color:#fff}.cpm-journey .sig-kicker{color:var(--cpm-accent)}.cpm-journey h2{color:#fff;max-width:950px;margin-bottom:74px}.cpm-journey__track{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:12px;position:relative}.cpm-journey__track:before{content:"";position:absolute;top:29px;left:20px;right:20px;height:1px;background:#3b3f44}.cpm-journey__stage{position:relative;padding-top:56px}.cpm-journey__num{position:absolute;top:12px;left:0;width:34px;height:34px;border-radius:50%;display:grid;place-items:center;background:var(--cpm-accent);font-size:9px;font-weight:800;z-index:2}.cpm-journey__thumb{height:130px;overflow:hidden;margin-bottom:20px}.cpm-journey__thumb img{width:100%;height:100%;object-fit:cover}.cpm-journey__stage h3{color:#fff;font-size:18px;margin:0 0 10px}.cpm-journey__stage p{color:#9da2a8;font-size:13px;line-height:1.55;margin:0}

.cpm-strategy__list{border-top:1px solid #111315}.cpm-strategy__item{position:relative;display:grid;grid-template-columns:60px 1fr 1fr;gap:35px;align-items:center;padding:30px 0;border-bottom:1px solid #dcdedf;cursor:none}.cpm-strategy__item>span{font-size:9px;color:#9a9ea2}.cpm-strategy__item h3{font-size:30px;letter-spacing:-.035em;margin:0}.cpm-strategy__item p{margin:0;color:#6d7278;line-height:1.55}.cpm-strategy__hover{position:fixed;z-index:99999;width:340px;height:230px;overflow:hidden;pointer-events:none;opacity:0;visibility:hidden;transform:translate3d(-9999px,-9999px,0) scale(.94);transition:opacity .15s ease,transform .18s ease}.cpm-strategy__hover img{width:100%;height:100%;object-fit:cover}.cpm-strategy__item.is-hovering .cpm-strategy__hover{opacity:1;visibility:visible}

.cpm-collab h2{max-width:1000px}.cpm-collab__intro{margin:30px 0 70px}.cpm-collab__nodes{display:grid;grid-template-columns:1fr auto 1fr auto 1fr;gap:28px;align-items:center}.cpm-collab__node{background:#fff;border-top:3px solid var(--cpm-accent);padding:28px;min-height:260px}.cpm-collab__node img{width:48px;height:48px;object-fit:contain;margin-bottom:25px}.cpm-collab__node span{display:block;font-size:9px;color:#999;margin-bottom:32px}.cpm-collab__node h3{font-size:25px;line-height:1.05;margin:0 0 15px}.cpm-collab__node p{color:#6d7278;line-height:1.6}.cpm-collab__connector{font-size:34px;color:var(--cpm-accent)}

.cpm-gallery{color:#fff}.cpm-gallery h2{color:#fff;max-width:950px;margin-bottom:60px}.cpm-gallery__layout{display:grid;grid-template-columns:minmax(0,66%) minmax(240px,34%);gap:26px}.cpm-gallery__feature{height:620px;background:#25282c;overflow:hidden;position:relative}.cpm-gallery__feature img,.cpm-gallery__feature video{width:100%;height:100%;object-fit:cover;display:block;animation:cpmGalleryIn .35s ease}.cpm-gallery__rail{border-top:1px solid #35393e}.cpm-gallery__item{width:100%;display:grid;grid-template-columns:45px 1fr 24px;gap:15px;align-items:center;text-align:left;padding:22px 0;border:0;border-bottom:1px solid #35393e;background:transparent;color:#fff;cursor:pointer}.cpm-gallery__item span{font-size:9px;color:#686d73}.cpm-gallery__item small{display:block;color:var(--cpm-accent);font-size:8px;letter-spacing:.12em;margin-bottom:6px}.cpm-gallery__item strong{font-size:20px;line-height:1.1}.cpm-gallery__item b{color:var(--cpm-accent);font-weight:400}.cpm-gallery__item.is-active{padding-left:12px;background:#171a1e}.cpm-gallery__caption{color:#92969a;font-size:13px;margin-top:14px;max-width:800px}@keyframes cpmGalleryIn{from{opacity:.35;transform:scale(1.01)}to{opacity:1;transform:scale(1)}}

@media(max-width:1100px){.cpm-transform-story__grid{grid-template-columns:repeat(2,1fr)}.cpm-journey__track{grid-template-columns:repeat(3,1fr)}.cpm-journey__track:before{display:none}.cpm-collab__nodes{grid-template-columns:1fr}.cpm-collab__connector{transform:rotate(90deg);justify-self:center}.cpm-gallery__layout{grid-template-columns:1fr}.cpm-gallery__feature{height:500px}}
@media(max-width:767px){.cpm-transform-story__grid{grid-template-columns:1fr}.cpm-io__grid{grid-template-columns:1fr}.cpm-io__arrow{transform:rotate(90deg);justify-self:center}.cpm-journey__track{grid-template-columns:1fr}.cpm-strategy__item{grid-template-columns:40px 1fr}.cpm-strategy__item p{grid-column:2}.cpm-strategy__hover{display:none}.cpm-gallery__feature{height:360px}}

/* ==========================================================
   CPM BLOCKS 6.1 — NEW MODULE POLISH
   Scoped to the six reusable modules added in 6.0.
   Elementor controls outer container. These styles only manage
   the internal module composition.
   ========================================================== */
.elementor-widget-cpm-transformation-story .cpm-transform-story,
.elementor-widget-cpm-inputs-outputs .cpm-io,
.elementor-widget-cpm-project-journey .cpm-journey,
.elementor-widget-cpm-commercial-strategy .cpm-strategy,
.elementor-widget-cpm-collaboration-team .cpm-collab,
.elementor-widget-cpm-interactive-gallery .cpm-gallery{
  font-family:Poppins,Arial,Helvetica,sans-serif;
}
.elementor-widget-cpm-transformation-story .cpm-transform-story h2,
.elementor-widget-cpm-inputs-outputs .cpm-io h2,
.elementor-widget-cpm-project-journey .cpm-journey h2,
.elementor-widget-cpm-commercial-strategy .cpm-strategy h2,
.elementor-widget-cpm-collaboration-team .cpm-collab h2,
.elementor-widget-cpm-interactive-gallery .cpm-gallery h2{
  font-family:Poppins,Arial,Helvetica,sans-serif;
  font-weight:900;
  font-size:clamp(48px,5vw,82px);
  line-height:.92;
  letter-spacing:-.055em;
  text-transform:uppercase;
}
.elementor-widget-cpm-transformation-story .sig-kicker,
.elementor-widget-cpm-inputs-outputs .sig-kicker,
.elementor-widget-cpm-project-journey .sig-kicker,
.elementor-widget-cpm-commercial-strategy .sig-kicker,
.elementor-widget-cpm-collaboration-team .sig-kicker,
.elementor-widget-cpm-interactive-gallery .sig-kicker{
  font-family:Poppins,Arial,Helvetica,sans-serif;
}

/* Transformation Story */
.elementor-widget-cpm-transformation-story .cpm-transform-story__head{margin:0 0 68px}
.elementor-widget-cpm-transformation-story .cpm-transform-story__head p{margin:26px 0 0;font-size:17px;line-height:1.68}
.elementor-widget-cpm-transformation-story .cpm-transform-story__grid{display:grid;gap:18px}
.elementor-widget-cpm-transformation-story .cpm-transform-story__card{
  position:relative;overflow:hidden;background:#fff;transition:background-color .25s ease,transform .35s var(--sig-ease)
}
.elementor-widget-cpm-transformation-story .cpm-transform-story__card:before{
  content:"";position:absolute;z-index:3;left:0;right:0;bottom:0;height:3px;background:var(--cpm-accent);transform:scaleX(0);transform-origin:left;transition:transform .4s var(--sig-ease)
}
.elementor-widget-cpm-transformation-story .cpm-transform-story__card:hover:before{transform:scaleX(1)}
.elementor-widget-cpm-transformation-story .cpm-transform-story__media{position:relative;overflow:hidden;background:#dfe0de}
.elementor-widget-cpm-transformation-story .cpm-transform-story__media img,
.elementor-widget-cpm-transformation-story .cpm-transform-story__media video{display:block;width:100%;height:100%;object-fit:cover;transition:transform .65s var(--sig-ease),filter .35s ease}
.elementor-widget-cpm-transformation-story .cpm-transform-story__card:hover .cpm-transform-story__media img,
.elementor-widget-cpm-transformation-story .cpm-transform-story__card:hover .cpm-transform-story__media video{transform:scale(1.025)}
.elementor-widget-cpm-transformation-story .cpm-transform-story__num{
  position:absolute;z-index:2;left:16px;top:16px;display:grid;place-items:center;min-width:34px;height:34px;padding:0 8px;background:#111315;color:#fff;font-size:9px;font-weight:800;letter-spacing:.08em
}
.elementor-widget-cpm-transformation-story .cpm-transform-story__copy{position:relative}
.elementor-widget-cpm-transformation-story .cpm-transform-story__label{display:block;margin-bottom:12px;color:var(--cpm-accent);font-size:9px;font-weight:800;letter-spacing:.14em;text-transform:uppercase}
.elementor-widget-cpm-transformation-story .cpm-transform-story__card h3{margin:0;font-family:Poppins,Arial,Helvetica,sans-serif;font-size:24px;font-weight:900;line-height:1.04;letter-spacing:-.035em;text-transform:uppercase}
.elementor-widget-cpm-transformation-story .cpm-transform-story__card p{margin:12px 0 0;font-family:Poppins,Arial,Helvetica,sans-serif;font-size:14px;line-height:1.62}

/* Inputs -> Outputs */
.elementor-widget-cpm-inputs-outputs .cpm-io__head{margin:0 0 68px}
.elementor-widget-cpm-inputs-outputs .cpm-io__intro-stack{display:block}
.elementor-widget-cpm-inputs-outputs .cpm-io__intro-stack h2{margin:0 0 42px!important}
.elementor-widget-cpm-inputs-outputs .cpm-io__intro-stack p{margin:0!important}
.elementor-widget-cpm-inputs-outputs .cpm-io__head p{font-family:Poppins,Arial,Helvetica,sans-serif;font-size:17px;line-height:1.68}
.elementor-widget-cpm-inputs-outputs .cpm-io__grid{display:grid;grid-template-columns:minmax(0,1fr) auto minmax(0,1fr);align-items:stretch;column-gap:54px}
.elementor-widget-cpm-inputs-outputs .cpm-io__column{border-top:1px solid #dcdddf}
.elementor-widget-cpm-inputs-outputs .cpm-io__column h3{margin:0;padding-top:20px;padding-right:0;padding-bottom:20px;font-family:Poppins,Arial,Helvetica,sans-serif;font-size:11px;font-weight:900;letter-spacing:.15em;text-transform:uppercase}
.elementor-widget-cpm-inputs-outputs .cpm-io__item{display:grid;grid-template-columns:var(--cpm-io-index,48px) minmax(0,1fr);column-gap:var(--cpm-io-item-gap,18px);align-items:start;border-top:1px solid #dcdddf;padding:26px 0;transition:padding-left .28s ease,background-color .28s ease}
.elementor-widget-cpm-inputs-outputs .cpm-io__column .cpm-io__item:first-of-type{border-top:1px solid #dcdddf}
.elementor-widget-cpm-inputs-outputs .cpm-io__item:hover{padding-left:10px}
.elementor-widget-cpm-inputs-outputs .cpm-io__item>span{padding-top:5px;font-size:9px;font-weight:700;letter-spacing:.12em}
.elementor-widget-cpm-inputs-outputs .cpm-io__item strong{display:block;font-family:Poppins,Arial,Helvetica,sans-serif;font-size:25px;font-weight:900;line-height:1.06;letter-spacing:-.035em;text-transform:uppercase}
.elementor-widget-cpm-inputs-outputs .cpm-io__item p{margin:9px 0 0;font-family:Poppins,Arial,Helvetica,sans-serif;font-size:13px;line-height:1.55}
.elementor-widget-cpm-inputs-outputs .cpm-io__arrow{align-self:center;color:var(--cpm-accent);line-height:1;font-weight:300;transition:transform .3s ease}
.elementor-widget-cpm-inputs-outputs .cpm-io__grid:hover .cpm-io__arrow{transform:translateX(5px)}

/* Project Journey */
.elementor-widget-cpm-project-journey .cpm-journey__head{margin:0 0 70px}
.elementor-widget-cpm-project-journey .cpm-journey__head p{margin:26px 0 0;font-family:Poppins,Arial,Helvetica,sans-serif;font-size:17px;line-height:1.68}
.elementor-widget-cpm-project-journey .cpm-journey__track{display:grid;position:relative}
.elementor-widget-cpm-project-journey .cpm-journey--timeline .cpm-journey__track:before{content:"";position:absolute;left:18px;right:18px;top:18px;height:1px;background:#35393e}
.elementor-widget-cpm-project-journey .cpm-journey__stage{position:relative;min-width:0;transition:transform .3s var(--sig-ease),background-color .3s ease}
.elementor-widget-cpm-project-journey .cpm-journey--timeline .cpm-journey__stage{padding-top:59px}
.elementor-widget-cpm-project-journey .cpm-journey--cards .cpm-journey__stage{border-top:1px solid #35393e;background:#171a1e}
.elementor-widget-cpm-project-journey .cpm-journey--cards .cpm-journey__stage:hover{transform:translateY(-4px)}
.elementor-widget-cpm-project-journey .cpm-journey__num{
  position:absolute;z-index:2;left:0;top:0;display:grid;place-items:center;border-radius:999px;background:var(--cpm-accent);color:#fff;font-size:9px;font-weight:800;letter-spacing:.07em
}
.elementor-widget-cpm-project-journey .cpm-journey--cards .cpm-journey__num{position:relative;left:auto;top:auto;margin-bottom:28px}
.elementor-widget-cpm-project-journey .cpm-journey__thumb{overflow:hidden;margin-bottom:22px;background:#23272b}
.elementor-widget-cpm-project-journey .cpm-journey__thumb img{display:block;width:100%;height:100%;object-fit:cover;transition:transform .55s var(--sig-ease)}
.elementor-widget-cpm-project-journey .cpm-journey__stage:hover .cpm-journey__thumb img{transform:scale(1.025)}
.elementor-widget-cpm-project-journey .cpm-journey__micro{display:block;margin-bottom:9px;color:var(--cpm-accent);font-size:8px;font-weight:800;letter-spacing:.13em;text-transform:uppercase}
.elementor-widget-cpm-project-journey .cpm-journey__stage h3{margin:0 0 11px;font-family:Poppins,Arial,Helvetica,sans-serif;font-size:20px;font-weight:900;line-height:1.04;letter-spacing:-.035em;text-transform:uppercase}
.elementor-widget-cpm-project-journey .cpm-journey__stage p{margin:0;font-family:Poppins,Arial,Helvetica,sans-serif;font-size:13px;line-height:1.58}

/* Commercial Strategy */
.elementor-widget-cpm-commercial-strategy .cpm-strategy__head{margin:0 0 70px}
.elementor-widget-cpm-commercial-strategy .cpm-strategy__head p{margin:26px 0 0;font-family:Poppins,Arial,Helvetica,sans-serif;font-size:17px;line-height:1.68}
.elementor-widget-cpm-commercial-strategy .cpm-strategy__list{border-top:1px solid #dcdddf}
.elementor-widget-cpm-commercial-strategy .cpm-strategy__item{
  --cpm-strategy-num:58px;--cpm-strategy-copy:480px;
  position:relative;display:grid;grid-template-columns:var(--cpm-strategy-num) minmax(0,1fr) minmax(240px,var(--cpm-strategy-copy)) 34px;align-items:center;border-bottom:1px solid #dcdddf;padding:31px 0;transition:padding-left .3s var(--sig-ease),padding-right .3s var(--sig-ease),background-color .25s ease
}
.elementor-widget-cpm-commercial-strategy .cpm-strategy__item:hover{padding-left:14px;padding-right:14px}
.elementor-widget-cpm-commercial-strategy .cpm-strategy__num{font-size:9px;font-weight:700;letter-spacing:.12em}
.elementor-widget-cpm-commercial-strategy .cpm-strategy__num.is-hidden{visibility:hidden}
.elementor-widget-cpm-commercial-strategy .cpm-strategy__item h3{margin:0;font-family:Poppins,Arial,Helvetica,sans-serif;font-size:31px;font-weight:900;line-height:1.02;letter-spacing:-.04em;text-transform:uppercase}
.elementor-widget-cpm-commercial-strategy .cpm-strategy__item p{margin:0;font-family:Poppins,Arial,Helvetica,sans-serif;font-size:14px;line-height:1.58}
.elementor-widget-cpm-commercial-strategy .cpm-strategy__arrow{justify-self:end;color:var(--cpm-accent);font-size:22px;font-weight:400;transition:transform .25s ease}
.elementor-widget-cpm-commercial-strategy .cpm-strategy__item:hover .cpm-strategy__arrow{transform:translate(3px,-3px)}
.elementor-widget-cpm-commercial-strategy .cpm-strategy__hover{position:fixed;z-index:999999;overflow:hidden;pointer-events:none;opacity:0;visibility:hidden;transform:translate3d(-9999px,-9999px,0) scale(.96);transition:opacity .14s ease,transform .17s ease;box-shadow:0 20px 60px rgba(0,0,0,.18)}
.elementor-widget-cpm-commercial-strategy .cpm-strategy__hover img{display:block;width:100%;height:100%;object-fit:cover}
.elementor-widget-cpm-commercial-strategy .cpm-strategy__hover small{position:absolute;left:0;bottom:0;max-width:86%;padding:9px 12px;font-size:9px;font-weight:700;letter-spacing:.08em;text-transform:uppercase}
.elementor-widget-cpm-commercial-strategy .cpm-strategy__item.is-hovering .cpm-strategy__hover{opacity:1;visibility:visible}

/* Collaboration / Connected Team */
.elementor-widget-cpm-collaboration-team .cpm-collab__head{margin:0 0 68px}
.elementor-widget-cpm-collaboration-team .cpm-collab__intro{margin:26px 0 0;font-family:Poppins,Arial,Helvetica,sans-serif;font-size:17px;line-height:1.68}
.elementor-widget-cpm-collaboration-team .cpm-collab__nodes{display:grid;grid-template-columns:minmax(0,1fr) auto minmax(0,1fr) auto minmax(0,1fr);align-items:center;gap:24px}
.elementor-widget-cpm-collaboration-team .cpm-collab__node{position:relative;display:flex;flex-direction:column;border-top:3px solid var(--cpm-accent);background:#fff;overflow:hidden;transition:transform .3s var(--sig-ease),box-shadow .3s ease}
.elementor-widget-cpm-collaboration-team .cpm-collab__node:hover{transform:translateY(-5px);box-shadow:0 18px 44px rgba(13,18,22,.08)}
.elementor-widget-cpm-collaboration-team .cpm-collab__node img{display:block;object-fit:contain;margin-bottom:24px}
.elementor-widget-cpm-collaboration-team .cpm-collab__node>span{display:block;margin-bottom:auto;padding-bottom:38px;font-size:9px;font-weight:700;letter-spacing:.12em}
.elementor-widget-cpm-collaboration-team .cpm-collab__node h3{margin:0 0 13px;font-family:Poppins,Arial,Helvetica,sans-serif;font-size:26px;font-weight:900;line-height:1.02;letter-spacing:-.04em;text-transform:uppercase}
.elementor-widget-cpm-collaboration-team .cpm-collab__node p{margin:0;font-family:Poppins,Arial,Helvetica,sans-serif;font-size:14px;line-height:1.62}
.elementor-widget-cpm-collaboration-team .cpm-collab__connector{color:var(--cpm-accent);font-weight:300;line-height:1;transition:transform .3s ease}
.elementor-widget-cpm-collaboration-team .cpm-collab__nodes:hover .cpm-collab__connector{transform:translateX(3px)}
.elementor-widget-cpm-collaboration-team .cpm-collab__flow{padding:24px 28px;background:#111315}
.elementor-widget-cpm-collaboration-team .cpm-collab__flow-label{display:block;margin-bottom:17px;font-size:8px;font-weight:800;letter-spacing:.15em;text-transform:uppercase;opacity:.55}
.elementor-widget-cpm-collaboration-team .cpm-collab__flow-track{display:flex;align-items:center;justify-content:space-between;gap:18px;flex-wrap:wrap}
.elementor-widget-cpm-collaboration-team .cpm-collab__flow-item{font-size:11px;font-weight:800;letter-spacing:.08em;text-transform:uppercase}
.elementor-widget-cpm-collaboration-team .cpm-collab__flow-arrow{font-size:18px;font-weight:300}

/* Interactive Gallery */
.elementor-widget-cpm-interactive-gallery .cpm-gallery__head{margin:0 0 58px}
.elementor-widget-cpm-interactive-gallery .cpm-gallery__head p{margin:26px 0 0;font-family:Poppins,Arial,Helvetica,sans-serif;font-size:17px;line-height:1.68}
.elementor-widget-cpm-interactive-gallery .cpm-gallery__layout{display:grid;grid-template-columns:minmax(0,calc(100% - var(--cpm-gallery-rail,34%) - 28px)) minmax(0,var(--cpm-gallery-rail,34%));gap:28px;align-items:start;min-width:0}
.elementor-widget-cpm-interactive-gallery .cpm-gallery--rail-left .cpm-gallery__feature{order:2}
.elementor-widget-cpm-interactive-gallery .cpm-gallery--rail-left .cpm-gallery__rail{order:1}
.elementor-widget-cpm-interactive-gallery .cpm-gallery__feature{position:relative;display:block;width:100%;padding:0;border:0;background:#25282c;overflow:hidden;cursor:zoom-in;text-align:left}
.elementor-widget-cpm-interactive-gallery .cpm-gallery__feature img,
.elementor-widget-cpm-interactive-gallery .cpm-gallery__feature video{display:block;width:100%;height:100%;object-fit:cover;animation:cpmGalleryInV61 var(--cpm-gallery-speed,.35s) ease}
.elementor-widget-cpm-interactive-gallery .cpm-gallery__feature .sig-placeholder{display:grid}
.elementor-widget-cpm-interactive-gallery .cpm-gallery__feature-meta{position:absolute;left:20px;bottom:20px;display:flex;align-items:center;gap:15px;padding:12px 15px;backdrop-filter:blur(6px)}
.elementor-widget-cpm-interactive-gallery .cpm-gallery__feature-num{font-size:9px;font-weight:800;letter-spacing:.1em;color:var(--cpm-accent)}
.elementor-widget-cpm-interactive-gallery .cpm-gallery__feature-title{font-family:Poppins,Arial,Helvetica,sans-serif;font-size:11px;font-weight:900;letter-spacing:.08em;text-transform:uppercase}
.elementor-widget-cpm-interactive-gallery .cpm-gallery__rail{border-top:1px solid #35393e;overflow:visible;min-width:0;max-height:none}.elementor-widget-cpm-interactive-gallery .cpm-gallery--rail-scroll .cpm-gallery__rail{overflow-y:auto;overflow-x:hidden;scrollbar-width:thin;overscroll-behavior:contain}
.elementor-widget-cpm-interactive-gallery .cpm-gallery__item{width:100%;display:grid;grid-template-columns:44px minmax(0,1fr) 24px;gap:14px;align-items:center;text-align:left;border:0;border-bottom:1px solid #35393e;background:transparent;color:#fff;cursor:pointer;transition:padding-left .28s var(--sig-ease),background-color .25s ease}
.elementor-widget-cpm-interactive-gallery .cpm-gallery__item>span{font-size:9px;font-weight:700;letter-spacing:.1em}
.elementor-widget-cpm-interactive-gallery .cpm-gallery__item small{display:block;margin:0 0 6px;color:var(--cpm-accent);font-size:8px;font-weight:800;letter-spacing:.13em;text-transform:uppercase}
.elementor-widget-cpm-interactive-gallery .cpm-gallery__item strong{display:block;font-family:Poppins,Arial,Helvetica,sans-serif;font-size:20px;font-weight:900;line-height:1.04;letter-spacing:-.025em;text-transform:uppercase}
.elementor-widget-cpm-interactive-gallery .cpm-gallery__item>b{justify-self:end;color:var(--cpm-accent);font-weight:400;transition:transform .25s ease}
.elementor-widget-cpm-interactive-gallery .cpm-gallery__item:hover>b,
.elementor-widget-cpm-interactive-gallery .cpm-gallery__item.is-active>b{transform:translate(3px,-3px)}
.elementor-widget-cpm-interactive-gallery .cpm-gallery__caption{margin-top:15px;font-family:Poppins,Arial,Helvetica,sans-serif;font-size:13px;line-height:1.6;max-width:800px}
@keyframes cpmGalleryInV61{from{opacity:.15;transform:scale(1.012)}to{opacity:1;transform:scale(1)}}

.cpm-gallery-lightbox{position:fixed;z-index:1000000;inset:0;display:none;align-items:center;justify-content:center;background:rgba(7,9,10,.96);padding:44px}
.cpm-gallery-lightbox.is-open{display:flex}
.cpm-gallery-lightbox__media{position:relative;width:min(92vw,1600px);height:min(84vh,1000px);display:grid;place-items:center}
.cpm-gallery-lightbox__media img,.cpm-gallery-lightbox__media video{max-width:100%;max-height:100%;width:auto;height:auto;object-fit:contain}
.cpm-gallery-lightbox__close{position:absolute;right:26px;top:22px;border:0;background:transparent;color:#fff;font-size:34px;line-height:1;cursor:pointer}
.cpm-gallery-lightbox__meta{position:absolute;left:28px;bottom:24px;color:#fff;font-family:Poppins,Arial,sans-serif;font-size:10px;font-weight:700;letter-spacing:.1em;text-transform:uppercase}

@media(max-width:1100px){
 .elementor-widget-cpm-inputs-outputs .cpm-io__grid{column-gap:28px}
 .elementor-widget-cpm-commercial-strategy .cpm-strategy__item{grid-template-columns:44px minmax(0,1fr) minmax(220px,38%) 28px}
 .elementor-widget-cpm-collaboration-team .cpm-collab__nodes{grid-template-columns:1fr}
 .elementor-widget-cpm-collaboration-team .cpm-collab__connector{transform:rotate(90deg);justify-self:center}
 .elementor-widget-cpm-collaboration-team .cpm-collab__nodes:hover .cpm-collab__connector{transform:rotate(90deg) translateX(3px)}
 .elementor-widget-cpm-interactive-gallery .cpm-gallery__layout{grid-template-columns:1fr}
 .elementor-widget-cpm-interactive-gallery .cpm-gallery--rail-left .cpm-gallery__feature,
 .elementor-widget-cpm-interactive-gallery .cpm-gallery--rail-left .cpm-gallery__rail{order:initial}
 .elementor-widget-cpm-interactive-gallery .cpm-gallery__rail{max-height:none}
}
@media(max-width:767px){
 .elementor-widget-cpm-transformation-story .cpm-transform-story h2,
 .elementor-widget-cpm-inputs-outputs .cpm-io h2,
 .elementor-widget-cpm-project-journey .cpm-journey h2,
 .elementor-widget-cpm-commercial-strategy .cpm-strategy h2,
 .elementor-widget-cpm-collaboration-team .cpm-collab h2,
 .elementor-widget-cpm-interactive-gallery .cpm-gallery h2{font-size:clamp(38px,11vw,58px)}
 .elementor-widget-cpm-inputs-outputs .cpm-io__grid{grid-template-columns:1fr;row-gap:24px}
 .elementor-widget-cpm-inputs-outputs .cpm-io__arrow{justify-self:center;transform:rotate(90deg)}
 .elementor-widget-cpm-inputs-outputs .cpm-io__grid:hover .cpm-io__arrow{transform:rotate(90deg) translateX(4px)}
 .elementor-widget-cpm-project-journey .cpm-journey--timeline .cpm-journey__track:before{display:none}
 .elementor-widget-cpm-project-journey .cpm-journey--timeline .cpm-journey__stage{padding-top:50px}
 .elementor-widget-cpm-commercial-strategy .cpm-strategy__item{grid-template-columns:38px minmax(0,1fr) 26px;align-items:start}
 .elementor-widget-cpm-commercial-strategy .cpm-strategy__item p{grid-column:2 / 4;margin-top:10px}
 .elementor-widget-cpm-commercial-strategy .cpm-strategy__hover{display:none}
 .elementor-widget-cpm-collaboration-team .cpm-collab__flow-track{display:grid;grid-template-columns:1fr;gap:12px}
 .elementor-widget-cpm-collaboration-team .cpm-collab__flow-arrow{transform:rotate(90deg);justify-self:start}
 .elementor-widget-cpm-interactive-gallery .cpm-gallery__item{grid-template-columns:36px minmax(0,1fr) 22px}
 .cpm-gallery-lightbox{padding:20px}
 .cpm-gallery-lightbox__close{right:14px;top:12px}
}


/* ==========================================================
   CPM BLOCKS 6.2 — TYPOGRAPHY + ALIGNMENT AUDIT
   Default system: Poppins Black / uppercase for headings.
   No !important rules: Elementor controls can still override it.
   ========================================================== */
.cpm-reference-module h2,
.cpm-reference-module h3{
  font-family:Poppins,Arial,Helvetica,sans-serif;
  font-weight:900;
  text-transform:uppercase;
}
.elementor-widget-cpm-inputs-outputs .cpm-io__head,
.elementor-widget-cpm-inputs-outputs .cpm-io__head p,
.elementor-widget-cpm-transformation-story .cpm-transform-story__head,
.elementor-widget-cpm-project-journey .cpm-journey__head,
.elementor-widget-cpm-commercial-strategy .cpm-strategy__head,
.elementor-widget-cpm-collaboration-team .cpm-collab__head,
.elementor-widget-cpm-interactive-gallery .cpm-gallery__head{
  margin-left:0;
  margin-right:auto;
}
.elementor-widget-cpm-inputs-outputs .cpm-io__column h3{
  box-sizing:border-box;
}
.elementor-widget-cpm-inputs-outputs .cpm-io__item>span{
  text-align:left;
}
.elementor-widget-cpm-interactive-gallery .cpm-gallery__layout,
.elementor-widget-cpm-interactive-gallery .cpm-gallery__feature,
.elementor-widget-cpm-interactive-gallery .cpm-gallery__rail,
.elementor-widget-cpm-interactive-gallery .cpm-gallery__item{
  min-width:0;
}
.elementor-widget-cpm-interactive-gallery .cpm-gallery__item>div{
  min-width:0;
}
.elementor-widget-cpm-interactive-gallery .cpm-gallery__item strong{
  overflow-wrap:anywhere;
}
@media (max-width:767px){
  .elementor-widget-cpm-inputs-outputs .cpm-io__column h3{
    padding-left:56px;
  }
  .elementor-widget-cpm-interactive-gallery .cpm-gallery__rail{
    overflow:visible;
    max-height:none;
  }
}


/* ==========================================================
   CPM BLOCKS 6.2.1 — COMMERCIAL STRATEGY REBUILD
   Pinned visual panel by default; mouse-follow remains optional.
   ========================================================== */
.elementor-widget-cpm-commercial-strategy .cpm-strategy__content{
  display:block;
}
.elementor-widget-cpm-commercial-strategy .cpm-strategy--pinned{
  --cpm-strategy-preview:36%;
  --cpm-strategy-preview-gap:46px;
}
.elementor-widget-cpm-commercial-strategy .cpm-strategy--pinned .cpm-strategy__content{
  display:grid;
  grid-template-columns:minmax(0,calc(100% - var(--cpm-strategy-preview) - var(--cpm-strategy-preview-gap))) minmax(280px,var(--cpm-strategy-preview));
  gap:var(--cpm-strategy-preview-gap);
  align-items:start;
}
.elementor-widget-cpm-commercial-strategy .cpm-strategy--preview-left .cpm-strategy__preview{order:-1}
.elementor-widget-cpm-commercial-strategy .cpm-strategy__list{min-width:0}
.elementor-widget-cpm-commercial-strategy .cpm-strategy__item{
  --cpm-strategy-title:420px;
  --cpm-strategy-copy:360px;
  grid-template-columns:var(--cpm-strategy-num,58px) minmax(180px,var(--cpm-strategy-title)) minmax(180px,1fr) 30px;
  column-gap:28px;
  align-items:center;
  min-width:0;
  cursor:default;
}
.elementor-widget-cpm-commercial-strategy .cpm-strategy--follow .cpm-strategy__item[data-cpm-follow]{cursor:none}
.elementor-widget-cpm-commercial-strategy .cpm-strategy__item h3,
.elementor-widget-cpm-commercial-strategy .cpm-strategy__item p{
  text-align:left;
  min-width:0;
}
.elementor-widget-cpm-commercial-strategy .cpm-strategy__item h3{
  justify-self:start;
}
.elementor-widget-cpm-commercial-strategy .cpm-strategy__item p{
  justify-self:stretch;
}
.elementor-widget-cpm-commercial-strategy .cpm-strategy__preview{
  min-width:0;
}
.elementor-widget-cpm-commercial-strategy .cpm-strategy__preview.is-sticky{
  position:sticky;
}
.elementor-widget-cpm-commercial-strategy .cpm-strategy__preview-media{
  position:relative;
  width:100%;
  height:560px;
  overflow:hidden;
  background:#111315;
}
.elementor-widget-cpm-commercial-strategy .cpm-strategy__preview-media img{
  display:block;
  width:100%;
  height:100%;
  object-fit:cover;
  object-position:center center;
  opacity:1;
  transform:scale(1);
  transition:opacity .22s ease,transform .45s cubic-bezier(.2,.75,.2,1);
}
.elementor-widget-cpm-commercial-strategy .cpm-strategy__preview-media img.is-ready{
  animation:cpmStrategyPreviewIn .35s cubic-bezier(.2,.75,.2,1);
}
@keyframes cpmStrategyPreviewIn{
  from{opacity:.25;transform:scale(1.018)}
  to{opacity:1;transform:scale(1)}
}
.elementor-widget-cpm-commercial-strategy .cpm-strategy__preview-caption{
  min-height:18px;
  margin-top:12px;
  font-family:Poppins,Arial,Helvetica,sans-serif;
  font-size:12px;
  line-height:1.45;
}
.elementor-widget-cpm-commercial-strategy .cpm-strategy__preview-empty{
  position:absolute;
  inset:0;
  display:grid;
  place-items:center;
  padding:30px;
  color:#fff;
  font-family:Poppins,Arial,Helvetica,sans-serif;
  font-size:10px;
  font-weight:900;
  letter-spacing:.14em;
  text-align:center;
  text-transform:uppercase;
  opacity:.45;
}
.elementor-widget-cpm-commercial-strategy .cpm-strategy--pinned .cpm-strategy__item{
  grid-template-columns:48px minmax(180px,1.25fr) minmax(170px,.9fr) 26px;
}
.elementor-widget-cpm-commercial-strategy .cpm-strategy__item.is-active{
  padding-left:14px;
  padding-right:14px;
}
.elementor-widget-cpm-commercial-strategy .cpm-strategy__item.is-active .cpm-strategy__arrow{
  transform:translate(3px,-3px);
}
@media(max-width:1200px){
  .elementor-widget-cpm-commercial-strategy .cpm-strategy--pinned .cpm-strategy__content{
    grid-template-columns:minmax(0,1fr) minmax(260px,34%);
    gap:30px;
  }
  .elementor-widget-cpm-commercial-strategy .cpm-strategy--pinned .cpm-strategy__item{
    grid-template-columns:40px minmax(150px,1.15fr) minmax(150px,.9fr) 24px;
    column-gap:18px;
  }
}
@media(max-width:900px){
  .elementor-widget-cpm-commercial-strategy .cpm-strategy--pinned .cpm-strategy__content{
    grid-template-columns:1fr;
  }
  .elementor-widget-cpm-commercial-strategy .cpm-strategy--preview-left .cpm-strategy__preview{order:initial}
  .elementor-widget-cpm-commercial-strategy .cpm-strategy__preview.is-sticky{position:relative;top:auto}
  .elementor-widget-cpm-commercial-strategy .cpm-strategy__preview-media{height:440px}
}
@media(max-width:767px){
  .elementor-widget-cpm-commercial-strategy .cpm-strategy--pinned .cpm-strategy__item,
  .elementor-widget-cpm-commercial-strategy .cpm-strategy__item{
    grid-template-columns:34px minmax(0,1fr) 24px;
    column-gap:12px;
    align-items:start;
  }
  .elementor-widget-cpm-commercial-strategy .cpm-strategy__item p{
    grid-column:2 / 4;
    margin-top:8px;
  }
  .elementor-widget-cpm-commercial-strategy .cpm-strategy__preview-media{height:340px}
}


/* ==========================================================
   CPM BLOCKS 6.2.2 — STRATEGY MEDIA HOTFIX
   Ensure uploaded row images are visibly rendered and swapped.
   ========================================================== */
.elementor-widget-cpm-commercial-strategy .cpm-strategy__preview{
  display:block;
  width:100%;
  min-width:0;
}
.elementor-widget-cpm-commercial-strategy .cpm-strategy__preview-media{
  display:block;
  position:relative;
  width:100%;
  min-height:280px;
  background-size:cover;
  background-position:center center;
  background-repeat:no-repeat;
}
.elementor-widget-cpm-commercial-strategy .cpm-strategy__preview-media img{
  position:absolute;
  inset:0;
  z-index:1;
  width:100%;
  height:100%;
  display:block;
  object-fit:cover;
  object-position:center center;
}
.elementor-widget-cpm-commercial-strategy .cpm-strategy__preview-empty{
  z-index:2;
}
.elementor-widget-cpm-commercial-strategy .cpm-strategy__item.has-media{
  cursor:pointer;
}
.elementor-widget-cpm-commercial-strategy .cpm-strategy__item{
  text-align:left;
}
.elementor-widget-cpm-commercial-strategy .cpm-strategy__item h3,
.elementor-widget-cpm-commercial-strategy .cpm-strategy__item p,
.elementor-widget-cpm-commercial-strategy .cpm-strategy__num{
  justify-self:start;
  text-align:left;
}
.elementor-widget-cpm-commercial-strategy .cpm-strategy__arrow{
  justify-self:end;
}
@media(max-width:900px){
 .elementor-widget-cpm-commercial-strategy .cpm-strategy__preview{
  margin-top:24px;
 }
}


/* ==========================================================
   CPM BLOCKS 6.3 — MARKET INSIGHTS
   Editorial post feed: latest/category/hand-pick, filters + paging.
   ========================================================== */
.elementor-widget-cpm-market-insights .cpm-insights{
  --cpm-accent:#E30613;
  background:#f3f2ef;
  color:#111315;
  overflow:hidden;
}
.elementor-widget-cpm-market-insights .sig-insights-head{
  position:relative;
  max-width:980px;
  margin:0 0 58px;
}
.elementor-widget-cpm-market-insights .sig-insights-head .sig-kicker{
  color:var(--cpm-accent);
}
.elementor-widget-cpm-market-insights .sig-insights-head h2{
  margin:18px 0 0;
  color:#111315;
  font-family:Poppins,Arial,Helvetica,sans-serif;
  font-weight:900;
  font-size:clamp(48px,5.3vw,88px);
  line-height:.91;
  letter-spacing:-.06em;
  text-transform:uppercase;
}
.elementor-widget-cpm-market-insights .sig-insights-intro{
  margin:26px 0 0;
  max-width:690px;
  color:#62676c;
  font-size:17px;
  line-height:1.55;
}
.elementor-widget-cpm-market-insights .sig-insights-arrows{
  position:absolute;
  right:0;
  bottom:2px;
  display:flex;
  gap:8px;
}
.elementor-widget-cpm-market-insights .sig-insights-filters{
  display:flex;
  gap:8px;
  flex-wrap:wrap;
  margin:0 0 28px;
}
.elementor-widget-cpm-market-insights .sig-insights-filters button,
.elementor-widget-cpm-market-insights .sig-insights-arrows button{
  border:1px solid #c9c9c6;
  background:transparent;
  color:#555a5f;
  padding:9px 12px;
  font-family:Poppins,Arial,Helvetica,sans-serif;
  font-size:9px;
  font-weight:900;
  letter-spacing:.08em;
  text-transform:uppercase;
  cursor:pointer;
}
.elementor-widget-cpm-market-insights .sig-insights-filters button.is-active{
  background:var(--cpm-accent);
  border-color:var(--cpm-accent);
  color:#fff;
}
.elementor-widget-cpm-market-insights .sig-insights-grid{
  display:grid;
  grid-template-columns:1.45fr .775fr .775fr;
  gap:18px;
}
.elementor-widget-cpm-market-insights .sig-insight-card{
  min-width:0;
  background:#fff;
  overflow:hidden;
  border-top:1px solid rgba(17,19,21,.08);
}
.elementor-widget-cpm-market-insights .sig-insight-media{
  position:relative;
  display:block;
  height:330px;
  overflow:hidden;
  background:#deded9;
}
.elementor-widget-cpm-market-insights .sig-insight-media img{
  width:100%;
  height:100%;
  display:block;
  object-fit:cover;
  object-position:center center;
  transition:transform .65s cubic-bezier(.2,.75,.25,1);
}
.elementor-widget-cpm-market-insights .sig-insight-card:hover .sig-insight-media img{
  transform:scale(1.025);
}
.elementor-widget-cpm-market-insights .sig-insight-placeholder{
  width:100%;
  height:100%;
  display:grid;
  place-items:center;
  color:#777c80;
  font-family:Poppins,Arial,Helvetica,sans-serif;
  font-size:9px;
  font-weight:900;
  letter-spacing:.12em;
  text-transform:uppercase;
}
.elementor-widget-cpm-market-insights .sig-insight-no{
  position:absolute;
  top:15px;
  left:15px;
  padding:8px 9px;
  background:#111315;
  color:#fff;
  font-family:Poppins,Arial,Helvetica,sans-serif;
  font-size:8px;
  font-weight:900;
  letter-spacing:.12em;
}
.elementor-widget-cpm-market-insights .sig-insight-info{
  display:flex;
  justify-content:space-between;
  gap:22px;
  padding:24px 22px;
}
.elementor-widget-cpm-market-insights .sig-insight-info>div{
  min-width:0;
}
.elementor-widget-cpm-market-insights .sig-insight-meta{
  margin:0 0 10px;
  color:var(--cpm-accent);
  font-family:Poppins,Arial,Helvetica,sans-serif;
  font-size:8px;
  font-weight:900;
  letter-spacing:.12em;
  line-height:1.35;
  text-transform:uppercase;
}
.elementor-widget-cpm-market-insights .sig-insight-info h3{
  margin:0;
  color:#111315;
  font-family:Poppins,Arial,Helvetica,sans-serif;
  font-size:21px;
  font-weight:900;
  line-height:1.05;
  letter-spacing:-.035em;
  text-transform:uppercase;
}
.elementor-widget-cpm-market-insights .sig-insight-info h3 a{
  color:inherit;
  text-decoration:none;
}
.elementor-widget-cpm-market-insights .sig-insight-info p{
  margin:12px 0 0;
  color:#686d72;
  font-size:13px;
  line-height:1.55;
}
.elementor-widget-cpm-market-insights .sig-insight-read{
  display:inline-block;
  margin-top:18px;
  color:#111315;
  font-family:Poppins,Arial,Helvetica,sans-serif;
  font-size:9px;
  font-weight:900;
  letter-spacing:.08em;
  text-decoration:none;
  text-transform:uppercase;
}
.elementor-widget-cpm-market-insights .sig-insight-go{
  flex:0 0 auto;
  align-self:flex-start;
  color:var(--cpm-accent);
  font-size:20px;
  font-weight:400;
  text-decoration:none;
}
@media(max-width:1100px){
  .elementor-widget-cpm-market-insights .sig-insights-grid{
    grid-template-columns:1fr 1fr;
  }
  .elementor-widget-cpm-market-insights .sig-insights-grid .featured{
    grid-column:1/-1;
  }
}
@media(max-width:820px){
  .elementor-widget-cpm-market-insights .sig-insights-head{
    max-width:100%;
  }
  .elementor-widget-cpm-market-insights .sig-insights-arrows{
    position:static;
    margin-top:24px;
  }
  .elementor-widget-cpm-market-insights .sig-insights-grid{
    grid-template-columns:1fr;
  }
  .elementor-widget-cpm-market-insights .sig-insights-grid .featured{
    grid-column:auto;
  }
  .elementor-widget-cpm-market-insights .sig-insights-filters{
    overflow-x:auto;
    flex-wrap:nowrap;
    padding-bottom:6px;
  }
  .elementor-widget-cpm-market-insights .sig-insights-filters button{
    white-space:nowrap;
  }
}


/* CPM 6.3.1 — Market Insights interaction safeguards */
.elementor-widget-cpm-market-insights [data-cpm-card][hidden]{
  display:none !important;
}
.elementor-widget-cpm-market-insights .sig-insights-filters button,
.elementor-widget-cpm-market-insights .sig-insights-arrows button{
  position:relative;
  z-index:2;
  pointer-events:auto;
}
.elementor-widget-cpm-market-insights .sig-insights-arrows button:disabled{
  opacity:.35;
  cursor:default;
}

/* CPM 6.3.2 — Insights filter/paging behaviour */
.elementor-widget-cpm-market-insights .sig-insight-card[hidden]{
  display:none !important;
}


/* ==========================================================
   CPM BLOCKS 6.3.4 — INSIGHTS LOAD MORE + FILTER CONTROLS
   ========================================================== */
.elementor-widget-cpm-market-insights .sig-insights-filters{
  align-items:center;
}
.elementor-widget-cpm-market-insights .sig-insights-filters button{
  appearance:none;
  -webkit-appearance:none;
  border-style:solid;
  line-height:1;
  transition:background-color .2s ease,color .2s ease,border-color .2s ease,transform .2s ease;
}
.elementor-widget-cpm-market-insights .sig-insights-filters button:hover{
  transform:translateY(-1px);
}
.elementor-widget-cpm-market-insights .cpm-insights-load-more-wrap{
  display:flex;
  justify-content:center;
  width:100%;
  margin-top:34px;
}
.elementor-widget-cpm-market-insights .cpm-insights-load-more{
  appearance:none;
  -webkit-appearance:none;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  gap:14px;
  border:1px solid #111315;
  background:transparent;
  color:#111315;
  cursor:pointer;
  line-height:1;
  transition:background-color .2s ease,color .2s ease,border-color .2s ease,transform .2s ease;
}
.elementor-widget-cpm-market-insights .cpm-insights-load-more:hover{
  transform:translateY(-1px);
}
.elementor-widget-cpm-market-insights .cpm-insights-load-more[hidden]{
  display:none !important;
}

/* ==========================================================
   CPM BLOCKS 6.3.4 — GALLERY BUTTON RESET / POLISH
   ========================================================== */
.elementor-widget-cpm-interactive-gallery .cpm-gallery__feature,
.elementor-widget-cpm-interactive-gallery .cpm-gallery__item{
  appearance:none;
  -webkit-appearance:none;
  font:inherit;
  margin:0;
  outline:0;
  box-shadow:none;
}
.elementor-widget-cpm-interactive-gallery .cpm-gallery__feature{
  padding:0;
  border:0;
  background:#202329;
  text-align:left;
  cursor:pointer;
}
.elementor-widget-cpm-interactive-gallery .cpm-gallery__rail{
  border-top-style:solid;
  border-top-width:1px;
}
.elementor-widget-cpm-interactive-gallery .cpm-gallery__item{
  width:100%;
  display:grid;
  grid-template-columns:38px minmax(0,1fr) 22px;
  column-gap:16px;
  align-items:center;
  border:0;
  border-bottom:1px solid #35393e;
  background:transparent;
  color:#fff;
  text-align:left;
  cursor:pointer;
  min-width:0;
  transition:background-color .22s ease,padding-left .22s ease,border-color .22s ease;
}
.elementor-widget-cpm-interactive-gallery .cpm-gallery__item>span{
  align-self:start;
  padding-top:2px;
  font-family:Poppins,Arial,Helvetica,sans-serif;
  font-size:9px;
  font-weight:900;
  line-height:1;
  letter-spacing:.1em;
}
.elementor-widget-cpm-interactive-gallery .cpm-gallery__item>div{
  display:flex;
  flex-direction:column;
  gap:5px;
  min-width:0;
}
.elementor-widget-cpm-interactive-gallery .cpm-gallery__item small{
  display:block;
  margin:0;
  font-size:8px;
  font-weight:800;
  line-height:1.1;
  letter-spacing:.14em;
  text-transform:uppercase;
}
.elementor-widget-cpm-interactive-gallery .cpm-gallery__item strong{
  display:block;
  margin:0;
}
.elementor-widget-cpm-interactive-gallery .cpm-gallery__item>b{
  justify-self:end;
  align-self:center;
  font-weight:400;
  line-height:1;
  transition:transform .22s ease;
}
.elementor-widget-cpm-interactive-gallery .cpm-gallery__item:hover>b,
.elementor-widget-cpm-interactive-gallery .cpm-gallery__item.is-active>b{
  transform:translate(3px,-3px);
}
.elementor-widget-cpm-interactive-gallery .cpm-gallery__item:focus-visible{
  outline:2px solid var(--cpm-accent);
  outline-offset:-2px;
}
@media(max-width:767px){
  .elementor-widget-cpm-interactive-gallery .cpm-gallery__item{
    grid-template-columns:32px minmax(0,1fr) 20px;
  }
}


/* ==========================================================
   CPM BLOCKS 6.4 — RESPONSIVE SYSTEM
   Consistent gutters, tablet reflow and true mobile stacking.
   Breakpoints:
     <= 1180px  compact desktop / landscape tablet
     <= 1024px  tablet
     <= 767px   mobile
     <= 480px   narrow mobile
   ========================================================== */

:root{
  --cpm-gutter-desktop:36px;
  --cpm-gutter-tablet:32px;
  --cpm-gutter-mobile:24px;
  --cpm-gutter-small:20px;
}

/* Stop one module from creating a page-level horizontal scrollbar. */
.cpm-reference-module,
.cpm-reference-module *,
.cpm-hero-header,
.cpm-hero-header *{
  box-sizing:border-box;
}
.cpm-reference-module,
.cpm-hero-header,
.cpm-logos{
  max-width:100%;
}
.cpm-reference-module{
  overflow-x:clip;
}

/* One consistent inner edge across old + new modules. */
.cpm-reference-module .sig-shell{
  width:min(1440px,calc(100% - (var(--cpm-gutter-desktop) * 2)));
  max-width:1440px;
  margin-left:auto;
  margin-right:auto;
}

/* ---------- compact desktop / landscape tablet ---------- */
@media(max-width:1180px){
  .cpm-reference-module .sig-shell{
    width:calc(100% - 64px);
  }

  /* Keep 2-column editorial modules useful without cramping. */
  .elementor-widget-cpm-transformation-story .cpm-transform-story__grid{
    grid-template-columns:repeat(2,minmax(0,1fr));
  }
  .elementor-widget-cpm-project-journey .cpm-journey__track{
    grid-template-columns:repeat(3,minmax(0,1fr));
  }
  .elementor-widget-cpm-project-journey .cpm-journey__track:before{
    display:none;
  }
  .elementor-widget-cpm-commercial-strategy .cpm-strategy--pinned .cpm-strategy__content{
    grid-template-columns:minmax(0,1fr) minmax(270px,34%);
    gap:32px;
  }
  .elementor-widget-cpm-commercial-strategy .cpm-strategy--pinned .cpm-strategy__item{
    grid-template-columns:42px minmax(150px,1.05fr) minmax(150px,.9fr) 24px;
    column-gap:18px;
  }

  .elementor-widget-cpm-projects .sig-project-grid,
  .elementor-widget-cpm-market-insights .sig-insights-grid{
    grid-template-columns:1fr 1fr;
  }
  .elementor-widget-cpm-projects .sig-project-grid .featured,
  .elementor-widget-cpm-market-insights .sig-insights-grid .featured{
    grid-column:1/-1;
  }
}

/* ---------- tablet ---------- */
@media(max-width:1024px){
  .cpm-reference-module .sig-shell{
    width:calc(100% - (var(--cpm-gutter-tablet) * 2));
  }

  /* Shared vertical rhythm. */
  .cpm-reference-module .sig-section{
    padding-top:88px;
    padding-bottom:88px;
  }
  .cpm-reference-module .sig-section-rule{
    margin-bottom:48px;
  }

  /* HERO — slideshow belongs to the actual image region on tablet/mobile. */
  .cpm-hero-header{
    min-height:0 !important;
    overflow:hidden;
  }
  .cpm-hero-header__inner{
    display:grid !important;
    grid-template-columns:1fr !important;
    min-height:0 !important;
  }
  .cpm-hero-header--overlay .cpm-hero-header__inner{
    display:grid !important;
  }
  .cpm-hero-header--overlay .cpm-hero-header__copy,
  .cpm-hero-header--boxed .cpm-hero-header__copy{
    width:100% !important;
    min-height:0 !important;
    margin:0 !important;
    background:#fff !important;
    box-shadow:none !important;
  }
  .cpm-hero-header--overlay .cpm-hero-header__image,
  .cpm-hero-header--boxed .cpm-hero-header__image{
    position:relative !important;
    inset:auto !important;
    width:100% !important;
    height:auto !important;
    min-height:500px !important;
  }
  .cpm-hero-header__image .cpm-hero-bg-slides{
    position:absolute !important;
    inset:0 !important;
  }
  .cpm-hero-header--overlay .cpm-hero-header__fade{
    display:none !important;
  }
  .cpm-hero-header__copy{
    padding-left:var(--cpm-gutter-tablet) !important;
    padding-right:var(--cpm-gutter-tablet) !important;
  }
  .cpm-hero-header--mobile-image-before .cpm-hero-header__image{order:1}
  .cpm-hero-header--mobile-image-before .cpm-hero-header__copy{order:2}
  .cpm-hero-header--mobile-image-after .cpm-hero-header__copy{order:1}
  .cpm-hero-header--mobile-image-after .cpm-hero-header__image{order:2}

  /* BEFORE / AFTER — header becomes two rows, never a thin right column. */
  .elementor-widget-cpm-before-after .sig-intro-grid{
    grid-template-columns:1fr !important;
    column-gap:0 !important;
    row-gap:26px;
  }
  .elementor-widget-cpm-before-after .sig-intro-copy{
    width:100%;
    max-width:720px;
    transform:none !important;
  }

  /* OUTCOMES */
  .elementor-widget-cpm-outcomes .sig-outcome-list article{
    grid-template-columns:44px minmax(0,1fr) 26px;
    gap:8px 16px;
  }
  .elementor-widget-cpm-outcomes .sig-outcome-key,
  .elementor-widget-cpm-outcomes .sig-outcome-list h3,
  .elementor-widget-cpm-outcomes .sig-outcome-list p{
    grid-column:2;
  }
  .elementor-widget-cpm-outcomes .sig-arrow{
    grid-column:3;
    grid-row:1/5;
    align-self:center;
  }

  /* FROM SITE TO OPPORTUNITY */
  .elementor-widget-cpm-process .sig-story-head{
    grid-template-columns:1fr !important;
    column-gap:0 !important;
    row-gap:28px;
  }
  .elementor-widget-cpm-process .sig-story-head>p{
    width:100%;
    max-width:720px;
    transform:none !important;
  }
  .elementor-widget-cpm-process .sig-story-row,
  .elementor-widget-cpm-process .sig-story-row.reverse{
    grid-template-columns:1fr !important;
    column-gap:0 !important;
    row-gap:32px;
  }
  .elementor-widget-cpm-process .sig-story-row.reverse .sig-story-media{
    order:0;
  }
  .elementor-widget-cpm-process .sig-story-copy{
    transform:none !important;
    max-width:720px;
  }

  /* IMPACT */
  .elementor-widget-cpm-impact .sig-impact{
    min-height:600px;
    padding-top:88px;
    padding-bottom:88px;
  }
  .elementor-widget-cpm-impact .sig-impact h2{
    max-width:850px;
  }

  /* CONNECTED CAMPAIGN */
  .elementor-widget-cpm-capabilities .sig-cap-grid{
    grid-template-columns:1fr !important;
    gap:48px !important;
  }
  .elementor-widget-cpm-capabilities .sig-cap-left>p{
    max-width:720px;
  }
  .elementor-widget-cpm-capabilities .sig-cap-media{
    margin-top:36px;
  }

  /* NEW MODULES */
  .elementor-widget-cpm-transformation-story .cpm-transform-story,
  .elementor-widget-cpm-inputs-outputs .cpm-io,
  .elementor-widget-cpm-project-journey .cpm-journey,
  .elementor-widget-cpm-commercial-strategy .cpm-strategy,
  .elementor-widget-cpm-collaboration-team .cpm-collab,
  .elementor-widget-cpm-interactive-gallery .cpm-gallery{
    padding-top:88px;
    padding-bottom:88px;
  }

  .elementor-widget-cpm-inputs-outputs .cpm-io__grid{
    grid-template-columns:1fr !important;
    gap:28px !important;
  }
  .elementor-widget-cpm-inputs-outputs .cpm-io__arrow{
    transform:rotate(90deg);
    justify-self:center;
    line-height:1;
  }

  .elementor-widget-cpm-collaboration-team .cpm-collab__nodes{
    grid-template-columns:1fr !important;
    gap:22px !important;
  }
  .elementor-widget-cpm-collaboration-team .cpm-collab__connector{
    transform:rotate(90deg);
    justify-self:center;
    line-height:1;
  }
  .elementor-widget-cpm-collaboration-team .cpm-collab__flow-track{
    flex-wrap:wrap;
    row-gap:12px;
  }

  .elementor-widget-cpm-commercial-strategy .cpm-strategy--pinned .cpm-strategy__content{
    grid-template-columns:1fr !important;
    gap:32px !important;
  }
  .elementor-widget-cpm-commercial-strategy .cpm-strategy__preview,
  .elementor-widget-cpm-commercial-strategy .cpm-strategy__preview.is-sticky{
    position:relative !important;
    top:auto !important;
    margin-top:0 !important;
  }
  .elementor-widget-cpm-commercial-strategy .cpm-strategy__preview-media{
    height:460px;
  }

  .elementor-widget-cpm-interactive-gallery .cpm-gallery__layout{
    grid-template-columns:1fr !important;
    gap:26px !important;
  }
  .elementor-widget-cpm-interactive-gallery .cpm-gallery__feature{
    height:520px;
  }
  .elementor-widget-cpm-interactive-gallery .cpm-gallery__rail{
    width:100%;
    max-height:none !important;
    overflow:visible !important;
  }

  /* PROJECTS + INSIGHTS */
  .elementor-widget-cpm-projects .cpm-portfolio,
  .elementor-widget-cpm-market-insights .cpm-insights{
    padding-top:88px;
    padding-right:0;
    padding-bottom:88px;
    padding-left:0;
  }
  .elementor-widget-cpm-projects .sig-project-arrows,
  .elementor-widget-cpm-market-insights .sig-insights-arrows{
    position:static;
    margin-top:24px;
    justify-content:flex-start;
  }

  /* CTA */
  .elementor-widget-cpm-cta .sig-cta{
    padding-top:100px;
    padding-bottom:34px;
  }
  .elementor-widget-cpm-cta .sig-cta-bottom{
    grid-template-columns:1fr !important;
    gap:28px !important;
  }
}

/* ---------- mobile ---------- */
@media(max-width:767px){
  .cpm-reference-module .sig-shell{
    width:calc(100% - (var(--cpm-gutter-mobile) * 2));
  }
  .cpm-reference-module .sig-section{
    padding-top:72px;
    padding-bottom:72px;
  }
  .cpm-reference-module .sig-section-rule{
    margin-bottom:38px;
  }
  .cpm-reference-module h2{
    font-size:clamp(40px,12vw,54px);
    line-height:.92;
    letter-spacing:-.055em;
    overflow-wrap:normal;
    word-break:normal;
  }
  .cpm-reference-module h3{
    overflow-wrap:normal;
    word-break:normal;
  }
  .cpm-reference-module .sig-kicker{
    line-height:1.35;
  }

  /* HERO */
  .cpm-hero-header__copy{
    padding:46px var(--cpm-gutter-mobile) 42px !important;
  }
  .cpm-hero-header__image,
  .cpm-hero-header--overlay .cpm-hero-header__image,
  .cpm-hero-header--boxed .cpm-hero-header__image{
    min-height:360px !important;
    height:52vw !important;
    max-height:460px;
  }
  .cpm-hero-header__title{
    font-size:clamp(42px,12vw,56px) !important;
    line-height:.9 !important;
    letter-spacing:-.055em !important;
  }
  .cpm-hero-header__lead{
    font-size:clamp(20px,5.5vw,25px);
    line-height:1.34;
  }
  .cpm-hero-header .cpm-actions{
    width:100%;
    flex-direction:column;
    gap:10px;
  }
  .cpm-hero-header .cpm-btn{
    width:100%;
    min-height:56px;
  }
  .cpm-hero-header__caption{
    right:var(--cpm-gutter-mobile);
    bottom:var(--cpm-gutter-mobile);
  }

  /* LOGOS */
  .cpm-logos .cpm-logos__row{
    column-gap:10px !important;
  }
  .cpm-logos .cpm-logos-arrow{
    width:36px !important;
    height:36px !important;
    min-width:36px !important;
    min-height:36px !important;
    max-width:36px !important;
    max-height:36px !important;
    flex-basis:36px !important;
  }
  .cpm-logo-item{
    min-width:0;
  }

  /* BEFORE / AFTER */
  .elementor-widget-cpm-before-after .sig-transform{
    padding-top:72px;
    padding-bottom:72px;
  }
  .elementor-widget-cpm-before-after .sig-intro-grid{
    row-gap:22px;
    margin-bottom:38px;
  }
  .elementor-widget-cpm-before-after .sig-intro-copy,
  .elementor-widget-cpm-before-after .sig-intro-copy p{
    width:100%;
    max-width:none;
    font-size:16px;
    line-height:1.62;
  }
  .elementor-widget-cpm-before-after .sig-ba{
    height:360px !important;
    min-height:0 !important;
  }
  .elementor-widget-cpm-before-after .sig-caption{
    gap:12px;
  }

  /* OUTCOMES */
  .elementor-widget-cpm-outcomes .sig-outcomes-head{
    margin-bottom:36px;
  }
  .elementor-widget-cpm-outcomes .sig-outcome-list article{
    grid-template-columns:34px minmax(0,1fr) 22px;
    gap:7px 12px;
    padding:24px 0;
  }
  .elementor-widget-cpm-outcomes .sig-outcome-key{
    display:none;
  }
  .elementor-widget-cpm-outcomes .sig-outcome-list h3{
    font-size:24px;
  }
  .elementor-widget-cpm-outcomes .sig-outcome-list p{
    margin-top:6px;
  }

  /* FROM SITE TO OPPORTUNITY */
  .elementor-widget-cpm-process .sig-story{
    padding-top:72px;
    padding-bottom:72px;
  }
  .elementor-widget-cpm-process .sig-story-head{
    row-gap:22px;
    margin-bottom:50px !important;
  }
  .elementor-widget-cpm-process .sig-story-head>p{
    max-width:none;
    font-size:16px;
    line-height:1.62;
  }
  .elementor-widget-cpm-process .sig-story-row,
  .elementor-widget-cpm-process .sig-story-row.reverse{
    row-gap:24px;
    margin-bottom:64px !important;
  }
  .elementor-widget-cpm-process .sig-story-media{
    height:320px !important;
  }
  .elementor-widget-cpm-process .sig-story-copy{
    width:100%;
    max-width:none;
  }

  /* IMPACT */
  .elementor-widget-cpm-impact .sig-impact{
    min-height:540px;
    padding:72px 0;
  }
  .elementor-widget-cpm-impact .sig-impact h2{
    font-size:clamp(43px,12vw,58px);
  }
  .elementor-widget-cpm-impact .sig-impact p{
    margin:24px 0 34px;
    font-size:16px;
  }
  .elementor-widget-cpm-impact .sig-impact-metrics{
    display:grid;
    grid-template-columns:1fr;
    gap:8px;
  }

  /* CONNECTED CAMPAIGN */
  .elementor-widget-cpm-capabilities .sig-capabilities{
    padding-top:72px;
    padding-bottom:72px;
  }
  .elementor-widget-cpm-capabilities .sig-cap-grid{
    gap:34px !important;
  }
  .elementor-widget-cpm-capabilities .sig-cap-media{
    margin-top:28px;
  }
  .elementor-widget-cpm-capabilities .sig-cap-list>div{
    grid-template-columns:34px minmax(0,1fr) 22px;
    gap:12px;
    padding:22px 0;
  }
  .elementor-widget-cpm-capabilities .sig-cap-list strong{
    font-size:22px;
  }

  /* TRANSFORMATION */
  .elementor-widget-cpm-transformation-story .cpm-transform-story{
    padding:72px 0;
  }
  .elementor-widget-cpm-transformation-story .cpm-transform-story__head{
    margin-bottom:40px;
  }
  .elementor-widget-cpm-transformation-story .cpm-transform-story__grid{
    grid-template-columns:1fr !important;
    gap:18px !important;
  }
  .elementor-widget-cpm-transformation-story .cpm-transform-story__media{
    height:300px;
  }

  /* INPUTS -> OUTPUTS */
  .elementor-widget-cpm-inputs-outputs .cpm-io{
    padding:72px 0;
  }
  .elementor-widget-cpm-inputs-outputs .cpm-io__head{
    margin-bottom:42px;
  }
  .elementor-widget-cpm-inputs-outputs .cpm-io__grid{
    gap:22px !important;
  }
  .elementor-widget-cpm-inputs-outputs .cpm-io__column h3{
    padding-left:56px;
  }
  .elementor-widget-cpm-inputs-outputs .cpm-io__item{
    grid-template-columns:38px minmax(0,1fr) !important;
    column-gap:14px !important;
  }
  .elementor-widget-cpm-inputs-outputs .cpm-io__item strong{
    font-size:22px;
  }

  /* PROJECT JOURNEY */
  .elementor-widget-cpm-project-journey .cpm-journey{
    padding:72px 0;
  }
  .elementor-widget-cpm-project-journey .cpm-journey__head{
    margin-bottom:40px;
  }
  .elementor-widget-cpm-project-journey .cpm-journey__track{
    grid-template-columns:1fr !important;
    gap:18px !important;
  }
  .elementor-widget-cpm-project-journey .cpm-journey__stage{
    padding-top:50px;
  }
  .elementor-widget-cpm-project-journey .cpm-journey__thumb{
    height:220px;
  }

  /* COMMERCIAL STRATEGY */
  .elementor-widget-cpm-commercial-strategy .cpm-strategy{
    padding:72px 0;
  }
  .elementor-widget-cpm-commercial-strategy .cpm-strategy__head{
    margin-bottom:42px;
  }
  .elementor-widget-cpm-commercial-strategy .cpm-strategy__item,
  .elementor-widget-cpm-commercial-strategy .cpm-strategy--pinned .cpm-strategy__item{
    grid-template-columns:30px minmax(0,1fr) 20px !important;
    column-gap:12px !important;
    align-items:start !important;
    padding-left:0;
    padding-right:0;
  }
  .elementor-widget-cpm-commercial-strategy .cpm-strategy__item h3{
    grid-column:2;
    font-size:24px;
  }
  .elementor-widget-cpm-commercial-strategy .cpm-strategy__item p{
    grid-column:2 / 4;
    margin-top:8px;
  }
  .elementor-widget-cpm-commercial-strategy .cpm-strategy__arrow{
    grid-column:3;
    grid-row:1;
  }
  .elementor-widget-cpm-commercial-strategy .cpm-strategy__preview-media{
    height:320px;
  }

  /* CONNECTED TEAM */
  .elementor-widget-cpm-collaboration-team .cpm-collab{
    padding:72px 0;
  }
  .elementor-widget-cpm-collaboration-team .cpm-collab__intro{
    margin:24px 0 42px;
  }
  .elementor-widget-cpm-collaboration-team .cpm-collab__node{
    min-height:0;
    padding:24px;
  }
  .elementor-widget-cpm-collaboration-team .cpm-collab__flow-track{
    display:grid;
    grid-template-columns:1fr;
    gap:8px;
  }
  .elementor-widget-cpm-collaboration-team .cpm-collab__flow-arrow{
    transform:rotate(90deg);
    justify-self:center;
  }

  /* INTERACTIVE GALLERY */
  .elementor-widget-cpm-interactive-gallery .cpm-gallery{
    padding:72px 0;
  }
  .elementor-widget-cpm-interactive-gallery .cpm-gallery__head{
    margin-bottom:40px;
  }
  .elementor-widget-cpm-interactive-gallery .cpm-gallery__feature{
    height:340px !important;
  }
  .elementor-widget-cpm-interactive-gallery .cpm-gallery__item{
    grid-template-columns:30px minmax(0,1fr) 18px !important;
    column-gap:12px !important;
    padding-top:18px;
    padding-bottom:18px;
  }
  .elementor-widget-cpm-interactive-gallery .cpm-gallery__item.is-active{
    padding-left:10px;
  }
  .elementor-widget-cpm-interactive-gallery .cpm-gallery__feature-meta{
    max-width:calc(100% - 32px);
  }

  /* PORTFOLIO */
  .elementor-widget-cpm-projects .cpm-portfolio{
    padding:72px 0;
  }
  .elementor-widget-cpm-projects .sig-projects-head{
    max-width:100%;
    margin-bottom:36px;
  }
  .elementor-widget-cpm-projects .sig-project-grid{
    grid-template-columns:1fr !important;
  }
  .elementor-widget-cpm-projects .sig-project-grid .featured{
    grid-column:auto !important;
  }
  .elementor-widget-cpm-projects .sig-project-media{
    height:280px !important;
  }
  .elementor-widget-cpm-projects .sig-project-filters{
    overflow-x:auto;
    flex-wrap:nowrap;
    width:100%;
    padding-bottom:8px;
    scrollbar-width:thin;
    -webkit-overflow-scrolling:touch;
  }
  .elementor-widget-cpm-projects .sig-project-filters button{
    flex:0 0 auto;
    white-space:nowrap;
  }

  /* MARKET INSIGHTS */
  .elementor-widget-cpm-market-insights .cpm-insights{
    padding:72px 0;
  }
  .elementor-widget-cpm-market-insights .sig-insights-head{
    max-width:100%;
    margin-bottom:38px;
  }
  .elementor-widget-cpm-market-insights .sig-insights-head h2{
    font-size:clamp(42px,12vw,56px);
  }
  .elementor-widget-cpm-market-insights .sig-insights-intro{
    font-size:16px;
  }
  .elementor-widget-cpm-market-insights .sig-insights-grid{
    grid-template-columns:1fr !important;
  }
  .elementor-widget-cpm-market-insights .sig-insights-grid .featured{
    grid-column:auto !important;
  }
  .elementor-widget-cpm-market-insights .sig-insight-media{
    height:280px !important;
  }
  .elementor-widget-cpm-market-insights .sig-insights-filters{
    overflow-x:auto;
    flex-wrap:nowrap !important;
    justify-content:flex-start !important;
    width:100%;
    padding:0 0 8px;
    scrollbar-width:thin;
    -webkit-overflow-scrolling:touch;
  }
  .elementor-widget-cpm-market-insights .sig-insights-filters button{
    flex:0 0 auto;
    white-space:nowrap;
  }
  .elementor-widget-cpm-market-insights .sig-insight-info{
    gap:14px;
    padding:22px 20px;
  }

  /* CTA */
  .elementor-widget-cpm-cta .sig-cta{
    padding:82px 0 28px;
  }
  .elementor-widget-cpm-cta .sig-cta h2{
    font-size:clamp(44px,12vw,58px);
  }
  .elementor-widget-cpm-cta .sig-cta-foot{
    margin-top:54px;
    gap:14px;
    flex-direction:column;
    align-items:flex-start;
  }
}

/* ---------- narrow mobile ---------- */
@media(max-width:480px){
  .cpm-reference-module .sig-shell{
    width:calc(100% - (var(--cpm-gutter-small) * 2));
  }
  .cpm-reference-module .sig-section{
    padding-top:64px;
    padding-bottom:64px;
  }
  .cpm-reference-module .sig-section-rule{
    margin-bottom:34px;
  }

  .cpm-hero-header__copy{
    padding-left:var(--cpm-gutter-small) !important;
    padding-right:var(--cpm-gutter-small) !important;
  }
  .cpm-hero-header__image,
  .cpm-hero-header--overlay .cpm-hero-header__image,
  .cpm-hero-header--boxed .cpm-hero-header__image{
    min-height:320px !important;
    height:72vw !important;
  }

  .elementor-widget-cpm-before-after .sig-ba{
    height:320px !important;
  }
  .elementor-widget-cpm-process .sig-story-media{
    height:280px !important;
  }
  .elementor-widget-cpm-impact .sig-impact{
    min-height:500px;
  }
  .elementor-widget-cpm-interactive-gallery .cpm-gallery__feature{
    height:300px !important;
  }
  .elementor-widget-cpm-projects .sig-project-media,
  .elementor-widget-cpm-market-insights .sig-insight-media{
    height:250px !important;
  }
}


/* ==========================================================
   CPM BLOCKS 6.4.1 — TABLET LANDSCAPE HARDENING
   The Android/tablet screenshots are ~1200 CSS px wide, so the
   previous 1024px tablet rules were never firing. These rules
   deliberately treat <=1280px as tablet-landscape for the
   editorial modules that cannot safely keep desktop geometry.
   ========================================================== */
@media(max-width:1280px){

  /* Keep the same left/right rhythm on larger tablets. */
  .cpm-reference-module .sig-shell{
    width:calc(100% - 64px);
  }

  /* SITE TO OPPORTUNITY
     Never alternate copy/image order on tablet. Image first,
     copy second. This removes the huge blank-looking stretches
     and stops a reverse row from showing copy long before media. */
  .elementor-widget-cpm-process .sig-story-head{
    grid-template-columns:1fr !important;
    column-gap:0 !important;
    row-gap:26px !important;
    margin-bottom:64px !important;
  }
  .elementor-widget-cpm-process .sig-story-head>p{
    width:100% !important;
    max-width:760px !important;
    transform:none !important;
    margin:0 !important;
  }
  .elementor-widget-cpm-process .sig-story-row,
  .elementor-widget-cpm-process .sig-story-row.reverse{
    grid-template-columns:1fr !important;
    gap:26px !important;
    margin-bottom:72px !important;
    align-items:start !important;
  }
  .elementor-widget-cpm-process .sig-story-row .sig-story-media,
  .elementor-widget-cpm-process .sig-story-row.reverse .sig-story-media{
    order:0 !important;
    width:100% !important;
    aspect-ratio:16/7 !important;
    min-height:0 !important;
  }
  .elementor-widget-cpm-process .sig-story-row .sig-story-copy,
  .elementor-widget-cpm-process .sig-story-row.reverse .sig-story-copy{
    order:1 !important;
    width:100% !important;
    max-width:780px !important;
    transform:none !important;
    align-self:start !important;
  }
  .elementor-widget-cpm-process .sig-story-copy>span{
    margin-bottom:16px !important;
  }
  .elementor-widget-cpm-process .sig-story-copy h3{
    font-size:clamp(34px,4.5vw,52px) !important;
    margin-bottom:18px !important;
  }
  .elementor-widget-cpm-process .sig-story-copy p{
    max-width:680px !important;
    margin:0 !important;
  }
  .elementor-widget-cpm-process .sig-story-copy i{
    margin-top:24px !important;
  }

  /* OUTCOMES
     Collapse the desktop 5-column row into a clean 3-column
     composition: number / all content / arrow. */
  .elementor-widget-cpm-outcomes .sig-outcome-list article{
    grid-template-columns:46px minmax(0,1fr) 28px !important;
    grid-template-rows:auto auto auto;
    column-gap:20px !important;
    row-gap:8px !important;
    align-items:start !important;
    padding:28px 0 !important;
  }
  .elementor-widget-cpm-outcomes .sig-outcome-num{
    grid-column:1 !important;
    grid-row:1 !important;
    padding-top:5px;
  }
  .elementor-widget-cpm-outcomes .sig-outcome-key{
    grid-column:2 !important;
    grid-row:1 !important;
    align-self:center;
  }
  .elementor-widget-cpm-outcomes .sig-outcome-list h3{
    grid-column:2 !important;
    grid-row:2 !important;
    max-width:760px;
    font-size:clamp(28px,3.6vw,42px) !important;
  }
  .elementor-widget-cpm-outcomes .sig-outcome-list p{
    grid-column:2 !important;
    grid-row:3 !important;
    max-width:720px !important;
    font-size:15px !important;
    line-height:1.55 !important;
  }
  .elementor-widget-cpm-outcomes .sig-arrow{
    grid-column:3 !important;
    grid-row:1 / 4 !important;
    align-self:center !important;
    justify-self:end;
  }

  /* Keep heading widths from behaving like desktop billboards on tablets. */
  .elementor-widget-cpm-outcomes .sig-outcomes-head,
  .elementor-widget-cpm-process .sig-story-head{
    max-width:100% !important;
  }
  .elementor-widget-cpm-outcomes .sig-outcomes-head h2,
  .elementor-widget-cpm-process .sig-story-head h2{
    max-width:900px !important;
    font-size:clamp(48px,6.2vw,68px) !important;
  }
}

/* Medium tablet: slightly tighter media + spacing. */
@media(max-width:1024px){
  .elementor-widget-cpm-process .sig-story-row .sig-story-media,
  .elementor-widget-cpm-process .sig-story-row.reverse .sig-story-media{
    aspect-ratio:16/8 !important;
  }
  .elementor-widget-cpm-process .sig-story-row,
  .elementor-widget-cpm-process .sig-story-row.reverse{
    margin-bottom:62px !important;
  }
  .elementor-widget-cpm-outcomes .sig-outcome-list article{
    grid-template-columns:40px minmax(0,1fr) 24px !important;
    column-gap:16px !important;
  }
}

/* Phone: preserve the same logic, just tighten it. */
@media(max-width:767px){
  .elementor-widget-cpm-process .sig-story-row .sig-story-media,
  .elementor-widget-cpm-process .sig-story-row.reverse .sig-story-media{
    aspect-ratio:auto !important;
    height:300px !important;
  }
  .elementor-widget-cpm-process .sig-story-copy h3{
    font-size:clamp(32px,9.5vw,46px) !important;
  }
  .elementor-widget-cpm-outcomes .sig-outcome-list article{
    grid-template-columns:32px minmax(0,1fr) 20px !important;
    column-gap:12px !important;
    padding:24px 0 !important;
  }
  .elementor-widget-cpm-outcomes .sig-outcome-key{
    display:block !important;
  }
  .elementor-widget-cpm-outcomes .sig-outcome-list h3{
    font-size:26px !important;
  }
  .elementor-widget-cpm-outcomes .sig-outcome-list p{
    font-size:14px !important;
  }
}


/* ==========================================================
   CPM BLOCKS 6.4.2 — TYPOGRAPHY / HEADER HOTFIX
   Some older reference-module overrides were still forcing Arial
   and causing headings to look "off". Re-align them back to the
   CPM type system without changing layout logic.
   ========================================================== */
.elementor-widget-cpm-hero-header .cpm-hero-header__eyebrow,
.elementor-widget-cpm-hero-header .cpm-hero-header__title,
.elementor-widget-cpm-hero-header .cpm-hero-header__lead,
.elementor-widget-cpm-hero-header .cpm-hero-header__body,
.elementor-widget-cpm-hero-header .cpm-hero-header__body p,
.elementor-widget-cpm-before-after .cpm-reference-module .sig-kicker,
.elementor-widget-cpm-before-after .cpm-reference-module .sig-section-rule,
.elementor-widget-cpm-outcomes .cpm-reference-module .sig-kicker,
.elementor-widget-cpm-outcomes .cpm-reference-module .sig-section-rule,
.elementor-widget-cpm-process .cpm-reference-module .sig-kicker,
.elementor-widget-cpm-process .cpm-reference-module .sig-section-rule,
.elementor-widget-cpm-portfolio-projects .cpm-reference-module .sig-kicker,
.elementor-widget-cpm-market-insights .sig-kicker{
  font-family:Poppins,Arial,Helvetica,sans-serif !important;
}

.elementor-widget-cpm-hero-header .cpm-hero-header__title,
.elementor-widget-cpm-before-after .cpm-reference-module .sig-intro-grid h2,
.elementor-widget-cpm-outcomes .cpm-reference-module .sig-outcomes-head h2,
.elementor-widget-cpm-process .cpm-reference-module .sig-story-head h2,
.elementor-widget-cpm-market-insights .sig-insights-head h2,
.elementor-widget-cpm-portfolio-projects .sig-portfolio-head h2,
.elementor-widget-cpm-commercial-strategy .cpm-strategy__head h2{
  font-family:Poppins,Arial,Helvetica,sans-serif !important;
  font-weight:900 !important;
  text-transform:uppercase;
  letter-spacing:-0.055em;
  line-height:0.92;
}

.elementor-widget-cpm-hero-header .cpm-hero-header__lead,
.elementor-widget-cpm-hero-header .cpm-hero-header__body,
.elementor-widget-cpm-hero-header .cpm-hero-header__body p{
  font-family:Poppins,Arial,Helvetica,sans-serif !important;
}


/* ==========================================================
   CPM BLOCKS 6.4.3 — HERO FADE RESTORE HOTFIX
   Restore a strong, predictable fade layer on the hero.
   Previous builds could look like the fade disappeared.
   This version keeps the full-width geometry controls but
   uses a simpler, more reliable gradient construction.
   ========================================================== */
.cpm-hero-header{
  --cpm-fade-width:74%;
  --cpm-fade-position:0%;
}
.cpm-hero-header--overlay .cpm-hero-header__fade{
  display:block;
  position:absolute;
  inset:0;
  z-index:1;
  pointer-events:none;
  opacity:calc(var(--cpm-overlay-strength,92) / 100)!important;
  background:linear-gradient(
    90deg,
    var(--cpm-overlay-colour,#fff) 0%,
    var(--cpm-overlay-colour,#fff) calc(34% + var(--cpm-fade-position,0%)),
    var(--cpm-overlay-colour,#fff) calc(52% + var(--cpm-fade-position,0%)),
    rgba(255,255,255,0) var(--cpm-fade-width,74%),
    rgba(255,255,255,0) 100%
  )!important;
}

/* If the chosen colour is not white, keep the fade tint reliable by
   painting the solid part with the selected colour and allowing the
   browser to interpolate out through transparency. */
.cpm-hero-header--overlay .cpm-hero-header__fade{
  background-image:linear-gradient(
    90deg,
    var(--cpm-overlay-colour,#fff) 0%,
    var(--cpm-overlay-colour,#fff) calc(34% + var(--cpm-fade-position,0%)),
    var(--cpm-overlay-colour,#fff) calc(52% + var(--cpm-fade-position,0%)),
    transparent var(--cpm-fade-width,74%),
    transparent 100%
  )!important;
}

@media(max-width:900px){
  .cpm-hero-header--overlay .cpm-hero-header__fade{
    display:none!important;
  }
}


/* ==========================================================
   CPM BLOCKS 6.4.4 — HERO FADE STACKING FIX
   Root cause: an older rule gave .cpm-hero-header__inner z-index:2,
   which put the ENTIRE image/content layer above the dedicated
   fade sibling. The fade existed, but was physically underneath
   the hero image.
   Correct stack:
       image/slideshow = 0
       dedicated fade  = 1
       copy            = 2
       caption         = 3
   ========================================================== */
.cpm-hero-header{
  position:relative;
  isolation:isolate;
}

.cpm-hero-header--overlay .cpm-hero-header__inner{
  position:relative!important;
  z-index:auto!important;
}

.cpm-hero-header--overlay .cpm-hero-header__image,
.cpm-hero-header--overlay .cpm-hero-bg-slides{
  z-index:0!important;
}

.cpm-hero-header--overlay .cpm-hero-header__fade{
  display:block!important;
  position:absolute!important;
  inset:0!important;
  z-index:1!important;
  pointer-events:none!important;
  opacity:calc(var(--cpm-overlay-strength,92) / 100)!important;
}

.cpm-hero-header--overlay .cpm-hero-header__copy{
  position:relative!important;
  z-index:2!important;
  background:transparent!important;
}

.cpm-hero-header--overlay .cpm-hero-header__caption{
  z-index:3!important;
}

/* Keep the intended stacked mobile/tablet behaviour. */
@media(max-width:900px){
  .cpm-hero-header--overlay .cpm-hero-header__fade{
    display:none!important;
  }
}


/* ==========================================================
   CPM BLOCKS 6.4.5 — CONNECTED CAMPAIGN HOVER / LIGHTBOX
   Desktop: anchored popup from service text, no mouse chasing.
   Touch: tap opens a clean media lightbox.
   ========================================================== */
.elementor-widget-cpm-capabilities .sig-cap-item.has-media{
  cursor:pointer;
}
.elementor-widget-cpm-capabilities .sig-cap-hover-media{
  --cpm-cap-speed:380ms;
  --cpm-cap-start-scale:.97;
  position:fixed;
  left:-9999px;
  top:-9999px;
  z-index:99999;
  width:360px;
  height:240px;
  overflow:hidden;
  pointer-events:none;
  opacity:0;
  visibility:hidden;
  transform:scale(var(--cpm-cap-start-scale));
  transform-origin:center center;
  transition:
    opacity var(--cpm-cap-speed) cubic-bezier(.2,.75,.25,1),
    transform var(--cpm-cap-speed) cubic-bezier(.2,.75,.25,1),
    visibility 0s linear var(--cpm-cap-speed);
  background:#111315;
  will-change:opacity,transform;
}
.elementor-widget-cpm-capabilities .sig-cap-hover-media.is-visible{
  opacity:1;
  visibility:visible;
  transform:scale(1);
  transition-delay:0s;
}
.elementor-widget-cpm-capabilities .sig-cap-hover-media.has-shadow{
  box-shadow:0 20px 55px rgba(0,0,0,.22);
}
.elementor-widget-cpm-capabilities .sig-cap-hover-media img,
.elementor-widget-cpm-capabilities .sig-cap-hover-media video{
  width:100%;
  height:100%;
  display:block;
  object-fit:cover;
}
.elementor-widget-cpm-capabilities .sig-cap-item.has-media:focus-visible{
  outline:2px solid var(--sig-accent,#E30613);
  outline-offset:-2px;
}

/* Touch devices do not use the floating popup. */
@media(hover:none),(pointer:coarse){
  .elementor-widget-cpm-capabilities .sig-cap-hover-media{
    display:none!important;
  }
  .elementor-widget-cpm-capabilities .sig-cap-item.has-media{
    cursor:pointer;
  }
}

/* Mobile / tablet media lightbox */
.cpm-cap-lightbox{
  --cpm-cap-lightbox-bg:rgba(8,10,12,.94);
  position:fixed;
  inset:0;
  z-index:1000000;
  display:grid;
  place-items:center;
  padding:28px;
  background:var(--cpm-cap-lightbox-bg);
  opacity:0;
  visibility:hidden;
  pointer-events:none;
  transition:opacity .28s ease,visibility .28s;
}
.cpm-cap-lightbox.is-open{
  opacity:1;
  visibility:visible;
  pointer-events:auto;
}
.cpm-cap-lightbox__inner{
  width:min(92%,1000px);
  max-height:calc(100% - 36px);
  display:flex;
  flex-direction:column;
  gap:12px;
  min-width:0;
}
.cpm-cap-lightbox__media{
  width:100%;
  max-height:75vh;
  background:#111315;
  overflow:hidden;
}
.cpm-cap-lightbox__media img,
.cpm-cap-lightbox__media video{
  display:block;
  width:100%;
  max-height:75vh;
  object-fit:contain;
  background:#111315;
}
.cpm-cap-lightbox__caption{
  color:#fff;
  font-family:Poppins,Arial,Helvetica,sans-serif;
  font-size:11px;
  font-weight:900;
  line-height:1.35;
  letter-spacing:.09em;
  text-transform:uppercase;
}
.cpm-cap-lightbox__close{
  position:absolute;
  top:18px;
  right:18px;
  width:48px;
  height:48px;
  border:1px solid rgba(255,255,255,.35);
  background:rgba(17,19,21,.55);
  color:#fff;
  display:grid;
  place-items:center;
  font-size:30px;
  line-height:1;
  cursor:pointer;
}
html.cpm-cap-lightbox-open{
  overflow:hidden;
}
@media(max-width:767px){
  .cpm-cap-lightbox{
    padding:20px;
  }
  .cpm-cap-lightbox__inner{
    width:94%;
  }
  .cpm-cap-lightbox__close{
    top:12px;
    right:12px;
  }
}


/* CPM 6.4.6 — Connected Campaign smooth mouse follow */
.elementor-widget-cpm-capabilities .sig-cap-hover-media{
  transition:
    opacity var(--cpm-cap-speed,380ms) cubic-bezier(.2,.75,.25,1),
    transform var(--cpm-cap-speed,380ms) cubic-bezier(.2,.75,.25,1),
    visibility 0s linear var(--cpm-cap-speed,380ms);
}
.elementor-widget-cpm-capabilities .sig-cap-hover-media.is-visible{
  transform:scale(1);
}


/* ==========================================================
   CPM BLOCKS 6.5.0 — ENQUIRY POPUP
   ========================================================== */
.cpm-enquiry-popup{
  --cpm-enquiry-accent:#E30613;
  position:fixed;
  inset:0;
  z-index:1000001;
  visibility:hidden;
  pointer-events:none;
  font-family:Poppins,Arial,Helvetica,sans-serif;
}
.cpm-enquiry-popup *{box-sizing:border-box}
.cpm-enquiry-popup__backdrop{
  position:absolute;
  inset:0;
  background:rgba(7,9,11,.78);
  opacity:0;
  transition:opacity .38s ease;
}
.cpm-enquiry-popup__panel{
  --cpm-enquiry-width:720px;
  position:absolute;
  top:0;
  bottom:0;
  width:min(var(--cpm-enquiry-width),100%);
  overflow:auto;
  overscroll-behavior:contain;
  background:#f4f4f1;
  padding:72px 64px 64px;
  opacity:0;
  outline:none;
  transition:
    transform .48s cubic-bezier(.2,.75,.25,1),
    opacity .34s ease;
}
.cpm-enquiry-popup--right .cpm-enquiry-popup__panel{
  right:0;
  transform:translateX(100%);
}
.cpm-enquiry-popup--left .cpm-enquiry-popup__panel{
  left:0;
  transform:translateX(-100%);
}
.cpm-enquiry-popup--center .cpm-enquiry-popup__panel{
  top:50%;
  bottom:auto;
  left:50%;
  max-height:calc(100% - 48px);
  transform:translate(-50%,-46%) scale(.975);
}
.cpm-enquiry-popup.is-open{
  visibility:visible;
  pointer-events:auto;
}
.cpm-enquiry-popup.is-open .cpm-enquiry-popup__backdrop{
  opacity:1;
}
.cpm-enquiry-popup.is-open.cpm-enquiry-popup--right .cpm-enquiry-popup__panel,
.cpm-enquiry-popup.is-open.cpm-enquiry-popup--left .cpm-enquiry-popup__panel{
  transform:translateX(0);
  opacity:1;
}
.cpm-enquiry-popup.is-open.cpm-enquiry-popup--center .cpm-enquiry-popup__panel{
  transform:translate(-50%,-50%) scale(1);
  opacity:1;
}
.cpm-enquiry-popup__content{
  width:100%;
  max-width:620px;
  margin:0 auto;
}
.cpm-enquiry-popup__eyebrow{
  margin:0 0 18px;
  color:var(--cpm-enquiry-accent);
  font-size:10px;
  font-weight:900;
  line-height:1.2;
  letter-spacing:.16em;
  text-transform:uppercase;
}
.cpm-enquiry-popup__heading{
  margin:0;
  color:#111315;
  font-size:clamp(48px,5vw,76px);
  font-weight:900;
  line-height:.9;
  letter-spacing:-.055em;
  text-transform:uppercase;
}
.cpm-enquiry-popup__intro{
  margin:26px 0 34px;
}
.cpm-enquiry-popup__body{
  margin:0;
  color:#666c72;
  font-size:16px;
  line-height:1.6;
}
.cpm-enquiry-popup__close{
  position:absolute;
  top:22px;
  right:22px;
  z-index:2;
  width:48px;
  height:48px;
  border:1px solid #c8cbcd;
  border-radius:0;
  background:transparent;
  color:#111315;
  display:grid;
  place-items:center;
  padding:0;
  font:400 30px/1 Arial,sans-serif;
  cursor:pointer;
  transition:background .2s ease,color .2s ease,border-color .2s ease;
}
.cpm-enquiry-popup__close:hover{
  background:#111315;
  border-color:#111315;
  color:#fff;
}
.cpm-enquiry-popup__placeholder{
  border-top:1px solid #d4d6d7;
  border-bottom:1px solid #d4d6d7;
  padding:26px 0;
  color:#8a8f94;
  font-size:13px;
  line-height:1.5;
}

/* Sensible defaults for Elementor Pro form inside the popup.
   Elementor's own widget controls still win when users style the form. */
.cpm-enquiry-popup .elementor-form{
  width:100%;
}
.cpm-enquiry-popup .elementor-field-group{
  margin-bottom:14px;
}
.cpm-enquiry-popup .elementor-field-label{
  font-family:Poppins,Arial,Helvetica,sans-serif;
  font-size:10px;
  font-weight:900;
  letter-spacing:.1em;
  text-transform:uppercase;
}
.cpm-enquiry-popup .elementor-field,
.cpm-enquiry-popup select.elementor-field-textual,
.cpm-enquiry-popup textarea.elementor-field-textual{
  min-height:52px;
}
.cpm-enquiry-popup .elementor-button{
  min-height:56px;
  border-radius:0;
  font-family:Poppins,Arial,Helvetica,sans-serif;
  font-weight:900;
  letter-spacing:.04em;
  text-transform:uppercase;
}
html.cpm-enquiry-popup-open{
  overflow:hidden;
}

@media(max-width:767px){
  .cpm-enquiry-popup__panel{
    --cpm-enquiry-width:100%;
    width:100%;
    padding:64px 24px 32px;
  }
  .cpm-enquiry-popup--center .cpm-enquiry-popup__panel{
    top:0;
    bottom:0;
    left:0;
    max-height:none;
    transform:translateY(4%);
  }
  .cpm-enquiry-popup.is-open.cpm-enquiry-popup--center .cpm-enquiry-popup__panel{
    transform:translateY(0);
  }
  .cpm-enquiry-popup__heading{
    font-size:clamp(42px,13vw,58px);
  }
  .cpm-enquiry-popup__close{
    top:12px;
    right:12px;
  }
}


/* ==========================================================
   CPM BLOCKS 6.5.4 — MOBILE LOGO TWO-STEP
   First tap selects logo and reveals CTA; only CTA tap navigates.
   Desktop hover/follow-mouse behaviour remains unchanged.
   ========================================================== */
@media(max-width:767px){
  .elementor-widget-cpm-client-logos .cpm-logo-item.is-mobile-selected{
    opacity:var(--cpm-logo-hover-opacity,100%)!important;
  }

  .elementor-widget-cpm-client-logos .cpm-logo-item.is-mobile-selected .cpm-logo-tooltip{
    opacity:1!important;
    visibility:visible!important;
    transform:translate(-50%,0)!important;
    pointer-events:auto!important;
    cursor:pointer!important;
    z-index:100!important;
  }

  /* Make the revealed tooltip read as a deliberate second-step button. */
  .elementor-widget-cpm-client-logos .cpm-logo-item.is-mobile-selected .cpm-logo-tooltip{
    min-height:34px;
    display:inline-flex!important;
    align-items:center;
    justify-content:center;
    padding:9px 13px!important;
    touch-action:manipulation;
    -webkit-tap-highlight-color:transparent;
  }

  /* Prevent focus alone from making an unselected logo look "armed". */
  .elementor-widget-cpm-client-logos .cpm-logo-item:not(.is-mobile-selected):focus-within .cpm-logo-tooltip{
    opacity:0!important;
    visibility:hidden!important;
    pointer-events:none!important;
  }
}

/* CPM 6.5.5 — Market Perception marker spans full module width */
.elementor-widget-cpm-impact .cpm-reference-module .sig-impact-top b{justify-self:center;text-align:center;}


/* ==========================================================
   CPM BLOCKS 6.6.0 — BUILT-IN DISCUSS YOUR SITE FORM
   ========================================================== */
.cpm-enquiry-form{
  width:100%;
}
.cpm-enquiry-form__grid{
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:18px 16px;
}
.cpm-enquiry-field{
  min-width:0;
}
.cpm-enquiry-field--full{
  grid-column:1 / -1;
}
.cpm-enquiry-field label{
  display:block;
  margin:0 0 8px;
  color:#111315;
  font-family:Poppins,Arial,Helvetica,sans-serif;
  font-size:10px;
  font-weight:900;
  line-height:1.2;
  letter-spacing:.1em;
  text-transform:uppercase;
}
.cpm-enquiry-field label span{
  color:var(--cpm-enquiry-accent,#E30613);
}
.cpm-enquiry-field input[type="text"],
.cpm-enquiry-field input[type="email"],
.cpm-enquiry-field input[type="tel"],
.cpm-enquiry-field select,
.cpm-enquiry-field textarea{
  width:100%;
  border:1px solid #cfd2d3;
  border-radius:0;
  background:#fff;
  color:#111315;
  box-shadow:none;
  outline:none;
  padding:14px 15px;
  font:500 14px/1.45 Poppins,Arial,Helvetica,sans-serif;
  transition:border-color .2s ease,box-shadow .2s ease;
}
.cpm-enquiry-field input[type="text"],
.cpm-enquiry-field input[type="email"],
.cpm-enquiry-field input[type="tel"],
.cpm-enquiry-field select{
  min-height:52px;
}
.cpm-enquiry-field textarea{
  resize:vertical;
  min-height:130px;
}
.cpm-enquiry-field input:focus,
.cpm-enquiry-field select:focus,
.cpm-enquiry-field textarea:focus{
  border-color:#111315;
  box-shadow:0 0 0 1px #111315;
}
.cpm-enquiry-field input::placeholder,
.cpm-enquiry-field textarea::placeholder{
  color:#92979b;
}
.cpm-enquiry-file{
  display:block;
  width:100%;
  border:1px dashed #bfc3c5;
  background:rgba(255,255,255,.55);
  padding:16px;
  color:#5d6368;
  font:500 13px/1.45 Poppins,Arial,Helvetica,sans-serif;
}
.cpm-enquiry-field small{
  display:block;
  margin-top:7px;
  color:#858a8e;
  font:500 11px/1.45 Poppins,Arial,Helvetica,sans-serif;
}
.cpm-enquiry-form__actions{
  padding-top:8px;
}
.cpm-enquiry-form__submit{
  min-height:58px;
  border:0;
  border-radius:0;
  background:var(--cpm-enquiry-accent,#E30613);
  color:#fff;
  padding:0 22px;
  display:inline-flex;
  align-items:center;
  justify-content:space-between;
  gap:40px;
  cursor:pointer;
  font:900 12px/1 Poppins,Arial,Helvetica,sans-serif;
  letter-spacing:.035em;
  text-transform:uppercase;
  transition:background .2s ease,opacity .2s ease;
}
.cpm-enquiry-form__submit:hover{
  background:#111315;
}
.cpm-enquiry-form__submit:disabled{
  opacity:.58;
  cursor:wait;
}
.cpm-enquiry-form__submit span{
  font-size:17px;
  font-weight:400;
}
.cpm-enquiry-form__status{
  margin-top:14px;
  min-height:18px;
  color:#666c72;
  font:600 12px/1.5 Poppins,Arial,Helvetica,sans-serif;
}
.cpm-enquiry-form__status.is-success{
  color:#267041;
}
.cpm-enquiry-form__status.is-error{
  color:#B00020;
}
.cpm-enquiry-form__hp{
  position:absolute!important;
  left:-10000px!important;
  width:1px!important;
  height:1px!important;
  overflow:hidden!important;
}

@media(max-width:767px){
  .cpm-enquiry-form__grid{
    grid-template-columns:1fr;
    gap:16px;
  }
  .cpm-enquiry-field--full{
    grid-column:auto;
  }
  .cpm-enquiry-form__submit{
    width:100%;
  }
}


/* ==========================================================
   CPM BLOCKS 6.6.1 — EDITABLE COMPACT ENQUIRY FORM
   Labels sit inside fields to reduce overall popup height.
   ========================================================== */
.cpm-enquiry-form--inside-labels .cpm-enquiry-sr-label{
  position:absolute!important;
  width:1px!important;
  height:1px!important;
  padding:0!important;
  margin:-1px!important;
  overflow:hidden!important;
  clip:rect(0,0,0,0)!important;
  white-space:nowrap!important;
  border:0!important;
}
.cpm-enquiry-form--inside-labels .cpm-enquiry-form__grid{
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:10px;
}
.cpm-enquiry-form--inside-labels .cpm-enquiry-field--w100{
  grid-column:1/-1;
}
.cpm-enquiry-form--inside-labels .cpm-enquiry-field--w50{
  grid-column:auto;
}
.cpm-enquiry-form--inside-labels .cpm-enquiry-field input:not([type=file]),
.cpm-enquiry-form--inside-labels .cpm-enquiry-field select{
  min-height:46px;
  height:46px;
  padding:0 14px;
  font-size:12px;
  font-weight:700;
  letter-spacing:.035em;
  text-transform:uppercase;
}
.cpm-enquiry-form--inside-labels .cpm-enquiry-field textarea{
  min-height:92px;
  padding:14px;
  font-size:12px;
  font-weight:700;
  letter-spacing:.02em;
}
.cpm-enquiry-form--inside-labels .cpm-enquiry-field input::placeholder,
.cpm-enquiry-form--inside-labels .cpm-enquiry-field textarea::placeholder{
  opacity:1;
  text-transform:uppercase;
}
.cpm-enquiry-form--inside-labels .cpm-enquiry-field select{
  appearance:auto;
}
.cpm-enquiry-form--inside-labels .cpm-enquiry-field small{
  margin:5px 2px 0;
  font-size:9px;
}
.cpm-enquiry-form--inside-labels .cpm-enquiry-file-wrap{
  min-height:46px;
  border:1px dashed #cfd2d3;
  background:#fff;
  display:flex;
  align-items:center;
  gap:12px;
  padding:7px 12px;
}
.cpm-enquiry-form--inside-labels .cpm-enquiry-file-label{
  flex:0 0 auto;
  color:#70757a;
  font:700 10px/1.2 Poppins,Arial,Helvetica,sans-serif;
  letter-spacing:.04em;
  text-transform:uppercase;
}
.cpm-enquiry-form--inside-labels .cpm-enquiry-file{
  border:0;
  background:transparent;
  padding:0;
  min-width:0;
  font-size:11px;
}
.cpm-enquiry-form--inside-labels .cpm-enquiry-form__actions{
  padding-top:2px;
}
.cpm-enquiry-form--inside-labels .cpm-enquiry-form__submit{
  min-height:50px;
}
.cpm-enquiry-popup__intro{
  margin-bottom:22px;
}

@media(max-width:767px){
  .cpm-enquiry-form--inside-labels .cpm-enquiry-form__grid{
    grid-template-columns:1fr;
    gap:9px;
  }
  .cpm-enquiry-form--inside-labels .cpm-enquiry-field--w100,
  .cpm-enquiry-form--inside-labels .cpm-enquiry-field--w50{
    grid-column:auto;
  }
}


/* ==========================================================
   CPM BLOCKS 6.6.2 — FULL POPUP POSITION / ANIMATION CONTROL
   ========================================================== */
.cpm-enquiry-popup{
  --cpm-popup-top:0px;
  --cpm-popup-bottom:0px;
  --cpm-popup-side:0px;
  --cpm-popup-speed:450ms;
  --cpm-panel-max-height:100%;
}

.cpm-popup-ancestor-active{
  position:relative!important;
  z-index:2147481900!important;
  overflow:visible!important;
  transform:none!important;
  filter:none!important;
  perspective:none!important;
  isolation:auto!important;
}

.elementor-widget-cpm-enquiry-popup{
  overflow:visible!important;
}

.cpm-enquiry-popup__panel{
  top:auto!important;
  bottom:auto!important;
  left:auto!important;
  right:auto!important;
  width:min(var(--cpm-enquiry-width,720px),calc(100% - (var(--cpm-popup-side) * 2)))!important;
  max-height:min(var(--cpm-panel-max-height,100%),calc(100% - var(--cpm-popup-top) - var(--cpm-popup-bottom)))!important;
  transition:
    transform var(--cpm-popup-speed) cubic-bezier(.2,.75,.25,1),
    opacity var(--cpm-popup-speed) ease!important;
}

/* Horizontal placement */
.cpm-enquiry-popup--right .cpm-enquiry-popup__panel{
  right:var(--cpm-popup-side)!important;
  --cpm-base-x:0%;
}
.cpm-enquiry-popup--left .cpm-enquiry-popup__panel{
  left:var(--cpm-popup-side)!important;
  --cpm-base-x:0%;
}
.cpm-enquiry-popup--center .cpm-enquiry-popup__panel{
  left:50%!important;
  --cpm-base-x:-50%;
}

/* Vertical placement */
.cpm-enquiry-popup--v-top .cpm-enquiry-popup__panel{
  top:var(--cpm-popup-top)!important;
  --cpm-base-y:0%;
}
.cpm-enquiry-popup--v-center .cpm-enquiry-popup__panel{
  top:50%!important;
  --cpm-base-y:-50%;
}
.cpm-enquiry-popup--v-bottom .cpm-enquiry-popup__panel{
  bottom:var(--cpm-popup-bottom)!important;
  --cpm-base-y:0%;
}

/* Closed state transform */
.cpm-enquiry-popup__panel{
  --cpm-enter-x:0%;
  --cpm-enter-y:0px;
  --cpm-enter-scale:1;
  --cpm-closed-opacity:1;
  transform:translate(
    calc(var(--cpm-base-x,0%) + var(--cpm-enter-x,0%)),
    calc(var(--cpm-base-y,0%) + var(--cpm-enter-y,0px))
  ) scale(var(--cpm-enter-scale,1))!important;
  opacity:var(--cpm-closed-opacity,1)!important;
}

.cpm-enquiry-popup--anim-slide.cpm-enquiry-popup--right .cpm-enquiry-popup__panel,
.cpm-enquiry-popup--anim-slide_fade.cpm-enquiry-popup--right .cpm-enquiry-popup__panel{
  --cpm-enter-x:110%;
}
.cpm-enquiry-popup--anim-slide.cpm-enquiry-popup--left .cpm-enquiry-popup__panel,
.cpm-enquiry-popup--anim-slide_fade.cpm-enquiry-popup--left .cpm-enquiry-popup__panel{
  --cpm-enter-x:-110%;
}
.cpm-enquiry-popup--anim-slide.cpm-enquiry-popup--center .cpm-enquiry-popup__panel,
.cpm-enquiry-popup--anim-slide_fade.cpm-enquiry-popup--center .cpm-enquiry-popup__panel{
  --cpm-enter-y:34px;
}
.cpm-enquiry-popup--anim-slide_fade .cpm-enquiry-popup__panel,
.cpm-enquiry-popup--anim-fade .cpm-enquiry-popup__panel{
  --cpm-closed-opacity:0;
}
.cpm-enquiry-popup--anim-scale .cpm-enquiry-popup__panel{
  --cpm-enter-scale:.965;
  --cpm-closed-opacity:0;
}
.cpm-enquiry-popup--anim-none .cpm-enquiry-popup__panel{
  transition:none!important;
}

/* Open state */
.cpm-enquiry-popup.is-open .cpm-enquiry-popup__panel{
  --cpm-enter-x:0%!important;
  --cpm-enter-y:0px!important;
  --cpm-enter-scale:1!important;
  --cpm-closed-opacity:1!important;
  opacity:1!important;
}

/* Neutralise older centre-popup transforms. */
.cpm-enquiry-popup.is-open.cpm-enquiry-popup--center .cpm-enquiry-popup__panel,
.cpm-enquiry-popup.is-open.cpm-enquiry-popup--right .cpm-enquiry-popup__panel,
.cpm-enquiry-popup.is-open.cpm-enquiry-popup--left .cpm-enquiry-popup__panel{
  opacity:1!important;
}

@media(max-width:767px){
  .cpm-enquiry-popup__panel{
    width:min(var(--cpm-enquiry-width,100%),calc(100% - (var(--cpm-popup-side) * 2)))!important;
  }
}


/* ==========================================================
   CPM BLOCKS 6.6.3 — TRUE TOP-LAYER POPUP
   Native <dialog>.showModal() puts the fade + form above all
   theme headers, sticky nav, Elementor containers and z-indexes.
   ========================================================== */
dialog.cpm-enquiry-popup{
  position:fixed!important;
  inset:0!important;
  width:100%!important;
  max-width:none!important;
  height:100%!important;
  max-height:none!important;
  margin:0!important;
  padding:0!important;
  border:0!important;
  border-radius:0!important;
  background:transparent!important;
  overflow:visible!important;
  color:inherit;
}

/* We use our own full-screen backdrop inside the dialog. */
dialog.cpm-enquiry-popup::backdrop{
  background:transparent!important;
}

dialog.cpm-enquiry-popup:not([open]){
  display:none!important;
}

dialog.cpm-enquiry-popup[open]{
  display:block!important;
  visibility:visible;
}

/* The internal fade must cover the entire browser viewport. */
dialog.cpm-enquiry-popup .cpm-enquiry-popup__backdrop{
  position:fixed!important;
  inset:0!important;
  width:100%!important;
  height:100%!important;
  z-index:0!important;
}

/* The form panel sits above the fade, still inside the browser top layer. */
dialog.cpm-enquiry-popup .cpm-enquiry-popup__panel{
  z-index:1!important;
}

/* Header/theme z-index becomes irrelevant in top-layer mode. */
dialog.cpm-enquiry-popup.is-open{
  z-index:2147483647!important;
}


/* ==========================================================
   CPM BLOCKS 6.6.4 — FULL SUBMIT BUTTON STYLING
   ========================================================== */
.cpm-enquiry-form__actions{
  display:flex;
  flex-direction:column;
  align-items:flex-start;
}
.cpm-enquiry-form__submit{
  border-style:solid;
  border-width:0;
  width:auto;
  max-width:100%;
}


/* ==========================================================
   CPM BLOCKS 6.7.0 — CPM FOOTER
   ========================================================== */
.elementor-widget-cpm-footer .cpm-footer{
  --cpm-footer-bg:#071116;
  --cpm-footer-top:#10222A;
  --cpm-footer-text:#fff;
  --cpm-footer-muted:#A4ADB3;
  --cpm-footer-line:#2B3940;
  --cpm-footer-accent:#E30613;
  background:var(--cpm-footer-bg);
  color:var(--cpm-footer-text);
  font-family:Poppins,Arial,Helvetica,sans-serif;
}
.elementor-widget-cpm-footer .cpm-footer a{color:inherit;text-decoration:none}
.elementor-widget-cpm-footer .cpm-footer-top{
  padding:56px 0 48px;
  background-color:var(--cpm-footer-top);
  background-position:center;
  background-size:cover;
  border-bottom:1px solid var(--cpm-footer-line);
}
.elementor-widget-cpm-footer .cpm-footer-top-grid{
  display:grid;
  grid-template-columns:1.15fr .9fr .75fr;
  gap:38px;
  align-items:center;
}
.elementor-widget-cpm-footer .cpm-footer-eyebrow,
.elementor-widget-cpm-footer .cpm-footer-col-title{
  font-size:10px;
  font-weight:800;
  letter-spacing:.18em;
  text-transform:uppercase;
  color:#d7dde0;
}
.elementor-widget-cpm-footer .cpm-footer-eyebrow:before{
  content:"";
  display:inline-block;
  width:30px;
  height:3px;
  margin-right:18px;
  vertical-align:middle;
  background:var(--cpm-footer-accent);
}
.elementor-widget-cpm-footer .cpm-footer-news-copy h2{
  margin:18px 0 10px;
  font-size:30px;
  line-height:1.08;
  letter-spacing:-.035em;
  color:#fff;
}
.elementor-widget-cpm-footer .cpm-footer p{
  color:var(--cpm-footer-muted);
  line-height:1.65;
}
.elementor-widget-cpm-footer .cpm-footer-news-copy p{margin:0;max-width:650px}
.elementor-widget-cpm-footer .cpm-footer-news-form{
  display:grid;
  grid-template-columns:1fr auto;
}
.elementor-widget-cpm-footer .cpm-footer-news-form input{
  min-width:0;
  height:56px;
  border:1px solid #46555c;
  border-right:0;
  border-radius:0;
  background:rgba(255,255,255,.06);
  color:#fff;
  padding:0 18px;
  outline:none;
}
.elementor-widget-cpm-footer .cpm-footer-news-form button{
  height:56px;
  border:0;
  border-radius:0;
  background:var(--cpm-footer-accent);
  color:#fff;
  padding:0 28px;
  font-weight:800;
  cursor:pointer;
}
.elementor-widget-cpm-footer .cpm-footer-news-form button span,
.elementor-widget-cpm-footer .cpm-footer-outline-btn span,
.elementor-widget-cpm-footer .cpm-footer-red-btn span{margin-left:10px}
.elementor-widget-cpm-footer .cpm-footer-project-cta{
  padding-left:34px;
  border-left:1px solid #516068;
}
.elementor-widget-cpm-footer .cpm-footer-project-cta .cpm-footer-eyebrow:before{display:none}
.elementor-widget-cpm-footer .cpm-footer-outline-btn{
  display:flex;
  align-items:center;
  justify-content:space-between;
  margin:16px 0 10px;
  min-height:54px;
  border:1px solid rgba(255,255,255,.6);
  padding:0 18px;
  font-weight:700;
}
.elementor-widget-cpm-footer .cpm-footer-project-cta p{margin:0;font-size:12px}

.elementor-widget-cpm-footer .cpm-footer-main{
  padding:64px 0 54px;
}
.elementor-widget-cpm-footer .cpm-footer-grid{
  display:grid;
  grid-template-columns:1.25fr .75fr 1fr .95fr .95fr;
  gap:36px;
  align-items:start;
}
.elementor-widget-cpm-footer .cpm-footer-grid>div+div{
  border-left:1px solid var(--cpm-footer-line);
  padding-left:34px;
}
.elementor-widget-cpm-footer .cpm-footer-logo{
  display:block;
  max-width:220px;
  max-height:74px;
  object-fit:contain;
  object-position:left center;
  margin-bottom:28px;
}
.elementor-widget-cpm-footer .cpm-footer-brand h3{
  max-width:300px;
  margin:0 0 18px;
  font-size:19px;
  line-height:1.45;
  font-weight:500;
}
.elementor-widget-cpm-footer .cpm-footer-brand p{
  max-width:350px;
  margin:0;
  font-size:14px;
}
.elementor-widget-cpm-footer .cpm-footer-tagline{
  margin-top:30px;
  padding-top:18px;
  position:relative;
  font-size:10px;
  font-weight:800;
  letter-spacing:.28em;
  line-height:1.8;
}
.elementor-widget-cpm-footer .cpm-footer-tagline:before{
  content:"";
  position:absolute;
  left:0;top:0;
  width:30px;height:3px;
  background:var(--cpm-footer-accent);
}
.elementor-widget-cpm-footer .cpm-footer-col-title{margin-bottom:22px}
.elementor-widget-cpm-footer .cpm-footer-links{
  list-style:none;
  padding:0;
  margin:0;
}
.elementor-widget-cpm-footer .cpm-footer-links li{margin:0}
.elementor-widget-cpm-footer .cpm-footer-links a{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:20px;
  padding:9px 0;
  color:#d8dde0;
  font-size:13px;
}
.elementor-widget-cpm-footer .cpm-footer-links a b{
  color:#fff;
  font-size:20px;
  font-weight:300;
}
.elementor-widget-cpm-footer .cpm-footer-contact>a{
  display:flex;
  align-items:center;
  gap:14px;
  padding:9px 0;
  color:#d8dde0;
  font-size:13px;
}
.elementor-widget-cpm-footer .cpm-footer-contact>a i,
.elementor-widget-cpm-footer .cpm-footer-location>i{
  display:grid;
  place-items:center;
  width:30px;height:30px;
  color:var(--cpm-footer-accent);
  font-style:normal;
}
.elementor-widget-cpm-footer .cpm-footer-location{
  display:flex;
  gap:14px;
  margin-top:24px;
  padding-top:24px;
  border-top:1px solid var(--cpm-footer-line);
}
.elementor-widget-cpm-footer .cpm-footer-location strong{
  display:block;
  font-size:13px;
  font-weight:500;
}
.elementor-widget-cpm-footer .cpm-footer-location small{
  display:block;
  margin-top:5px;
  color:var(--cpm-footer-muted);
  font-size:11px;
}
.elementor-widget-cpm-footer .cpm-footer-final h2{
  margin:14px 0 28px;
  font-size:38px;
  line-height:1.02;
  letter-spacing:-.045em;
  color:#fff;
}
.elementor-widget-cpm-footer .cpm-footer-red-btn{
  display:flex;
  align-items:center;
  justify-content:space-between;
  min-height:56px;
  padding:0 20px;
  background:var(--cpm-footer-accent);
  color:#fff;
  font-weight:800;
}
.elementor-widget-cpm-footer .cpm-footer-final p{font-size:12px;margin:16px 0 0}

.elementor-widget-cpm-footer .cpm-footer-bottom{
  padding:28px 0;
  border-top:1px solid var(--cpm-footer-line);
}
.elementor-widget-cpm-footer .cpm-footer-bottom-grid{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:40px;
}
.elementor-widget-cpm-footer .cpm-footer-legal-brand{
  display:flex;
  align-items:center;
  gap:22px;
  min-width:0;
}
.elementor-widget-cpm-footer .cpm-footer-legal-brand img{
  width:135px;
  max-height:42px;
  object-fit:contain;
  object-position:left center;
}
.elementor-widget-cpm-footer .cpm-footer-legal-brand strong,
.elementor-widget-cpm-footer .cpm-footer-legal-brand span{
  display:block;
  color:#859198;
  font-size:9px;
  letter-spacing:.06em;
}
.elementor-widget-cpm-footer .cpm-footer-legal-brand span{margin-top:5px}
.elementor-widget-cpm-footer .cpm-footer-bottom-right{
  display:flex;
  align-items:center;
  gap:24px;
}
.elementor-widget-cpm-footer .cpm-footer-bottom-right nav{
  display:flex;
  gap:20px;
}
.elementor-widget-cpm-footer .cpm-footer-bottom-right nav a{
  color:#9aa4aa;
  font-size:10px;
}
.elementor-widget-cpm-footer .cpm-footer-social{
  display:flex;
  align-items:center;
  gap:14px;
}
.elementor-widget-cpm-footer .cpm-footer-social a{
  display:grid;
  place-items:center;
  min-width:28px;
  height:28px;
  color:#fff;
  font-weight:800;
}

@media(max-width:1180px){
  .elementor-widget-cpm-footer .cpm-footer-top-grid{
    grid-template-columns:1fr 1fr;
  }
  .elementor-widget-cpm-footer .cpm-footer-project-cta{
    grid-column:1/-1;
    border-left:0;
    border-top:1px solid #516068;
    padding:26px 0 0;
  }
  .elementor-widget-cpm-footer .cpm-footer-grid{
    grid-template-columns:1.2fr 1fr 1fr;
  }
  .elementor-widget-cpm-footer .cpm-footer-grid>div{
    border-left:0!important;
    padding-left:0!important;
  }
  .elementor-widget-cpm-footer .cpm-footer-final,
  .elementor-widget-cpm-footer .cpm-footer-contact{
    border-top:1px solid var(--cpm-footer-line)!important;
    padding-top:34px!important;
  }
}
@media(max-width:767px){
  .elementor-widget-cpm-footer .cpm-footer-top-grid,
  .elementor-widget-cpm-footer .cpm-footer-grid{
    grid-template-columns:1fr;
  }
  .elementor-widget-cpm-footer .cpm-footer-news-form{
    grid-template-columns:1fr;
  }
  .elementor-widget-cpm-footer .cpm-footer-news-form input{
    border-right:1px solid #46555c;
    border-bottom:0;
  }
  .elementor-widget-cpm-footer .cpm-footer-grid>div+div{
    border-top:1px solid var(--cpm-footer-line);
    padding-top:30px!important;
  }
  .elementor-widget-cpm-footer .cpm-footer-bottom-grid,
  .elementor-widget-cpm-footer .cpm-footer-bottom-right{
    flex-direction:column;
    align-items:flex-start;
  }
  .elementor-widget-cpm-footer .cpm-footer-bottom-right nav{
    flex-wrap:wrap;
  }
}


/* ==========================================================
   CPM BLOCKS 6.7.1 — FOOTER ALIGNMENT / MODULE TOGGLES / MAILSTER
   ========================================================== */
.elementor-widget-cpm-footer .cpm-footer,
.elementor-widget-cpm-footer .cpm-footer *{
  box-sizing:border-box;
}
.elementor-widget-cpm-footer .cpm-footer-top-grid{
  grid-template-columns:repeat(var(--cpm-footer-top-cols,3),minmax(0,1fr))!important;
  align-items:center!important;
}
.elementor-widget-cpm-footer .cpm-footer-grid{
  grid-template-columns:repeat(var(--cpm-footer-visible-cols,5),minmax(0,1fr))!important;
  align-items:start!important;
}

/* Stop global theme heading/text rules from randomly centering footer modules. */
.elementor-widget-cpm-footer .cpm-footer-news-copy,
.elementor-widget-cpm-footer .cpm-footer-project-cta,
.elementor-widget-cpm-footer .cpm-footer-brand,
.elementor-widget-cpm-footer .cpm-footer-col,
.elementor-widget-cpm-footer .cpm-footer-contact,
.elementor-widget-cpm-footer .cpm-footer-final{
  text-align:left;
}
.elementor-widget-cpm-footer .cpm-footer h2,
.elementor-widget-cpm-footer .cpm-footer h3,
.elementor-widget-cpm-footer .cpm-footer p,
.elementor-widget-cpm-footer .cpm-footer-col-title,
.elementor-widget-cpm-footer .cpm-footer-eyebrow{
  text-align:inherit;
}

/* Form slot is deliberately neutral: Elementor controls the embedded form. */
.elementor-widget-cpm-footer .cpm-footer-newsletter-slot{
  min-width:0;
  width:100%;
}
.elementor-widget-cpm-footer .cpm-footer-news-template,
.elementor-widget-cpm-footer .cpm-footer-news-template .elementor,
.elementor-widget-cpm-footer .cpm-footer-news-template .e-con,
.elementor-widget-cpm-footer .cpm-footer-news-template .elementor-widget-form{
  width:100%;
  max-width:none;
  margin:0;
}
.elementor-widget-cpm-footer .cpm-footer-news-template .elementor-element{
  margin-bottom:0;
}
.elementor-widget-cpm-footer .cpm-footer-form-placeholder{
  min-height:56px;
  display:flex;
  align-items:center;
  padding:14px 16px;
  border:1px dashed #526169;
  color:#9eaaaf;
  font-size:12px;
}

/* Footer CTA links need reliable click/tap behavior. */
.elementor-widget-cpm-footer .cpm-footer-outline-btn,
.elementor-widget-cpm-footer .cpm-footer-red-btn{
  position:relative;
  z-index:1;
  cursor:pointer;
  pointer-events:auto;
}

/* Contact rows stay aligned regardless of text alignment setting. */
.elementor-widget-cpm-footer .cpm-footer-contact>a{
  width:100%;
}
.elementor-widget-cpm-footer .cpm-footer-contact .cpm-footer-col-title{
  width:100%;
}

/* Keep link arrows on the far edge but text inherits footer alignment. */
.elementor-widget-cpm-footer .cpm-footer-links a{
  width:100%;
}

/* Responsive grid fallback based on available content, not hardcoded child positions. */
@media(max-width:1180px){
  .elementor-widget-cpm-footer .cpm-footer-top-grid,
  .elementor-widget-cpm-footer .cpm-footer-grid{
    grid-template-columns:repeat(2,minmax(0,1fr))!important;
  }
  .elementor-widget-cpm-footer .cpm-footer-grid>div{
    border-left:0!important;
    padding-left:0!important;
  }
}
@media(max-width:767px){
  .elementor-widget-cpm-footer .cpm-footer-top-grid,
  .elementor-widget-cpm-footer .cpm-footer-grid{
    grid-template-columns:1fr!important;
  }
}

/* ==========================================================
   CPM BLOCKS 6.7.3 — CLIENT LOGOS GRID + MULTI-ROW CAROUSEL
   Shared responsive variables allow Elementor to control both
   layouts independently on desktop, laptop, tablet and mobile.
   ========================================================== */
.cpm-logos{
  --cpm-logo-columns:6;
  --cpm-logo-rows:1;
  --cpm-logo-gap:40px;
  --cpm-logo-row-gap:24px;
  --cpm-logo-cell-height:70px;
  --cpm-logo-justify:center;
  --cpm-logo-align:center;
}
.cpm-logos .cpm-logo-item{
  box-sizing:border-box!important;
  width:100%!important;
  min-width:0!important;
  height:var(--cpm-logo-cell-height)!important;
  flex:none!important;
  justify-content:var(--cpm-logo-justify)!important;
  align-items:var(--cpm-logo-align)!important;
}
.cpm-logos .cpm-logo-item>a{
  justify-content:var(--cpm-logo-justify)!important;
  align-items:var(--cpm-logo-align)!important;
}

/* Static mode: every logo remains visible. Rows is a minimum; the grid
   grows cleanly if the selected logos need additional rows. */
.cpm-logos--grid .cpm-logos__row,
.cpm-logos[data-cpm-logo-carousel="0"] .cpm-logos__row{
  display:block!important;
}
.cpm-logos--grid .cpm-logos-viewport,
.cpm-logos[data-cpm-logo-carousel="0"] .cpm-logos-viewport{
  display:block!important;
  width:100%!important;
  overflow:visible!important;
  grid-column:auto!important;
  grid-row:auto!important;
}
.cpm-logos--grid .cpm-logos-track,
.cpm-logos[data-cpm-logo-carousel="0"] .cpm-logos-track{
  display:grid!important;
  grid-template-columns:repeat(var(--cpm-logo-columns),minmax(0,1fr))!important;
  grid-template-rows:repeat(var(--cpm-logo-rows),minmax(var(--cpm-logo-cell-height),auto))!important;
  grid-auto-rows:minmax(var(--cpm-logo-cell-height),auto)!important;
  grid-auto-flow:row!important;
  column-gap:var(--cpm-logo-gap)!important;
  row-gap:var(--cpm-logo-row-gap)!important;
  width:100%!important;
  height:auto!important;
  overflow:visible!important;
  transform:none!important;
  transition:none!important;
}

/* Carousel mode: JavaScript groups the logos into responsive pages. Each
   page contains exactly Columns x Rows cells and moves as one clean slide. */
.cpm-logos--carousel .cpm-logos-track,
.cpm-logos[data-cpm-logo-carousel="1"] .cpm-logos-track{
  display:flex!important;
  align-items:stretch!important;
  gap:0!important;
  width:100%!important;
  transition-property:transform!important;
  transition-timing-function:cubic-bezier(.2,.75,.25,1)!important;
  will-change:transform;
}
.cpm-logos--carousel .cpm-logo-page,
.cpm-logos[data-cpm-logo-carousel="1"] .cpm-logo-page{
  box-sizing:border-box;
  display:grid!important;
  grid-template-columns:repeat(var(--cpm-page-columns),minmax(0,1fr));
  grid-template-rows:repeat(var(--cpm-page-rows),minmax(var(--cpm-logo-cell-height),auto));
  column-gap:var(--cpm-logo-gap);
  row-gap:var(--cpm-logo-row-gap);
  flex:0 0 100%;
  width:100%;
  min-width:100%;
}
.cpm-logos--single-page .cpm-logos-arrow{
  opacity:.3!important;
  pointer-events:none!important;
}

/* CPM 6.7.6 — optional Market Perception CTA */
.elementor-widget-cpm-impact .sig-impact-cta{
  display:flex;
  align-items:center;
  justify-content:flex-start;
  margin-top:34px;
  max-width:100%;
}
.elementor-widget-cpm-impact .sig-impact-button{
  position:relative;
  z-index:3;
  box-sizing:border-box;
  max-width:100%;
}
.elementor-widget-cpm-impact .sig-impact-button>span{
  color:inherit;
  line-height:1;
}

/* ==========================================================
   CPM BLOCKS 6.7.12 — HARD MOBILE ENQUIRY SCROLL FIX
   The top-layer <dialog> must expose a real viewport-height
   scroll container on Android Chrome and mobile Safari.
   ========================================================== */
html.cpm-enquiry-popup-open,
html.cpm-enquiry-popup-open body{
  overflow:hidden!important;
  overscroll-behavior:none!important;
}

dialog.cpm-enquiry-popup{
  height:100vh!important;
  max-height:100vh!important;
  height:100dvh!important;
  max-height:100dvh!important;
}

dialog.cpm-enquiry-popup .cpm-enquiry-popup__panel{
  min-height:0!important;
  overflow-x:hidden!important;
  overflow-y:auto!important;
  overscroll-behavior-x:none!important;
  overscroll-behavior-y:contain!important;
  touch-action:pan-y!important;
  -webkit-overflow-scrolling:touch;
  scrollbar-gutter:stable;
}

@media(max-width:767px){
  dialog.cpm-enquiry-popup .cpm-enquiry-popup__panel{
    --cpm-base-x:0%!important;
    --cpm-base-y:0%!important;
    top:0!important;
    right:auto!important;
    bottom:auto!important;
    left:0!important;
    width:100%!important;
    height:100vh!important;
    max-height:100vh!important;
    height:100dvh!important;
    max-height:100dvh!important;
    padding-bottom:max(32px,env(safe-area-inset-bottom))!important;
  }

  dialog.cpm-enquiry-popup .cpm-enquiry-popup__content{
    min-height:max-content;
  }
}
