@import url('https://fonts.googleapis.com/css2?family=Manrope:wght@400;500;600;700;800&display=swap');
:root{--navy:#08244d;--navy-2:#0d315f;--blue:#147fe3;--sky:#62b1eb;--pale:#eaf6ff;--yellow:#f2c230;--yellow-dark:#d9a91d;--white:#fff;--text:#0b2448;--muted:#5c6f87;--line:#d8e3ee;--container:min(1280px,calc(100% - 64px))}
*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;font-family:"Manrope",system-ui,sans-serif;color:var(--text);background:#fff;line-height:1.5}img{display:block;max-width:100%}a{color:inherit}.container{width:var(--container);margin:auto}.section{padding:96px 0}.bg-pale{background:var(--pale)}h1,h2,h3{margin-top:0;letter-spacing:-.05em;line-height:1.04}h1{font-size:clamp(3.2rem,7vw,6.2rem)}h2{font-size:clamp(2.5rem,5vw,4.5rem)}h3{font-size:1.35rem}p{color:var(--muted)}.lead{font-size:1.08rem;line-height:1.7;max-width:680px}.btn{display:inline-flex;align-items:center;justify-content:center;padding:14px 22px;border-radius:999px;text-decoration:none;font-weight:700;border:1px solid transparent;transition:.25s transform,.25s background,.25s color}.btn:hover{transform:translateY(-2px)}.btn-blue{background:var(--blue);color:#fff}.btn-white{background:#fff;color:var(--navy)}.btn-outline{border-color:#b8c9db;background:#fff;color:var(--navy)}.btn-glass{border-color:rgba(255,255,255,.45);background:rgba(255,255,255,.12);color:#fff;backdrop-filter:blur(8px)}.hero-actions{display:flex;gap:12px;flex-wrap:wrap;margin-top:26px}
.site-header{position:sticky;top:0;z-index:100;background:rgba(255,255,255,.96);backdrop-filter:blur(16px);border-bottom:1px solid rgba(8,36,77,.08)}.nav{height:76px;display:flex;align-items:center;gap:24px}.brand{text-decoration:none;font-weight:800;font-size:1.2rem;letter-spacing:-.04em;color:var(--navy)}.nav-links{display:flex;gap:24px;margin-left:auto;align-items:center}.nav-links a{text-decoration:none;font-size:.92rem;font-weight:600}.nav-actions{display:flex;align-items:center;gap:12px}.nav-phone{font-weight:800;text-decoration:none;color:var(--navy);white-space:nowrap}.menu-toggle{display:none;margin-left:auto;border:0;background:none;padding:8px}.menu-toggle span{display:block;width:22px;height:2px;background:var(--navy);margin:5px}
.hero-bg{position:relative;background-image:var(--hero-image);background-size:cover;background-position:center;min-height:calc(100svh - 76px);display:flex;align-items:center;color:#fff}.hero-home{background-position:center 42%}.hero-shade{position:absolute;inset:0;background:linear-gradient(90deg,rgba(4,20,45,.88) 0%,rgba(4,20,45,.62) 44%,rgba(4,20,45,.18) 100%)}.hero-overlay{position:relative;z-index:2}.hero-content{max-width:760px;padding:70px 0}.hero-content.narrow{max-width:850px}.hero-content h1{color:#fff}.hero-content p{color:#e2edf7}.pill-word{display:inline-block;background:#fff;color:var(--navy);padding:.01em .2em .06em;border-radius:999px}.hero-facts{display:flex;gap:12px;flex-wrap:wrap;margin-top:34px}.hero-facts span{padding:11px 14px;border-radius:999px;background:rgba(255,255,255,.12);border:1px solid rgba(255,255,255,.28);backdrop-filter:blur(8px);font-size:.86rem}.hero-facts b{color:var(--yellow);margin-right:5px}
.offer-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:18px}.offer-card{border-radius:30px;padding:34px;min-height:220px;display:flex;flex-direction:column;justify-content:center;text-align:center}.offer-card.blue{background:var(--blue);color:#fff}.offer-card.blue p{color:#e8f3ff}.offer-card.yellow{background:var(--yellow);color:var(--navy)}.offer-card.yellow p{color:#445269}.offer-card.sky{background:var(--sky);color:var(--navy)}.offer-card.sky p{color:#284968}
.sticky-grid{display:grid;grid-template-columns:.78fr 1.22fr;gap:70px;align-items:start}.sticky-copy{position:sticky;top:120px}.scroll-stack{display:grid;gap:30px}.scroll-panel{border-radius:30px;overflow:hidden;background:#fff;border:1px solid var(--line);box-shadow:0 18px 50px rgba(8,36,77,.08)}.scroll-panel img{width:100%;height:390px;object-fit:cover}.scroll-panel>div{padding:28px}.scroll-panel:nth-child(2){transform:translateX(24px)}.scroll-panel:nth-child(3){transform:translateX(-18px)}
.location-grid{display:grid;grid-template-columns:.85fr 1.15fr;gap:26px;align-items:stretch}.location-copy{background:var(--navy);color:#fff;border-radius:32px;padding:44px}.location-copy p{color:#d5e6f7}.map{border-radius:32px;overflow:hidden;min-height:470px}.map iframe{width:100%;height:100%;min-height:470px;border:0}.home-visit{background:linear-gradient(135deg,#eaf6ff,#fff8d8)}
.split{display:grid;grid-template-columns:1fr 1fr;gap:70px;align-items:center}.media-card{border-radius:30px;overflow:hidden;min-height:500px}.media-card img{width:100%;height:100%;min-height:500px;object-fit:cover}.accent-block{padding-left:28px;border-left:9px solid var(--yellow)}.brand-band{background:var(--navy)}.brand-values{display:grid;grid-template-columns:repeat(3,1fr);gap:18px}.brand-values article{background:var(--blue);color:#fff;border-radius:30px;padding:34px;min-height:210px}.brand-values article p{color:#e6f2ff}.brand-values article.yellow{background:var(--yellow);color:var(--navy)}.brand-values article.yellow p{color:#435268}.brand-values article.sky{background:var(--sky);color:var(--navy)}.brand-values article.sky p{color:#284968}
.section-head{max-width:760px;margin-bottom:42px}.machine-grid{display:grid;grid-template-columns:repeat(5,1fr);gap:16px}.machine-card{padding:26px;border:1px solid var(--line);border-radius:24px;background:#fff}.machine-card.yellow{background:#fff4b8;border-color:#efd56b}.machine-card.sky{background:#dff2ff;border-color:#b9dff7}.machine-size{font-size:2.3rem;font-weight:800;color:var(--blue);letter-spacing:-.05em}.machine-card p{font-size:.9rem;margin-bottom:0}
.washfold-grid{display:grid;grid-template-columns:.85fr 1.15fr;gap:70px;align-items:center}.washfold-copy{padding:18px 0}.washfold-meta{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin:28px 0}.washfold-meta>div{padding:20px;border-radius:20px;background:var(--pale)}.washfold-meta strong,.washfold-meta span{display:block}.washfold-meta strong{font-size:1.6rem;color:var(--navy)}.washfold-meta span{color:var(--muted);font-size:.9rem}.washfold-visual{position:relative}.washfold-photo{border-radius:32px;overflow:hidden}.washfold-photo img{width:100%;height:520px;object-fit:cover}.washfold-list{display:flex;flex-wrap:wrap;gap:9px;position:absolute;left:22px;right:22px;bottom:22px}.washfold-list span{background:#fff;color:var(--navy);padding:10px 14px;border-radius:999px;font-weight:700;font-size:.86rem;box-shadow:0 10px 24px rgba(8,36,77,.12)}
.amenity-scroll{display:grid;gap:26px}.amenity-feature{border-radius:32px;overflow:hidden;display:grid;grid-template-columns:1fr .9fr;min-height:330px}.amenity-feature>div{padding:34px;align-self:center}.amenity-feature img{width:100%;height:100%;object-fit:cover}.amenity-feature.blue{background:var(--blue);color:#fff}.amenity-feature.blue p{color:#e8f3ff}.amenity-feature.yellow{background:var(--yellow);color:var(--navy)}.amenity-feature.yellow p{color:#435268}.amenity-feature.sky{background:var(--sky);color:var(--navy)}.amenity-feature.sky p{color:#284968}.amenity-feature.navy{background:var(--navy);color:#fff}.amenity-feature.navy p{color:#d6e5f4}
.faq-grid{display:grid;grid-template-columns:.7fr 1.3fr;gap:80px}details{border-top:1px solid var(--line);padding:22px 0}details:last-child{border-bottom:1px solid var(--line)}summary{cursor:pointer;font-weight:700;font-size:1.05rem}details p{margin:12px 0 0}
.site-footer{background:#071a36;color:#fff;padding:60px 0 24px;border-top:7px solid var(--yellow)}.footer-grid{display:grid;grid-template-columns:1.4fr .8fr .8fr;gap:50px}.site-footer p,.site-footer a{color:#b9cee2}.footer-links{display:grid;gap:10px}.footer-links a{text-decoration:none}.footer-bottom{border-top:1px solid rgba(255,255,255,.12);padding-top:20px;margin-top:36px;color:#88a4bf;font-size:.85rem}
.reveal{opacity:0;transform:translateY(28px);transition:opacity .7s ease,transform .7s cubic-bezier(.2,.7,.2,1)}.reveal.is-visible{opacity:1;transform:none}
@media(max-width:1080px){.nav-links{position:absolute;display:none;left:24px;right:24px;top:68px;background:#fff;border:1px solid var(--line);border-radius:20px;padding:16px;flex-direction:column;align-items:stretch;box-shadow:0 20px 50px rgba(8,36,77,.12)}.nav-links.open{display:flex}.menu-toggle{display:block}.nav{gap:12px}.nav-links{margin-left:0}.nav-actions{margin-left:auto}.sticky-grid,.split,.washfold-grid,.faq-grid,.location-grid{grid-template-columns:1fr}.sticky-copy{position:static}.machine-grid{grid-template-columns:repeat(3,1fr)}.brand-values,.offer-grid{grid-template-columns:1fr}}
@media(max-width:760px){:root{--container:min(100% - 28px,1280px)}.section{padding:68px 0}.nav{height:68px}.nav-phone{font-size:.83rem}.nav-cta{display:none}h1{font-size:clamp(3rem,15vw,4.5rem)}h2{font-size:clamp(2.25rem,11vw,3.3rem)}.hero-bg{min-height:calc(100svh - 68px)}.hero-shade{background:linear-gradient(180deg,rgba(4,20,45,.78),rgba(4,20,45,.64))}.hero-content{padding:52px 0}.hero-facts{display:grid;grid-template-columns:1fr}.offer-card{min-height:190px}.scroll-panel:nth-child(2),.scroll-panel:nth-child(3){transform:none}.scroll-panel img{height:260px}.machine-grid{grid-template-columns:1fr 1fr}.amenity-feature{grid-template-columns:1fr}.amenity-feature img{height:240px;order:-1}.washfold-photo img{height:380px}.washfold-meta{grid-template-columns:1fr}.footer-grid{grid-template-columns:1fr}}
@media(max-width:440px){.machine-grid{grid-template-columns:1fr}.hero-actions .btn{width:100%}.nav-phone{font-size:.76rem}}
@media(prefers-reduced-motion:reduce){*{scroll-behavior:auto!important;transition:none!important}.reveal{opacity:1;transform:none}}


/* v4 refinements */
.hero-clean{max-width:650px}.hero-clean h1{max-width:630px}.hero-clean .lead{max-width:590px;margin-bottom:0}.hero-home .hero-shade{background:linear-gradient(90deg,rgba(4,20,45,.86) 0%,rgba(4,20,45,.56) 48%,rgba(4,20,45,.08) 100%)}
.feature-pair{display:grid;grid-template-columns:1fr 1fr;gap:24px}.feature-photo-card{overflow:hidden;border-radius:30px;background:#fff;border:1px solid var(--line);box-shadow:0 16px 42px rgba(8,36,77,.07)}.feature-photo-card img{width:100%;height:340px;object-fit:cover}.feature-photo-card>div{padding:28px}.feature-photo-card.yellow-card{background:#fff8d7;border-color:#efd86f}
.dryer-feature{display:grid;grid-template-columns:.7fr 1.3fr;gap:70px;align-items:start}.dryer-copy{padding-top:16px}.dryer-cards{display:grid;grid-template-columns:1fr 1fr;gap:18px}
.amenities-head{margin-bottom:34px}.amenity-magazine{display:grid;grid-template-columns:1fr 1fr;gap:18px}.amenity-magazine .wide{grid-column:1/-1}.amenity-magazine .amenity-feature{min-height:310px}.amenity-magazine .wide{grid-template-columns:1fr 1.15fr}.amenity-magazine .wide img{min-height:330px}
/* Only the homepage keeps one sticky storytelling moment. */
.about-intro .sticky-copy,.amenities-showcase .sticky-copy,.bg-pale .sticky-copy{position:static}
/* Lighter motion: no parallax-like staggered x offsets. */
.scroll-panel:nth-child(2),.scroll-panel:nth-child(3){transform:none}
.reveal{transform:translateY(14px);transition:opacity .55s ease,transform .55s cubic-bezier(.2,.7,.2,1)}
@media(max-width:1080px){.feature-pair,.dryer-feature,.dryer-cards,.amenity-magazine{grid-template-columns:1fr}.amenity-magazine .wide{grid-column:auto;grid-template-columns:1fr}.amenity-magazine .wide img{min-height:240px}.hero-home .hero-shade{background:linear-gradient(90deg,rgba(4,20,45,.86),rgba(4,20,45,.5))}}
@media(max-width:760px){.feature-photo-card img{height:250px}.dryer-feature{gap:34px}.amenity-magazine .amenity-feature{min-height:0}.hero-clean{max-width:100%}}


/* v5 refinements */
.hero-bg{
  height:calc(100svh - 76px);
  min-height:560px;
  max-height:860px;
}
.hero-content{
  padding:44px 0;
}
.hero-content h1{
  max-width:760px;
}
.hero-content .lead{
  max-width:590px;
}

/* Equipment color system */
.machine-card.navy,
.dryer-color-card.navy{
  background:var(--navy);
  color:#fff;
  border-color:transparent;
}
.machine-card.navy .machine-size,
.machine-card.navy h3,
.dryer-color-card.navy h3{color:#fff}
.machine-card.navy p,
.dryer-color-card.navy p{color:#d7e6f5}

.machine-card.yellow,
.dryer-color-card.yellow{
  background:var(--yellow);
  color:var(--navy);
  border-color:transparent;
}
.machine-card.yellow .machine-size{color:var(--navy)}
.machine-card.yellow p,
.dryer-color-card.yellow p{color:#435268}

.machine-card.sky,
.dryer-color-card.sky{
  background:var(--sky);
  color:var(--navy);
  border-color:transparent;
}
.machine-card.sky .machine-size{color:var(--navy)}
.machine-card.sky p,
.dryer-color-card.sky p{color:#284968}

.dryer-color-card{
  border-radius:28px;
  padding:34px;
  min-height:220px;
  display:flex;
  flex-direction:column;
  justify-content:flex-end;
}

/* About non-photo visual */
.about-graphic-panel{
  display:grid;
  gap:14px;
}
.about-stat{
  border-radius:28px;
  padding:30px;
  background:var(--navy);
  color:#fff;
}
.about-stat.yellow{
  background:var(--yellow);
  color:var(--navy);
}
.about-stat.sky{
  background:var(--sky);
  color:var(--navy);
}
.about-stat strong,
.about-stat span{display:block}
.about-stat strong{
  font-size:2.4rem;
  letter-spacing:-.05em;
}
.about-stat span{margin-top:5px;font-weight:600}
.about-value{
  border-radius:28px;
  padding:34px;
}
.about-value.navy{background:var(--navy);color:#fff}
.about-value.navy p{color:#d7e6f5}
.about-value.yellow{background:var(--yellow);color:var(--navy)}
.about-value.yellow p{color:#435268}

/* Wash & Fold process */
.washfold-process{
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:14px;
}
.process-step{
  min-height:180px;
  border-radius:28px;
  padding:28px;
  display:flex;
  flex-direction:column;
  justify-content:space-between;
}
.process-step strong{
  font-size:2.8rem;
  line-height:1;
}
.process-step span{
  font-size:1.05rem;
  font-weight:800;
}
.process-step.navy{background:var(--navy);color:#fff}
.process-step.sky{background:var(--sky);color:var(--navy)}
.process-step.yellow{background:var(--yellow);color:var(--navy)}

/* Keep custom support imagery clean */
.scroll-panel img,
.amenity-feature img{
  object-position:center;
}
.scroll-panel img[src*="custom-attendant"]{
  object-position:center 20%;
}

@media(max-width:760px){
  .hero-bg{
    height:calc(100svh - 68px);
    min-height:520px;
    max-height:none;
  }
  .hero-content{padding:30px 0}
  .washfold-process{grid-template-columns:1fr 1fr}
}
@media(max-width:480px){
  .washfold-process{grid-template-columns:1fr}
}


/* v6 hero refinement */
.hero-content{
  padding-top:12vh;
  padding-bottom:5vh;
}
.hero-accent-text{
  position:relative;
  display:inline-block;
  color:#fff;
  z-index:1;
}
.hero-accent-text::after{
  content:"";
  position:absolute;
  left:0;
  right:0;
  bottom:.07em;
  height:.20em;
  background:var(--yellow);
  border-radius:999px;
  z-index:-1;
  opacity:.95;
}
.hero-content .btn-glass{
  background:rgba(255,255,255,.10);
  border-color:rgba(255,255,255,.38);
}
.hero-content .btn-glass:hover{
  background:rgba(255,255,255,.18);
}

/* Reintroduced dryer photography */
.dryer-photo-card{
  border-radius:30px;
  overflow:hidden;
  background:var(--navy);
  color:#fff;
  border:1px solid var(--navy);
}
.dryer-photo-card.yellow{
  background:var(--yellow);
  color:var(--navy);
  border-color:transparent;
}
.dryer-photo-card img{
  width:100%;
  height:300px;
  object-fit:cover;
}
.dryer-photo-card > div{
  padding:28px;
}
.dryer-photo-card h3{
  margin-bottom:8px;
}
.dryer-photo-card p{
  margin-bottom:0;
  color:#d7e6f5;
}
.dryer-photo-card.yellow p{
  color:#435268;
}

@media(max-width:760px){
  .hero-content{
    padding-top:8vh;
    padding-bottom:4vh;
  }
  .hero-accent-text::after{
    height:.16em;
  }
  .dryer-photo-card img{
    height:240px;
  }
}

/* v7: cleaner hero headline */
.hero-accent-text::after{
  display:none;
}


/* v8: About visual ending + page-ending CTAs */
.about-ending{
  background:#fff;
}
.about-ending-grid{
  display:grid;
  grid-template-columns:1.1fr .9fr;
  gap:56px;
  align-items:center;
}
.about-ending-image{
  border-radius:32px;
  overflow:hidden;
  min-height:420px;
}
.about-ending-image img{
  width:100%;
  height:100%;
  min-height:420px;
  object-fit:cover;
}
.about-ending-copy{
  padding-right:24px;
}

.page-end-cta{
  padding:72px 0;
}
.page-end-cta h2{
  margin-bottom:10px;
  font-size:clamp(2.4rem,4.6vw,4rem);
}
.page-end-cta p{
  margin-bottom:0;
  font-size:1.02rem;
}
.page-end-cta-inner{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:44px;
}
.page-end-actions{
  display:flex;
  gap:12px;
  flex-wrap:wrap;
}

.navy-cta{
  background:var(--navy);
  color:#fff;
  border-top:8px solid var(--yellow);
}
.navy-cta p{color:#d8e7f6}

.blue-cta{
  background:var(--blue);
  color:#fff;
}
.blue-cta p{color:#e7f3ff}

.yellow-cta{
  background:var(--yellow);
  color:var(--navy);
}
.yellow-cta p{color:#435268}

.sky-cta{
  background:var(--sky);
  color:var(--navy);
}
.sky-cta p{color:#284968}

.btn-navy{
  background:var(--navy);
  color:#fff;
}
.btn-navy:hover{
  background:#061a38;
}

@media(max-width:900px){
  .about-ending-grid{
    grid-template-columns:1fr;
  }
  .about-ending-copy{
    padding-right:0;
  }
  .page-end-cta-inner{
    display:block;
  }
  .page-end-actions,
  .page-end-cta .btn{
    margin-top:22px;
  }
}
@media(max-width:560px){
  .about-ending-image,
  .about-ending-image img{
    min-height:300px;
  }
  .page-end-actions{
    display:grid;
  }
  .page-end-actions .btn,
  .page-end-cta > .container > .btn{
    width:100%;
  }
}


/* v9: compact Visit-page parking detail */
.visit-parking{
  padding-top:16px;
  margin-top:18px;
  border-top:1px solid rgba(255,255,255,.18);
  font-size:.94rem;
  line-height:1.65;
}

/* Accessible visually-hidden heading utility */
.sr-only{
  position:absolute !important;
  width:1px !important;
  height:1px !important;
  padding:0 !important;
  margin:-1px !important;
  overflow:hidden !important;
  clip-path:inset(50%) !important;
  white-space:nowrap !important;
  border:0 !important;
}


/* v12 responsive hardening: mobile-first behavior and cross-device safeguards */
html, body{
  width:100%;
  max-width:100%;
  overflow-x:clip;
  -webkit-text-size-adjust:100%;
  text-size-adjust:100%;
}
body{
  min-width:320px;
}
img, svg, video, iframe{
  max-width:100%;
}
img{
  height:auto;
}
button, a, summary{
  -webkit-tap-highlight-color:transparent;
}
button, .btn, .nav-phone, .nav-links a{
  min-height:44px;
}
.site-header{
  padding-top:env(safe-area-inset-top, 0px);
}
.nav{
  width:var(--container);
  max-width:100%;
}
.nav-actions{
  flex:0 0 auto;
}
.menu-toggle{
  flex:0 0 auto;
  min-width:44px;
  min-height:44px;
  border-radius:12px;
  align-items:center;
  justify-content:center;
}
.menu-toggle span{
  margin:4px auto;
}
.nav-phone{
  display:inline-flex;
  align-items:center;
}
.nav-links a{
  display:flex;
  align-items:center;
}

/* Prevent long text/content from forcing horizontal overflow */
h1,h2,h3,p,a,span,strong,summary{
  overflow-wrap:break-word;
  word-break:normal;
}
.grid, .offer-grid, .machine-grid, .brand-values, .feature-pair,
.location-grid, .sticky-grid, .split, .washfold-grid, .faq-grid,
.footer-grid, .about-ending-grid, .page-end-cta-inner,
.amenity-magazine, .dryer-feature, .dryer-cards{
  min-width:0;
}
.grid > *, .offer-grid > *, .machine-grid > *, .brand-values > *,
.location-grid > *, .sticky-grid > *, .split > *, .washfold-grid > *,
.faq-grid > *, .footer-grid > *, .about-ending-grid > *{
  min-width:0;
}

/* Hero stays visible without cropping text; use dynamic viewport units with fallbacks */
.hero-bg{
  min-height:560px;
  height:calc(100vh - 76px);
  height:calc(100svh - 76px);
  height:calc(100dvh - 76px);
  max-height:900px;
}
.hero-content{
  padding-top:clamp(32px,8vh,86px);
  padding-bottom:clamp(28px,6vh,64px);
}
.hero-content h1{
  font-size:clamp(3rem,6.2vw,6rem);
  max-width:14ch;
}
.hero-content .lead{
  max-width:58ch;
}

/* Safari / iOS blur fallback */
@supports not ((backdrop-filter: blur(8px)) or (-webkit-backdrop-filter: blur(8px))){
  .site-header{background:rgba(255,255,255,.985)}
  .btn-glass{background:rgba(8,36,77,.72)}
}
@supports (-webkit-backdrop-filter: blur(8px)){
  .site-header{-webkit-backdrop-filter:blur(16px)}
  .btn-glass{-webkit-backdrop-filter:blur(8px)}
}

/* Tablet / iPad landscape and smaller laptops */
@media (max-width:1080px){
  :root{--container:min(100% - 40px, 1280px)}
  .nav{gap:10px}
  .brand{flex:0 0 auto}
  .nav-actions{margin-left:auto;gap:8px}
  .menu-toggle{display:flex;margin-left:0}
  .nav-links{
    position:fixed;
    z-index:120;
    display:none;
    top:calc(76px + env(safe-area-inset-top, 0px));
    left:20px;
    right:20px;
    max-height:calc(100dvh - 96px - env(safe-area-inset-top, 0px));
    overflow-y:auto;
    padding:14px;
    border-radius:20px;
    background:#fff;
    box-shadow:0 20px 55px rgba(8,36,77,.18);
    border:1px solid var(--line);
  }
  .nav-links.open{display:flex}
  .nav-links a{padding:11px 12px;border-radius:12px}
  .nav-links a:active{background:var(--pale)}
  .nav-phone{font-size:.9rem}
  .nav-cta{padding-inline:16px}
  .sticky-copy{position:static}
  .scroll-panel,.scroll-panel:nth-child(2),.scroll-panel:nth-child(3){transform:none}
  .hero-bg{height:calc(100dvh - 76px);max-height:none}
  .hero-content h1{font-size:clamp(3rem,8vw,5.5rem)}
}

/* Phones / portrait tablets */
@media (max-width:760px){
  :root{--container:min(100% - 28px,1280px)}
  .site-header{background:rgba(255,255,255,.98)}
  .nav{height:64px;gap:8px}
  .brand{font-size:1.04rem;white-space:nowrap}
  .nav-actions{margin-left:auto;gap:0}
  .nav-cta{display:none}
  .nav-phone{
    font-size:.82rem;
    padding:0 8px;
    white-space:nowrap;
  }
  .menu-toggle{
    display:flex;
    margin-left:0;
    padding:8px;
  }
  .nav-links{
    top:calc(64px + env(safe-area-inset-top, 0px));
    left:14px;
    right:14px;
    max-height:calc(100dvh - 84px - env(safe-area-inset-top, 0px));
  }
  .section{padding:58px 0}
  .hero-bg{
    min-height:500px;
    height:calc(100vh - 64px);
    height:calc(100svh - 64px);
    height:calc(100dvh - 64px);
    background-position:center center;
  }
  .hero-shade{
    background:linear-gradient(180deg,rgba(4,20,45,.74) 0%,rgba(4,20,45,.66) 58%,rgba(4,20,45,.52) 100%);
  }
  .hero-content{
    width:100%;
    max-width:100%;
    padding:clamp(28px,6vh,54px) 0 clamp(24px,5vh,44px);
  }
  .hero-content h1{
    font-size:clamp(2.55rem,11.5vw,4.15rem);
    line-height:1.01;
    letter-spacing:-.055em;
    max-width:11.5ch;
    margin-bottom:18px;
  }
  .hero-content .lead{
    font-size:clamp(.96rem,4vw,1.05rem);
    line-height:1.58;
    max-width:34rem;
  }
  .hero-actions{
    width:100%;
    gap:10px;
    margin-top:22px;
  }
  .hero-actions .btn{
    width:auto;
    min-width:0;
    padding:13px 18px;
    white-space:normal;
    text-align:center;
  }
  .offer-grid,.brand-values,.feature-pair,.dryer-cards,.amenity-magazine,
  .machine-grid,.washfold-process{
    grid-template-columns:1fr;
  }
  .offer-card,.machine-card,.service-card,.about-stat,.about-value,
  .dryer-photo-card,.amenity-feature,.process-step{
    border-radius:22px;
  }
  .offer-card{min-height:0;padding:28px 22px}
  .machine-card{padding:23px}
  .machine-size{font-size:2.05rem}
  .scroll-panel img,.feature-photo-card img,.dryer-photo-card img{
    height:auto;
    aspect-ratio:16/10;
    object-fit:cover;
  }
  .media-card,.media-card img{min-height:0}
  .media-card img{aspect-ratio:4/3;object-fit:cover}
  .location-copy{padding:28px 22px;border-radius:24px}
  .map,.map iframe{min-height:360px;border-radius:24px}
  .page-end-cta{padding:54px 0}
  .page-end-cta-inner{display:block}
  .page-end-actions{display:flex;flex-direction:column;align-items:stretch}
  .page-end-actions .btn,.page-end-cta-inner>.btn{width:100%;margin-top:12px}
  .footer-grid{gap:30px}
  .site-footer{padding-bottom:calc(24px + env(safe-area-inset-bottom, 0px))}
  details{padding:18px 0}
  summary{padding-right:8px}
}

/* Narrow phones: iPhone SE-class / small Android */
@media (max-width:390px){
  :root{--container:min(100% - 22px,1280px)}
  .brand{font-size:.98rem}
  .nav-phone{font-size:.74rem;padding-inline:5px}
  .menu-toggle{min-width:40px;width:40px;padding:6px}
  .menu-toggle span{width:20px}
  .hero-content h1{font-size:clamp(2.35rem,12vw,3.45rem)}
  .hero-actions{display:grid;grid-template-columns:1fr}
  .hero-actions .btn{width:100%}
  .about-ending-image,.about-ending-image img{min-height:250px}
}

/* Very narrow legacy viewports */
@media (max-width:340px){
  .brand{font-size:.9rem}
  .nav-phone{font-size:.68rem;padding-inline:3px}
  .nav{gap:4px}
  .hero-content h1{font-size:2.15rem}
}

/* Large desktop / ultrawide: prevent content from becoming over-stretched */
@media (min-width:1600px){
  :root{--container:1360px}
  .hero-content h1{font-size:6rem}
  .hero-bg{max-height:900px}
}

/* Landscape phones: keep hero content accessible instead of clipping */
@media (max-height:560px) and (orientation:landscape){
  .hero-bg{
    height:auto;
    min-height:calc(100vh - 64px);
    max-height:none;
  }
  .hero-content{padding:34px 0}
  .hero-content h1{font-size:clamp(2.1rem,8vw,3.4rem);max-width:15ch}
  .hero-content .lead{font-size:.92rem;line-height:1.45}
  .hero-actions{margin-top:16px}
}


/* v13: explicit three-line mobile hamburger */
.menu-toggle{
  width:44px;
  height:44px;
  padding:10px;
  flex:0 0 44px;
  align-items:center;
  justify-content:center;
  flex-direction:column;
  gap:5px;
  border:0;
  border-radius:10px;
  background:transparent;
  cursor:pointer;
}

.menu-toggle span{
  display:block !important;
  width:23px !important;
  height:2px !important;
  min-height:2px !important;
  margin:0 !important;
  padding:0 !important;
  background:var(--navy) !important;
  border:0 !important;
  border-radius:999px;
  opacity:1 !important;
  visibility:visible !important;
  transform:none;
}

@media(max-width:1080px){
  .menu-toggle{
    display:flex !important;
  }
}

/* Phone header order: logo | number | hamburger */
@media(max-width:760px){
  .nav .brand{
    margin-right:auto;
  }
  .nav-actions{
    margin-left:0;
    order:2;
  }
  .menu-toggle{
    order:3;
    margin-left:0;
  }
  .nav-phone{
    display:block !important;
    white-space:nowrap;
  }
}


/* v14: vertically center the mobile phone number with the hamburger */
@media(max-width:760px){
  .nav{
    align-items:center !important;
  }

  .nav-actions{
    height:44px;
    display:flex !important;
    align-items:center !important;
    justify-content:center;
  }

  .nav-phone{
    display:flex !important;
    align-items:center !important;
    justify-content:center;
    height:44px;
    line-height:1 !important;
    margin:0 !important;
    padding:0 !important;
    position:static !important;
    transform:none !important;
  }

  .menu-toggle{
    align-self:center !important;
  }
}


/* v15: restore the one intentional split-scroll section on Home */
.home-sticky-story .sticky-grid{
  align-items:start;
}

.home-sticky-story .sticky-copy{
  position:-webkit-sticky !important;
  position:sticky !important;
  top:112px !important;
  align-self:start;
  height:max-content;
}

/* Keep only the content cards moving while the left copy stays fixed */
.home-sticky-story .scroll-stack{
  display:grid;
  gap:30px;
}

/* Do not let reveal transforms interfere with sticky positioning */
.home-sticky-story .sticky-copy.reveal{
  opacity:1 !important;
  transform:none !important;
}

/* Tablet: keep the effect where there is enough horizontal room */
@media (min-width: 821px) and (max-width:1080px){
  .home-sticky-story .sticky-grid{
    grid-template-columns:.78fr 1.22fr !important;
    gap:48px !important;
  }

  .home-sticky-story .sticky-copy{
    position:-webkit-sticky !important;
    position:sticky !important;
    top:100px !important;
  }
}

/* Phones: intentionally disable sticky and stack naturally */
@media (max-width:820px){
  .home-sticky-story .sticky-grid{
    grid-template-columns:1fr !important;
  }

  .home-sticky-story .sticky-copy{
    position:static !important;
    top:auto !important;
  }
}


/* v16: actual sticky-story root fix */
.home-sticky-story{
  overflow:visible !important;
  contain:none !important;
}

.home-sticky-story .container,
.home-sticky-story .sticky-grid,
.home-sticky-story .sticky-copy,
.home-sticky-story .scroll-stack{
  overflow:visible !important;
}

@media (min-width:821px){
  .home-sticky-story .sticky-grid{
    display:grid !important;
    grid-template-columns:minmax(280px,.72fr) minmax(0,1.28fr) !important;
    align-items:start !important;
    gap:clamp(44px,6vw,86px) !important;
  }

  .home-sticky-story .sticky-copy{
    position:-webkit-sticky !important;
    position:sticky !important;
    top:calc(76px + 44px) !important;
    align-self:start !important;
    height:auto !important;
  }

  /* Give the right column real scroll distance so the pinning is visible. */
  .home-sticky-story .scroll-stack{
    display:grid !important;
    gap:32px !important;
  }

  .home-sticky-story .scroll-panel{
    min-height:clamp(540px,68vh,690px);
    display:grid;
    grid-template-rows:minmax(360px,1fr) auto;
  }

  .home-sticky-story .scroll-panel img{
    width:100%;
    height:100% !important;
    min-height:360px;
    object-fit:cover;
  }
}

/* Avoid legacy transforms altering the scroll geometry in this one section. */
.home-sticky-story .scroll-panel,
.home-sticky-story .scroll-panel:nth-child(2),
.home-sticky-story .scroll-panel:nth-child(3){
  transform:none !important;
}

/* Mobile remains natural stacked content. */
@media (max-width:820px){
  .home-sticky-story .sticky-grid{
    display:grid !important;
    grid-template-columns:1fr !important;
  }
  .home-sticky-story .sticky-copy{
    position:static !important;
  }
  .home-sticky-story .scroll-panel{
    min-height:0;
    display:block;
  }
}

/* Legal pages */
.footer-legal{display:flex;gap:10px;align-items:center;flex-wrap:wrap;margin-top:10px}.footer-legal a{text-decoration:none;color:#b9cee2}.footer-legal a:hover{text-decoration:underline}.legal-hero{background:var(--navy);color:#fff;padding:84px 0 72px}.legal-hero h1{font-size:clamp(2.8rem,6vw,5rem);margin-bottom:12px}.legal-hero p{color:#d5e6f7;margin:0}.legal-content{max-width:850px}.legal-content h2{font-size:clamp(1.55rem,3vw,2.15rem);margin-top:48px;margin-bottom:12px}.legal-content p{font-size:1rem;line-height:1.8}.legal-content a{color:var(--blue);font-weight:700}

/* v17: mobile scroll stability + motion removal */
/* Content should render in place with no scroll-triggered rise/fade animation. */
.reveal,
.reveal.is-visible{
  opacity:1 !important;
  transform:none !important;
  transition:none !important;
}

/* Avoid sticky/blur compositor seams and tap-hover movement on touch devices. */
@media (hover:none), (pointer:coarse){
  .btn:hover{transform:none}
}

@media (max-width:820px){
  html{scroll-behavior:auto}

  .site-header{
    top:0;
    padding-top:0;
    background:#fff;
    -webkit-backdrop-filter:none !important;
    backdrop-filter:none !important;
    border-top:0;
    isolation:isolate;
    transform:translateZ(0);
    -webkit-transform:translateZ(0);
  }

  /* Use the viewport height captured on initial load instead of dvh/svh.
     This prevents the mobile browser chrome from making the hero jump in size while scrolling. */
  .hero-bg{
    height:calc(var(--initial-vh, 1vh) * 100 - 64px) !important;
    min-height:500px !important;
    max-height:900px !important;
    background-attachment:scroll !important;
  }
}

/* Landscape phones still need content-driven height so nothing gets clipped. */
@media (max-height:560px) and (orientation:landscape){
  .hero-bg{
    height:auto !important;
    min-height:496px !important;
    max-height:none !important;
  }
}


/* v18: mobile header stability
   Use a true fixed header instead of sticky on touch layouts. This avoids
   Safari/Chrome sticky recomposition jitter when the browser UI expands/collapses. */
@media (max-width:820px){
  body{
    padding-top:64px;
  }

  .site-header{
    position:fixed !important;
    top:0 !important;
    left:0 !important;
    right:0 !important;
    width:100% !important;
    z-index:1000 !important;
    margin:0 !important;
    padding:0 !important;
    background:#fff !important;
    border-top:0 !important;
    border-bottom:1px solid #e5edf5 !important;
    box-shadow:none !important;
    -webkit-backdrop-filter:none !important;
    backdrop-filter:none !important;
    transform:none !important;
    -webkit-transform:none !important;
    isolation:auto !important;
  }

  .site-header .nav{
    height:64px !important;
    min-height:64px !important;
    max-height:64px !important;
  }

  .nav-links{
    top:64px !important;
  }

  /* Body now starts below the fixed 64px header, so the hero itself should
     consume the remainder of the initially captured viewport. */
  .hero-bg{
    height:calc(var(--initial-vh, 1vh) * 100 - 64px) !important;
  }
}

@media (max-height:560px) and (orientation:landscape) and (max-width:820px){
  body{padding-top:64px}
}

/* v19: focused accessibility + client parking additions */
.skip-link{position:fixed;left:16px;top:12px;z-index:1000;padding:12px 16px;border-radius:10px;background:#fff;color:var(--navy);font-weight:800;text-decoration:none;transform:translateY(-160%);box-shadow:0 8px 24px rgba(8,36,77,.18)}
.skip-link:focus{transform:translateY(0)}
a:focus-visible,button:focus-visible,summary:focus-visible{outline:3px solid #0b67c2;outline-offset:4px;border-radius:6px}
.menu-toggle:focus-visible{border-radius:10px}
summary{padding-right:8px}
.parking-feature{display:grid;grid-template-columns:1.15fr .85fr;gap:54px;align-items:center}.parking-photo{border-radius:32px;overflow:hidden;box-shadow:0 18px 50px rgba(8,36,77,.10)}.parking-photo img{width:100%;height:430px;object-fit:cover}.parking-copy .eyebrow{text-transform:uppercase;letter-spacing:.12em;font-size:.78rem;font-weight:800;color:var(--blue);margin-bottom:14px}.home-parking{background:#fff}.parking-amenity img{object-position:center}
@media(max-width:1080px){.parking-feature{grid-template-columns:1fr;gap:30px}.parking-photo img{height:auto;max-height:520px}}
@media(max-width:760px){.parking-photo{border-radius:24px}.parking-photo img{height:260px;object-fit:cover}.parking-copy .btn{width:100%}}
@media(prefers-reduced-motion:reduce){.skip-link{transition:none}}
