
:root{--ddh-blue:#0b57a4;--ddh-blue-dark:#06366b;--ddh-red:#e30613;--ddh-ink:#07182b;--ddh-white:#fff}
html{scroll-behavior:smooth}body{overflow-x:hidden}.ddh-header{position:sticky;top:0;z-index:999;background:#fff;border-bottom:1px solid #e9edf2;box-shadow:0 7px 28px rgba(7,24,43,.06)}.ddh-header-inner{max-width:1280px;margin:auto;height:82px;padding:0 24px;display:flex;align-items:center;gap:24px}.ddh-brand{display:flex;align-items:center;min-width:190px}.ddh-brand img{display:block;width:185px;height:62px;object-fit:contain;object-position:left center}.ddh-desktop-nav{margin-left:auto;display:flex;align-items:center;gap:20px}.ddh-nav-link{font-size:13px;font-weight:700;color:#26374a;white-space:nowrap;position:relative}.ddh-nav-link:hover,.ddh-nav-link.active{color:var(--ddh-red)}.ddh-nav-link.active:after{content:"";height:3px;width:24px;border-radius:99px;background:var(--ddh-red);position:absolute;left:50%;transform:translateX(-50%);top:-16px}.ddh-quote{background:var(--ddh-red);color:#fff!important;padding:12px 16px;border-radius:5px;font-weight:800;font-size:12px;text-transform:uppercase;letter-spacing:.04em;white-space:nowrap}.ddh-menu-btn{display:none;margin-left:auto;width:44px;height:44px;border:0;background:transparent;padding:10px}.ddh-menu-btn span{display:block;height:2px;background:#17283b;margin:5px 0;border-radius:5px}.ddh-mobile-nav{display:none;background:#fff;padding:16px 24px 24px;border-top:1px solid #eef1f4}.ddh-mobile-nav.open{display:flex;flex-direction:column}.ddh-mobile-nav a{padding:12px 0;border-bottom:1px solid #eef1f4;color:#18283b;font-weight:700}.ddh-mobile-nav .mobile-cta{background:var(--ddh-blue);color:#fff;text-align:center;border-radius:6px;margin-top:12px;border:0}.ddh-footer{background:#06111c;color:#c7d0dc;padding:62px 24px 0}.ddh-footer-grid{max-width:1200px;margin:auto;display:grid;grid-template-columns:1.2fr .8fr 1fr;gap:60px}.ddh-footer h4{color:#fff;font-weight:800;margin:0 0 18px}.ddh-footer a{display:block;color:#c7d0dc;margin:9px 0}.ddh-footer a:hover{color:#fff}.ddh-footer-brand img{width:210px;height:90px;object-fit:contain;background:#fff;border-radius:6px;padding:7px;margin-bottom:14px}.ddh-footer-brand p{max-width:410px}.ddh-footer-bottom{max-width:1200px;margin:48px auto 0;border-top:1px solid rgba(255,255,255,.1);padding:20px 0;display:flex;justify-content:space-between;gap:20px;font-size:12px}.ddh-footer-bottom a{margin:0;color:#fff}.ddh-wa-float{position:fixed;right:22px;bottom:22px;width:58px;height:58px;border-radius:50%;background:#25D366;color:#fff!important;display:flex;align-items:center;justify-content:center;font-size:29px;box-shadow:0 12px 28px rgba(0,0,0,.2);z-index:998}.ddh-project-note,.ddh-product-note{max-width:1100px;margin:14px auto 28px;padding:14px 18px;border-left:4px solid var(--ddh-red);background:#f7f9fc;color:#49586a;font-size:14px;line-height:1.6}.ddh-contact-form{display:grid;gap:16px}.ddh-contact-form input,.ddh-contact-form select,.ddh-contact-form textarea{width:100%;border:1px solid rgba(255,255,255,.32);background:rgba(0,0,0,.16);color:#fff;border-radius:8px;padding:14px 16px;outline:0}.ddh-contact-form select option{color:#111;background:#fff}.ddh-contact-form input::placeholder,.ddh-contact-form textarea::placeholder{color:rgba(255,255,255,.82)}.ddh-contact-form button{background:#fff;color:var(--ddh-red);padding:14px 18px;border-radius:7px;font-weight:800}.ddh-form-help{font-size:11px;color:rgba(255,255,255,.78)}
@media(max-width:1120px){.ddh-desktop-nav,.ddh-quote{display:none}.ddh-menu-btn{display:block}.ddh-header-inner{height:76px}.ddh-brand img{width:165px;height:58px}}
@media(max-width:700px){.ddh-header-inner{padding:0 16px}.ddh-brand{min-width:0}.ddh-brand img{width:145px}.ddh-footer-grid{grid-template-columns:1fr;gap:32px}.ddh-footer-bottom{flex-direction:column}.ddh-footer{padding-left:18px;padding-right:18px}.ddh-wa-float{right:16px;bottom:16px;width:54px;height:54px}.stroke-number{font-size:2.1rem!important;letter-spacing:-.04em}}

[data-purpose="floating-contact"],[data-purpose="copyright"]{display:none!important}

/* =========================================================
   DDH MOTION SYSTEM — reference rhythm: Ideal Energy
   Progressive enhancement: default markup stays fully visible.
   Hidden/reveal states only exist after JS adds .ddh-motion-enabled.
   ========================================================= */
:root{
  --ddh-ease-out:cubic-bezier(.22,1,.36,1);
  --ddh-ease-soft:cubic-bezier(.16,1,.3,1);
  --ddh-motion-duration:.82s;
}

/* Header: clean entrance + restrained sticky behavior */
.ddh-header{transition:transform .48s var(--ddh-ease-out),box-shadow .35s ease,background-color .35s ease,height .35s ease;will-change:transform}
html.ddh-motion-enabled .ddh-header.ddh-header-entrance{animation:ddhHeaderIn .72s var(--ddh-ease-out) both}
.ddh-header.is-scrolled{box-shadow:0 14px 38px rgba(7,24,43,.12);background:rgba(255,255,255,.97);backdrop-filter:saturate(145%) blur(10px);-webkit-backdrop-filter:saturate(145%) blur(10px)}
@media(min-width:1121px){.ddh-header.ddh-header-hidden{transform:translate3d(0,-105%,0)}}
@keyframes ddhHeaderIn{from{opacity:0;transform:translate3d(0,-28px,0)}to{opacity:1;transform:translate3d(0,0,0)}}

/* Navigation and CTAs */
.ddh-nav-link:before{content:"";position:absolute;left:50%;bottom:-9px;width:0;height:2px;background:var(--ddh-red);transform:translateX(-50%);transition:width .36s var(--ddh-ease-out)}
.ddh-nav-link:hover:before{width:100%}
.ddh-quote,.ddh-header a,.ddh-footer a,section a{transition-property:transform,background-color,color,box-shadow,opacity;transition-duration:.32s;transition-timing-function:var(--ddh-ease-out)}
.ddh-quote:hover{transform:translateY(-2px);box-shadow:0 10px 24px rgba(227,6,19,.2)}
section a:hover i.fa-arrow-right,.ddh-footer a:hover i.fa-arrow-right{transform:translateX(4px)}
section a i.fa-arrow-right,.ddh-footer a i.fa-arrow-right{transition:transform .3s var(--ddh-ease-out)}

/* General reveal language. Nothing is hidden unless JS explicitly enables it. */
html.ddh-motion-enabled .ddh-anim{
  opacity:0;
  transform:translate3d(0,34px,0);
  filter:blur(3px);
  transition:
    opacity var(--ddh-motion-duration) var(--ddh-ease-out),
    transform var(--ddh-motion-duration) var(--ddh-ease-out),
    filter .7s var(--ddh-ease-out),
    clip-path .95s var(--ddh-ease-soft);
  transition-delay:var(--ddh-delay,0ms);
  will-change:opacity,transform,filter,clip-path;
}
html.ddh-motion-enabled .ddh-anim[data-ddh-effect="left"]{transform:translate3d(-46px,0,0)}
html.ddh-motion-enabled .ddh-anim[data-ddh-effect="right"]{transform:translate3d(46px,0,0)}
html.ddh-motion-enabled .ddh-anim[data-ddh-effect="scale"]{transform:scale(.94);filter:blur(2px)}
html.ddh-motion-enabled .ddh-anim[data-ddh-effect="clip"]{
  opacity:1;
  transform:scale(1.035);
  filter:none;
  clip-path:inset(0 100% 0 0 round 8px);
}
html.ddh-motion-enabled .ddh-anim.is-in{
  opacity:1;
  transform:translate3d(0,0,0) scale(1);
  filter:none;
  clip-path:inset(0 0 0 0 round 8px);
}

/* Section typography: subtle masked rise */
html.ddh-motion-enabled .ddh-section-title.ddh-anim{transform:translate3d(0,28px,0);filter:none;clip-path:inset(0 0 100% 0)}
html.ddh-motion-enabled .ddh-section-title.ddh-anim.is-in{transform:translate3d(0,0,0);clip-path:inset(0 0 0 0)}

/* Hero: layered entrance, image breath and light scroll parallax */
.ddh-hero{isolation:isolate}
.ddh-hero .ddh-hero-bg{transform:translate3d(0,var(--ddh-hero-y,0px),0) scale(1.075);transform-origin:center center;transition:transform 1.45s var(--ddh-ease-out),opacity 1.1s ease;will-change:transform}
html.ddh-motion-enabled .ddh-hero:not(.is-in) .ddh-hero-bg{opacity:.72;transform:translate3d(0,var(--ddh-hero-y,0px),0) scale(1.14)}
html.ddh-motion-enabled .ddh-hero .ddh-hero-title,
html.ddh-motion-enabled .ddh-hero .ddh-hero-copy,
html.ddh-motion-enabled .ddh-hero .ddh-hero-actions,
html.ddh-motion-enabled .ddh-hero .ddh-hero-control{
  opacity:0;transform:translate3d(0,34px,0);filter:blur(3px);
  transition:opacity .82s var(--ddh-ease-out),transform .82s var(--ddh-ease-out),filter .7s var(--ddh-ease-out);
}
html.ddh-motion-enabled .ddh-hero .ddh-hero-title{clip-path:inset(0 0 100% 0);transition:opacity .82s var(--ddh-ease-out),transform .9s var(--ddh-ease-out),clip-path .95s var(--ddh-ease-soft)}
html.ddh-motion-enabled .ddh-hero.is-in .ddh-hero-title{opacity:1;transform:none;filter:none;clip-path:inset(0 0 0 0);transition-delay:.08s}
html.ddh-motion-enabled .ddh-hero.is-in .ddh-hero-copy{opacity:1;transform:none;filter:none;transition-delay:.24s}
html.ddh-motion-enabled .ddh-hero.is-in .ddh-hero-actions{opacity:1;transform:none;filter:none;transition-delay:.38s}
html.ddh-motion-enabled .ddh-hero.is-in .ddh-hero-control{opacity:1;transform:none;filter:none;transition-delay:.52s}

/* Cards / image tiles */
.ddh-hover-card{transition:transform .46s var(--ddh-ease-out),box-shadow .46s var(--ddh-ease-out),border-color .35s ease;transform-origin:center bottom}
.ddh-hover-card img{transition:transform .8s var(--ddh-ease-out),filter .55s ease;will-change:transform}
@media(hover:hover) and (pointer:fine){
  .ddh-hover-card:hover{transform:translate3d(0,-7px,0);box-shadow:0 22px 48px rgba(7,24,43,.13)}
  .ddh-hover-card:hover img{transform:scale(1.045)}
}

/* The outlined value/stat words get a gentle sweep, not a numerical counter. */
.stroke-number{transition:color .45s ease,-webkit-text-stroke-color .45s ease,letter-spacing .45s var(--ddh-ease-out)}
.ddh-stat-item:hover .stroke-number{-webkit-text-stroke-color:var(--ddh-blue);letter-spacing:.015em}

/* Icon list / bullets */
.ddh-list-item i,.ddh-list-item>span:first-child{transition:transform .34s var(--ddh-ease-out),color .34s ease}
.ddh-list-item:hover i,.ddh-list-item:hover>span:first-child{transform:translateX(3px) scale(1.06)}

/* CTA bands: light sheen, kept behind content */
.ddh-cta-band:after{content:"";position:absolute;inset:-40% auto -40% -35%;width:28%;pointer-events:none;background:linear-gradient(90deg,transparent,rgba(255,255,255,.08),transparent);transform:skewX(-18deg);transition:left .9s var(--ddh-ease-out)}
@media(hover:hover){.ddh-cta-band:hover:after{left:112%}}

/* Footer reveal and link movement */
.ddh-footer .ddh-footer-grid>div,.ddh-footer .ddh-footer-bottom{transition:opacity .7s var(--ddh-ease-out),transform .7s var(--ddh-ease-out)}
html.ddh-motion-enabled .ddh-footer.ddh-footer-ready .ddh-footer-grid>div,
html.ddh-motion-enabled .ddh-footer.ddh-footer-ready .ddh-footer-bottom{opacity:0;transform:translate3d(0,24px,0)}
html.ddh-motion-enabled .ddh-footer.ddh-footer-ready.is-in .ddh-footer-grid>div,
html.ddh-motion-enabled .ddh-footer.ddh-footer-ready.is-in .ddh-footer-bottom{opacity:1;transform:none}
html.ddh-motion-enabled .ddh-footer.ddh-footer-ready.is-in .ddh-footer-grid>div:nth-child(2){transition-delay:.08s}
html.ddh-motion-enabled .ddh-footer.ddh-footer-ready.is-in .ddh-footer-grid>div:nth-child(3){transition-delay:.16s}
html.ddh-motion-enabled .ddh-footer.ddh-footer-ready.is-in .ddh-footer-bottom{transition-delay:.24s}
.ddh-footer a:hover{transform:translateX(3px)}

/* Floating buttons: restrained pulse only once after load */
html.ddh-motion-enabled .ddh-wa-float{animation:ddhFloatIn .65s .65s var(--ddh-ease-out) both}
@keyframes ddhFloatIn{from{opacity:0;transform:translate3d(0,20px,0) scale(.82)}to{opacity:1;transform:none}}

/* Mobile: shorter travel, lighter effects, no parallax/tilt. */
@media(max-width:767px){
  :root{--ddh-motion-duration:.58s}
  html.ddh-motion-enabled .ddh-anim,
  html.ddh-motion-enabled .ddh-anim[data-ddh-effect="left"],
  html.ddh-motion-enabled .ddh-anim[data-ddh-effect="right"]{transform:translate3d(0,18px,0);filter:none}
  html.ddh-motion-enabled .ddh-anim[data-ddh-effect="clip"]{transform:scale(1.015);clip-path:inset(0 0 10% 0 round 6px)}
  html.ddh-motion-enabled .ddh-anim.is-in{transform:none;clip-path:inset(0 0 0 0 round 6px)}
  .ddh-hero .ddh-hero-bg{transform:scale(1.035)!important}
  html.ddh-motion-enabled .ddh-hero:not(.is-in) .ddh-hero-bg{transform:scale(1.07)!important}
  .ddh-hover-card:hover{transform:none}
}

/* Accessibility + safety: user preference wins and all content remains visible. */
@media(prefers-reduced-motion:reduce){
  html{scroll-behavior:auto!important}
  *,*:before,*:after{animation-duration:.001ms!important;animation-iteration-count:1!important;transition-duration:.001ms!important;scroll-behavior:auto!important}
  html.ddh-motion-enabled .ddh-anim,
  html.ddh-motion-enabled .ddh-hero .ddh-hero-title,
  html.ddh-motion-enabled .ddh-hero .ddh-hero-copy,
  html.ddh-motion-enabled .ddh-hero .ddh-hero-actions,
  html.ddh-motion-enabled .ddh-hero .ddh-hero-control,
  html.ddh-motion-enabled .ddh-footer.ddh-footer-ready .ddh-footer-grid>div,
  html.ddh-motion-enabled .ddh-footer.ddh-footer-ready .ddh-footer-bottom{opacity:1!important;transform:none!important;filter:none!important;clip-path:none!important}
}
.ddh-field-active{transform:translateY(-1px);transition:transform .25s var(--ddh-ease-out)}
.ddh-contact-form input:focus,.ddh-contact-form select:focus,.ddh-contact-form textarea:focus{border-color:rgba(255,255,255,.72);box-shadow:0 0 0 3px rgba(255,255,255,.09)}

/* =================== DDH 2026 / visual QA =================== */
html,body{max-width:100%;overflow-x:clip}
*,*:before,*:after{box-sizing:border-box}
main section{max-width:100%;min-width:0}
section :is(h1,h2,h3,h4,p,span,a){overflow-wrap:break-word}
.ddh-header{width:100%;isolation:isolate}
.ddh-desktop-nav{gap:clamp(8px,1.45vw,20px)}
.ddh-header-inner{gap:clamp(10px,1.2vw,24px)}
.ddh-header .ddh-quote{font-size:11px}
.ddh-wa-float{z-index:1100!important;bottom:max(18px,env(safe-area-inset-bottom) + 14px)!important;right:18px!important}
.ddh-impact-section .stat-number-outline{color:#093f77!important;-webkit-text-stroke:0!important;font-size:clamp(1.15rem,2.2vw,2.08rem)!important;line-height:1.22!important;font-weight:850!important;letter-spacing:-.045em!important;overflow-wrap:anywhere;word-break:normal;white-space:normal;min-height:2.8em;display:flex;align-items:center;max-width:100%}
.ddh-impact-section .grid>div{min-width:0;border-left:3px solid #e30613;padding-left:clamp(9px,1.4vw,19px)}
.ddh-impact-section .ddh-stat-desc{font-size:.88rem;color:#4b5b6b;line-height:1.5;font-weight:600;max-width:22ch}
.ddh-values-row{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:18px;margin:0 0 32px;text-align:left}
.ddh-value{border:1px solid #e8edf3;border-radius:13px;padding:26px 22px;background:linear-gradient(135deg,#f7faff,#fff);box-shadow:0 8px 24px rgba(6,27,49,.035);min-width:0}
.ddh-value-icon{height:42px;width:42px;display:inline-flex;align-items:center;justify-content:center;color:#fff;background:#e30613;border-radius:12px;font-size:24px;font-weight:800;margin-bottom:16px}
.ddh-value h3{font-size:1.25rem;color:#072a53;font-weight:850;margin-bottom:8px}
.ddh-value p{font-size:.92rem;line-height:1.65;color:#506071;max-width:38ch}
.ddh-local-panel{display:grid;grid-template-columns:1.08fr .92fr;border:1px solid #e2e8ef;border-radius:18px;overflow:hidden;background:#fff;box-shadow:0 20px 70px rgba(5,33,58,.08);text-align:left;min-height:385px}
.ddh-local-photo{min-height:380px;overflow:hidden}.ddh-local-photo img{width:100%;height:100%;object-fit:cover;display:block}
.ddh-local-content{padding:clamp(26px,4vw,48px);display:flex;flex-direction:column;justify-content:center;min-width:0}
.ddh-local-eyebrow{color:#d50b16;letter-spacing:.13em;font-size:11px;font-weight:800;display:block;margin-bottom:12px}
.ddh-local-content h3{font-size:clamp(1.45rem,2.7vw,2.1rem);font-weight:850;color:#0b2b4b;line-height:1.22;margin-bottom:15px}
.ddh-local-content p{font-size:.94rem;line-height:1.75;color:#596879;margin:0 0 23px}
.ddh-local-facts{display:grid;gap:11px;margin-bottom:24px}.ddh-local-facts>div{display:flex;flex-wrap:wrap;align-items:baseline;gap:9px}
.ddh-local-facts span{font-size:.75rem;color:#63758c;font-weight:700;min-width:88px}.ddh-local-facts strong{color:#0e3458;font-size:.85rem}
.ddh-local-action{display:inline-flex;align-items:center;justify-content:center;gap:14px;width:fit-content;padding:13px 18px;border-radius:6px;background:#e30613;color:white!important;font-size:13px;font-weight:800;box-shadow:0 8px 22px rgba(227,6,19,.15)}
.ddh-local-action:hover{background:#bf0011;transform:translateY(-2px)}
.ddh-location-strip{padding:46px 20px;background:#edf3f9;border-top:1px solid #dce6ef;border-bottom:1px solid #dce6ef}
.ddh-location-strip-inner{max-width:1200px;margin:auto;display:flex;align-items:center;justify-content:space-between;gap:26px}
.ddh-location-strip h2{font-size:clamp(1.15rem,2.5vw,1.75rem);font-weight:850;color:#08305a;margin:0 0 5px}
.ddh-location-strip p{font-size:.88rem;color:#52687e}
[data-purpose="impact-numbers"] .grid{align-items:start}
/* Guards against image/text collisions and hover image exceeding card bounds. */
.ddh-hover-card{min-width:0}
.ddh-hover-card .relative{min-width:0}
section .grid>*,section .flex>*{min-width:0}
.ddh-section-title{overflow-wrap:break-word}
@media(max-width:850px){.ddh-local-panel{grid-template-columns:1fr}.ddh-local-photo{min-height:260px;max-height:330px}.ddh-values-row{grid-template-columns:1fr}.ddh-impact-section .stat-number-outline{font-size:clamp(1.05rem,4vw,1.65rem)!important;min-height:2.4em}.ddh-location-strip-inner{align-items:flex-start;flex-direction:column}}
@media(max-width:530px){.ddh-impact-section .grid{grid-template-columns:1fr 1fr;gap:18px}.ddh-impact-section .stat-number-outline{font-size:clamp(.9rem,3.45vw,1.1rem)!important;min-height:2.8em;word-break:break-word}.ddh-impact-section .grid>div{padding-left:10px}.ddh-impact-section .ddh-stat-desc{font-size:.77rem}.ddh-local-content{padding:25px 20px}}
@media(prefers-reduced-motion:reduce){.ddh-local-action:hover{transform:none}}

.ddh-header,.ddh-footer{font-family:'Plus Jakarta Sans',system-ui,Arial,sans-serif}
.ddh-wa-float svg{display:block;flex-shrink:0;width:28px;height:28px}
.ddh-footer{clear:both}

.ddh-404-body{font-family:'Plus Jakarta Sans',Arial,sans-serif;background:#fff;color:#122a45}
.ddh-404-main{min-height:60vh;padding:110px 25px 130px;display:grid;place-items:center;text-align:center;background:radial-gradient(circle at top left,#edf5ff,transparent 52%),#fff}
.ddh-404-panel{max-width:680px}.ddh-404-panel>span{font-size:.85rem;font-weight:800;letter-spacing:.16em;color:#e30613}.ddh-404-panel h1{font-size:clamp(2.2rem,6vw,4.7rem);line-height:1.12;color:#062d59;margin:18px 0 22px;font-weight:850}.ddh-404-panel p{color:#536678;line-height:1.8;margin-bottom:29px}.ddh-404-panel a{margin:auto}


/* DDH partners */
.ddh-partners-section{padding:5.5rem 1.25rem;background:linear-gradient(180deg,#f8fafc 0%,#fff 100%);border-top:1px solid #e5e7eb;border-bottom:1px solid #e5e7eb}.ddh-partners-inner{max-width:80rem;margin:0 auto;text-align:center}.ddh-partners-kicker{display:inline-block;color:#e11d2e;font-size:.76rem;font-weight:800;letter-spacing:.16em;margin-bottom:.7rem}.ddh-partners-section h2{font-size:clamp(2rem,4vw,3.15rem);line-height:1.05;font-weight:800;color:#0b2545;margin:0 0 .9rem}.ddh-partners-section p{max-width:48rem;margin:0 auto 2.25rem;color:#64748b;line-height:1.7}.ddh-partners-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:1rem}.ddh-partner-card{min-height:92px;display:flex;align-items:center;justify-content:center;padding:1rem 1.15rem;background:#fff;border:1px solid #e2e8f0;border-radius:14px;box-shadow:0 10px 30px rgba(15,23,42,.06);color:#0b2545;font-weight:800;font-size:.9rem;line-height:1.3;transition:transform .25s ease,box-shadow .25s ease,border-color .25s ease}.ddh-partner-card:hover{transform:translateY(-4px);box-shadow:0 18px 38px rgba(15,23,42,.1);border-color:#cbd5e1}.ddh-local-facts{grid-template-columns:repeat(3,minmax(0,1fr))!important}@media(max-width:900px){.ddh-partners-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.ddh-local-facts{grid-template-columns:1fr!important}}@media(max-width:560px){.ddh-partners-section{padding:4rem 1rem}.ddh-partners-grid{grid-template-columns:1fr}.ddh-partner-card{min-height:76px}}
