/* Dynamo v2 design layer - makes stock Elementor match the v1 design */
:root{--navy:#003152;--deep:#071f38;--blue:#1F7AFF;--ink:#2E343B;--slate:#2E343B;--line:#e7eaee;--soft:#f6f8fa;}
body,.elementor-widget-text-editor,.elementor-button,.elementor-icon-box-description,.wpcf7-form,input,textarea,select{font-family:'Inter',system-ui,-apple-system,'Segoe UI',Roboto,sans-serif!important}
h1,h2,h3,h4,h5,h6,.elementor-heading-title,.elementor-icon-box-title{font-family:'Sora',system-ui,-apple-system,'Segoe UI',Roboto,sans-serif!important;letter-spacing:-.015em}

/* ===================== HEADER ===================== */
#dvheader{position:fixed!important;top:0;left:0;right:0;width:100%;z-index:2147483647!important;isolation:isolate;pointer-events:auto;
  padding-top:18px!important;padding-bottom:18px!important;
  padding-left:clamp(20px,calc((100vw - 1240px)/2),420px)!important;
  padding-right:clamp(20px,calc((100vw - 1240px)/2),420px)!important;
  transition:background .3s ease,box-shadow .3s ease,padding .3s ease}
#dvheader.dv-solid{background:#fff;box-shadow:0 6px 20px rgba(0,49,82,.08);padding-top:11px!important;padding-bottom:11px!important}
#dvheader.dv-solid #dvnav a{color:var(--ink)!important}
#dvheader.dv-solid #dvlogo .elementor-heading-title,#dvheader.dv-solid #dvlogo .elementor-widget-container,#dvheader.dv-solid #dvlogo p{color:var(--navy)!important}
#dvheader.dv-solid #dvlogo::before{background-image:url(logo-navy.svg?v=3)}
/* HOME: solid white header bar above hero (Figma) */
.home #dvheader{background:#fff!important;box-shadow:0 4px 18px rgba(0,49,82,.07)}
.home #dvheader #dvnav a{color:var(--ink)!important}
.home #dvheader #dvlogo .elementor-heading-title,.home #dvheader #dvlogo .elementor-widget-container,.home #dvheader #dvlogo p{color:var(--navy)!important}
.home #dvheader #dvlogo::before{background-image:url(logo-navy.svg?v=3)!important}
.home #dvheader .elementor-button{background-color:#003152!important;color:#fff!important}

/* logo mark */
#dvlogo{position:relative!important;padding-left:60px!important;justify-content:center!important;min-height:50px}
#dvlogo::before{content:"";position:absolute;left:0;top:50%;transform:translateY(-50%);width:50px;height:50px;background:url(logo-white.svg?v=3) no-repeat center/contain}

/* nav underline hover */
#dvnav a{position:relative;padding-bottom:5px}
#dvnav a::after{content:"";position:absolute;left:0;right:100%;bottom:0;height:2px;background:var(--blue);transition:right .25s ease}
#dvnav a:hover::after{right:0}

