:root {
  --navy:#09192b;
  --deep:#071524;
  --ink:#182432;
  --blue:#72a9e7;
  --blue2:#5493dc;
  --muted:#5c6978;
  --paper:#f8f9fb;
  --line:#e3e7ec;
  --font:'DM Sans',Arial,sans-serif;
  --display:'Manrope',Arial,sans-serif;
  scroll-behavior:smooth}

* {
  box-sizing:border-box}
body {
  margin:0;
  color:var(--ink);
  font-family:var(--font);
  background:white;
  -webkit-font-smoothing:antialiased}
button,input,a {
  font:inherit}
a {
  color:inherit;
  text-decoration:none}
button,a {
   -webkit-tap-highlight-color:transparent }
a:focus-visible,button:focus-visible {
  outline:3px solid #387fd1;
  outline-offset:4px}
img {
  max-width:100%;
  display:block}
svg {
  display:block}
h1,h2,h3,p {
  margin-top:0}
h1,h2,h3 {
  font-family:var(--display)}
.container {
  width:min(1260px,calc(100% - 100px));
  margin:auto}
.skip {
  position:absolute;
  left:12px;
  top:-100px;
  background:#fff;
  padding:12px;
  z-index:999}
.skip:focus {
  top:10px}
.header {
  position:absolute;
  z-index:11;
  inset:0 0 auto;
  height:98px;
  border-bottom:1px solid rgba(255,255,255,.2)}
.nav {
  display:flex;
  align-items:center;
  justify-content:space-between;
  height:100%}
.brand {
  display:flex;
  align-items:center;
  gap:10px;
  color:white;
  white-space:nowrap}
.brand-symbol {
  width:47px;
  height:47px;
  color:var(--blue)}
.brand-symbol svg {
  height:100%;
  width:100%}
.brand-text {
  display:flex;
  flex-direction:column;
  gap:1px}
.brand-text strong {
  font:800 15px/1.15 var(--display);
  letter-spacing:.11em}
.brand-text small {
  font:600 9px/1.5 var(--display);
  letter-spacing:.26em;
  opacity:.76}
