
:root{
  --navy:#141B4D;
  --royal:#2847A8;
  --sky:#4EC3E8;
  --coral:#E85744;
  --teal:#43B79C;
  --ink:#141B4D;
  --gray:#5A6478;
  --hairline:#E9ECF2;
  --max:1220px;
  /* the D-curve: flat left, rounded right — from the DIVERSE "D" */
  --dcurve:0 112px 112px 0;
  --dcurve-soft:0 64px 64px 0;
}
*{margin:0;padding:0;box-sizing:border-box}
html{scroll-behavior:smooth}
body{font-family:'Albert Sans',system-ui,sans-serif;color:var(--gray);background:#fff;line-height:1.7;font-size:16.5px;font-weight:300}
h1,h2,h3,h4{color:var(--ink);font-weight:600;letter-spacing:-.015em}
img{max-width:100%;display:block}
a{text-decoration:none;color:inherit}
.wrap{max-width:var(--max);margin:0 auto;padding:0 40px}
.eyebrow{display:flex;align-items:center;gap:10px;font-size:13px;font-weight:600;letter-spacing:.18em;text-transform:uppercase;color:var(--ink);margin-bottom:22px}
.eyebrow::before{content:"" !important;display:inline-block;flex:0 0 auto;width:12px;height:16px;background:var(--coral);border-radius:0 16px 16px 0;transform:translateY(-1px)}
.btn{display:inline-block;font-weight:600;font-size:15px;padding:14px 30px;border-radius:6px;transition:.2s}
.btn-navy{background:var(--royal);color:#fff}
.btn-navy:hover{background:var(--navy)}
.btn-line{border:1.5px solid var(--royal);color:var(--royal)}
.btn-line:hover{background:var(--royal);color:#fff}
.learn{display:inline-flex;align-items:center;gap:9px;font-weight:600;font-size:14.5px;color:var(--royal);transition:.2s}
.learn:hover{gap:14px;color:var(--navy)}

/* ── utility strip ── */
.util{background:#fff;border-bottom:1px solid var(--hairline);font-size:13px;font-weight:500}
.util .wrap{display:flex;justify-content:flex-end;align-items:center;gap:26px;height:42px}
.util a{color:var(--gray);position:relative}
.util a::after{content:"";position:absolute;left:0;right:0;bottom:-3px;height:1px;background:var(--navy);transform:scaleX(0);transform-origin:left;transition:transform .22s}
.util a:hover::after{transform:scaleX(1)}
.util a:hover{color:var(--royal)}
.util .tel{color:var(--ink);font-weight:600}

/* ── nav ── */
nav{position:sticky;top:0;background:rgba(255,255,255,.94);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);border-bottom:1px solid var(--hairline);z-index:60}
nav .wrap{display:flex;align-items:center;justify-content:space-between;height:82px;gap:24px}
nav img.logo{height:46px;width:auto}
.nav-links{display:flex;gap:26px;font-size:13.5px;font-weight:600;letter-spacing:.04em;color:var(--ink);align-self:stretch;align-items:stretch}
.nav-links>div,.nav-links>a{position:relative;display:flex;align-items:center}
.nav-links>a::after,.nav-links>div::after{content:"";position:absolute;left:0;right:0;top:0;height:2px;background:var(--sky);border-radius:2px;transform:scaleX(0);transform-origin:left;transition:transform .22s}
.nav-links>a:hover::after,.nav-links>div:hover::after{transform:scaleX(1)}
.nav-links>div>span{display:inline-flex;align-items:center;gap:5px}
.nav-links a:hover{color:var(--royal)}
.has-drop>span{cursor:default;display:inline-flex;align-items:center;gap:5px}
.has-drop>span::after{content:"";width:6px;height:6px;border-right:1.6px solid currentColor;border-bottom:1.6px solid currentColor;transform:rotate(45deg) translateY(-2px)}
/* Clickable desktop dropdown triggers */
.has-drop > a.drop-trigger{cursor:pointer;display:inline-flex;align-items:center;gap:5px;color:inherit}
.has-drop > a.drop-trigger::after{content:"";width:6px;height:6px;border-right:1.6px solid currentColor;border-bottom:1.6px solid currentColor;transform:rotate(45deg) translateY(-2px)}

.drop{position:absolute;top:100%;left:-16px;background:#fff;border:1px solid var(--hairline);border-radius:0 0 10px 10px;min-width:290px;padding:10px;opacity:0;visibility:hidden;transform:translateY(6px);transition:.18s}
.has-drop:hover .drop{opacity:1;visibility:visible;transform:translateY(0)}
.drop a{display:block;padding:10px 14px;border-radius:7px;font-weight:500;letter-spacing:0;color:var(--gray)}
.drop a:hover{background:#F4F7FC;color:var(--royal)}
/* hamburger + mobile menu */
.burger{display:none;background:none;border:none;cursor:pointer;padding:10px;margin-left:auto}
.burger span{display:block;width:24px;height:2px;background:var(--ink);margin:5px 0;border-radius:2px;transition:.2s}
nav.open .burger span:nth-child(1){transform:translateY(7px) rotate(45deg)}
nav.open .burger span:nth-child(2){opacity:0}
nav.open .burger span:nth-child(3){transform:translateY(-7px) rotate(-45deg)}
.mobile-menu{display:none;background:#fff;border-top:1px solid var(--hairline)}
nav.open .mobile-menu{display:block}
.mobile-menu a{display:block;padding:13px 40px;font-size:15px;font-weight:600;color:var(--ink);border-bottom:1px solid var(--hairline)}
.mobile-menu a.sub{padding-left:60px;font-weight:400;color:var(--gray)}
.mobile-menu a:hover{color:var(--royal)}

/* ── hero: text on the video banner — no scrim/overlay layer ── */
.hero{background:#fff;border-bottom:1px solid var(--hairline)}
.hero .video-frame{position:relative}
.hero .video-frame::after{content:"";position:absolute;inset:0;background:linear-gradient(90deg,rgba(13,18,48,.55) 0%,rgba(13,18,48,.32) 45%,rgba(13,18,48,.12) 100%);pointer-events:none}
.hero video{width:100%;height:min(78vh,720px);object-fit:cover;display:block}
.hero .statement{position:absolute;inset:0;display:flex;align-items:center;z-index:1}
.hero .statement .wrap{max-width:var(--max);width:100%;display:flex;justify-content:flex-start}
.hero .statement .inner{max-width:760px}
.hero h1{font-size:clamp(28px,3.8vw,48px);line-height:1.18;font-weight:600;color:#fff}
.hero h1 em{font-style:normal;color:var(--sky)}
.hero .ctas{margin-top:30px;display:flex;gap:14px;flex-wrap:wrap}
.hero .btn-white{background:#fff;color:var(--navy)}
.hero .btn-white:hover{background:var(--sky);color:var(--navy)}
.hero .btn-ghost{border:1.5px solid rgba(255,255,255,.85);color:#fff}
.hero .btn-ghost:hover{background:#fff;color:var(--navy)}

/* ── solutions ── */
.solutions{padding:96px 0 40px}
.sol-head{max-width:760px;margin-bottom:56px}
.sol-head h2{font-size:clamp(26px,3vw,38px)}
.sol-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:34px 30px;padding-bottom:80px}
.card{background:#fff;border:1px solid var(--hairline);border-radius:14px 14px 0 0;overflow:hidden;display:flex;flex-direction:column;transition:.22s}
.card:hover{border-color:var(--royal);transform:translateY(-4px)}
.card .ph{aspect-ratio:16/10;overflow:hidden}
.card .ph img{width:100%;height:100%;object-fit:cover;transition:transform .4s}
.card:hover .ph img{transform:scale(1.045)}
.card .body{padding:26px 26px 30px;display:flex;flex-direction:column;gap:12px;flex:1}
.card h3{font-size:19.5px;line-height:1.3}
.card p{font-size:15px;flex:1}

/* ── who we are band ── */
.who{border-top:1px solid var(--hairline);padding:96px 0}
.who .wrap{display:grid;grid-template-columns:1.05fr .95fr;gap:70px;align-items:center}
.who h2{font-size:clamp(24px,2.7vw,34px);line-height:1.32;font-weight:500}
.who h2 b{font-weight:600;color:var(--coral)}
.who .photo{border-radius:var(--dcurve);overflow:hidden}
.who .photo img{width:100%;height:420px;object-fit:cover}

/* ── news & insights ── */
.news{border-top:1px solid var(--hairline);padding:96px 0}
.news .head{display:flex;align-items:flex-end;justify-content:space-between;gap:24px;margin-bottom:52px;flex-wrap:wrap}
.news .head h2{font-size:clamp(26px,3vw,38px)}
.news-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:34px 30px}
.post{--cat:var(--royal);background:#fff;border:1px solid var(--hairline);border-radius:14px 14px 0 0;overflow:hidden;display:flex;flex-direction:column;transition:.22s;position:relative}
.post.cat-case{--cat:var(--coral)}
.post.cat-comm{--cat:var(--teal)}
.post:hover{border-color:var(--royal);transform:translateY(-4px)}
.post .top{background:#F6F8FB url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 240 240' fill='none'%3E%3Cpath d='M0 18 H82 A102 102 0 0 1 82 222 H0' stroke='%23141B4D' stroke-opacity='.14' stroke-width='1.4'/%3E%3C/svg%3E") right -70px center/auto 175% no-repeat;border-bottom:1px solid var(--hairline);padding:26px 24px 24px;display:flex;flex-direction:column;gap:14px;justify-content:flex-start;min-height:190px}
.post .body{padding:20px 24px 26px;display:flex;flex-direction:column;gap:12px;flex:1}
.post .tag{align-self:flex-start;font-size:11px;font-weight:700;letter-spacing:.14em;text-transform:uppercase;color:var(--ink);border:1px solid var(--cat);border-radius:999px;padding:5px 12px}
.post h3{font-size:18.5px;line-height:1.35}
.post p{font-size:14.5px;flex:1}
@media(max-width:1020px){.news-grid{grid-template-columns:1fr 1fr}}
@media(max-width:640px){.news-grid{grid-template-columns:1fr}}

/* ── trust strip — grey band with grey D-lines ── */
.certs{background:#F6F8FB url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 240 240' fill='none'%3E%3Cpath d='M0 18 H82 A102 102 0 0 1 82 222 H0' stroke='%23141B4D' stroke-opacity='.10' stroke-width='1.4'/%3E%3C/svg%3E") right -60px center/auto 200% no-repeat;border-top:1px solid var(--hairline);border-bottom:1px solid var(--hairline);padding:30px 0}
.certs .wrap{display:flex;align-items:center;justify-content:center;gap:16px 52px;flex-wrap:wrap}
.certs .item{font-size:13px;letter-spacing:.14em;text-transform:uppercase;white-space:nowrap}
.certs .item b{font-weight:700;color:var(--ink)}
.certs .item span{font-weight:500;color:var(--royal)}

/* ── footer — white ── */
footer{background:#fff;color:var(--gray);font-size:14.5px;padding:74px 0 34px;border-top:1px solid var(--hairline)}
footer .wrap{display:grid;grid-template-columns:1.3fr 1fr 1fr;gap:56px}
footer img.f-logo{height:52px;width:auto;margin-bottom:20px}
footer h4{color:var(--ink);font-size:13px;letter-spacing:.2em;text-transform:uppercase;margin-bottom:16px;font-weight:600}
footer a{display:block;width:-moz-fit-content;width:fit-content;padding:4px 0;position:relative}
footer a::after{content:"";position:absolute;left:0;right:0;bottom:2px;height:1px;background:var(--navy);transform:scaleX(0);transform-origin:left;transition:transform .22s}
footer a:hover::after{transform:scaleX(1)}
footer a:hover{color:var(--royal)}
.f-bottom{border-top:1px solid var(--hairline);margin-top:56px;padding-top:24px;display:flex;justify-content:space-between;flex-wrap:wrap;gap:12px;font-size:12.5px}
.f-social{display:flex;gap:14px}
.f-social a{display:inline-flex;padding:0}

@media(max-width:1020px){
  .sol-grid{grid-template-columns:1fr 1fr}
  .who .wrap{grid-template-columns:1fr;gap:44px}
  .nav-links{display:none}
  .burger{display:block}
  footer .wrap{grid-template-columns:1fr 1fr}
}
@media(max-width:640px){
  .sol-grid{grid-template-columns:1fr}
  footer .wrap{grid-template-columns:1fr}
  .wrap{padding:0 24px}
  .hero .statement .wrap{padding:52px 24px 60px}
}
@media (prefers-reduced-motion:reduce){*{animation:none!important;transition:none!important}}



/* final cleanup — remove shadows and align value pills */
.card,
.pillar,
.flow-card,
.value,
.values .pill,
.values-grid span,
.values-grid a,
.value-pill,
.workflow-card,
.stat,
.cta,
.photo,
.page-hero .photo {
  box-shadow: none !important;
}

.values .wrap,
.values-wrap,
.values .content,
.values-copy {
  max-width: var(--max);
}

.values-grid,
.values-list,
.pills,
.value-pills {
  max-width: 820px;
  display: flex;
  flex-wrap: wrap;
  gap: 12px;
  align-items: flex-start;
}

.values-grid span,
.values-grid a,
.pills span,
.pills a,
.value-pills span,
.value-pills a {
  box-shadow: none !important;
}


/* final correction — restore D-shaped image frames, no shadows */
.page-hero .photo,
.cares .photo {
  border-radius: var(--dcurve) !important;
  box-shadow: none !important;
}

.page-hero .photo img,
.cares .photo img {
  display: block;
  width: 100%;
  object-fit: cover;
}


/* values band width fix */
.values-band .wrap{max-width:var(--max) !important;}
.values-band .intro,.values-band .chips{max-width:none !important;}
.values-band .chips{width:100% !important;}


/* final light gray treatment */
.values-band {
  background: #F6F8FB !important;
  border-top-color: #E9EDF5 !important;
  border-bottom-color: #E9EDF5 !important;
}

.flow,
.pillars,
.cares,
.cert-band,
.cta {
  border-color: #E9EDF5 !important;
}

.step,
.pillar,
.card,
.chip,
.num {
  border-color: rgba(20,27,77,.08) !important;
}

.chip {
  background: #fff !important;
}

.flow,
.cares {
  background: #fff !important;
}

section[style*="background"],
.light-gray,
.soft-gray {
  background-color: #F8FAFC !important;
}


/* final flat line treatment */
:root {
  --hairline: #E9EDF5 !important;
}

* {
  box-shadow: none !important;
}

.page-hero,
.values-band,
.flow,
.cares,
.cert-band,
.cta,
footer,
.pillar,
.card,
.chip,
.step,
.num,
.photo,
.page-hero .photo,
.cares .photo,
nav,
.util {
  border-color: #E9EDF5 !important;
  box-shadow: none !important;
}

.values-band {
  background: #F6F8FB !important;
  border-top: 1px solid #E9EDF5 !important;
  border-bottom: 1px solid #E9EDF5 !important;
}

.step,
.pillar,
.card,
.chip,
.num {
  border-color: #E9EDF5 !important;
}

.step {
  border-bottom-color: #E9EDF5 !important;
}

.num {
  background: #fff !important;
}

.step .num::after {
  border-color: #E9EDF5 !important;
  background: transparent !important;
}

.chip {
  background: #fff !important;
  border: 1px solid #E9EDF5 !important;
}

hr,
[class*="line"],
[class*="border"] {
  border-color: #E9EDF5 !important;
}


/* final flat fix — remove visible section rules and hard borders */
:root {
  --hairline: #F3F6FA !important;
}

* {
  box-shadow: none !important;
}

.values-band,
.cert-band,
.cta,
.flow,
.cares,
.page-hero,
footer {
  border-top-color: transparent !important;
  border-bottom-color: transparent !important;
  box-shadow: none !important;
}

.values-band,
.cert-band {
  background: #F8FAFC !important;
}

.cta {
  border: 0 !important;
  box-shadow: none !important;
}

.cta::after {
  background: linear-gradient(90deg,rgba(255,255,255,.88) 0%,rgba(255,255,255,.72) 58%,rgba(255,255,255,.54) 100%) !important;
}

.chip,
.step,
.pillar,
.card,
.num,
.btn,
.drop,
.mobile-menu {
  box-shadow: none !important;
}

.chip,
.step,
.pillar,
.card,
.num {
  border-color: #F1F4F9 !important;
}

.step {
  border-bottom-color: #F1F4F9 !important;
}

.step:nth-last-child(-n+2),
.step:last-child {
  border-bottom-color: transparent !important;
}

hr,
[class*="line"],
[class*="border"] {
  border-color: #F1F4F9 !important;
}





/* second button hover — option 2 */
.btns .btn:nth-child(2),
.cta .btns .btn:nth-child(2),
a.btn.secondary,
a.btn-outline,
.btn-outline,
.btn.ghost {
  position: relative;
  overflow: hidden;
}

.btns .btn:nth-child(2)::after,
.cta .btns .btn:nth-child(2)::after,
a.btn.secondary::after,
a.btn-outline::after,
.btn-outline::after,
.btn.ghost::after {
  content: "";
  position: absolute;
  left: 0;
  right: 0;
  bottom: 0;
  height: 1px;
  background: #5BC4E7;
  transform: scaleX(0);
  transform-origin: left;
  transition: transform .22s ease;
}

.btns .btn:nth-child(2):hover,
.cta .btns .btn:nth-child(2):hover,
a.btn.secondary:hover,
a.btn-outline:hover,
.btn-outline:hover,
.btn.ghost:hover {
  background: #fff !important;
  border-color: #D7E1F0 !important;
  color: var(--ink) !important;
  transform: translateY(-1px);
}

.btns .btn:nth-child(2):hover::after,
.cta .btns .btn:nth-child(2):hover::after,
a.btn.secondary:hover::after,
a.btn-outline:hover::after,
.btn-outline:hover::after,
.btn.ghost:hover::after {
  transform: scaleX(1);
}


/* workflow number arrows */
.step .num{
  color: var(--royal) !important;
}
.step .num::before{
  content:"";
  position:absolute;
  right:-8px;
  top:50%;
  width:8px;
  height:8px;
  margin-top:-4px;
  border-top:1.5px solid var(--royal);
  border-right:1.5px solid var(--royal);
  transform:rotate(45deg);
  transition:.22s ease;
  background:transparent;
}
.step:hover .num::before{
  border-color:#fff;
}


/* workflow arrows inside the circles */
.step .num{display:flex !important;align-items:center;justify-content:center;position:relative;overflow:hidden;padding-left:0;}
.step .num::before{content:none !important;display:none !important;}
.step .num .num-label,
.step .num .num-arrow{position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);transition:opacity .2s ease, transform .2s ease;line-height:1;}
.step .num .num-label{display:block;opacity:1;}
.step .num .num-arrow{display:block;width:7px;height:7px;border-top:1.5px solid currentColor;border-right:1.5px solid currentColor;transform:translate(-58%,-50%) rotate(45deg);opacity:0;}
.step:hover .num .num-label{opacity:0;transform:translate(-50%,-44%);}
.step:hover .num .num-arrow{opacity:1;transform:translate(-58%,-50%) rotate(45deg);}
@media(max-width:640px){.step .num .num-arrow{width:6px;height:6px;}}


/* workflow hover arrow color */
.step:hover .num .num-arrow {
  color: #E03131 !important;
  border-color: #E03131 !important;
}


/* restore CTA buttons to clean solid + outline style */
.cta .btns .btn,
.btns .btn {
  overflow: visible !important;
}

.cta .btns .btn::after,
.btns .btn::after,
a.btn.secondary::after,
a.btn-outline::after,
.btn-outline::after,
.btn.ghost::after {
  content: none !important;
  display: none !important;
}

.cta .btns .btn:first-child {
  background: var(--royal) !important;
  border: 1px solid var(--royal) !important;
  color: #fff !important;
  box-shadow: none !important;
}

.cta .btns .btn:nth-child(2) {
  background: #fff !important;
  border: 1px solid var(--royal) !important;
  color: var(--ink) !important;
  box-shadow: none !important;
}

.cta .btns .btn:nth-child(2):hover {
  background: #fff !important;
  border: 1px solid var(--royal) !important;
  color: var(--royal) !important;
  transform: none !important;
}


/* values pills — more square */
.chip,
.values-band .chip {
  border-radius: 8px !important;
  padding: 11px 18px !important;
}


/* workflow close links — match solution box link style */
.flow .close .inline-links {
  grid-column: 2;
  margin-top: 30px;
  display: flex;
  gap: 28px;
  flex-wrap: wrap;
  align-items: center;
}

.flow .close .inline-links .learn {
  color: var(--royal) !important;
  font-weight: 600;
  font-size: 14.5px;
  letter-spacing: 0;
  padding: 0;
  border: 0;
  background: transparent;
  box-shadow: none;
}

.flow .close .inline-links .learn:hover {
  color: var(--navy) !important;
}

@media(max-width:1020px){
  .flow .close .inline-links {
    grid-column: 1;
  }
}


/* final style consistency pass */
:root {
  --hairline: #EEF2F7 !important;
}

/* flat, consistent lines */
.values-band,
.cert-band,
.flow,
.cares,
.page-hero,
.cta,
footer {
  box-shadow: none !important;
}

.values-band {
  background: #F8FAFC !important;
  border-top: 1px solid #EEF2F7 !important;
  border-bottom: 1px solid #EEF2F7 !important;
}

.flow,
.cares,
.cert-band,
footer {
  border-color: #EEF2F7 !important;
}

.step {
  border-bottom-color: #EEF2F7 !important;
}

.step:nth-last-child(-n+2) {
  border-bottom-color: transparent !important;
}

/* consistent square value pills */
.values-band .chip,
.chip {
  border-radius: 8px !important;
  border: 1px solid #DDE5F2 !important;
  background: #fff !important;
  box-shadow: none !important;
  padding: 11px 18px !important;
}

/* keep D-shaped image treatment */
.page-hero .photo,
.cares .photo {
  border-radius: var(--dcurve) !important;
  overflow: hidden !important;
  box-shadow: none !important;
}

/* workflow links match solution-box links, not buttons */
.flow .close .inline-links {
  grid-column: 2;
  margin-top: 30px;
  display: flex;
  gap: 28px;
  flex-wrap: wrap;
  align-items: center;
}

.flow .close .inline-links .learn {
  display: inline-flex !important;
  align-items: center !important;
  gap: 9px !important;
  color: var(--royal) !important;
  font-weight: 600 !important;
  font-size: 14.5px !important;
  padding: 0 !important;
  border: 0 !important;
  background: transparent !important;
  box-shadow: none !important;
  text-decoration: none !important;
}

.flow .close .inline-links .learn:hover {
  gap: 14px !important;
  color: var(--navy) !important;
}

/* process icon consistency */
.step .num {
  border-color: #E1E8F4 !important;
  box-shadow: none !important;
  background: #fff !important;
  color: var(--royal) !important;
}

.step:hover .num {
  background: var(--royal) !important;
  color: #fff !important;
}

.step:hover .num .num-arrow {
  color: #E03131 !important;
  border-color: #E03131 !important;
}

/* CTA buttons remain the approved button style */
.cta .btns .btn:first-child {
  background: var(--royal) !important;
  border: 1px solid var(--royal) !important;
  color: #fff !important;
  box-shadow: none !important;
}

.cta .btns .btn:nth-child(2) {
  background: #fff !important;
  border: 1px solid var(--royal) !important;
  color: var(--ink) !important;
  box-shadow: none !important;
}

.cta .btns .btn:nth-child(2):hover {
  background: #fff !important;
  border: 1px solid var(--royal) !important;
  color: var(--royal) !important;
  transform: none !important;
}

/* responsive consistency */
@media(max-width:1020px){
  .flow .close .inline-links {
    grid-column: 1;
  }
}


/* DSG site-wide consistency pass */
:root {
  --hairline: #EEF2F7 !important;
}

/* consistent flat page rhythm */
section {
  box-shadow: none !important;
}

.util,
nav,
.page-hero,
.solutions,
.values-band,
.flow,
.cares,
.cert-band,
.cta,
footer {
  box-shadow: none !important;
}

/* consistent soft borders/lines */
.util,
nav,
.page-hero,
.values-band,
.flow,
.cares,
.cert-band,
.cta,
footer,
.card,
.pillar,
.step,
.chip,
.num {
  border-color: #EEF2F7 !important;
}

/* cards: flat, consistent, no heavy shadows */
.card,
.pillar,
.step,
.num,
.chip {
  box-shadow: none !important;
}

.card {
  border: 1px solid #E9EDF5 !important;
}

.card:hover {
  border-color: var(--royal) !important;
}

/* service-card read-more/link style */
.learn,
.card .learn,
.card a.learn {
  color: var(--royal) !important;
  font-weight: 600 !important;
  text-decoration: none !important;
}

.learn:hover,
.card .learn:hover,
.card a.learn:hover {
  color: var(--navy) !important;
}

/* CTA buttons: approved solid + outline treatment */
.cta .btns .btn:first-child,
.cta .btns a.btn:first-child {
  background: var(--royal) !important;
  border: 1px solid var(--royal) !important;
  color: #fff !important;
  box-shadow: none !important;
}

.cta .btns .btn:nth-child(2),
.cta .btns a.btn:nth-child(2) {
  background: #fff !important;
  border: 1px solid var(--royal) !important;
  color: var(--ink) !important;
  box-shadow: none !important;
}

.cta .btns .btn:nth-child(2):hover,
.cta .btns a.btn:nth-child(2):hover {
  background: #fff !important;
  border-color: var(--royal) !important;
  color: var(--royal) !important;
  transform: none !important;
}

/* certifications strip */
.cert-band {
  background: #F8FAFC !important;
  border-top: 1px solid #EEF2F7 !important;
  border-bottom: 1px solid #EEF2F7 !important;
}

/* values pills, when present */
.values-band {
  background: #F8FAFC !important;
  border-top: 1px solid #EEF2F7 !important;
  border-bottom: 1px solid #EEF2F7 !important;
}

.values-band .chip,
.chip {
  border-radius: 8px !important;
  border-color: #DDE5F2 !important;
  background: #fff !important;
}

/* image frames keep the DSG D-shape where used */
.page-hero .photo,
.cares .photo,
.hero-d,
.services-hero-d {
  border-radius: var(--dcurve) !important;
  overflow: hidden !important;
  box-shadow: none !important;
}

/* keep service end card left aligned where grids use a final single card */
.solutions .sol-grid > .card:last-child,
.services-page .sol-grid > .card:last-child {
  grid-column: auto !important;
}

/* prevent old duplicate hover underline button effects from showing inside CTA buttons */
.cta .btns .btn::after,
.cta .btns a.btn::after {
  content: none !important;
  display: none !important;
}

/* responsive consistency */
@media(max-width:1020px){
  .solutions .sol-grid,
  .services-page .sol-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
  }
}

@media(max-width:680px){
  .solutions .sol-grid,
  .services-page .sol-grid {
    grid-template-columns: 1fr !important;
  }
}


/* final CTA second button — clear default, blue rollover */
.cta .btns .btn:nth-child(2),
.cta .btns a.btn:nth-child(2) {
  background: transparent !important;
  border: 1px solid var(--royal) !important;
  color: var(--ink) !important;
  box-shadow: none !important;
}

.cta .btns .btn:nth-child(2):hover,
.cta .btns a.btn:nth-child(2):hover {
  background: var(--royal) !important;
  border-color: var(--royal) !important;
  color: #fff !important;
  transform: none !important;
}

.cta .btns .btn:nth-child(2)::after,
.cta .btns a.btn:nth-child(2)::after {
  content: none !important;
  display: none !important;
}




/* footer social links aligned right */
footer .social,
footer .socials,
footer .footer-social,
footer .social-links {
  display: flex !important;
  justify-content: flex-end !important;
  align-items: center !important;
  gap: 12px !important;
  text-align: right !important;
  margin-left: auto !important;
}

footer a[href*="linkedin"],
footer a[href*="facebook"] {
  text-align: right !important;
}


/* Who We Are — remove blue filled circle backgrounds */
.process .num,
.process-number,
.step-number,
.workflow .num,
.workflow-number,
.value-circle,
.circle,
.pill-circle {
  background: #fff !important;
  color: var(--navy) !important;
  box-shadow: none !important;
}

.process .num:hover,
.process-number:hover,
.step-number:hover,
.workflow .num:hover,
.workflow-number:hover {
  background: #fff !important;
}

/* Methodology layout — single canonical rule set.
   Keep the numbered workflow beside the methodology content at desktop/tablet widths. */
.flow-exact{padding:72px 0 88px;border-top:0;background:#fff;overflow:hidden}
.flow-exact > .wrap{
  display:grid !important;
  grid-template-columns:minmax(0,.90fr) minmax(0,1.10fr) !important;
  -moz-column-gap:clamp(32px,5.5vw,72px) !important;
       column-gap:clamp(32px,5.5vw,72px) !important;
  row-gap:0 !important;
  align-items:start !important;
}
.flow-exact .flow-left{grid-column:1 !important;max-width:520px !important;min-width:0 !important}
.flow-exact .eyebrow{margin-bottom:20px}
.flow-exact h2{max-width:500px;margin:0 0 18px;font-size:clamp(38px,4.1vw,58px);line-height:1.08;letter-spacing:-.03em;color:var(--ink)}
.flow-exact p{max-width:510px;margin:0 0 22px;color:var(--body);font-size:16px;line-height:1.7}
.flow-exact .flow-actions-stack{display:flex;flex-direction:column;gap:14px;align-items:flex-start;margin-top:22px}
.flow-exact .flow-actions-stack .btn{min-width:248px;justify-content:space-between}
.flow-exact .flow-actions-stack .btn-line{background:#fff}
.flow-exact .flow-right{
  grid-column:2 !important;
  align-self:start !important;
  min-width:0 !important;
  max-width:none !important;
  margin-top:92px !important;
  padding-top:0 !important;
}
.flow-exact .process-list{display:flex;flex-direction:column;margin-top:0 !important;padding-top:0 !important}
.flow-exact .process-row{display:grid;grid-template-columns:52px minmax(0,1fr);gap:0 20px;align-items:start}
.flow-exact .process-row .num{width:40px;height:40px;border-radius:999px;border:2px solid var(--royal);display:flex;align-items:center;justify-content:center;color:var(--royal);font-size:16px;font-weight:600;line-height:1;background:#fff;letter-spacing:.02em}
.flow-exact .process-row p{margin:0;padding-top:3px;max-width:none;font-size:16px;line-height:1.55;color:var(--ink)}

/* Keep the original side-by-side composition through normal tablet widths. */
@media (min-width:541px) and (max-width:1020px){
  .flow-exact > .wrap{
    grid-template-columns:minmax(0,.86fr) minmax(0,1.14fr) !important;
    -moz-column-gap:30px !important;
         column-gap:30px !important;
  }
  .flow-exact h2{font-size:clamp(36px,5vw,50px)}
  .flow-exact .flow-right{margin-top:88px !important}
}

/* Stack only on genuinely narrow screens. */
@media (max-width:540px){
  .flow-exact > .wrap{grid-template-columns:1fr !important;row-gap:36px !important}
  .flow-exact .flow-left,.flow-exact .flow-right{grid-column:1 !important;max-width:none !important}
  .flow-exact .flow-right{margin-top:0 !important;padding-top:0 !important}
  .flow-exact .flow-left,.flow-exact p,.flow-exact h2{max-width:none}
}

/* remove gap between certs and CTA */
.certs + .cta{margin-top:0 !important;border-top:0 !important}


/* Service detail pages added from the approved DSG subpage system */
.sub-service .element-card.has-copy{min-height:260px;align-items:flex-start;justify-content:flex-start;text-align:left;padding:24px 22px 22px;gap:10px}
.sub-service .element-card.has-copy .mark{margin:0 0 12px 0;width:54px;height:54px;flex:0 0 54px}
.sub-service .element-card.has-copy .mark svg{width:46px;height:46px}
.sub-service .element-card.has-copy h3{display:block;min-height:0;max-width:none;text-align:left;justify-content:flex-start;font-size:15px;line-height:1.25;margin:0 0 6px}
.sub-service .element-card.has-copy p{font-size:13.5px;line-height:1.55;color:var(--gray);font-weight:300;margin:0;max-width:none;text-align:left}
.sub-service .element-grid.two-col{grid-template-columns:repeat(2,minmax(0,1fr))}
.sub-service .element-grid.four-col{grid-template-columns:repeat(4,minmax(0,1fr))}
.sub-service .element-grid.auto-col{grid-template-columns:repeat(3,minmax(0,1fr))}
@media(max-width:980px){.sub-service .element-grid.two-col,.sub-service .element-grid.four-col,.sub-service .element-grid.auto-col{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:640px){.sub-service .element-grid.two-col,.sub-service .element-grid.four-col,.sub-service .element-grid.auto-col{grid-template-columns:1fr}.sub-service .element-card.has-copy{min-height:auto}}



/* who-we-are page */
.icn{width:40px;height:40px;color:var(--royal);display:block;margin-bottom:14px}

.page-hero{border-bottom:1px solid var(--hairline)}
.page-hero .wrap{display:grid;grid-template-columns:1.05fr .95fr;gap:70px;align-items:start;padding-top:0;padding-bottom:0}
.page-hero h1{font-size:clamp(32px,4vw,50px);line-height:1.14}
.page-hero p.lede{margin-top:22px;font-size:18px;max-width:560px}
.page-hero .photo{border-radius:var(--dcurve);overflow:hidden;align-self:start}
.page-hero .photo img{width:100%;height:380px;object-fit:cover;object-position:center center;display:block;transition:transform .55s ease}
.page-hero .photo:hover img{transform:scale(1.055)}
.pillars{padding:96px 0 40px}
.pillars .head{max-width:760px;margin-bottom:56px}
.pillars .head h2{font-size:clamp(26px,3vw,38px)}
.pillar-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:22px;padding-bottom:80px}
.pillar{
  position:relative;min-height:400px;border-radius:14px 14px 0 0;overflow:hidden;border:0;
  background-color:#10213f;background-repeat:no-repeat;background-size:cover;background-position:var(--bg-pos,center center);display:flex;align-items:flex-end;
  color:#fff;isolation:isolate;transition:transform .22s ease, box-shadow .22s ease;
  box-shadow:none;
}
.pillar::before{
  content:"";position:absolute;inset:0;
  background:linear-gradient(180deg,rgba(7,19,39,.14) 6%,rgba(7,19,39,.34) 42%,rgba(7,19,39,.78) 100%);
  z-index:0;transition:background .22s ease, opacity .22s ease;
}
.pillar::after{content:"";position:absolute;left:0;right:0;bottom:0;height:4px;background:var(--accent,var(--sky));z-index:1}
.pillar:hover,.pillar:focus-within{transform:translateY(-3px);box-shadow:0 10px 22px rgba(20,27,77,.16)}
.pillar:hover::before,.pillar:focus-within::before{
  background:linear-gradient(180deg,rgba(7,19,39,.24) 0%,rgba(7,19,39,.42) 28%,rgba(7,19,39,.82) 100%);
}
.pillar .icn{display:none}
.pillar .pillar-copy{position:relative;z-index:2;padding:28px 26px 24px;width:100%}
.pillar h3{font-size:clamp(24px,2.6vw,30px);line-height:1.12;margin-bottom:0;color:#fff;max-width:9ch}
.pillar p{font-size:15px;line-height:1.68;color:#fff;max-width:32ch;margin-top:18px;max-height:0;opacity:0;overflow:hidden;transform:translateY(12px);transition:max-height .28s ease, opacity .24s ease, transform .24s ease}
.pillar:hover p,.pillar:focus-within p{max-height:16rem;opacity:1;transform:translateY(0)}
@media(max-width:1020px){
  .pillar-grid{grid-template-columns:1fr;gap:18px}
  .pillar{min-height:360px}
  .pillar p{max-height:20rem;opacity:1;transform:none}
}
@media(max-width:640px){
  .pillar{min-height:330px}
  .pillar .pillar-copy{padding:24px 20px 22px}
  .pillar h3{font-size:28px}
}
.values-band{background:#F6F8FB;border-top:1px solid var(--hairline);border-bottom:1px solid var(--hairline);padding:88px 0}
.values-band .wrap{max-width:var(--max)}
.values-band .intro,.values-band .chips{max-width:900px}
.values-band h2{font-size:clamp(24px,2.8vw,34px);margin-bottom:14px}
.values-band .intro{margin-bottom:36px}
.chips{display:flex;flex-wrap:wrap;gap:12px}
.chip{border:1.5px solid var(--royal);color:var(--ink);background:#fff;border-radius:999px;padding:10px 20px;font-size:14px;font-weight:600}
.flow{border-top:1px solid var(--hairline);padding:72px 0;background:#fff;overflow:hidden}
.flow .wrap{display:block}
.flow-intro{display:grid;grid-template-columns:.9fr 1.15fr;gap:72px;align-items:start;margin-bottom:76px}
.flow .head{max-width:620px;margin:0}
.flow .head h2{font-size:clamp(30px,3.6vw,46px);line-height:1.14;max-width:660px}
.flow .lede{max-width:660px;margin:43px 0 0;font-size:16.5px;line-height:1.85;color:var(--gray)}
.flow-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:0 52px;position:relative}
.step{background:transparent;border:0;border-radius:0;padding:30px 0;transition:.22s;position:relative;min-height:132px;display:grid;grid-template-columns:64px 1fr;gap:20px;align-items:start;border-bottom:1px solid var(--hairline)}
.step:nth-last-child(-n+2){border-bottom:0}
.step:hover{transform:translateX(4px)}
.step:hover .num{background:var(--royal);color:#fff;transform:translateY(-1px)}
.step:hover .num::after{border-color:rgba(47,87,214,.18);background:rgba(47,87,214,.06)}
.step .num{font-size:14px;font-weight:700;color:var(--royal);background:#fff;border:1px solid rgba(47,87,214,.22);width:42px;height:42px;border-radius:50%;display:flex;align-items:center;justify-content:center;transition:.22s;margin-top:0;box-shadow:none;letter-spacing:0;position:relative}
.step p{font-size:16px;line-height:1.7;max-width:560px;color:var(--gray);padding-top:2px}
.flow .close{margin-top:64px;max-width:none;padding-top:32px;display:grid;grid-template-columns:.92fr 1fr;gap:64px;align-items:start}
.flow .close h3{font-size:clamp(22px,2.5vw,34px);line-height:1.25;margin-bottom:0;max-width:640px}
.flow .close p{max-width:700px;line-height:1.8}
.flow .close .btns{grid-column:2;margin-top:34px;display:flex;gap:14px;flex-wrap:wrap}
@media(max-width:1020px){
  .flow-intro{grid-template-columns:1fr;gap:22px;margin-bottom:58px}
  .flow .lede{margin:0;max-width:760px}
  .flow-grid{grid-template-columns:1fr;gap:0}
  .step:nth-last-child(-n+2){border-bottom:1px solid var(--hairline)}
  .step:last-child{border-bottom:0}
  .flow .close{grid-template-columns:1fr;gap:28px;margin-top:52px;padding-top:24px}
  .flow .close .btns{grid-column:1;margin-top:28px}
}
@media(max-width:640px){
  .flow{padding:80px 0}
  .flow-intro{margin-bottom:46px}
  .step{grid-template-columns:48px 1fr;gap:14px;padding:24px 0;min-height:auto}
  .step .num{width:38px;height:38px;font-size:13px;box-shadow:0 3px 8px rgba(20,27,77,.045)}
  .step .num::after{left:-8px;top:-7px;width:54px;height:50px}
  .step p{font-size:15px}
}
.cares{border-top:1px solid var(--hairline);padding:96px 0}
.cares .wrap{max-width:var(--max);display:grid;grid-template-columns:1.1fr .9fr;gap:70px;align-items:center}
.cares .photo{border-radius:var(--dcurve);overflow:hidden}
.cares .photo img{width:100%;height:440px;object-fit:cover;display:block}
@media(max-width:1020px){.cares .wrap{grid-template-columns:1fr;gap:44px}}
/* scroll reveal */
.reveal{opacity:0;transform:translateY(18px);transition:opacity .6s ease,transform .6s ease}
.reveal.in{opacity:1;transform:none}
@media (prefers-reduced-motion:reduce){.reveal{opacity:1;transform:none}}
.cares h2{font-size:clamp(26px,3vw,38px);margin-bottom:14px}
.cares p{max-width:720px;margin-bottom:36px}
.orgs{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px;max-width:720px}
.org-logo{display:flex;align-items:center;justify-content:center;background:#fff;border:1px solid var(--hairline);border-radius:18px;padding:18px;min-height:112px;transition:.22s;box-shadow:0 1px 0 rgba(20,27,77,.02)}
.org-logo:hover{border-color:var(--royal);transform:translateY(-1px);box-shadow:0 8px 24px rgba(20,27,77,.08)}
.org-logo img{display:block;max-width:100%;max-height:72px;width:auto;height:auto;object-fit:contain}
@media(max-width:900px){.orgs{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:560px){.orgs{grid-template-columns:1fr}}
@media(max-width:1020px){.page-hero .wrap{grid-template-columns:1fr;gap:44px}.pillar-grid{grid-template-columns:1fr}.flow-grid{grid-template-columns:1fr 1fr}}
@media(max-width:640px){.flow-grid{grid-template-columns:1fr}}



/* ── call to action banner from Who We Are ── */
.cta{border-top:0;position:relative;overflow:hidden;padding:70px 0;margin-top:0}
.cta video{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
.cta::after{content:"";position:absolute;inset:0;background:linear-gradient(90deg,rgba(255,255,255,.85) 0%,rgba(255,255,255,.68) 55%,rgba(255,255,255,.45) 100%)}
.cta .wrap{max-width:var(--max);position:relative;z-index:1;display:flex;align-items:center;justify-content:space-between;gap:40px;flex-wrap:wrap}
.cta h2{font-size:clamp(26px,3vw,38px)}
.cta p{margin:14px 0 0;max-width:560px}
.cta .btns{display:flex;gap:14px;flex-wrap:wrap;flex-shrink:0}


/* final cleanup — remove shadows and align value pills */
.card,
.pillar,
.flow-card,
.value,
.values .pill,
.values-grid span,
.values-grid a,
.value-pill,
.workflow-card,
.stat,
.cta,
.photo,
.page-hero .photo {
  box-shadow: none !important;
}

.values .wrap,
.values-wrap,
.values .content,
.values-copy {
  max-width: var(--max);
}

.values-grid,
.values-list,
.pills,
.value-pills {
  max-width: 820px;
  display: flex;
  flex-wrap: wrap;
  gap: 12px;
  align-items: flex-start;
}

.values-grid span,
.values-grid a,
.pills span,
.pills a,
.value-pills span,
.value-pills a {
  box-shadow: none !important;
}


/* final correction — restore D-shaped image frames, no shadows */
.page-hero .photo,
.cares .photo {
  border-radius: var(--dcurve) !important;
  box-shadow: none !important;
}

.page-hero .photo img,
.cares .photo img {
  display: block;
  width: 100%;
  object-fit: cover;
}


/* values band width fix */
.values-band .wrap{max-width:var(--max) !important;}
.values-band .intro,.values-band .chips{max-width:none !important;}
.values-band .chips{width:100% !important;}


/* final light gray treatment */
.values-band {
  background: #F6F8FB !important;
  border-top-color: #E9EDF5 !important;
  border-bottom-color: #E9EDF5 !important;
}

.flow,
.pillars,
.cares,
.cert-band,
.cta {
  border-color: #E9EDF5 !important;
}

.step,
.pillar,
.card,
.chip,
.num {
  border-color: rgba(20,27,77,.08) !important;
}

.chip {
  background: #fff !important;
}

.flow,
.cares {
  background: #fff !important;
}

section[style*="background"],
.light-gray,
.soft-gray {
  background-color: #F8FAFC !important;
}


/* final flat line treatment */
:root {
  --hairline: #E9EDF5 !important;
}

* {
  box-shadow: none !important;
}

.page-hero,
.values-band,
.flow,
.cares,
.cert-band,
.cta,
footer,
.pillar,
.card,
.chip,
.step,
.num,
.photo,
.page-hero .photo,
.cares .photo,
nav,
.util {
  border-color: #E9EDF5 !important;
  box-shadow: none !important;
}

.values-band {
  background: #F6F8FB !important;
  border-top: 1px solid #E9EDF5 !important;
  border-bottom: 1px solid #E9EDF5 !important;
}

.step,
.pillar,
.card,
.chip,
.num {
  border-color: #E9EDF5 !important;
}

.step {
  border-bottom-color: #E9EDF5 !important;
}

.num {
  background: #fff !important;
}

.step .num::after {
  border-color: #E9EDF5 !important;
  background: transparent !important;
}

.chip {
  background: #fff !important;
  border: 1px solid #E9EDF5 !important;
}

hr,
[class*="line"],
[class*="border"] {
  border-color: #E9EDF5 !important;
}


/* final flat fix — remove visible section rules and hard borders */
:root {
  --hairline: #F3F6FA !important;
}

* {
  box-shadow: none !important;
}

.values-band,
.cert-band,
.cta,
.flow,
.cares,
.page-hero,
footer {
  border-top-color: transparent !important;
  border-bottom-color: transparent !important;
  box-shadow: none !important;
}

.values-band,
.cert-band {
  background: #F8FAFC !important;
}

.cta {
  border: 0 !important;
  box-shadow: none !important;
}

.cta::after {
  background: linear-gradient(90deg,rgba(255,255,255,.88) 0%,rgba(255,255,255,.72) 58%,rgba(255,255,255,.54) 100%) !important;
}

.chip,
.step,
.pillar,
.card,
.num,
.btn,
.drop,
.mobile-menu {
  box-shadow: none !important;
}

.chip,
.step,
.pillar,
.card,
.num {
  border-color: #F1F4F9 !important;
}

.step {
  border-bottom-color: #F1F4F9 !important;
}

.step:nth-last-child(-n+2),
.step:last-child {
  border-bottom-color: transparent !important;
}

hr,
[class*="line"],
[class*="border"] {
  border-color: #F1F4F9 !important;
}





/* second button hover — option 2 */
.btns .btn:nth-child(2),
.cta .btns .btn:nth-child(2),
a.btn.secondary,
a.btn-outline,
.btn-outline,
.btn.ghost {
  position: relative;
  overflow: hidden;
}

.btns .btn:nth-child(2)::after,
.cta .btns .btn:nth-child(2)::after,
a.btn.secondary::after,
a.btn-outline::after,
.btn-outline::after,
.btn.ghost::after {
  content: "";
  position: absolute;
  left: 0;
  right: 0;
  bottom: 0;
  height: 1px;
  background: #5BC4E7;
  transform: scaleX(0);
  transform-origin: left;
  transition: transform .22s ease;
}

.btns .btn:nth-child(2):hover,
.cta .btns .btn:nth-child(2):hover,
a.btn.secondary:hover,
a.btn-outline:hover,
.btn-outline:hover,
.btn.ghost:hover {
  background: #fff !important;
  border-color: #D7E1F0 !important;
  color: var(--ink) !important;
  transform: translateY(-1px);
}

.btns .btn:nth-child(2):hover::after,
.cta .btns .btn:nth-child(2):hover::after,
a.btn.secondary:hover::after,
a.btn-outline:hover::after,
.btn-outline:hover::after,
.btn.ghost:hover::after {
  transform: scaleX(1);
}


/* workflow number arrows */
.step .num{
  color: var(--royal) !important;
}
.step .num::before{
  content:"";
  position:absolute;
  right:-8px;
  top:50%;
  width:8px;
  height:8px;
  margin-top:-4px;
  border-top:1.5px solid var(--royal);
  border-right:1.5px solid var(--royal);
  transform:rotate(45deg);
  transition:.22s ease;
  background:transparent;
}
.step:hover .num::before{
  border-color:#fff;
}


/* workflow arrows inside the circles */
.step .num{display:flex !important;align-items:center;justify-content:center;position:relative;overflow:hidden;padding-left:0;}
.step .num::before{content:none !important;display:none !important;}
.step .num .num-label,
.step .num .num-arrow{position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);transition:opacity .2s ease, transform .2s ease;line-height:1;}
.step .num .num-label{display:block;opacity:1;}
.step .num .num-arrow{display:block;width:7px;height:7px;border-top:1.5px solid currentColor;border-right:1.5px solid currentColor;transform:translate(-58%,-50%) rotate(45deg);opacity:0;}
.step:hover .num .num-label{opacity:0;transform:translate(-50%,-44%);}
.step:hover .num .num-arrow{opacity:1;transform:translate(-58%,-50%) rotate(45deg);}
@media(max-width:640px){.step .num .num-arrow{width:6px;height:6px;}}


/* workflow hover arrow color */
.step:hover .num .num-arrow {
  color: #E03131 !important;
  border-color: #E03131 !important;
}


/* restore CTA buttons to clean solid + outline style */
.cta .btns .btn,
.btns .btn {
  overflow: visible !important;
}

.cta .btns .btn::after,
.btns .btn::after,
a.btn.secondary::after,
a.btn-outline::after,
.btn-outline::after,
.btn.ghost::after {
  content: none !important;
  display: none !important;
}

.cta .btns .btn:first-child {
  background: var(--royal) !important;
  border: 1px solid var(--royal) !important;
  color: #fff !important;
  box-shadow: none !important;
}

.cta .btns .btn:nth-child(2) {
  background: #fff !important;
  border: 1px solid var(--royal) !important;
  color: var(--ink) !important;
  box-shadow: none !important;
}

.cta .btns .btn:nth-child(2):hover {
  background: #fff !important;
  border: 1px solid var(--royal) !important;
  color: var(--royal) !important;
  transform: none !important;
}


/* values pills — more square */
.chip,
.values-band .chip {
  border-radius: 8px !important;
  padding: 11px 18px !important;
}


/* workflow close links — match solution box link style */
.flow .close .inline-links {
  grid-column: 2;
  margin-top: 30px;
  display: flex;
  gap: 28px;
  flex-wrap: wrap;
  align-items: center;
}

.flow .close .inline-links .learn {
  color: var(--royal) !important;
  font-weight: 600;
  font-size: 14.5px;
  letter-spacing: 0;
  padding: 0;
  border: 0;
  background: transparent;
  box-shadow: none;
}

.flow .close .inline-links .learn:hover {
  color: var(--navy) !important;
}

@media(max-width:1020px){
  .flow .close .inline-links {
    grid-column: 1;
  }
}


/* final style consistency pass */
:root {
  --hairline: #EEF2F7 !important;
}

/* flat, consistent lines */
.values-band,
.cert-band,
.flow,
.cares,
.page-hero,
.cta,
footer {
  box-shadow: none !important;
}

.values-band {
  background: #F8FAFC !important;
  border-top: 1px solid #EEF2F7 !important;
  border-bottom: 1px solid #EEF2F7 !important;
}

.flow,
.cares,
.cert-band,
footer {
  border-color: #EEF2F7 !important;
}

.step {
  border-bottom-color: #EEF2F7 !important;
}

.step:nth-last-child(-n+2) {
  border-bottom-color: transparent !important;
}

/* consistent square value pills */
.values-band .chip,
.chip {
  border-radius: 8px !important;
  border: 1px solid #DDE5F2 !important;
  background: #fff !important;
  box-shadow: none !important;
  padding: 11px 18px !important;
}

/* keep D-shaped image treatment */
.page-hero .photo,
.cares .photo {
  border-radius: var(--dcurve) !important;
  overflow: hidden !important;
  box-shadow: none !important;
}

/* workflow links match solution-box links, not buttons */
.flow .close .inline-links {
  grid-column: 2;
  margin-top: 30px;
  display: flex;
  gap: 28px;
  flex-wrap: wrap;
  align-items: center;
}

.flow .close .inline-links .learn {
  display: inline-flex !important;
  align-items: center !important;
  gap: 9px !important;
  color: var(--royal) !important;
  font-weight: 600 !important;
  font-size: 14.5px !important;
  padding: 0 !important;
  border: 0 !important;
  background: transparent !important;
  box-shadow: none !important;
  text-decoration: none !important;
}

.flow .close .inline-links .learn:hover {
  gap: 14px !important;
  color: var(--navy) !important;
}

/* process icon consistency */
.step .num {
  border-color: #E1E8F4 !important;
  box-shadow: none !important;
  background: #fff !important;
  color: var(--royal) !important;
}

.step:hover .num {
  background: var(--royal) !important;
  color: #fff !important;
}

.step:hover .num .num-arrow {
  color: #E03131 !important;
  border-color: #E03131 !important;
}

/* CTA buttons remain the approved button style */
.cta .btns .btn:first-child {
  background: var(--royal) !important;
  border: 1px solid var(--royal) !important;
  color: #fff !important;
  box-shadow: none !important;
}

.cta .btns .btn:nth-child(2) {
  background: #fff !important;
  border: 1px solid var(--royal) !important;
  color: var(--ink) !important;
  box-shadow: none !important;
}

.cta .btns .btn:nth-child(2):hover {
  background: #fff !important;
  border: 1px solid var(--royal) !important;
  color: var(--royal) !important;
  transform: none !important;
}

/* responsive consistency */
@media(max-width:1020px){
  .flow .close .inline-links {
    grid-column: 1;
  }
}


/* DSG site-wide consistency pass */
:root {
  --hairline: #EEF2F7 !important;
}

/* consistent flat page rhythm */
section {
  box-shadow: none !important;
}

.util,
nav,
.page-hero,
.solutions,
.values-band,
.flow,
.cares,
.cert-band,
.cta,
footer {
  box-shadow: none !important;
}

/* consistent soft borders/lines */
.util,
nav,
.page-hero,
.values-band,
.flow,
.cares,
.cert-band,
.cta,
footer,
.card,
.pillar,
.step,
.chip,
.num {
  border-color: #EEF2F7 !important;
}

/* cards: flat, consistent, no heavy shadows */
.card,
.pillar,
.step,
.num,
.chip {
  box-shadow: none !important;
}

.card {
  border: 1px solid #E9EDF5 !important;
}

.card:hover {
  border-color: var(--royal) !important;
}

/* service-card read-more/link style */
.learn,
.card .learn,
.card a.learn {
  color: var(--royal) !important;
  font-weight: 600 !important;
  text-decoration: none !important;
}

.learn:hover,
.card .learn:hover,
.card a.learn:hover {
  color: var(--navy) !important;
}

/* CTA buttons: approved solid + outline treatment */
.cta .btns .btn:first-child,
.cta .btns a.btn:first-child {
  background: var(--royal) !important;
  border: 1px solid var(--royal) !important;
  color: #fff !important;
  box-shadow: none !important;
}

.cta .btns .btn:nth-child(2),
.cta .btns a.btn:nth-child(2) {
  background: #fff !important;
  border: 1px solid var(--royal) !important;
  color: var(--ink) !important;
  box-shadow: none !important;
}

.cta .btns .btn:nth-child(2):hover,
.cta .btns a.btn:nth-child(2):hover {
  background: #fff !important;
  border-color: var(--royal) !important;
  color: var(--royal) !important;
  transform: none !important;
}

/* certifications strip */
.cert-band {
  background: #F8FAFC !important;
  border-top: 1px solid #EEF2F7 !important;
  border-bottom: 1px solid #EEF2F7 !important;
}

/* values pills, when present */
.values-band {
  background: #F8FAFC !important;
  border-top: 1px solid #EEF2F7 !important;
  border-bottom: 1px solid #EEF2F7 !important;
}

.values-band .chip,
.chip {
  border-radius: 8px !important;
  border-color: #DDE5F2 !important;
  background: #fff !important;
}

/* image frames keep the DSG D-shape where used */
.page-hero .photo,
.cares .photo,
.hero-d,
.services-hero-d {
  border-radius: var(--dcurve) !important;
  overflow: hidden !important;
  box-shadow: none !important;
}

/* keep service end card left aligned where grids use a final single card */
.solutions .sol-grid > .card:last-child,
.services-page .sol-grid > .card:last-child {
  grid-column: auto !important;
}

/* prevent old duplicate hover underline button effects from showing inside CTA buttons */
.cta .btns .btn::after,
.cta .btns a.btn::after {
  content: none !important;
  display: none !important;
}

/* responsive consistency */
@media(max-width:1020px){
  .solutions .sol-grid,
  .services-page .sol-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
  }
}

@media(max-width:680px){
  .solutions .sol-grid,
  .services-page .sol-grid {
    grid-template-columns: 1fr !important;
  }
}


/* final CTA second button — clear default, blue rollover */
.cta .btns .btn:nth-child(2),
.cta .btns a.btn:nth-child(2) {
  background: transparent !important;
  border: 1px solid var(--royal) !important;
  color: var(--ink) !important;
  box-shadow: none !important;
}

.cta .btns .btn:nth-child(2):hover,
.cta .btns a.btn:nth-child(2):hover {
  background: var(--royal) !important;
  border-color: var(--royal) !important;
  color: #fff !important;
  transform: none !important;
}

.cta .btns .btn:nth-child(2)::after,
.cta .btns a.btn:nth-child(2)::after {
  content: none !important;
  display: none !important;
}


/* utility strip icons */
.util .wrap {
  display: flex !important;
  align-items: center !important;
  justify-content: flex-end !important;
  gap: 28px !important;
  flex-wrap: wrap !important;
}

.util .tel,
.util .util-login,
.util .util-contact {
  display: inline-flex !important;
  align-items: center !important;
  gap: 8px !important;
}

.util .tel::before,
.util .util-login::before,
.util .util-contact::before {
  content: "" !important;
  display: inline-block !important;
  width: 16px !important;
  height: 16px !important;
  background-repeat: no-repeat !important;
  background-position: center !important;
  background-size: 16px 16px !important;
  flex: 0 0 16px !important;
}

.util .tel::before {
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none'%3E%3Cpath d='M6.6 10.8a15.1 15.1 0 0 0 6.6 6.6l2.2-2.2a1 1 0 0 1 1-.24c1.06.35 2.2.54 3.4.54a1 1 0 0 1 1 1V20a1 1 0 0 1-1 1C10.3 21 3 13.7 3 4.2a1 1 0 0 1 1-1H7.5a1 1 0 0 1 1 1c0 1.2.19 2.34.54 3.4a1 1 0 0 1-.24 1l-2.2 2.2Z' stroke='%23141B4D' stroke-width='1.7' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E") !important;
}

.util .util-login::before {
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none'%3E%3Cpath d='M15 3h3a2 2 0 0 1 2 2v14a2 2 0 0 1-2 2h-3' stroke='%23141B4D' stroke-width='1.7' stroke-linecap='round' stroke-linejoin='round'/%3E%3Cpath d='M10 17l5-5-5-5' stroke='%23141B4D' stroke-width='1.7' stroke-linecap='round' stroke-linejoin='round'/%3E%3Cpath d='M15 12H4' stroke='%23141B4D' stroke-width='1.7' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E") !important;
}

.util .util-contact::before {
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none'%3E%3Cpath d='M4 6h16v12H4z' stroke='%23141B4D' stroke-width='1.7' stroke-linejoin='round'/%3E%3Cpath d='m4.5 7 7.5 6 7.5-6' stroke='%23141B4D' stroke-width='1.7' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E") !important;
}

@media(max-width: 700px) {
  .util .wrap {
    justify-content: center !important;
    gap: 16px 20px !important;
  }
}


/* footer social links aligned right */
footer .social,
footer .socials,
footer .footer-social,
footer .social-links {
  display: flex !important;
  justify-content: flex-end !important;
  align-items: center !important;
  gap: 12px !important;
  text-align: right !important;
  margin-left: auto !important;
}

footer a[href*="linkedin"],
footer a[href*="facebook"] {
  text-align: right !important;
}


/* Who We Are — remove blue filled circle backgrounds */
.process .num,
.process-number,
.step-number,
.workflow .num,
.workflow-number,
.value-circle,
.circle,
.pill-circle {
  background: #fff !important;
  color: var(--navy) !important;
  box-shadow: none !important;
}

.process .num:hover,
.process-number:hover,
.step-number:hover,
.workflow .num:hover,
.workflow-number:hover {
  background: #fff !important;
}


/* concept review banner */
.review-banner {
  position: sticky;
  top: 0;
  z-index: 9999;
  background: #141B4D;
  color: #fff;
  font-family: inherit;
  font-size: 14px;
  line-height: 1.35;
  border-bottom: 1px solid rgba(255,255,255,.18);
}

.review-banner .review-wrap {
  max-width: 1180px;
  margin: 0 auto;
  padding: 10px 24px;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 18px;
}

.review-banner strong {
  font-weight: 700;
}

.review-banner a {
  color: #fff !important;
  text-decoration: none;
  border-bottom: 1px solid rgba(255,255,255,.55);
  white-space: nowrap;
}

.review-banner a:hover {
  border-bottom-color: #fff;
}

@media(max-width: 700px) {
  .review-banner .review-wrap {
    align-items: flex-start;
    flex-direction: column;
    gap: 6px;
  }
}




/* Workflow: line/arrow is anchored to the circle column only */
.flow-exact .process-list-final {
  display: flex !important;
  flex-direction: column !important;
  gap: 0 !important;
}

.flow-exact .process-list-final .process-row {
  position: relative !important;
  display: grid !important;
  grid-template-columns: 52px minmax(0, 1fr) !important;
  gap: 0 20px !important;
  align-items: start !important;
  min-height: 116px !important;
  padding: 0 !important;
}

.flow-exact .process-list-final .process-row:last-child {
  min-height: 0 !important;
}

.flow-exact .process-list-final .num {
  width: 40px !important;
  height: 40px !important;
  border-radius: 999px !important;
  border: 1.25px solid #DDE6F2 !important;
  color: var(--royal, #315CFF) !important;
  background: #fff !important;
  display: flex !important;
  align-items: center !important;
  justify-content: center !important;
  font-size: 16px !important;
  font-weight: 600 !important;
  line-height: 1 !important;
  position: relative !important;
  z-index: 4 !important;
}

/* remove inherited pseudo-elements */
.flow-exact .process-list-final .num::before,
.flow-exact .process-list-final .num::after,
.flow-exact .process-list-final .process-row::before,
.flow-exact .process-list-final .process-row::after {
  content: none !important;
  display: none !important;
}

/* green connector: starts at bottom of current circle and runs to just above arrowhead */
.flow-exact .process-list-final .process-row:not(:last-child)::before {
  content: "" !important;
  display: block !important;
  position: absolute !important;
  left: 20px !important;
  top: 40px !important;
  bottom: 10px !important;
  width: 1.5px !important;
  background: #1A8F6A !important;
  z-index: 1 !important;
}

/* green arrowhead: sits on top edge of the next circle */
.flow-exact .process-list-final .process-row:not(:last-child)::after {
  content: "" !important;
  display: block !important;
  position: absolute !important;
  left: 13px !important;
  bottom: 0 !important;
  width: 0 !important;
  height: 0 !important;
  border-left: 7px solid transparent !important;
  border-right: 7px solid transparent !important;
  border-top: 10px solid #1A8F6A !important;
  z-index: 3 !important;
}

.flow-exact .process-list-final .process-copy h3 {
  margin: 0 0 5px 0 !important;
  color: var(--navy, #141B4D) !important;
  font-size: 17px !important;
  line-height: 1.22 !important;
  font-weight: 700 !important;
}

.flow-exact .process-list-final .process-copy p {
  margin: 0 !important;
  padding-top: 0 !important;
  max-width: none !important;
  color: var(--body, #5E6572) !important;
  font-size: 15.5px !important;
  line-height: 1.55 !important;
}

.flow-exact .process-list-final .process-row:hover .num,
.flow-exact .process-list-final .process-row:focus-within .num {
  border-color: var(--coral, #E85744) !important;
  color: var(--coral, #E85744) !important;
}



/* tighter workflow spacing while keeping one green connector/arrow in the circle column */
.flow-exact .process-list-final .process-row {
  min-height: 92px !important;
}

.flow-exact .process-list-final .process-row:last-child {
  min-height: 0 !important;
}

.flow-exact .process-list-final .process-row:not(:last-child)::before {
  top: 40px !important;
  bottom: 10px !important;
  left: 20px !important;
  width: 1.5px !important;
  background: #1A8F6A !important;
}

.flow-exact .process-list-final .process-row:not(:last-child)::after {
  left: 13px !important;
  bottom: 0 !important;
  border-left: 7px solid transparent !important;
  border-right: 7px solid transparent !important;
  border-top: 10px solid #1A8F6A !important;
}



/* Safe zoom: preserves original image size/dimensions and only scales visually on hover */
body .photo,
body .ph,
body .feature-image-right {
  overflow: hidden !important;
}

body .photo img,
body .ph img,
body .feature-image-right img {
  transform: scale(1) !important;
  transform-origin: center center !important;
  transition: transform .55s ease !important;
  will-change: transform !important;
}

body .photo:hover img,
body .ph:hover img,
body .feature-image-right:hover img,
body .photo:focus-within img,
body .ph:focus-within img,
body .feature-image-right:focus-within img {
  transform: scale(1.06) !important;
}



/* Values pill rollover */
.values-band .chip {
  transition: border-color .22s ease, color .22s ease, box-shadow .22s ease, transform .22s ease, background-color .22s ease !important;
}

.values-band .chip:hover,
.values-band .chip:focus {
  border-color: var(--royal, #315CFF) !important;
  color: var(--royal, #315CFF) !important;
  background: #fff !important;
  transform: translateY(-1px) !important;
  box-shadow: 0 8px 24px rgba(20,27,77,.08) !important;
}



.values-band .chip:hover,
.values-band .chip:focus {
  box-shadow: none !important;
}



.org-logo {
  cursor: pointer !important;
  text-decoration: none !important;
}

.org-logo img {
  pointer-events: none !important;
}

.org-logo:focus-visible {
  outline: 2px solid var(--royal, #315CFF) !important;
  outline-offset: 4px !important;
}



/* Sprint 2 — Who We Are pillar hover readability */
.pillar {
  border: 1px solid rgba(20,27,77,.10) !important;
}

.pillar::before {
  background: linear-gradient(180deg, rgba(7,19,39,.24) 0%, rgba(7,19,39,.50) 46%, rgba(7,19,39,.90) 100%) !important;
}

.pillar:hover,
.pillar:focus-within {
  border-color: var(--accent, var(--royal)) !important;
}

.pillar:hover::before,
.pillar:focus-within::before {
  background: linear-gradient(180deg, rgba(6,14,31,.58) 0%, rgba(6,14,31,.78) 42%, rgba(6,14,31,.97) 100%) !important;
}

.pillar:hover .pillar-copy,
.pillar:focus-within .pillar-copy {
  background: linear-gradient(180deg, rgba(6,14,31,0) 0%, rgba(6,14,31,.42) 100%);
}

.pillar p {
  color: rgba(255,255,255,.96) !important;
  text-shadow: 0 1px 2px rgba(0,0,0,.34);
}

.pillar h3 {
  text-shadow: 0 1px 2px rgba(0,0,0,.28);
}



/* Sprint 2 photo correction: actual uploaded image, lighter photos, no image-box border */
body .page-hero .photo,
body .cares .photo,
body .photo {
  border: 0 !important;
  outline: 0 !important;
  box-shadow: none !important;
  background: transparent !important;
}

body .page-hero .photo img,
body .cares .photo img,
body .photo img {
  filter: brightness(1.22) contrast(0.94) saturate(0.96) !important;
}

body .page-hero .photo::before,
body .page-hero .photo::after,
body .cares .photo::before,
body .cares .photo::after,
body .photo::before,
body .photo::after {
  content: none !important;
  display: none !important;
}



/* Mission image is embedded inline on the Mission Statement card. */
body .mission-card {
  background-size: cover !important;
  background-position: var(--bg-pos, 52% center) !important;
}



/* Final Sprint 2 correction: mission photo is embedded; row images are lighter by default, darker only on hover for readable copy. */
body .pillar {
  background-size: cover !important;
  background-repeat: no-repeat !important;
  background-position: var(--bg-pos, center center) !important;
  border: 1px solid rgba(20,27,77,.10) !important;
  box-shadow: none !important;
}

body .pillar::before {
  background: linear-gradient(180deg, rgba(7,19,39,.04) 0%, rgba(7,19,39,.16) 44%, rgba(7,19,39,.62) 100%) !important;
}

body .pillar:hover,
body .pillar:focus-within {
  border-color: var(--accent, var(--royal)) !important;
  box-shadow: none !important;
}

body .pillar:hover::before,
body .pillar:focus-within::before {
  background: linear-gradient(180deg, rgba(6,14,31,.42) 0%, rgba(6,14,31,.66) 42%, rgba(6,14,31,.94) 100%) !important;
}

body .pillar .pillar-copy {
  background: linear-gradient(180deg, rgba(6,14,31,0) 0%, rgba(6,14,31,.18) 100%) !important;
}

body .pillar:hover .pillar-copy,
body .pillar:focus-within .pillar-copy {
  background: linear-gradient(180deg, rgba(6,14,31,0) 0%, rgba(6,14,31,.40) 100%) !important;
}

body .pillar h3,
body .pillar p {
  text-shadow: 0 1px 3px rgba(0,0,0,.48) !important;
}



/* Final Sprint 2 correction: no border/outline around the mission-quality-culture image cards. */
body .pillar,
body .pillar:hover,
body .pillar:focus,
body .pillar:focus-visible,
body .pillar:focus-within,
body .pillar.reveal,
body .mission-card {
  border: 0 !important;
  outline: 0 !important;
  box-shadow: none !important;
}

body .pillar::after {
  height: 0 !important;
  display: none !important;
}

body .pillar::before {
  border: 0 !important;
  outline: 0 !important;
  box-shadow: none !important;
}



/* Final header label + Contact Us outline hover readability fix */
.util a[href*="contact-us"]:hover,
.mobile-menu a[href*="contact-us"]:hover {
  color: var(--royal) !important;
}

a.btn.btn-line[href*="contact-us"]:hover,
.flow-exact .flow-actions-stack a.btn-line[href*="contact-us"]:hover,
.flow .close .btns a.btn-line[href*="contact-us"]:hover {
  background: #fff !important;
  color: var(--royal) !important;
  border-color: var(--royal) !important;
  box-shadow: none !important;
}



/* Final banner D-image curve adjustment: slightly softer/straighter curve while preserving the D shape. */
.page-hero .photo,
.sub-service .sub-hero .photo,
.hero-d,
.services-hero-d {
  border-radius: 0 112px 112px 0 !important;
}



/* Square-grid background for second content sections on subpages */
.subpage-square-bg{
  position:relative !important;
  overflow:hidden !important;
  background-color:#fff !important;
  background-image:
    linear-gradient(rgba(20,27,77,.075) 1px, transparent 1px),
    linear-gradient(90deg, rgba(20,27,77,.075) 1px, transparent 1px),
    linear-gradient(rgba(78,195,232,.038) 1px, transparent 1px),
    linear-gradient(90deg, rgba(78,195,232,.038) 1px, transparent 1px) !important;
  background-size:36px 36px,36px 36px,144px 144px,144px 144px !important;
  background-position:0 0,0 0,0 0,0 0 !important;
}
.subpage-square-bg::before{
  content:"";
  position:absolute;
  inset:0;
  pointer-events:none;
  background:linear-gradient(180deg, rgba(255,255,255,.34), rgba(255,255,255,.18));
  z-index:0;
}
.subpage-square-bg > .wrap,
.subpage-square-bg .wrap{
  position:relative;
  z-index:1;
}
.subpage-square-bg .card,
.subpage-square-bg .pillar,
.subpage-square-bg .news-feature-split,
.subpage-square-bg .news-card,
.subpage-square-bg .detail-grid{
  position:relative;
  z-index:1;
}
@media(max-width:760px){
  .subpage-square-bg{
    background-size:30px 30px,30px 30px,120px 120px,120px 120px !important;
  }
}



/* Final square-grid treatment: slightly stronger lines with smooth fade into white sections */
.subpage-square-bg,
.news-pattern,
.cybersecurity-page .detail.subpage-square-bg {
  position: relative !important;
  overflow: hidden !important;
  background-color: #fff !important;
  background-image:
    linear-gradient(rgba(20,27,77,.048) 1px, transparent 1px),
    linear-gradient(90deg, rgba(20,27,77,.048) 1px, transparent 1px),
    linear-gradient(rgba(78,195,232,.024) 1px, transparent 1px),
    linear-gradient(90deg, rgba(78,195,232,.024) 1px, transparent 1px) !important;
  background-size: 36px 36px, 36px 36px, 144px 144px, 144px 144px !important;
  background-position: 0 0, 0 0, 0 0, 0 0 !important;
  border-top: 0 !important;
  border-bottom: 0 !important;
}
.subpage-square-bg::before,
.news-pattern::before,
.cybersecurity-page .detail.subpage-square-bg::before {
  content: "" !important;
  position: absolute !important;
  inset: 0 !important;
  pointer-events: none !important;
  z-index: 0 !important;
  background:
    linear-gradient(180deg,
      #fff 0%,
      rgba(255,255,255,.86) 8%,
      rgba(255,255,255,.46) 18%,
      rgba(255,255,255,.12) 42%,
      rgba(255,255,255,.12) 58%,
      rgba(255,255,255,.46) 82%,
      rgba(255,255,255,.86) 92%,
      #fff 100%) !important;
}
.subpage-square-bg > .wrap,
.subpage-square-bg .wrap,
.news-pattern > .wrap,
.news-pattern .wrap {
  position: relative !important;
  z-index: 1 !important;
}
.subpage-square-bg .card,
.subpage-square-bg .pillar,
.subpage-square-bg .news-feature-split,
.subpage-square-bg .news-card,
.subpage-square-bg .detail-grid,
.news-pattern .post {
  position: relative !important;
  z-index: 1 !important;
}
@media (max-width:760px){
  .subpage-square-bg,
  .news-pattern,
  .cybersecurity-page .detail.subpage-square-bg {
    background-size: 30px 30px, 30px 30px, 120px 120px, 120px 120px !important;
  }
}

/* Remove the redundant content divider immediately above the certification strip. */
.sub-service .detail .elements,
.cybersecurity-page .elements {
  border-bottom: 0 !important;
}



/* Match the approved Visit Ryskview solid-blue hover everywhere. */
html body a.btn.btn-navy:hover,
html body button.btn.btn-navy:hover,
html body .cta .btns a.btn.btn-navy:first-child:hover,
html body .cta .btns button.btn.btn-navy:first-child:hover,
html body .flow-actions-stack a.btn.btn-navy:hover,
html body .flow .close .btns a.btn.btn-navy:hover {
  background: var(--navy) !important;
  border-color: var(--navy) !important;
  color: #fff !important;
  transform: none !important;
  box-shadow: none !important;
}



/* Standards section: visually separates the white Methodology section from the light-gray Values band. */
.standards-section{
  position:relative;
  padding:92px 0 96px;
  border-top:1px solid var(--hairline);
  border-bottom:1px solid var(--hairline);
  background-color:#F3FAFD;
  background-image:
    linear-gradient(rgba(20,27,77,.035) 1px, transparent 1px),
    linear-gradient(90deg, rgba(20,27,77,.035) 1px, transparent 1px);
  background-size:40px 40px;
  overflow:hidden;
}
.standards-section::before{
  content:"";
  position:absolute;
  inset:0;
  pointer-events:none;
  background:linear-gradient(180deg,rgba(255,255,255,.62),rgba(243,250,253,.72));
}
.standards-section .wrap{position:relative;z-index:1;max-width:var(--max)}
.standards-section .standards-head{max-width:930px;margin-bottom:48px}
.standards-section .standards-head h2{
  margin:0 0 18px;
  max-width:900px;
  font-size:clamp(34px,4vw,52px);
  line-height:1.1;
  letter-spacing:-.025em;
  color:var(--ink);
}
.standards-section .standards-head p{
  margin:0;
  max-width:900px;
  font-size:17px;
  line-height:1.75;
  color:var(--body);
}
.standards-grid{
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:0 54px;
  border-top:1px solid rgba(20,27,77,.14);
}
.standards-grid > .standard-item,
.standards-grid > .wp-block-group__inner-container > .standard-item{
  padding:28px 0 30px;
  border-bottom:1px solid rgba(20,27,77,.14);
}
.standard-subitem-cmmc{
  margin-top:24px !important;
  padding-top:22px;
  border-top:1px solid rgba(20,27,77,.14);
}
/* Gutenberg can insert an inner-container between the grid and each certification.
   Keep the original two-row spacing even when that wrapper is present. */
.standards-grid > .wp-block-group__inner-container > .standard-item{
  min-width:0;
}
.standard-item h3{
  margin:0 0 9px;
  font-size:20px;
  line-height:1.28;
  color:var(--ink);
}
.standard-item p{
  margin:0;
  font-size:15.8px;
  line-height:1.7;
  color:var(--body);
}
.standard-item a{
  display:inline-block;
  margin-top:12px;
  color:var(--royal);
  font-weight:650;
  text-decoration:none;
  border-bottom:1px solid rgba(33,73,164,.28);
}
.standard-item a:hover,
.standard-item a:focus{
  color:var(--navy);
  border-bottom-color:var(--navy);
}
@media(max-width:820px){
  .standards-section{padding:72px 0 76px;background-size:32px 32px}
  .standards-grid{grid-template-columns:1fr;gap:0}
  .standards-section .standards-head{margin-bottom:34px}
}

/* v1.0.47 — Keep methodology steps beside the copy at narrow desktop/tablet widths.
   The previous 700px breakpoint was the reason the live layout stacked underneath
   the paragraph/buttons. Only genuinely small phone widths stack now. */
@media (min-width:541px) and (max-width:760px){
  .flow-exact > .wrap{
    grid-template-columns:minmax(0,.82fr) minmax(0,1.18fr) !important;
    -moz-column-gap:24px !important;
         column-gap:24px !important;
  }
  .flow-exact .flow-left{max-width:none !important;}
  .flow-exact h2{
    font-size:clamp(34px,5.8vw,42px) !important;
    line-height:1.08 !important;
  }
  .flow-exact p{
    font-size:15px !important;
    line-height:1.62 !important;
  }
  .flow-exact .flow-right{
    margin-top:72px !important;
  }
  .flow-exact .process-list-final .process-row{
    grid-template-columns:44px minmax(0,1fr) !important;
    gap:0 14px !important;
    min-height:94px !important;
  }
  .flow-exact .process-list-final .num{
    width:38px !important;
    height:38px !important;
    font-size:15px !important;
  }
  .flow-exact .process-list-final .process-row:not(:last-child)::before{
    left:19px !important;
    top:38px !important;
  }
  .flow-exact .process-list-final .process-row:not(:last-child)::after{
    left:12px !important;
  }
  .flow-exact .process-list-final .process-copy h3{
    font-size:15.5px !important;
  }
  .flow-exact .process-list-final .process-copy p{
    font-size:14px !important;
    line-height:1.45 !important;
  }
  .flow-exact .flow-actions-stack .btn{
    min-width:0 !important;
    width:100% !important;
    max-width:250px !important;
  }
}

/* v1.0.48 — Methodology body-copy alignment
   Step 01 is aligned to the first methodology body paragraph, not to the
   eyebrow/title. JavaScript writes --dsg-methodology-offset from the rendered
   paragraph position so the alignment survives Gutenberg wrappers, font
   loading, browser zoom, and responsive line wrapping. */
@media (min-width:1021px){
  .flow-exact .flow-right{
    margin-top:var(--dsg-methodology-offset,92px) !important;
  }
}
@media (min-width:761px) and (max-width:1020px){
  .flow-exact .flow-right{
    margin-top:var(--dsg-methodology-offset,88px) !important;
  }
}
@media (min-width:541px) and (max-width:760px){
  .flow-exact .flow-right{
    margin-top:var(--dsg-methodology-offset,72px) !important;
  }
}
@media (max-width:540px){
  .flow-exact{
    --dsg-methodology-offset:0px;
  }
  .flow-exact .flow-right{
    margin-top:0 !important;
  }
}


/* v1.0.49 — methodology alignment final override.
   The live JS measures the rendered first body paragraph and writes the exact
   right-column offset directly, including Gutenberg's logical block margin. */
@media (min-width:541px){
  .flow-exact .flow-right{
    padding-top:0 !important;
  }
}
@media (max-width:540px){
  .flow-exact .flow-right{
    margin-top:0 !important;
    margin-block-start:0 !important;
    padding-top:0 !important;
  }
}


/* v1.0.50 — live Gutenberg methodology guard.
   The process-list offset is calculated against the first methodology paragraph
   in site.js. The legacy parent margin remains as a harmless baseline; the list
   receives only the additional distance required to hit the paragraph baseline. */
@media (min-width:541px){
  .flow-exact .process-list-final,
  .flow-exact .process-list{
    padding-top:0 !important;
  }
}
@media (max-width:540px){
  .flow-exact .process-list-final,
  .flow-exact .process-list{
    margin-top:0 !important;
    margin-block-start:0 !important;
    padding-top:0 !important;
  }
}


/* v1.0.77 — Who We Are > Our Methodology: CSS-only alignment.
   Step 01 now starts exactly level with the first methodology paragraph
   ("Our systematic approach…") at every width above 540px, with no JavaScript
   measuring. (Earlier builds depended on site.js, which cache/optimization
   layers can delay, leaving Step 01 at a fixed 92px offset.)
   How: the left column's blocks become rows of the methodology grid (eyebrow,
   headline, paragraphs, buttons); the step list starts on the first-paragraph
   row. A final 1fr row absorbs the list's extra height so the left-column
   spacing never stretches. Works with or without Gutenberg's
   wp-block-group__inner-container wrappers. Front end only (main.dsg-content);
   the block editor layout is unchanged. */
@media (min-width:541px){
  main.dsg-content .flow-exact .wrap{
    display:grid !important;
    grid-template-columns:minmax(0,.90fr) minmax(0,1.10fr) !important;
    -moz-column-gap:clamp(32px,5.5vw,72px) !important;
         column-gap:clamp(32px,5.5vw,72px) !important;
    grid-template-rows:auto auto auto auto auto 1fr !important;
    row-gap:0 !important;
    align-items:start !important;
  }
  main.dsg-content .flow-exact .wrap > .wp-block-group__inner-container,
  main.dsg-content .flow-exact .flow-left,
  main.dsg-content .flow-exact .flow-left > .wp-block-group__inner-container{
    display:contents !important;
  }
  main.dsg-content .flow-exact .flow-left > *,
  main.dsg-content .flow-exact .flow-left > .wp-block-group__inner-container > *{
    grid-column:1 !important;
    max-width:520px;
    min-width:0;
  }
  main.dsg-content .flow-exact .flow-left .eyebrow{grid-row:1 !important;}
  main.dsg-content .flow-exact .flow-left h2{grid-row:2 !important;}
  /* Grid items do not collapse margins; keep the original 22px gap above the buttons. */
  main.dsg-content .flow-exact .flow-left .flow-actions-stack{margin-top:0 !important;}
  main.dsg-content .flow-exact .flow-right{
    grid-column:2 !important;
    grid-row:3 / -1 !important;
    margin-top:0 !important;
    margin-block-start:0 !important;
    padding-top:0 !important;
    align-self:start !important;
  }
  main.dsg-content .flow-exact .flow-right .process-list,
  main.dsg-content .flow-exact .flow-right .process-list-final{
    margin-top:0 !important;
    margin-block-start:0 !important;
  }
}
/* Same column proportions as the original tablet rules, applied whether or not
   WordPress adds wrapper elements around .wrap. */
@media (min-width:761px) and (max-width:1020px){
  main.dsg-content .flow-exact .wrap{
    grid-template-columns:minmax(0,.86fr) minmax(0,1.14fr) !important;
    -moz-column-gap:30px !important;
         column-gap:30px !important;
  }
}
@media (min-width:541px) and (max-width:760px){
  main.dsg-content .flow-exact .wrap{
    grid-template-columns:minmax(0,.82fr) minmax(0,1.18fr) !important;
    -moz-column-gap:24px !important;
         column-gap:24px !important;
  }
}

/* v1.0.78 — Methodology headline spans the full section width, matching the
   site's other section titles (same type scale as "Internationally recognized
   standards…": clamp(34px,4vw,52px), up to 900px wide). The eyebrow and
   headline sit above both columns; Step 01 still starts level with the first
   methodology paragraph. */
main.dsg-content .flow-exact .wrap .flow-left h2{
  max-width:900px !important;
  /* v1.0.79: site-wide section-title size (see style.css "Heading scale"). */
  font-size:clamp(26px,3vw,38px) !important;
  line-height:1.12 !important;
  letter-spacing:-.015em !important;
  margin:0 0 28px !important;
}
@media (min-width:541px){
  main.dsg-content .flow-exact .wrap .flow-left .eyebrow,
  main.dsg-content .flow-exact .wrap .flow-left h2{
    grid-column:1 / -1 !important;
  }
}
