.pfglobe{position:relative;width:100%;height:344.5px;pointer-events:none}.pfglobe .pfglobe__fb{position:absolute;left:50%;top:0;transform:translateX(-50%);width:1858px;max-width:none;height:auto;display:block;-webkit-mask-image:linear-gradient(180deg,#000 0%,#000 48%,rgba(0,0,0,.88) 56%,rgba(0,0,0,.72) 64%,rgba(0,0,0,.58) 72%,rgba(0,0,0,.45) 80%,rgba(0,0,0,.30) 88%,rgba(0,0,0,.18) 95%,rgba(0,0,0,.10) 100%);mask-image:linear-gradient(180deg,#000 0%,#000 48%,rgba(0,0,0,.88) 56%,rgba(0,0,0,.72) 64%,rgba(0,0,0,.58) 72%,rgba(0,0,0,.45) 80%,rgba(0,0,0,.30) 88%,rgba(0,0,0,.18) 95%,rgba(0,0,0,.10) 100%)}.pfglobe .pfglobe__c{position:absolute;left:50%;top:0;transform:translateX(-50%);width:1640px;height:330px;opacity:0;transition:opacity .8s ease;-webkit-mask-image:linear-gradient(180deg,#000 0%,#000 42%,rgba(0,0,0,.74) 56%,rgba(0,0,0,.46) 68%,rgba(0,0,0,.22) 80%,rgba(0,0,0,.07) 91%,rgba(0,0,0,0) 100%);mask-image:linear-gradient(180deg,#000 0%,#000 42%,rgba(0,0,0,.74) 56%,rgba(0,0,0,.46) 68%,rgba(0,0,0,.22) 80%,rgba(0,0,0,.07) 91%,rgba(0,0,0,0) 100%)}@media(max-width:1439px){.pfglobe .pfglobe__fb{width:100%;left:0;transform:none}.pfglobe .pfglobe__c{width:100%;height:270px}}@media(max-width:767px){.pfglobe{height:100px}.pfglobe .pfglobe__c{width:100%;height:100px}}.mq{overflow:hidden;width:100%;-webkit-mask-image:linear-gradient(90deg,transparent 0,#000 6%,#000 94%,transparent 100%);mask-image:linear-gradient(90deg,transparent 0,#000 6%,#000 94%,transparent 100%)}.mq+.mq{margin-top:40px}.mq__t{display:flex;gap:16px;width:max-content;animation:mqA 34s linear infinite}.mq--rev .mq__t{animation-name:mqB}.mq:hover .mq__t{animation-play-state:paused}@keyframes mqA{from{transform:translateX(0)}to{transform:translateX(-1888px)}}@keyframes mqB{from{transform:translateX(-1888px)}to{transform:translateX(0)}}.chip{flex:0 0 220px;height:96px;border-radius:12px;background:rgba(64,66,77,.25);display:flex;align-items:center;justify-content:center}.chip img{max-width:132px;max-height:36px;width:auto;height:auto;object-fit:contain;opacity:.9}@media(max-width:767px){.chip{flex:0 0 120px;height:52px;border-radius:10px}.chip img{max-width:82px;max-height:22px}.mq__t{gap:12px;animation-duration:26s}@keyframes mqA{from{transform:translateX(0)}to{transform:translateX(-1056px)}}@keyframes mqB{from{transform:translateX(-1056px)}to{transform:translateX(0)}}.mq+.mq{margin-top:12px}}@media(prefers-reduced-motion:reduce){.mq__t{animation:none}}.wdc{background:#1C1C1F;border-radius:24px;overflow:hidden;height:700px}.wdc .wdc__in{display:flex;height:100%;position:relative}.wdc .wdc__text{flex:0 0 754px;padding:102px 0 0 112px;display:flex;flex-direction:column;position:relative;z-index:1}.wdc .wdc__text p{font-family:Geist,sans-serif;font-weight:300;font-size:32.4px;line-height:45px;letter-spacing:0;color:#fff;margin:0;max-width:642px}.wdc a.wdc__btn{margin-top:auto;margin-bottom:116px;align-self:flex-start;display:inline-flex;align-items:center;gap:12px;background:#fff;color:#141517;border-radius:999px;padding:0 24px;height:48px;font-family:Geist,sans-serif;font-weight:600;font-size:14px;letter-spacing:1.12px;text-transform:uppercase;text-decoration:none}.wdc .wdc__img{position:absolute;right:0;top:0;bottom:0;width:900px;z-index:0;-webkit-mask-image:linear-gradient(90deg,rgba(0,0,0,0) 22%,rgba(0,0,0,1) 61%);mask-image:linear-gradient(90deg,rgba(0,0,0,0) 22%,rgba(0,0,0,1) 61%)}.wdc .wdc__img::after{content:"";position:absolute;inset:0;background:rgba(7,7,7,.18);pointer-events:none}.wdc .wdc__img img{width:100%;height:100%;object-fit:cover;display:block}@media(max-width:1439px){.wdc{height:auto}.wdc .wdc__in{flex-direction:column}.wdc .wdc__text{flex:1 1 auto;padding:56px 40px}.wdc .wdc__text p{font-size:26px;line-height:36px;max-width:none}.wdc a.wdc__btn{margin:40px 0 0}.wdc .wdc__img{position:relative;width:auto;height:320px;-webkit-mask-image:none;mask-image:none}}.wdcm{position:relative;background:#1C1C1F;border-radius:16px;overflow:hidden;min-height:451px;display:flex;align-items:center}.wdcm .wdcm__bg{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;opacity:1;z-index:0;-webkit-mask-image:linear-gradient(180deg,rgba(0,0,0,0) 55%,rgba(0,0,0,.5) 100%);mask-image:linear-gradient(180deg,rgba(0,0,0,0) 55%,rgba(0,0,0,.5) 100%)}.wdcm .wdcm__in{position:relative;z-index:1;padding:34px 20px;text-align:center;width:100%}.wdcm .wdcm__in p{font-family:Geist,sans-serif;font-weight:300;font-size:20.2px;line-height:28px;color:#fff;margin:0 0 36px}.wdcm a.wdcm__btn{display:inline-flex;align-items:center;gap:12px;background:#fff;color:#141517;border-radius:999px;padding:0 52px;height:46px;font-family:Geist,sans-serif;font-weight:600;font-size:14px;letter-spacing:1.12px;text-transform:uppercase;text-decoration:none}.fclose{background:#1C1C1F;border-radius:24px;overflow:hidden;height:700px}.fclose .fclose__in{display:flex;height:100%;position:relative}.fclose .fclose__text{flex:0 0 754px;padding:102px 0 0 112px;display:flex;flex-direction:column;position:relative;z-index:1}.fclose .fclose__text p{font-family:Geist,sans-serif;font-weight:300;font-size:31.54px;line-height:45px;letter-spacing:0.37px;color:#fff;margin:0;max-width:658px}.fclose a.fclose__btn{margin-top:auto;margin-bottom:116px;align-self:flex-start;display:inline-flex;align-items:center;gap:12px;background:#fff;color:#141517;border-radius:999px;padding:0 21px;height:48px;font-family:Geist,sans-serif;font-weight:600;font-size:14px;letter-spacing:1.12px;text-transform:uppercase;text-decoration:none}.fclose .fclose__img{position:absolute;right:0;top:0;bottom:0;width:900px;height:100%;object-fit:cover;z-index:0;-webkit-mask-image:linear-gradient(90deg,rgba(0,0,0,0) 22%,rgba(0,0,0,1) 61%);mask-image:linear-gradient(90deg,rgba(0,0,0,0) 22%,rgba(0,0,0,1) 61%)}@media(max-width:1439px){.fclose{height:auto}.fclose .fclose__in{flex-direction:column}.fclose .fclose__text{flex:1 1 auto;padding:56px 40px}.fclose .fclose__text p{font-size:26px;line-height:36px;max-width:none}.fclose a.fclose__btn{margin:40px 0 0}.fclose .fclose__img{position:relative;width:100%;height:320px;-webkit-mask-image:none;mask-image:none}}@media(max-width:767px){.fclose{border-radius:16px;min-height:451px;display:flex;flex-direction:column}.fclose .fclose__in{flex-direction:column;justify-content:flex-start;flex:1 1 auto;height:auto;min-height:0}.fclose .fclose__text{padding:44px 24px;text-align:center;align-items:center}.fclose .fclose__text p{font-size:20.2px;line-height:28px;letter-spacing:0}.fclose a.fclose__btn{margin:10px 0 0;padding:0 52px;height:46px;align-self:center}.fclose .fclose__img{position:absolute;inset:0;width:100%;height:100%;opacity:1;object-position:30% center;filter:brightness(1.31);-webkit-mask-image:linear-gradient(180deg,rgba(0,0,0,0) 73%,rgba(0,0,0,.12) 75%,rgba(0,0,0,.32) 80%,rgba(0,0,0,.53) 82%,rgba(0,0,0,.70) 84%,rgba(0,0,0,1) 87%,rgba(0,0,0,1) 100%);mask-image:linear-gradient(180deg,rgba(0,0,0,0) 73%,rgba(0,0,0,.12) 75%,rgba(0,0,0,.32) 80%,rgba(0,0,0,.53) 82%,rgba(0,0,0,.70) 84%,rgba(0,0,0,1) 87%,rgba(0,0,0,1) 100%)}}.facar .facar__vp{overflow-x:auto;overflow-y:hidden;scrollbar-width:none;-ms-overflow-style:none}.facar .facar__vp::-webkit-scrollbar{display:none}.facar .facar__tr{display:flex;gap:40.5px;width:max-content}.facar .fac{flex:0 0 533.5px;width:533.5px}.facar .fac__media{position:relative;width:100%;height:600px;border-radius:14px;overflow:hidden}.facar .fac__media img{width:100%;height:100%;object-fit:cover;display:block}.facar a.fac__btn{position:absolute;left:50%;bottom:55.5px;transform:translateX(-50%);display:inline-flex;align-items:center;gap:10px;height:47.5px;padding:0 26px;border-radius:999px;background:#fff;color:#141517;font-family:Geist,sans-serif;font-weight:600;font-size:14px;letter-spacing:1.12px;text-transform:uppercase;text-decoration:none;white-space:nowrap;opacity:0;transition:opacity .35s ease}.facar .fac:hover a.fac__btn,.facar .fac:focus-within a.fac__btn{opacity:1}.facar h3.fac__t{margin:34.1px 0 0;font-family:Geist,sans-serif;font-weight:400;font-size:30.84px;line-height:38px;letter-spacing:0.34px;color:#fff}.facar p.fac__d{margin:18.2px 0 0;font-family:Geist,sans-serif;font-weight:300;font-size:14.72px;line-height:26px;letter-spacing:1.03px;color:#C3C3C3;max-width:492px}.facar .fadots{display:none}@media(max-width:1439px){.facar .fac{flex:0 0 62vw;width:62vw}.facar .fac__media{height:auto;aspect-ratio:533.5/600}}@media(max-width:767px){.facar .facar__vp{scroll-snap-type:x mandatory}.facar .facar__tr{gap:12px;width:auto}.facar .fac{flex:0 0 calc(100% - 61px);width:calc(100% - 61px);flex-shrink:0;scroll-snap-align:start}.facar .fac__media{height:350px;border-radius:12px}.facar a.fac__btn{opacity:1;bottom:55.5px;top:auto;transform:translateX(-50%);height:45.5px;padding:0 24px;font-size:13px}.facar h3.fac__t{margin:24.5px 0 0;font-size:18.93px;line-height:26px;letter-spacing:0.4px;text-align:center}.facar p.fac__d{margin:11.5px auto 0;font-size:14.72px;line-height:26px;letter-spacing:0.3px;max-width:312px;text-align:center}.facar .fadots{display:flex;gap:17.6px;justify-content:center;margin:4px 0 0;align-items:center}.facar .fadots i{width:8px;height:8px;border-radius:50%;background:#3A3A3A;transition:width .3s,background .3s;display:block}.facar .fadots i.on{width:26px;border-radius:99px;background:#fff}}.pfcar .pfcar__vp{overflow-x:auto;overflow-y:hidden;scrollbar-width:none;-ms-overflow-style:none}.pfcar .pfcar__vp::-webkit-scrollbar{display:none}.pfcar .pfcar__tr{display:flex;gap:40.5px;width:max-content}.pfcar .pfc{position:relative;flex:0 0 1329.5px;width:1329.5px;height:650px;border-radius:16px;overflow:hidden;background:#0B0B0B}.pfcar .pfc__media{position:absolute;inset:0}.pfcar .pfc__bg{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;display:block}.pfcar .pfc__media::after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,rgba(7,7,7,.63) 0%,rgba(7,7,7,.66) 20%,rgba(7,7,7,.70) 57%,rgba(7,7,7,.75) 75%,rgba(7,7,7,.80) 87%,rgba(7,7,7,.85) 100%)}.pfcar .pfc__logo{position:absolute;left:45px;top:45px;width:var(--lwd);height:auto;z-index:2}.pfcar .pfc__logo--txt{font-family:Geist,sans-serif;font-weight:600;font-size:26px;color:#fff;width:auto}.pfcar .pfc__meta{position:absolute;right:13.5px;top:26px;z-index:2;display:flex;gap:44px;background:rgba(7,7,7,.88);border-radius:10px;padding:25.5px 30px 26px}.pfcar .pfc__meta div{display:flex;flex-direction:column-reverse;gap:6px}.pfcar span.pfc__mv{font-family:Geist,sans-serif;font-weight:400;font-size:22px;line-height:1;color:#fff;white-space:nowrap}.pfcar span.pfc__ml{font-family:Geist,sans-serif;font-weight:300;font-size:13px;line-height:1;color:#9A9A9A;white-space:nowrap}.pfcar h3.pfc__t{position:absolute;left:57px;top:449px;margin:0;z-index:2;font-family:Geist,sans-serif;font-weight:400;font-size:47px;line-height:56px;letter-spacing:-1.76px;color:#fff}.pfcar p.pfc__d{position:absolute;left:57px;top:530px;width:895px;margin:0;z-index:2;font-family:Geist,sans-serif;font-weight:300;font-size:16.82px;line-height:28.5px;letter-spacing:1.05px;color:#D6D6D6}@media(max-width:1439px){.pfcar .pfc{flex:0 0 88vw;width:88vw;height:520px}.pfcar p.pfc__d{width:60%}.pfcar h3.pfc__t{top:auto;bottom:120px}.pfcar p.pfc__d{top:auto;bottom:46px}}@media(max-width:767px){.pfcar .pfcar__vp{overflow:visible}.pfcar .pfcar__tr{flex-direction:column;gap:61.5px;width:auto}.pfcar .pfc{flex:1 1 auto;width:100%;height:auto;border-radius:0;background:transparent;overflow:visible;display:flex;flex-direction:column}.pfcar .pfc__media{position:relative;inset:auto;width:100%;height:280px;border-radius:10px;overflow:hidden;order:1}.pfcar .pfc__media::after{content:none}.pfcar .pfc__logo{left:50%;top:50%;transform:translate(-50%,-50%);width:var(--lw)}.pfcar .pfc__logo--txt{font-size:20px}.pfcar h3.pfc__t{order:2;position:static;margin:22.5px 0 0;font-size:19.63px;line-height:26px;letter-spacing:-.5px}.pfcar p.pfc__d{order:3;position:static;width:auto;max-width:350px;margin:19.5px 0 0;font-size:13.53px;line-height:22px;letter-spacing:.2px;color:#C3C3C3}.pfcar .pfc__meta{order:4;position:static;background:none;border-radius:0;padding:0;gap:0;display:grid;grid-template-columns:91px 133px 1fr;margin:24.4px 0 0}.pfcar .pfc__meta div{flex-direction:column;gap:13.4px}.pfcar span.pfc__mv{font-size:13.32px;white-space:normal}.pfcar span.pfc__ml{font-size:11.22px;white-space:normal}}
/* tiles + stat row (converted from inline HTML widgets) */
.wwt-vp{width:100%;overflow-x:auto;overflow-y:hidden;-ms-overflow-style:none;scrollbar-width:none;cursor:grab}
.wwt-vp::-webkit-scrollbar{display:none}
.wwt-vp.is-dragging{cursor:grabbing}
.wwt-tr{display:flex;gap:16px;width:max-content}
.wwt{position:relative;flex:0 0 382px;width:382px;height:184px;border-radius:10px;overflow:hidden;background:rgba(64,66,77,.25);display:block;isolation:isolate}
.wwt__img{position:absolute;inset:0;background-size:cover;background-position:center;opacity:0;transition:opacity .5s ease;z-index:0}
.wwt__img::after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,rgba(7,7,7,.15) 0%,rgba(7,7,7,.55) 100%)}
@media(hover:hover) and (pointer:fine){.wwt:hover .wwt__img{opacity:1}}
.wwt.is-open .wwt__img{opacity:1}
.wwt__t{position:absolute;left:45px;bottom:33px;z-index:2;font-family:Geist,sans-serif;font-weight:400;font-size:24px;line-height:30px;color:#fff}
.wtm-vp{width:100%;overflow-x:auto;overflow-y:hidden;-ms-overflow-style:none;scrollbar-width:none;cursor:grab}
.wtm-vp::-webkit-scrollbar{display:none}
.wtm-vp.is-dragging{cursor:grabbing}
.wtm-tr{display:flex;gap:16px;width:max-content}
.wtm{position:relative;flex:0 0 175px;width:175px;height:159px;border-radius:10px;overflow:hidden;background:rgba(64,66,77,.25);display:block}
.wtm__img{position:absolute;inset:0;background-size:cover;background-position:center;z-index:0}
.wtm__img::after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,rgba(7,7,7,.10) 0%,rgba(7,7,7,.62) 100%)}
.wtm__t{position:absolute;left:20px;bottom:22px;z-index:2;font-family:Geist,sans-serif;font-weight:400;font-size:16px;line-height:22px;color:#fff}
.rrm-stat{display:flex;flex-direction:column;gap:16px;flex:1 1 0;min-width:0}
.rrm-stat__n{font-family:Geist,sans-serif;font-weight:400;font-size:28px;line-height:28px;color:#fff;display:block}
.rrm-stat__l{font-family:Geist,sans-serif;font-weight:300;font-size:14px;line-height:20px;color:#A8ADAF;display:block}
.rrm-stats{display:flex;gap:12px;width:100%}
.rrm-stats>.rrm-stat:nth-child(1){flex:0 0 150px}
.rrm-stats>.rrm-stat:nth-child(2){flex:0 0 126px}
.rrm-stats>.rrm-stat:nth-child(3){flex:0 0 auto}
.rrm-stats>.rrm-stat:nth-child(1) .rrm-stat__l{max-width:125px}
.rrm-stats>.rrm-stat:nth-child(2) .rrm-stat__l{max-width:108px}
.rrm-stats>.rrm-stat:nth-child(3) .rrm-stat__l{max-width:92px}
/* what-we-do columns (converted from inline HTML widgets) */
.wwdd .wc-grid{display:flex;gap:75px;align-items:flex-start}
.wwdd .wc{flex:0 0 var(--w)}
.wwdd .wc-i{display:block;margin:0 0 40px}
.wwdd .wc-t{font-family:Geist,sans-serif;font-weight:400;font-size:24px;line-height:31px;color:#fff;margin:0 0 16px}
.wwdd .wc-b{font-family:Geist,sans-serif;font-weight:300;font-size:18px;line-height:26px;color:#C3C3C3;margin:0}
@media(max-width:1024px){.wwdd .wc-grid{flex-wrap:wrap;gap:48px}.wwdd .wc{flex:0 0 calc(50% - 24px)}}
.wwdm .wc-grid{display:flex;flex-direction:row;flex-wrap:nowrap;gap:0;overflow-x:auto;scroll-snap-type:x mandatory;-ms-overflow-style:none;scrollbar-width:none}
.wwdm .wc-grid::-webkit-scrollbar{display:none}
.wwdm .wc{flex:0 0 100%;width:100%;scroll-snap-align:center;text-align:center;padding:0 4px}
.wwdm .wc-i{display:block;margin:0 auto 42px}
.wwdm .wc-t{font-family:Geist,sans-serif;font-weight:400;font-size:24px;line-height:30px;color:#fff;margin:0 0 10px}
.wwdm .wc-b{font-family:Geist,sans-serif;font-weight:300;font-size:14px;line-height:22px;color:#C3C3C3;margin:0}
.wwdm .wc-dots{display:flex;justify-content:center;align-items:center;gap:8px;margin-top:34px}
.wwdm .wc-dots i{width:8px;height:8px;border-radius:4px;background:rgba(255,255,255,.28);transition:all .3s;cursor:pointer}
.wwdm .wc-dots i.on{width:34px;background:#FEBA4F}
/* focus track (converted from inline HTML widget) */
.focus-vp{position:relative;width:100%;overflow-x:auto;overflow-y:hidden;-ms-overflow-style:none;scrollbar-width:none;cursor:grab;touch-action:pan-x pan-y}.focus-vp::-webkit-scrollbar{display:none}.focus-vp.is-dragging{cursor:grabbing}.focus-tr{display:flex;gap:40px;width:max-content}.fc{position:relative;flex:0 0 480px;width:480px;height:600px;border-radius:12px;overflow:hidden;background-size:cover;background-position:center;isolation:isolate}.fc__veil{position:absolute;inset:0;background:linear-gradient(180deg,rgba(0,36,66,.85) 0%,rgba(0,36,66,.85) 60%,rgba(6,12,18,.95) 100%);opacity:0;transition:opacity .45s ease}@media(hover:hover) and (pointer:fine){.fc:hover .fc__veil{opacity:1}}.fc h3.fc__t{position:absolute;left:41px;top:48px;width:247px;margin:0;font-family:Geist,sans-serif;font-weight:400;font-size:32px;line-height:42px;color:#fff;z-index:2}.fc__r{position:absolute;left:41px;top:384px;width:344px;z-index:2;opacity:0;transform:translateY(12px);transition:opacity .45s ease,transform .45s ease}@media(hover:hover) and (pointer:fine){.fc:hover .fc__r{opacity:1;transform:none}}.fc p.fc__b{margin:0;font-family:Geist,sans-serif;font-weight:300;font-size:16px;line-height:28px;color:#fff}.fc__m{display:inline-flex;align-items:center;gap:10px;margin-top:24px;font-family:Geist,sans-serif;font-weight:500;font-size:16px;line-height:1;letter-spacing:.08em;color:#FEBA4F;text-decoration:none}@media(max-width:767px){.focus-tr{gap:20px;padding:0 16px}.fc{flex:0 0 307px;width:307px;height:375px;border-radius:10px}.fc h3.fc__t{left:24px;top:28px;width:190px;font-size:22px;line-height:28px}.fc__r{left:24px;top:210px;width:252px}.fc p.fc__b{font-size:14px;line-height:22px}.fc__m{font-size:14px;margin-top:16px}}.fc.is-open .fc__veil{opacity:1}.fc.is-open .fc__r{opacity:1;transform:none}@media(max-width:767px){.fc{cursor:pointer}.fc__r{pointer-events:none}.fc.is-open .fc__r{pointer-events:auto}}

/* what-we-do rows (converted from inline HTML widgets) */
.wdd .wdd__row{position:relative;height:544px}.wdd .wdd__row::after{content:"";position:absolute;left:0;right:0;bottom:0;height:1px;background:#343434;pointer-events:none}.wdd .wdd__plain{position:absolute;left:678px;bottom:94.3px;width:760px;transition:opacity .4s ease}.wdd h2.wdd__h{font-family:Geist,sans-serif;font-weight:400;font-size:64px;line-height:70px;letter-spacing:-2.56px;color:#fff;margin:0 0 31.5px}.wdd p.wdd__b{font-family:Geist,sans-serif;font-weight:300;font-size:18px;line-height:28px;letter-spacing:.54px;color:#C3C3C3;margin:0 0 40.8px;max-width:var(--bw,600px)}.wdd a.wdd__l,.wdd a.wdd__cl{display:inline-flex;align-items:center;gap:12px;font-family:Geist,sans-serif;font-weight:600;font-size:14px;line-height:1;letter-spacing:1.12px;text-transform:uppercase;text-decoration:none}.wdd a.wdd__l{color:#fff}.wdd a.wdd__cl{color:#070707}.wdd .wdd__card{position:absolute;inset:0;background:#fff;border-radius:24px;display:flex;align-items:center;padding:41px 44px;gap:68.5px;opacity:0;visibility:hidden;transition:opacity .4s ease}.wdd .wdd__row:hover .wdd__card,.wdd .wdd__row.is-open .wdd__card{opacity:1;visibility:visible}.wdd .wdd__row:hover .wdd__plain,.wdd .wdd__row.is-open .wdd__plain{opacity:0}.wdd .wdd__media{position:relative;flex:0 0 835.5px;width:835.5px;height:461.5px;border:0;padding:0;border-radius:12px;overflow:hidden;cursor:pointer;background:#000;display:block}.wdd .wdd__media img{width:100%;height:100%;object-fit:cover;display:block}.wdd .wdd__play{position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);width:72px;height:72px;border-radius:50%;background:#FEBA4F;display:grid;place-items:center;padding-left:4px}.wdd .wdd__ctext{flex:1 1 auto;min-width:0}.wdd h3.wdd__ch{font-family:Geist,sans-serif;font-weight:400;font-size:64px;line-height:70px;letter-spacing:-2.56px;color:#070707;margin:0 0 24px}.wdd p.wdd__cb{font-family:Geist,sans-serif;font-weight:300;font-size:18px;line-height:28px;letter-spacing:.54px;color:#454545;margin:0 0 40px;max-width:490px}@media(max-width:1439px){.wdd .wdd__row::after{display:none}.wdd .wdd__row{height:auto;padding:0 40px}.wdd .wdd__row+.wdd__row{margin-top:96px}.wdd .wdd__plain{position:static;width:auto;max-width:760px;opacity:1!important}.wdd p.wdd__b{max-width:640px}.wdd .wdd__card{display:none}.wdd h2.wdd__h{font-size:48px;line-height:54px;letter-spacing:-1.92px}}
.wdm .wdm__row{padding:0 16px}.wdm .wdm__card ~ .wdm__row{position:relative}.wdm .wdm__card ~ .wdm__row::after{content:"";position:absolute;left:16px;right:16px;bottom:-37.5px;height:1px;background:#343434}.wdm h2.wdm__h{font-family:Geist,sans-serif;font-weight:400;font-size:34px;line-height:41.5px;letter-spacing:-1.36px;color:#fff;margin:0 0 16.6px}.wdm p.wdm__b,.wdm p.wdm__cb{font-family:Geist,sans-serif;font-weight:300;font-size:16.3px;line-height:26px;letter-spacing:.49px;margin:0 0 40.4px}.wdm p.wdm__b{color:#C3C3C3}.wdm p.wdm__cb{color:#454545}.wdm a.wdm__l,.wdm a.wdm__cl{display:inline-flex;align-items:center;gap:12px;font-family:Geist,sans-serif;font-weight:600;font-size:14px;line-height:1;letter-spacing:1.12px;text-transform:uppercase;text-decoration:none}.wdm a.wdm__l{color:#fff}.wdm a.wdm__cl{color:#070707}.wdm .wdm__row+.wdm__row{margin-top:71.5px}.wdm .wdm__card{background:#fff;padding:21px 16px 47px;margin:36.3px 0 33.4px}.wdm .wdm__media{position:relative;display:block;width:100%;height:280px;border:0;padding:0;border-radius:10px;overflow:hidden;background:#000;cursor:pointer}.wdm .wdm__media img{width:100%;height:100%;object-fit:cover;display:block}.wdm .wdm__play{position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);width:56px;height:56px;border-radius:50%;background:#FEBA4F;display:grid;place-items:center;padding-left:3px}.wdm h3.wdm__ch{font-family:Geist,sans-serif;font-weight:400;font-size:34px;line-height:41.5px;letter-spacing:-1.36px;color:#070707;margin:31.6px 0 21.2px}

/* carousel mouse-drag affordance */
@media(hover:hover) and (pointer:fine){.pfcar__vp,.facar__vp{cursor:grab}}
.pfcar__vp.is-dragging,.facar__vp.is-dragging{cursor:grabbing;scroll-behavior:auto}
.pfcar__vp.is-dragging *,.facar__vp.is-dragging *{user-select:none}
.pfcar__vp.is-dragging img,.facar__vp.is-dragging img{pointer-events:none}

/* laptop portfolio card: title and body were both absolutely positioned from
   the card bottom with fixed offsets that assumed a 2-line description. Below
   1440 the card narrows, the description wraps to 4 lines and grows upward
   into the title. Put them back in normal flow, bottom-aligned, so the stack
   can never collide at any width. */
@media(min-width:768px) and (max-width:1439px){
  .pfcar .pfc{height:auto;min-height:520px;display:flex;flex-direction:column;justify-content:flex-end;padding:0 57px 46px}
  .pfcar h3.pfc__t{position:static;left:auto;top:auto;bottom:auto;margin:0 0 18px;font-size:clamp(30px,3.2vw,47px);line-height:1.2}
  .pfcar p.pfc__d{position:static;left:auto;top:auto;bottom:auto;width:min(895px,67%);margin:0}
}
@media(min-width:768px) and (max-width:1100px){
  .pfcar .pfc{padding:0 40px 36px;min-height:460px}
  .pfcar p.pfc__d{width:min(895px,80%)}
  .pfcar .pfc__logo{left:40px;top:40px}
  .pfcar .pfc__meta{gap:28px;padding:20px 22px}
  .pfcar span.pfc__mv{font-size:19px}
}

/* breathing room when a footer deep-link lands on a section */
#who-we-are,#who-we-are-m,#who-we-work-with,#who-we-work-with-m,#our-approach,#our-approach-m,#our-philosophy,#our-philosophy-m{scroll-margin-top:40px}

/* mobile What-we-do rows now carry their own image, like desktop */
.wdm .wdm__row--media .wdm__media{margin:0 0 26px}
.wdm .wdm__row--media h2.wdm__h{margin-top:0}
.wdd .wdd__media--static,.wdm .wdm__media--static{cursor:default}
.wdd .wdd__media--static,.wdm .wdm__media--static{display:block;width:100%;position:relative;overflow:hidden}

/* section dividers no longer depend on the white card being present */
.wdm .wdm__row{position:relative}
.wdm .wdm__row:not(:last-child)::after{content:"";position:absolute;left:16px;right:16px;bottom:-37.5px;height:1px;background:#343434}
.wdm .wdm__card ~ .wdm__row::after{content:none}
.wdm .wdm__card ~ .wdm__row:not(:last-child)::after{content:""}

/* Mobile What-we-do: the section nearest the middle of the screen takes the
   white 'featured' treatment. Painted with a ::before layer rather than by
   changing padding, so switching sections cannot shift layout. */
@media(max-width:767px){
  .wdm .wdm__row{isolation:isolate}
  .wdm .wdm__row::before{content:"";position:absolute;left:0;right:0;top:-24px;bottom:-30px;background:#fff;opacity:0;transition:opacity .4s ease;z-index:0;pointer-events:none}
  .wdm .wdm__row.is-active::before{opacity:1}
  .wdm .wdm__row>*{position:relative;z-index:1}
  .wdm .wdm__row h2.wdm__h,.wdm .wdm__row p.wdm__b,.wdm .wdm__row a.wdm__l{transition:color .4s ease}
  .wdm .wdm__row.is-active h2.wdm__h{color:#070707}
  .wdm .wdm__row.is-active p.wdm__b{color:#454545}
  .wdm .wdm__row.is-active a.wdm__l{color:#070707}
  .wdm .wdm__row.is-active::after{opacity:0}
  .wdm .wdm__row::after{transition:opacity .4s ease}
}
@media(prefers-reduced-motion:reduce){
  .wdm .wdm__row::before,.wdm .wdm__row::after,.wdm .wdm__row h2.wdm__h,.wdm .wdm__row p.wdm__b,.wdm .wdm__row a.wdm__l{transition:none}
}

/* mid-width fluidity
   Laid out at the 1728 design width with fixed px widths and flex-shrink:0,
   with no breakpoint until 1024. Between 1025 and the design width the grid
   could not shrink, so it overflowed and clipped:
   4 cols = 1372px + 3x75 gap = 1597px minimum.
   Allow shrink and scale the gap. min-width:0 matters - flex items default
   to min-width:auto and refuse to shrink below their content width.
   Above the design width nothing changes: grow stays 0, clamp sits at max. */
@media(min-width:1025px){
  .wwdd .wc-grid{gap:clamp(30px,4.34vw,75px)}
  .wwdd .wc{flex:0 1 var(--w);min-width:0}
}

/* mid-width fix 2: same reason - the grid wrapper needs to shrink too */
@media(min-width:1025px){
  .wwdd,.wwdd .wc-grid{min-width:0}
  .wwdd .wc-b,.wwdd .wc-t{overflow-wrap:break-word}
}

/* mid-width gutters
   These sections cap their inner content at the design width and centre it,
   but carry no side padding - so the moment the viewport drops below that
   cap (1588-1600px on most), text sits flush against both screen edges.
   Scoped to 1025-1727px: at and above the 1728 design width nothing changes,
   and below 1025 each section already has its own tablet/mobile padding. */
@media(min-width:1025px) and (max-width:1727px){
  .elementor-28 .elementor-element.elementor-element-whatwedo,
  .elementor-46 .elementor-element.elementor-element-abheroin,
  .elementor-46 .elementor-element.elementor-element-abherostats,
  .elementor-46 .elementor-element.elementor-element-abwwwin,
  .elementor-46 .elementor-element.elementor-element-abapprin,
  .elementor-46 .elementor-element.elementor-element-abapprtxt,
  .elementor-46 .elementor-element.elementor-element-abphilin,
  .elementor-54 .elementor-element.elementor-element-wdheroin,
  .elementor-54 .elementor-element.elementor-element-wdrowsin,
  .elementor-54 .elementor-element.elementor-element-wdclosein,
  .elementor-74 .elementor-element.elementor-element-pfheroin,
  .elementor-74 .elementor-element.elementor-element-pfmapin,
  .elementor-74 .elementor-element.elementor-element-pflogosin,
  .elementor-74 .elementor-element.elementor-element-pfheadin,
  .elementor-74 .elementor-element.elementor-element-pfcardsin,
  .elementor-90 .elementor-element.elementor-element-faheroin,
  .elementor-90 .elementor-element.elementor-element-faclosein{--padding-left:clamp(24px,3.7vw,64px);--padding-right:clamp(24px,3.7vw,64px)}

  .elementor-28 .elementor-element.elementor-element-intro{--padding-left:clamp(24px,6.25vw,108px);--padding-right:clamp(24px,12.09vw,209px)}
  .elementor-28 .elementor-element.elementor-element-partner{--padding-left:clamp(24px,6.25vw,108px);--padding-right:clamp(24px,3.3vw,57px)}
  .elementor-28 .elementor-element.elementor-element-partners{--padding-left:clamp(24px,13.89vw,240px);--padding-right:clamp(24px,13.89vw,240px)}
  .elementor-28 .elementor-element.elementor-element-contact{--padding-left:clamp(24px,13.89vw,240px);--padding-right:clamp(24px,13.89vw,240px)}

  /* text blocks pinned to a fixed width in normal flow - let them shrink */
  .wdc .wdc__text,.fclose .fclose__text{flex:0 1 754px;min-width:0}
  .wdd .wdd__media{max-width:100%}
  .wdd .wdd__row,.wdc .wdc__in,.fclose{min-width:0}
}

/* mid-width margins - correction to the gutter pass above.
   Two elements are positioned by a large fixed LEFT MARGIN inside containers
   I just gave side padding to. Padding narrows the container while the margin
   stays put, so the text block loses exactly that much width and clips.
   Scale the margins by the same ratio as everything else (944/1728 = 54.63vw,
   678/1728 = 39.24vw) so the proportion of the row they occupy is preserved. */
@media(min-width:1025px) and (max-width:1727px){
  .elementor-46 .elementor-element.elementor-element-abphilr{margin-left:clamp(0px,54.63vw,944px)!important;min-width:0;max-width:100%}
  .elementor-46 .elementor-element.elementor-element-abherostats{margin-left:clamp(0px,39.24vw,678px)!important;min-width:0;max-width:100%}
}

/* contact row mid-width
   665 (text) + 890 (form) + 2x164 (padding) = 1883px before anything can give,
   and all three are flex:0 0 - so the form column clipped on any screen under
   1883. Scale the padding (164/1728 = 9.49vw) and let both columns shrink.
   Capped at 1882px so the design width and above are untouched. */
@media(min-width:1025px) and (max-width:1882px){
  .elementor-92 .elementor-element.elementor-element-ctrow{padding-left:clamp(24px,9.49vw,164px)!important;padding-right:clamp(24px,9.49vw,164px)!important;min-width:0}
  .elementor-92 .elementor-element.elementor-element-ctleft{flex:0 1 665px!important;min-width:0}
  .elementor-92 .elementor-element.elementor-element-ctright{flex:0 1 890px!important;min-width:0}
}

/* mid-width children
   Adding a gutter to a capped section only works if the children inside can
   give up the same width. Most are flex:0 0 <fixed>px, so the padding simply
   pushed them out of the box - abapprin caps at 1336 and holds 700 + 532 =
   1232, leaving ~104px of slack that the gutter consumed.
   Let every direct child of a gutter-ed section shrink. These are page-level
   sections, never the horizontal scrollers, which keep flex-shrink:0. */
@media(min-width:1025px) and (max-width:1727px){
  .elementor-28 .elementor-element.elementor-element-whatwedo > .elementor-element,
  .elementor-46 .elementor-element.elementor-element-abheroin > .elementor-element,
  .elementor-46 .elementor-element.elementor-element-abherostats > .elementor-element,
  .elementor-46 .elementor-element.elementor-element-abwwwin > .elementor-element,
  .elementor-46 .elementor-element.elementor-element-abapprin > .elementor-element,
  .elementor-46 .elementor-element.elementor-element-abapprtxt > .elementor-element,
  .elementor-46 .elementor-element.elementor-element-abphilin > .elementor-element,
  .elementor-54 .elementor-element.elementor-element-wdheroin > .elementor-element,
  .elementor-54 .elementor-element.elementor-element-wdrowsin > .elementor-element,
  .elementor-54 .elementor-element.elementor-element-wdclosein > .elementor-element,
  .elementor-74 .elementor-element.elementor-element-pfheroin > .elementor-element,
  .elementor-74 .elementor-element.elementor-element-pfmapin > .elementor-element,
  .elementor-74 .elementor-element.elementor-element-pflogosin > .elementor-element,
  .elementor-74 .elementor-element.elementor-element-pfheadin > .elementor-element,
  .elementor-74 .elementor-element.elementor-element-pfcardsin > .elementor-element,
  .elementor-90 .elementor-element.elementor-element-faheroin > .elementor-element,
  .elementor-90 .elementor-element.elementor-element-faclosein > .elementor-element{flex-shrink:1!important;min-width:0}

  /* the approach image is pinned to 532x700 with object-fit:cover - keep the
     crop ratio but let the box scale instead of overflowing */
  .elementor-46 .elementor-element.elementor-element-abapprimg{width:auto!important;max-width:532px}
  .elementor-46 .elementor-element.elementor-element-abapprimg img{width:100%!important;height:auto!important;aspect-ratio:532/700;object-fit:cover;max-width:532px}
  .elementor-46 .elementor-element.elementor-element-abapprtxt{width:auto!important}

  /* nothing in a gutter-ed section should be able to out-run its box */
  .elementor-46 .elementor-element-abapprin img,
  .elementor-28 .elementor-element-whatwedo img{max-width:100%}
}

/* approach row correction
   Letting BOTH columns shrink was wrong. The image is a fixed-size art
   element at 532x700 with a designed crop; shrinking it to 471x620 left it
   floating out of line with the heading. Text reflows for free, images do not.
   Hold the image at its design size and give the text column the remainder. */
@media(min-width:1025px) and (max-width:1727px){
  .elementor-46 .elementor-element.elementor-element-abapprimg{flex:0 0 532px!important;width:532px!important;max-width:532px!important;min-width:532px}
  .elementor-46 .elementor-element.elementor-element-abapprimg img{width:532px!important;height:700px!important;aspect-ratio:auto!important;object-fit:cover;max-width:none!important}
  .elementor-46 .elementor-element.elementor-element-abapprtxt{flex:1 1 auto!important;width:auto!important;min-width:0;max-width:700px}
}

/* remaining media rows - same shape as the About approach row.
   Rule applied throughout: the IMAGE holds its design size (a crop cannot
   reflow), the TEXT gives up the width. */
@media(min-width:1025px) and (max-width:1727px){

  /* Home / partner: 548x700 image + 651px text + 108/57 padding = 1364px
     minimum, both columns flex:0 0. */
  .elementor-28 .elementor-element.elementor-element-partnerimg{flex:0 0 548px!important;width:548px!important;max-width:548px!important;min-width:548px}
  .elementor-28 .elementor-element.elementor-element-partnerimg img{width:548px!important;height:700px!important;object-fit:cover;max-width:none!important}
  .elementor-28 .elementor-element.elementor-element-partnertxt{flex:1 1 auto!important;width:auto!important;min-width:0;max-width:651px}
  .elementor-28 .elementor-element.elementor-element-partnerb p{max-width:100%!important}

  /* What we do rows: .wdd__plain is absolutely positioned at left:678px with
     width:760px = 1438px, inside a section that caps at 1600 but is narrower
     than 1438 once the gutter applies. Scale both off the design width
     (678/1728 = 39.24vw, 760/1728 = 43.98vw). */
  .wdd .wdd__plain{left:clamp(320px,39.24vw,678px);width:clamp(360px,43.98vw,760px)}
}

/* portfolio card meta - mobile
   The three columns were hard-coded to 91px / 133px / 1fr with no gap, sized
   around the shortest content (Mining / United States). Longer values like
   Biotechnology and North America fill their track completely and run into
   the next one, and the third column pushes past the card edge.
   Three equal tracks with a real gutter: the columns line up whatever the
   content, and a long value wraps inside its own track instead of colliding.
   minmax(0,1fr) matters - a plain 1fr will not shrink below its content. */
@media(max-width:767px){
  .pfcar .pfc__meta{grid-template-columns:repeat(3,minmax(0,1fr));column-gap:14px;align-items:start}
  .pfcar .pfc__meta>div{min-width:0}
  .pfcar span.pfc__ml,.pfcar span.pfc__mv{white-space:normal;overflow-wrap:break-word;display:block}
}

/* portfolio card overlay - lifted
   The scrim ran .63 -> .85 top to bottom, which held the photo back more than
   it needed to. Eased off most at the top, where there is no text and the
   image does the work, and least at the bottom, where the 47px title and the
   #D6D6D6 body sit and still need the contrast.
     0%  .63 -> .32      75%  .75 -> .52
    20%  .66 -> .36      87%  .80 -> .60
    57%  .70 -> .44     100%  .85 -> .68
   The meta chip keeps its own .88 panel, so it is unaffected. Mobile already
   drops this overlay entirely (content:none), so this is desktop/tablet. */
.pfcar .pfc__media::after{background:linear-gradient(180deg,rgba(7,7,7,.32) 0%,rgba(7,7,7,.36) 20%,rgba(7,7,7,.44) 57%,rgba(7,7,7,.52) 75%,rgba(7,7,7,.60) 87%,rgba(7,7,7,.68) 100%)}

/* draganfly logo scrim
   The chosen photo has bright sky in the top-left, leaving the white wordmark
   at 3.6:1 - just over the 3:1 floor, where its peers sit near 20:1. A soft
   corner gradient lifts it to ~13:1 without touching the rest of the frame.
   Scoped with :has() to whichever card carries the Draganfly logo. */
.pfcar .pfc:has(.pfc__logo[src*="draganfly"]) .pfc__media::before{content:"";position:absolute;inset:0;z-index:1;pointer-events:none;background:radial-gradient(34% 46% at 0% 0%,rgba(7,7,7,.85) 0%,rgba(7,7,7,.62) 50%,rgba(7,7,7,.25) 80%,rgba(7,7,7,0) 100%)}
@media(max-width:767px){.pfcar .pfc:has(.pfc__logo[src*="draganfly"]) .pfc__media::before{content:none}}


/* draganfly mobile
   The mobile box is 1.32:1 against a 2.19:1 image, so 60.2% of the width is
   visible - the ships (0-20%) and the aircraft (45-90%) span 90% and cannot
   both fit. Anchored left so the ships are whole; the aircraft's tail is cut.
   Canvas extension was tried and abandoned: the source already fades to black
   at its bottom edge, so there is no sea left to extend and every attempt
   produced a visible band. */
@media(max-width:767px){
  .pfcar .pfc__bg[src*="draganfly-hero"]{object-position:0% center}
}

/* card image framing - driven by the per-card widget controls, so fit and
   position can be adjusted in Elementor without touching CSS. Falls back to
   cover/center, which is what every card used before. */
.pfcar .pfc__bg{object-fit:var(--fit,cover);object-position:var(--pos,center)}
.facar .fac__media img{object-fit:var(--fit,cover);object-position:var(--pos,center)}
@media(max-width:767px){
  .pfcar .pfc__bg{object-fit:var(--fitm,var(--fit,cover));object-position:var(--posm,var(--pos,center))}
  .facar .fac__media img{object-fit:var(--fitm,var(--fit,cover));object-position:var(--posm,var(--pos,center))}
  /* contain needs a backdrop so the letterbox reads as intentional */
  .pfcar .pfc__media{background:#0B0B0B}
}


/* mobile image shape - the media box was pinned to 280px tall (about 37/28),
   which forces a wide photo to crop or letterbox. Driven by a per-card
   control now, so a card can take the wide desktop shape on mobile instead.
   Default reproduces the original 280px height at a 370px card. */
@media(max-width:767px){
  .pfcar .pfc__media{height:auto;aspect-ratio:var(--ratiom,37/28)}
}