/* ===================== HERO (centered, full-bleed photo) ===================== */
#dvhero,#dvchero{display:flex!important;flex-direction:column!important;justify-content:center!important;position:relative;background:linear-gradient(rgba(8,26,48,.5),rgba(8,26,48,.55)),url(../../uploads/figma-talent.jpg) center center/cover no-repeat!important}
#dvhero{min-height:90vh!important}
#dvchero{min-height:78vh!important}
#dvhero .elementor-background-overlay,#dvchero .elementor-background-overlay{opacity:0!important}
#dvhero .e-con-inner,#dvchero .e-con-inner{width:100%;position:relative;z-index:2}
#dvhero > .elementor-element,#dvchero > .elementor-element{position:relative;z-index:2}
/* reliable button colors (widget setting is unreliable in this build) */
.btnw .elementor-button{background-color:#fff!important;color:#003152!important}
.btnw .elementor-button .elementor-button-text{color:#003152!important}
.btnb .elementor-button{background-color:#1F7AFF!important;color:#fff!important}
.btng .elementor-button{background-color:transparent!important;color:#fff!important;border:2px solid rgba(255,255,255,.65)!important}
.dv-accent{color:var(--blue)}

/* ===================== SERVICE ACCORDION ===================== */
#dvacc{width:100%}
#dvacc .elementor-accordion{border:0}
#dvacc .elementor-accordion-item{border:0!important;border-bottom:1px solid var(--line)!important;background:transparent}
#dvacc .elementor-tab-title{border:0!important;background:transparent!important;padding:22px 6px!important;margin:0;cursor:pointer;transition:color .2s;display:flex!important;align-items:center;justify-content:flex-start;gap:12px}
#dvacc .elementor-tab-title,#dvacc .elementor-tab-title .elementor-accordion-title,#dvacc .elementor-tab-title.elementor-active,#dvacc .elementor-tab-title.elementor-active .elementor-accordion-title{font-family:'Sora',sans-serif!important;font-weight:700!important;font-size:19px!important;color:#2E343B!important}
#dvacc .elementor-tab-title .elementor-accordion-title{order:1;flex:1 1 auto;text-align:left}
#dvacc .elementor-tab-title .elementor-accordion-icon{order:2;flex:0 0 auto;color:inherit;margin:0!important;width:auto;float:none!important;text-align:right}
#dvacc .elementor-tab-content{border:0!important;background:transparent!important;padding:0 6px 26px!important;color:var(--slate);font-family:'Inter',sans-serif;font-size:16px;line-height:1.7}
.acc2{display:flex;gap:44px;flex-wrap:wrap;align-items:flex-start;padding:4px 0 8px}
.acc2 .accdesc{flex:1 1 320px;color:var(--slate);font-size:15px;line-height:1.7}
.accchips{flex:1 1 300px;display:flex;flex-direction:column;gap:12px}
.svcfix{display:flex;flex-direction:column;gap:20px}
.svc-chip{display:flex;align-items:center;gap:12px;background:#ffffff;border-radius:12px;padding:22px 24px;color:var(--ink);font-weight:700;font-size:15px;box-shadow:0 10px 30px rgba(0,49,82,.08);border:1px solid rgba(0,49,82,.04)}
.svc-chip::before{content:"\2713";color:#2E343B;font-weight:800;font-size:16px;flex:0 0 auto}
#dvsvcrow{width:100%}
@media(min-width:821px){#dvsvcrow{display:flex!important;flex-direction:row!important;flex-wrap:nowrap!important;gap:56px;align-items:center}#dvsvcrow > #dvacc{flex:1 1 54%!important;width:auto!important;max-width:54%}#dvsvcrow > #dvsvcchips{flex:1 1 46%!important;width:auto!important;max-width:46%}}

/* ===================== CTA BANDS ===================== */
#dvcta1{background:linear-gradient(rgba(0,49,82,.72),rgba(0,49,82,.72)),url(../../uploads/figma-talent.jpg) center/cover no-repeat!important}
#dvcta2{background:#ffffff!important}

/* ===================== HOME (card-rich) ===================== */
#dvhhero{position:relative;display:flex!important;flex-direction:column!important;justify-content:center!important;min-height:100vh!important;background:url(../../uploads/figma-hero.jpg) center center/cover no-repeat!important}
#dvhhero::before{content:"";position:absolute;top:0;bottom:0;left:0;width:66%;background:rgba(0,49,82,.4);-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);clip-path:polygon(0 0,100% 0,80% 100%,0 100%);z-index:1;opacity:1}
#dvhhero .elementor-background-overlay{opacity:0!important}
#dvhhero .e-con-inner{position:relative;z-index:2;width:100%}
#dvhhero > .elementor-element{position:relative;z-index:2}
/* hero eyebrow white (Figma) */
#dvhhero .elementor-element-c0c73d7,#dvhhero .elementor-element-c0c73d7 .elementor-widget-container,#dvhhero .elementor-element-c0c73d7 p{color:#ffffff!important}
/* logos strip: placeholder LOGO text bold near-black (Figma) */
#dvlogos h6,#dvlogos .elementor-heading-title{color:#1a1a1a!important;font-size:18px!important}
#dvsol .elementor-icon-box-icon .elementor-icon,#dvind .elementor-icon-box-icon .elementor-icon{background:rgba(255,255,255,.14)!important}
#dvsol .elementor-icon-box-icon .elementor-icon svg,#dvind .elementor-icon-box-icon .elementor-icon svg{fill:#fff!important}
#dvtabs .elementor-tabs-wrapper{border:0!important;justify-content:center;margin-bottom:6px}
@media(min-width:821px){#dvtabs .elementor-tabs-wrapper{display:flex;gap:80px}}
#dvtabs .elementor-tab-title{border:0!important;background:#f6f8fa;border-radius:999px;padding:12px 24px!important;font-family:'Inter',sans-serif;font-weight:600;color:var(--slate);margin:0 6px}
#dvtabs .elementor-tab-title.elementor-active{background:var(--blue);color:#fff}
#dvtabs .elementor-tab-content{border:0!important;padding:26px 4px!important;font-family:'Inter',sans-serif;color:var(--slate);font-size:16px;line-height:1.7}
#dvtabs .elementor-tab-content ul{padding-left:20px;margin:10px 0 0}
#dvtabs .elementor-tab-content li{margin:7px 0}

/* ===================== CARD ICON BOXES (global for all card sections) ===================== */
.elementor-widget-icon-box .elementor-icon-box-icon{text-align:left;margin-bottom:18px}
.elementor-widget-icon-box .elementor-icon-box-icon .elementor-icon{width:54px;height:54px;display:inline-flex;align-items:center;justify-content:center;background:#e7efff;border-radius:13px;color:var(--blue)}
.elementor-widget-icon-box .elementor-icon-box-icon .elementor-icon svg{fill:var(--blue);width:24px;height:24px}
.elementor-widget-icon-box .elementor-icon-box-icon .elementor-icon i{color:var(--blue);font-size:22px}
/* process steps (bullets + blue arrows) */
#dvprocess .proc-row{display:flex;flex-wrap:nowrap;gap:0;justify-content:space-between;align-items:center;width:100%}
#dvprocess .proc-label{font-family:'Sora',sans-serif;font-weight:700;color:var(--ink);font-size:19px;white-space:nowrap;flex:0 0 auto;position:relative;padding-left:18px}
#dvprocess .proc-label::before{content:'';position:absolute;left:0;top:50%;transform:translateY(-50%);width:7px;height:7px;background:var(--ink)}
#dvprocess .proc-arrow{flex:1 1 auto;height:2px;background:var(--blue);position:relative;margin:0 18px;min-width:40px}
#dvprocess .proc-arrow::after{content:'';position:absolute;right:-1px;top:50%;width:9px;height:9px;border-top:2px solid var(--blue);border-right:2px solid var(--blue);transform:translate(0,-50%) rotate(45deg)}
#dvprocess .proc-row.proc-left .proc-arrow{max-width:90px}
@media(max-width:820px){#dvprocess .proc-row{flex-wrap:wrap;justify-content:center;gap:14px 8px}#dvprocess .proc-arrow{flex:0 0 32px;min-width:32px;margin:0 8px}}

/* ===== Solutions/Industries cells grid ===== */
#dvsol{background:linear-gradient(180deg,#1F7AFF 0%,#043b6a 100%)!important}
#dvind{background:linear-gradient(180deg,#043b6a 0%,#003152 100%)!important}
#dvindg{border:1px solid rgba(255,255,255,.3);border-radius:4px;padding:0!important;overflow:hidden}
#dvindg > .e-con,#dvindg > .e-con-inner > .e-con{border-right:1px solid rgba(255,255,255,.18)}
#dvindg > .e-con:last-child,#dvindg > .e-con-inner > .e-con:last-child{border-right:0}
/* Solutions = 3-col text grid with subtle internal dividers (Figma). Vertical lines drawn as full-height background so they extend through the empty row-3 cells; horizontal lines are cell borders. No outer box. */
#dvsolg{column-gap:0!important;row-gap:0!important;
  background:linear-gradient(to right,transparent calc(33.333% - .5px),rgba(255,255,255,.16) calc(33.333% - .5px),rgba(255,255,255,.16) calc(33.333% + .5px),transparent calc(33.333% + .5px),transparent calc(66.666% - .5px),rgba(255,255,255,.16) calc(66.666% - .5px),rgba(255,255,255,.16) calc(66.666% + .5px),transparent calc(66.666% + .5px))!important}
#dvsolg > .elementor-element{width:33.333%!important;flex:0 0 33.333%!important;padding:26px 44px!important;border-bottom:1px solid rgba(255,255,255,.16)!important;background:transparent!important}
#dvsolg > .elementor-element:nth-child(3n+1){padding-left:0!important}
#dvsolg > .elementor-element:nth-child(3n){padding-right:0!important}
#dvsolg > .elementor-element:nth-child(n+7){border-bottom:0!important}
@media(max-width:820px){#dvsolg{background:none!important}#dvsolg > .elementor-element{width:100%!important;flex:0 0 100%!important;padding:20px 0!important;border-bottom:1px solid rgba(255,255,255,.16)!important}}
#dvsol .cellicon,#dvind .cellicon{margin-bottom:6px}
#dvsol .cellicon svg,#dvind .cellicon svg{fill:#fff;width:24px;height:24px}
#dvsol .cellicon i,#dvind .cellicon i{color:#fff}

/* ===== Experience 2x2 + photo ===== */
.exp-img{position:relative;min-height:620px;height:auto;border-radius:0;background:none;box-shadow:none}

/* ===== Our Team tabs: underline style + photo ===== */
#dvtabs .elementor-tabs-wrapper{border:0!important;justify-content:center;gap:36px;margin-bottom:0;border-bottom:1px solid var(--line)}
#dvtabs .elementor-tab-title{border:0!important;background:transparent!important;border-radius:0;padding:14px 2px!important;font-family:'Sora',sans-serif;font-weight:700;font-size:18px;color:var(--slate);margin:0;border-bottom:2px solid transparent!important}
#dvtabs .elementor-tab-title.elementor-active{color:var(--blue);border-bottom:2px solid var(--blue)!important}
#dvtabs .elementor-tab-content{border:0!important;padding:30px 0 0!important}
#dvtabs .tabgrid{display:flex;gap:44px;flex-wrap:wrap;align-items:flex-start}
#dvtabs .tabtext{flex:1 1 340px;font-family:'Inter',sans-serif;color:var(--slate);font-size:16px;line-height:1.7;display:flex;flex-direction:column}
#dvtabs .tabtext > p{order:2;margin:0 0 6px;color:var(--slate)}
#dvtabs .tabtext ul{display:contents;list-style:none;padding:0;margin:0}
#dvtabs .tabtext li{order:3;list-style:none;font-family:'Sora',sans-serif;font-weight:700;color:var(--ink);font-size:19px;padding:18px 0;border-top:1px solid var(--line)}
#dvtabs .tabtext li:first-child{order:1;font-size:23px;padding:0 0 8px;border-top:0}
#dvtabs .tabimg{flex:1 1 360px;min-height:380px;border-radius:14px;background:url(../../uploads/figma-team.jpg) center/cover no-repeat;box-shadow:0 18px 50px rgba(0,49,82,.16)}

/* ===== Strategic Talent photo band ===== */
#dvtalent{background:linear-gradient(rgba(0,49,82,.40),rgba(0,49,82,.40)),url(../../uploads/figma-talent.jpg) center/cover no-repeat!important;position:relative}
/* Figma: no eyebrow above the heading */
#dvtalent .e-con-inner > .elementor-widget-text-editor:first-child{display:none!important}
/* Figma: blue button with an up-right arrow icon */
#dvtalent .elementor-button{display:inline-flex!important;align-items:center;gap:12px}
#dvtalent .elementor-button::after{content:'';width:18px;height:18px;flex:0 0 auto;background:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23ffffff' stroke-width='2.2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cline x1='7' y1='17' x2='17' y2='7'/%3E%3Cpolyline points='8 7 17 7 17 16'/%3E%3C/svg%3E") center/contain no-repeat}

/* navy button (light CTA) */
.btnn .elementor-button{background-color:#003152!important;color:#fff!important}

/* footer refinements */
#dvflogo{position:relative;padding-left:56px;min-height:48px;display:flex!important;flex-direction:column!important;justify-content:center!important}
#dvflogo::before{content:"";position:absolute;left:0;top:50%;transform:translateY(-50%);width:46px;height:46px;background:url(logo-white.svg?v=3) no-repeat center/contain}
#dvfnav{gap:30px!important}
#dvfnav p{margin:0}
#dvfnav a:hover{color:#fff!important}

/* hero stat dividers (Figma) */
#dvhstats{gap:0!important;align-items:stretch!important}
#dvhstats > .elementor-element{width:auto!important;padding:2px 34px!important;justify-content:center!important}
#dvhstats > .elementor-element:first-child{padding-left:0!important}
#dvhstats > .elementor-element + .elementor-element{border-left:1px solid rgba(255,255,255,.32)}
@media(max-width:600px){#dvhstats > .elementor-element{padding:2px 20px!important}#dvhstats > .elementor-element:first-child{padding-left:0!important}}
/* stat-band dividers (Services blue / Industries+Experience light) */
#dvstatd,#dvstatl{gap:0!important;align-items:stretch!important}
#dvstatd > .elementor-element,#dvstatl > .elementor-element{width:auto!important;padding:2px 30px!important;justify-content:center!important}
#dvstatd > .elementor-element:first-child,#dvstatl > .elementor-element:first-child{padding-left:0!important}
#dvstatd > .elementor-element + .elementor-element{border-left:1px solid rgba(255,255,255,.32)}
#dvstatl > .elementor-element + .elementor-element{border-left:1px solid rgba(46,52,59,.16)}
@media(max-width:600px){#dvstatd > .elementor-element,#dvstatl > .elementor-element{padding:2px 16px!important}#dvstatd > .elementor-element:first-child,#dvstatl > .elementor-element:first-child{padding-left:0!important}}
/* stat band 2-col: heading+desc LEFT, 4 stats single-row RIGHT (Figma) */
@media(min-width:821px){
.e-con-inner:has(> #dvstatd),.e-con-inner:has(> #dvstatl){display:grid!important;grid-template-columns:1fr 1.05fr;grid-template-areas:"head stats" "desc stats";align-items:start;column-gap:40px;row-gap:10px}
.e-con-inner:has(> #dvstatd) > :nth-child(1),.e-con-inner:has(> #dvstatl) > :nth-child(1){grid-area:head}
.e-con-inner:has(> #dvstatd) > :nth-child(2),.e-con-inner:has(> #dvstatl) > :nth-child(2){grid-area:desc}
#dvstatd,#dvstatl{grid-area:stats!important;align-self:start;flex-wrap:nowrap!important}
#dvstatd > .elementor-element,#dvstatl > .elementor-element{min-width:0!important;flex:1 1 0!important}
}
/* contact info 2x2 grid (navy accent bars) */
.cinfo-grid{display:grid;grid-template-columns:1fr 1fr;gap:34px 64px;max-width:900px;margin-top:16px}
.cinfo-item{border-left:2px solid #003152;padding-left:20px}
.cinfo-item h4{font-family:'Sora',sans-serif;font-size:22px;font-weight:700;color:#2E343B;margin:0 0 8px}
.cinfo-item p{font-family:'Inter',sans-serif;font-size:16px;color:#2E343B;margin:0;line-height:1.55}
@media(max-width:640px){.cinfo-grid{grid-template-columns:1fr;gap:24px}}
/* FAQ accordion */
#dvfaqacc .elementor-accordion .elementor-accordion-item{border:0!important;border-bottom:1px solid var(--line)!important;background:transparent!important}
#dvfaqacc .elementor-tab-title{border:0!important;background:transparent!important;padding:22px 4px!important;margin:0;font-family:'Sora',sans-serif;font-weight:700;font-size:19px;color:var(--ink);cursor:pointer;display:flex!important;align-items:center;justify-content:space-between;text-align:left}
#dvfaqacc .elementor-tab-title .elementor-accordion-icon{order:2;margin:0 0 0 16px!important;color:var(--ink);flex:0 0 auto}
#dvfaqacc .elementor-tab-title.elementor-active{color:var(--blue)}
#dvfaqacc .elementor-tab-title.elementor-active .elementor-accordion-icon{color:var(--blue)}
#dvfaqacc .elementor-tab-content{border:0!important;background:transparent!important;padding:0 4px 22px!important}
#dvfaqacc .faqans{margin:0;font-family:'Inter',sans-serif;color:var(--slate);font-size:17px;line-height:1.6}
/* contact form - underline style */
#dvform .wpcf7-form .cf7-row{display:grid;grid-template-columns:1fr 1fr;gap:26px 44px}
#dvform .wpcf7-form label{display:flex;flex-direction:column;font-family:'Inter',sans-serif;font-size:14px;font-weight:700;color:var(--ink);gap:9px;margin-bottom:22px}
#dvform .wpcf7-form input,#dvform .wpcf7-form select,#dvform .wpcf7-form textarea{border:0!important;border-bottom:1px solid #A8B0B9!important;border-radius:0!important;background:transparent!important;padding:8px 2px!important;font-family:'Inter',sans-serif;font-size:16px;color:var(--ink);width:100%}
#dvform .wpcf7-form textarea{min-height:64px}
#dvform .wpcf7-form input:focus,#dvform .wpcf7-form select:focus,#dvform .wpcf7-form textarea:focus{outline:0;border-bottom-color:var(--blue)!important}
#dvform .wpcf7-form .wpcf7-submit{background:var(--blue)!important;color:#fff!important;border:0!important;border-radius:9px!important;padding:14px 30px!important;font-weight:600;font-size:15px;width:auto!important;margin-top:16px;cursor:pointer;transition:.2s}
#dvform .wpcf7-form .wpcf7-submit:hover{background:#003152!important}
@media(max-width:640px){#dvform .wpcf7-form .cf7-row{grid-template-columns:1fr;gap:0}}
/* split sections */
.dvsplit-img{border-radius:16px;min-height:340px;height:100%;background-image:linear-gradient(rgba(8,26,48,.12),rgba(8,26,48,.12)),url(../../uploads/figma-talent.jpg)!important;background-size:cover!important;background-position:center!important;box-shadow:0 18px 50px rgba(0,49,82,.16)}
.dvsupimg{border-radius:16px;min-height:360px;height:100%;background:url(../../uploads/figma-contact.jpg?v=2149) center/cover no-repeat;box-shadow:0 20px 55px rgba(0,49,82,.20)}
.dvcheck{list-style:none;margin:24px auto 0;padding:0;max-width:760px;display:grid;grid-template-columns:1fr 1fr;gap:16px 44px}
.dvcheck li{position:relative;padding-left:30px;color:#2E343B;font-size:17px;line-height:1.5;text-align:left}
.dvcheck li::before{content:"\2713";position:absolute;left:0;top:1px;color:#1F7AFF;font-weight:700}
@media(max-width:700px){.dvcheck{grid-template-columns:1fr;gap:12px}}

/* ===================== BUTTONS ===================== */
.elementor-button{transition:transform .2s ease,background-color .2s ease,box-shadow .2s ease!important;border-radius:10px!important}
.elementor-button:hover{transform:translateY(-2px)}

/* ===================== CARDS ===================== */
.dv-card{transition:transform .25s ease,box-shadow .25s ease}
.dv-card:hover{transform:translateY(-5px);box-shadow:0 18px 50px rgba(0,49,82,.14)}

/* ===================== FOOTER ===================== */
#dvfooter{background:#003152!important}
#dvfooter .e-con-inner:has(> #dvfnav){gap:28px!important}
#dvfooter .e-con-inner > .elementor-widget-text-editor:nth-child(2) p{color:rgba(255,255,255,.9)!important}
#dvfnav a{color:#ffffff!important}
#dvfooter .elementor-icon-list-text{color:rgba(255,255,255,.7)}
#dvfooter a{color:rgba(255,255,255,.7);text-decoration:none;transition:color .2s}
#dvfooter a:hover{color:#fff}

/* ===================== CONTACT FORM 7 ===================== */
.wpcf7-form{display:grid;gap:16px}
.wpcf7-form .cf7-row{display:grid;grid-template-columns:1fr 1fr;gap:16px}
.wpcf7-form label{display:flex;flex-direction:column;font-size:13px;font-weight:600;color:var(--ink);gap:8px}
.wpcf7-form input,.wpcf7-form textarea,.wpcf7-form select{font-family:'Inter',sans-serif;font-size:15px;padding:13px 15px;border:1px solid var(--line);border-radius:10px;background:#fbfcfe;color:var(--ink);width:100%}
.wpcf7-form input:focus,.wpcf7-form textarea:focus,.wpcf7-form select:focus{outline:none;border-color:var(--blue);box-shadow:0 0 0 3px rgba(47,107,255,.15)}
.wpcf7-form .wpcf7-submit{background:var(--blue);color:#fff;border:0;border-radius:10px;padding:15px 32px;font-weight:600;font-size:15px;cursor:pointer;justify-self:start;width:auto!important;transition:.2s}
.wpcf7-form .wpcf7-spinner{margin:14px auto 0 0}
.wpcf7 .wpcf7-response-output{margin:16px 0 0!important;border-radius:8px;font-size:14px}
/* contact-info icons: light-blue rounded box, blue glyph (matches v1) */
#dvcontact .elementor-icon-box-icon{margin-right:15px}
#dvcontact .elementor-icon-box-icon .elementor-icon{width:46px;height:46px;display:flex;align-items:center;justify-content:center;background:#e7efff;border-radius:11px;color:var(--blue);font-size:18px}
#dvcontact .elementor-icon-box-icon .elementor-icon svg{fill:var(--blue);width:19px;height:19px}
#dvcontact .elementor-icon-box-icon .elementor-icon i{color:var(--blue)}
#dvcontact .elementor-icon-box-wrapper{display:flex;align-items:center;text-align:left}
.wpcf7-form .wpcf7-submit:hover{background:#1f59ee;transform:translateY(-2px)}

/* ===================== LAYOUT (force flex; Elementor container CSS unreliable here) ===================== */
#dvheader{display:flex!important;flex-direction:row!important;align-items:center!important;justify-content:space-between!important;flex-wrap:nowrap!important;gap:24px}
#dvlogo{display:flex!important;flex-direction:column!important;justify-content:center!important;flex:0 0 auto!important}
#dvnav{display:flex!important;flex-direction:row!important;align-items:center!important;flex-wrap:nowrap!important;gap:26px!important;width:auto!important;justify-content:center!important}
#dvnav > .elementor-element{width:auto!important;flex:0 0 auto!important}
#dvnav p{margin:0!important}
#dvnav a{white-space:nowrap;font-size:15px;font-weight:500}
#dvhero .e-con-inner{width:100%}
/* force white text where Elementor color CSS is unreliable (div headings / dark bg) */
#dvlogo .elementor-heading-title{color:#fff!important}
#dvfooter .elementor-heading-title,#dvfooter .elementor-widget-heading .elementor-heading-title{color:#fff!important}

/* ===================== RESPONSIVE ===================== */
@media (max-width:1024px){
  #dvhero::before,#dvhhero::before{width:100%;clip-path:none;opacity:.9}
  #dvhhero{min-height:auto!important;padding-top:96px!important;padding-bottom:60px!important}
  #dvnav{display:none!important}
  #dvheader{padding-left:20px!important;padding-right:20px!important}
}
@media (max-width:600px){
  .wpcf7-form .cf7-row{grid-template-columns:1fr}
}


/* ===== inner-page cell grids (reuse home cells styling) ===== */
#dvssec,#dvteam{background:linear-gradient(180deg,#1F7AFF 0%,#043b6a 100%)!important}
#dvpat,#dvbuilt{background:linear-gradient(180deg,#003152 0%,#071f38 100%)!important}
#dvssecg,#dvteamg{border-top:1px solid rgba(255,255,255,.18);border-left:1px solid rgba(255,255,255,.18)}
#dvpatg,#dvbuiltg{border:1px solid rgba(255,255,255,.28);border-radius:4px}
#dvssecg > .e-con,#dvteamg > .e-con,#dvpatg > .e-con,#dvbuiltg > .e-con,#dvssecg > .e-con-inner > .e-con,#dvteamg > .e-con-inner > .e-con,#dvpatg > .e-con-inner > .e-con,#dvbuiltg > .e-con-inner > .e-con{border-right:1px solid rgba(255,255,255,.18);border-bottom:1px solid rgba(255,255,255,.18)}
#dvpat .cellicon,#dvbuilt .cellicon{margin-bottom:6px}
#dvpat .cellicon svg,#dvbuilt .cellicon svg{fill:#fff;width:22px;height:22px}
#dvpat .cellicon i,#dvbuilt .cellicon i{color:#fff}

/* process left-aligned variant (Industries / Experience) */
#dvprocess .proc-row.proc-left{justify-content:flex-start}


/* ===== Experience grid (self-contained HTML: reliable 2x2 + photo) ===== */
.expwrap{display:flex;gap:44px;align-items:stretch;flex-wrap:wrap}
.expleft{flex:1 1 500px;display:flex;flex-direction:column;gap:20px}
.expright{flex:1 1 440px}
.expcards{display:grid;grid-template-columns:1fr 1fr;gap:20px}
.expc{background:#ffffff;border-radius:14px;padding:30px 28px;box-shadow:0 14px 44px rgba(0,49,82,.10);border:1px solid rgba(0,49,82,.04)}
.expc h3{margin:0 0 20px;font-family:'Sora',sans-serif;font-weight:700;font-size:20px;color:var(--ink)}
.expc p{margin:0;font-family:'Inter',sans-serif;font-weight:400;font-size:15px;line-height:1.6;color:#5a6b7b}
.expbtn{align-self:flex-start;display:inline-flex;align-items:center;gap:10px;background:var(--blue);color:#fff;font-family:'Sora',sans-serif;font-weight:600;font-size:15px;padding:16px 30px;border-radius:10px;text-decoration:none;transition:.2s}
.expbtn::after{content:"";width:16px;height:16px;flex:0 0 auto;background:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23ffffff' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cline x1='7' y1='17' x2='17' y2='7'/%3E%3Cpolyline points='8 7 17 7 17 16'/%3E%3C/svg%3E") center/contain no-repeat}
.expbtn:hover{background:#1f59ee;transform:translateY(-2px);color:#fff}
.expright .exp-img{height:100%}
@media(min-width:821px){.home .expcards{flex:1;grid-template-rows:1fr 1fr}}
@media(max-width:820px){.expcards{grid-template-columns:1fr}}
/* inner-page (Services/Industries/Experience) cards: Figma proportions — generous padding, content-height (home keeps its stretched-to-image look above) */
body:not(.home) .expc{padding:36px 32px}
body:not(.home) .expc h3{margin:0 0 24px}
/* Services "Why Dynamo" card order to match Figma (Frontline, Proven, Practical, Long-Term) — source array is reversed */
.page-id-12 .expc:nth-child(1){order:4}
.page-id-12 .expc:nth-child(2){order:3}
.page-id-12 .expc:nth-child(3){order:2}
.page-id-12 .expc:nth-child(4){order:1}
/* Services "Supporting Critical Energy Industries" (#dvssecg): Figma order (LNG,Midstream,Nuclear,Combined,Industrial) + internal dividers only (no outer frame) */
.page-id-12 #dvssecg > *:nth-child(1){order:5}
.page-id-12 #dvssecg > *:nth-child(2){order:4}
.page-id-12 #dvssecg > *:nth-child(3){order:3}
.page-id-12 #dvssecg > *:nth-child(4){order:2}
.page-id-12 #dvssecg > *:nth-child(5){order:1}
.page-id-12 #dvssecg{border-top:0;border-left:0}
.page-id-12 #dvssecg > *:nth-child(3){border-right:0}
.page-id-12 #dvssecg > *:nth-child(1),.page-id-12 #dvssecg > *:nth-child(2){border-bottom:0}
/* About team cellsGrid (#dvteamg): Figma order (Certified Instructional Developers…Change Management Specialists) — source array is reversed */
.page-id-15 #dvteamg > *:nth-child(1){order:6}
.page-id-15 #dvteamg > *:nth-child(2){order:5}
.page-id-15 #dvteamg > *:nth-child(3){order:4}
.page-id-15 #dvteamg > *:nth-child(4){order:3}
.page-id-15 #dvteamg > *:nth-child(5){order:2}
.page-id-15 #dvteamg > *:nth-child(6){order:1}

/* inner-page final CTA white per Figma */
#dvcta2 h2{color:#2E343B!important}
#dvcta2 p{color:#2E343B!important}
#dvcta2 .btnw .elementor-button,#dvcta2 .btnw .elementor-button .elementor-button-text{background-color:#003152!important;color:#ffffff!important}
/* ctaGrad photo band (#dvcta1): Figma = LEFT-aligned content, all-white heading, blue Schedule btn + arrow, solid-white Contact btn */
#dvcta1 .e-con-inner{align-items:flex-start!important}
#dvcta1 .elementor-widget-text-editor{text-align:left!important}
/* Figma export values: CTA heading = Sora SemiBold 92px (vs 40px section h2s); subtitle 18px Inter Regular width 652; buttons 15px Inter Medium */
#dvcta1 h2,#dvcta1 .elementor-heading-title{text-align:left!important;font-size:clamp(44px,6.4vw,92px)!important;font-weight:600!important;line-height:1.05!important;max-width:1000px}
#dvcta1 p{max-width:652px;font-size:18px!important}
#dvcta1 .elementor-button,#dvcta1 .elementor-button .elementor-button-text{font-weight:500!important}
#dvcta1 h2 span,#dvcta1 .elementor-heading-title span{color:#ffffff!important}
#dvcta1 .e-con-inner > *:last-child{justify-content:flex-start!important}
#dvcta1 .btnw .elementor-button{background-color:#1F7AFF!important;color:#fff!important;display:inline-flex;align-items:center;gap:9px}
#dvcta1 .btnw .elementor-button .elementor-button-text{color:#fff!important}
#dvcta1 .btnw .elementor-button::after{content:"";width:15px;height:15px;flex:0 0 auto;background:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23ffffff' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cline x1='7' y1='17' x2='17' y2='7'/%3E%3Cpolyline points='8 7 17 7 17 16'/%3E%3C/svg%3E") center/contain no-repeat}
#dvcta1 .btng .elementor-button{background-color:#ffffff!important;color:#003152!important;border:0!important}
#dvcta1 .btng .elementor-button .elementor-button-text{color:#003152!important}

/* ==================== SITE-WIDE TYPE SCALE (matched to figma-to-html export, 1440 frame) ==================== */
/* Hero H1 = Sora Bold 64px (was ~72/800) */
#dvhhero h1,#dvhero h1,#dvchero h1{font-size:clamp(40px,4.44vw,64px)!important;font-weight:700!important;line-height:1.08!important}
/* Section headings h2 = Sora SemiBold 40px (was ~44/700). CTA #dvcta1 h2 keeps its own 92px rule via id specificity */
.elementor-widget-text-editor h2,.elementor-widget-heading h2{font-size:clamp(28px,2.78vw,40px)!important;font-weight:600!important}
/* Card / cell / sub-headings h3 = Sora SemiBold 20px */
.elementor-widget-text-editor h3,.elementor-widget-heading h3,.expc h3{font-size:20px!important;font-weight:600!important;font-family:'Sora',sans-serif!important}
/* Accordion titles = Sora SemiBold 20px (was 19/700) */
#dvacc .elementor-tab-title,#dvacc .elementor-tab-title .elementor-accordion-title,#dvacc .elementor-tab-title.elementor-active,#dvacc .elementor-tab-title.elementor-active .elementor-accordion-title{font-size:20px!important;font-weight:600!important}
/* Service chips = Sora SemiBold 20px (was Inter 15/700) */
.svc-chip{font-family:'Sora',sans-serif!important;font-size:20px!important;font-weight:600!important}
/* Stat-band numbers = Sora SemiBold 28px (was Inter 40/800); first text-editor in each stat cell */
#dvstatd > .elementor-element > .elementor-widget-text-editor:first-child,#dvstatl > .elementor-element > .elementor-widget-text-editor:first-child,#dvstatd > .elementor-element > .elementor-widget-text-editor:first-child p,#dvstatl > .elementor-element > .elementor-widget-text-editor:first-child p{font-size:28px!important;font-weight:600!important;font-family:'Sora',sans-serif!important}
/* Buttons = Inter Medium 500 (was 600) */
.elementor-button,.elementor-button .elementor-button-text{font-weight:500!important}
.expbtn{font-family:'Inter',sans-serif!important;font-weight:500!important}
/* Eyebrows = Sora SemiBold 14px (were 13 Inter 700); .dveyb class emitted by txt() for size-13/weight-700 calls */
.dveyb{font-family:'Sora',sans-serif!important;font-size:14px!important;font-weight:600!important}
/* home final CTA (section right before the footer): Figma heading is ALL dark — no blue accent word */
.home :has(+ #dvfooter) span[style*="1F7AFF"]{color:#2E343B!important}

/* Experience: two overlapping photos (Figma) */
.exp-img::before{content:'';position:absolute;top:0;right:0;width:80%;height:352px;background:linear-gradient(rgba(8,26,48,.05),rgba(8,26,48,.05)),url(../../uploads/figma-exp1.jpg) center/cover no-repeat;border-radius:12px;box-shadow:0 18px 50px rgba(0,49,82,.16)}
.exp-img::after{content:'';position:absolute;bottom:0;left:0;width:82%;height:352px;background:url(../../uploads/figma-exp2.jpg) center/cover no-repeat;border-radius:12px;box-shadow:0 22px 55px rgba(0,49,82,.28);z-index:2}
.expright{align-self:stretch}
.expright .exp-img{height:auto!important;min-height:660px!important}
@media(max-width:820px){.exp-img{min-height:380px}.exp-img::before{position:relative;width:100%;height:380px}.exp-img::after{display:none}}


/* ===== v2.1.27 PRECISION PASS (Figma Dev Mode, file node map: hero 0:15) ===== */
/* Home hero: design text column = 731px (frame 0:15 "Textarea" x62 w731). Build column was ~680 → H1 wrapped to 4 lines; widen so it wraps to 3 like the design. Desktop only. Targets stable #dvhhero + its single inner child (rebuild-safe). */
@media(min-width:1025px){#dvhhero .e-con-inner > *{width:751px!important;flex:0 0 auto!important;max-width:100%!important}}


/* ===== v2.1.28: active nav highlight (current page) ===== */
/* Current page's menu item = brand blue + persistent underline. page-id scoped (rebuild-safe): Services 12, Industries 13, Experience 14, About 15, Contact 16 */
body.page-id-12 #dvnav a[href*="/services/"],
body.page-id-13 #dvnav a[href*="/industries/"],
body.page-id-14 #dvnav a[href*="/experience/"],
body.page-id-15 #dvnav a[href*="/about/"],
body.page-id-16 #dvnav a[href*="/contact/"]{color:#1F7AFF!important;font-weight:600!important}
body.page-id-12 #dvnav a[href*="/services/"]::after,
body.page-id-13 #dvnav a[href*="/industries/"]::after,
body.page-id-14 #dvnav a[href*="/experience/"]::after,
body.page-id-15 #dvnav a[href*="/about/"]::after,
body.page-id-16 #dvnav a[href*="/contact/"]::after{right:0!important}


/* ===== v2.1.29: full single-image logo (mark + wordmark) replaces mark+text ===== */
#dvlogo{padding-left:0!important;width:200px!important;min-height:50px;background:url(logo-full-white.svg?v=2) left center/contain no-repeat!important}
#dvlogo::before{display:none!important}
#dvlogo .elementor-heading-title,#dvlogo .elementor-widget-container,#dvlogo p{font-size:0!important;line-height:0!important;color:transparent!important}
#dvheader.dv-solid #dvlogo,.home #dvheader #dvlogo{background-image:url(logo-full-navy.svg?v=2)!important}
#dvheader.dv-solid #dvlogo::before,.home #dvheader #dvlogo::before{display:none!important}
#dvflogo{padding-left:0!important;width:200px!important;min-height:50px;background:url(logo-full-white.svg?v=2) left center/contain no-repeat!important}
#dvflogo::before{display:none!important}
#dvflogo .elementor-heading-title,#dvflogo .elementor-widget-container,#dvflogo p{font-size:0!important;line-height:0!important;color:transparent!important}


/* ===== v2.1.30: REAL brand logo (exact Figma assets, mark + wordmark, transparent PNG) ===== */
#dvlogo,#dvflogo{width:152px!important;min-height:52px;background-image:url(logo-brand-white.png?v=1)!important;background-position:left center!important;background-size:contain!important;background-repeat:no-repeat!important}
#dvheader.dv-solid #dvlogo,.home #dvheader #dvlogo{background-image:url(logo-brand-color.png?v=1)!important}


/* ===== v2.1.31: logo now includes the signal/beacon arcs (composited from Figma overlay). Taller aspect ~2.28. ===== */
#dvlogo,#dvflogo{width:150px!important;min-height:66px!important;background-image:url(dynlogo-white.png?v=1)!important;background-size:contain!important;background-position:left center!important;background-repeat:no-repeat!important}
#dvheader.dv-solid #dvlogo,.home #dvheader #dvlogo{background-image:url(dynlogo-color.png?v=1)!important}


/* ===== v2.1.32: EXACT brand logo SVGs (user-provided: mark+wordmark image + vector signal arcs in correct position) ===== */
#dvlogo,#dvflogo{width:150px!important;min-height:64px!important;background-image:url(dyn-white.svg?v=1)!important}
#dvheader.dv-solid #dvlogo,.home #dvheader #dvlogo{background-image:url(dyn-color.svg?v=1)!important}


/* ===== v2.1.33: inner-page expGrid — right photos match the LEFT column content height (Figma: image block ≈ cards block, not a fixed 660); overlapping images sized proportionally ===== */
body:not(.home) .expright .exp-img{min-height:0!important;height:100%!important}
body:not(.home) .exp-img::before,body:not(.home) .exp-img::after{height:55%!important;min-height:200px}


/* ===== v2.1.34: inner expGrid to EXACT Figma — image block 474px (two photos 261px tall, ~1.6 aspect so they are NOT squished, 48px overlap); cards top-aligned at Figma height (min 200/card ~432) ===== */
body:not(.home) .expwrap{align-items:flex-start!important}
body:not(.home) .expright .exp-img{min-height:474px!important;height:474px!important}
body:not(.home) .exp-img::before{width:74%!important;height:261px!important;min-height:0!important}
body:not(.home) .exp-img::after{width:75%!important;height:261px!important;min-height:0!important}
body:not(.home) .expc{min-height:200px!important}

/* v2.1.34b: restore Figma image widths (417/426 → ~80%/82% of column) so aspect = Figma ~1.6, not narrow */
body:not(.home) .exp-img::before{width:80%!important}
body:not(.home) .exp-img::after{width:82%!important}


/* ===== v2.1.35: CONTENT WIDTH to Figma. Site content box was ~1140; Figma's 1440 frame uses a ~1206-1225 content box (stat band 1225, Industry Knowledge 1210.5, Process 1206, footer 1240), so every section read ~5% narrower/"smaller" than the design. Widen the Elementor content container site-wide to net ~1210. ===== */
.elementor .e-con>.e-con-inner{max-width:min(100%,1210px)!important}
.elementor .e-con.e-con-boxed{max-width:min(100%,1230px)!important}
/* expGrid photos pinned to EXACT Figma px (417x261 top / 426x261 bottom) so the now-wider column can't re-stretch them (overrides v2.1.34b 80%/82%). height 261 + block 474 keep the 48px overlap. */
body:not(.home) .exp-img::before{width:417px!important;max-width:100%!important}
body:not(.home) .exp-img::after{width:426px!important;max-width:100%!important}


/* ===== v2.1.37: Figma "narrow-tier" sections matched SITE-WIDE (supersedes v2.1.36's Industries-only scope). Figma uses two content widths — a ~1210 norm and a ~1100-1106 narrow tier — for specific sections. Confirmed via full-canvas metadata across all 6 pages: gradient CTA #dvcta1 ("Let's Build / Put Our Experience to Work") = 1106 on every inner page; home "Strategic Talent" #dvtalent = 1106; Contact FAQ #dvfaq = 1100; accordion #dvsvc ("Explore Our Service Expertise" / "Industries We Support") = 1100 but ONLY on Services (pg12) + Industries (pg13) — Experience ALSO has #dvsvc yet Figma keeps it at the 1210 norm, so #dvsvc is page-scoped. Other sub-1210 Figma numbers (1108/1151/1154/1182…) are inner card/heading blocks (e.g. "Frame 33" = a section's first card), NOT section insets, so they stay at 1210. Cap the nested boxed container (+~20 for its padding) + the inner. ===== */
#dvcta1 .e-con-boxed,#dvtalent .e-con-boxed{max-width:min(100%,1126px)!important}
#dvcta1 .e-con-inner,#dvtalent .e-con-inner{max-width:min(100%,1106px)!important}
#dvfaq .e-con-boxed{max-width:min(100%,1120px)!important}
#dvfaq .e-con-inner{max-width:min(100%,1100px)!important}
body.page-id-12 #dvsvc .e-con-boxed,body.page-id-13 #dvsvc .e-con-boxed{max-width:min(100%,1120px)!important}
body.page-id-12 #dvsvc .e-con-inner,body.page-id-13 #dvsvc .e-con-inner{max-width:min(100%,1100px)!important}


/* ===== v2.1.38: BOX/CENTER all content (fix "float left"). Some sections (inner-page heroes, contact info/support, etc.) had their .e-con-boxed content wrapper pinned LEFT — the parent .e-con-full uses align-items:stretch, so the max-width-capped boxed sat at left:0 with a big empty gap on the RIGHT, while other sections (align-items:center) were centered. Result: content looked like it "floated left." Fix: force every boxed content wrapper to center. margin-inline:auto centers a flex item in BOTH axes regardless of the parent's align-items, so it centers the left-pinned ones and leaves the already-centered ones unchanged. Header is full-width (not .e-con-boxed) so it's untouched; 2-col layouts (expGrid/split/tabs) center as a whole with their internal columns intact. ===== */
.elementor .e-con.e-con-boxed{margin-left:auto!important;margin-right:auto!important}


/* ===== v2.1.39: HOME "Experience That Delivers Results" expGrid to EXACT Figma. The v2.1.34/35 expGrid fix was scoped body:not(.home), so the HOME copy still used the old base rules — image block 660 (line 361), photos 352px tall at ~1.26 aspect (lines 358/359, Figma wants 261px tall / ~1.6), and cards stretched to ~320 tall via the @media .home .expcards{grid-template-rows:1fr 1fr} (line 290). Figma home WHY DYNAMO (0:122) is IDENTICAL to the inner-page one: Frame 44 = 474 tall; cards 287x200; images 417x261 (top-right) + 426x261 (bottom-left), 48px overlap. Mirror the inner-page pins for .home. ===== */
.home .expwrap{align-items:flex-start!important}
.home .expright .exp-img{min-height:474px!important;height:474px!important}
.home .exp-img::before{width:417px!important;height:261px!important;min-height:0!important;max-width:100%!important}
.home .exp-img::after{width:426px!important;height:261px!important;min-height:0!important;max-width:100%!important}
.home .expc{min-height:200px!important}
@media(min-width:821px){.home .expcards{grid-template-rows:auto auto!important}}


/* ===== v2.1.40: Process section text block to Figma width. Inner-page process heading "Supporting Every Stage of the Operational Journey" was 1005px wide (fills its widget) so it stayed on ONE line at desktop and wrapped awkwardly at narrower widths; Figma (0:517) constrains it to 693px = 2 lines ("Supporting Every Stage of the" / "Operational Journey"). Intro paragraph was 1035px vs Figma 536px (2 lines). The heading is a bare <h2> (no class) inside a text-editor widget, so target #dvprocess h2 directly + the intro <p>. Scoped body:not(.home) — the home process is the short centred "Our Approach". ===== */
body:not(.home) #dvprocess h2{max-width:693px!important}
body:not(.home) #dvprocess .elementor-widget-text-editor p{max-width:536px!important}


/* ===== v2.1.41: FinalCTA (#dvcta2) heading to Figma — TWO fixes. (1) WRAP: heading was ~859px = 1 line at desktop / awkward wrap at narrower widths; Figma (0:553 Industries "Ready to Strengthen Workforce Capability?" + 0:737 Experience "Ready to Build Your Next Success Story?", BOTH 668px wide / 101 tall) wraps to 2 lines. (2) COLOR: the build wrongly accentised one word blue (Industries "Workforce", Experience "Success"), but Figma's FinalCTA heading is ALL dark #2E343B — confirmed via get_design_context on both (single text-[#2e343b] fill, no accent span). Cap to 668 + centre the block + force the accent span dark. Scoped body:not(.home) — home has no #dvcta2. ===== */
body:not(.home) #dvcta2 h2{max-width:668px!important;margin-left:auto!important;margin-right:auto!important}
body:not(.home) #dvcta2 h2 span{color:#2E343B!important}


/* ===== v2.1.42: FinalCTA (#dvcta2) SUBTEXT to Figma width. The intro paragraph was full-width (~1210px); Figma (0:554 Industries "Partner with Dynamo…" + 0:738 Experience "Whether you're preparing for commissioning…", BOTH 536px wide) constrains it (Industries 2 lines, Experience 3 lines). Cap the subtext <p> to 536 + centre (the FinalCTA is centred). The <p> selector doesn't touch the <h2> heading. Scoped body:not(.home). ===== */
body:not(.home) #dvcta2 .elementor-widget-text-editor p{max-width:536px!important;margin-left:auto!important;margin-right:auto!important}


/* ===== v2.1.43: #dvcta1 gradient/photo-CTA heading ("Let's Put Our Experience to Work" / Services "Let's Build a More Capable Workforce") — WRAP + tracking to Figma. The 92px heading had max-width:1000px (a global big-heading cap), but "Let's Put Our Experience" needs ~1030px, so it wrapped as "Let's Put Our" / "Experience to Work" — Figma (0:727, 1106px box) wraps "Let's Put Our Experience" / "to Work". Also letter-spacing was -1.84px vs Figma's tracking -4.6px (=-0.05em @92px). FIX: widen to Figma's 1106 content width + apply -0.05em tracking → "Experience" now stays on line 1. (Heading is already white on the dark band, matching Figma's all-white — no colour change.) ===== */
#dvcta1 h2{max-width:1106px!important;letter-spacing:-0.05em!important}


/* ===== v2.1.44: Experience "A Proven Pattern of Performance" (#dvpat) intro paragraph to Figma width. The intro ("Across every engagement, our focus has remained consistent…") was full-width (~1210px, 1 line); Figma (0:664, left-aligned x=0, w=808 — the heading 0:663 above is 1154) = 808px / 2 lines. Cap the intro <p> to 808 (left-aligned, no margin auto). max-width:808 is a no-op on the four card descriptions (~232px each), so this only narrows the intro. ===== */
#dvpat .elementor-widget-text-editor p{max-width:808px!important}


/* ===== v2.1.45: Experience "A Proven Pattern of Performance" (#dvpat) — two fixes. (a) DOUBLE bottom border: the grid wrapper #dvpatg has a box border (top/bottom/left) AND each cell also had border-bottom:1px, so the bottom edge showed TWO lines. Drop the cells' border-bottom (keep #dvpatg's box border + the cells' border-right vertical dividers) → single clean box like Figma. (b) MISSING "Discuss Your Needs" button: Figma shows it bottom-left below the cards, but the build (cellsGrid) never rendered one. It's injected by header.js as .dvpat-btn (a real /contact/ link); styled here to match Figma — white button, navy text, on the navy band. ===== */
#dvpatg > .e-con{border-bottom:0!important}
.dvpat-btn{margin-top:34px}
.dvpat-btn .elementor-button{display:inline-flex;align-items:center;background:#fff!important;color:var(--navy)!important;font-family:'Inter',sans-serif;font-weight:600;font-size:15px;padding:12px 24px;border-radius:10px;text-decoration:none;box-shadow:0 12px 30px rgba(0,0,0,.18)}
.dvpat-btn .elementor-button:hover{background:#eef3f8!important}


/* ===== v2.1.46: About "Built on Experience. Focused on Results." (#dvbuilt, navy cellsGrid) — three fixes (same family as #dvpat). (a) DOUBLE bottom border: #dvbuiltg box border + each cell's border-bottom → drop the cells' border-bottom. (b) INTRO too long: "Organizations choose Dynamo…" was full-width ~1210; Figma (0:837) = 808px / 2 lines → cap the intro <p> (no-op on the ~232px card descriptions). (c) BUTTON was BLUE (its widget wrapper has the .btnb blue class) but Figma shows WHITE (matching the Experience #dvpat button). The .btnb blue background-color proved un-overridable by an equal-property !important rule (a higher-origin lock — color overrode but background-color didn't), so paint white via background-IMAGE gradient (sits above background-color) + also set background-color. Navy text, matching Figma. ===== */
#dvbuiltg > .e-con{border-bottom:0!important}
#dvbuilt .elementor-widget-text-editor p{max-width:808px!important}
#dvbuilt .btnb .elementor-button{background-image:linear-gradient(#ffffff,#ffffff)!important;background-color:#ffffff!important;color:var(--navy)!important;padding:12px 24px!important;border-radius:10px!important;box-shadow:0 12px 30px rgba(0,0,0,.18)!important;font-weight:600!important}
#dvbuilt .btnb .elementor-button:hover{background-image:linear-gradient(#eef3f8,#eef3f8)!important}


/* ===== v2.1.47: #dvbuilt button LEFT-align. The button widget was centred (text-align:center on its wrapper) so it sat centred under the cards; Figma (0:868, x=0) + the Experience #dvpat button are bottom-LEFT. Left-align the button wrapper. ===== */
#dvbuilt .btnb .elementor-widget-container,#dvbuilt .elementor-button-wrapper{text-align:left!important}


/* ===== v2.1.48: Contact "We're Ready to Support Your Next Project" (2-col: text+button left, photo right .dvsupimg) — the heading had "Next" in a blue accent span (build's accentize), but Figma (0:936) renders the whole heading dark #2E343B with NO accent (same as the FinalCTAs). De-blue it. The section has no #dv id, so target via :has(.dvsupimg) (already used elsewhere in this file; supported in Chrome). ===== */
.e-con:has(.dvsupimg) h2 span,.e-con:has(.dvsupimg) h3 span{color:#2E343B!important}


/* ===== v2.1.50: Contact hero (#dvchero) heading + subtext to Figma widths. Both ran full-width on ONE line each (heading 880px, subtext 1112px); Figma (0:905) constrains them so each wraps to 2 lines: heading ~454 → "Let's Start the" / "Conversation" (accent stays blue), subtext 692 → 2 lines. Cap + centre (hero content is centred). ===== */
#dvchero h1,#dvchero h2{max-width:470px!important;margin-left:auto!important;margin-right:auto!important}
#dvchero .elementor-widget-text-editor p{max-width:692px!important;margin-left:auto!important;margin-right:auto!important}


/* ===== v2.2.0 (client feedback #1): BUTTONS + NAV to exact Figma (petite/minimalistic). Client: buttons too big, nav too long/big. Figma home export values: every button = 34px tall, padding 8px 12px, radius 8px, Inter Medium 15px (colors: navy #003152 / blue #1F7AFF / white bg). Header = 82px tall, logo 96x40 — build rendered logo at 150x64 so the whole nav read oversized. Compact site-wide; color classes (.btnw/.btnb/.btng/.btnn) untouched. ===== */
.elementor-button{border-radius:8px!important;padding:8px 16px!important;font-size:15px!important;line-height:1.25!important}
.expbtn{padding:11px 22px!important;border-radius:8px!important;font-size:15px!important}
#dvlogo{width:104px!important;min-height:44px!important}
#dvnav a{font-size:14px!important}
#dvnav{gap:22px!important}


/* ===== v2.2.1 (client feedback #2): ACCORDION "jump" bug. The 2-col accordion row #dvsvcrow (accordion left + chips right) used align-items:center, so expanding an accordion item grew the left column and RE-CENTERED the right column — the chips visibly jumped up/down. Top-align the row so the sibling column stays static when an item expands (Services + Industries share #dvsvcrow). ===== */
@media(min-width:821px){#dvsvcrow{align-items:flex-start!important}}


/* ===== v2.2.2 (client feedback #3): (a) REMOVE stray hero eyebrow on About + Contact. Client: the "ABOUT US" / "CONTACT" eyebrow above the hero heading isn't in the Figma design — remove it. Scoped to the HERO only (section eyebrows like "OUR PHILOSOPHY" stay). About hero=#dvhero (pg15), Contact hero=#dvchero (pg10). (b) ACTIVE-NAV fix for Contact: v2.1.28 hard-coded page-id-16 for /contact/, but Contact is actually page-id-10 (verified via REST API) — so its nav link never highlighted. Add the correct pg10 rule (blue #1F7AFF + persistent underline). Services 12 / Industries 13 / Experience 14 / About 15 were already correct. ===== */
body.page-id-15 #dvhero .dveyb,body.page-id-10 #dvchero .dveyb{display:none!important}
body.page-id-10 #dvnav a[href*="/contact/"]{color:#1F7AFF!important;font-weight:600!important}
body.page-id-10 #dvnav a[href*="/contact/"]::after{right:0!important}


/* ===== v2.2.3 (client feedback #4): Experience "That Delivers Results" cards fill. Figma card fill = #F6F8FA (light gray-blue, export v0_128/131); build used pure #fff so the 2x2 card "table" didn't read as the distinct softer panel Figma shows. Client: keep the shadow (liked) + add the Figma colour. Applies to .expc site-wide (home Experience + inner Experience + Services "Why Dynamo" cards all share .expc). ===== */
.expc{background:#f6f8fa!important}


/* ===== v2.2.4 (client feedback #5): Home "Our Approach" steps become CLICKABLE to reveal each step's detail (client wants the arrows/steps to expand on click like the accordions on other pages). Steps highlight blue when open; a detail panel below the flow shows the step description (content injected by header.js; copy is editable). ===== */
#dvprocess .proc-label{cursor:pointer;transition:color .2s}
#dvprocess .proc-label.dv-open{color:#1F7AFF}
#dvprocess .proc-label.dv-open::before{background:#1F7AFF!important}
.dvproc-detail{max-width:760px;margin:28px auto 0;text-align:center;padding:22px 28px;background:#f6f8fa;border-radius:14px;border:1px solid #e7eaee}
.dvproc-detail-title{font-family:'Sora',sans-serif;font-weight:600;font-size:18px;color:#2E343B;margin-bottom:8px}
.dvproc-detail-text{font-family:'Inter',sans-serif;font-size:16px;line-height:1.6;color:#5a6b7b;margin:0}


/* ===== v2.2.5 (client feedback #6): LIGHTER weights to match Figma exactly (client: build reads heavier/bulkier, wants the petite/minimalistic look). Figma uses Sora SemiBold(600) for EVERY non-hero title/label — only the hero H1 is Bold(700). Build still had these at 700 → soften to 600, and nudge a few sizes to the exact Figma value (proc label 19→20, team tab 18→20, facility 19→20, exp card desc 15→16). Confirmed via export: tab title v0_171 / facility v0_178 = 20px SemiBold; proc v0_149 = 20 SemiBold. ===== */
#dvprocess .proc-label{font-weight:600!important;font-size:20px!important}
#dvtabs .elementor-tab-title{font-weight:600!important;font-size:20px!important}
#dvtabs .tabtext li{font-weight:600!important;font-size:20px!important}
.cinfo-item h4{font-weight:600!important}
#dvfaqacc .elementor-tab-title{font-weight:600!important}
#dvform .wpcf7-form label{font-weight:600!important}
.expc p{font-size:16px!important}


/* ===== v2.2.7 (client feedback #7): footer credit MOVED to the bottom-RIGHT (client's "move here" mark) — opposite the copyright which stays bottom-left, on the same line. The copyright text-editor's container becomes a full-width flex row: © … left, "Web design by Company" right. (header.js now appends the credit as a sibling of the © <p> and tags the container .dvcreditrow.) ===== */
#dvfooter .dvcreditrow{display:flex!important;flex-wrap:wrap;justify-content:space-between;align-items:baseline;gap:6px 24px;width:100%}
#dvfooter .dvcreditrow > p{margin:0}
#dvfooter .dvcredit{white-space:nowrap}


/* ===== v2.3.0 (client feedback #8): MOBILE + TABLET responsive pass. EVERY rule here lives inside a max-width media query (or targets a mobile-only injected element that is display:none by default) so desktop / large screens render byte-for-byte the same. ===== */
/* (a) Hamburger menu — the desktop #dvnav is hidden at <=1024 with no replacement, so users can't navigate. Burger + slide-down panel. */
.dv-burger{display:none}
.dv-menu-cta{display:none}
@media(max-width:1024px){
  .dv-burger{display:flex!important;flex-direction:column;justify-content:center;align-items:center;gap:5px;width:44px;height:44px;padding:9px;background:transparent!important;border:0!important;box-shadow:none!important;cursor:pointer;flex:0 0 auto;order:3;-webkit-tap-highlight-color:transparent}
  .dv-burger span{display:block;height:2px;width:26px;border-radius:2px;background:#ffffff;transition:transform .25s ease,opacity .2s ease}
  .home .dv-burger span,#dvheader.dv-solid .dv-burger span{background:#003152}
  #dvheader .elementor-widget-button{display:none!important}
  #dvheader{flex-wrap:wrap!important}
  #dvheader.dv-open #dvnav{display:flex!important;flex-direction:column!important;position:absolute;top:100%;left:0;right:0;width:100%!important;max-width:100%!important;margin:0!important;gap:0!important;align-items:stretch!important;background:#fff;box-shadow:0 16px 34px rgba(0,49,82,.16);border-top:1px solid var(--line);padding:6px 22px 16px}
  #dvheader.dv-open #dvnav > .elementor-element,#dvheader.dv-open #dvnav .dv-menu-cta{width:100%!important;flex:0 0 auto!important}
  #dvheader.dv-open #dvnav a{color:#2E343B!important;font-family:'Sora',sans-serif;font-size:16px!important;font-weight:600!important;display:block;padding:15px 2px!important;border-bottom:1px solid var(--line);white-space:normal}
  #dvheader.dv-open #dvnav a::after{display:none!important}
  #dvheader.dv-open #dvnav .dv-menu-cta{display:block;border-bottom:0;margin-top:12px}
  #dvheader.dv-open #dvnav .dv-menu-cta a{background:#003152;color:#fff!important;text-align:center;border:0;border-radius:8px;padding:14px!important;border-bottom:0}
  #dvheader.dv-open .dv-burger span:nth-child(1){transform:translateY(7px) rotate(45deg)}
  #dvheader.dv-open .dv-burger span:nth-child(2){opacity:0}
  #dvheader.dv-open .dv-burger span:nth-child(3){transform:translateY(-7px) rotate(-45deg)}
}
/* (b) small-screen polish */
@media(max-width:600px){
  #dvhhero h1,#dvhero h1,#dvchero h1{font-size:34px!important;line-height:1.12!important}
  #dvfooter .dvcreditrow{justify-content:flex-start!important;gap:4px 16px}
  #dvfooter .dvcredit{white-space:normal}
}
/* (c) overflow safety net on small screens (stops any stray element causing a horizontal scroll) */
@media(max-width:1024px){body{overflow-x:hidden}}


/* ===== v2.3.6 (client feedback — "extra empty spaces" STILL too airy on mobile/tablet): a flat 50px top+bottom (=100px between sections) still read as too much on a phone. Split the vertical rhythm by breakpoint: tablet (<=1024) 40px, mobile (<=600) 28px on top-level content sections. Also trim the mobile hero bottom padding so the very first scroll gap isn't oversized. Heroes + footer excluded from the section rule; desktop stays exactly as the client approved (untouched). ===== */
@media(max-width:1024px){.elementor > .e-con.e-parent:not(#dvhhero):not(#dvhero):not(#dvchero):not(#dvfooter){padding-top:40px!important;padding-bottom:40px!important}}
@media(max-width:600px){
  .elementor > .e-con.e-parent:not(#dvhhero):not(#dvhero):not(#dvchero):not(#dvfooter){padding-top:28px!important;padding-bottom:28px!important}
  #dvhhero,#dvhero,#dvchero{padding-bottom:36px!important}
}

/* ===== v2.3.7 (client: big EMPTY white block on mobile/tablet in the Experience section). The two experience photos live on .exp-img::before / ::after. On desktop they're absolutely positioned inside a fixed 474px box (fine). But below 1024 the older rules left ::before as an inline (0-height) box and hid ::after, while .home/.exp still forced .exp-img to a fixed 474px — so the box rendered as a 474px EMPTY block. Fix (<=1024 only): let .exp-img shrink to its content and render BOTH images as full-width stacked blocks. Desktop (>1024) is untouched. ===== */
@media(max-width:1024px){
  .home .expright .exp-img, body:not(.home) .expright .exp-img{min-height:0!important;height:auto!important;display:flex!important;flex-direction:column;gap:14px!important}
  .home .exp-img::before, .home .exp-img::after, body:not(.home) .exp-img::before, body:not(.home) .exp-img::after{position:relative!important;display:block!important;width:100%!important;max-width:100%!important;height:190px!important;top:auto!important;right:auto!important;bottom:auto!important;left:auto!important;margin:0!important;border-radius:12px!important}
}