.nav-links {
  display:flex;
  align-items:center;
  gap:41px;
  color:#edf2f8}
.nav-links>a:not(.nav-cta) {
  font-size:13px;
  font-weight:600;
  transition:color .2s}
.nav-links>a:not(.nav-cta):hover {
  color:var(--blue)}
.nav-cta {
  display:flex;
  align-items:center;
  gap:26px;
  border:1px solid rgba(255,255,255,.35);
  padding:15px 19px;
  font-size:13px;
  font-weight:700;
  transition:background .2s,border-color .2s}
.nav-cta:hover {
  background:#ffffff15;
  border-color:#ffffffa0}
.nav-cta span {
  font-size:18px}
.menu-toggle {
  display:none}
.hero {
  min-height:786px;
  position:relative;
  background:var(--deep);
  color:white;
  overflow:hidden}
.hero-backdrop {
  position:absolute;
  inset:0;
  background:radial-gradient(circle at 20% 46%,#173353 0,transparent 44%),linear-gradient(125deg,#081524 5%,#0a2630 66%,#061820 100%);
  z-index:0}
.hero-photo {
  position:absolute;
  right:0;
  top:0;
  bottom:0;
  width:64%;
  background-image:url('assets/wash-hero.webp?v=879ab5f37698');
  background-size:cover;
  background-position:center center;
  opacity:.84;
  filter:saturate(.72) contrast(1.1)}
.hero-photo-shade {
  position:absolute;
  inset:0;
  background:linear-gradient(90deg,#071524 0%,#09192b 27%,rgba(7,29,34,.87) 43%,rgba(7,29,34,.27) 74%,rgba(7,29,34,.1) 100%),linear-gradient(0deg,rgba(0,10,15,.72),transparent 30%)}
.hero-inner {
  position:relative;
  min-height:786px;
  display:flex;
  align-items:center;
  justify-content:space-between;
  padding-top:98px;
  padding-bottom:100px}
.hero-copy {
  width:660px;
  max-width:65%;
  z-index:2;
  padding-top:28px}
.eyebrow {
  display:flex;
  align-items:center;
  gap:12px;
  font-size:11px;
  letter-spacing:.22em;
  font-weight:800;
  color:#28588f;
  margin-bottom:31px}
.eyebrow-line {
  height:1px;
  background:currentColor;
  width:28px}
.eyebrow.light {
  color:#b7d2f0}
.hero h1 {
  font-size:clamp(3.4rem,5.5vw,5.55rem);
  font-weight:800;
  line-height:1.055;
  letter-spacing:-.064em;
  margin-bottom:28px}
.hero h1 em {
  color:var(--blue);
  font-style:normal}
.hero-description {
  max-width:465px;
  color:#d2d9e1;
  line-height:1.8;
  font-size:16px;
  margin-bottom:33px}
.hero-buttons {
  display:flex;
  align-items:center;
  flex-wrap:wrap;
  gap:12px}
.btn {
  display:inline-flex;
  justify-content:space-between;
  align-items:center;
  gap:28px;
  min-height:55px;
  padding:0 22px;
  font-size:13px;
  font-weight:800;
  transition:transform .25s,background .25s,color .25s;
  white-space:nowrap}
.btn:hover {
  transform:translateY(-3px)}
.btn>span {
  font-size:18px;
  font-weight:400}
.btn-blue {
  background:var(--blue);
  color:#08182b}
.btn-blue:hover {
  background:#a5c8f0}
.btn-outline {
  border:1px solid #b3beca90;
  color:white}
.btn-outline:hover {
  background:#ffffff22}
.hero-address {
  font-size:12px;
  color:#c5cfda;
  margin:31px 0 0;
  display:flex;
  gap:9px;
  align-items:center}
.hero-address svg {
  width:15px;
  height:15px;
  stroke:var(--blue);
  stroke-width:1.8;
  fill:none}
.hero-seal-wrap {
  position:relative;
  align-self:flex-end;
  margin-right:5px;
  margin-bottom:43px;
  transform:rotate(-6deg)}
.hero-seal {
  position:relative;
  width:252px;
  height:252px;
  border-radius:50%;
  border:1px solid rgba(255,255,255,.66);
  box-shadow:0 0 0 9px rgba(255,255,255,.06),inset 0 0 25px rgba(255,255,255,.15);
  background:radial-gradient(ellipse at 40% 30%,rgba(41,132,154,.3),rgba(2,29,40,.81) 70%);
  display:flex;
  align-items:center;
  justify-content:center;
  text-align:center}
.hero-seal:before {
  content:'';
  position:absolute;
  inset:15px;
  border:1px dashed #ffffff66;
  border-radius:50%}
.hero-seal-text {
  position:relative;
  z-index:2;
  display:flex;
  flex-direction:column;
  gap:4px;
  text-shadow:0 2px 10px #001a24}
.hero-seal-text span,.hero-seal-text small {
  font-size:12px;
  font-weight:700;
  letter-spacing:.27em}
.hero-seal-text strong {
  font:800 31px/.95 var(--display);
  letter-spacing:-.06em}
.hero-seal-text small {
  color:var(--blue);
  margin-top:5px}
.hero-seal canvas {
  position:absolute;
  inset:-115px;
  width:calc(100% + 230px);
  height:calc(100% + 230px);
  pointer-events:none;
  z-index:3}
.motion-note {
  color:#ccdae9;
  font-size:11px;
  text-align:center;
  margin:25px 0 0;
  letter-spacing:.01em;
  transform:rotate(6deg)}
.hero-bottom {
  position:absolute;
  bottom:0;
  left:0;
  right:0;
  border-top:1px solid #ffffff30}
.hero-bottom-inner {
  display:flex;
  align-items:center;
  justify-content:space-between;
  height:64px;
  color:#d5dfea;
  font-size:10px;
  letter-spacing:.16em;
  font-weight:800}
.hero-bottom a {
  display:flex;
  align-items:center;
  gap:18px}
.hero-bottom a span {
  font-size:19px;
  color:var(--blue)}
.section {
  padding:112px 0}
.intro {
  background:#fff}
.intro-grid {
  display:grid;
  grid-template-columns:1fr .9fr;
  gap:16%;
  align-items:center}
.intro h2,.section-top h2,.care h2,.location h2 {
  font-size:clamp(2.6rem,4.2vw,4.5rem);
  line-height:1.17;
  letter-spacing:-.065em;
  font-weight:800}
.intro h2 {
  margin:0}
.script-accent {
  font-style:italic;
  font-weight:500;
  color:#4671a3}
.intro-right {
  font-size:17px;
  line-height:1.83;
  color:#515d6a}
.intro-right p {
  margin-bottom:19px}
.text-link {
  display:inline-flex;
  gap:28px;
  align-items:center;
  color:#16457b;
  font-weight:800;
  font-size:13px;
  margin-top:20px;
  border-bottom:1px solid currentColor;
  padding-bottom:10px}
.text-link span {
  font-size:17px}
.services {
  background:#f5f7f9}
.section-top {
  display:flex;
  justify-content:space-between;
  gap:45px;
  align-items:end;
  margin-bottom:46px}
.section-top h2 {
  max-width:660px;
  margin-bottom:0}
.section-top h2 em,.care h2 em,.location h2 em {
  color:#406998;
  font-style:normal}
.section-top>p {
  max-width:310px;
  color:#647180;
  line-height:1.8;
  font-size:15px;
  margin:0 0 8px}
.services-grid {
  display:grid;
  grid-template-columns:repeat(3,minmax(0,1fr));
  gap:1px;
  background:#d9dfe6;
  border:1px solid #d9dfe6}
.service-card {
  background:#fff;
  min-height:260px;
  padding:27px 29px;
  position:relative;
  overflow:hidden;
  transition:background .25s}
.service-card:hover {
  background:#ebf1f8}
.service-card.large {
  min-height:315px}
.service-no {
  font-size:10px;
  letter-spacing:.14em;
  font-weight:800;
  color:#3b699e}
.service-card h3 {
  font-size:20px;
  letter-spacing:-.04em;
  line-height:1.32;
  margin:21px 0 11px}
.service-card p {
  font-size:14px;
  color:#64707d;
  line-height:1.75;
  max-width:315px;
  margin:0}
.service-icon {
  color:#86aad4;
  position:absolute;
  right:35px;
  top:55px;
  font-size:40px;
  font-family:Arial}
.service-illustration {
  height:130px;
  display:flex;
  align-items:flex-end;
  color:#2e5c90;
  max-width:310px}
.service-illustration svg {
  width:100%}
.service-card.large h3 {
  margin-top:9px}
.services-foot {
  display:flex;
  justify-content:space-between;
  align-items:center;
  margin-top:35px;
  gap:20px;
  color:#566270;
  font-size:14px}
.btn-dark {
  background:var(--navy);
  color:white}
.btn-dark:hover {
  background:#152e4b}
.visual-story {
  display:grid;
  grid-template-columns:55% 45%;
  min-height:575px;
  background:var(--deep)}
.visual-story-photo {
  position:relative;
  overflow:hidden}
.visual-story-photo img {
  width:100%;
  height:100%;
  object-fit:cover}
.visual-story-panel {
  padding:80px clamp(40px,7vw,114px) 45px;
  display:flex;
  align-items:flex-start;
  justify-content:center;
  flex-direction:column;
  color:white;
  position:relative}
.visual-story-panel:before {
  content:'';
  position:absolute;
  inset:0;
  background:radial-gradient(ellipse at 85% 20%,#1c3c603b,transparent 65%);
  pointer-events:none}
.visual-story-panel>* {
  position:relative}
.visual-story-panel h2 {
  font-size:clamp(2.65rem,3.5vw,4rem);
  letter-spacing:-.065em;
  line-height:1.15;
  max-width:520px;
  margin-bottom:20px}
.visual-story-panel h2 em {
  font-style:normal;
  color:var(--blue)}
.visual-story-panel>p:not(.eyebrow) {
  color:#b9c7d8;
  line-height:1.8;
  max-width:380px;
  font-size:15px;
  margin-bottom:23px}
.btn-white {
  background:white;
  color:#101f31}
.btn-white:hover {
  background:#d8e8fa}
.visual-story-panel small {
  font-size:10px;
  color:#a3b1c1;
  margin-top:35px;
  line-height:1.5}
.care {
  background:white}
.care-grid {
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:11%;
  align-items:center}
.care-media {
  position:relative;
  min-height:580px}
.care-media img {
  width:100%;
  height:580px;
  object-fit:cover;
  object-position:60% center;
  filter:saturate(.82)}
.care-card {
  position:absolute;
  bottom:-27px;
  right:-25px;
  background:#72a9e7;
  color:#0a1e34;
  padding:34px 38px;
  width:252px}
.care-card span {
  font-size:10px;
  letter-spacing:.18em;
  font-weight:800}
.care-card strong {
  font:800 26px/1.2 var(--display);
  display:block;
  margin-top:16px;
  letter-spacing:-.045em}
.care-copy h2 {
  margin-bottom:28px}
.care-copy>p:not(.eyebrow) {
  color:#66717d;
  line-height:1.85;
  font-size:16px;
  margin-bottom:32px}
.care-points {
  border-top:1px solid var(--line)}
.care-points>div {
  display:flex;
  align-items:flex-start;
  gap:19px;
  border-bottom:1px solid var(--line);
  padding:16px 0}
.tick {
  height:27px;
  width:27px;
  border:1px solid #c9daee;
  color:#285588;
  border-radius:50%;
  display:flex;
  align-items:center;
  justify-content:center;
  flex-shrink:0}
.care-points strong {
  font-size:14px;
  font-weight:800}
.care-points p {
  font-size:13px;
  color:#707a86;
  margin:6px 0 0}
.location {
  background:#f4f6f9}
.location-head {
  margin-bottom:46px}
.location-card {
  display:grid;
  grid-template-columns:46% 54%;
  min-height:490px;
  background:#fff;
  box-shadow:0 18px 70px #0b1e3308}
.location-info {
  padding:58px 62px;
  position:relative}
.info-tag {
  font-size:10px;
  letter-spacing:.18em;
  font-weight:800;
  color:#4c76a5}
.location-info h3 {
  font-size:40px;
  line-height:1.2;
  letter-spacing:-.055em;
  margin:27px 0 33px}
.address-row {
  display:flex;
  gap:17px;
  margin:15px 0}
.address-row p {
  font-size:14px;
  line-height:1.7;
  color:#364250}
.address-row small {
  color:#7d8d90}
.address-icon {
  font-size:18px;
  color:#2e68aa}
.location-actions {
  display:flex;
  gap:10px;
  flex-wrap:wrap;
  margin-top:32px}
.btn-outline-dark {
  border:1px solid #d2d8df;
  color:#14263b}
.btn-outline-dark:hover {
  background:#f4f6f8}
.map-art {
  min-height:490px;
  position:relative;
  overflow:hidden;
  background:#dbe1e8}
.map-grid {
  position:absolute;
  inset:-40px;
  background-image:linear-gradient(#ffffff55 2px,transparent 2px),linear-gradient(90deg,#ffffff55 2px,transparent 2px);
  background-size:80px 80px;
  transform:rotate(20deg) scale(1.6)}
.map-avenue {
  position:absolute;
  background:#fff;
  box-shadow:0 0 0 6px #d5dce3}
.avenue-a {
  height:30px;
  width:130%;
  left:-10%;
  top:35%;
  transform:rotate(31deg)}
.avenue-b {
  height:26px;
  width:130%;
  left:-10%;
  top:68%;
  transform:rotate(-21deg)}
.avenue-c {
  height:22px;
  width:120%;
  left:-10%;
  top:9%;
  transform:rotate(-13deg)}
.map-label {
  position:absolute;
  left:11%;
  top:18%;
  color:#949fab;
  font-size:19px;
  font-weight:800;
  letter-spacing:.15em;
  transform:rotate(-13deg)}
.map-pin {
  position:absolute;
  left:46%;
  top:46%;
  transform:translate(-50%,-50%);
  border-radius:3px;
  box-shadow:0 13px 30px #07203d33;
  background:#09192b;
  color:#fff;
  padding:17px 22px;
  display:flex;
  flex-direction:column;
  min-width:200px;
  text-align:center;
  border-top:3px solid var(--blue)}
.map-pin span {
  font-size:29px;
  color:var(--blue)}
.map-pin strong {
  font-size:11px;
  letter-spacing:.13em;
  margin:7px 0 3px}
.map-pin small {
  font-size:10px;
  color:#afc0d4}
.map-caption {
  position:absolute;
  bottom:12px;
  left:15px;
  font-size:10px;
  color:#616e7c;
  background:#ffffffb9;
  padding:8px 12px}
.last-cta {
  background:var(--deep);
  color:white;
  overflow:hidden}
.last-cta-inner {
  text-align:center;
  min-height:540px;
  display:flex;
  align-items:center;
  flex-direction:column;
  justify-content:center;
  position:relative;
  padding:85px 0;
  isolation:isolate}
.last-cta-inner:before {
  position:absolute;
  inset:0;
  content:'';
  z-index:-1;
  background:radial-gradient(ellipse at 10% 78%,#164c5f8a,transparent 36%),radial-gradient(ellipse at 90% 10%,#1a3b606b,transparent 38%)}
.last-cta .eyebrow {
  justify-content:center}
.last-cta h2 {
  font-size:clamp(3.3rem,5.2vw,5.7rem);
  letter-spacing:-.068em;
  line-height:1.1;
  margin-bottom:24px}
.last-cta h2 em {
  font-style:normal;
  color:var(--blue)}
.last-cta-inner>p:not(.eyebrow) {
  color:#c8d2dd;
  font-size:16px;
  margin-bottom:28px}
.final-buttons {
  display:flex;
  gap:12px;
  z-index:2;
  flex-wrap:wrap;
  justify-content:center}
.cta-water {
  position:absolute;
  inset:0;
  pointer-events:none;
  overflow:hidden}
.cta-water i {
  position:absolute;
  width:360px;
  height:360px;
  border:1px solid #8bb4e31e;
  border-radius:50%;
  bottom:-245px;
  left:-100px;
  animation:ripple 12s infinite linear}
.cta-water i:nth-child(2) {
  left:auto;
  right:-90px;
  bottom:260px;
  animation-delay:-5s}
.cta-water i:nth-child(3) {
  left:55%;
  bottom:-300px;
  animation-delay:-8s}
@keyframes ripple {
  0% {
  transform:scale(.8);
  opacity:.35}
50% {
  opacity:.8}
100% {
  transform:scale(1.5);
  opacity:0}
}
footer {
  background:#101a38;
  color:#c8d1dc}
.footer-top {
  display:flex;
  align-items:center;
  justify-content:space-between;
  padding:56px 0;
  border-bottom:1px solid #ffffff25}
.footer-links {
  display:flex;
  gap:32px;
  font-size:13px}
.footer-links a:hover {
  color:var(--blue)}
.footer-bottom {
  display:flex;
  justify-content:space-between;
  gap:20px;
  padding:22px 0;
  color:#919daa;
  font-size:11px}
.footer-bottom span span {
  color:var(--blue)}
@media(max-width:1100px) {
  .container {
  width:min(100% - 58px,1260px)}
.hero-copy {
  max-width:66%}
.hero h1 {
  font-size:4rem}
.hero-seal {
  width:190px;
  height:190px}
.hero-seal-text strong {
  font-size:24px}
.hero-seal-wrap {
  margin-right:5px}
.service-card {
  padding:25px 22px}
.visual-story-panel {
  padding:65px 50px}
.care-grid {
  gap:8%}
.care-card {
  right:-10px}
.location-info {
  padding:48px 40px}
}
@media(max-width:760px) {
  .container {
  width:calc(100% - 38px)}
.header {
  height:76px}
.brand-symbol {
  height:40px;
  width:40px}
.brand-text strong {
  font-size:13px}
.nav-links {
  display:none;
  position:absolute;
  left:0;
  right:0;
  top:76px;
  background:#081a2f;
  padding:25px 24px 30px;
  box-shadow:0 20px 35px #000d1c66;
  flex-direction:column;
  align-items:stretch;
  gap:18px}
.nav-links.open {
  display:flex}
.nav-links>a:not(.nav-cta) {
  padding:5px 0}
.nav-cta {
  justify-content:space-between}
.menu-toggle {
  display:flex;
  flex-direction:column;
  gap:5px;
  background:none;
  border:0;
  cursor:pointer;
  padding:10px}
.menu-toggle span {
  width:24px;
  height:2px;
  background:#fff;
  display:block}
.hero {
  min-height:805px}
.hero-photo {
  width:100%;
  top:75px;
  bottom:0;
  background-position:52% center;
  opacity:.62}
.hero-photo-shade {
  background:linear-gradient(90deg,#071524b5,#07152455),linear-gradient(0deg,#071524 7%,#07152488 63%,#07152450)}
.hero-inner {
  min-height:805px;
  align-items:flex-start;
  padding-top:180px;
  padding-bottom:190px;
  display:block}
.hero-copy {
  max-width:none;
  width:100%}
.hero h1 {
  font-size:clamp(3rem,9vw,4.5rem);
  letter-spacing:-.06em}
.hero-description {
  font-size:15px;
  max-width:460px}
.hero-seal-wrap {
  position:absolute;
  right:20px;
  bottom:56px;
  margin:0;
  transform:rotate(-8deg)}
.hero-seal {
  width:143px;
  height:143px}
.hero-seal:before {
  inset:10px}
.hero-seal-text strong {
  font-size:18px}
.hero-seal-text small,.hero-seal-text span {
  font-size:8px}
.hero-seal canvas {
  inset:-65px;
  width:calc(100% + 130px);
  height:calc(100% + 130px)}
.motion-note {
  display:none}
.hero-bottom-inner>span {
  font-size:9px;
  max-width:180px;
  line-height:1.5}
.hero-bottom-inner>a {
  font-size:9px}
.section {
  padding:76px 0}
.intro-grid,.care-grid {
  grid-template-columns:1fr;
  gap:28px}
.intro h2,.section-top h2,.care h2,.location h2 {
  font-size:clamp(2.6rem,8vw,3.8rem)}
.intro-right {
  font-size:15px}
.section-top {
  display:block;
  margin-bottom:30px}
.section-top>p {
  margin-top:19px}
.services-grid {
  grid-template-columns:repeat(2,minmax(0,1fr))}
.service-card {
  min-height:252px}
.service-card.large {
  min-height:290px}
.visual-story {
  grid-template-columns:1fr}
.visual-story-photo {
  height:340px}
.visual-story-panel {
  padding:65px 28px;
  min-height:420px}
.care-media {
  min-height:410px;
  max-width:540px}
.care-media img {
  height:420px}
.care-card {
  right:0;
  bottom:-12px}
.care-copy {
  padding-top:35px}
.location-card {
  grid-template-columns:1fr}
.map-art {
  min-height:350px}
.footer-top,.footer-bottom {
  flex-direction:column;
  align-items:flex-start}
.footer-links {
  gap:24px;
  flex-wrap:wrap}
}
@media(max-width:480px) {
  .hero {
  min-height:850px}
.hero-inner {
  min-height:850px;
  padding-top:162px}
.hero h1 {
  font-size:clamp(2.55rem,12.2vw,3.6rem)}
.hero-description {
  max-width:340px}
.hero-buttons {
  align-items:stretch;
  max-width:320px}
.hero-buttons .btn {
  width:100%;
  height:48px;
  min-height:48px}
.hero-address {
  line-height:1.5;
  max-width:255px}
.hero-seal-wrap {
  bottom:63px;
  right:5px}
.hero-seal {
  width:135px;
  height:135px}
.hero-bottom-inner>a {
  font-size:8px;
  gap:8px}
.services-grid {
  grid-template-columns:1fr}
.service-card {
  min-height:210px}
.service-card.large {
  min-height:300px}
.service-icon {
  top:50px}
.services-foot {
  flex-direction:column;
  align-items:flex-start}
.visual-story-photo {
  height:290px}
.visual-story-panel h2 {
  font-size:2.7rem}
.care-media {
  min-height:330px}
.care-media img {
  height:360px}
.care-card {
  width:205px;
  padding:24px}
.care-card strong {
  font-size:22px}
.location-info {
  padding:46px 25px}
.location-info h3 {
  font-size:34px}
.location-actions {
  flex-direction:column;
  align-items:stretch}
.footer-links {
  gap:18px}
.last-cta h2 {
  font-size:3.05rem}
}
@media(prefers-reduced-motion:reduce) {
  html,:root {
  scroll-behavior:auto}
.btn,.cta-water i,.service-card {
  animation:none!important;
  transition:none!important}
}

