*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;background:#fff;color:#0b1115;font-family:Arial,Helvetica,sans-serif;line-height:1.5}a{text-decoration:none}.site-header{position:sticky;top:0;z-index:50;background:#050b0e;border-bottom:1px solid #152228}.header-inner{height:78px;padding:0 3.3vw;display:flex;align-items:center;gap:32px}.brand{display:flex;align-items:center;gap:10px;color:white;min-width:310px}.brand-icon{width:42px;height:42px}.brand-icon svg{fill:#fff}.brand-copy{display:flex;flex-direction:column;font-weight:900;line-height:.82;font-size:21px}.brand-copy span{color:#16a5bc;font-size:19px}.brand-sub{border-left:1px solid #425057;padding-left:18px;margin-left:10px;color:#c7d0d4;font-size:10px;letter-spacing:.08em;line-height:1.7}.desktop-nav{display:flex;align-items:center;gap:28px;margin-left:auto}.desktop-nav a{color:#fff;font-size:12px;font-weight:800;text-transform:uppercase}.desktop-nav a.active{color:#15a8bf}.top-phone{background:#139fb7;color:white;padding:14px 22px;font-weight:900;white-space:nowrap}.menu-btn{display:none;background:none;border:1px solid #31444b;width:46px;height:46px;border-radius:4px;flex-direction:column;justify-content:center;align-items:center;gap:5px}.menu-btn span{width:22px;height:2px;background:white}.menu-overlay{position:fixed;inset:0;background:rgba(0,0,0,.58);z-index:59;opacity:0;visibility:hidden;transition:.25s}.menu-overlay.open{opacity:1;visibility:visible}.mobile-drawer{position:fixed;top:0;right:0;width:min(390px,90vw);height:100vh;background:#071115;color:white;z-index:60;transform:translateX(105%);transition:.28s;padding:25px;display:flex;flex-direction:column}.mobile-drawer.open{transform:none}.drawer-top{display:flex;align-items:center;justify-content:space-between}.drawer-brand{font-weight:950;font-size:22px}.drawer-brand span{color:#18abc1}.drawer-top button{border:0;background:none;color:white;font-size:38px}.mobile-drawer nav{display:flex;flex-direction:column;margin-top:35px}.mobile-drawer nav a{padding:16px 0;color:white;border-bottom:1px solid #26383f;font-weight:800;text-transform:uppercase}.drawer-phone{margin-top:auto;background:#139fb7;color:white;padding:15px;text-align:center;font-weight:900}.hero{position:relative;min-height:620px;background:#071014;color:white;overflow:hidden}.hero-bg{position:absolute;inset:0}.hero-video{width:100%;height:100%;object-fit:cover}.hero-shade{position:absolute;inset:0;background:linear-gradient(90deg,rgba(3,10,13,.96) 0%,rgba(3,10,13,.82) 45%,rgba(3,10,13,.22) 75%,rgba(3,10,13,.5) 100%)}.hero-content{position:relative;z-index:2;padding:62px 5.5vw 42px;max-width:1300px}.eyebrow,.mini-label,.section-title>span,.solution-title>span{color:#16abc2;font-size:11px;font-weight:900;letter-spacing:.14em}.hero h1{font-size:clamp(3.2rem,6vw,6.2rem);line-height:.92;letter-spacing:-.04em;margin:14px 0 22px}.hero h1 span{color:#1799b1}.hero-content>p{max-width:620px;color:#e1e7e9;font-size:18px}.hero-actions{display:flex;gap:15px;margin-top:30px}.btn{padding:14px 22px;font-size:12px;font-weight:950;letter-spacing:.02em}.btn.primary{background:#139fb7;color:white}.btn.primary b{margin-left:18px}.btn.outline{border:1px solid #6f8b94;color:white}.trust-row{display:grid;grid-template-columns:repeat(4,1fr);gap:0;margin-top:45px;max-width:980px}.trust-item{display:flex;gap:12px;padding-right:18px;margin-right:18px;border-right:1px solid #52656c}.trust-item:last-child{border-right:0}.trust-icon{color:#1bb0c6;border:2px solid #1bb0c6;border-radius:50%;width:34px;height:34px;display:grid;place-items:center;font-weight:900;flex:0 0 34px}.trust-item div:last-child{display:flex;flex-direction:column}.trust-item strong{font-size:10px}.trust-item span{font-size:10px;color:#c8d0d3;margin-top:4px}.problem-section{padding:55px 4vw 45px;background:#f7f7f6}.section-title.centered{text-align:center}.section-title h2{font-size:clamp(2rem,3.2vw,3.3rem);letter-spacing:-.03em;margin:9px 0}.section-title p{color:#657177;margin:0 auto;max-width:850px}.problem-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:18px;margin-top:32px}.problem-card{border:1px solid #cbd2d5;background:white;display:grid;grid-template-columns:1fr .9fr;min-height:190px;overflow:hidden}.problem-copy{padding:18px 12px 18px 18px}.problem-copy small{color:#0799b2;font-weight:900}.problem-icon{font-size:25px;color:#159eb5;margin:7px 0}.problem-copy h3{font-size:14px;margin:5px 0}.problem-copy p{font-size:12px;margin:0;color:#343d41}.card-media{min-height:100%;background-position:center;background-size:cover}.media-overflow{background:linear-gradient(160deg,#2d3437,#05090b)}.media-fascia{background:linear-gradient(160deg,#859095,#2d3437)}.media-erosion{background:linear-gradient(160deg,#806d58,#3b3028)}.media-foundation{background:linear-gradient(160deg,#9f9e98,#5a5a56)}.solution-band{background:#08222b;color:white;padding:28px 5vw;display:grid;grid-template-columns:1.4fr 1fr 1fr 1fr .8fr;gap:25px;align-items:center}.solution-title{padding-right:25px;border-right:1px solid #47606a}.solution-title h2{font-size:28px;margin:8px 0 0}.solution-step{display:flex;gap:12px;align-items:flex-start}.solution-icon{color:#12a9c1;font-size:30px}.solution-step strong{font-size:11px}.solution-step p{font-size:10px;color:#c7d3d7;margin:3px 0}.solution-cta{border:1px solid #6b8992;padding:13px}.solution-cta strong{font-size:12px}.solution-cta strong span{color:#18abc1}.solution-cta a{display:block;background:#139fb7;color:white;margin-top:10px;padding:10px;text-align:center;font-size:10px;font-weight:900}.content-section{padding:95px 6vw;display:grid;grid-template-columns:1fr 1fr;gap:60px}.dark-block{background:#061116;color:white}.content-section h2,.projects-head h2,.service-area h2,.contact-copy h2{font-size:clamp(2.8rem,5vw,5.2rem);line-height:.95;letter-spacing:-.045em;margin:8px 0}.about-copy p{color:#b5c2c7;font-size:17px}.about-stats{display:grid;grid-template-columns:repeat(3,1fr);gap:15px;margin-top:35px}.about-stats div{border-top:1px solid #36515a;padding-top:15px}.about-stats strong{display:block;color:#19abc1;font-size:28px}.about-stats span{font-size:10px;color:#b6c5c9}.projects-section{padding:90px 5vw}.projects-head{display:grid;grid-template-columns:1.2fr .8fr;gap:50px;align-items:end}.projects-head p{color:#66757a}.project-layout{display:grid;grid-template-columns:1.5fr .5fr;gap:15px;margin-top:35px}.featured-project{position:relative;background:#081319;min-height:500px}.featured-project video{width:100%;height:100%;object-fit:cover;display:block}.project-caption{position:absolute;left:20px;bottom:20px;background:rgba(5,15,19,.8);color:white;padding:12px 15px;display:flex;flex-direction:column}.project-caption span{font-size:9px;color:#18abc1;letter-spacing:.12em}.project-stack{display:grid;gap:15px}.project-photo{min-height:240px;background:#d7d9d8;display:flex;align-items:flex-end;padding:15px;font-weight:950;font-size:11px}.project-photo.after{background:#93bbc1}.reviews-section{padding:80px 5vw;background:#f3f5f5}.review-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:18px;margin-top:35px}.review-grid article{background:white;border:1px solid #d6dcde;padding:25px}.stars{color:#15a8bf;letter-spacing:.1em}.review-grid p{color:#4f5e63}.review-grid strong{font-size:10px}.service-area{padding:85px 6vw;background:#0e2730;color:white;display:grid;grid-template-columns:1fr 1fr;align-items:center}.service-area p{color:#c0cdd1}.area-graphic{height:320px;position:relative;display:grid;place-items:center}.rings{position:absolute;width:280px;height:280px;border:1px solid #21697a;border-radius:50%;box-shadow:0 0 0 55px rgba(23,160,184,.07),0 0 0 110px rgba(23,160,184,.04)}.pin{position:relative;background:#16a7bf;color:white;padding:12px 18px;font-weight:950;font-size:12px}.contact-section{padding:90px 6vw;display:grid;grid-template-columns:.9fr 1.1fr;gap:70px}.contact-copy p{color:#607075}.contact-copy>a{display:block;color:#0a7f92;font-weight:900;margin-top:10px}.contact-section form{background:#07151b;color:white;padding:28px}.two-col{display:grid;grid-template-columns:1fr 1fr;gap:15px}label{display:block;font-size:10px;font-weight:900;letter-spacing:.08em;margin-bottom:14px}input,select,textarea{width:100%;margin-top:6px;padding:13px;border:1px solid #344d57;background:#0b2028;color:white;font:inherit}form button{width:100%;border:0;background:#149fb7;color:white;padding:15px;font-weight:950}#formMsg{color:#7ee0ef;font-weight:800;font-size:12px}footer{background:#03090c;color:#9cacb2;padding:25px 4vw;display:grid;grid-template-columns:1fr 1fr auto;gap:20px;font-size:10px}.footer-brand{color:white;font-weight:950;font-size:16px}.footer-brand span{color:#17a8bf}@media(max-width:1200px){.desktop-nav{display:none}.menu-btn{display:flex}.top-phone{margin-left:auto}.problem-grid{grid-template-columns:1fr 1fr}.solution-band{grid-template-columns:1fr 1fr 1fr}.solution-title{grid-column:1/-1;border-right:0;border-bottom:1px solid #47606a;padding-bottom:18px}.solution-cta{grid-column:1/-1}.trust-row{grid-template-columns:1fr 1fr;gap:18px}.trust-item:nth-child(2){border-right:0}}@media(max-width:760px){.brand{min-width:0}.brand-sub{display:none}.top-phone{display:none}.header-inner{padding:0 18px}.hero{min-height:700px}.hero-content{padding:55px 22px 35px}.hero h1{font-size:clamp(3rem,13vw,5rem)}.hero-actions{flex-direction:column;align-items:flex-start}.trust-row{grid-template-columns:1fr;margin-top:35px}.trust-item{border-right:0;border-bottom:1px solid #3f555e;padding-bottom:12px}.problem-grid{grid-template-columns:1fr}.problem-card{grid-template-columns:1.15fr .85fr}.solution-band{grid-template-columns:1fr}.solution-step,.solution-cta{grid-column:auto}.content-section,.projects-head,.project-layout,.service-area,.contact-section{grid-template-columns:1fr}.about-stats{grid-template-columns:1fr 1fr 1fr}.featured-project{min-height:360px}.project-stack{grid-template-columns:1fr 1fr}.two-col{grid-template-columns:1fr}footer{grid-template-columns:1fr;gap:8px}.hero-video{display:none}.hero-bg{background:linear-gradient(145deg,#071014,#132b33)}}
/* Mobile stability + iPhone layout fixes */
html,body{width:100%;max-width:100%;overflow-x:hidden}
img,video,svg{max-width:100%}
@media(max-width:760px){
  .site-header{width:100%;}
  .header-inner{height:82px;width:100%;padding:0 16px;gap:10px;justify-content:space-between}
  .brand{flex:1 1 auto;width:auto;max-width:calc(100% - 64px);gap:8px}
  .brand-icon{width:36px;height:36px;flex:0 0 36px}
  .brand-copy{font-size:18px;line-height:.86}
  .brand-copy span{font-size:17px}
  .menu-btn{display:flex;position:relative;margin-left:auto;right:auto;top:auto;flex:0 0 48px;width:48px;height:48px;padding:0;z-index:55}
  .menu-btn span{width:24px}
  .hero{min-height:0;width:100%}
  .hero-content{width:100%;max-width:none;padding:48px 18px 32px}
  .eyebrow{font-size:10px;line-height:1.55;letter-spacing:.12em;max-width:330px}
  .hero h1{font-size:clamp(2.9rem,12.6vw,4.15rem);line-height:.91;margin:15px 0 22px;overflow-wrap:normal;word-break:normal}
  .hero h1 span{display:inline}
  .hero-content>p{font-size:16px;line-height:1.55;max-width:100%;margin-bottom:0}
  .hero-actions{width:100%;gap:12px;margin-top:25px;align-items:stretch}
  .hero-actions .btn{width:100%;max-width:360px;min-height:54px;display:flex;align-items:center;justify-content:center;padding:14px 16px;text-align:center}
  .btn.primary b{margin-left:auto}
  .trust-row{width:100%;max-width:none;gap:0;margin-top:30px}
  .trust-item{width:100%;margin:0;padding:14px 0;border-right:0;border-bottom:1px solid #3f555e;align-items:center}
  .trust-item:last-child{border-bottom:0}
  .trust-item strong{font-size:11px}
  .trust-item span{font-size:11px;line-height:1.4}
  .mobile-drawer{width:min(340px,88vw);max-width:100%}
  .problem-section,.content-section,.projects-section,.reviews-section,.service-area,.contact-section{width:100%;overflow:hidden}
}
@media(max-width:390px){
  .header-inner{padding:0 14px}
  .brand-copy{font-size:17px}.brand-copy span{font-size:16px}
  .hero-content{padding-left:16px;padding-right:16px}
  .hero h1{font-size:clamp(2.65rem,12.2vw,3.5rem)}
}

/* Premium desktop refinement */
@media(min-width:1201px){
  .site-header{background:rgba(5,11,14,.96);backdrop-filter:blur(14px)}
  .header-inner{height:88px;max-width:1600px;margin:0 auto;padding:0 4vw;gap:28px}
  .brand{min-width:300px}.brand-icon{width:46px;height:46px}
  .desktop-nav{gap:24px}.desktop-nav a{position:relative;padding:34px 0 30px;transition:color .2s ease}
  .desktop-nav a:after{content:"";position:absolute;left:0;right:100%;bottom:23px;height:2px;background:#16a5bc;transition:right .2s ease}
  .desktop-nav a:hover{color:#68d6e5}.desktop-nav a:hover:after,.desktop-nav a.active:after{right:0}
  .top-phone{border-radius:2px;box-shadow:0 10px 30px rgba(19,159,183,.16);transition:transform .2s ease,background .2s ease}
  .top-phone:hover{transform:translateY(-2px);background:#16abc3}
  .hero{min-height:720px}
  .hero-content{max-width:1500px;margin:0 auto;padding:92px 5vw 58px}
  .hero h1{max-width:1120px;font-size:clamp(4.8rem,6.3vw,7.1rem);line-height:.88;margin:18px 0 28px}
  .hero-content>p{max-width:700px;font-size:19px;line-height:1.65}
  .hero-actions{margin-top:36px}.btn{padding:17px 25px;transition:transform .2s ease,background .2s ease,border-color .2s ease}
  .btn:hover{transform:translateY(-2px)}.btn.outline:hover{border-color:#18abc1;background:rgba(24,171,193,.08)}
  .trust-row{max-width:1180px;margin-top:62px}.trust-item{padding-right:26px;margin-right:26px}.trust-icon{width:40px;height:40px;flex-basis:40px}.trust-item strong{font-size:11px}.trust-item span{font-size:11px}
  .problem-section{padding:86px 5vw 76px}.section-title p{font-size:17px}.problem-grid{max-width:1500px;margin:44px auto 0;gap:20px}
  .problem-card{min-height:245px;box-shadow:0 14px 40px rgba(7,17,21,.05);transition:transform .25s ease,box-shadow .25s ease}.problem-card:hover{transform:translateY(-5px);box-shadow:0 20px 48px rgba(7,17,21,.10)}
  .problem-copy{padding:25px 18px 24px 24px}.problem-copy h3{font-size:16px}.problem-copy p{font-size:13px;line-height:1.6}
  .solution-band{padding:38px 5vw;gap:32px}.solution-title h2{font-size:32px}.solution-step p{font-size:11px;line-height:1.5}
  .content-section,.projects-section,.reviews-section,.service-area,.contact-section{padding-left:max(6vw,calc((100vw - 1500px)/2));padding-right:max(6vw,calc((100vw - 1500px)/2))}
  .content-section{padding-top:120px;padding-bottom:120px;gap:100px}.about-copy p{font-size:18px;line-height:1.8}.about-stats{margin-top:48px;gap:28px}
  .projects-section{padding-top:110px;padding-bottom:110px}.projects-head{gap:90px}.project-layout{margin-top:48px;gap:20px}.featured-project{min-height:580px}.project-stack{gap:20px}.project-photo{min-height:280px}
  .reviews-section{padding-top:100px;padding-bottom:105px}.review-grid{gap:24px;margin-top:46px}.review-grid article{padding:34px;box-shadow:0 14px 36px rgba(7,17,21,.04)}
  .service-area{padding-top:110px;padding-bottom:110px}.area-graphic{height:380px}.rings{width:320px;height:320px}
  .contact-section{padding-top:115px;padding-bottom:115px;gap:100px}.contact-section form{padding:38px;box-shadow:0 25px 65px rgba(7,17,21,.13)}input,select,textarea{padding:15px}form button{padding:17px;cursor:pointer}
  footer{padding-left:max(4vw,calc((100vw - 1500px)/2));padding-right:max(4vw,calc((100vw - 1500px)/2))}
}

/* Smooth premium motion system */
:root{--motion-fast:220ms;--motion-med:520ms;--motion-slow:760ms;--ease-out:cubic-bezier(.22,1,.36,1)}
.site-header{transition:background-color var(--motion-fast) ease,box-shadow var(--motion-fast) ease,border-color var(--motion-fast) ease}
.site-header.scrolled{background:rgba(5,11,14,.985);box-shadow:0 12px 34px rgba(0,0,0,.18);border-bottom-color:#22343b}
.menu-btn span{transform-origin:center;transition:transform .28s var(--ease-out),opacity .18s ease,width .28s var(--ease-out)}
.menu-btn.open span:nth-child(1){transform:translateY(7px) rotate(45deg)}
.menu-btn.open span:nth-child(2){opacity:0;width:8px}
.menu-btn.open span:nth-child(3){transform:translateY(-7px) rotate(-45deg)}
.mobile-drawer{transition:transform .42s var(--ease-out)}
.menu-overlay{transition:opacity .32s ease,visibility .32s ease}
.mobile-drawer nav a{transition:color .2s ease,padding-left .25s var(--ease-out),background-color .2s ease}
.mobile-drawer nav a:hover{color:#56d2e5;padding-left:8px}
.btn,.solution-cta a,form button,.drawer-phone{position:relative;overflow:hidden;transition:transform .24s var(--ease-out),box-shadow .24s ease,background-color .24s ease,border-color .24s ease}
.btn.primary:hover,.solution-cta a:hover,form button:hover,.drawer-phone:hover{transform:translateY(-2px);box-shadow:0 12px 28px rgba(19,159,183,.24)}
.btn:active,.solution-cta a:active,form button:active,.drawer-phone:active{transform:translateY(0) scale(.985)}
.btn.primary::after,.solution-cta a::after,form button::after{content:"";position:absolute;inset:-50% auto -50% -70%;width:45%;transform:skewX(-20deg);background:linear-gradient(90deg,transparent,rgba(255,255,255,.28),transparent);transition:left .65s var(--ease-out);pointer-events:none}
.btn.primary:hover::after,.solution-cta a:hover::after,form button:hover::after{left:135%}
.problem-card,.review-grid article,.project-photo,.featured-project,.about-stats>div,.solution-step,.solution-cta{transition:transform .34s var(--ease-out),box-shadow .34s ease,border-color .34s ease,background-color .34s ease}
.review-grid article:hover{transform:translateY(-6px);box-shadow:0 20px 45px rgba(7,17,21,.09);border-color:#b9c8cd}
.project-photo:hover{transform:translateY(-4px) scale(1.01)}
.featured-project:hover{transform:translateY(-3px);box-shadow:0 20px 50px rgba(7,17,21,.14)}
.about-stats>div:hover{transform:translateY(-3px)}
.solution-step:hover,.solution-cta:hover{transform:translateY(-3px)}
.contact-section input,.contact-section select,.contact-section textarea{transition:border-color .22s ease,box-shadow .22s ease,background-color .22s ease,transform .22s ease}
.contact-section input:focus,.contact-section select:focus,.contact-section textarea:focus{outline:none;border-color:#18abc1;box-shadow:0 0 0 3px rgba(24,171,193,.12);background:#0d252e}
.reveal{opacity:0;transform:translateY(28px);transition:opacity var(--motion-slow) var(--ease-out),transform var(--motion-slow) var(--ease-out);will-change:opacity,transform}
.reveal.reveal-left{transform:translateX(-32px)}
.reveal.reveal-right{transform:translateX(32px)}
.reveal.is-visible{opacity:1;transform:none;will-change:auto}
.reveal-delay-1{transition-delay:70ms}.reveal-delay-2{transition-delay:140ms}.reveal-delay-3{transition-delay:210ms}.reveal-delay-4{transition-delay:280ms}
.hero .eyebrow,.hero h1,.hero-content>p,.hero-actions,.trust-row{animation:heroEnter .8s var(--ease-out) both}
.hero h1{animation-delay:.08s}.hero-content>p{animation-delay:.16s}.hero-actions{animation-delay:.24s}.trust-row{animation-delay:.34s}
@keyframes heroEnter{from{opacity:0;transform:translateY(24px)}to{opacity:1;transform:none}}
.hero-bg{transform:scale(1.02);transition:transform 1.4s var(--ease-out)}
.hero.motion-ready .hero-bg{transform:scale(1)}
.rings{animation:ringBreathe 4.5s ease-in-out infinite}
@keyframes ringBreathe{0%,100%{transform:scale(.985);opacity:.82}50%{transform:scale(1.025);opacity:1}}
.pin{animation:pinFloat 3s ease-in-out infinite}
@keyframes pinFloat{0%,100%{transform:translateY(0)}50%{transform:translateY(-7px)}}
@media(max-width:760px){
  .reveal{transform:translateY(18px);transition-duration:580ms}
  .reveal.reveal-left,.reveal.reveal-right{transform:translateY(18px)}
  .problem-card:hover,.review-grid article:hover,.project-photo:hover,.featured-project:hover,.solution-step:hover,.solution-cta:hover{transform:none;box-shadow:inherit}
}
@media(prefers-reduced-motion:reduce){
  html{scroll-behavior:auto}
  *,*::before,*::after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important;scroll-behavior:auto!important}
  .reveal{opacity:1!important;transform:none!important}
}

/* Real Water Strategy project photography */
.hero-photo{width:100%;height:100%;object-fit:cover;display:block;transform:scale(1.015);animation:heroPhotoIn 1.5s var(--ease-out) both}
@keyframes heroPhotoIn{from{opacity:.72;transform:scale(1.07)}to{opacity:1;transform:scale(1.015)}}
.featured-project>img{width:100%;height:100%;min-height:500px;object-fit:cover;display:block;transition:transform .7s var(--ease-out),filter .5s ease}
.featured-project:hover>img{transform:scale(1.025);filter:saturate(1.04) contrast(1.02)}
.project-photo{background-size:cover;background-position:center;position:relative;color:#fff;overflow:hidden}
.project-photo:after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,transparent 50%,rgba(3,10,13,.72));z-index:0}
.project-photo span{position:relative;z-index:1;background:rgba(5,15,19,.78);padding:8px 10px;letter-spacing:.06em}
.card-media{position:relative}
.card-media:after{content:"";position:absolute;inset:0;background:linear-gradient(135deg,transparent 55%,rgba(4,13,17,.22))}
@media(max-width:760px){.hero-photo{display:block}.featured-project>img{min-height:360px}.project-photo{background-position:center}}
@media(prefers-reduced-motion:reduce){.hero-photo{animation:none!important;transform:none!important}.featured-project:hover>img{transform:none!important}}

/* Reliable external project image rendering */
.card-media{overflow:hidden}
.card-media>img{width:100%;height:100%;min-height:190px;object-fit:cover;display:block}
.project-photo{padding:0;position:relative}
.project-photo>img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;display:block}
.project-photo>span{position:absolute;left:15px;bottom:15px;z-index:2}
@media(max-width:760px){.card-media>img{min-height:100%}}

/* Separate project galleries */
.work-gallery{margin-top:56px;padding-top:32px;border-top:1px solid #bcc8cb}
.work-gallery-heading{display:flex;align-items:baseline;justify-content:space-between;gap:18px;margin-bottom:22px}
.work-gallery-heading h3{font-size:clamp(1.35rem,3vw,2rem);line-height:1.2;margin:0;scroll-margin-top:100px}
.work-gallery-heading span{font-size:.875rem;white-space:nowrap;letter-spacing:.08em}
.work-gallery-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:18px;align-items:start}
.work-gallery-photo{display:block;background:#e8edef;border-radius:8px;overflow:hidden}
.work-gallery-photo img{display:block;width:100%;height:auto}
.work-gallery-photo:focus-visible{outline:3px solid #007987;outline-offset:4px}
@media(max-width:760px){.work-gallery-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.work-gallery{margin-top:36px;padding-top:24px}}
@media(max-width:460px){.work-gallery-grid{grid-template-columns:1fr}.work-gallery-heading{align-items:start}.work-gallery-heading h3{max-width:75%}}

/* Water Strategy, LLC: light blue brand palette */
:root{--brand-blue:#88d0fa;--brand-ink:#123c58;--brand-link:#12618b;--brand-pale:#eaf6ff}
body{color:var(--brand-ink)}
.site-header,.site-header.scrolled{background:#eaf6ff;border-bottom-color:#badcf1}
.header-inner{height:112px;gap:22px}
.brand{min-width:220px;max-width:none;flex-direction:column;align-items:flex-start;gap:3px;color:var(--brand-ink)}
.company-logo{display:block;width:172px;height:auto;max-width:100%;mix-blend-mode:multiply}
.company-legal{display:block;font-size:14px;line-height:1.3;font-weight:800;color:var(--brand-ink);letter-spacing:.02em}
.desktop-nav a{color:var(--brand-ink);font-size:14px}
.desktop-nav a.active,.desktop-nav a:hover{color:var(--brand-link)}
.desktop-nav a:after{background:var(--brand-link)}
.top-phone,.drawer-phone,.btn.primary,.solution-cta a,form button,.pin{background:var(--brand-blue);color:var(--brand-ink)}
.top-phone:hover,.btn.primary:hover,form button:hover{background:#a8e0ff}
.menu-btn{border-color:#648fac}.menu-btn span{background:var(--brand-ink)}
.mobile-drawer{background:#eaf6ff;color:var(--brand-ink)}
.drawer-brand{min-width:0}.drawer-brand .company-logo{width:180px}.drawer-brand .company-legal{color:var(--brand-ink);font-size:14px}
.drawer-top button,.mobile-drawer nav a,.mobile-drawer nav a:hover{color:var(--brand-ink)}
.mobile-drawer nav a{border-color:#badcf1;font-size:16px}
.hero{background:#245779}.hero-shade{background:linear-gradient(90deg,rgba(18,60,88,.96),rgba(18,60,88,.87) 48%,rgba(18,60,88,.25) 100%)}
.hero h1 span,.hero .eyebrow,.trust-icon{color:#9bddff}.trust-icon{border-color:#9bddff}
.btn.outline{border-color:#b5e3ff}.btn.outline:hover{background:#285b7d;border-color:#b5e3ff}
.problem-section,.reviews-section{background:#f0f8ff}
.solution-band,.dark-block,.service-area{background:#d7edfc;color:var(--brand-ink)}
.about-copy p,.about-stats span,.solution-step p,.service-area p{color:#34556c}
.mini-label,.section-title>span,.solution-title>span,.problem-copy small,.problem-icon,.solution-icon,.about-stats strong,.solution-cta strong span,.stars{color:var(--brand-link)}
.solution-title,.solution-cta,.about-stats div{border-color:#9dbed5}
.contact-section form{background:#eaf6ff;color:var(--brand-ink)}
input,select,textarea{background:#fff;color:var(--brand-ink);border-color:#91b3ca;font-size:16px}
.contact-section input:focus,.contact-section select:focus,.contact-section textarea:focus{background:#fff;border-color:#12618b;box-shadow:0 0 0 3px #b8dff7}
label{font-size:14px}#formMsg,.contact-copy>a{color:var(--brand-link)}
footer{background:#d7edfc;color:#34556c;font-size:14px;align-items:center}
.footer-brand{display:flex;flex-direction:column;gap:6px}.footer-brand .company-logo{width:190px}.footer-brand .company-legal{color:var(--brand-ink);font-size:14px}
.rings{border-color:#82b9db;box-shadow:0 0 0 55px rgba(82,163,220,.08),0 0 0 110px rgba(82,163,220,.04)}
.work-gallery-photo{background:#eaf6ff}.work-gallery{border-color:#badcf1}
@media(max-width:760px){.header-inner{height:110px;padding:8px 5vw}.brand{min-width:0;width:auto;max-width:calc(100% - 62px);flex:1 1 auto}.company-logo{width:162px}.company-legal{font-size:14px}.header-inner .menu-btn{flex:0 0 46px}.hero-bg{background:#245779}}

.project-specs{font-size:16px;line-height:1.6;margin:0 0 24px;color:var(--brand-ink);background:var(--brand-pale);padding:14px 18px;border-left:3px solid var(--brand-link)}
.project-videos{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:18px;margin-top:24px;max-width:900px}
.project-videos figure{margin:0;min-width:0}.project-videos video{display:block;width:100%;max-height:560px;aspect-ratio:9/16;background:#123c58;object-fit:contain;border-radius:8px}
.project-videos figcaption{font-size:14px;margin-top:8px;color:var(--brand-ink)}
@media(max-width:760px){.work-gallery-heading{flex-wrap:wrap}.work-gallery-heading h3{max-width:100%}.project-videos{grid-template-columns:1fr}}

/* Main homepage project photograph */
.hero-photo{object-position:50% 50%}
.hero-shade{background:linear-gradient(90deg,rgba(18,60,88,.88) 0%,rgba(18,60,88,.76) 45%,rgba(18,60,88,.20) 78%,rgba(18,60,88,.16) 100%)}
@media(max-width:760px){.hero-photo{object-position:48% center}.hero-shade{background:linear-gradient(90deg,rgba(18,60,88,.86),rgba(18,60,88,.66))}}

/* Even project rows and clean service cards */
.problem-card{grid-template-columns:minmax(0,1fr)}
.problem-copy{padding:24px}
.work-gallery-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:20px;align-items:stretch}
.work-gallery-photo{width:100%;aspect-ratio:4/5;overflow:hidden}
.work-gallery-photo img{width:100%;height:100%;object-fit:cover;object-position:center;display:block}
@media(max-width:760px){.problem-card{grid-template-columns:minmax(0,1fr)}.work-gallery-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}}
@media(max-width:460px){.work-gallery-grid{grid-template-columns:minmax(0,1fr);gap:18px}}

/* Photo albums: a framed page with consistent dimensions for every project. */
.project-book.book-ready{display:block;position:relative;max-width:1000px;margin:24px auto 0;padding:16px 16px 16px 26px;background:linear-gradient(90deg,#b4c5cb 0,#eef3f3 12px,#fff 26px);border:1px solid #c5d4d9;border-radius:4px 12px 12px 4px;box-shadow:3px 4px 0 #e4eaec,6px 8px 0 #cfdade,0 16px 32px #123c5812;perspective:1200px;touch-action:pan-y}
.project-book.book-ready .work-gallery-photo{display:block;width:100%;height:clamp(320px,55vw,620px);aspect-ratio:auto;margin:0;padding:0;border:0;border-radius:2px;background:#edf2f4;transform-origin:left center}
.project-book.book-ready .work-gallery-photo[hidden]{display:none!important}
.project-book.book-ready .work-gallery-photo img{display:block;width:100%;height:100%;object-fit:contain;object-position:center;transform:none}
.book-controls{max-width:1000px;display:flex;align-items:center;justify-content:center;gap:26px;margin:22px auto 0;color:var(--brand-ink);font-weight:700;font-size:14px;font-variant-numeric:tabular-nums}
.book-controls button{display:grid;place-items:center;width:48px;height:48px;border:1px solid #9ab7c8;border-radius:50%;background:#fff;color:#123c58;font-size:25px;cursor:pointer;transition:background .15s,color .15s}
.book-controls button:hover:not(:disabled){background:#123c58;color:white}
.book-controls button:disabled{opacity:.3;cursor:default}
.book-controls button:focus-visible,.project-book:focus-visible,.project-book a:focus-visible{outline:3px solid #1688ba;outline-offset:5px}
@media(max-width:600px){.project-book.book-ready{padding:10px 10px 10px 17px}.project-book.book-ready .work-gallery-photo{height:440px;height:min(58vh,480px);min-height:280px}.book-controls{margin-top:20px}}

/* Location, business hours, and direct owner contact. */
.hero-content .brand-slogan{color:inherit;font-size:clamp(19px,2.2vw,28px);font-weight:700;margin:12px 0 18px;font-style:italic}
.location-section{gap:44px;align-items:center}
.location-section h2{font-size:clamp(2.2rem,4vw,4rem)}
.business-hours{width:100%;max-width:490px;border-collapse:collapse;margin-top:28px;color:inherit;font-size:16px}
.business-hours caption{text-align:left;font-size:13px;font-weight:700;letter-spacing:.03em;margin-bottom:12px}
.business-hours th,.business-hours td{text-align:left;padding:13px 0;border-top:1px solid #92b2c580}
.business-hours th{font-weight:600;padding-right:18px}.business-hours td{white-space:nowrap}
.location-map{min-width:0}.location-map iframe{display:block;width:100%;height:380px;border-radius:8px;background:#e4edf2}
.location-map>a{display:inline-block;margin-top:14px;color:inherit;text-decoration:underline;font-size:14px}
.contact-copy>a{overflow-wrap:anywhere}
.contact-footer{grid-template-columns:1fr 1fr 1.2fr;gap:32px;padding:42px 5vw 24px;align-items:start}
.contact-footer h3{font-size:18px;margin:0 0 8px;color:#123c58}.contact-footer p{margin:5px 0 12px}
.contact-footer a{color:#123c58;font-size:15px;overflow-wrap:anywhere}.footer-office>a{display:block;margin-bottom:9px}
.contact-footer .owner-number{font-size:21px;font-weight:700}.owner-actions{display:flex;gap:10px;margin-top:16px;flex-wrap:wrap}
.owner-actions a{padding:11px 18px;border:1px solid #123c58;border-radius:4px;font-weight:700}.owner-actions a:first-child{background:#123c58;color:white}
.contact-footer a:focus-visible{outline:3px solid #1688ba;outline-offset:4px}
.footer-slogan{font-style:italic;font-weight:700;font-size:17px;color:#123c58}
.footer-bottom{grid-column:1/-1;display:flex;justify-content:space-between;gap:18px;flex-wrap:wrap;border-top:1px solid #9ab7c8;padding-top:20px;font-size:11px}
@media(max-width:760px){.location-section{grid-template-columns:1fr;gap:28px}.location-map iframe{height:320px}.contact-footer{grid-template-columns:1fr;gap:30px}.business-hours{font-size:14px}.footer-bottom{flex-direction:column}}

/* Consistent, centered video cards across every project. */
.project-videos{display:grid;grid-template-columns:repeat(2,minmax(0,360px));justify-content:center;align-items:start;gap:24px;width:100%;max-width:1000px;margin:32px auto 0}
.project-videos figure{width:100%;margin:0;overflow:hidden;border:1px solid #c5d4d9;border-radius:10px;background:#fff;box-shadow:0 6px 20px #123c580d}
.project-videos figure:only-child{grid-column:1/-1;width:100%;max-width:360px;justify-self:center}
.project-videos video{display:block;width:100%;height:auto;max-height:none;aspect-ratio:3/4;object-fit:contain;object-position:center;background:#102735;border-radius:0}
.project-videos figcaption{display:flex;align-items:center;min-height:62px;padding:16px 18px;margin:0;color:#123c58;font-size:14px;font-weight:600;line-height:1.45;border-top:1px solid #d8e3e9}
@media(max-width:600px){.project-videos{grid-template-columns:minmax(0,360px);gap:20px;margin-top:28px}.project-videos figure:only-child{grid-column:auto}}

#service-area-map{height:380px;width:100%;border:1px solid #a7c8d9;border-radius:8px;background:#e7f0f3;z-index:0;isolation:isolate;font-family:Arial,Helvetica,sans-serif}
.map-fallback{padding:24px;font-size:16px}.location-map .map-legend{display:flex;align-items:center;gap:9px;margin:12px 0;font-size:13px;color:#34556c}
.map-legend>span{display:inline-block;width:20px;height:14px;background:#31a9e33d;border:2px solid #168ed0;border-radius:2px}
.google-map-details{margin-top:14px;border-top:1px solid #9ab7c8;padding-top:12px}.google-map-details summary{cursor:pointer;color:#123c58;font-size:14px;font-weight:700;padding:8px 0}.google-map-details iframe{margin-top:12px}
@media(max-width:760px){#service-area-map{height:320px}}

/* Clearly separated footer contact groups. */
.contact-footer{grid-template-columns:repeat(4,minmax(0,1fr));gap:30px}
.contact-footer .footer-brand{grid-column:1/-1;padding-bottom:20px;border-bottom:1px solid #9ab7c8}
.footer-emails>a,.footer-service>a{display:block;margin-bottom:10px;line-height:1.6}
@media(max-width:1050px){.contact-footer{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:600px){.contact-footer{grid-template-columns:minmax(0,1fr);gap:24px}.contact-footer>div:not(.footer-brand):not(.footer-bottom){padding-bottom:20px;border-bottom:1px solid #abc7d8}.contact-footer .footer-bottom{border-top:0}}

/* Contact directory beneath Let's Control the Flow. */
.contact-directory{display:flex;flex-direction:column;gap:0;margin-top:28px}
.contact-group{padding:22px 0;border-top:1px solid #bad1df}
.contact-group h3{margin:0 0 12px;color:#123c58;font-size:16px;font-weight:800;letter-spacing:.04em;text-transform:uppercase}
.contact-group p{margin:0 0 7px;font-size:15px;color:#34556c}
.contact-group>a{display:block;margin:7px 0;color:#0a6b94;font-size:16px;font-weight:600;overflow-wrap:anywhere;line-height:1.6}
.contact-group .owner-actions{margin-top:12px}.contact-group .owner-actions a{font-size:14px}
.contact-group a:focus-visible{outline:3px solid #1688ba;outline-offset:4px}
.contact-section{align-items:start}
